new c_src
authorJean Privat <jean@pryen.org>
Wed, 10 Jun 2009 13:04:55 +0000 (09:04 -0400)
committerJean Privat <jean@pryen.org>
Wed, 10 Jun 2009 13:04:55 +0000 (09:04 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

85 files changed:
c_src/abstract_collection._sep.c
c_src/abstract_collection._sep.h
c_src/abstractmetamodel._sep.c
c_src/abstractmetamodel._sep.h
c_src/abstracttool._sep.c
c_src/abstracttool._sep.h
c_src/array._sep.c
c_src/array._sep.h
c_src/compiling._sep.c
c_src/compiling._sep.h
c_src/compiling_base._sep.c
c_src/compiling_base._sep.h
c_src/compiling_global._sep.c
c_src/compiling_global._sep.h
c_src/compiling_methods._sep.c
c_src/compiling_methods._sep.h
c_src/control_flow._sep.c
c_src/control_flow._sep.h
c_src/environ._sep.c
c_src/environ._sep.h
c_src/exec._sep.c
c_src/exec._sep.h
c_src/file._sep.c
c_src/file._sep.h
c_src/genericity._sep.c
c_src/genericity._sep.h
c_src/hash._sep.c
c_src/hash._sep.h
c_src/inheritance._sep.c
c_src/inheritance._sep.h
c_src/kernel._sep.c
c_src/kernel._sep.h
c_src/lexer._sep.c
c_src/lexer._sep.h
c_src/list._sep.c
c_src/list._sep.h
c_src/math._sep.h
c_src/mmbuilder._sep.c
c_src/mmbuilder._sep.h
c_src/mmloader._sep.c
c_src/mmloader._sep.h
c_src/nitc._sep.c
c_src/nitc._sep.h
c_src/nitc._tables.c
c_src/opts._sep.c
c_src/opts._sep.h
c_src/parser._sep.c
c_src/parser._sep.h
c_src/parser_nodes._sep.c
c_src/parser_nodes._sep.h
c_src/parser_prod._sep.c
c_src/parser_prod._sep.h
c_src/parser_tables._sep.c
c_src/parser_tables._sep.h
c_src/partial_order._sep.c
c_src/partial_order._sep.h
c_src/range._sep.c
c_src/range._sep.h
c_src/sorter._sep.c
c_src/sorter._sep.h
c_src/static_type._sep.c
c_src/static_type._sep.h
c_src/stream._sep.c
c_src/stream._sep.h
c_src/string._sep.c
c_src/string._sep.h
c_src/string_search._sep.c
c_src/string_search._sep.h
c_src/symbol._sep.c
c_src/symbol._sep.h
c_src/syntax._sep.c
c_src/syntax._sep.h
c_src/syntax_base._sep.c
c_src/syntax_base._sep.h
c_src/time._sep.h
c_src/type_formal._sep.c
c_src/type_formal._sep.h
c_src/typing._sep.c
c_src/typing._sep.h
c_src/utils._sep.c
c_src/utils._sep.h
c_src/vararg._sep.c
c_src/vararg._sep.h
c_src/virtualtype._sep.c
c_src/virtualtype._sep.h

index b68489a..bf05d29 100644 (file)
@@ -92,7 +92,7 @@ val_t abstract_collection___NaiveCollection___is_empty(val_t  self) {
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___NaiveCollection___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*NaiveCollection::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*NaiveCollection::length*/;
   variable[2] = TAG_Bool((variable[2])==( TAG_Int(0)));
   variable[1] = variable[2];
   goto return_label0;
@@ -109,15 +109,15 @@ val_t abstract_collection___NaiveCollection___length(val_t  self) {
   variable[0] =  self;
   variable[2] =  TAG_Int(0);
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
     variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int( variable[2] /*nb*/)) /*nb*/;
     continue_2: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_2: while(0);
   variable[1] =  variable[2] /*nb*/;
@@ -135,19 +135,19 @@ val_t abstract_collection___NaiveCollection___has(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[6] = TAG_Bool(( variable[5] /*i*/ ==  variable[1] /*item*/) || (( variable[5] /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))( variable[5] /*i*/,  variable[1] /*item*/) /*Object::==*/)))));
+    variable[6] = TAG_Bool(( variable[5] /*i*/ ==  variable[1] /*item*/) || (( variable[5] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*i*/)( variable[5] /*i*/,  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[2] =  TAG_Bool(true);
       goto return_label3;
     }
     continue_4: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_4: while(0);
   variable[2] =  TAG_Bool(false);
@@ -165,19 +165,19 @@ val_t abstract_collection___NaiveCollection___has_only(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*i*/ ==  variable[1] /*item*/) || (( variable[5] /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))( variable[5] /*i*/,  variable[1] /*item*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*i*/ ==  variable[1] /*item*/) || (( variable[5] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*i*/)( variable[5] /*i*/,  variable[1] /*item*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label5;
     }
     continue_6: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_6: while(0);
   variable[2] =  TAG_Bool(true);
@@ -196,18 +196,18 @@ val_t abstract_collection___NaiveCollection___count(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] =  TAG_Int(0);
   variable[4] = variable[0];
-  variable[4] = ((abstract_collection___Collection___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Collection::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[7] = TAG_Bool(( variable[6] /*i*/ ==  variable[1] /*item*/) || (( variable[6] /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*i*/,COLOR_kernel___Object_____eqeq))( variable[6] /*i*/,  variable[1] /*item*/) /*Object::==*/)))));
+    variable[7] = TAG_Bool(( variable[6] /*i*/ ==  variable[1] /*item*/) || (( variable[6] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*i*/)( variable[6] /*i*/,  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*nb*/;
     }
     continue_8: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_8: while(0);
   variable[2] =  variable[3] /*nb*/;
@@ -224,12 +224,12 @@ val_t abstract_collection___NaiveCollection___first(val_t  self) {
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___NaiveCollection___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*NaiveCollection::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*NaiveCollection::length*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>UNTAG_Int( TAG_Int(0)));
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___NaiveCollection___first, LOCATE_abstract_collection, 102); nit_exit(1);}
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___Collection___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*Collection::iterator*/;
-  variable[2] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*Collection::iterator*/;
+  variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
   variable[1] = variable[2];
   goto return_label9;
   return_label9: while(false);
@@ -324,7 +324,7 @@ val_t abstract_collection___Container___has(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstract_collection___Container____item(variable[3]) /*Container::_item*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*an_item*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*an_item*/) /*Object::==*/)))));
   variable[2] = variable[3];
   goto return_label13;
   return_label13: while(false);
@@ -341,7 +341,7 @@ val_t abstract_collection___Container___has_only(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstract_collection___Container____item(variable[3]) /*Container::_item*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*an_item*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*an_item*/) /*Object::==*/)))));
   variable[2] = variable[3];
   goto return_label14;
   return_label14: while(false);
@@ -358,7 +358,7 @@ val_t abstract_collection___Container___count(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstract_collection___Container____item(variable[3]) /*Container::_item*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*an_item*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*an_item*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  TAG_Int(1);
     goto return_label15;
@@ -429,7 +429,7 @@ val_t abstract_collection___ContainerIterator___item(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstract_collection___ContainerIterator____container(variable[2]) /*ContainerIterator::_container*/;
-  variable[2] = ((abstract_collection___Container___item_t)CALL(variable[2],COLOR_abstract_collection___Container___item))(variable[2]) /*Container::item*/;
+  variable[2] = CALL_abstract_collection___Container___item(variable[2])(variable[2]) /*Container::item*/;
   variable[1] = variable[2];
   goto return_label18;
   return_label18: while(false);
@@ -508,10 +508,10 @@ void abstract_collection___RemovableCollection___remove_all(val_t  self, val_t
   variable[1] =  param0;
   while (true) { /*while*/
     variable[3] = variable[0];
-    variable[3] = ((abstract_collection___Collection___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*item*/) /*Collection::has*/;
+    variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*item*/) /*Collection::has*/;
     if (!UNTAG_Bool(variable[3])) break; /* while*/
     variable[3] = variable[0];
-    ((abstract_collection___RemovableCollection___remove_t)CALL(variable[3],COLOR_abstract_collection___RemovableCollection___remove))(variable[3],  variable[1] /*item*/) /*RemovableCollection::remove*/;
+    CALL_abstract_collection___RemovableCollection___remove(variable[3])(variable[3],  variable[1] /*item*/) /*RemovableCollection::remove*/;
     continue_22: while(0);
   }
   break_22: while(0);
@@ -539,18 +539,18 @@ void abstract_collection___SimpleCollection___add_all(val_t  self, val_t  param0
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ ==  NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))( variable[1] /*coll*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ ==  NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*coll*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*coll*/)( variable[1] /*coll*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*coll*/) /*Collection::iterator*/;
+    variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*coll*/)( variable[1] /*coll*/) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+      variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[4])) break; /*for*/
-      variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+      variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
       variable[5] = variable[4];
       variable[6] = variable[0];
-      ((abstract_collection___SimpleCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*i*/) /*SimpleCollection::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*i*/) /*SimpleCollection::add*/;
       continue_24: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
     }
     break_24: while(0);
   }
@@ -567,12 +567,12 @@ val_t abstract_collection___Set___has_only(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((abstract_collection___Collection___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*Collection::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*Collection::length*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(( variable[3] /*l*/)==( TAG_Int(1)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((abstract_collection___Collection___has_t)CALL(variable[4],COLOR_abstract_collection___Collection___has))(variable[4],  variable[1] /*item*/) /*Collection::has*/;
+    variable[4] = CALL_abstract_collection___Collection___has(variable[4])(variable[4],  variable[1] /*item*/) /*Collection::has*/;
     variable[2] = variable[4];
     goto return_label25;
   } else { /*if*/
@@ -598,7 +598,7 @@ val_t abstract_collection___Set___count(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___Collection___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*item*/) /*Collection::has*/;
+  variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*item*/) /*Collection::has*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  TAG_Int(1);
     goto return_label26;
@@ -619,7 +619,7 @@ void abstract_collection___Set___remove_all(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((abstract_collection___RemovableCollection___remove_t)CALL(variable[3],COLOR_abstract_collection___RemovableCollection___remove))(variable[3],  variable[1] /*item*/) /*RemovableCollection::remove*/;
+  CALL_abstract_collection___RemovableCollection___remove(variable[3])(variable[3],  variable[1] /*item*/) /*RemovableCollection::remove*/;
   return_label27: while(false);
   tracehead = trace.prev;
   return;
@@ -692,16 +692,16 @@ void abstract_collection___Map___recover_with(val_t  self, val_t  param0) {
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((abstract_collection___Map___iterator_t)CALL( variable[1] /*map*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*map*/) /*Map::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*map*/)( variable[1] /*map*/) /*Map::iterator*/;
   variable[3] = variable[4];
   while (true) { /*while*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[3] /*i*/) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
-    variable[5] = ((abstract_collection___MapIterator___key_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[3] /*i*/) /*MapIterator::key*/;
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[3] /*i*/) /*Iterator::item*/;
-    ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4], variable[5], variable[6]) /*Map::[]=*/;
-    ((abstract_collection___Iterator___next_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[3] /*i*/) /*Iterator::next*/;
+    variable[5] = CALL_abstract_collection___MapIterator___key( variable[3] /*i*/)( variable[3] /*i*/) /*MapIterator::key*/;
+    variable[6] = CALL_abstract_collection___Iterator___item( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::item*/;
+    CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[5], variable[6]) /*Map::[]=*/;
+    CALL_abstract_collection___Iterator___next( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::next*/;
     continue_29: while(0);
   }
   break_29: while(0);
@@ -753,10 +753,10 @@ val_t abstract_collection___IndexedCollection___first(val_t  self) {
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___Collection___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*Collection::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*Collection::is_empty*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", " 'not_empty' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___first, LOCATE_abstract_collection, 289); nit_exit(1);}
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___Map_____bra_t)CALL(variable[2],COLOR_abstract_collection___Map_____bra))(variable[2],  TAG_Int(0)) /*Map::[]*/;
+  variable[2] = CALL_abstract_collection___Map_____bra(variable[2])(variable[2],  TAG_Int(0)) /*Map::[]*/;
   variable[1] = variable[2];
   goto return_label30;
   return_label30: while(false);
@@ -772,7 +772,7 @@ void abstract_collection___IndexedCollection___add(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((abstract_collection___IndexedCollection___push_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___push))(variable[3],  variable[1] /*e*/) /*IndexedCollection::push*/;
+  CALL_abstract_collection___IndexedCollection___push(variable[3])(variable[3],  variable[1] /*e*/) /*IndexedCollection::push*/;
   return_label31: while(false);
   tracehead = trace.prev;
   return;
@@ -786,7 +786,7 @@ void abstract_collection___IndexedCollection___first__eq(val_t  self, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3],  TAG_Int(0),  variable[1] /*item*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3],  TAG_Int(0),  variable[1] /*item*/) /*Map::[]=*/;
   return_label32: while(false);
   tracehead = trace.prev;
   return;
@@ -799,13 +799,13 @@ val_t abstract_collection___IndexedCollection___last(val_t  self) {
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___Collection___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*Collection::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*Collection::is_empty*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", " 'not_empty' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___last, LOCATE_abstract_collection, 302); nit_exit(1);}
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___Collection___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*Collection::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*Collection::length*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
-  variable[2] = ((abstract_collection___Map_____bra_t)CALL(variable[2],COLOR_abstract_collection___Map_____bra))(variable[2], variable[3]) /*Map::[]*/;
+  variable[2] = CALL_abstract_collection___Map_____bra(variable[2])(variable[2], variable[3]) /*Map::[]*/;
   variable[1] = variable[2];
   goto return_label33;
   return_label33: while(false);
@@ -821,16 +821,16 @@ void abstract_collection___IndexedCollection___last__eq(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((abstract_collection___Collection___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*Collection::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*Collection::length*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*l*/)>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = TAG_Int(UNTAG_Int( variable[3] /*l*/)-UNTAG_Int( TAG_Int(1)));
-    ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4], variable[5],  variable[1] /*item*/) /*Map::[]=*/;
+    CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[5],  variable[1] /*item*/) /*Map::[]=*/;
   } else { /*if*/
     variable[4] = variable[0];
-    ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  TAG_Int(0),  variable[1] /*item*/) /*Map::[]=*/;
+    CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  TAG_Int(0),  variable[1] /*item*/) /*Map::[]=*/;
   }
   return_label34: while(false);
   tracehead = trace.prev;
@@ -856,18 +856,18 @@ void abstract_collection___IndexedCollection___append(val_t  self, val_t  param0
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ ==  NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))( variable[1] /*coll*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ ==  NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*coll*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*coll*/)( variable[1] /*coll*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*coll*/) /*Collection::iterator*/;
+    variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*coll*/)( variable[1] /*coll*/) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+      variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[4])) break; /*for*/
-      variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+      variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
       variable[5] = variable[4];
       variable[6] = variable[0];
-      ((abstract_collection___IndexedCollection___push_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___push))(variable[6],  variable[5] /*i*/) /*IndexedCollection::push*/;
+      CALL_abstract_collection___IndexedCollection___push(variable[6])(variable[6],  variable[5] /*i*/) /*IndexedCollection::push*/;
       continue_36: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
     }
     break_36: while(0);
   }
@@ -920,19 +920,19 @@ val_t abstract_collection___IndexedCollection___index_of(val_t  self, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((abstract_collection___IndexedCollection___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*IndexedCollection::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*IndexedCollection::iterator*/;
   variable[3] = variable[4];
   while (true) { /*while*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[3] /*i*/) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /* while*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[3] /*i*/) /*Iterator::item*/;
-    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*item*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[4] = CALL_abstract_collection___Iterator___item( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::item*/;
+    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*item*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[4])) { /*if*/
-      variable[4] = ((abstract_collection___IndexedIterator___index_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___IndexedIterator___index))( variable[3] /*i*/) /*IndexedIterator::index*/;
+      variable[4] = CALL_abstract_collection___IndexedIterator___index( variable[3] /*i*/)( variable[3] /*i*/) /*IndexedIterator::index*/;
       variable[2] = variable[4];
       goto return_label37;
     }
-    ((abstract_collection___Iterator___next_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[3] /*i*/) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::next*/;
     continue_38: while(0);
   }
   break_38: while(0);
@@ -951,7 +951,7 @@ val_t abstract_collection___IndexedIterator___key(val_t  self) {
   trace.file = LOCATE_abstract_collection;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___IndexedIterator___index_t)CALL(variable[2],COLOR_abstract_collection___IndexedIterator___index))(variable[2]) /*IndexedIterator::index*/;
+  variable[2] = CALL_abstract_collection___IndexedIterator___index(variable[2])(variable[2]) /*IndexedIterator::index*/;
   variable[1] = variable[2];
   goto return_label39;
   return_label39: while(false);
@@ -979,14 +979,14 @@ val_t abstract_collection___CoupleMap_____bra(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((abstract_collection___CoupleMap___couple_at_t)CALL(variable[4],COLOR_abstract_collection___CoupleMap___couple_at))(variable[4],  variable[1] /*key*/) /*CoupleMap::couple_at*/;
+  variable[4] = CALL_abstract_collection___CoupleMap___couple_at(variable[4])(variable[4],  variable[1] /*key*/) /*CoupleMap::couple_at*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*c*/ ==  NIT_NULL /*null*/) || (( variable[3] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))( variable[3] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*c*/ ==  NIT_NULL /*null*/) || (( variable[3] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*c*/)( variable[3] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  NIT_NULL /*null*/;
     goto return_label40;
   } else { /*if*/
-    variable[4] = ((abstract_collection___Couple___second_t)CALL( variable[3] /*c*/,COLOR_abstract_collection___Couple___second))( variable[3] /*c*/) /*Couple::second*/;
+    variable[4] = CALL_abstract_collection___Couple___second( variable[3] /*c*/)( variable[3] /*c*/) /*Couple::second*/;
     variable[2] = variable[4];
     goto return_label40;
   }
@@ -1003,8 +1003,8 @@ val_t abstract_collection___CoupleMap___has_key(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___CoupleMap___couple_at_t)CALL(variable[3],COLOR_abstract_collection___CoupleMap___couple_at))(variable[3],  variable[1] /*key*/) /*CoupleMap::couple_at*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_abstract_collection___CoupleMap___couple_at(variable[3])(variable[3],  variable[1] /*key*/) /*CoupleMap::couple_at*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[2] = variable[3];
   goto return_label41;
   return_label41: while(false);
@@ -1032,8 +1032,8 @@ val_t abstract_collection___CoupleMapIterator___item(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
-  variable[2] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
-  variable[2] = ((abstract_collection___Couple___second_t)CALL(variable[2],COLOR_abstract_collection___Couple___second))(variable[2]) /*Couple::second*/;
+  variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
+  variable[2] = CALL_abstract_collection___Couple___second(variable[2])(variable[2]) /*Couple::second*/;
   variable[1] = variable[2];
   goto return_label42;
   return_label42: while(false);
@@ -1049,23 +1049,23 @@ void abstract_collection___CoupleMapIterator___next(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
-  ((abstract_collection___Iterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*Iterator::next*/;
+  CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*Iterator::next*/;
   while (true) { /*while*/
     variable[2] = variable[0];
     variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
-    variable[2] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*Iterator::is_ok*/;
+    variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*Iterator::is_ok*/;
     variable[3] = variable[2];
     if (UNTAG_Bool(variable[3])) { /* and */
       variable[3] = variable[0];
       variable[3] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[3]) /*CoupleMapIterator::_iter*/;
-      variable[3] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
-      variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[3] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
+      variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
     }
     variable[2] = variable[3];
     if (!UNTAG_Bool(variable[2])) break; /* while*/
     variable[2] = variable[0];
     variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
-    ((abstract_collection___Iterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*Iterator::next*/;
     continue_44: while(0);
   }
   break_44: while(0);
@@ -1082,7 +1082,7 @@ val_t abstract_collection___CoupleMapIterator___is_ok(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
-  variable[2] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*Iterator::is_ok*/;
+  variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*Iterator::is_ok*/;
   variable[1] = variable[2];
   goto return_label45;
   return_label45: while(false);
@@ -1098,8 +1098,8 @@ val_t abstract_collection___CoupleMapIterator___key(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
-  variable[2] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
-  variable[2] = ((abstract_collection___Couple___first_t)CALL(variable[2],COLOR_abstract_collection___Couple___first))(variable[2]) /*Couple::first*/;
+  variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
+  variable[2] = CALL_abstract_collection___Couple___first(variable[2])(variable[2]) /*Couple::first*/;
   variable[1] = variable[2];
   goto return_label46;
   return_label46: while(false);
@@ -1116,8 +1116,8 @@ void abstract_collection___CoupleMapIterator___item__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[3]) /*CoupleMapIterator::_iter*/;
-  variable[3] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
-  ((abstract_collection___Couple___second__eq_t)CALL(variable[3],COLOR_abstract_collection___Couple___second__eq))(variable[3],  variable[1] /*e*/) /*Couple::second=*/;
+  variable[3] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
+  CALL_abstract_collection___Couple___second__eq(variable[3])(variable[3],  variable[1] /*e*/) /*Couple::second=*/;
   return_label47: while(false);
   tracehead = trace.prev;
   return;
index dd00e95..cfb5d7e 100644 (file)
@@ -35,100 +35,100 @@ extern const classtable_elt_t VFT_CoupleMapIterator[];
 extern const classtable_elt_t VFT_Couple[];
 extern const char *LOCATE_abstract_collection;
 extern const int SFT_abstract_collection[];
-#define ID_Collection SFT_abstract_collection[0]
-#define COLOR_Collection SFT_abstract_collection[1]
-#define INIT_TABLE_POS_Collection SFT_abstract_collection[2]
-#define COLOR_abstract_collection___Collection___iterator SFT_abstract_collection[3]
-#define COLOR_abstract_collection___Collection___is_empty SFT_abstract_collection[4]
-#define COLOR_abstract_collection___Collection___length SFT_abstract_collection[5]
-#define COLOR_abstract_collection___Collection___has SFT_abstract_collection[6]
-#define COLOR_abstract_collection___Collection___has_only SFT_abstract_collection[7]
-#define COLOR_abstract_collection___Collection___count SFT_abstract_collection[8]
-#define COLOR_abstract_collection___Collection___first SFT_abstract_collection[9]
-#define ID_NaiveCollection SFT_abstract_collection[10]
-#define COLOR_NaiveCollection SFT_abstract_collection[11]
-#define INIT_TABLE_POS_NaiveCollection SFT_abstract_collection[12]
-#define ID_Iterator SFT_abstract_collection[13]
-#define COLOR_Iterator SFT_abstract_collection[14]
-#define INIT_TABLE_POS_Iterator SFT_abstract_collection[15]
-#define COLOR_abstract_collection___Iterator___item SFT_abstract_collection[16]
-#define COLOR_abstract_collection___Iterator___next SFT_abstract_collection[17]
-#define COLOR_abstract_collection___Iterator___is_ok SFT_abstract_collection[18]
-#define ID_Container SFT_abstract_collection[19]
-#define COLOR_Container SFT_abstract_collection[20]
-#define COLOR_abstract_collection___Container____item SFT_abstract_collection[21]
-#define INIT_TABLE_POS_Container SFT_abstract_collection[22]
-#define COLOR_abstract_collection___Container___init SFT_abstract_collection[23]
-#define COLOR_abstract_collection___Container___item SFT_abstract_collection[24]
-#define COLOR_abstract_collection___Container___item__eq SFT_abstract_collection[25]
-#define ID_ContainerIterator SFT_abstract_collection[26]
-#define COLOR_ContainerIterator SFT_abstract_collection[27]
-#define COLOR_abstract_collection___ContainerIterator____is_ok SFT_abstract_collection[28]
-#define COLOR_abstract_collection___ContainerIterator____container SFT_abstract_collection[29]
-#define INIT_TABLE_POS_ContainerIterator SFT_abstract_collection[30]
-#define COLOR_abstract_collection___ContainerIterator___init SFT_abstract_collection[31]
-#define ID_RemovableCollection SFT_abstract_collection[32]
-#define COLOR_RemovableCollection SFT_abstract_collection[33]
-#define INIT_TABLE_POS_RemovableCollection SFT_abstract_collection[34]
-#define COLOR_abstract_collection___RemovableCollection___clear SFT_abstract_collection[35]
-#define COLOR_abstract_collection___RemovableCollection___remove SFT_abstract_collection[36]
-#define COLOR_abstract_collection___RemovableCollection___remove_all SFT_abstract_collection[37]
-#define ID_SimpleCollection SFT_abstract_collection[38]
-#define COLOR_SimpleCollection SFT_abstract_collection[39]
-#define INIT_TABLE_POS_SimpleCollection SFT_abstract_collection[40]
-#define COLOR_abstract_collection___SimpleCollection___add SFT_abstract_collection[41]
-#define COLOR_abstract_collection___SimpleCollection___add_all SFT_abstract_collection[42]
-#define ID_Set SFT_abstract_collection[43]
-#define COLOR_Set SFT_abstract_collection[44]
-#define INIT_TABLE_POS_Set SFT_abstract_collection[45]
-#define ID_Map SFT_abstract_collection[46]
-#define COLOR_Map SFT_abstract_collection[47]
-#define INIT_TABLE_POS_Map SFT_abstract_collection[48]
-#define COLOR_abstract_collection___Map_____bra SFT_abstract_collection[49]
-#define COLOR_abstract_collection___Map_____braeq SFT_abstract_collection[50]
-#define COLOR_abstract_collection___Map___has_key SFT_abstract_collection[51]
-#define COLOR_abstract_collection___Map___remove_at SFT_abstract_collection[52]
-#define COLOR_abstract_collection___Map___recover_with SFT_abstract_collection[53]
-#define ID_MapIterator SFT_abstract_collection[54]
-#define COLOR_MapIterator SFT_abstract_collection[55]
-#define INIT_TABLE_POS_MapIterator SFT_abstract_collection[56]
-#define COLOR_abstract_collection___MapIterator___key SFT_abstract_collection[57]
-#define COLOR_abstract_collection___MapIterator___item__eq SFT_abstract_collection[58]
-#define ID_IndexedCollection SFT_abstract_collection[59]
-#define COLOR_IndexedCollection SFT_abstract_collection[60]
-#define INIT_TABLE_POS_IndexedCollection SFT_abstract_collection[61]
-#define COLOR_abstract_collection___IndexedCollection___first__eq SFT_abstract_collection[62]
-#define COLOR_abstract_collection___IndexedCollection___last SFT_abstract_collection[63]
-#define COLOR_abstract_collection___IndexedCollection___last__eq SFT_abstract_collection[64]
-#define COLOR_abstract_collection___IndexedCollection___push SFT_abstract_collection[65]
-#define COLOR_abstract_collection___IndexedCollection___append SFT_abstract_collection[66]
-#define COLOR_abstract_collection___IndexedCollection___pop SFT_abstract_collection[67]
-#define COLOR_abstract_collection___IndexedCollection___unshift SFT_abstract_collection[68]
-#define COLOR_abstract_collection___IndexedCollection___shift SFT_abstract_collection[69]
-#define COLOR_abstract_collection___IndexedCollection___index_of SFT_abstract_collection[70]
-#define ID_IndexedIterator SFT_abstract_collection[71]
-#define COLOR_IndexedIterator SFT_abstract_collection[72]
-#define INIT_TABLE_POS_IndexedIterator SFT_abstract_collection[73]
-#define COLOR_abstract_collection___IndexedIterator___index SFT_abstract_collection[74]
-#define ID_CoupleMap SFT_abstract_collection[75]
-#define COLOR_CoupleMap SFT_abstract_collection[76]
-#define INIT_TABLE_POS_CoupleMap SFT_abstract_collection[77]
-#define COLOR_abstract_collection___CoupleMap___couple_at SFT_abstract_collection[78]
-#define ID_CoupleMapIterator SFT_abstract_collection[79]
-#define COLOR_CoupleMapIterator SFT_abstract_collection[80]
-#define COLOR_abstract_collection___CoupleMapIterator____iter SFT_abstract_collection[81]
-#define INIT_TABLE_POS_CoupleMapIterator SFT_abstract_collection[82]
-#define COLOR_abstract_collection___CoupleMapIterator___init SFT_abstract_collection[83]
-#define ID_Couple SFT_abstract_collection[84]
-#define COLOR_Couple SFT_abstract_collection[85]
-#define COLOR_abstract_collection___Couple____first SFT_abstract_collection[86]
-#define COLOR_abstract_collection___Couple____second SFT_abstract_collection[87]
-#define INIT_TABLE_POS_Couple SFT_abstract_collection[88]
-#define COLOR_abstract_collection___Couple___first SFT_abstract_collection[89]
-#define COLOR_abstract_collection___Couple___first__eq SFT_abstract_collection[90]
-#define COLOR_abstract_collection___Couple___second SFT_abstract_collection[91]
-#define COLOR_abstract_collection___Couple___second__eq SFT_abstract_collection[92]
-#define COLOR_abstract_collection___Couple___init SFT_abstract_collection[93]
+#define ID_Collection (SFT_abstract_collection[0])
+#define COLOR_Collection (SFT_abstract_collection[1])
+#define INIT_TABLE_POS_Collection (SFT_abstract_collection[2] + 0)
+#define CALL_abstract_collection___Collection___iterator(recv) ((abstract_collection___Collection___iterator_t)CALL((recv), (SFT_abstract_collection[2] + 1)))
+#define CALL_abstract_collection___Collection___is_empty(recv) ((abstract_collection___Collection___is_empty_t)CALL((recv), (SFT_abstract_collection[2] + 2)))
+#define CALL_abstract_collection___Collection___length(recv) ((abstract_collection___Collection___length_t)CALL((recv), (SFT_abstract_collection[2] + 3)))
+#define CALL_abstract_collection___Collection___has(recv) ((abstract_collection___Collection___has_t)CALL((recv), (SFT_abstract_collection[2] + 4)))
+#define CALL_abstract_collection___Collection___has_only(recv) ((abstract_collection___Collection___has_only_t)CALL((recv), (SFT_abstract_collection[2] + 5)))
+#define CALL_abstract_collection___Collection___count(recv) ((abstract_collection___Collection___count_t)CALL((recv), (SFT_abstract_collection[2] + 6)))
+#define CALL_abstract_collection___Collection___first(recv) ((abstract_collection___Collection___first_t)CALL((recv), (SFT_abstract_collection[2] + 7)))
+#define ID_NaiveCollection (SFT_abstract_collection[3])
+#define COLOR_NaiveCollection (SFT_abstract_collection[4])
+#define INIT_TABLE_POS_NaiveCollection (SFT_abstract_collection[5] + 0)
+#define ID_Iterator (SFT_abstract_collection[6])
+#define COLOR_Iterator (SFT_abstract_collection[7])
+#define INIT_TABLE_POS_Iterator (SFT_abstract_collection[8] + 0)
+#define CALL_abstract_collection___Iterator___item(recv) ((abstract_collection___Iterator___item_t)CALL((recv), (SFT_abstract_collection[8] + 1)))
+#define CALL_abstract_collection___Iterator___next(recv) ((abstract_collection___Iterator___next_t)CALL((recv), (SFT_abstract_collection[8] + 2)))
+#define CALL_abstract_collection___Iterator___is_ok(recv) ((abstract_collection___Iterator___is_ok_t)CALL((recv), (SFT_abstract_collection[8] + 3)))
+#define ID_Container (SFT_abstract_collection[9])
+#define COLOR_Container (SFT_abstract_collection[10])
+#define ATTR_abstract_collection___Container____item(recv) ATTR(recv, (SFT_abstract_collection[11] + 0))
+#define INIT_TABLE_POS_Container (SFT_abstract_collection[12] + 0)
+#define CALL_abstract_collection___Container___init(recv) ((abstract_collection___Container___init_t)CALL((recv), (SFT_abstract_collection[12] + 1)))
+#define CALL_abstract_collection___Container___item(recv) ((abstract_collection___Container___item_t)CALL((recv), (SFT_abstract_collection[12] + 2)))
+#define CALL_abstract_collection___Container___item__eq(recv) ((abstract_collection___Container___item__eq_t)CALL((recv), (SFT_abstract_collection[12] + 3)))
+#define ID_ContainerIterator (SFT_abstract_collection[13])
+#define COLOR_ContainerIterator (SFT_abstract_collection[14])
+#define ATTR_abstract_collection___ContainerIterator____is_ok(recv) ATTR(recv, (SFT_abstract_collection[15] + 0))
+#define ATTR_abstract_collection___ContainerIterator____container(recv) ATTR(recv, (SFT_abstract_collection[15] + 1))
+#define INIT_TABLE_POS_ContainerIterator (SFT_abstract_collection[16] + 0)
+#define CALL_abstract_collection___ContainerIterator___init(recv) ((abstract_collection___ContainerIterator___init_t)CALL((recv), (SFT_abstract_collection[16] + 1)))
+#define ID_RemovableCollection (SFT_abstract_collection[17])
+#define COLOR_RemovableCollection (SFT_abstract_collection[18])
+#define INIT_TABLE_POS_RemovableCollection (SFT_abstract_collection[19] + 0)
+#define CALL_abstract_collection___RemovableCollection___clear(recv) ((abstract_collection___RemovableCollection___clear_t)CALL((recv), (SFT_abstract_collection[19] + 1)))
+#define CALL_abstract_collection___RemovableCollection___remove(recv) ((abstract_collection___RemovableCollection___remove_t)CALL((recv), (SFT_abstract_collection[19] + 2)))
+#define CALL_abstract_collection___RemovableCollection___remove_all(recv) ((abstract_collection___RemovableCollection___remove_all_t)CALL((recv), (SFT_abstract_collection[19] + 3)))
+#define ID_SimpleCollection (SFT_abstract_collection[20])
+#define COLOR_SimpleCollection (SFT_abstract_collection[21])
+#define INIT_TABLE_POS_SimpleCollection (SFT_abstract_collection[22] + 0)
+#define CALL_abstract_collection___SimpleCollection___add(recv) ((abstract_collection___SimpleCollection___add_t)CALL((recv), (SFT_abstract_collection[22] + 1)))
+#define CALL_abstract_collection___SimpleCollection___add_all(recv) ((abstract_collection___SimpleCollection___add_all_t)CALL((recv), (SFT_abstract_collection[22] + 2)))
+#define ID_Set (SFT_abstract_collection[23])
+#define COLOR_Set (SFT_abstract_collection[24])
+#define INIT_TABLE_POS_Set (SFT_abstract_collection[25] + 0)
+#define ID_Map (SFT_abstract_collection[26])
+#define COLOR_Map (SFT_abstract_collection[27])
+#define INIT_TABLE_POS_Map (SFT_abstract_collection[28] + 0)
+#define CALL_abstract_collection___Map_____bra(recv) ((abstract_collection___Map_____bra_t)CALL((recv), (SFT_abstract_collection[28] + 1)))
+#define CALL_abstract_collection___Map_____braeq(recv) ((abstract_collection___Map_____braeq_t)CALL((recv), (SFT_abstract_collection[28] + 2)))
+#define CALL_abstract_collection___Map___has_key(recv) ((abstract_collection___Map___has_key_t)CALL((recv), (SFT_abstract_collection[28] + 3)))
+#define CALL_abstract_collection___Map___remove_at(recv) ((abstract_collection___Map___remove_at_t)CALL((recv), (SFT_abstract_collection[28] + 4)))
+#define CALL_abstract_collection___Map___recover_with(recv) ((abstract_collection___Map___recover_with_t)CALL((recv), (SFT_abstract_collection[28] + 5)))
+#define ID_MapIterator (SFT_abstract_collection[29])
+#define COLOR_MapIterator (SFT_abstract_collection[30])
+#define INIT_TABLE_POS_MapIterator (SFT_abstract_collection[31] + 0)
+#define CALL_abstract_collection___MapIterator___key(recv) ((abstract_collection___MapIterator___key_t)CALL((recv), (SFT_abstract_collection[31] + 1)))
+#define CALL_abstract_collection___MapIterator___item__eq(recv) ((abstract_collection___MapIterator___item__eq_t)CALL((recv), (SFT_abstract_collection[31] + 2)))
+#define ID_IndexedCollection (SFT_abstract_collection[32])
+#define COLOR_IndexedCollection (SFT_abstract_collection[33])
+#define INIT_TABLE_POS_IndexedCollection (SFT_abstract_collection[34] + 0)
+#define CALL_abstract_collection___IndexedCollection___first__eq(recv) ((abstract_collection___IndexedCollection___first__eq_t)CALL((recv), (SFT_abstract_collection[34] + 1)))
+#define CALL_abstract_collection___IndexedCollection___last(recv) ((abstract_collection___IndexedCollection___last_t)CALL((recv), (SFT_abstract_collection[34] + 2)))
+#define CALL_abstract_collection___IndexedCollection___last__eq(recv) ((abstract_collection___IndexedCollection___last__eq_t)CALL((recv), (SFT_abstract_collection[34] + 3)))
+#define CALL_abstract_collection___IndexedCollection___push(recv) ((abstract_collection___IndexedCollection___push_t)CALL((recv), (SFT_abstract_collection[34] + 4)))
+#define CALL_abstract_collection___IndexedCollection___append(recv) ((abstract_collection___IndexedCollection___append_t)CALL((recv), (SFT_abstract_collection[34] + 5)))
+#define CALL_abstract_collection___IndexedCollection___pop(recv) ((abstract_collection___IndexedCollection___pop_t)CALL((recv), (SFT_abstract_collection[34] + 6)))
+#define CALL_abstract_collection___IndexedCollection___unshift(recv) ((abstract_collection___IndexedCollection___unshift_t)CALL((recv), (SFT_abstract_collection[34] + 7)))
+#define CALL_abstract_collection___IndexedCollection___shift(recv) ((abstract_collection___IndexedCollection___shift_t)CALL((recv), (SFT_abstract_collection[34] + 8)))
+#define CALL_abstract_collection___IndexedCollection___index_of(recv) ((abstract_collection___IndexedCollection___index_of_t)CALL((recv), (SFT_abstract_collection[34] + 9)))
+#define ID_IndexedIterator (SFT_abstract_collection[35])
+#define COLOR_IndexedIterator (SFT_abstract_collection[36])
+#define INIT_TABLE_POS_IndexedIterator (SFT_abstract_collection[37] + 0)
+#define CALL_abstract_collection___IndexedIterator___index(recv) ((abstract_collection___IndexedIterator___index_t)CALL((recv), (SFT_abstract_collection[37] + 1)))
+#define ID_CoupleMap (SFT_abstract_collection[38])
+#define COLOR_CoupleMap (SFT_abstract_collection[39])
+#define INIT_TABLE_POS_CoupleMap (SFT_abstract_collection[40] + 0)
+#define CALL_abstract_collection___CoupleMap___couple_at(recv) ((abstract_collection___CoupleMap___couple_at_t)CALL((recv), (SFT_abstract_collection[40] + 1)))
+#define ID_CoupleMapIterator (SFT_abstract_collection[41])
+#define COLOR_CoupleMapIterator (SFT_abstract_collection[42])
+#define ATTR_abstract_collection___CoupleMapIterator____iter(recv) ATTR(recv, (SFT_abstract_collection[43] + 0))
+#define INIT_TABLE_POS_CoupleMapIterator (SFT_abstract_collection[44] + 0)
+#define CALL_abstract_collection___CoupleMapIterator___init(recv) ((abstract_collection___CoupleMapIterator___init_t)CALL((recv), (SFT_abstract_collection[44] + 1)))
+#define ID_Couple (SFT_abstract_collection[45])
+#define COLOR_Couple (SFT_abstract_collection[46])
+#define ATTR_abstract_collection___Couple____first(recv) ATTR(recv, (SFT_abstract_collection[47] + 0))
+#define ATTR_abstract_collection___Couple____second(recv) ATTR(recv, (SFT_abstract_collection[47] + 1))
+#define INIT_TABLE_POS_Couple (SFT_abstract_collection[48] + 0)
+#define CALL_abstract_collection___Couple___first(recv) ((abstract_collection___Couple___first_t)CALL((recv), (SFT_abstract_collection[48] + 1)))
+#define CALL_abstract_collection___Couple___first__eq(recv) ((abstract_collection___Couple___first__eq_t)CALL((recv), (SFT_abstract_collection[48] + 2)))
+#define CALL_abstract_collection___Couple___second(recv) ((abstract_collection___Couple___second_t)CALL((recv), (SFT_abstract_collection[48] + 3)))
+#define CALL_abstract_collection___Couple___second__eq(recv) ((abstract_collection___Couple___second__eq_t)CALL((recv), (SFT_abstract_collection[48] + 4)))
+#define CALL_abstract_collection___Couple___init(recv) ((abstract_collection___Couple___init_t)CALL((recv), (SFT_abstract_collection[48] + 5)))
 typedef val_t (* abstract_collection___Collection___iterator_t)(val_t  self);
 val_t abstract_collection___Collection___iterator(val_t  self);
 #define LOCATE_abstract_collection___Collection___iterator "abstract_collection::Collection::iterator"
@@ -202,7 +202,6 @@ typedef void (* abstract_collection___Container___init_t)(val_t  self, val_t  pa
 void abstract_collection___Container___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_abstract_collection___Container___init "abstract_collection::Container::init"
 val_t NEW_Container_abstract_collection___Container___init(val_t p0);
-#define ATTR_abstract_collection___Container____item(recv) ATTR(recv, COLOR_abstract_collection___Container____item)
 typedef val_t (* abstract_collection___Container___item_t)(val_t  self);
 val_t abstract_collection___Container___item(val_t  self);
 #define LOCATE_abstract_collection___Container___item "abstract_collection::Container::item"
@@ -222,8 +221,6 @@ typedef void (* abstract_collection___ContainerIterator___init_t)(val_t  self, v
 void abstract_collection___ContainerIterator___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_abstract_collection___ContainerIterator___init "abstract_collection::ContainerIterator::init"
 val_t NEW_ContainerIterator_abstract_collection___ContainerIterator___init(val_t p0);
-#define ATTR_abstract_collection___ContainerIterator____is_ok(recv) ATTR(recv, COLOR_abstract_collection___ContainerIterator____is_ok)
-#define ATTR_abstract_collection___ContainerIterator____container(recv) ATTR(recv, COLOR_abstract_collection___ContainerIterator____container)
 typedef void (* abstract_collection___RemovableCollection___clear_t)(val_t  self);
 void abstract_collection___RemovableCollection___clear(val_t  self);
 #define LOCATE_abstract_collection___RemovableCollection___clear "abstract_collection::RemovableCollection::clear"
@@ -338,19 +335,16 @@ val_t abstract_collection___CoupleMapIterator___key(val_t  self);
 typedef void (* abstract_collection___CoupleMapIterator___item__eq_t)(val_t  self, val_t  param0);
 void abstract_collection___CoupleMapIterator___item__eq(val_t  self, val_t  param0);
 #define LOCATE_abstract_collection___CoupleMapIterator___item__eq "abstract_collection::CoupleMapIterator::(abstract_collection::MapIterator::item=)"
-#define ATTR_abstract_collection___CoupleMapIterator____iter(recv) ATTR(recv, COLOR_abstract_collection___CoupleMapIterator____iter)
 typedef void (* abstract_collection___CoupleMapIterator___init_t)(val_t  self, val_t  param0, int* init_table);
 void abstract_collection___CoupleMapIterator___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_abstract_collection___CoupleMapIterator___init "abstract_collection::CoupleMapIterator::init"
 val_t NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init(val_t p0);
-#define ATTR_abstract_collection___Couple____first(recv) ATTR(recv, COLOR_abstract_collection___Couple____first)
 typedef val_t (* abstract_collection___Couple___first_t)(val_t  self);
 val_t abstract_collection___Couple___first(val_t  self);
 #define LOCATE_abstract_collection___Couple___first "abstract_collection::Couple::first"
 typedef void (* abstract_collection___Couple___first__eq_t)(val_t  self, val_t  param0);
 void abstract_collection___Couple___first__eq(val_t  self, val_t  param0);
 #define LOCATE_abstract_collection___Couple___first__eq "abstract_collection::Couple::first="
-#define ATTR_abstract_collection___Couple____second(recv) ATTR(recv, COLOR_abstract_collection___Couple____second)
 typedef val_t (* abstract_collection___Couple___second_t)(val_t  self);
 val_t abstract_collection___Couple___second(val_t  self);
 #define LOCATE_abstract_collection___Couple___second "abstract_collection::Couple::second"
index 55384a9..d8ca2af 100644 (file)
@@ -49,23 +49,23 @@ void abstractmetamodel___MMContext___add_module(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module, LOCATE_abstractmetamodel, 44); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable[4]) /*MMContext::_module_hierarchy*/;
   variable[5] = variable[0];
   variable[5] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable[5]) /*MMContext::_module_hierarchy*/;
-  variable[5] = ((partial_order___PartialOrder___select_smallests_t)CALL(variable[5],COLOR_partial_order___PartialOrder___select_smallests))(variable[5],  variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
-  ((partial_order___PartialOrder___add_t)CALL(variable[4],COLOR_partial_order___PartialOrder___add))(variable[4],  variable[1] /*module*/, variable[5]) /*PartialOrder::add*/;
-  variable[4] = ((abstractmetamodel___MMModule___name_t)CALL( variable[1] /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable[1] /*module*/) /*MMModule::name*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = CALL_partial_order___PartialOrder___select_smallests(variable[5])(variable[5],  variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
+  CALL_partial_order___PartialOrder___add(variable[4])(variable[4],  variable[1] /*module*/, variable[5]) /*PartialOrder::add*/;
+  variable[4] = CALL_abstractmetamodel___MMModule___name( variable[1] /*module*/)( variable[1] /*module*/) /*MMModule::name*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_module, LOCATE_abstractmetamodel, 46); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMContext____modules(variable[4]) /*MMContext::_modules*/;
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[1] /*module*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[1] /*module*/) /*AbstractArray::add*/;
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMContext____module_hierarchy(variable[4]) /*MMContext::_module_hierarchy*/;
-  variable[4] = ((partial_order___PartialOrder_____bra_t)CALL(variable[4],COLOR_partial_order___PartialOrder_____bra))(variable[4],  variable[1] /*module*/) /*PartialOrder::[]*/;
+  variable[4] = CALL_partial_order___PartialOrder_____bra(variable[4])(variable[4],  variable[1] /*module*/) /*PartialOrder::[]*/;
   ATTR_abstractmetamodel___MMModule____mhe( variable[1] /*module*/) /*MMModule::_mhe*/ = variable[4];
   return_label1: while(false);
   tracehead = trace.prev;
@@ -81,7 +81,7 @@ void abstractmetamodel___MMContext___add_global_class(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMContext____global_classes(variable[3]) /*MMContext::_global_classes*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*c*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*c*/) /*AbstractArray::add*/;
   return_label2: while(false);
   tracehead = trace.prev;
   return;
@@ -95,47 +95,47 @@ void abstractmetamodel___MMContext___add_local_class(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sup*/ ==  NIT_NULL /*null*/) || (( variable[2] /*sup*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*sup*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*sup*/,COLOR_kernel___Object_____eqeq))( variable[2] /*sup*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sup*/ ==  NIT_NULL /*null*/) || (( variable[2] /*sup*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*sup*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*sup*/)( variable[2] /*sup*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMContext___add_local_class, LOCATE_abstractmetamodel, 57); nit_exit(1);}
   variable[5] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[5] = variable[6];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*sup*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*sup*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*sup*/)( variable[2] /*sup*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*s*/==NIT_NULL) || VAL_ISA( variable[8] /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable[4] /*csup*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*csup*/,  variable[8] /*s*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*csup*/)( variable[4] /*csup*/,  variable[8] /*s*/) /*AbstractArray::add*/;
     } else { /*if*/
-      variable[9] = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable[8] /*s*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable[8] /*s*/) /*MMLocalClass::che*/;
-      variable[9] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[9],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[9]) /*PartialOrderElement::direct_greaters*/;
-      variable[9] = ((array___AbstractArray___iterator_t)CALL(variable[9],COLOR_abstract_collection___Collection___iterator))(variable[9]) /*AbstractArray::iterator*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___che( variable[8] /*s*/)( variable[8] /*s*/) /*MMLocalClass::che*/;
+      variable[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[9])(variable[9]) /*PartialOrderElement::direct_greaters*/;
+      variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[10] = ((array___ArrayIterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*ArrayIterator::is_ok*/;
+        variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[10])) break; /*for*/
-        variable[10] = ((array___ArrayIterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*ArrayIterator::item*/;
+        variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/;
         variable[11] = variable[10];
-        variable[12] = ((array___AbstractArray___has_t)CALL( variable[4] /*csup*/,COLOR_abstract_collection___Collection___has))( variable[4] /*csup*/,  variable[11] /*ss*/) /*AbstractArray::has*/;
+        variable[12] = CALL_abstract_collection___Collection___has( variable[4] /*csup*/)( variable[4] /*csup*/,  variable[11] /*ss*/) /*AbstractArray::has*/;
         if (UNTAG_Bool(variable[12])) { /*if*/
           goto continue_5;
         }
-        ((array___AbstractArray___add_t)CALL( variable[4] /*csup*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*csup*/,  variable[11] /*ss*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[4] /*csup*/)( variable[4] /*csup*/,  variable[11] /*ss*/) /*AbstractArray::add*/;
         continue_5: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/;
       }
       break_5: while(0);
     }
     continue_4: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_4: while(0);
   variable[7] = variable[0];
   variable[7] = ATTR_abstractmetamodel___MMContext____class_hierarchy(variable[7]) /*MMContext::_class_hierarchy*/;
-  variable[7] = ((partial_order___PartialOrder___add_t)CALL(variable[7],COLOR_partial_order___PartialOrder___add))(variable[7],  variable[1] /*c*/,  variable[4] /*csup*/) /*PartialOrder::add*/;
+  variable[7] = CALL_partial_order___PartialOrder___add(variable[7])(variable[7],  variable[1] /*c*/,  variable[4] /*csup*/) /*PartialOrder::add*/;
   variable[6] = variable[7];
   ATTR_abstractmetamodel___MMLocalClass____che( variable[1] /*c*/) /*MMLocalClass::_che*/ =  variable[6] /*che*/;
   return_label3: while(false);
@@ -207,13 +207,13 @@ void abstractmetamodel___MMDirectory___add_module(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMDirectory____modules(variable[3]) /*MMDirectory::_modules*/;
-  variable[4] = ((abstractmetamodel___MMModule___name_t)CALL( variable[1] /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable[1] /*module*/) /*MMModule::name*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3], variable[4]) /*Map::has_key*/;
+  variable[4] = CALL_abstractmetamodel___MMModule___name( variable[1] /*module*/)( variable[1] /*module*/) /*MMModule::name*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[4]) /*Map::has_key*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMDirectory___add_module, LOCATE_abstractmetamodel, 96); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMDirectory____modules(variable[3]) /*MMDirectory::_modules*/;
-  variable[4] = ((abstractmetamodel___MMModule___name_t)CALL( variable[1] /*module*/,COLOR_abstractmetamodel___MMModule___name))( variable[1] /*module*/) /*MMModule::name*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[1] /*module*/) /*Map::[]=*/;
+  variable[4] = CALL_abstractmetamodel___MMModule___name( variable[1] /*module*/)( variable[1] /*module*/) /*MMModule::name*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[1] /*module*/) /*Map::[]=*/;
   return_label6: while(false);
   tracehead = trace.prev;
   return;
@@ -257,25 +257,26 @@ val_t abstractmetamodel___MMDirectory___full_name_for(val_t  self, val_t  param0
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMDirectory___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMDirectory___name))(variable[6]) /*MMDirectory::name*/;
+  variable[6] = CALL_abstractmetamodel___MMDirectory___name(variable[6])(variable[6]) /*MMDirectory::name*/;
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] =  variable[1] /*module_name*/;
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[12]) /*String::append*/;
-  variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
   variable[2] = variable[3];
   goto return_label8;
   return_label8: while(false);
@@ -290,8 +291,8 @@ val_t abstractmetamodel___MMModule___to_s(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMModule___name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___name))(variable[2]) /*MMModule::name*/;
-  variable[2] = ((symbol___Symbol___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*Symbol::to_s*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___name(variable[2])(variable[2]) /*MMModule::name*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
   variable[1] = variable[2];
   goto return_label9;
   return_label9: while(false);
@@ -396,13 +397,13 @@ void abstractmetamodel___MMModule___init(val_t  self, val_t  param0, val_t  para
   ATTR_abstractmetamodel___MMModule____directory(variable[5]) /*MMModule::_directory*/ =  variable[2] /*dir*/;
   variable[5] = variable[0];
   ATTR_abstractmetamodel___MMModule____context(variable[5]) /*MMModule::_context*/ =  variable[3] /*context*/;
-  variable[5] = TAG_Bool(( variable[2] /*dir*/ ==  NIT_NULL /*null*/) || (( variable[2] /*dir*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*dir*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*dir*/,COLOR_kernel___Object_____eqeq))( variable[2] /*dir*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = TAG_Bool(( variable[2] /*dir*/ ==  NIT_NULL /*null*/) || (( variable[2] /*dir*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*dir*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*dir*/)( variable[2] /*dir*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     ATTR_abstractmetamodel___MMModule____full_name(variable[5]) /*MMModule::_full_name*/ =  variable[1] /*name*/;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[6] = ((abstractmetamodel___MMDirectory___full_name_for_t)CALL( variable[2] /*dir*/,COLOR_abstractmetamodel___MMDirectory___full_name_for))( variable[2] /*dir*/,  variable[1] /*name*/) /*MMDirectory::full_name_for*/;
+    variable[6] = CALL_abstractmetamodel___MMDirectory___full_name_for( variable[2] /*dir*/)( variable[2] /*dir*/,  variable[1] /*name*/) /*MMDirectory::full_name_for*/;
     ATTR_abstractmetamodel___MMModule____full_name(variable[5]) /*MMModule::_full_name*/ = variable[6];
   }
   return_label10: while(false);
@@ -421,50 +422,50 @@ void abstractmetamodel___MMModule___add_super_module(val_t  self, val_t  param0,
   variable[2] =  param1;
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMModule____explicit_imported_modules(variable[4]) /*MMModule::_explicit_imported_modules*/;
-  ((abstract_collection___SimpleCollection___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
   variable[4] = TAG_Bool(( variable[2] /*visibility_level*/)==( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable[4]) /*MMModule::_intrude_modules*/;
-    ((abstract_collection___SimpleCollection___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
     variable[4] = variable[0];
     variable[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable[4]) /*MMModule::_intrude_modules*/;
     variable[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable[1] /*m*/) /*MMModule::_intrude_modules*/;
-    ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add_all))(variable[4], variable[5]) /*SimpleCollection::add_all*/;
+    CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
     variable[4] = variable[0];
     variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
     variable[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable[1] /*m*/) /*MMModule::_public_modules*/;
-    ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add_all))(variable[4], variable[5]) /*SimpleCollection::add_all*/;
+    CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
     variable[4] = variable[0];
     variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
     variable[5] = ATTR_abstractmetamodel___MMModule____private_modules( variable[1] /*m*/) /*MMModule::_private_modules*/;
-    ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add_all))(variable[4], variable[5]) /*SimpleCollection::add_all*/;
+    CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
   } else { /*if*/
     variable[4] = TAG_Bool(( variable[2] /*visibility_level*/)==( TAG_Int(1)));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
       variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
-      ((abstract_collection___SimpleCollection___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
       variable[4] = variable[0];
       variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
       variable[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable[1] /*m*/) /*MMModule::_intrude_modules*/;
-      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add_all))(variable[4], variable[5]) /*SimpleCollection::add_all*/;
+      CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
       variable[4] = variable[0];
       variable[4] = ATTR_abstractmetamodel___MMModule____public_modules(variable[4]) /*MMModule::_public_modules*/;
       variable[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable[1] /*m*/) /*MMModule::_public_modules*/;
-      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add_all))(variable[4], variable[5]) /*SimpleCollection::add_all*/;
+      CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
     } else { /*if*/
       variable[4] = variable[0];
       variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
-      ((abstract_collection___SimpleCollection___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[1] /*m*/) /*SimpleCollection::add*/;
       variable[4] = variable[0];
       variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
       variable[5] = ATTR_abstractmetamodel___MMModule____intrude_modules( variable[1] /*m*/) /*MMModule::_intrude_modules*/;
-      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add_all))(variable[4], variable[5]) /*SimpleCollection::add_all*/;
+      CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
       variable[4] = variable[0];
       variable[4] = ATTR_abstractmetamodel___MMModule____private_modules(variable[4]) /*MMModule::_private_modules*/;
       variable[5] = ATTR_abstractmetamodel___MMModule____public_modules( variable[1] /*m*/) /*MMModule::_public_modules*/;
-      ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add_all))(variable[4], variable[5]) /*SimpleCollection::add_all*/;
+      CALL_abstract_collection___SimpleCollection___add_all(variable[4])(variable[4], variable[5]) /*SimpleCollection::add_all*/;
     }
   }
   return_label11: while(false);
@@ -480,12 +481,12 @@ val_t abstractmetamodel___MMModule___visibility_for(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = TAG_Bool(( variable[1] /*m*/ == variable[3]) || (( variable[1] /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*m*/,variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*m*/,COLOR_kernel___Object_____eqeq))( variable[1] /*m*/, variable[3]) /*Object::==*/)))));
+  variable[3] = TAG_Bool(( variable[1] /*m*/ == variable[3]) || (( variable[1] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*m*/,variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*m*/)( variable[1] /*m*/, variable[3]) /*Object::==*/)))));
   variable[4] = variable[3];
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
     variable[4] = ATTR_abstractmetamodel___MMModule____intrude_modules(variable[4]) /*MMModule::_intrude_modules*/;
-    variable[4] = ((abstract_collection___Collection___has_t)CALL(variable[4],COLOR_abstract_collection___Collection___has))(variable[4],  variable[1] /*m*/) /*Collection::has*/;
+    variable[4] = CALL_abstract_collection___Collection___has(variable[4])(variable[4],  variable[1] /*m*/) /*Collection::has*/;
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
@@ -494,14 +495,14 @@ val_t abstractmetamodel___MMModule___visibility_for(val_t  self, val_t  param0)
   } else { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_abstractmetamodel___MMModule____public_modules(variable[3]) /*MMModule::_public_modules*/;
-    variable[3] = ((abstract_collection___Collection___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*m*/) /*Collection::has*/;
+    variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*m*/) /*Collection::has*/;
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[2] =  TAG_Int(2);
       goto return_label12;
     } else { /*if*/
       variable[3] = variable[0];
       variable[3] = ATTR_abstractmetamodel___MMModule____private_modules(variable[3]) /*MMModule::_private_modules*/;
-      variable[3] = ((abstract_collection___Collection___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*m*/) /*Collection::has*/;
+      variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*m*/) /*Collection::has*/;
       if (UNTAG_Bool(variable[3])) { /*if*/
         variable[2] =  TAG_Int(1);
         goto return_label12;
@@ -525,17 +526,17 @@ val_t abstractmetamodel___MMModule_____bra(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra, LOCATE_abstractmetamodel, 218); nit_exit(1);}
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*c*/ ==  NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*c*/,COLOR_kernel___Object_____eqeq))( variable[1] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*c*/ ==  NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*c*/)( variable[1] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule_____bra, LOCATE_abstractmetamodel, 219); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*c*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*c*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*c*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*c*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label13;
   } else { /*if*/
@@ -558,7 +559,7 @@ void abstractmetamodel___MMModule___add_local_class(val_t  self, val_t  param0)
   ATTR_abstractmetamodel___MMLocalClass____module( variable[1] /*c*/) /*MMLocalClass::_module*/ = variable[3];
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMModule____local_classes(variable[3]) /*MMModule::_local_classes*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*c*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*c*/) /*AbstractArray::add*/;
   return_label14: while(false);
   tracehead = trace.prev;
   return;
@@ -574,8 +575,8 @@ val_t abstractmetamodel___MMModule___class_by_name(val_t  self, val_t  param0) {
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[4]) /*MMModule::_global_class_by_name*/;
-  variable[4] = ((abstract_collection___Map_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[1] /*n*/) /*Map::[]*/;
-  variable[3] = ((abstractmetamodel___MMModule_____bra_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule_____bra))(variable[3], variable[4]) /*MMModule::[]*/;
+  variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[1] /*n*/) /*Map::[]*/;
+  variable[3] = CALL_abstractmetamodel___MMModule_____bra(variable[3])(variable[3], variable[4]) /*MMModule::[]*/;
   variable[2] = variable[3];
   goto return_label15;
   return_label15: while(false);
@@ -592,7 +593,7 @@ val_t abstractmetamodel___MMModule___has_global_class_named(val_t  self, val_t
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*n*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*n*/) /*Map::has_key*/;
   variable[2] = variable[3];
   goto return_label16;
   return_label16: while(false);
@@ -609,11 +610,11 @@ val_t abstractmetamodel___MMModule___global_class_named(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*n*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*n*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*n*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*n*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label17;
   } else { /*if*/
@@ -633,24 +634,24 @@ void abstractmetamodel___MMModule___set_supers_class(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___set_supers_class, LOCATE_abstractmetamodel, 262); nit_exit(1);}
   variable[5] = variable[0];
   variable[5] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(variable[5]) /*MMModule::_class_specialization_hierarchy*/;
-  variable[5] = ((partial_order___PartialOrder___select_smallests_t)CALL(variable[5],COLOR_partial_order___PartialOrder___select_smallests))(variable[5],  variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
+  variable[5] = CALL_partial_order___PartialOrder___select_smallests(variable[5])(variable[5],  variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
   variable[5] = ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(variable[5]) /*MMModule::_class_specialization_hierarchy*/;
-  variable[5] = ((partial_order___PartialOrder___add_t)CALL(variable[5],COLOR_partial_order___PartialOrder___add))(variable[5],  variable[1] /*c*/,  variable[4] /*tab*/) /*PartialOrder::add*/;
+  variable[5] = CALL_partial_order___PartialOrder___add(variable[5])(variable[5],  variable[1] /*c*/,  variable[4] /*tab*/) /*PartialOrder::add*/;
   ATTR_abstractmetamodel___MMLocalClass____cshe( variable[1] /*c*/) /*MMLocalClass::_cshe*/ = variable[5];
-  variable[6] = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable[1] /*c*/) /*MMLocalClass::crhe*/;
-  variable[6] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[6]) /*PartialOrderElement::direct_greaters*/;
-  variable[6] = ((array___Collection___to_a_t)CALL(variable[6],COLOR_array___Collection___to_a))(variable[6]) /*Collection::to_a*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___crhe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::crhe*/;
+  variable[6] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[6])(variable[6]) /*PartialOrderElement::direct_greaters*/;
+  variable[6] = CALL_array___Collection___to_a(variable[6])(variable[6]) /*Collection::to_a*/;
   variable[5] = variable[6];
-  ((abstract_collection___SimpleCollection___add_all_t)CALL( variable[5] /*tab_all*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable[5] /*tab_all*/,  variable[4] /*tab*/) /*SimpleCollection::add_all*/;
+  CALL_abstract_collection___SimpleCollection___add_all( variable[5] /*tab_all*/)( variable[5] /*tab_all*/,  variable[4] /*tab*/) /*SimpleCollection::add_all*/;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMModule___context_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___context))(variable[6]) /*MMModule::context*/;
-  ((abstractmetamodel___MMContext___add_local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMContext___add_local_class))(variable[6],  variable[1] /*c*/,  variable[5] /*tab_all*/) /*MMContext::add_local_class*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___context(variable[6])(variable[6]) /*MMModule::context*/;
+  CALL_abstractmetamodel___MMContext___add_local_class(variable[6])(variable[6],  variable[1] /*c*/,  variable[5] /*tab_all*/) /*MMContext::add_local_class*/;
   return_label18: while(false);
   tracehead = trace.prev;
   return;
@@ -663,13 +664,13 @@ void abstractmetamodel___MMModule___register_global_class(val_t  self, val_t  pa
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[1] /*c*/) /*MMLocalClass::global*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___global( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::global*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMModule___register_global_class, LOCATE_abstractmetamodel, 273); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMModule____local_class_by_global(variable[3]) /*MMModule::_local_class_by_global*/;
-  variable[4] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[1] /*c*/) /*MMLocalClass::global*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[1] /*c*/) /*Map::[]=*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___global( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::global*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[1] /*c*/) /*Map::[]=*/;
   return_label19: while(false);
   tracehead = trace.prev;
   return;
@@ -682,8 +683,8 @@ val_t abstractmetamodel___MMGlobalClass___to_s(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[2]) /*MMGlobalClass::intro*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*MMLocalClass::to_s*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[2])(variable[2]) /*MMGlobalClass::intro*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*MMLocalClass::to_s*/;
   variable[1] = variable[2];
   goto return_label20;
   return_label20: while(false);
@@ -719,9 +720,9 @@ void abstractmetamodel___MMGlobalClass___init(val_t  self, val_t  param0, int* i
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalClass].i]) return;
   variable[3] = variable[0];
   ATTR_abstractmetamodel___MMGlobalClass____intro(variable[3]) /*MMGlobalClass::_intro*/ =  variable[1] /*c*/;
-  variable[3] = ((abstractmetamodel___MMLocalClass___context_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___context))( variable[1] /*c*/) /*MMLocalClass::context*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___context( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::context*/;
   variable[4] = variable[0];
-  ((abstractmetamodel___MMContext___add_global_class_t)CALL(variable[3],COLOR_abstractmetamodel___MMContext___add_global_class))(variable[3], variable[4]) /*MMContext::add_global_class*/;
+  CALL_abstractmetamodel___MMContext___add_global_class(variable[3])(variable[3], variable[4]) /*MMContext::add_global_class*/;
   return_label21: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalClass].i] = 1;
   tracehead = trace.prev;
@@ -735,8 +736,8 @@ val_t abstractmetamodel___MMGlobalClass___name(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[2]) /*MMGlobalClass::intro*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___name))(variable[2]) /*MMLocalClass::name*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[2])(variable[2]) /*MMGlobalClass::intro*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___name(variable[2])(variable[2]) /*MMLocalClass::name*/;
   variable[1] = variable[2];
   goto return_label22;
   return_label22: while(false);
@@ -751,8 +752,8 @@ val_t abstractmetamodel___MMGlobalClass___module(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[2]) /*MMGlobalClass::intro*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___module))(variable[2]) /*MMLocalClass::module*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[2])(variable[2]) /*MMGlobalClass::intro*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
   variable[1] = variable[2];
   goto return_label23;
   return_label23: while(false);
@@ -767,41 +768,41 @@ void abstractmetamodel___MMGlobalClass___register_local_class(val_t  self, val_t
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*c*/) /*MMLocalClass::module*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::module*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, LOCATE_abstractmetamodel, 313); nit_exit(1);}
-  variable[3] = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable[1] /*c*/) /*MMLocalClass::crhe*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___crhe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::crhe*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalClass___register_local_class, LOCATE_abstractmetamodel, 314); nit_exit(1);}
   variable[4] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMGlobalClass___class_refinement_hierarchy_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy))(variable[4]) /*MMGlobalClass::class_refinement_hierarchy*/;
-  variable[4] = ((partial_order___PartialOrder___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*PartialOrder::iterator*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(variable[4])(variable[4]) /*MMGlobalClass::class_refinement_hierarchy*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*PartialOrder::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*c*/) /*MMLocalClass::module*/;
-    variable[7] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[7],COLOR_abstractmetamodel___MMModule___mhe))(variable[7]) /*MMModule::mhe*/;
-    variable[8] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[6] /*s*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[6] /*s*/) /*MMLocalClass::module*/;
-    variable[7] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement_____l))(variable[7], variable[8]) /*PartialOrderElement::<*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::module*/;
+    variable[7] = CALL_abstractmetamodel___MMModule___mhe(variable[7])(variable[7]) /*MMModule::mhe*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___module( variable[6] /*s*/)( variable[6] /*s*/) /*MMLocalClass::module*/;
+    variable[7] = CALL_partial_order___PartialOrderElement_____l(variable[7])(variable[7], variable[8]) /*PartialOrderElement::<*/;
     variable[8] = variable[7];
     if (UNTAG_Bool(variable[8])) { /* and */
       variable[8] = TAG_Bool(( variable[6] /*s*/==NIT_NULL) || VAL_ISA( variable[6] /*s*/, COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
     }
     variable[7] = variable[8];
     if (UNTAG_Bool(variable[7])) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable[3] /*sup*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*sup*/,  variable[6] /*s*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[3] /*sup*/)( variable[3] /*sup*/,  variable[6] /*s*/) /*AbstractArray::add*/;
     }
     continue_25: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_25: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(variable[4]) /*MMGlobalClass::_class_refinement_hierarchy*/;
-  variable[4] = ((partial_order___PartialOrder___add_t)CALL(variable[4],COLOR_partial_order___PartialOrder___add))(variable[4],  variable[1] /*c*/,  variable[3] /*sup*/) /*PartialOrder::add*/;
+  variable[4] = CALL_partial_order___PartialOrder___add(variable[4])(variable[4],  variable[1] /*c*/,  variable[3] /*sup*/) /*PartialOrder::add*/;
   ATTR_abstractmetamodel___MMLocalClass____crhe( variable[1] /*c*/) /*MMLocalClass::_crhe*/ = variable[4];
   return_label24: while(false);
   tracehead = trace.prev;
@@ -893,7 +894,7 @@ val_t abstractmetamodel___MMGlobalClass___is_mixin(val_t  self) {
   variable[2] = variable[0];
   variable[2] = ATTR_abstractmetamodel___MMGlobalClass____mixin_of(variable[2]) /*MMGlobalClass::_mixin_of*/;
   variable[3] = variable[0];
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], variable[3]) /*Object::==*/)))))));
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], variable[3]) /*Object::==*/)))))));
   variable[1] = variable[2];
   goto return_label26;
   return_label26: while(false);
@@ -928,7 +929,7 @@ val_t abstractmetamodel___MMLocalClass___to_s(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstractmetamodel___MMLocalClass____name(variable[2]) /*MMLocalClass::_name*/;
-  variable[2] = ((symbol___Symbol___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*Symbol::to_s*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
   variable[1] = variable[2];
   goto return_label27;
   return_label27: while(false);
@@ -1053,8 +1054,8 @@ val_t abstractmetamodel___MMLocalClass___for_module(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___global))(variable[3]) /*MMLocalClass::global*/;
-  variable[3] = ((abstractmetamodel___MMModule_____bra_t)CALL( variable[1] /*m*/,COLOR_abstractmetamodel___MMModule_____bra))( variable[1] /*m*/, variable[3]) /*MMModule::[]*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___global(variable[3])(variable[3]) /*MMLocalClass::global*/;
+  variable[3] = CALL_abstractmetamodel___MMModule_____bra( variable[1] /*m*/)( variable[1] /*m*/, variable[3]) /*MMModule::[]*/;
   variable[2] = variable[3];
   goto return_label29;
   return_label29: while(false);
@@ -1075,15 +1076,15 @@ void abstractmetamodel___MMLocalClass___new_global(val_t  self) {
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable[3]) /*MMLocalClass::_module*/;
   variable[3] = ATTR_abstractmetamodel___MMModule____global_classes(variable[3]) /*MMModule::_global_classes*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[2] /*g*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[2] /*g*/) /*AbstractArray::add*/;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable[3]) /*MMLocalClass::_module*/;
   variable[3] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[3]) /*MMModule::_global_class_by_name*/;
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___name))(variable[4]) /*MMLocalClass::name*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[2] /*g*/) /*Map::[]=*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___name(variable[4])(variable[4]) /*MMLocalClass::name*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[2] /*g*/) /*Map::[]=*/;
   variable[3] = variable[0];
-  ((abstractmetamodel___MMLocalClass___set_global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___set_global))(variable[3],  variable[2] /*g*/) /*MMLocalClass::set_global*/;
+  CALL_abstractmetamodel___MMLocalClass___set_global(variable[3])(variable[3],  variable[2] /*g*/) /*MMLocalClass::set_global*/;
   return_label30: while(false);
   tracehead = trace.prev;
   return;
@@ -1096,18 +1097,18 @@ void abstractmetamodel___MMLocalClass___set_global(val_t  self, val_t  param0) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*g*/ ==  NIT_NULL /*null*/) || (( variable[1] /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*g*/,COLOR_kernel___Object_____eqeq))( variable[1] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*g*/ ==  NIT_NULL /*null*/) || (( variable[1] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*g*/)( variable[1] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___set_global, LOCATE_abstractmetamodel, 412); nit_exit(1);}
   variable[3] = variable[0];
   ATTR_abstractmetamodel___MMLocalClass____global(variable[3]) /*MMLocalClass::_global*/ =  variable[1] /*g*/;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____global(variable[3]) /*MMLocalClass::_global*/;
   variable[4] = variable[0];
-  ((abstractmetamodel___MMGlobalClass___register_local_class_t)CALL(variable[3],COLOR_abstractmetamodel___MMGlobalClass___register_local_class))(variable[3], variable[4]) /*MMGlobalClass::register_local_class*/;
+  CALL_abstractmetamodel___MMGlobalClass___register_local_class(variable[3])(variable[3], variable[4]) /*MMGlobalClass::register_local_class*/;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____module(variable[3]) /*MMLocalClass::_module*/;
   variable[4] = variable[0];
-  ((abstractmetamodel___MMModule___register_global_class_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___register_global_class))(variable[3], variable[4]) /*MMModule::register_global_class*/;
+  CALL_abstractmetamodel___MMModule___register_global_class(variable[3])(variable[3], variable[4]) /*MMModule::register_global_class*/;
   return_label31: while(false);
   tracehead = trace.prev;
   return;
@@ -1122,9 +1123,9 @@ val_t abstractmetamodel___MMLocalClass___has_global_property_by_name(val_t  self
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[4]) /*MMLocalClass::_properties_by_name*/;
-  variable[4] = ((abstract_collection___Map_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[1] /*n*/) /*Map::[]*/;
+  variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[1] /*n*/) /*Map::[]*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*props*/ ==  NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*props*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*props*/,COLOR_kernel___Object_____eqeq))( variable[3] /*props*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*props*/ ==  NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*props*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*props*/)( variable[3] /*props*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[2] = variable[4];
   goto return_label32;
   return_label32: while(false);
@@ -1141,12 +1142,12 @@ val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t  self, val_t
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[4]) /*MMLocalClass::_properties_by_name*/;
-  variable[4] = ((abstract_collection___Map_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[1] /*n*/) /*Map::[]*/;
+  variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[1] /*n*/) /*Map::[]*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*props*/ ==  NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[3] /*props*/,COLOR_kernel___Object_____eqeq))( variable[3] /*props*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[4] = TAG_Bool(( variable[3] /*props*/ ==  NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*props*/)( variable[3] /*props*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   variable[5] = variable[4];
   if (!UNTAG_Bool(variable[5])) { /* or */
-    variable[5] = ((array___AbstractArray___length_t)CALL( variable[3] /*props*/,COLOR_abstract_collection___Collection___length))( variable[3] /*props*/) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length( variable[3] /*props*/)( variable[3] /*props*/) /*AbstractArray::length*/;
     variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(1)));
   }
   variable[4] = variable[5];
@@ -1154,7 +1155,7 @@ val_t abstractmetamodel___MMLocalClass___get_property_by_name(val_t  self, val_t
     variable[2] =  NIT_NULL /*null*/;
     goto return_label33;
   }
-  variable[4] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[3] /*props*/,COLOR_abstract_collection___Collection___first))( variable[3] /*props*/) /*IndexedCollection::first*/;
+  variable[4] = CALL_abstract_collection___Collection___first( variable[3] /*props*/)( variable[3] /*props*/) /*IndexedCollection::first*/;
   variable[2] = variable[4];
   goto return_label33;
   return_label33: while(false);
@@ -1170,7 +1171,7 @@ val_t abstractmetamodel___MMLocalClass___attribute(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMLocalClass___get_property_by_name_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___get_property_by_name))(variable[3],  variable[1] /*a*/) /*MMLocalClass::get_property_by_name*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(variable[3])(variable[3],  variable[1] /*a*/) /*MMLocalClass::get_property_by_name*/;
   variable[2] = variable[3];
   goto return_label34;
   return_label34: while(false);
@@ -1187,15 +1188,15 @@ val_t abstractmetamodel___MMLocalClass___method(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[3]) /*MMLocalClass::_properties_by_name*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___method, LOCATE_abstractmetamodel, 448); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[4]) /*MMLocalClass::_properties_by_name*/;
-  variable[4] = ((abstract_collection___Map_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[1] /*na*/) /*Map::[]*/;
+  variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[1] /*na*/) /*Map::[]*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*props*/ ==  NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*props*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*props*/,COLOR_kernel___Object_____eqeq))( variable[3] /*props*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*props*/ ==  NIT_NULL /*null*/) || (( variable[3] /*props*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*props*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*props*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*props*/)( variable[3] /*props*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[3] /*props*/,COLOR_abstract_collection___Collection___first))( variable[3] /*props*/) /*IndexedCollection::first*/;
+    variable[4] = CALL_abstract_collection___Collection___first( variable[3] /*props*/)( variable[3] /*props*/) /*IndexedCollection::first*/;
     variable[2] = variable[4];
     goto return_label35;
   }
@@ -1213,18 +1214,18 @@ val_t abstractmetamodel___MMLocalClass___select_method(val_t  self, val_t  param
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ ==  NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*name*/,COLOR_kernel___Object_____eqeq))( variable[1] /*name*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ ==  NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*name*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*name*/)( variable[1] /*name*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method, LOCATE_abstractmetamodel, 461); nit_exit(1);}
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___method_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___method))(variable[4],  variable[1] /*name*/) /*MMLocalClass::method*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___method(variable[4])(variable[4],  variable[1] /*name*/) /*MMLocalClass::method*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*gp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*gp*/,COLOR_kernel___Object_____eqeq))( variable[3] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*gp*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*gp*/)( variable[3] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  NIT_NULL /*null*/;
     goto return_label36;
   }
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMLocalClass_____bra_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[5],  variable[3] /*gp*/) /*MMLocalClass::[]*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[5])(variable[5],  variable[3] /*gp*/) /*MMLocalClass::[]*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(( variable[4] /*res*/==NIT_NULL) || VAL_ISA( variable[4] /*res*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_method, LOCATE_abstractmetamodel, 465); nit_exit(1);}
@@ -1242,18 +1243,18 @@ val_t abstractmetamodel___MMLocalClass___select_attribute(val_t  self, val_t  pa
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ ==  NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*name*/,COLOR_kernel___Object_____eqeq))( variable[1] /*name*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ ==  NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*name*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*name*/)( variable[1] /*name*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute, LOCATE_abstractmetamodel, 473); nit_exit(1);}
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___attribute_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___attribute))(variable[4],  variable[1] /*name*/) /*MMLocalClass::attribute*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___attribute(variable[4])(variable[4],  variable[1] /*name*/) /*MMLocalClass::attribute*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*gp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*gp*/,COLOR_kernel___Object_____eqeq))( variable[3] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*gp*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*gp*/)( variable[3] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  NIT_NULL /*null*/;
     goto return_label37;
   }
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMLocalClass_____bra_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[5],  variable[3] /*gp*/) /*MMLocalClass::[]*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[5])(variable[5],  variable[3] /*gp*/) /*MMLocalClass::[]*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(( variable[4] /*res*/==NIT_NULL) || VAL_ISA( variable[4] /*res*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___select_attribute, LOCATE_abstractmetamodel, 477); nit_exit(1);}
@@ -1274,44 +1275,44 @@ val_t abstractmetamodel___MMLocalClass___super_methods_named(val_t  self, val_t
   variable[4] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[4]) /*MMLocalClass::cshe*/;
-  variable[4] = ((partial_order___PartialOrderElement___greaters_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___greaters))(variable[4]) /*PartialOrderElement::greaters*/;
-  variable[4] = ((abstract_collection___Collection___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Collection::iterator*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/;
+  variable[4] = CALL_partial_order___PartialOrderElement___greaters(variable[4])(variable[4]) /*PartialOrderElement::greaters*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[8] = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable[6] /*c*/,  variable[1] /*n*/) /*MMLocalClass::method*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___method( variable[6] /*c*/)( variable[6] /*c*/,  variable[1] /*n*/) /*MMLocalClass::method*/;
     variable[7] = variable[8];
-    variable[8] = TAG_Bool(( variable[7] /*g*/ ==  NIT_NULL /*null*/) || (( variable[7] /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*g*/,COLOR_kernel___Object_____eqeq))( variable[7] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[8] = TAG_Bool(( variable[7] /*g*/ ==  NIT_NULL /*null*/) || (( variable[7] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*g*/)( variable[7] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[8])) { /*if*/
       goto continue_39;
     }
-    ((array___AbstractArray___add_t)CALL( variable[3] /*classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*classes*/,  variable[6] /*c*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*classes*/)( variable[3] /*classes*/,  variable[6] /*c*/) /*AbstractArray::add*/;
     continue_39: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_39: while(0);
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[4]) /*MMLocalClass::cshe*/;
-  variable[4] = ((partial_order___PartialOrderElement___order_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___order))(variable[4]) /*PartialOrderElement::order*/;
-  variable[4] = ((partial_order___PartialOrder___select_smallests_t)CALL(variable[4],COLOR_partial_order___PartialOrder___select_smallests))(variable[4],  variable[3] /*classes*/) /*PartialOrder::select_smallests*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/;
+  variable[4] = CALL_partial_order___PartialOrderElement___order(variable[4])(variable[4]) /*PartialOrderElement::order*/;
+  variable[4] = CALL_partial_order___PartialOrder___select_smallests(variable[4])(variable[4],  variable[3] /*classes*/) /*PartialOrder::select_smallests*/;
   variable[3] = variable[4] /*classes=*/;
   variable[5] = NEW_Array_array___Array___init(); /*new Array[MMLocalProperty]*/
   variable[4] = variable[5];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*classes*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*classes*/)( variable[3] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[9] = ((abstractmetamodel___MMLocalClass___method_t)CALL( variable[7] /*c*/,COLOR_abstractmetamodel___MMLocalClass___method))( variable[7] /*c*/,  variable[1] /*n*/) /*MMLocalClass::method*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___method( variable[7] /*c*/)( variable[7] /*c*/,  variable[1] /*n*/) /*MMLocalClass::method*/;
     variable[8] = variable[9];
-    variable[9] = ((abstractmetamodel___MMLocalClass_____bra_t)CALL( variable[7] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[7] /*c*/,  variable[8] /*g*/) /*MMLocalClass::[]*/;
-    ((array___AbstractArray___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/, variable[9]) /*AbstractArray::add*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[7] /*c*/)( variable[7] /*c*/,  variable[8] /*g*/) /*MMLocalClass::[]*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/, variable[9]) /*AbstractArray::add*/;
     continue_40: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_40: while(0);
   variable[2] =  variable[4] /*res*/;
@@ -1328,18 +1329,18 @@ void abstractmetamodel___MMLocalClass___register_local_property(val_t  self, val
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[1] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[1] /*p*/) /*MMLocalProperty::global*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_abstractmetamodel___MMLocalProperty___global( variable[1] /*p*/)( variable[1] /*p*/) /*MMLocalProperty::global*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass___register_local_property, LOCATE_abstractmetamodel, 504); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
-  variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[1] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[1] /*p*/) /*MMLocalProperty::global*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3], variable[4]) /*Map::has_key*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[1] /*p*/)( variable[1] /*p*/) /*MMLocalProperty::global*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[4]) /*Map::has_key*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
-    variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[1] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[1] /*p*/) /*MMLocalProperty::global*/;
-    ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[1] /*p*/) /*Map::[]=*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[1] /*p*/)( variable[1] /*p*/) /*MMLocalProperty::global*/;
+    CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[1] /*p*/) /*Map::[]=*/;
   }
   return_label41: while(false);
   tracehead = trace.prev;
@@ -1353,32 +1354,32 @@ void abstractmetamodel___MMLocalClass___register_global_property(val_t  self, va
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[1] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
   variable[3] = variable[4];
-  variable[5] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[3] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[3] /*prop*/) /*MMLocalProperty::name*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___name( variable[3] /*prop*/)( variable[3] /*prop*/) /*MMLocalProperty::name*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
   variable[6] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[6]) /*MMLocalClass::_properties_by_name*/;
-  variable[6] = ((abstract_collection___Map_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[4] /*name*/) /*Map::[]*/;
+  variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[4] /*name*/) /*Map::[]*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(( variable[5] /*props*/ ==  NIT_NULL /*null*/) || (( variable[5] /*props*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[5] /*props*/,COLOR_kernel___Object_____eqeq))( variable[5] /*props*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[6] = TAG_Bool(( variable[5] /*props*/ ==  NIT_NULL /*null*/) || (( variable[5] /*props*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*props*/)( variable[5] /*props*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
     variable[6] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[6]) /*MMLocalClass::_properties_by_name*/;
     variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMGlobalProperty]*/
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[1] /*glob*/) /*AbstractArray::add*/;
-    ((abstract_collection___Map_____braeq_t)CALL(variable[6],COLOR_abstract_collection___Map_____braeq))(variable[6],  variable[4] /*name*/, variable[7]) /*Map::[]=*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[1] /*glob*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___Map_____braeq(variable[6])(variable[6],  variable[4] /*name*/, variable[7]) /*Map::[]=*/;
   } else { /*if*/
     variable[6] = variable[0];
     variable[6] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[6]) /*MMLocalClass::_properties_by_name*/;
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[4] /*name*/) /*Map::[]*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[1] /*glob*/) /*AbstractArray::add*/;
+    variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[4] /*name*/) /*Map::[]*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[1] /*glob*/) /*AbstractArray::add*/;
   }
   variable[6] = variable[0];
   variable[6] = ATTR_abstractmetamodel___MMLocalClass____global_properties(variable[6]) /*MMLocalClass::_global_properties*/;
-  ((abstract_collection___SimpleCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[1] /*glob*/) /*SimpleCollection::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[1] /*glob*/) /*SimpleCollection::add*/;
   variable[6] = variable[0];
-  ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___register_local_property))(variable[6],  variable[3] /*prop*/) /*MMLocalClass::register_local_property*/;
+  CALL_abstractmetamodel___MMLocalClass___register_local_property(variable[6])(variable[6],  variable[3] /*prop*/) /*MMLocalClass::register_local_property*/;
   return_label42: while(false);
   tracehead = trace.prev;
   return;
@@ -1393,17 +1394,17 @@ val_t abstractmetamodel___MMLocalClass_____bra(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass_____bra, LOCATE_abstractmetamodel, 529); nit_exit(1);}
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*glob*/ ==  NIT_NULL /*null*/) || (( variable[1] /*glob*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*glob*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*glob*/,COLOR_kernel___Object_____eqeq))( variable[1] /*glob*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*glob*/ ==  NIT_NULL /*null*/) || (( variable[1] /*glob*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*glob*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*glob*/)( variable[1] /*glob*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalClass_____bra, LOCATE_abstractmetamodel, 530); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*glob*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*glob*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*glob*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*glob*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label43;
   }
@@ -1421,8 +1422,8 @@ val_t abstractmetamodel___MMLocalClass___context(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___module))(variable[2]) /*MMLocalClass::module*/;
-  variable[2] = ((abstractmetamodel___MMModule___context_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___context))(variable[2]) /*MMModule::context*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___context(variable[2])(variable[2]) /*MMModule::context*/;
   variable[1] = variable[2];
   goto return_label44;
   return_label44: while(false);
@@ -1437,8 +1438,8 @@ val_t abstractmetamodel___MMGlobalProperty___to_s(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[2]) /*MMGlobalProperty::intro*/;
-  variable[2] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable[2]) /*MMLocalProperty::full_name*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[2])(variable[2]) /*MMLocalProperty::full_name*/;
   variable[1] = variable[2];
   goto return_label45;
   return_label45: while(false);
@@ -1462,8 +1463,8 @@ val_t abstractmetamodel___MMGlobalProperty___local_class(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[2]) /*MMGlobalProperty::intro*/;
-  variable[2] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[2]) /*MMLocalProperty::local_class*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[2])(variable[2]) /*MMLocalProperty::local_class*/;
   variable[1] = variable[2];
   goto return_label46;
   return_label46: while(false);
@@ -1488,7 +1489,7 @@ void abstractmetamodel___MMGlobalProperty___init(val_t  self, val_t  param0, int
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalProperty].i]) return;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*p*/ ==  NIT_NULL /*null*/) || (( variable[1] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*p*/,COLOR_kernel___Object_____eqeq))( variable[1] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*p*/ ==  NIT_NULL /*null*/) || (( variable[1] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*p*/)( variable[1] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___init, LOCATE_abstractmetamodel, 565); nit_exit(1);}
   variable[3] = variable[0];
   variable[4] = NEW_PartialOrder_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalProperty]*/
@@ -1497,7 +1498,7 @@ void abstractmetamodel___MMGlobalProperty___init(val_t  self, val_t  param0, int
   ATTR_abstractmetamodel___MMGlobalProperty____intro(variable[3]) /*MMGlobalProperty::_intro*/ =  variable[1] /*p*/;
   variable[3] = variable[0];
   variable[4] = NEW_Array_array___Array___init(); /*new Array[MMLocalProperty]*/
-  ((abstractmetamodel___MMGlobalProperty___add_local_property_t)CALL(variable[3],COLOR_abstractmetamodel___MMGlobalProperty___add_local_property))(variable[3],  variable[1] /*p*/, variable[4]) /*MMGlobalProperty::add_local_property*/;
+  CALL_abstractmetamodel___MMGlobalProperty___add_local_property(variable[3])(variable[3],  variable[1] /*p*/, variable[4]) /*MMGlobalProperty::add_local_property*/;
   return_label47: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMGlobalProperty].i] = 1;
   tracehead = trace.prev;
@@ -1512,13 +1513,13 @@ void abstractmetamodel___MMGlobalProperty___add_local_property(val_t  self, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*i*/ ==  NIT_NULL /*null*/) || (( variable[1] /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*i*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*i*/,COLOR_kernel___Object_____eqeq))( variable[1] /*i*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*i*/ ==  NIT_NULL /*null*/) || (( variable[1] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*i*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*i*/)( variable[1] /*i*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property, LOCATE_abstractmetamodel, 578); nit_exit(1);}
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sup*/ ==  NIT_NULL /*null*/) || (( variable[2] /*sup*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*sup*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*sup*/,COLOR_kernel___Object_____eqeq))( variable[2] /*sup*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sup*/ ==  NIT_NULL /*null*/) || (( variable[2] /*sup*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*sup*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sup*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*sup*/)( variable[2] /*sup*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMGlobalProperty___add_local_property, LOCATE_abstractmetamodel, 579); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(variable[4]) /*MMGlobalProperty::_property_hierarchy*/;
-  variable[4] = ((partial_order___PartialOrder___add_t)CALL(variable[4],COLOR_partial_order___PartialOrder___add))(variable[4],  variable[1] /*i*/,  variable[2] /*sup*/) /*PartialOrder::add*/;
+  variable[4] = CALL_partial_order___PartialOrder___add(variable[4])(variable[4],  variable[1] /*i*/,  variable[2] /*sup*/) /*PartialOrder::add*/;
   ATTR_abstractmetamodel___MMLocalProperty____prhe( variable[1] /*i*/) /*MMLocalProperty::_prhe*/ = variable[4];
   return_label48: while(false);
   tracehead = trace.prev;
@@ -1532,7 +1533,7 @@ val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[2]) /*MMGlobalProperty::intro*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
   variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
   variable[1] = variable[2];
   goto return_label49;
@@ -1548,7 +1549,7 @@ val_t abstractmetamodel___MMGlobalProperty___is_method(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[2]) /*MMGlobalProperty::intro*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
   variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
   variable[1] = variable[2];
   goto return_label50;
@@ -1584,24 +1585,24 @@ val_t abstractmetamodel___MMGlobalProperty___is_init_for(val_t  self, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[3],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[3]) /*MMGlobalProperty::is_init*/;
+  variable[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[3])(variable[3]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
     variable[2] =  TAG_Bool(false);
     goto return_label51;
   }
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[4]) /*MMGlobalProperty::intro*/;
-  variable[4] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[4]) /*MMLocalProperty::local_class*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[4])(variable[4]) /*MMGlobalProperty::intro*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[4])(variable[4]) /*MMLocalProperty::local_class*/;
   variable[3] = variable[4];
-  variable[5] = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable[1] /*c*/) /*MMLocalClass::che*/;
-  variable[5] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[5],COLOR_partial_order___PartialOrderElement_____leq))(variable[5],  variable[3] /*sc*/) /*PartialOrderElement::<=*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___che( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::che*/;
+  variable[5] = CALL_partial_order___PartialOrderElement_____leq(variable[5])(variable[5],  variable[3] /*sc*/) /*PartialOrderElement::<=*/;
   variable[6] = variable[5];
   if (UNTAG_Bool(variable[6])) { /* and */
-    variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[1] /*c*/) /*MMLocalClass::global*/;
-    variable[6] = ((abstractmetamodel___MMGlobalClass___mixin_of_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalClass___mixin_of))(variable[6]) /*MMGlobalClass::mixin_of*/;
-    variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[3] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[3] /*sc*/) /*MMLocalClass::global*/;
-    variable[7] = ((abstractmetamodel___MMGlobalClass___mixin_of_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalClass___mixin_of))(variable[7]) /*MMGlobalClass::mixin_of*/;
-    variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], variable[7]) /*Object::==*/)))));
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::global*/;
+    variable[6] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(variable[6])(variable[6]) /*MMGlobalClass::mixin_of*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[3] /*sc*/)( variable[3] /*sc*/) /*MMLocalClass::global*/;
+    variable[7] = CALL_abstractmetamodel___MMGlobalClass___mixin_of(variable[7])(variable[7]) /*MMGlobalClass::mixin_of*/;
+    variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
   }
   variable[5] = variable[6];
   variable[4] = variable[5];
@@ -1638,8 +1639,8 @@ val_t abstractmetamodel___MMLocalProperty___to_s(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[2]) /*MMLocalProperty::name*/;
-  variable[2] = ((symbol___Symbol___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*Symbol::to_s*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalProperty___name(variable[2])(variable[2]) /*MMLocalProperty::name*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
   variable[1] = variable[2];
   goto return_label52;
   return_label52: while(false);
@@ -1691,7 +1692,7 @@ val_t abstractmetamodel___MMLocalProperty___module(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable[2]) /*MMLocalProperty::_local_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___module))(variable[2]) /*MMLocalClass::module*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
   variable[1] = variable[2];
   goto return_label53;
   return_label53: while(false);
@@ -1706,109 +1707,112 @@ val_t abstractmetamodel___MMLocalProperty___full_name(val_t  self) {
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[2]) /*MMLocalProperty::global*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = CALL_abstractmetamodel___MMLocalProperty___global(variable[2])(variable[2]) /*MMLocalProperty::global*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[2])) { /*if*/
-    variable[2] = NEW_String_string___String___init(); /*new String*/
+    variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[4] = variable[3];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
     variable[5] = variable[0];
-    variable[5] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[5]) /*MMLocalProperty::local_class*/;
-    variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
     variable[6] = variable[5];
-    variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
     variable[9] = variable[0];
-    variable[9] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[9]) /*MMLocalProperty::local_class*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[9])(variable[9]) /*MMLocalProperty::local_class*/;
     variable[10] = variable[9];
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("::(?::"), TAG_Int(6)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
     variable[13] = variable[0];
-    variable[13] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[13]) /*MMLocalProperty::name*/;
+    variable[13] = CALL_abstractmetamodel___MMLocalProperty___name(variable[13])(variable[13]) /*MMLocalProperty::name*/;
     variable[14] = variable[13];
-    variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[14]) /*String::append*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
+    variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
     variable[1] = variable[2];
     goto return_label54;
   } else { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[2]) /*MMLocalProperty::global*/;
-    variable[2] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[2]) /*MMGlobalProperty::intro*/;
+    variable[2] = CALL_abstractmetamodel___MMLocalProperty___global(variable[2])(variable[2]) /*MMLocalProperty::global*/;
+    variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
     variable[3] = variable[0];
-    variable[2] = TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], variable[3]) /*Object::==*/)))));
+    variable[2] = TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], variable[3]) /*Object::==*/)))));
     if (UNTAG_Bool(variable[2])) { /*if*/
-      variable[2] = NEW_String_string___String___init(); /*new String*/
+      variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[4] = variable[3];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
       variable[5] = variable[0];
-      variable[5] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[5]) /*MMLocalProperty::local_class*/;
-      variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/;
+      variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
+      variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
       variable[6] = variable[5];
-      variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
       variable[9] = variable[0];
-      variable[9] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[9]) /*MMLocalProperty::local_class*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[9])(variable[9]) /*MMLocalProperty::local_class*/;
       variable[10] = variable[9];
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
       variable[13] = variable[0];
-      variable[13] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[13]) /*MMLocalProperty::name*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalProperty___name(variable[13])(variable[13]) /*MMLocalProperty::name*/;
       variable[14] = variable[13];
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
+      variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
       variable[1] = variable[2];
       goto return_label54;
     } else { /*if*/
-      variable[2] = NEW_String_string___String___init(); /*new String*/
+      variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[4] = variable[3];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
       variable[5] = variable[0];
-      variable[5] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[5]) /*MMLocalProperty::local_class*/;
-      variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/;
+      variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
+      variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
       variable[6] = variable[5];
-      variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
       variable[9] = variable[0];
-      variable[9] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[9]) /*MMLocalProperty::local_class*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[9])(variable[9]) /*MMLocalProperty::local_class*/;
       variable[10] = variable[9];
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("::("), TAG_Int(3)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
       variable[13] = variable[0];
-      variable[13] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[13]) /*MMLocalProperty::global*/;
-      variable[13] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[13],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[13]) /*MMGlobalProperty::intro*/;
-      variable[13] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable[13]) /*MMLocalProperty::full_name*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalProperty___global(variable[13])(variable[13]) /*MMLocalProperty::global*/;
+      variable[13] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[13])(variable[13]) /*MMGlobalProperty::intro*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[13])(variable[13]) /*MMLocalProperty::full_name*/;
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[14]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
+      variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
       variable[1] = variable[2];
       goto return_label54;
     }
@@ -1825,14 +1829,14 @@ void abstractmetamodel___MMLocalProperty___set_global(val_t  self, val_t  param0
   trace.file = LOCATE_abstractmetamodel;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*g*/ ==  NIT_NULL /*null*/) || (( variable[1] /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*g*/,COLOR_kernel___Object_____eqeq))( variable[1] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*g*/ ==  NIT_NULL /*null*/) || (( variable[1] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*g*/)( variable[1] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___set_global, LOCATE_abstractmetamodel, 640); nit_exit(1);}
   variable[3] = variable[0];
   ATTR_abstractmetamodel___MMLocalProperty____global(variable[3]) /*MMLocalProperty::_global*/ =  variable[1] /*g*/;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable[3]) /*MMLocalProperty::_local_class*/;
   variable[4] = variable[0];
-  ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___register_local_property))(variable[3], variable[4]) /*MMLocalClass::register_local_property*/;
+  CALL_abstractmetamodel___MMLocalClass___register_local_property(variable[3])(variable[3], variable[4]) /*MMLocalClass::register_local_property*/;
   return_label55: while(false);
   tracehead = trace.prev;
   return;
@@ -1846,7 +1850,7 @@ void abstractmetamodel___MMLocalProperty___new_global(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstractmetamodel___MMLocalProperty____global(variable[2]) /*MMLocalProperty::_global*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstractmetamodel___MMLocalProperty___new_global, LOCATE_abstractmetamodel, 648); nit_exit(1);}
   variable[2] = variable[0];
   variable[3] = variable[0];
@@ -1857,7 +1861,7 @@ void abstractmetamodel___MMLocalProperty___new_global(val_t  self) {
   variable[2] = ATTR_abstractmetamodel___MMLocalProperty____local_class(variable[2]) /*MMLocalProperty::_local_class*/;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalProperty____global(variable[3]) /*MMLocalProperty::_global*/;
-  ((abstractmetamodel___MMLocalClass___register_global_property_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___register_global_property))(variable[2], variable[3]) /*MMLocalClass::register_global_property*/;
+  CALL_abstractmetamodel___MMLocalClass___register_global_property(variable[2])(variable[2], variable[3]) /*MMLocalClass::register_global_property*/;
   return_label56: while(false);
   tracehead = trace.prev;
   return;
index 6c1cdf1..4254594 100644 (file)
@@ -25,201 +25,197 @@ extern const classtable_elt_t VFT_MMMethod[];
 extern const classtable_elt_t VFT_MMConcreteClass[];
 extern const char *LOCATE_abstractmetamodel;
 extern const int SFT_abstractmetamodel[];
-#define ID_MMContext SFT_abstractmetamodel[0]
-#define COLOR_MMContext SFT_abstractmetamodel[1]
-#define COLOR_abstractmetamodel___MMContext____module_hierarchy SFT_abstractmetamodel[2]
-#define COLOR_abstractmetamodel___MMContext____class_hierarchy SFT_abstractmetamodel[3]
-#define COLOR_abstractmetamodel___MMContext____global_classes SFT_abstractmetamodel[4]
-#define COLOR_abstractmetamodel___MMContext____modules SFT_abstractmetamodel[5]
-#define INIT_TABLE_POS_MMContext SFT_abstractmetamodel[6]
-#define COLOR_abstractmetamodel___MMContext___init SFT_abstractmetamodel[7]
-#define COLOR_abstractmetamodel___MMContext___module_hierarchy SFT_abstractmetamodel[8]
-#define COLOR_abstractmetamodel___MMContext___class_hierarchy SFT_abstractmetamodel[9]
-#define COLOR_abstractmetamodel___MMContext___modules SFT_abstractmetamodel[10]
-#define COLOR_abstractmetamodel___MMContext___add_module SFT_abstractmetamodel[11]
-#define COLOR_abstractmetamodel___MMContext___add_global_class SFT_abstractmetamodel[12]
-#define COLOR_abstractmetamodel___MMContext___add_local_class SFT_abstractmetamodel[13]
-#define ID_MMDirectory SFT_abstractmetamodel[14]
-#define COLOR_MMDirectory SFT_abstractmetamodel[15]
-#define COLOR_abstractmetamodel___MMDirectory____name SFT_abstractmetamodel[16]
-#define COLOR_abstractmetamodel___MMDirectory____path SFT_abstractmetamodel[17]
-#define COLOR_abstractmetamodel___MMDirectory____parent SFT_abstractmetamodel[18]
-#define COLOR_abstractmetamodel___MMDirectory____owner SFT_abstractmetamodel[19]
-#define COLOR_abstractmetamodel___MMDirectory____modules SFT_abstractmetamodel[20]
-#define COLOR_abstractmetamodel___MMDirectory____dhe SFT_abstractmetamodel[21]
-#define INIT_TABLE_POS_MMDirectory SFT_abstractmetamodel[22]
-#define COLOR_abstractmetamodel___MMDirectory___name SFT_abstractmetamodel[23]
-#define COLOR_abstractmetamodel___MMDirectory___path SFT_abstractmetamodel[24]
-#define COLOR_abstractmetamodel___MMDirectory___parent SFT_abstractmetamodel[25]
-#define COLOR_abstractmetamodel___MMDirectory___owner SFT_abstractmetamodel[26]
-#define COLOR_abstractmetamodel___MMDirectory___owner__eq SFT_abstractmetamodel[27]
-#define COLOR_abstractmetamodel___MMDirectory___modules SFT_abstractmetamodel[28]
-#define COLOR_abstractmetamodel___MMDirectory___add_module SFT_abstractmetamodel[29]
-#define COLOR_abstractmetamodel___MMDirectory___dhe SFT_abstractmetamodel[30]
-#define COLOR_abstractmetamodel___MMDirectory___init SFT_abstractmetamodel[31]
-#define COLOR_abstractmetamodel___MMDirectory___full_name_for SFT_abstractmetamodel[32]
-#define ID_MMModule SFT_abstractmetamodel[33]
-#define COLOR_MMModule SFT_abstractmetamodel[34]
-#define COLOR_abstractmetamodel___MMModule____context SFT_abstractmetamodel[35]
-#define COLOR_abstractmetamodel___MMModule____name SFT_abstractmetamodel[36]
-#define COLOR_abstractmetamodel___MMModule____full_name SFT_abstractmetamodel[37]
-#define COLOR_abstractmetamodel___MMModule____directory SFT_abstractmetamodel[38]
-#define COLOR_abstractmetamodel___MMModule____mhe SFT_abstractmetamodel[39]
-#define COLOR_abstractmetamodel___MMModule____global_classes SFT_abstractmetamodel[40]
-#define COLOR_abstractmetamodel___MMModule____local_classes SFT_abstractmetamodel[41]
-#define COLOR_abstractmetamodel___MMModule____class_specialization_hierarchy SFT_abstractmetamodel[42]
-#define COLOR_abstractmetamodel___MMModule____intrude_modules SFT_abstractmetamodel[43]
-#define COLOR_abstractmetamodel___MMModule____public_modules SFT_abstractmetamodel[44]
-#define COLOR_abstractmetamodel___MMModule____private_modules SFT_abstractmetamodel[45]
-#define COLOR_abstractmetamodel___MMModule____explicit_imported_modules SFT_abstractmetamodel[46]
-#define COLOR_abstractmetamodel___MMModule____local_class_by_global SFT_abstractmetamodel[47]
-#define COLOR_abstractmetamodel___MMModule____global_class_by_name SFT_abstractmetamodel[48]
-#define INIT_TABLE_POS_MMModule SFT_abstractmetamodel[49]
-#define COLOR_abstractmetamodel___MMModule___context SFT_abstractmetamodel[50]
-#define COLOR_abstractmetamodel___MMModule___name SFT_abstractmetamodel[51]
-#define COLOR_abstractmetamodel___MMModule___full_name SFT_abstractmetamodel[52]
-#define COLOR_abstractmetamodel___MMModule___directory SFT_abstractmetamodel[53]
-#define COLOR_abstractmetamodel___MMModule___mhe SFT_abstractmetamodel[54]
-#define COLOR_abstractmetamodel___MMModule___global_classes SFT_abstractmetamodel[55]
-#define COLOR_abstractmetamodel___MMModule___local_classes SFT_abstractmetamodel[56]
-#define COLOR_abstractmetamodel___MMModule___class_specialization_hierarchy SFT_abstractmetamodel[57]
-#define COLOR_abstractmetamodel___MMModule___explicit_imported_modules SFT_abstractmetamodel[58]
-#define COLOR_abstractmetamodel___MMModule___init SFT_abstractmetamodel[59]
-#define COLOR_abstractmetamodel___MMModule___add_super_module SFT_abstractmetamodel[60]
-#define COLOR_abstractmetamodel___MMModule___visibility_for SFT_abstractmetamodel[61]
-#define COLOR_abstractmetamodel___MMModule_____bra SFT_abstractmetamodel[62]
-#define COLOR_abstractmetamodel___MMModule___add_local_class SFT_abstractmetamodel[63]
-#define COLOR_abstractmetamodel___MMModule___class_by_name SFT_abstractmetamodel[64]
-#define COLOR_abstractmetamodel___MMModule___has_global_class_named SFT_abstractmetamodel[65]
-#define COLOR_abstractmetamodel___MMModule___global_class_named SFT_abstractmetamodel[66]
-#define COLOR_abstractmetamodel___MMModule___set_supers_class SFT_abstractmetamodel[67]
-#define COLOR_abstractmetamodel___MMModule___register_global_class SFT_abstractmetamodel[68]
-#define ID_MMGlobalClass SFT_abstractmetamodel[69]
-#define COLOR_MMGlobalClass SFT_abstractmetamodel[70]
-#define COLOR_abstractmetamodel___MMGlobalClass____intro SFT_abstractmetamodel[71]
-#define COLOR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy SFT_abstractmetamodel[72]
-#define COLOR_abstractmetamodel___MMGlobalClass____is_interface SFT_abstractmetamodel[73]
-#define COLOR_abstractmetamodel___MMGlobalClass____is_abstract SFT_abstractmetamodel[74]
-#define COLOR_abstractmetamodel___MMGlobalClass____is_universal SFT_abstractmetamodel[75]
-#define COLOR_abstractmetamodel___MMGlobalClass____visibility_level SFT_abstractmetamodel[76]
-#define COLOR_abstractmetamodel___MMGlobalClass____mixin_of SFT_abstractmetamodel[77]
-#define INIT_TABLE_POS_MMGlobalClass SFT_abstractmetamodel[78]
-#define COLOR_abstractmetamodel___MMGlobalClass___intro SFT_abstractmetamodel[79]
-#define COLOR_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy SFT_abstractmetamodel[80]
-#define COLOR_abstractmetamodel___MMGlobalClass___init SFT_abstractmetamodel[81]
-#define COLOR_abstractmetamodel___MMGlobalClass___name SFT_abstractmetamodel[82]
-#define COLOR_abstractmetamodel___MMGlobalClass___module SFT_abstractmetamodel[83]
-#define COLOR_abstractmetamodel___MMGlobalClass___register_local_class SFT_abstractmetamodel[84]
-#define COLOR_abstractmetamodel___MMGlobalClass___is_interface SFT_abstractmetamodel[85]
-#define COLOR_abstractmetamodel___MMGlobalClass___is_interface__eq SFT_abstractmetamodel[86]
-#define COLOR_abstractmetamodel___MMGlobalClass___is_abstract SFT_abstractmetamodel[87]
-#define COLOR_abstractmetamodel___MMGlobalClass___is_abstract__eq SFT_abstractmetamodel[88]
-#define COLOR_abstractmetamodel___MMGlobalClass___is_universal SFT_abstractmetamodel[89]
-#define COLOR_abstractmetamodel___MMGlobalClass___is_universal__eq SFT_abstractmetamodel[90]
-#define COLOR_abstractmetamodel___MMGlobalClass___visibility_level SFT_abstractmetamodel[91]
-#define COLOR_abstractmetamodel___MMGlobalClass___visibility_level__eq SFT_abstractmetamodel[92]
-#define COLOR_abstractmetamodel___MMGlobalClass___is_mixin SFT_abstractmetamodel[93]
-#define COLOR_abstractmetamodel___MMGlobalClass___mixin_of SFT_abstractmetamodel[94]
-#define COLOR_abstractmetamodel___MMGlobalClass___mixin_of__eq SFT_abstractmetamodel[95]
-#define ID_MMLocalClass SFT_abstractmetamodel[96]
-#define COLOR_MMLocalClass SFT_abstractmetamodel[97]
-#define COLOR_abstractmetamodel___MMLocalClass____name SFT_abstractmetamodel[98]
-#define COLOR_abstractmetamodel___MMLocalClass____arity SFT_abstractmetamodel[99]
-#define COLOR_abstractmetamodel___MMLocalClass____module SFT_abstractmetamodel[100]
-#define COLOR_abstractmetamodel___MMLocalClass____global SFT_abstractmetamodel[101]
-#define COLOR_abstractmetamodel___MMLocalClass____crhe SFT_abstractmetamodel[102]
-#define COLOR_abstractmetamodel___MMLocalClass____cshe SFT_abstractmetamodel[103]
-#define COLOR_abstractmetamodel___MMLocalClass____che SFT_abstractmetamodel[104]
-#define COLOR_abstractmetamodel___MMLocalClass____local_property_by_global SFT_abstractmetamodel[105]
-#define COLOR_abstractmetamodel___MMLocalClass____global_properties SFT_abstractmetamodel[106]
-#define COLOR_abstractmetamodel___MMLocalClass____properties_by_name SFT_abstractmetamodel[107]
-#define INIT_TABLE_POS_MMLocalClass SFT_abstractmetamodel[108]
-#define COLOR_abstractmetamodel___MMLocalClass___name SFT_abstractmetamodel[109]
-#define COLOR_abstractmetamodel___MMLocalClass___arity SFT_abstractmetamodel[110]
-#define COLOR_abstractmetamodel___MMLocalClass___module SFT_abstractmetamodel[111]
-#define COLOR_abstractmetamodel___MMLocalClass___global SFT_abstractmetamodel[112]
-#define COLOR_abstractmetamodel___MMLocalClass___crhe SFT_abstractmetamodel[113]
-#define COLOR_abstractmetamodel___MMLocalClass___cshe SFT_abstractmetamodel[114]
-#define COLOR_abstractmetamodel___MMLocalClass___che SFT_abstractmetamodel[115]
-#define COLOR_abstractmetamodel___MMLocalClass___local_property_by_global SFT_abstractmetamodel[116]
-#define COLOR_abstractmetamodel___MMLocalClass___global_properties SFT_abstractmetamodel[117]
-#define COLOR_abstractmetamodel___MMLocalClass___properties_by_name SFT_abstractmetamodel[118]
-#define COLOR_abstractmetamodel___MMLocalClass___init SFT_abstractmetamodel[119]
-#define COLOR_abstractmetamodel___MMLocalClass___for_module SFT_abstractmetamodel[120]
-#define COLOR_abstractmetamodel___MMLocalClass___new_global SFT_abstractmetamodel[121]
-#define COLOR_abstractmetamodel___MMLocalClass___set_global SFT_abstractmetamodel[122]
-#define COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name SFT_abstractmetamodel[123]
-#define COLOR_abstractmetamodel___MMLocalClass___get_property_by_name SFT_abstractmetamodel[124]
-#define COLOR_abstractmetamodel___MMLocalClass___attribute SFT_abstractmetamodel[125]
-#define COLOR_abstractmetamodel___MMLocalClass___method SFT_abstractmetamodel[126]
-#define COLOR_abstractmetamodel___MMLocalClass___select_method SFT_abstractmetamodel[127]
-#define COLOR_abstractmetamodel___MMLocalClass___select_attribute SFT_abstractmetamodel[128]
-#define COLOR_abstractmetamodel___MMLocalClass___super_methods_named SFT_abstractmetamodel[129]
-#define COLOR_abstractmetamodel___MMLocalClass___register_local_property SFT_abstractmetamodel[130]
-#define COLOR_abstractmetamodel___MMLocalClass___register_global_property SFT_abstractmetamodel[131]
-#define COLOR_abstractmetamodel___MMLocalClass_____bra SFT_abstractmetamodel[132]
-#define COLOR_abstractmetamodel___MMLocalClass___context SFT_abstractmetamodel[133]
-#define ID_MMGlobalProperty SFT_abstractmetamodel[134]
-#define COLOR_MMGlobalProperty SFT_abstractmetamodel[135]
-#define COLOR_abstractmetamodel___MMGlobalProperty____intro SFT_abstractmetamodel[136]
-#define COLOR_abstractmetamodel___MMGlobalProperty____property_hierarchy SFT_abstractmetamodel[137]
-#define COLOR_abstractmetamodel___MMGlobalProperty____is_init SFT_abstractmetamodel[138]
-#define COLOR_abstractmetamodel___MMGlobalProperty____visibility_level SFT_abstractmetamodel[139]
-#define INIT_TABLE_POS_MMGlobalProperty SFT_abstractmetamodel[140]
-#define COLOR_abstractmetamodel___MMGlobalProperty___intro SFT_abstractmetamodel[141]
-#define COLOR_abstractmetamodel___MMGlobalProperty___local_class SFT_abstractmetamodel[142]
-#define COLOR_abstractmetamodel___MMGlobalProperty___property_hierarchy SFT_abstractmetamodel[143]
-#define COLOR_abstractmetamodel___MMGlobalProperty___init SFT_abstractmetamodel[144]
-#define COLOR_abstractmetamodel___MMGlobalProperty___add_local_property SFT_abstractmetamodel[145]
-#define COLOR_abstractmetamodel___MMGlobalProperty___is_attribute SFT_abstractmetamodel[146]
-#define COLOR_abstractmetamodel___MMGlobalProperty___is_method SFT_abstractmetamodel[147]
-#define COLOR_abstractmetamodel___MMGlobalProperty___is_init SFT_abstractmetamodel[148]
-#define COLOR_abstractmetamodel___MMGlobalProperty___is_init__eq SFT_abstractmetamodel[149]
-#define COLOR_abstractmetamodel___MMGlobalProperty___is_init_for SFT_abstractmetamodel[150]
-#define COLOR_abstractmetamodel___MMGlobalProperty___visibility_level SFT_abstractmetamodel[151]
-#define COLOR_abstractmetamodel___MMGlobalProperty___visibility_level__eq SFT_abstractmetamodel[152]
-#define ID_MMLocalProperty SFT_abstractmetamodel[153]
-#define COLOR_MMLocalProperty SFT_abstractmetamodel[154]
-#define COLOR_abstractmetamodel___MMLocalProperty____name SFT_abstractmetamodel[155]
-#define COLOR_abstractmetamodel___MMLocalProperty____local_class SFT_abstractmetamodel[156]
-#define COLOR_abstractmetamodel___MMLocalProperty____global SFT_abstractmetamodel[157]
-#define COLOR_abstractmetamodel___MMLocalProperty____prhe SFT_abstractmetamodel[158]
-#define COLOR_abstractmetamodel___MMLocalProperty____need_super SFT_abstractmetamodel[159]
-#define INIT_TABLE_POS_MMLocalProperty SFT_abstractmetamodel[160]
-#define COLOR_abstractmetamodel___MMLocalProperty___name SFT_abstractmetamodel[161]
-#define COLOR_abstractmetamodel___MMLocalProperty___local_class SFT_abstractmetamodel[162]
-#define COLOR_abstractmetamodel___MMLocalProperty___global SFT_abstractmetamodel[163]
-#define COLOR_abstractmetamodel___MMLocalProperty___prhe SFT_abstractmetamodel[164]
-#define COLOR_abstractmetamodel___MMLocalProperty___module SFT_abstractmetamodel[165]
-#define COLOR_abstractmetamodel___MMLocalProperty___full_name SFT_abstractmetamodel[166]
-#define COLOR_abstractmetamodel___MMLocalProperty___set_global SFT_abstractmetamodel[167]
-#define COLOR_abstractmetamodel___MMLocalProperty___new_global SFT_abstractmetamodel[168]
-#define COLOR_abstractmetamodel___MMLocalProperty___need_super SFT_abstractmetamodel[169]
-#define COLOR_abstractmetamodel___MMLocalProperty___need_super__eq SFT_abstractmetamodel[170]
-#define COLOR_abstractmetamodel___MMLocalProperty___init SFT_abstractmetamodel[171]
-#define ID_MMAttribute SFT_abstractmetamodel[172]
-#define COLOR_MMAttribute SFT_abstractmetamodel[173]
-#define INIT_TABLE_POS_MMAttribute SFT_abstractmetamodel[174]
-#define ID_MMMethod SFT_abstractmetamodel[175]
-#define COLOR_MMMethod SFT_abstractmetamodel[176]
-#define INIT_TABLE_POS_MMMethod SFT_abstractmetamodel[177]
-#define ID_MMConcreteClass SFT_abstractmetamodel[178]
-#define COLOR_MMConcreteClass SFT_abstractmetamodel[179]
-#define INIT_TABLE_POS_MMConcreteClass SFT_abstractmetamodel[180]
+#define ID_MMContext (SFT_abstractmetamodel[0])
+#define COLOR_MMContext (SFT_abstractmetamodel[1])
+#define ATTR_abstractmetamodel___MMContext____module_hierarchy(recv) ATTR(recv, (SFT_abstractmetamodel[2] + 0))
+#define ATTR_abstractmetamodel___MMContext____class_hierarchy(recv) ATTR(recv, (SFT_abstractmetamodel[2] + 1))
+#define ATTR_abstractmetamodel___MMContext____global_classes(recv) ATTR(recv, (SFT_abstractmetamodel[2] + 2))
+#define ATTR_abstractmetamodel___MMContext____modules(recv) ATTR(recv, (SFT_abstractmetamodel[2] + 3))
+#define INIT_TABLE_POS_MMContext (SFT_abstractmetamodel[3] + 0)
+#define CALL_abstractmetamodel___MMContext___init(recv) ((abstractmetamodel___MMContext___init_t)CALL((recv), (SFT_abstractmetamodel[3] + 1)))
+#define CALL_abstractmetamodel___MMContext___module_hierarchy(recv) ((abstractmetamodel___MMContext___module_hierarchy_t)CALL((recv), (SFT_abstractmetamodel[3] + 2)))
+#define CALL_abstractmetamodel___MMContext___class_hierarchy(recv) ((abstractmetamodel___MMContext___class_hierarchy_t)CALL((recv), (SFT_abstractmetamodel[3] + 3)))
+#define CALL_abstractmetamodel___MMContext___modules(recv) ((abstractmetamodel___MMContext___modules_t)CALL((recv), (SFT_abstractmetamodel[3] + 4)))
+#define CALL_abstractmetamodel___MMContext___add_module(recv) ((abstractmetamodel___MMContext___add_module_t)CALL((recv), (SFT_abstractmetamodel[3] + 5)))
+#define CALL_abstractmetamodel___MMContext___add_global_class(recv) ((abstractmetamodel___MMContext___add_global_class_t)CALL((recv), (SFT_abstractmetamodel[3] + 6)))
+#define CALL_abstractmetamodel___MMContext___add_local_class(recv) ((abstractmetamodel___MMContext___add_local_class_t)CALL((recv), (SFT_abstractmetamodel[3] + 7)))
+#define ID_MMDirectory (SFT_abstractmetamodel[4])
+#define COLOR_MMDirectory (SFT_abstractmetamodel[5])
+#define ATTR_abstractmetamodel___MMDirectory____name(recv) ATTR(recv, (SFT_abstractmetamodel[6] + 0))
+#define ATTR_abstractmetamodel___MMDirectory____path(recv) ATTR(recv, (SFT_abstractmetamodel[6] + 1))
+#define ATTR_abstractmetamodel___MMDirectory____parent(recv) ATTR(recv, (SFT_abstractmetamodel[6] + 2))
+#define ATTR_abstractmetamodel___MMDirectory____owner(recv) ATTR(recv, (SFT_abstractmetamodel[6] + 3))
+#define ATTR_abstractmetamodel___MMDirectory____modules(recv) ATTR(recv, (SFT_abstractmetamodel[6] + 4))
+#define ATTR_abstractmetamodel___MMDirectory____dhe(recv) ATTR(recv, (SFT_abstractmetamodel[6] + 5))
+#define INIT_TABLE_POS_MMDirectory (SFT_abstractmetamodel[7] + 0)
+#define CALL_abstractmetamodel___MMDirectory___name(recv) ((abstractmetamodel___MMDirectory___name_t)CALL((recv), (SFT_abstractmetamodel[7] + 1)))
+#define CALL_abstractmetamodel___MMDirectory___path(recv) ((abstractmetamodel___MMDirectory___path_t)CALL((recv), (SFT_abstractmetamodel[7] + 2)))
+#define CALL_abstractmetamodel___MMDirectory___parent(recv) ((abstractmetamodel___MMDirectory___parent_t)CALL((recv), (SFT_abstractmetamodel[7] + 3)))
+#define CALL_abstractmetamodel___MMDirectory___owner(recv) ((abstractmetamodel___MMDirectory___owner_t)CALL((recv), (SFT_abstractmetamodel[7] + 4)))
+#define CALL_abstractmetamodel___MMDirectory___owner__eq(recv) ((abstractmetamodel___MMDirectory___owner__eq_t)CALL((recv), (SFT_abstractmetamodel[7] + 5)))
+#define CALL_abstractmetamodel___MMDirectory___modules(recv) ((abstractmetamodel___MMDirectory___modules_t)CALL((recv), (SFT_abstractmetamodel[7] + 6)))
+#define CALL_abstractmetamodel___MMDirectory___add_module(recv) ((abstractmetamodel___MMDirectory___add_module_t)CALL((recv), (SFT_abstractmetamodel[7] + 7)))
+#define CALL_abstractmetamodel___MMDirectory___dhe(recv) ((abstractmetamodel___MMDirectory___dhe_t)CALL((recv), (SFT_abstractmetamodel[7] + 8)))
+#define CALL_abstractmetamodel___MMDirectory___init(recv) ((abstractmetamodel___MMDirectory___init_t)CALL((recv), (SFT_abstractmetamodel[7] + 9)))
+#define CALL_abstractmetamodel___MMDirectory___full_name_for(recv) ((abstractmetamodel___MMDirectory___full_name_for_t)CALL((recv), (SFT_abstractmetamodel[7] + 10)))
+#define ID_MMModule (SFT_abstractmetamodel[8])
+#define COLOR_MMModule (SFT_abstractmetamodel[9])
+#define ATTR_abstractmetamodel___MMModule____context(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 0))
+#define ATTR_abstractmetamodel___MMModule____name(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 1))
+#define ATTR_abstractmetamodel___MMModule____full_name(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 2))
+#define ATTR_abstractmetamodel___MMModule____directory(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 3))
+#define ATTR_abstractmetamodel___MMModule____mhe(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 4))
+#define ATTR_abstractmetamodel___MMModule____global_classes(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 5))
+#define ATTR_abstractmetamodel___MMModule____local_classes(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 6))
+#define ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 7))
+#define ATTR_abstractmetamodel___MMModule____intrude_modules(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 8))
+#define ATTR_abstractmetamodel___MMModule____public_modules(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 9))
+#define ATTR_abstractmetamodel___MMModule____private_modules(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 10))
+#define ATTR_abstractmetamodel___MMModule____explicit_imported_modules(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 11))
+#define ATTR_abstractmetamodel___MMModule____local_class_by_global(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 12))
+#define ATTR_abstractmetamodel___MMModule____global_class_by_name(recv) ATTR(recv, (SFT_abstractmetamodel[10] + 13))
+#define INIT_TABLE_POS_MMModule (SFT_abstractmetamodel[11] + 0)
+#define CALL_abstractmetamodel___MMModule___context(recv) ((abstractmetamodel___MMModule___context_t)CALL((recv), (SFT_abstractmetamodel[11] + 1)))
+#define CALL_abstractmetamodel___MMModule___name(recv) ((abstractmetamodel___MMModule___name_t)CALL((recv), (SFT_abstractmetamodel[11] + 2)))
+#define CALL_abstractmetamodel___MMModule___full_name(recv) ((abstractmetamodel___MMModule___full_name_t)CALL((recv), (SFT_abstractmetamodel[11] + 3)))
+#define CALL_abstractmetamodel___MMModule___directory(recv) ((abstractmetamodel___MMModule___directory_t)CALL((recv), (SFT_abstractmetamodel[11] + 4)))
+#define CALL_abstractmetamodel___MMModule___mhe(recv) ((abstractmetamodel___MMModule___mhe_t)CALL((recv), (SFT_abstractmetamodel[11] + 5)))
+#define CALL_abstractmetamodel___MMModule___global_classes(recv) ((abstractmetamodel___MMModule___global_classes_t)CALL((recv), (SFT_abstractmetamodel[11] + 6)))
+#define CALL_abstractmetamodel___MMModule___local_classes(recv) ((abstractmetamodel___MMModule___local_classes_t)CALL((recv), (SFT_abstractmetamodel[11] + 7)))
+#define CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(recv) ((abstractmetamodel___MMModule___class_specialization_hierarchy_t)CALL((recv), (SFT_abstractmetamodel[11] + 8)))
+#define CALL_abstractmetamodel___MMModule___explicit_imported_modules(recv) ((abstractmetamodel___MMModule___explicit_imported_modules_t)CALL((recv), (SFT_abstractmetamodel[11] + 9)))
+#define CALL_abstractmetamodel___MMModule___init(recv) ((abstractmetamodel___MMModule___init_t)CALL((recv), (SFT_abstractmetamodel[11] + 10)))
+#define CALL_abstractmetamodel___MMModule___add_super_module(recv) ((abstractmetamodel___MMModule___add_super_module_t)CALL((recv), (SFT_abstractmetamodel[11] + 11)))
+#define CALL_abstractmetamodel___MMModule___visibility_for(recv) ((abstractmetamodel___MMModule___visibility_for_t)CALL((recv), (SFT_abstractmetamodel[11] + 12)))
+#define CALL_abstractmetamodel___MMModule_____bra(recv) ((abstractmetamodel___MMModule_____bra_t)CALL((recv), (SFT_abstractmetamodel[11] + 13)))
+#define CALL_abstractmetamodel___MMModule___add_local_class(recv) ((abstractmetamodel___MMModule___add_local_class_t)CALL((recv), (SFT_abstractmetamodel[11] + 14)))
+#define CALL_abstractmetamodel___MMModule___class_by_name(recv) ((abstractmetamodel___MMModule___class_by_name_t)CALL((recv), (SFT_abstractmetamodel[11] + 15)))
+#define CALL_abstractmetamodel___MMModule___has_global_class_named(recv) ((abstractmetamodel___MMModule___has_global_class_named_t)CALL((recv), (SFT_abstractmetamodel[11] + 16)))
+#define CALL_abstractmetamodel___MMModule___global_class_named(recv) ((abstractmetamodel___MMModule___global_class_named_t)CALL((recv), (SFT_abstractmetamodel[11] + 17)))
+#define CALL_abstractmetamodel___MMModule___set_supers_class(recv) ((abstractmetamodel___MMModule___set_supers_class_t)CALL((recv), (SFT_abstractmetamodel[11] + 18)))
+#define CALL_abstractmetamodel___MMModule___register_global_class(recv) ((abstractmetamodel___MMModule___register_global_class_t)CALL((recv), (SFT_abstractmetamodel[11] + 19)))
+#define ID_MMGlobalClass (SFT_abstractmetamodel[12])
+#define COLOR_MMGlobalClass (SFT_abstractmetamodel[13])
+#define ATTR_abstractmetamodel___MMGlobalClass____intro(recv) ATTR(recv, (SFT_abstractmetamodel[14] + 0))
+#define ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(recv) ATTR(recv, (SFT_abstractmetamodel[14] + 1))
+#define ATTR_abstractmetamodel___MMGlobalClass____is_interface(recv) ATTR(recv, (SFT_abstractmetamodel[14] + 2))
+#define ATTR_abstractmetamodel___MMGlobalClass____is_abstract(recv) ATTR(recv, (SFT_abstractmetamodel[14] + 3))
+#define ATTR_abstractmetamodel___MMGlobalClass____is_universal(recv) ATTR(recv, (SFT_abstractmetamodel[14] + 4))
+#define ATTR_abstractmetamodel___MMGlobalClass____visibility_level(recv) ATTR(recv, (SFT_abstractmetamodel[14] + 5))
+#define ATTR_abstractmetamodel___MMGlobalClass____mixin_of(recv) ATTR(recv, (SFT_abstractmetamodel[14] + 6))
+#define INIT_TABLE_POS_MMGlobalClass (SFT_abstractmetamodel[15] + 0)
+#define CALL_abstractmetamodel___MMGlobalClass___intro(recv) ((abstractmetamodel___MMGlobalClass___intro_t)CALL((recv), (SFT_abstractmetamodel[15] + 1)))
+#define CALL_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(recv) ((abstractmetamodel___MMGlobalClass___class_refinement_hierarchy_t)CALL((recv), (SFT_abstractmetamodel[15] + 2)))
+#define CALL_abstractmetamodel___MMGlobalClass___init(recv) ((abstractmetamodel___MMGlobalClass___init_t)CALL((recv), (SFT_abstractmetamodel[15] + 3)))
+#define CALL_abstractmetamodel___MMGlobalClass___name(recv) ((abstractmetamodel___MMGlobalClass___name_t)CALL((recv), (SFT_abstractmetamodel[15] + 4)))
+#define CALL_abstractmetamodel___MMGlobalClass___module(recv) ((abstractmetamodel___MMGlobalClass___module_t)CALL((recv), (SFT_abstractmetamodel[15] + 5)))
+#define CALL_abstractmetamodel___MMGlobalClass___register_local_class(recv) ((abstractmetamodel___MMGlobalClass___register_local_class_t)CALL((recv), (SFT_abstractmetamodel[15] + 6)))
+#define CALL_abstractmetamodel___MMGlobalClass___is_interface(recv) ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL((recv), (SFT_abstractmetamodel[15] + 7)))
+#define CALL_abstractmetamodel___MMGlobalClass___is_interface__eq(recv) ((abstractmetamodel___MMGlobalClass___is_interface__eq_t)CALL((recv), (SFT_abstractmetamodel[15] + 8)))
+#define CALL_abstractmetamodel___MMGlobalClass___is_abstract(recv) ((abstractmetamodel___MMGlobalClass___is_abstract_t)CALL((recv), (SFT_abstractmetamodel[15] + 9)))
+#define CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq(recv) ((abstractmetamodel___MMGlobalClass___is_abstract__eq_t)CALL((recv), (SFT_abstractmetamodel[15] + 10)))
+#define CALL_abstractmetamodel___MMGlobalClass___is_universal(recv) ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL((recv), (SFT_abstractmetamodel[15] + 11)))
+#define CALL_abstractmetamodel___MMGlobalClass___is_universal__eq(recv) ((abstractmetamodel___MMGlobalClass___is_universal__eq_t)CALL((recv), (SFT_abstractmetamodel[15] + 12)))
+#define CALL_abstractmetamodel___MMGlobalClass___visibility_level(recv) ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL((recv), (SFT_abstractmetamodel[15] + 13)))
+#define CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq(recv) ((abstractmetamodel___MMGlobalClass___visibility_level__eq_t)CALL((recv), (SFT_abstractmetamodel[15] + 14)))
+#define CALL_abstractmetamodel___MMGlobalClass___is_mixin(recv) ((abstractmetamodel___MMGlobalClass___is_mixin_t)CALL((recv), (SFT_abstractmetamodel[15] + 15)))
+#define CALL_abstractmetamodel___MMGlobalClass___mixin_of(recv) ((abstractmetamodel___MMGlobalClass___mixin_of_t)CALL((recv), (SFT_abstractmetamodel[15] + 16)))
+#define CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(recv) ((abstractmetamodel___MMGlobalClass___mixin_of__eq_t)CALL((recv), (SFT_abstractmetamodel[15] + 17)))
+#define ID_MMLocalClass (SFT_abstractmetamodel[16])
+#define COLOR_MMLocalClass (SFT_abstractmetamodel[17])
+#define ATTR_abstractmetamodel___MMLocalClass____name(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 0))
+#define ATTR_abstractmetamodel___MMLocalClass____arity(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 1))
+#define ATTR_abstractmetamodel___MMLocalClass____module(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 2))
+#define ATTR_abstractmetamodel___MMLocalClass____global(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 3))
+#define ATTR_abstractmetamodel___MMLocalClass____crhe(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 4))
+#define ATTR_abstractmetamodel___MMLocalClass____cshe(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 5))
+#define ATTR_abstractmetamodel___MMLocalClass____che(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 6))
+#define ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 7))
+#define ATTR_abstractmetamodel___MMLocalClass____global_properties(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 8))
+#define ATTR_abstractmetamodel___MMLocalClass____properties_by_name(recv) ATTR(recv, (SFT_abstractmetamodel[18] + 9))
+#define INIT_TABLE_POS_MMLocalClass (SFT_abstractmetamodel[19] + 0)
+#define CALL_abstractmetamodel___MMLocalClass___name(recv) ((abstractmetamodel___MMLocalClass___name_t)CALL((recv), (SFT_abstractmetamodel[19] + 1)))
+#define CALL_abstractmetamodel___MMLocalClass___arity(recv) ((abstractmetamodel___MMLocalClass___arity_t)CALL((recv), (SFT_abstractmetamodel[19] + 2)))
+#define CALL_abstractmetamodel___MMLocalClass___module(recv) ((abstractmetamodel___MMLocalClass___module_t)CALL((recv), (SFT_abstractmetamodel[19] + 3)))
+#define CALL_abstractmetamodel___MMLocalClass___global(recv) ((abstractmetamodel___MMLocalClass___global_t)CALL((recv), (SFT_abstractmetamodel[19] + 4)))
+#define CALL_abstractmetamodel___MMLocalClass___crhe(recv) ((abstractmetamodel___MMLocalClass___crhe_t)CALL((recv), (SFT_abstractmetamodel[19] + 5)))
+#define CALL_abstractmetamodel___MMLocalClass___cshe(recv) ((abstractmetamodel___MMLocalClass___cshe_t)CALL((recv), (SFT_abstractmetamodel[19] + 6)))
+#define CALL_abstractmetamodel___MMLocalClass___che(recv) ((abstractmetamodel___MMLocalClass___che_t)CALL((recv), (SFT_abstractmetamodel[19] + 7)))
+#define CALL_abstractmetamodel___MMLocalClass___local_property_by_global(recv) ((abstractmetamodel___MMLocalClass___local_property_by_global_t)CALL((recv), (SFT_abstractmetamodel[19] + 8)))
+#define CALL_abstractmetamodel___MMLocalClass___global_properties(recv) ((abstractmetamodel___MMLocalClass___global_properties_t)CALL((recv), (SFT_abstractmetamodel[19] + 9)))
+#define CALL_abstractmetamodel___MMLocalClass___properties_by_name(recv) ((abstractmetamodel___MMLocalClass___properties_by_name_t)CALL((recv), (SFT_abstractmetamodel[19] + 10)))
+#define CALL_abstractmetamodel___MMLocalClass___init(recv) ((abstractmetamodel___MMLocalClass___init_t)CALL((recv), (SFT_abstractmetamodel[19] + 11)))
+#define CALL_abstractmetamodel___MMLocalClass___for_module(recv) ((abstractmetamodel___MMLocalClass___for_module_t)CALL((recv), (SFT_abstractmetamodel[19] + 12)))
+#define CALL_abstractmetamodel___MMLocalClass___new_global(recv) ((abstractmetamodel___MMLocalClass___new_global_t)CALL((recv), (SFT_abstractmetamodel[19] + 13)))
+#define CALL_abstractmetamodel___MMLocalClass___set_global(recv) ((abstractmetamodel___MMLocalClass___set_global_t)CALL((recv), (SFT_abstractmetamodel[19] + 14)))
+#define CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(recv) ((abstractmetamodel___MMLocalClass___has_global_property_by_name_t)CALL((recv), (SFT_abstractmetamodel[19] + 15)))
+#define CALL_abstractmetamodel___MMLocalClass___get_property_by_name(recv) ((abstractmetamodel___MMLocalClass___get_property_by_name_t)CALL((recv), (SFT_abstractmetamodel[19] + 16)))
+#define CALL_abstractmetamodel___MMLocalClass___attribute(recv) ((abstractmetamodel___MMLocalClass___attribute_t)CALL((recv), (SFT_abstractmetamodel[19] + 17)))
+#define CALL_abstractmetamodel___MMLocalClass___method(recv) ((abstractmetamodel___MMLocalClass___method_t)CALL((recv), (SFT_abstractmetamodel[19] + 18)))
+#define CALL_abstractmetamodel___MMLocalClass___select_method(recv) ((abstractmetamodel___MMLocalClass___select_method_t)CALL((recv), (SFT_abstractmetamodel[19] + 19)))
+#define CALL_abstractmetamodel___MMLocalClass___select_attribute(recv) ((abstractmetamodel___MMLocalClass___select_attribute_t)CALL((recv), (SFT_abstractmetamodel[19] + 20)))
+#define CALL_abstractmetamodel___MMLocalClass___super_methods_named(recv) ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL((recv), (SFT_abstractmetamodel[19] + 21)))
+#define CALL_abstractmetamodel___MMLocalClass___register_local_property(recv) ((abstractmetamodel___MMLocalClass___register_local_property_t)CALL((recv), (SFT_abstractmetamodel[19] + 22)))
+#define CALL_abstractmetamodel___MMLocalClass___register_global_property(recv) ((abstractmetamodel___MMLocalClass___register_global_property_t)CALL((recv), (SFT_abstractmetamodel[19] + 23)))
+#define CALL_abstractmetamodel___MMLocalClass_____bra(recv) ((abstractmetamodel___MMLocalClass_____bra_t)CALL((recv), (SFT_abstractmetamodel[19] + 24)))
+#define CALL_abstractmetamodel___MMLocalClass___context(recv) ((abstractmetamodel___MMLocalClass___context_t)CALL((recv), (SFT_abstractmetamodel[19] + 25)))
+#define ID_MMGlobalProperty (SFT_abstractmetamodel[20])
+#define COLOR_MMGlobalProperty (SFT_abstractmetamodel[21])
+#define ATTR_abstractmetamodel___MMGlobalProperty____intro(recv) ATTR(recv, (SFT_abstractmetamodel[22] + 0))
+#define ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(recv) ATTR(recv, (SFT_abstractmetamodel[22] + 1))
+#define ATTR_abstractmetamodel___MMGlobalProperty____is_init(recv) ATTR(recv, (SFT_abstractmetamodel[22] + 2))
+#define ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(recv) ATTR(recv, (SFT_abstractmetamodel[22] + 3))
+#define INIT_TABLE_POS_MMGlobalProperty (SFT_abstractmetamodel[23] + 0)
+#define CALL_abstractmetamodel___MMGlobalProperty___intro(recv) ((abstractmetamodel___MMGlobalProperty___intro_t)CALL((recv), (SFT_abstractmetamodel[23] + 1)))
+#define CALL_abstractmetamodel___MMGlobalProperty___local_class(recv) ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL((recv), (SFT_abstractmetamodel[23] + 2)))
+#define CALL_abstractmetamodel___MMGlobalProperty___property_hierarchy(recv) ((abstractmetamodel___MMGlobalProperty___property_hierarchy_t)CALL((recv), (SFT_abstractmetamodel[23] + 3)))
+#define CALL_abstractmetamodel___MMGlobalProperty___init(recv) ((abstractmetamodel___MMGlobalProperty___init_t)CALL((recv), (SFT_abstractmetamodel[23] + 4)))
+#define CALL_abstractmetamodel___MMGlobalProperty___add_local_property(recv) ((abstractmetamodel___MMGlobalProperty___add_local_property_t)CALL((recv), (SFT_abstractmetamodel[23] + 5)))
+#define CALL_abstractmetamodel___MMGlobalProperty___is_attribute(recv) ((abstractmetamodel___MMGlobalProperty___is_attribute_t)CALL((recv), (SFT_abstractmetamodel[23] + 6)))
+#define CALL_abstractmetamodel___MMGlobalProperty___is_method(recv) ((abstractmetamodel___MMGlobalProperty___is_method_t)CALL((recv), (SFT_abstractmetamodel[23] + 7)))
+#define CALL_abstractmetamodel___MMGlobalProperty___is_init(recv) ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL((recv), (SFT_abstractmetamodel[23] + 8)))
+#define CALL_abstractmetamodel___MMGlobalProperty___is_init__eq(recv) ((abstractmetamodel___MMGlobalProperty___is_init__eq_t)CALL((recv), (SFT_abstractmetamodel[23] + 9)))
+#define CALL_abstractmetamodel___MMGlobalProperty___is_init_for(recv) ((abstractmetamodel___MMGlobalProperty___is_init_for_t)CALL((recv), (SFT_abstractmetamodel[23] + 10)))
+#define CALL_abstractmetamodel___MMGlobalProperty___visibility_level(recv) ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL((recv), (SFT_abstractmetamodel[23] + 11)))
+#define CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(recv) ((abstractmetamodel___MMGlobalProperty___visibility_level__eq_t)CALL((recv), (SFT_abstractmetamodel[23] + 12)))
+#define ID_MMLocalProperty (SFT_abstractmetamodel[24])
+#define COLOR_MMLocalProperty (SFT_abstractmetamodel[25])
+#define ATTR_abstractmetamodel___MMLocalProperty____name(recv) ATTR(recv, (SFT_abstractmetamodel[26] + 0))
+#define ATTR_abstractmetamodel___MMLocalProperty____local_class(recv) ATTR(recv, (SFT_abstractmetamodel[26] + 1))
+#define ATTR_abstractmetamodel___MMLocalProperty____global(recv) ATTR(recv, (SFT_abstractmetamodel[26] + 2))
+#define ATTR_abstractmetamodel___MMLocalProperty____prhe(recv) ATTR(recv, (SFT_abstractmetamodel[26] + 3))
+#define ATTR_abstractmetamodel___MMLocalProperty____need_super(recv) ATTR(recv, (SFT_abstractmetamodel[26] + 4))
+#define INIT_TABLE_POS_MMLocalProperty (SFT_abstractmetamodel[27] + 0)
+#define CALL_abstractmetamodel___MMLocalProperty___name(recv) ((abstractmetamodel___MMLocalProperty___name_t)CALL((recv), (SFT_abstractmetamodel[27] + 1)))
+#define CALL_abstractmetamodel___MMLocalProperty___local_class(recv) ((abstractmetamodel___MMLocalProperty___local_class_t)CALL((recv), (SFT_abstractmetamodel[27] + 2)))
+#define CALL_abstractmetamodel___MMLocalProperty___global(recv) ((abstractmetamodel___MMLocalProperty___global_t)CALL((recv), (SFT_abstractmetamodel[27] + 3)))
+#define CALL_abstractmetamodel___MMLocalProperty___prhe(recv) ((abstractmetamodel___MMLocalProperty___prhe_t)CALL((recv), (SFT_abstractmetamodel[27] + 4)))
+#define CALL_abstractmetamodel___MMLocalProperty___module(recv) ((abstractmetamodel___MMLocalProperty___module_t)CALL((recv), (SFT_abstractmetamodel[27] + 5)))
+#define CALL_abstractmetamodel___MMLocalProperty___full_name(recv) ((abstractmetamodel___MMLocalProperty___full_name_t)CALL((recv), (SFT_abstractmetamodel[27] + 6)))
+#define CALL_abstractmetamodel___MMLocalProperty___set_global(recv) ((abstractmetamodel___MMLocalProperty___set_global_t)CALL((recv), (SFT_abstractmetamodel[27] + 7)))
+#define CALL_abstractmetamodel___MMLocalProperty___new_global(recv) ((abstractmetamodel___MMLocalProperty___new_global_t)CALL((recv), (SFT_abstractmetamodel[27] + 8)))
+#define CALL_abstractmetamodel___MMLocalProperty___need_super(recv) ((abstractmetamodel___MMLocalProperty___need_super_t)CALL((recv), (SFT_abstractmetamodel[27] + 9)))
+#define CALL_abstractmetamodel___MMLocalProperty___need_super__eq(recv) ((abstractmetamodel___MMLocalProperty___need_super__eq_t)CALL((recv), (SFT_abstractmetamodel[27] + 10)))
+#define CALL_abstractmetamodel___MMLocalProperty___init(recv) ((abstractmetamodel___MMLocalProperty___init_t)CALL((recv), (SFT_abstractmetamodel[27] + 11)))
+#define ID_MMAttribute (SFT_abstractmetamodel[28])
+#define COLOR_MMAttribute (SFT_abstractmetamodel[29])
+#define INIT_TABLE_POS_MMAttribute (SFT_abstractmetamodel[30] + 0)
+#define ID_MMMethod (SFT_abstractmetamodel[31])
+#define COLOR_MMMethod (SFT_abstractmetamodel[32])
+#define INIT_TABLE_POS_MMMethod (SFT_abstractmetamodel[33] + 0)
+#define ID_MMConcreteClass (SFT_abstractmetamodel[34])
+#define COLOR_MMConcreteClass (SFT_abstractmetamodel[35])
+#define INIT_TABLE_POS_MMConcreteClass (SFT_abstractmetamodel[36] + 0)
 typedef void (* abstractmetamodel___MMContext___init_t)(val_t  self, int* init_table);
 void abstractmetamodel___MMContext___init(val_t  self, int* init_table);
 #define LOCATE_abstractmetamodel___MMContext___init "abstractmetamodel::MMContext::init"
 val_t NEW_MMContext_abstractmetamodel___MMContext___init();
-#define ATTR_abstractmetamodel___MMContext____module_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____module_hierarchy)
 typedef val_t (* abstractmetamodel___MMContext___module_hierarchy_t)(val_t  self);
 val_t abstractmetamodel___MMContext___module_hierarchy(val_t  self);
 #define LOCATE_abstractmetamodel___MMContext___module_hierarchy "abstractmetamodel::MMContext::module_hierarchy"
-#define ATTR_abstractmetamodel___MMContext____class_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____class_hierarchy)
 typedef val_t (* abstractmetamodel___MMContext___class_hierarchy_t)(val_t  self);
 val_t abstractmetamodel___MMContext___class_hierarchy(val_t  self);
 #define LOCATE_abstractmetamodel___MMContext___class_hierarchy "abstractmetamodel::MMContext::class_hierarchy"
-#define ATTR_abstractmetamodel___MMContext____global_classes(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____global_classes)
-#define ATTR_abstractmetamodel___MMContext____modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMContext____modules)
 typedef val_t (* abstractmetamodel___MMContext___modules_t)(val_t  self);
 val_t abstractmetamodel___MMContext___modules(val_t  self);
 #define LOCATE_abstractmetamodel___MMContext___modules "abstractmetamodel::MMContext::modules"
@@ -232,33 +228,27 @@ void abstractmetamodel___MMContext___add_global_class(val_t  self, val_t  param0
 typedef void (* abstractmetamodel___MMContext___add_local_class_t)(val_t  self, val_t  param0, val_t  param1);
 void abstractmetamodel___MMContext___add_local_class(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_abstractmetamodel___MMContext___add_local_class "abstractmetamodel::MMContext::add_local_class"
-#define ATTR_abstractmetamodel___MMDirectory____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____name)
 typedef val_t (* abstractmetamodel___MMDirectory___name_t)(val_t  self);
 val_t abstractmetamodel___MMDirectory___name(val_t  self);
 #define LOCATE_abstractmetamodel___MMDirectory___name "abstractmetamodel::MMDirectory::name"
-#define ATTR_abstractmetamodel___MMDirectory____path(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____path)
 typedef val_t (* abstractmetamodel___MMDirectory___path_t)(val_t  self);
 val_t abstractmetamodel___MMDirectory___path(val_t  self);
 #define LOCATE_abstractmetamodel___MMDirectory___path "abstractmetamodel::MMDirectory::path"
-#define ATTR_abstractmetamodel___MMDirectory____parent(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____parent)
 typedef val_t (* abstractmetamodel___MMDirectory___parent_t)(val_t  self);
 val_t abstractmetamodel___MMDirectory___parent(val_t  self);
 #define LOCATE_abstractmetamodel___MMDirectory___parent "abstractmetamodel::MMDirectory::parent"
-#define ATTR_abstractmetamodel___MMDirectory____owner(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____owner)
 typedef val_t (* abstractmetamodel___MMDirectory___owner_t)(val_t  self);
 val_t abstractmetamodel___MMDirectory___owner(val_t  self);
 #define LOCATE_abstractmetamodel___MMDirectory___owner "abstractmetamodel::MMDirectory::owner"
 typedef void (* abstractmetamodel___MMDirectory___owner__eq_t)(val_t  self, val_t  param0);
 void abstractmetamodel___MMDirectory___owner__eq(val_t  self, val_t  param0);
 #define LOCATE_abstractmetamodel___MMDirectory___owner__eq "abstractmetamodel::MMDirectory::owner="
-#define ATTR_abstractmetamodel___MMDirectory____modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____modules)
 typedef val_t (* abstractmetamodel___MMDirectory___modules_t)(val_t  self);
 val_t abstractmetamodel___MMDirectory___modules(val_t  self);
 #define LOCATE_abstractmetamodel___MMDirectory___modules "abstractmetamodel::MMDirectory::modules"
 typedef void (* abstractmetamodel___MMDirectory___add_module_t)(val_t  self, val_t  param0);
 void abstractmetamodel___MMDirectory___add_module(val_t  self, val_t  param0);
 #define LOCATE_abstractmetamodel___MMDirectory___add_module "abstractmetamodel::MMDirectory::add_module"
-#define ATTR_abstractmetamodel___MMDirectory____dhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMDirectory____dhe)
 typedef val_t (* abstractmetamodel___MMDirectory___dhe_t)(val_t  self);
 val_t abstractmetamodel___MMDirectory___dhe(val_t  self);
 #define LOCATE_abstractmetamodel___MMDirectory___dhe "abstractmetamodel::MMDirectory::dhe"
@@ -272,47 +262,33 @@ val_t abstractmetamodel___MMDirectory___full_name_for(val_t  self, val_t  param0
 typedef val_t (* abstractmetamodel___MMModule___to_s_t)(val_t  self);
 val_t abstractmetamodel___MMModule___to_s(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___to_s "abstractmetamodel::MMModule::(string::Object::to_s)"
-#define ATTR_abstractmetamodel___MMModule____context(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____context)
 typedef val_t (* abstractmetamodel___MMModule___context_t)(val_t  self);
 val_t abstractmetamodel___MMModule___context(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___context "abstractmetamodel::MMModule::context"
-#define ATTR_abstractmetamodel___MMModule____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____name)
 typedef val_t (* abstractmetamodel___MMModule___name_t)(val_t  self);
 val_t abstractmetamodel___MMModule___name(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___name "abstractmetamodel::MMModule::name"
-#define ATTR_abstractmetamodel___MMModule____full_name(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____full_name)
 typedef val_t (* abstractmetamodel___MMModule___full_name_t)(val_t  self);
 val_t abstractmetamodel___MMModule___full_name(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___full_name "abstractmetamodel::MMModule::full_name"
-#define ATTR_abstractmetamodel___MMModule____directory(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____directory)
 typedef val_t (* abstractmetamodel___MMModule___directory_t)(val_t  self);
 val_t abstractmetamodel___MMModule___directory(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___directory "abstractmetamodel::MMModule::directory"
-#define ATTR_abstractmetamodel___MMModule____mhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____mhe)
 typedef val_t (* abstractmetamodel___MMModule___mhe_t)(val_t  self);
 val_t abstractmetamodel___MMModule___mhe(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___mhe "abstractmetamodel::MMModule::mhe"
-#define ATTR_abstractmetamodel___MMModule____global_classes(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____global_classes)
 typedef val_t (* abstractmetamodel___MMModule___global_classes_t)(val_t  self);
 val_t abstractmetamodel___MMModule___global_classes(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___global_classes "abstractmetamodel::MMModule::global_classes"
-#define ATTR_abstractmetamodel___MMModule____local_classes(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____local_classes)
 typedef val_t (* abstractmetamodel___MMModule___local_classes_t)(val_t  self);
 val_t abstractmetamodel___MMModule___local_classes(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___local_classes "abstractmetamodel::MMModule::local_classes"
-#define ATTR_abstractmetamodel___MMModule____class_specialization_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____class_specialization_hierarchy)
 typedef val_t (* abstractmetamodel___MMModule___class_specialization_hierarchy_t)(val_t  self);
 val_t abstractmetamodel___MMModule___class_specialization_hierarchy(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___class_specialization_hierarchy "abstractmetamodel::MMModule::class_specialization_hierarchy"
-#define ATTR_abstractmetamodel___MMModule____intrude_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____intrude_modules)
-#define ATTR_abstractmetamodel___MMModule____public_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____public_modules)
-#define ATTR_abstractmetamodel___MMModule____private_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____private_modules)
-#define ATTR_abstractmetamodel___MMModule____explicit_imported_modules(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____explicit_imported_modules)
 typedef val_t (* abstractmetamodel___MMModule___explicit_imported_modules_t)(val_t  self);
 val_t abstractmetamodel___MMModule___explicit_imported_modules(val_t  self);
 #define LOCATE_abstractmetamodel___MMModule___explicit_imported_modules "abstractmetamodel::MMModule::explicit_imported_modules"
-#define ATTR_abstractmetamodel___MMModule____local_class_by_global(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____local_class_by_global)
-#define ATTR_abstractmetamodel___MMModule____global_class_by_name(recv) ATTR(recv, COLOR_abstractmetamodel___MMModule____global_class_by_name)
 typedef void (* abstractmetamodel___MMModule___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 void abstractmetamodel___MMModule___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_abstractmetamodel___MMModule___init "abstractmetamodel::MMModule::init"
@@ -347,11 +323,9 @@ void abstractmetamodel___MMModule___register_global_class(val_t  self, val_t  pa
 typedef val_t (* abstractmetamodel___MMGlobalClass___to_s_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___to_s(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___to_s "abstractmetamodel::MMGlobalClass::(string::Object::to_s)"
-#define ATTR_abstractmetamodel___MMGlobalClass____intro(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____intro)
 typedef val_t (* abstractmetamodel___MMGlobalClass___intro_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___intro(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___intro "abstractmetamodel::MMGlobalClass::intro"
-#define ATTR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____class_refinement_hierarchy)
 typedef val_t (* abstractmetamodel___MMGlobalClass___class_refinement_hierarchy_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___class_refinement_hierarchy(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___class_refinement_hierarchy "abstractmetamodel::MMGlobalClass::class_refinement_hierarchy"
@@ -368,28 +342,24 @@ val_t abstractmetamodel___MMGlobalClass___module(val_t  self);
 typedef void (* abstractmetamodel___MMGlobalClass___register_local_class_t)(val_t  self, val_t  param0);
 void abstractmetamodel___MMGlobalClass___register_local_class(val_t  self, val_t  param0);
 #define LOCATE_abstractmetamodel___MMGlobalClass___register_local_class "abstractmetamodel::MMGlobalClass::register_local_class"
-#define ATTR_abstractmetamodel___MMGlobalClass____is_interface(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____is_interface)
 typedef val_t (* abstractmetamodel___MMGlobalClass___is_interface_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___is_interface(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___is_interface "abstractmetamodel::MMGlobalClass::is_interface"
 typedef void (* abstractmetamodel___MMGlobalClass___is_interface__eq_t)(val_t  self, val_t  param0);
 void abstractmetamodel___MMGlobalClass___is_interface__eq(val_t  self, val_t  param0);
 #define LOCATE_abstractmetamodel___MMGlobalClass___is_interface__eq "abstractmetamodel::MMGlobalClass::is_interface="
-#define ATTR_abstractmetamodel___MMGlobalClass____is_abstract(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____is_abstract)
 typedef val_t (* abstractmetamodel___MMGlobalClass___is_abstract_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___is_abstract(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___is_abstract "abstractmetamodel::MMGlobalClass::is_abstract"
 typedef void (* abstractmetamodel___MMGlobalClass___is_abstract__eq_t)(val_t  self, val_t  param0);
 void abstractmetamodel___MMGlobalClass___is_abstract__eq(val_t  self, val_t  param0);
 #define LOCATE_abstractmetamodel___MMGlobalClass___is_abstract__eq "abstractmetamodel::MMGlobalClass::is_abstract="
-#define ATTR_abstractmetamodel___MMGlobalClass____is_universal(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____is_universal)
 typedef val_t (* abstractmetamodel___MMGlobalClass___is_universal_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___is_universal(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___is_universal "abstractmetamodel::MMGlobalClass::is_universal"
 typedef void (* abstractmetamodel___MMGlobalClass___is_universal__eq_t)(val_t  self, val_t  param0);
 void abstractmetamodel___MMGlobalClass___is_universal__eq(val_t  self, val_t  param0);
 #define LOCATE_abstractmetamodel___MMGlobalClass___is_universal__eq "abstractmetamodel::MMGlobalClass::is_universal="
-#define ATTR_abstractmetamodel___MMGlobalClass____visibility_level(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____visibility_level)
 typedef val_t (* abstractmetamodel___MMGlobalClass___visibility_level_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___visibility_level(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___visibility_level "abstractmetamodel::MMGlobalClass::visibility_level"
@@ -399,7 +369,6 @@ void abstractmetamodel___MMGlobalClass___visibility_level__eq(val_t  self, val_t
 typedef val_t (* abstractmetamodel___MMGlobalClass___is_mixin_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___is_mixin(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___is_mixin "abstractmetamodel::MMGlobalClass::is_mixin"
-#define ATTR_abstractmetamodel___MMGlobalClass____mixin_of(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalClass____mixin_of)
 typedef val_t (* abstractmetamodel___MMGlobalClass___mixin_of_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalClass___mixin_of(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalClass___mixin_of "abstractmetamodel::MMGlobalClass::mixin_of"
@@ -409,43 +378,33 @@ void abstractmetamodel___MMGlobalClass___mixin_of__eq(val_t  self, val_t  param0
 typedef val_t (* abstractmetamodel___MMLocalClass___to_s_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___to_s(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___to_s "abstractmetamodel::MMLocalClass::(string::Object::to_s)"
-#define ATTR_abstractmetamodel___MMLocalClass____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____name)
 typedef val_t (* abstractmetamodel___MMLocalClass___name_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___name(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___name "abstractmetamodel::MMLocalClass::name"
-#define ATTR_abstractmetamodel___MMLocalClass____arity(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____arity)
 typedef val_t (* abstractmetamodel___MMLocalClass___arity_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___arity(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___arity "abstractmetamodel::MMLocalClass::arity"
-#define ATTR_abstractmetamodel___MMLocalClass____module(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____module)
 typedef val_t (* abstractmetamodel___MMLocalClass___module_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___module(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___module "abstractmetamodel::MMLocalClass::module"
-#define ATTR_abstractmetamodel___MMLocalClass____global(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____global)
 typedef val_t (* abstractmetamodel___MMLocalClass___global_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___global(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___global "abstractmetamodel::MMLocalClass::global"
-#define ATTR_abstractmetamodel___MMLocalClass____crhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____crhe)
 typedef val_t (* abstractmetamodel___MMLocalClass___crhe_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___crhe(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___crhe "abstractmetamodel::MMLocalClass::crhe"
-#define ATTR_abstractmetamodel___MMLocalClass____cshe(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____cshe)
 typedef val_t (* abstractmetamodel___MMLocalClass___cshe_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___cshe(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___cshe "abstractmetamodel::MMLocalClass::cshe"
-#define ATTR_abstractmetamodel___MMLocalClass____che(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____che)
 typedef val_t (* abstractmetamodel___MMLocalClass___che_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___che(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___che "abstractmetamodel::MMLocalClass::che"
-#define ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____local_property_by_global)
 typedef val_t (* abstractmetamodel___MMLocalClass___local_property_by_global_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___local_property_by_global(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___local_property_by_global "abstractmetamodel::MMLocalClass::local_property_by_global"
-#define ATTR_abstractmetamodel___MMLocalClass____global_properties(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____global_properties)
 typedef val_t (* abstractmetamodel___MMLocalClass___global_properties_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___global_properties(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___global_properties "abstractmetamodel::MMLocalClass::global_properties"
-#define ATTR_abstractmetamodel___MMLocalClass____properties_by_name(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalClass____properties_by_name)
 typedef val_t (* abstractmetamodel___MMLocalClass___properties_by_name_t)(val_t  self);
 val_t abstractmetamodel___MMLocalClass___properties_by_name(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalClass___properties_by_name "abstractmetamodel::MMLocalClass::properties_by_name"
@@ -498,14 +457,12 @@ val_t abstractmetamodel___MMLocalClass___context(val_t  self);
 typedef val_t (* abstractmetamodel___MMGlobalProperty___to_s_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalProperty___to_s(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___to_s "abstractmetamodel::MMGlobalProperty::(string::Object::to_s)"
-#define ATTR_abstractmetamodel___MMGlobalProperty____intro(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____intro)
 typedef val_t (* abstractmetamodel___MMGlobalProperty___intro_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalProperty___intro(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___intro "abstractmetamodel::MMGlobalProperty::intro"
 typedef val_t (* abstractmetamodel___MMGlobalProperty___local_class_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalProperty___local_class(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___local_class "abstractmetamodel::MMGlobalProperty::local_class"
-#define ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____property_hierarchy)
 typedef val_t (* abstractmetamodel___MMGlobalProperty___property_hierarchy_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalProperty___property_hierarchy(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___property_hierarchy "abstractmetamodel::MMGlobalProperty::property_hierarchy"
@@ -522,7 +479,6 @@ val_t abstractmetamodel___MMGlobalProperty___is_attribute(val_t  self);
 typedef val_t (* abstractmetamodel___MMGlobalProperty___is_method_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalProperty___is_method(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___is_method "abstractmetamodel::MMGlobalProperty::is_method"
-#define ATTR_abstractmetamodel___MMGlobalProperty____is_init(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____is_init)
 typedef val_t (* abstractmetamodel___MMGlobalProperty___is_init_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalProperty___is_init(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___is_init "abstractmetamodel::MMGlobalProperty::is_init"
@@ -532,7 +488,6 @@ void abstractmetamodel___MMGlobalProperty___is_init__eq(val_t  self, val_t  para
 typedef val_t (* abstractmetamodel___MMGlobalProperty___is_init_for_t)(val_t  self, val_t  param0);
 val_t abstractmetamodel___MMGlobalProperty___is_init_for(val_t  self, val_t  param0);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___is_init_for "abstractmetamodel::MMGlobalProperty::is_init_for"
-#define ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(recv) ATTR(recv, COLOR_abstractmetamodel___MMGlobalProperty____visibility_level)
 typedef val_t (* abstractmetamodel___MMGlobalProperty___visibility_level_t)(val_t  self);
 val_t abstractmetamodel___MMGlobalProperty___visibility_level(val_t  self);
 #define LOCATE_abstractmetamodel___MMGlobalProperty___visibility_level "abstractmetamodel::MMGlobalProperty::visibility_level"
@@ -542,19 +497,15 @@ void abstractmetamodel___MMGlobalProperty___visibility_level__eq(val_t  self, va
 typedef val_t (* abstractmetamodel___MMLocalProperty___to_s_t)(val_t  self);
 val_t abstractmetamodel___MMLocalProperty___to_s(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalProperty___to_s "abstractmetamodel::MMLocalProperty::(string::Object::to_s)"
-#define ATTR_abstractmetamodel___MMLocalProperty____name(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____name)
 typedef val_t (* abstractmetamodel___MMLocalProperty___name_t)(val_t  self);
 val_t abstractmetamodel___MMLocalProperty___name(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalProperty___name "abstractmetamodel::MMLocalProperty::name"
-#define ATTR_abstractmetamodel___MMLocalProperty____local_class(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____local_class)
 typedef val_t (* abstractmetamodel___MMLocalProperty___local_class_t)(val_t  self);
 val_t abstractmetamodel___MMLocalProperty___local_class(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalProperty___local_class "abstractmetamodel::MMLocalProperty::local_class"
-#define ATTR_abstractmetamodel___MMLocalProperty____global(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____global)
 typedef val_t (* abstractmetamodel___MMLocalProperty___global_t)(val_t  self);
 val_t abstractmetamodel___MMLocalProperty___global(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalProperty___global "abstractmetamodel::MMLocalProperty::global"
-#define ATTR_abstractmetamodel___MMLocalProperty____prhe(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____prhe)
 typedef val_t (* abstractmetamodel___MMLocalProperty___prhe_t)(val_t  self);
 val_t abstractmetamodel___MMLocalProperty___prhe(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalProperty___prhe "abstractmetamodel::MMLocalProperty::prhe"
@@ -570,7 +521,6 @@ void abstractmetamodel___MMLocalProperty___set_global(val_t  self, val_t  param0
 typedef void (* abstractmetamodel___MMLocalProperty___new_global_t)(val_t  self);
 void abstractmetamodel___MMLocalProperty___new_global(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalProperty___new_global "abstractmetamodel::MMLocalProperty::new_global"
-#define ATTR_abstractmetamodel___MMLocalProperty____need_super(recv) ATTR(recv, COLOR_abstractmetamodel___MMLocalProperty____need_super)
 typedef val_t (* abstractmetamodel___MMLocalProperty___need_super_t)(val_t  self);
 val_t abstractmetamodel___MMLocalProperty___need_super(val_t  self);
 #define LOCATE_abstractmetamodel___MMLocalProperty___need_super "abstractmetamodel::MMLocalProperty::need_super"
index a231775..d59ebca 100644 (file)
@@ -8,10 +8,10 @@ void abstracttool___AbstractCompiler___init(val_t  self, int* init_table) {
   trace.file = LOCATE_abstracttool;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbstractCompiler].i]) return;
-  ((mmloader___ToolContext___init_t)CALL(variable[0],COLOR_mmloader___ToolContext___init))(variable[0], init_table /*YYY*/) /*ToolContext::init*/;
+  CALL_mmloader___ToolContext___init(variable[0])(variable[0], init_table /*YYY*/) /*ToolContext::init*/;
   variable[2] = variable[0];
   variable[3] = NEW_SrcModuleLoader_syntax___SrcModuleLoader___init(); /*new SrcModuleLoader*/
-  ((mmloader___ToolContext___register_loader_t)CALL(variable[2],COLOR_mmloader___ToolContext___register_loader))(variable[2], variable[3]) /*ToolContext::register_loader*/;
+  CALL_mmloader___ToolContext___register_loader(variable[2])(variable[2], variable[3]) /*ToolContext::register_loader*/;
   return_label0: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbstractCompiler].i] = 1;
   tracehead = trace.prev;
@@ -25,43 +25,43 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t  self) {
   trace.file = LOCATE_abstracttool;
   variable[0] =  self;
   variable[2] = variable[0];
-  ((mmloader___ToolContext___process_options_t)CALL(variable[2],COLOR_mmloader___ToolContext___process_options))(variable[2]) /*ToolContext::process_options*/;
+  CALL_mmloader___ToolContext___process_options(variable[2])(variable[2]) /*ToolContext::process_options*/;
   variable[2] = variable[0];
-  variable[2] = ((mmloader___ToolContext___opt_help_t)CALL(variable[2],COLOR_mmloader___ToolContext___opt_help))(variable[2]) /*ToolContext::opt_help*/;
-  variable[2] = ((opts___Option___value_t)CALL(variable[2],COLOR_opts___Option___value))(variable[2]) /*Option::value*/;
+  variable[2] = CALL_mmloader___ToolContext___opt_help(variable[2])(variable[2]) /*ToolContext::opt_help*/;
+  variable[2] = CALL_opts___Option___value(variable[2])(variable[2]) /*Option::value*/;
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((mmloader___ToolContext___option_context_t)CALL(variable[2],COLOR_mmloader___ToolContext___option_context))(variable[2]) /*ToolContext::option_context*/;
-    ((opts___OptionContext___usage_t)CALL(variable[2],COLOR_opts___OptionContext___usage))(variable[2]) /*OptionContext::usage*/;
+    variable[2] = CALL_mmloader___ToolContext___option_context(variable[2])(variable[2]) /*ToolContext::option_context*/;
+    CALL_opts___OptionContext___usage(variable[2])(variable[2]) /*OptionContext::usage*/;
     variable[2] = variable[0];
     exit(UNTAG_Int( TAG_Int(0)));
   }
   variable[2] = variable[0];
-  variable[2] = ((mmloader___ToolContext___option_context_t)CALL(variable[2],COLOR_mmloader___ToolContext___option_context))(variable[2]) /*ToolContext::option_context*/;
-  variable[2] = ((opts___OptionContext___rest_t)CALL(variable[2],COLOR_opts___OptionContext___rest))(variable[2]) /*OptionContext::rest*/;
-  variable[2] = ((array___AbstractArray___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*AbstractArray::length*/;
+  variable[2] = CALL_mmloader___ToolContext___option_context(variable[2])(variable[2]) /*ToolContext::option_context*/;
+  variable[2] = CALL_opts___OptionContext___rest(variable[2])(variable[2]) /*OptionContext::rest*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArray::length*/;
   variable[2] = TAG_Bool((variable[2])==( TAG_Int(0)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((mmloader___ToolContext___option_context_t)CALL(variable[2],COLOR_mmloader___ToolContext___option_context))(variable[2]) /*ToolContext::option_context*/;
-    ((opts___OptionContext___usage_t)CALL(variable[2],COLOR_opts___OptionContext___usage))(variable[2]) /*OptionContext::usage*/;
+    variable[2] = CALL_mmloader___ToolContext___option_context(variable[2])(variable[2]) /*ToolContext::option_context*/;
+    CALL_opts___OptionContext___usage(variable[2])(variable[2]) /*OptionContext::usage*/;
     variable[2] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
   }
   variable[3] = variable[0];
-  variable[3] = ((mmloader___ToolContext___option_context_t)CALL(variable[3],COLOR_mmloader___ToolContext___option_context))(variable[3]) /*ToolContext::option_context*/;
-  variable[3] = ((opts___OptionContext___rest_t)CALL(variable[3],COLOR_opts___OptionContext___rest))(variable[3]) /*OptionContext::rest*/;
+  variable[3] = CALL_mmloader___ToolContext___option_context(variable[3])(variable[3]) /*ToolContext::option_context*/;
+  variable[3] = CALL_opts___OptionContext___rest(variable[3])(variable[3]) /*OptionContext::rest*/;
   variable[2] = variable[3];
   variable[4] = NEW_Array_array___Array___init(); /*new Array[MMModule]*/
   variable[3] = variable[4];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[2] /*rest*/,COLOR_abstract_collection___Collection___length))( variable[2] /*rest*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[2] /*rest*/)( variable[2] /*rest*/) /*AbstractArray::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[8] = variable[0];
     variable[9] =  variable[2] /*rest*/;
@@ -82,39 +82,39 @@ void abstracttool___AbstractCompiler___exec_cmd_line(val_t  self) {
     goto return_label3;
     return_label3: while(false);
     variable[9] = variable[11];
-    variable[8] = ((mmloader___ToolContext___get_module_from_filename_t)CALL(variable[8],COLOR_mmloader___ToolContext___get_module_from_filename))(variable[8], variable[9]) /*ToolContext::get_module_from_filename*/;
+    variable[8] = CALL_mmloader___ToolContext___get_module_from_filename(variable[8])(variable[8], variable[9]) /*ToolContext::get_module_from_filename*/;
     variable[7] = variable[8];
-    ((array___AbstractArray___add_t)CALL( variable[3] /*to_do*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*to_do*/,  variable[7] /*mod*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*to_do*/)( variable[3] /*to_do*/,  variable[7] /*mod*/) /*AbstractArray::add*/;
     continue_2: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_2: while(0);
   variable[4] = variable[0];
-  variable[4] = ((mmloader___ToolContext___opt_log_t)CALL(variable[4],COLOR_mmloader___ToolContext___opt_log))(variable[4]) /*ToolContext::opt_log*/;
-  variable[4] = ((opts___Option___value_t)CALL(variable[4],COLOR_opts___Option___value))(variable[4]) /*Option::value*/;
+  variable[4] = CALL_mmloader___ToolContext___opt_log(variable[4])(variable[4]) /*ToolContext::opt_log*/;
+  variable[4] = CALL_opts___Option___value(variable[4])(variable[4]) /*Option::value*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((abstracttool___AbstractCompiler___dump_context_info_t)CALL(variable[4],COLOR_abstracttool___AbstractCompiler___dump_context_info))(variable[4]) /*AbstractCompiler::dump_context_info*/;
+    CALL_abstracttool___AbstractCompiler___dump_context_info(variable[4])(variable[4]) /*AbstractCompiler::dump_context_info*/;
   }
-  variable[4] = ((array___AbstractArray___is_empty_t)CALL( variable[3] /*to_do*/,COLOR_abstract_collection___Collection___is_empty))( variable[3] /*to_do*/) /*AbstractArray::is_empty*/;
+  variable[4] = CALL_abstract_collection___Collection___is_empty( variable[3] /*to_do*/)( variable[3] /*to_do*/) /*AbstractArray::is_empty*/;
   variable[4] =  TAG_Bool(!UNTAG_Bool(variable[4]));
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = ((mmloader___ToolContext___opt_only_metamodel_t)CALL(variable[4],COLOR_mmloader___ToolContext___opt_only_metamodel))(variable[4]) /*ToolContext::opt_only_metamodel*/;
-    variable[4] = ((opts___Option___value_t)CALL(variable[4],COLOR_opts___Option___value))(variable[4]) /*Option::value*/;
+    variable[4] = CALL_mmloader___ToolContext___opt_only_metamodel(variable[4])(variable[4]) /*ToolContext::opt_only_metamodel*/;
+    variable[4] = CALL_opts___Option___value(variable[4])(variable[4]) /*Option::value*/;
     variable[4] =  TAG_Bool(!UNTAG_Bool(variable[4]));
   }
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[5] = ((mmloader___ToolContext___opt_only_parse_t)CALL(variable[5],COLOR_mmloader___ToolContext___opt_only_parse))(variable[5]) /*ToolContext::opt_only_parse*/;
-    variable[5] = ((opts___Option___value_t)CALL(variable[5],COLOR_opts___Option___value))(variable[5]) /*Option::value*/;
+    variable[5] = CALL_mmloader___ToolContext___opt_only_parse(variable[5])(variable[5]) /*ToolContext::opt_only_parse*/;
+    variable[5] = CALL_opts___Option___value(variable[5])(variable[5]) /*Option::value*/;
     variable[5] =  TAG_Bool(!UNTAG_Bool(variable[5]));
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((abstracttool___AbstractCompiler___perform_work_t)CALL(variable[4],COLOR_abstracttool___AbstractCompiler___perform_work))(variable[4],  variable[3] /*to_do*/) /*AbstractCompiler::perform_work*/;
+    CALL_abstracttool___AbstractCompiler___perform_work(variable[4])(variable[4],  variable[3] /*to_do*/) /*AbstractCompiler::perform_work*/;
   }
   return_label1: while(false);
   tracehead = trace.prev;
@@ -140,63 +140,65 @@ void abstracttool___AbstractCompiler___dump_context_info(val_t  self) {
   trace.file = LOCATE_abstracttool;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL(variable[2],COLOR_abstractmetamodel___MMContext___module_hierarchy))(variable[2]) /*MMContext::module_hierarchy*/;
-  variable[2] = ((partial_order___PartialOrder___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*PartialOrder::iterator*/;
+  variable[2] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable[2])(variable[2]) /*MMContext::module_hierarchy*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*PartialOrder::iterator*/;
   while (true) { /*for*/
-    variable[3] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*Iterator::is_ok*/;
+    variable[3] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[3])) break; /*for*/
-    variable[3] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
+    variable[3] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
     variable[4] = variable[3];
-    ((abstracttool___MMModule___dump_module_info_t)CALL( variable[4] /*mod*/,COLOR_abstracttool___MMModule___dump_module_info))( variable[4] /*mod*/) /*MMModule::dump_module_info*/;
+    CALL_abstracttool___MMModule___dump_module_info( variable[4] /*mod*/)( variable[4] /*mod*/) /*MMModule::dump_module_info*/;
     continue_5: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*Iterator::next*/;
   }
   break_5: while(0);
   variable[3] = NEW_Array_array___Array___init(); /*new Array[MMModule]*/
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL(variable[3],COLOR_abstractmetamodel___MMContext___module_hierarchy))(variable[3]) /*MMContext::module_hierarchy*/;
-  ((abstract_collection___SimpleCollection___add_all_t)CALL( variable[2] /*tab*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable[2] /*tab*/, variable[3]) /*SimpleCollection::add_all*/;
+  variable[3] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable[3])(variable[3]) /*MMContext::module_hierarchy*/;
+  CALL_abstract_collection___SimpleCollection___add_all( variable[2] /*tab*/)( variable[2] /*tab*/, variable[3]) /*SimpleCollection::add_all*/;
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL(variable[4],COLOR_abstractmetamodel___MMContext___module_hierarchy))(variable[4]) /*MMContext::module_hierarchy*/;
-  variable[4] = ((partial_order___PartialOrder___select_smallests_t)CALL(variable[4],COLOR_partial_order___PartialOrder___select_smallests))(variable[4],  variable[2] /*tab*/) /*PartialOrder::select_smallests*/;
+  variable[4] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable[4])(variable[4]) /*MMContext::module_hierarchy*/;
+  variable[4] = CALL_partial_order___PartialOrder___select_smallests(variable[4])(variable[4],  variable[2] /*tab*/) /*PartialOrder::select_smallests*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-  variable[4] = ((string___Collection___join_t)CALL(variable[4],COLOR_string___Collection___join))(variable[4], variable[5]) /*Collection::join*/;
+  variable[4] = CALL_string___Collection___join(variable[4])(variable[4], variable[5]) /*Collection::join*/;
   variable[3] = variable[4];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*name*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(".full_class_hierarchy.new.dot"), TAG_Int(29)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[6] = NEW_OFStream_file___OFStream___open(variable[5]); /*new OFStream*/
   variable[5] = variable[6];
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMContext___class_hierarchy_t)CALL(variable[5],COLOR_abstractmetamodel___MMContext___class_hierarchy))(variable[5]) /*MMContext::class_hierarchy*/;
-  variable[5] = ((partial_order___PartialOrder___to_dot_t)CALL(variable[5],COLOR_partial_order___PartialOrder___to_dot))(variable[5]) /*PartialOrder::to_dot*/;
-  ((file___OFStream___write_t)CALL( variable[4] /*f*/,COLOR_stream___OStream___write))( variable[4] /*f*/, variable[5]) /*OFStream::write*/;
-  ((file___OFStream___close_t)CALL( variable[4] /*f*/,COLOR_stream___IOS___close))( variable[4] /*f*/) /*OFStream::close*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = CALL_abstractmetamodel___MMContext___class_hierarchy(variable[5])(variable[5]) /*MMContext::class_hierarchy*/;
+  variable[5] = CALL_partial_order___PartialOrder___to_dot(variable[5])(variable[5]) /*PartialOrder::to_dot*/;
+  CALL_stream___OStream___write( variable[4] /*f*/)( variable[4] /*f*/, variable[5]) /*OFStream::write*/;
+  CALL_stream___IOS___close( variable[4] /*f*/)( variable[4] /*f*/) /*OFStream::close*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*name*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(".module_hierarchy.new.dot"), TAG_Int(25)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[6] = NEW_OFStream_file___OFStream___open(variable[5]); /*new OFStream*/
   variable[5] = variable[6];
   variable[4] = variable[5] /*f=*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMContext___module_hierarchy_t)CALL(variable[5],COLOR_abstractmetamodel___MMContext___module_hierarchy))(variable[5]) /*MMContext::module_hierarchy*/;
-  variable[5] = ((partial_order___PartialOrder___to_dot_t)CALL(variable[5],COLOR_partial_order___PartialOrder___to_dot))(variable[5]) /*PartialOrder::to_dot*/;
-  ((file___OFStream___write_t)CALL( variable[4] /*f*/,COLOR_stream___OStream___write))( variable[4] /*f*/, variable[5]) /*OFStream::write*/;
-  ((file___OFStream___close_t)CALL( variable[4] /*f*/,COLOR_stream___IOS___close))( variable[4] /*f*/) /*OFStream::close*/;
+  variable[5] = CALL_abstractmetamodel___MMContext___module_hierarchy(variable[5])(variable[5]) /*MMContext::module_hierarchy*/;
+  variable[5] = CALL_partial_order___PartialOrder___to_dot(variable[5])(variable[5]) /*PartialOrder::to_dot*/;
+  CALL_stream___OStream___write( variable[4] /*f*/)( variable[4] /*f*/, variable[5]) /*OFStream::write*/;
+  CALL_stream___IOS___close( variable[4] /*f*/)( variable[4] /*f*/) /*OFStream::close*/;
   return_label4: while(false);
   tracehead = trace.prev;
   return;
@@ -209,72 +211,75 @@ void abstracttool___MMModule___dump_module_info(val_t  self) {
   trace.file = LOCATE_abstracttool;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((mmloader___MMModule___filename_t)CALL(variable[3],COLOR_mmloader___MMModule___filename))(variable[3]) /*MMModule::filename*/;
-  variable[3] = ((file___String___file_path_t)CALL(variable[3],COLOR_file___String___file_path))(variable[3]) /*String::file_path*/;
+  variable[3] = CALL_mmloader___MMModule___filename(variable[3])(variable[3]) /*MMModule::filename*/;
+  variable[3] = CALL_file___String___file_path(variable[3])(variable[3]) /*String::file_path*/;
   variable[2] = variable[3];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[2] /*p*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((abstractmetamodel___MMModule___name_t)CALL(variable[10],COLOR_abstractmetamodel___MMModule___name))(variable[10]) /*MMModule::name*/;
+  variable[10] = CALL_abstractmetamodel___MMModule___name(variable[10])(variable[10]) /*MMModule::name*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
   variable[3] = variable[4];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*fname*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(".class_hierarchy.new.dot"), TAG_Int(24)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[6] = NEW_OFStream_file___OFStream___open(variable[5]); /*new OFStream*/
   variable[5] = variable[6];
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMModule___class_specialization_hierarchy_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___class_specialization_hierarchy))(variable[5]) /*MMModule::class_specialization_hierarchy*/;
-  variable[5] = ((partial_order___PartialOrder___to_dot_t)CALL(variable[5],COLOR_partial_order___PartialOrder___to_dot))(variable[5]) /*PartialOrder::to_dot*/;
-  ((file___OFStream___write_t)CALL( variable[4] /*f*/,COLOR_stream___OStream___write))( variable[4] /*f*/, variable[5]) /*OFStream::write*/;
-  ((file___OFStream___close_t)CALL( variable[4] /*f*/,COLOR_stream___IOS___close))( variable[4] /*f*/) /*OFStream::close*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(variable[5])(variable[5]) /*MMModule::class_specialization_hierarchy*/;
+  variable[5] = CALL_partial_order___PartialOrder___to_dot(variable[5])(variable[5]) /*PartialOrder::to_dot*/;
+  CALL_stream___OStream___write( variable[4] /*f*/)( variable[4] /*f*/, variable[5]) /*OFStream::write*/;
+  CALL_stream___IOS___close( variable[4] /*f*/)( variable[4] /*f*/) /*OFStream::close*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*fname*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(".properties.log"), TAG_Int(15)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[6] = NEW_OFStream_file___OFStream___open(variable[5]); /*new OFStream*/
   variable[5] = variable[6];
   variable[4] = variable[5] /*f=*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___local_classes))(variable[5]) /*MMModule::local_classes*/;
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstractmetamodel___MMModule___local_classes(variable[5])(variable[5]) /*MMModule::local_classes*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    ((abstracttool___MMLocalClass___dump_properties_t)CALL( variable[7] /*cla*/,COLOR_abstracttool___MMLocalClass___dump_properties))( variable[7] /*cla*/,  variable[4] /*f*/) /*MMLocalClass::dump_properties*/;
+    CALL_abstracttool___MMLocalClass___dump_properties( variable[7] /*cla*/)( variable[7] /*cla*/,  variable[4] /*f*/) /*MMLocalClass::dump_properties*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
-    ((file___OFStream___write_t)CALL( variable[4] /*f*/,COLOR_stream___OStream___write))( variable[4] /*f*/, variable[8]) /*OFStream::write*/;
+    CALL_stream___OStream___write( variable[4] /*f*/)( variable[4] /*f*/, variable[8]) /*OFStream::write*/;
     continue_7: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_7: while(0);
-  ((file___OFStream___close_t)CALL( variable[4] /*f*/,COLOR_stream___IOS___close))( variable[4] /*f*/) /*OFStream::close*/;
+  CALL_stream___IOS___close( variable[4] /*f*/)( variable[4] /*f*/) /*OFStream::close*/;
   return_label6: while(false);
   tracehead = trace.prev;
   return;
@@ -287,65 +292,68 @@ void abstracttool___MMLocalClass___dump_properties(val_t  self, val_t  param0) {
   trace.file = LOCATE_abstracttool;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("class "), TAG_Int(6)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  ((stream___OStream___write_t)CALL( variable[1] /*file*/,COLOR_stream___OStream___write))( variable[1] /*file*/, variable[3]) /*OStream::write*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[1] /*file*/)( variable[1] /*file*/, variable[3]) /*OStream::write*/;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___global_properties))(variable[3]) /*MMLocalClass::global_properties*/;
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[3])(variable[3]) /*MMLocalClass::global_properties*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
     variable[7] = variable[0];
-    variable[7] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[7],  variable[5] /*p*/) /*MMLocalClass::[]*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[7])(variable[7],  variable[5] /*p*/) /*MMLocalClass::[]*/;
     variable[6] = variable[7];
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\t"), TAG_Int(1)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[6] /*lp*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
     variable[13] = variable[0];
-    variable[13] = ((genericity___MMLocalClass___get_type_t)CALL(variable[13],COLOR_static_type___MMLocalClass___get_type))(variable[13]) /*MMLocalClass::get_type*/;
-    variable[13] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[6] /*lp*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[6] /*lp*/, variable[13]) /*MMLocalProperty::signature_for*/;
+    variable[13] = CALL_static_type___MMLocalClass___get_type(variable[13])(variable[13]) /*MMLocalClass::get_type*/;
+    variable[13] = CALL_static_type___MMLocalProperty___signature_for( variable[6] /*lp*/)( variable[6] /*lp*/, variable[13]) /*MMLocalProperty::signature_for*/;
     variable[14] = variable[13];
-    variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[14]) /*String::append*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[16]) /*String::append*/;
-    ((stream___OStream___write_t)CALL( variable[1] /*file*/,COLOR_stream___OStream___write))( variable[1] /*file*/, variable[7]) /*OStream::write*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_stream___OStream___write( variable[1] /*file*/)( variable[1] /*file*/, variable[7]) /*OStream::write*/;
     continue_9: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_9: while(0);
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("end # "), TAG_Int(6)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  ((stream___OStream___write_t)CALL( variable[1] /*file*/,COLOR_stream___OStream___write))( variable[1] /*file*/, variable[3]) /*OStream::write*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[1] /*file*/)( variable[1] /*file*/, variable[3]) /*OStream::write*/;
   return_label8: while(false);
   tracehead = trace.prev;
   return;
index c6e52ea..2a7406c 100644 (file)
@@ -7,15 +7,15 @@
 extern const classtable_elt_t VFT_AbstractCompiler[];
 extern const char *LOCATE_abstracttool;
 extern const int SFT_abstracttool[];
-#define ID_AbstractCompiler SFT_abstracttool[0]
-#define COLOR_AbstractCompiler SFT_abstracttool[1]
-#define INIT_TABLE_POS_AbstractCompiler SFT_abstracttool[2]
-#define COLOR_abstracttool___AbstractCompiler___init SFT_abstracttool[3]
-#define COLOR_abstracttool___AbstractCompiler___exec_cmd_line SFT_abstracttool[4]
-#define COLOR_abstracttool___AbstractCompiler___perform_work SFT_abstracttool[5]
-#define COLOR_abstracttool___AbstractCompiler___dump_context_info SFT_abstracttool[6]
-#define COLOR_abstracttool___MMModule___dump_module_info SFT_abstracttool[7]
-#define COLOR_abstracttool___MMLocalClass___dump_properties SFT_abstracttool[8]
+#define ID_AbstractCompiler (SFT_abstracttool[0])
+#define COLOR_AbstractCompiler (SFT_abstracttool[1])
+#define INIT_TABLE_POS_AbstractCompiler (SFT_abstracttool[2] + 0)
+#define CALL_abstracttool___AbstractCompiler___init(recv) ((abstracttool___AbstractCompiler___init_t)CALL((recv), (SFT_abstracttool[2] + 1)))
+#define CALL_abstracttool___AbstractCompiler___exec_cmd_line(recv) ((abstracttool___AbstractCompiler___exec_cmd_line_t)CALL((recv), (SFT_abstracttool[2] + 2)))
+#define CALL_abstracttool___AbstractCompiler___perform_work(recv) ((abstracttool___AbstractCompiler___perform_work_t)CALL((recv), (SFT_abstracttool[2] + 3)))
+#define CALL_abstracttool___AbstractCompiler___dump_context_info(recv) ((abstracttool___AbstractCompiler___dump_context_info_t)CALL((recv), (SFT_abstracttool[2] + 4)))
+#define CALL_abstracttool___MMModule___dump_module_info(recv) ((abstracttool___MMModule___dump_module_info_t)CALL((recv), (SFT_abstracttool[3] + 0)))
+#define CALL_abstracttool___MMLocalClass___dump_properties(recv) ((abstracttool___MMLocalClass___dump_properties_t)CALL((recv), (SFT_abstracttool[4] + 0)))
 typedef void (* abstracttool___AbstractCompiler___init_t)(val_t  self, int* init_table);
 void abstracttool___AbstractCompiler___init(val_t  self, int* init_table);
 #define LOCATE_abstracttool___AbstractCompiler___init "abstracttool::AbstractCompiler::init"
index 086d6a2..53d9b4e 100644 (file)
@@ -20,9 +20,9 @@ val_t array___AbstractArray_____eqeq(val_t  self, val_t  param0) {
   variable[3] = TAG_Bool(( variable[1] /*o*/==NIT_NULL) || VAL_ISA( variable[1] /*o*/, COLOR_AbstractArray, ID_AbstractArray)) /*cast AbstractArray[E]*/;
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___AbstractArray_____eqeq, LOCATE_array, 203); nit_exit(1);}
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = variable[4];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*o*/,COLOR_abstract_collection___Collection___length))( variable[1] /*o*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*o*/)( variable[1] /*o*/) /*AbstractArray::length*/;
   variable[4] = TAG_Bool((variable[4])!=( variable[3] /*l*/));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  TAG_Bool(false);
@@ -33,9 +33,9 @@ val_t array___AbstractArray_____eqeq(val_t  self, val_t  param0) {
     variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int( variable[3] /*l*/));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = variable[0];
-    variable[5] = ((abstract_collection___Map_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[4] /*i*/) /*Map::[]*/;
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL( variable[1] /*o*/,COLOR_abstract_collection___Map_____bra))( variable[1] /*o*/,  variable[4] /*i*/) /*Map::[]*/;
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], variable[6]) /*Object::==*/)))))));
+    variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[4] /*i*/) /*Map::[]*/;
+    variable[6] = CALL_abstract_collection___Map_____bra( variable[1] /*o*/)( variable[1] /*o*/,  variable[4] /*i*/) /*Map::[]*/;
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], variable[6]) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label0;
@@ -59,17 +59,17 @@ void array___AbstractArray___output(val_t  self) {
   variable[0] =  self;
   variable[2] =  TAG_Int(0);
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[2] /*i*/)<UNTAG_Int( variable[3] /*l*/));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[5] = variable[0];
-    variable[5] = ((abstract_collection___Map_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[2] /*i*/) /*Map::[]*/;
+    variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[2] /*i*/) /*Map::[]*/;
     variable[4] = variable[5];
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*e*/ ==  NIT_NULL /*null*/) || (( variable[4] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*e*/,COLOR_kernel___Object_____eqeq))( variable[4] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*e*/ ==  NIT_NULL /*null*/) || (( variable[4] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*e*/)( variable[4] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[5])) { /*if*/
-      ((kernel___Object___output_t)CALL( variable[4] /*e*/,COLOR_kernel___Object___output))( variable[4] /*e*/) /*Object::output*/;
+      CALL_kernel___Object___output( variable[4] /*e*/)( variable[4] /*e*/) /*Object::output*/;
     }
     variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_3: while(0);
@@ -130,14 +130,14 @@ val_t array___AbstractArray___has(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] =  TAG_Int(0);
   variable[5] = variable[0];
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
   variable[4] = variable[5];
   while (true) { /*while*/
     variable[5] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l*/));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = variable[0];
-    variable[5] = ((abstract_collection___Map_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[3] /*i*/) /*Map::[]*/;
-    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*item*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[3] /*i*/) /*Map::[]*/;
+    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*item*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[2] =  TAG_Bool(true);
       goto return_label6;
@@ -162,14 +162,14 @@ val_t array___AbstractArray___has_only(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] =  TAG_Int(0);
   variable[5] = variable[0];
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
   variable[4] = variable[5];
   while (true) { /*while*/
     variable[5] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l*/));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = variable[0];
-    variable[5] = ((abstract_collection___Map_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[3] /*i*/) /*Map::[]*/;
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  variable[1] /*item*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  variable[1] /*item*/) /*Object::==*/)))))));
+    variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[3] /*i*/) /*Map::[]*/;
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  variable[1] /*item*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  variable[1] /*item*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label8;
@@ -195,14 +195,14 @@ val_t array___AbstractArray___count(val_t  self, val_t  param0) {
   variable[3] =  TAG_Int(0);
   variable[4] =  TAG_Int(0);
   variable[6] = variable[0];
-  variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
   variable[5] = variable[6];
   while (true) { /*while*/
     variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int( variable[5] /*l*/));
     if (!UNTAG_Bool(variable[6])) break; /* while*/
     variable[6] = variable[0];
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[4] /*i*/) /*Map::[]*/;
-    variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[4] /*i*/) /*Map::[]*/;
+    variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*res*/;
     }
@@ -239,8 +239,8 @@ void array___AbstractArray___remove(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___index_of_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___index_of))(variable[4],  variable[1] /*item*/) /*AbstractArray::index_of*/;
-  ((array___AbstractArray___remove_at_t)CALL(variable[3],COLOR_abstract_collection___Map___remove_at))(variable[3], variable[4]) /*AbstractArray::remove_at*/;
+  variable[4] = CALL_abstract_collection___IndexedCollection___index_of(variable[4])(variable[4],  variable[1] /*item*/) /*AbstractArray::index_of*/;
+  CALL_abstract_collection___Map___remove_at(variable[3])(variable[3], variable[4]) /*AbstractArray::remove_at*/;
   return_label13: while(false);
   tracehead = trace.prev;
   return;
@@ -254,15 +254,15 @@ void array___AbstractArray___remove_all(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___index_of_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___index_of))(variable[4],  variable[1] /*item*/) /*AbstractArray::index_of*/;
+  variable[4] = CALL_abstract_collection___IndexedCollection___index_of(variable[4])(variable[4],  variable[1] /*item*/) /*AbstractArray::index_of*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
-    ((array___AbstractArray___remove_at_t)CALL(variable[4],COLOR_abstract_collection___Map___remove_at))(variable[4],  variable[3] /*i*/) /*AbstractArray::remove_at*/;
+    CALL_abstract_collection___Map___remove_at(variable[4])(variable[4],  variable[3] /*i*/) /*AbstractArray::remove_at*/;
     variable[4] = variable[0];
-    variable[4] = ((array___AbstractArray___index_of_from_t)CALL(variable[4],COLOR_array___AbstractArray___index_of_from))(variable[4],  variable[1] /*item*/,  variable[3] /*i*/) /*AbstractArray::index_of_from*/;
+    variable[4] = CALL_array___AbstractArray___index_of_from(variable[4])(variable[4],  variable[1] /*item*/,  variable[3] /*i*/) /*AbstractArray::index_of_from*/;
     variable[3] = variable[4] /*i=*/;
     continue_15: while(0);
   }
@@ -283,7 +283,7 @@ val_t array___AbstractArray___has_key(val_t  self, val_t  param0) {
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+    variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
     variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*index*/)<UNTAG_Int(variable[4]));
   }
   variable[3] = variable[4];
@@ -302,7 +302,7 @@ void array___AbstractArray___remove_at(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)>=UNTAG_Int( TAG_Int(0)));
   variable[5] = variable[4];
@@ -319,8 +319,8 @@ void array___AbstractArray___remove_at(val_t  self, val_t  param0) {
       variable[5] = variable[0];
       variable[6] = TAG_Int(UNTAG_Int( variable[4] /*j*/)-UNTAG_Int( TAG_Int(1)));
       variable[7] = variable[0];
-      variable[7] = ((abstract_collection___Map_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[4] /*j*/) /*Map::[]*/;
-      ((abstract_collection___Map_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5], variable[6], variable[7]) /*Map::[]=*/;
+      variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[4] /*j*/) /*Map::[]*/;
+      CALL_abstract_collection___Map_____braeq(variable[5])(variable[5], variable[6], variable[7]) /*Map::[]=*/;
       variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*j*/;
       continue_18: while(0);
     }
@@ -343,8 +343,8 @@ void array___AbstractArray___add(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[1] /*item*/) /*Map::[]=*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[1] /*item*/) /*Map::[]=*/;
   return_label19: while(false);
   tracehead = trace.prev;
   return;
@@ -358,7 +358,7 @@ void array___AbstractArray___push(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*item*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*item*/) /*AbstractArray::add*/;
   return_label20: while(false);
   tracehead = trace.prev;
   return;
@@ -371,10 +371,10 @@ val_t array___AbstractArray___pop(val_t  self) {
   trace.file = LOCATE_array;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((array___AbstractArray___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*AbstractArray::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*AbstractArray::is_empty*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", " 'not_empty' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___AbstractArray___pop, LOCATE_array, 34); nit_exit(1);}
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___IndexedCollection___last_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___last))(variable[3]) /*IndexedCollection::last*/;
+  variable[3] = CALL_abstract_collection___IndexedCollection___last(variable[3])(variable[3]) /*IndexedCollection::last*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/)-UNTAG_Int( TAG_Int(1)));
@@ -393,7 +393,7 @@ void array___AbstractArray___unshift(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
   variable[3] = variable[4];
   while (true) { /*while*/
@@ -402,14 +402,14 @@ void array___AbstractArray___unshift(val_t  self, val_t  param0) {
     variable[4] = variable[0];
     variable[5] = TAG_Int(UNTAG_Int( variable[3] /*i*/)+UNTAG_Int( TAG_Int(1)));
     variable[6] = variable[0];
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[3] /*i*/) /*Map::[]*/;
-    ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4], variable[5], variable[6]) /*Map::[]=*/;
+    variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[3] /*i*/) /*Map::[]*/;
+    CALL_abstract_collection___Map_____braeq(variable[4])(variable[4], variable[5], variable[6]) /*Map::[]=*/;
     variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_23: while(0);
   }
   break_23: while(0);
   variable[4] = variable[0];
-  ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  TAG_Int(0),  variable[1] /*item*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  TAG_Int(0),  variable[1] /*item*/) /*Map::[]=*/;
   return_label22: while(false);
   tracehead = trace.prev;
   return;
@@ -422,14 +422,14 @@ val_t array___AbstractArray___shift(val_t  self) {
   trace.file = LOCATE_array;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((array___AbstractArray___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*AbstractArray::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*AbstractArray::is_empty*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", " 'not_empty' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___AbstractArray___shift, LOCATE_array, 42); nit_exit(1);}
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[3],COLOR_abstract_collection___Collection___first))(variable[3]) /*IndexedCollection::first*/;
+  variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*IndexedCollection::first*/;
   variable[2] = variable[3];
   variable[3] =  TAG_Int(1);
   variable[5] = variable[0];
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
   variable[4] = variable[5];
   while (true) { /*while*/
     variable[5] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l*/));
@@ -437,8 +437,8 @@ val_t array___AbstractArray___shift(val_t  self) {
     variable[5] = variable[0];
     variable[6] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[7] = variable[0];
-    variable[7] = ((abstract_collection___Map_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[3] /*i*/) /*Map::[]*/;
-    ((abstract_collection___Map_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5], variable[6], variable[7]) /*Map::[]=*/;
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[3] /*i*/) /*Map::[]*/;
+    CALL_abstract_collection___Map_____braeq(variable[5])(variable[5], variable[6], variable[7]) /*Map::[]=*/;
     variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_25: while(0);
   }
@@ -461,7 +461,7 @@ val_t array___AbstractArray___index_of(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((array___AbstractArray___index_of_from_t)CALL(variable[3],COLOR_array___AbstractArray___index_of_from))(variable[3],  variable[1] /*item*/,  TAG_Int(0)) /*AbstractArray::index_of_from*/;
+  variable[3] = CALL_array___AbstractArray___index_of_from(variable[3])(variable[3],  variable[1] /*item*/,  TAG_Int(0)) /*AbstractArray::index_of_from*/;
   variable[2] = variable[3];
   goto return_label26;
   return_label26: while(false);
@@ -491,18 +491,18 @@ void array___AbstractArray___insert(val_t  self, val_t  param0, val_t  param1) {
   variable[2] =  param1;
   variable[4] = variable[0];
   variable[5] = variable[0];
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___enlarge_t)CALL(variable[4],COLOR_array___AbstractArray___enlarge))(variable[4], variable[5]) /*AbstractArray::enlarge*/;
+  CALL_array___AbstractArray___enlarge(variable[4])(variable[4], variable[5]) /*AbstractArray::enlarge*/;
   variable[4] = variable[0];
   variable[5] = variable[0];
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int( variable[2] /*pos*/));
   variable[6] = variable[0];
   variable[7] = TAG_Int(UNTAG_Int( variable[2] /*pos*/)+UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___copy_to_t)CALL(variable[4],COLOR_array___AbstractArray___copy_to))(variable[4],  variable[2] /*pos*/, variable[5], variable[6], variable[7]) /*AbstractArray::copy_to*/;
+  CALL_array___AbstractArray___copy_to(variable[4])(variable[4],  variable[2] /*pos*/, variable[5], variable[6], variable[7]) /*AbstractArray::copy_to*/;
   variable[4] = variable[0];
-  ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[2] /*pos*/,  variable[1] /*item*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[2] /*pos*/,  variable[1] /*item*/) /*Map::[]=*/;
   return_label27: while(false);
   tracehead = trace.prev;
   return;
@@ -517,9 +517,9 @@ val_t array___AbstractArray___last_index_of(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
-  variable[3] = ((array___AbstractArray___last_index_of_from_t)CALL(variable[3],COLOR_array___AbstractArray___last_index_of_from))(variable[3],  variable[1] /*item*/, variable[4]) /*AbstractArray::last_index_of_from*/;
+  variable[3] = CALL_array___AbstractArray___last_index_of_from(variable[3])(variable[3],  variable[1] /*item*/, variable[4]) /*AbstractArray::last_index_of_from*/;
   variable[2] = variable[3];
   goto return_label28;
   return_label28: while(false);
@@ -537,14 +537,14 @@ val_t array___AbstractArray___index_of_from(val_t  self, val_t  param0, val_t  p
   variable[2] =  param1;
   variable[4] =  variable[2] /*pos*/;
   variable[6] = variable[0];
-  variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
   variable[5] = variable[6];
   while (true) { /*while*/
     variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int( variable[5] /*len*/));
     if (!UNTAG_Bool(variable[6])) break; /* while*/
     variable[6] = variable[0];
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[4] /*i*/) /*Map::[]*/;
-    variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[4] /*i*/) /*Map::[]*/;
+    variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[3] =  variable[4] /*i*/;
       goto return_label29;
@@ -574,8 +574,8 @@ val_t array___AbstractArray___last_index_of_from(val_t  self, val_t  param0, val
     variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = variable[0];
-    variable[5] = ((abstract_collection___Map_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[4] /*i*/) /*Map::[]*/;
-    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*item*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[4] /*i*/) /*Map::[]*/;
+    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*item*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[3] =  variable[4] /*i*/;
       goto return_label31;
@@ -609,8 +609,8 @@ val_t array___AbstractArray___reversed(val_t  self) {
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[2] = TAG_Int(UNTAG_Int(variable[2])-UNTAG_Int( TAG_Int(1))) /*cmp*/;
     variable[4] = variable[0];
-    variable[4] = ((abstract_collection___Map_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[2] /*cmp*/) /*Map::[]*/;
-    ((array___AbstractArray___add_t)CALL( variable[3] /*result*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*result*/, variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[2] /*cmp*/) /*Map::[]*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*result*/)( variable[3] /*result*/, variable[4]) /*AbstractArray::add*/;
     continue_34: while(0);
   }
   break_34: while(0);
@@ -639,8 +639,8 @@ void array___AbstractArray___copy_to(val_t  self, val_t  param0, val_t  param1,
     variable[7] = TAG_Int(UNTAG_Int( variable[4] /*new_start*/)+UNTAG_Int( variable[6] /*i*/));
     variable[8] = variable[0];
     variable[9] = TAG_Int(UNTAG_Int( variable[1] /*start*/)+UNTAG_Int( variable[6] /*i*/));
-    variable[8] = ((abstract_collection___Map_____bra_t)CALL(variable[8],COLOR_abstract_collection___Map_____bra))(variable[8], variable[9]) /*Map::[]*/;
-    ((abstract_collection___Map_____braeq_t)CALL( variable[3] /*dest*/,COLOR_abstract_collection___Map_____braeq))( variable[3] /*dest*/, variable[7], variable[8]) /*Map::[]=*/;
+    variable[8] = CALL_abstract_collection___Map_____bra(variable[8])(variable[8], variable[9]) /*Map::[]*/;
+    CALL_abstract_collection___Map_____braeq( variable[3] /*dest*/)( variable[3] /*dest*/, variable[7], variable[8]) /*Map::[]=*/;
     continue_36: while(0);
   }
   break_36: while(0);
@@ -708,7 +708,7 @@ void array___Array_____braeq(val_t  self, val_t  param0, val_t  param1) {
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = TAG_Int(UNTAG_Int( variable[1] /*index*/)+UNTAG_Int( TAG_Int(1)));
-    ((array___Array___enlarge_t)CALL(variable[4],COLOR_array___AbstractArray___enlarge))(variable[4], variable[5]) /*Array::enlarge*/;
+    CALL_array___AbstractArray___enlarge(variable[4])(variable[4], variable[5]) /*Array::enlarge*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/;
@@ -805,7 +805,7 @@ void array___Array___with_items(val_t  self, val_t  param0, int* init_table) {
   variable[4] = ATTR_array___Array____capacity( variable[1] /*objects*/) /*Array::_capacity*/;
   ATTR_array___Array____capacity(variable[3]) /*Array::_capacity*/ = variable[4];
   variable[3] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*objects*/,COLOR_abstract_collection___Collection___length))( variable[1] /*objects*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*objects*/)( variable[1] /*objects*/) /*AbstractArray::length*/;
   ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/ = variable[4];
   return_label42: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Array].i] = 1;
@@ -861,7 +861,7 @@ void array___Array___filled_with(val_t  self, val_t  param0, val_t  param1, int*
     variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int( variable[2] /*count*/));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = variable[0];
-    ((array___Array_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5],  variable[4] /*i*/,  variable[1] /*value*/) /*Array::[]=*/;
+    CALL_abstract_collection___Map_____braeq(variable[5])(variable[5],  variable[4] /*i*/,  variable[1] /*value*/) /*Array::[]=*/;
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_45: while(0);
   }
@@ -905,7 +905,7 @@ val_t array___ArrayIterator___item(val_t  self) {
   variable[2] = ATTR_array___ArrayIterator____array(variable[2]) /*ArrayIterator::_array*/;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArrayIterator____index(variable[3]) /*ArrayIterator::_index*/;
-  variable[2] = ((abstract_collection___Map_____bra_t)CALL(variable[2],COLOR_abstract_collection___Map_____bra))(variable[2], variable[3]) /*Map::[]*/;
+  variable[2] = CALL_abstract_collection___Map_____bra(variable[2])(variable[2], variable[3]) /*Map::[]*/;
   variable[1] = variable[2];
   goto return_label47;
   return_label47: while(false);
@@ -936,7 +936,7 @@ val_t array___ArrayIterator___is_ok(val_t  self) {
   variable[2] = ATTR_array___ArrayIterator____index(variable[2]) /*ArrayIterator::_index*/;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArrayIterator____array(variable[3]) /*ArrayIterator::_array*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])<UNTAG_Int(variable[3]));
   variable[1] = variable[2];
   goto return_label49;
@@ -956,7 +956,7 @@ void array___ArrayIterator___item__eq(val_t  self, val_t  param0) {
   variable[3] = ATTR_array___ArrayIterator____array(variable[3]) /*ArrayIterator::_array*/;
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArrayIterator____index(variable[4]) /*ArrayIterator::_index*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[1] /*e*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[1] /*e*/) /*Map::[]=*/;
   return_label50: while(false);
   tracehead = trace.prev;
   return;
@@ -979,7 +979,7 @@ void array___ArrayIterator___init(val_t  self, val_t  param0, int* init_table) {
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ArrayIterator].i]) return;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*a*/ ==  NIT_NULL /*null*/) || (( variable[1] /*a*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*a*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*a*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*a*/,COLOR_kernel___Object_____eqeq))( variable[1] /*a*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*a*/ ==  NIT_NULL /*null*/) || (( variable[1] /*a*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*a*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*a*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*a*/)( variable[1] /*a*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", " 'not_nil' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___ArrayIterator___init, LOCATE_array, 323); nit_exit(1);}
   variable[3] = variable[0];
   ATTR_array___ArrayIterator____array(variable[3]) /*ArrayIterator::_array*/ =  variable[1] /*a*/;
@@ -999,7 +999,7 @@ val_t array___ArraySet___iterator(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySet____array(variable[2]) /*ArraySet::_array*/;
-  variable[2] = ((array___AbstractArray___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*AbstractArray::iterator*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*AbstractArray::iterator*/;
   variable[3] = NEW_ArraySetIterator_array___ArraySetIterator___init(variable[2]); /*new ArraySetIterator[E]*/
   variable[2] = variable[3];
   variable[1] = variable[2];
@@ -1017,7 +1017,7 @@ val_t array___ArraySet___is_empty(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySet____array(variable[2]) /*ArraySet::_array*/;
-  variable[2] = ((array___AbstractArray___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*AbstractArray::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*AbstractArray::is_empty*/;
   variable[1] = variable[2];
   goto return_label53;
   return_label53: while(false);
@@ -1033,7 +1033,7 @@ val_t array___ArraySet___length(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySet____array(variable[2]) /*ArraySet::_array*/;
-  variable[2] = ((array___AbstractArray___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*AbstractArray::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArray::length*/;
   variable[1] = variable[2];
   goto return_label54;
   return_label54: while(false);
@@ -1050,7 +1050,7 @@ val_t array___ArraySet___has(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArraySet____array(variable[3]) /*ArraySet::_array*/;
-  variable[3] = ((array___AbstractArray___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*e*/) /*AbstractArray::has*/;
+  variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*e*/) /*AbstractArray::has*/;
   variable[2] = variable[3];
   goto return_label55;
   return_label55: while(false);
@@ -1066,12 +1066,12 @@ val_t array___ArraySet___first(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySet____array(variable[2]) /*ArraySet::_array*/;
-  variable[2] = ((array___AbstractArray___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*AbstractArray::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArray::length*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>UNTAG_Int( TAG_Int(0)));
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___ArraySet___first, LOCATE_array, 350); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySet____array(variable[2]) /*ArraySet::_array*/;
-  variable[2] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[2],COLOR_abstract_collection___Collection___first))(variable[2]) /*IndexedCollection::first*/;
+  variable[2] = CALL_abstract_collection___Collection___first(variable[2])(variable[2]) /*IndexedCollection::first*/;
   variable[1] = variable[2];
   goto return_label56;
   return_label56: while(false);
@@ -1087,7 +1087,7 @@ void array___ArraySet___clear(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySet____array(variable[2]) /*ArraySet::_array*/;
-  ((array___AbstractArray___clear_t)CALL(variable[2],COLOR_abstract_collection___RemovableCollection___clear))(variable[2]) /*AbstractArray::clear*/;
+  CALL_abstract_collection___RemovableCollection___clear(variable[2])(variable[2]) /*AbstractArray::clear*/;
   return_label57: while(false);
   tracehead = trace.prev;
   return;
@@ -1102,12 +1102,12 @@ void array___ArraySet___remove(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArraySet____array(variable[4]) /*ArraySet::_array*/;
-  variable[4] = ((array___AbstractArray___index_of_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___index_of))(variable[4],  variable[1] /*item*/) /*AbstractArray::index_of*/;
+  variable[4] = CALL_abstract_collection___IndexedCollection___index_of(variable[4])(variable[4],  variable[1] /*item*/) /*AbstractArray::index_of*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((array___ArraySet___remove_at_t)CALL(variable[4],COLOR_array___ArraySet___remove_at))(variable[4],  variable[3] /*i*/) /*ArraySet::remove_at*/;
+    CALL_array___ArraySet___remove_at(variable[4])(variable[4],  variable[3] /*i*/) /*ArraySet::remove_at*/;
   }
   return_label58: while(false);
   tracehead = trace.prev;
@@ -1122,7 +1122,7 @@ void array___ArraySet___remove_all(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((array___ArraySet___remove_t)CALL(variable[3],COLOR_abstract_collection___RemovableCollection___remove))(variable[3],  variable[1] /*item*/) /*ArraySet::remove*/;
+  CALL_abstract_collection___RemovableCollection___remove(variable[3])(variable[3],  variable[1] /*item*/) /*ArraySet::remove*/;
   return_label59: while(false);
   tracehead = trace.prev;
   return;
@@ -1137,11 +1137,11 @@ void array___ArraySet___add(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArraySet____array(variable[3]) /*ArraySet::_array*/;
-  variable[3] = ((array___AbstractArray___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*e*/) /*AbstractArray::has*/;
+  variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*e*/) /*AbstractArray::has*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_array___ArraySet____array(variable[3]) /*ArraySet::_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*e*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*e*/) /*AbstractArray::add*/;
   }
   return_label60: while(false);
   tracehead = trace.prev;
@@ -1157,7 +1157,7 @@ void array___ArraySet___enlarge(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArraySet____array(variable[3]) /*ArraySet::_array*/;
-  ((array___Array___enlarge_t)CALL(variable[3],COLOR_array___AbstractArray___enlarge))(variable[3],  variable[1] /*cap*/) /*Array::enlarge*/;
+  CALL_array___AbstractArray___enlarge(variable[3])(variable[3],  variable[1] /*cap*/) /*Array::enlarge*/;
   return_label61: while(false);
   tracehead = trace.prev;
   return;
@@ -1174,11 +1174,11 @@ void array___ArraySet___remove_at(val_t  self, val_t  param0) {
   variable[3] = ATTR_array___ArraySet____array(variable[3]) /*ArraySet::_array*/;
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArraySet____array(variable[4]) /*ArraySet::_array*/;
-  variable[4] = ((abstract_collection___IndexedCollection___last_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___last))(variable[4]) /*IndexedCollection::last*/;
-  ((array___Array_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3],  variable[1] /*i*/, variable[4]) /*Array::[]=*/;
+  variable[4] = CALL_abstract_collection___IndexedCollection___last(variable[4])(variable[4]) /*IndexedCollection::last*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3],  variable[1] /*i*/, variable[4]) /*Array::[]=*/;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArraySet____array(variable[3]) /*ArraySet::_array*/;
-  ((array___AbstractArray___pop_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___pop))(variable[3]) /*AbstractArray::pop*/;
+  CALL_abstract_collection___IndexedCollection___pop(variable[3])(variable[3]) /*AbstractArray::pop*/;
   return_label62: while(false);
   tracehead = trace.prev;
   return;
@@ -1225,7 +1225,7 @@ val_t array___ArraySetIterator___item(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySetIterator____iter(variable[2]) /*ArraySetIterator::_iter*/;
-  variable[2] = ((array___ArrayIterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*ArrayIterator::item*/;
+  variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*ArrayIterator::item*/;
   variable[1] = variable[2];
   goto return_label65;
   return_label65: while(false);
@@ -1241,7 +1241,7 @@ void array___ArraySetIterator___next(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySetIterator____iter(variable[2]) /*ArraySetIterator::_iter*/;
-  ((array___ArrayIterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*ArrayIterator::next*/;
+  CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*ArrayIterator::next*/;
   return_label66: while(false);
   tracehead = trace.prev;
   return;
@@ -1255,7 +1255,7 @@ val_t array___ArraySetIterator___is_ok(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArraySetIterator____iter(variable[2]) /*ArraySetIterator::_iter*/;
-  variable[2] = ((array___ArrayIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*ArrayIterator::is_ok*/;
+  variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*ArrayIterator::is_ok*/;
   variable[1] = variable[2];
   goto return_label67;
   return_label67: while(false);
@@ -1287,7 +1287,7 @@ val_t array___ArrayMap___iterator(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArrayMap____items(variable[2]) /*ArrayMap::_items*/;
-  variable[2] = ((array___AbstractArray___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*AbstractArray::iterator*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*AbstractArray::iterator*/;
   variable[3] = NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init(variable[2]); /*new CoupleMapIterator[K, E]*/
   variable[2] = variable[3];
   variable[1] = variable[2];
@@ -1305,7 +1305,7 @@ val_t array___ArrayMap___is_empty(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArrayMap____items(variable[2]) /*ArrayMap::_items*/;
-  variable[2] = ((array___AbstractArray___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*AbstractArray::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*AbstractArray::is_empty*/;
   variable[1] = variable[2];
   goto return_label70;
   return_label70: while(false);
@@ -1321,7 +1321,7 @@ val_t array___ArrayMap___length(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArrayMap____items(variable[2]) /*ArrayMap::_items*/;
-  variable[2] = ((array___AbstractArray___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*AbstractArray::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArray::length*/;
   variable[1] = variable[2];
   goto return_label71;
   return_label71: while(false);
@@ -1338,20 +1338,20 @@ val_t array___ArrayMap___has(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArrayMap____items(variable[3]) /*ArrayMap::_items*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((abstract_collection___Couple___second_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Couple___second))( variable[5] /*i*/) /*Couple::second*/;
-    variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[6] = CALL_abstract_collection___Couple___second( variable[5] /*i*/)( variable[5] /*i*/) /*Couple::second*/;
+    variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[2] =  TAG_Bool(true);
       goto return_label72;
     }
     continue_73: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_73: while(0);
   variable[2] =  TAG_Bool(false);
@@ -1370,20 +1370,20 @@ val_t array___ArrayMap___has_only(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArrayMap____items(variable[3]) /*ArrayMap::_items*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((abstract_collection___Couple___second_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Couple___second))( variable[5] /*i*/) /*Couple::second*/;
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*item*/) /*Object::==*/)))))));
+    variable[6] = CALL_abstract_collection___Couple___second( variable[5] /*i*/)( variable[5] /*i*/) /*Couple::second*/;
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*item*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label74;
     }
     continue_75: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_75: while(0);
   variable[2] =  TAG_Bool(true);
@@ -1403,19 +1403,19 @@ val_t array___ArrayMap___count(val_t  self, val_t  param0) {
   variable[3] =  TAG_Int(0);
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArrayMap____items(variable[4]) /*ArrayMap::_items*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((abstract_collection___Couple___second_t)CALL( variable[6] /*i*/,COLOR_abstract_collection___Couple___second))( variable[6] /*i*/) /*Couple::second*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*item*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Couple___second( variable[6] /*i*/)( variable[6] /*i*/) /*Couple::second*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*item*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*nb*/;
     }
     continue_77: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_77: while(0);
   variable[2] =  variable[3] /*nb*/;
@@ -1433,8 +1433,8 @@ val_t array___ArrayMap___first(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArrayMap____items(variable[2]) /*ArrayMap::_items*/;
-  variable[2] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[2],COLOR_abstract_collection___Collection___first))(variable[2]) /*IndexedCollection::first*/;
-  variable[2] = ((abstract_collection___Couple___first_t)CALL(variable[2],COLOR_abstract_collection___Couple___first))(variable[2]) /*Couple::first*/;
+  variable[2] = CALL_abstract_collection___Collection___first(variable[2])(variable[2]) /*IndexedCollection::first*/;
+  variable[2] = CALL_abstract_collection___Couple___first(variable[2])(variable[2]) /*Couple::first*/;
   variable[1] = variable[2];
   goto return_label78;
   return_label78: while(false);
@@ -1450,7 +1450,7 @@ void array___ArrayMap___clear(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_array___ArrayMap____items(variable[2]) /*ArrayMap::_items*/;
-  ((array___AbstractArray___clear_t)CALL(variable[2],COLOR_abstract_collection___RemovableCollection___clear))(variable[2]) /*AbstractArray::clear*/;
+  CALL_abstract_collection___RemovableCollection___clear(variable[2])(variable[2]) /*AbstractArray::clear*/;
   return_label79: while(false);
   tracehead = trace.prev;
   return;
@@ -1465,7 +1465,7 @@ void array___ArrayMap___remove(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArrayMap____items(variable[4]) /*ArrayMap::_items*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
   variable[3] = variable[4];
   while (true) { /*while*/
@@ -1491,11 +1491,11 @@ void array___ArrayMap___remove(val_t  self, val_t  param0) {
     goto return_label82;
     return_label82: while(false);
     variable[4] = variable[7];
-    variable[4] = ((abstract_collection___Couple___second_t)CALL(variable[4],COLOR_abstract_collection___Couple___second))(variable[4]) /*Couple::second*/;
-    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*item*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[4] = CALL_abstract_collection___Couple___second(variable[4])(variable[4]) /*Couple::second*/;
+    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*item*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((array___ArrayMap___remove_at_index_t)CALL(variable[4],COLOR_array___ArrayMap___remove_at_index))(variable[4],  variable[3] /*i*/) /*ArrayMap::remove_at_index*/;
+      CALL_array___ArrayMap___remove_at_index(variable[4])(variable[4],  variable[3] /*i*/) /*ArrayMap::remove_at_index*/;
       goto return_label80;
     }
     variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1))) /*i*/;
@@ -1516,7 +1516,7 @@ void array___ArrayMap___remove_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArrayMap____items(variable[4]) /*ArrayMap::_items*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
   variable[3] = variable[4];
   while (true) { /*while*/
@@ -1542,11 +1542,11 @@ void array___ArrayMap___remove_all(val_t  self, val_t  param0) {
     goto return_label85;
     return_label85: while(false);
     variable[4] = variable[7];
-    variable[4] = ((abstract_collection___Couple___second_t)CALL(variable[4],COLOR_abstract_collection___Couple___second))(variable[4]) /*Couple::second*/;
-    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*item*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*item*/) /*Object::==*/)))));
+    variable[4] = CALL_abstract_collection___Couple___second(variable[4])(variable[4]) /*Couple::second*/;
+    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*item*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*item*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((array___ArrayMap___remove_at_index_t)CALL(variable[4],COLOR_array___ArrayMap___remove_at_index))(variable[4],  variable[3] /*i*/) /*ArrayMap::remove_at_index*/;
+      CALL_array___ArrayMap___remove_at_index(variable[4])(variable[4],  variable[3] /*i*/) /*ArrayMap::remove_at_index*/;
     }
     variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_84: while(0);
@@ -1565,7 +1565,7 @@ val_t array___ArrayMap_____bra(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((array___ArrayMap___index_t)CALL(variable[4],COLOR_array___ArrayMap___index))(variable[4],  variable[1] /*key*/) /*ArrayMap::index*/;
+  variable[4] = CALL_array___ArrayMap___index(variable[4])(variable[4],  variable[1] /*key*/) /*ArrayMap::index*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
@@ -1589,7 +1589,7 @@ val_t array___ArrayMap_____bra(val_t  self, val_t  param0) {
     goto return_label87;
     return_label87: while(false);
     variable[4] = variable[7];
-    variable[4] = ((abstract_collection___Couple___second_t)CALL(variable[4],COLOR_abstract_collection___Couple___second))(variable[4]) /*Couple::second*/;
+    variable[4] = CALL_abstract_collection___Couple___second(variable[4])(variable[4]) /*Couple::second*/;
     variable[2] = variable[4];
     goto return_label86;
   } else { /*if*/
@@ -1610,7 +1610,7 @@ void array___ArrayMap_____braeq(val_t  self, val_t  param0, val_t  param1) {
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ((array___ArrayMap___index_t)CALL(variable[5],COLOR_array___ArrayMap___index))(variable[5],  variable[1] /*key*/) /*ArrayMap::index*/;
+  variable[5] = CALL_array___ArrayMap___index(variable[5])(variable[5],  variable[1] /*key*/) /*ArrayMap::index*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)>=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[5])) { /*if*/
@@ -1634,12 +1634,12 @@ void array___ArrayMap_____braeq(val_t  self, val_t  param0, val_t  param1) {
     goto return_label89;
     return_label89: while(false);
     variable[5] = variable[8];
-    ((abstract_collection___Couple___second__eq_t)CALL(variable[5],COLOR_abstract_collection___Couple___second__eq))(variable[5],  variable[2] /*item*/) /*Couple::second=*/;
+    CALL_abstract_collection___Couple___second__eq(variable[5])(variable[5],  variable[2] /*item*/) /*Couple::second=*/;
   } else { /*if*/
     variable[5] = variable[0];
     variable[5] = ATTR_array___ArrayMap____items(variable[5]) /*ArrayMap::_items*/;
     variable[6] = NEW_Couple_abstract_collection___Couple___init( variable[1] /*key*/,  variable[2] /*item*/); /*new Couple[K, E]*/
-    ((array___AbstractArray___push_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___push))(variable[5], variable[6]) /*AbstractArray::push*/;
+    CALL_abstract_collection___IndexedCollection___push(variable[5])(variable[5], variable[6]) /*AbstractArray::push*/;
   }
   return_label88: while(false);
   tracehead = trace.prev;
@@ -1654,7 +1654,7 @@ val_t array___ArrayMap___has_key(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((array___ArrayMap___index_t)CALL(variable[3],COLOR_array___ArrayMap___index))(variable[3],  variable[1] /*key*/) /*ArrayMap::index*/;
+  variable[3] = CALL_array___ArrayMap___index(variable[3])(variable[3],  variable[1] /*key*/) /*ArrayMap::index*/;
   variable[3] = TAG_Bool(UNTAG_Int(variable[3])>=UNTAG_Int( TAG_Int(0)));
   variable[2] = variable[3];
   goto return_label90;
@@ -1671,12 +1671,12 @@ void array___ArrayMap___remove_at(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((array___ArrayMap___index_t)CALL(variable[4],COLOR_array___ArrayMap___index))(variable[4],  variable[1] /*key*/) /*ArrayMap::index*/;
+  variable[4] = CALL_array___ArrayMap___index(variable[4])(variable[4],  variable[1] /*key*/) /*ArrayMap::index*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((array___ArrayMap___remove_at_index_t)CALL(variable[4],COLOR_array___ArrayMap___remove_at_index))(variable[4],  variable[3] /*i*/) /*ArrayMap::remove_at_index*/;
+    CALL_array___ArrayMap___remove_at_index(variable[4])(variable[4],  variable[3] /*i*/) /*ArrayMap::remove_at_index*/;
   }
   return_label91: while(false);
   tracehead = trace.prev;
@@ -1691,7 +1691,7 @@ val_t array___ArrayMap___couple_at(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((array___ArrayMap___index_t)CALL(variable[4],COLOR_array___ArrayMap___index))(variable[4],  variable[1] /*key*/) /*ArrayMap::index*/;
+  variable[4] = CALL_array___ArrayMap___index(variable[4])(variable[4],  variable[1] /*key*/) /*ArrayMap::index*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
@@ -1735,7 +1735,7 @@ void array___ArrayMap___enlarge(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArrayMap____items(variable[3]) /*ArrayMap::_items*/;
-  ((array___Array___enlarge_t)CALL(variable[3],COLOR_array___AbstractArray___enlarge))(variable[3],  variable[1] /*cap*/) /*Array::enlarge*/;
+  CALL_array___AbstractArray___enlarge(variable[3])(variable[3],  variable[1] /*cap*/) /*Array::enlarge*/;
   return_label94: while(false);
   tracehead = trace.prev;
   return;
@@ -1752,11 +1752,11 @@ void array___ArrayMap___remove_at_index(val_t  self, val_t  param0) {
   variable[3] = ATTR_array___ArrayMap____items(variable[3]) /*ArrayMap::_items*/;
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArrayMap____items(variable[4]) /*ArrayMap::_items*/;
-  variable[4] = ((abstract_collection___IndexedCollection___last_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___last))(variable[4]) /*IndexedCollection::last*/;
-  ((array___Array_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3],  variable[1] /*i*/, variable[4]) /*Array::[]=*/;
+  variable[4] = CALL_abstract_collection___IndexedCollection___last(variable[4])(variable[4]) /*IndexedCollection::last*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3],  variable[1] /*i*/, variable[4]) /*Array::[]=*/;
   variable[3] = variable[0];
   variable[3] = ATTR_array___ArrayMap____items(variable[3]) /*ArrayMap::_items*/;
-  ((array___AbstractArray___pop_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___pop))(variable[3]) /*AbstractArray::pop*/;
+  CALL_abstract_collection___IndexedCollection___pop(variable[3])(variable[3]) /*AbstractArray::pop*/;
   return_label95: while(false);
   tracehead = trace.prev;
   return;
@@ -1774,7 +1774,7 @@ val_t array___ArrayMap___index(val_t  self, val_t  param0) {
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_array___ArrayMap____items(variable[4]) /*ArrayMap::_items*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*l*/)<UNTAG_Int(variable[4]));
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
@@ -1798,8 +1798,8 @@ val_t array___ArrayMap___index(val_t  self, val_t  param0) {
     goto return_label97;
     return_label97: while(false);
     variable[5] = variable[8];
-    variable[5] = ((abstract_collection___Couple___first_t)CALL(variable[5],COLOR_abstract_collection___Couple___first))(variable[5]) /*Couple::first*/;
-    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*key*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  variable[1] /*key*/) /*Object::==*/)))));
+    variable[5] = CALL_abstract_collection___Couple___first(variable[5])(variable[5]) /*Couple::first*/;
+    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*key*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*key*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  variable[1] /*key*/) /*Object::==*/)))));
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
@@ -1810,7 +1810,7 @@ val_t array___ArrayMap___index(val_t  self, val_t  param0) {
   while (true) { /*while*/
     variable[5] = variable[0];
     variable[5] = ATTR_array___ArrayMap____items(variable[5]) /*ArrayMap::_items*/;
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int(variable[5]));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = variable[0];
@@ -1833,8 +1833,8 @@ val_t array___ArrayMap___index(val_t  self, val_t  param0) {
     goto return_label99;
     return_label99: while(false);
     variable[5] = variable[8];
-    variable[5] = ((abstract_collection___Couple___first_t)CALL(variable[5],COLOR_abstract_collection___Couple___first))(variable[5]) /*Couple::first*/;
-    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*key*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  variable[1] /*key*/) /*Object::==*/)))));
+    variable[5] = CALL_abstract_collection___Couple___first(variable[5])(variable[5]) /*Couple::first*/;
+    variable[5] = TAG_Bool((variable[5] ==  variable[1] /*key*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*key*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  variable[1] /*key*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = variable[0];
       ATTR_array___ArrayMap____last_index(variable[5]) /*ArrayMap::_last_index*/ =  variable[4] /*i*/;
@@ -1879,13 +1879,13 @@ val_t array___Iterator___to_a(val_t  self) {
   variable[2] = variable[3];
   while (true) { /*while*/
     variable[3] = variable[0];
-    variable[3] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[3] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[3])) break; /* while*/
     variable[3] = variable[0];
-    variable[3] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
-    ((array___AbstractArray___add_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
+    variable[3] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*res*/)( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
     variable[3] = variable[0];
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
     continue_102: while(0);
   }
   break_102: while(0);
@@ -1903,8 +1903,8 @@ val_t array___Collection___to_a(val_t  self) {
   trace.file = LOCATE_array;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___Collection___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*Collection::iterator*/;
-  variable[2] = ((array___Iterator___to_a_t)CALL(variable[2],COLOR_array___Iterator___to_a))(variable[2]) /*Iterator::to_a*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*Collection::iterator*/;
+  variable[2] = CALL_array___Iterator___to_a(variable[2])(variable[2]) /*Iterator::to_a*/;
   variable[1] = variable[2];
   goto return_label103;
   return_label103: while(false);
index f759108..ebf1f5d 100644 (file)
@@ -24,68 +24,68 @@ val_t BOX_NativeArray(val_t * val);
 #define UNBOX_NativeArray(x) (((struct TBOX_NativeArray *)(VAL2OBJ(x)))->val)
 extern const char *LOCATE_array;
 extern const int SFT_array[];
-#define ID_AbstractArray SFT_array[0]
-#define COLOR_AbstractArray SFT_array[1]
-#define COLOR_array___AbstractArray____length SFT_array[2]
-#define INIT_TABLE_POS_AbstractArray SFT_array[3]
-#define COLOR_array___AbstractArray___enlarge SFT_array[4]
-#define COLOR_array___AbstractArray___insert SFT_array[5]
-#define COLOR_array___AbstractArray___last_index_of SFT_array[6]
-#define COLOR_array___AbstractArray___index_of_from SFT_array[7]
-#define COLOR_array___AbstractArray___last_index_of_from SFT_array[8]
-#define COLOR_array___AbstractArray___reversed SFT_array[9]
-#define COLOR_array___AbstractArray___copy_to SFT_array[10]
-#define COLOR_array___AbstractArray___init SFT_array[11]
-#define ID_Array SFT_array[12]
-#define COLOR_Array SFT_array[13]
-#define COLOR_array___Array____items SFT_array[14]
-#define COLOR_array___Array____capacity SFT_array[15]
-#define INIT_TABLE_POS_Array SFT_array[16]
-#define COLOR_array___Array___init SFT_array[17]
-#define COLOR_array___Array___with_items SFT_array[18]
-#define COLOR_array___Array___with_capacity SFT_array[19]
-#define COLOR_array___Array___filled_with SFT_array[20]
-#define COLOR_array___Array___with_native SFT_array[21]
-#define ID_ArrayIterator SFT_array[22]
-#define COLOR_ArrayIterator SFT_array[23]
-#define COLOR_array___ArrayIterator____index SFT_array[24]
-#define COLOR_array___ArrayIterator____array SFT_array[25]
-#define INIT_TABLE_POS_ArrayIterator SFT_array[26]
-#define COLOR_array___ArrayIterator___init SFT_array[27]
-#define ID_ArraySet SFT_array[28]
-#define COLOR_ArraySet SFT_array[29]
-#define COLOR_array___ArraySet____array SFT_array[30]
-#define INIT_TABLE_POS_ArraySet SFT_array[31]
-#define COLOR_array___ArraySet___enlarge SFT_array[32]
-#define COLOR_array___ArraySet___remove_at SFT_array[33]
-#define COLOR_array___ArraySet___init SFT_array[34]
-#define COLOR_array___ArraySet___with_capacity SFT_array[35]
-#define ID_ArraySetIterator SFT_array[36]
-#define COLOR_ArraySetIterator SFT_array[37]
-#define COLOR_array___ArraySetIterator____iter SFT_array[38]
-#define INIT_TABLE_POS_ArraySetIterator SFT_array[39]
-#define COLOR_array___ArraySetIterator___init SFT_array[40]
-#define ID_ArrayMap SFT_array[41]
-#define COLOR_ArrayMap SFT_array[42]
-#define COLOR_array___ArrayMap____items SFT_array[43]
-#define COLOR_array___ArrayMap____last_index SFT_array[44]
-#define INIT_TABLE_POS_ArrayMap SFT_array[45]
-#define COLOR_array___ArrayMap___enlarge SFT_array[46]
-#define COLOR_array___ArrayMap___remove_at_index SFT_array[47]
-#define COLOR_array___ArrayMap___index SFT_array[48]
-#define COLOR_array___ArrayMap___init SFT_array[49]
-#define COLOR_array___Iterator___to_a SFT_array[50]
-#define COLOR_array___Collection___to_a SFT_array[51]
-#define ID_ArrayCapable SFT_array[52]
-#define COLOR_ArrayCapable SFT_array[53]
-#define INIT_TABLE_POS_ArrayCapable SFT_array[54]
-#define COLOR_array___ArrayCapable___calloc_array SFT_array[55]
-#define ID_NativeArray SFT_array[56]
-#define COLOR_NativeArray SFT_array[57]
-#define INIT_TABLE_POS_NativeArray SFT_array[58]
-#define COLOR_array___NativeArray_____bra SFT_array[59]
-#define COLOR_array___NativeArray_____braeq SFT_array[60]
-#define COLOR_array___NativeArray___copy_to SFT_array[61]
+#define ID_AbstractArray (SFT_array[0])
+#define COLOR_AbstractArray (SFT_array[1])
+#define ATTR_array___AbstractArray____length(recv) ATTR(recv, (SFT_array[2] + 0))
+#define INIT_TABLE_POS_AbstractArray (SFT_array[3] + 0)
+#define CALL_array___AbstractArray___enlarge(recv) ((array___AbstractArray___enlarge_t)CALL((recv), (SFT_array[3] + 1)))
+#define CALL_array___AbstractArray___insert(recv) ((array___AbstractArray___insert_t)CALL((recv), (SFT_array[3] + 2)))
+#define CALL_array___AbstractArray___last_index_of(recv) ((array___AbstractArray___last_index_of_t)CALL((recv), (SFT_array[3] + 3)))
+#define CALL_array___AbstractArray___index_of_from(recv) ((array___AbstractArray___index_of_from_t)CALL((recv), (SFT_array[3] + 4)))
+#define CALL_array___AbstractArray___last_index_of_from(recv) ((array___AbstractArray___last_index_of_from_t)CALL((recv), (SFT_array[3] + 5)))
+#define CALL_array___AbstractArray___reversed(recv) ((array___AbstractArray___reversed_t)CALL((recv), (SFT_array[3] + 6)))
+#define CALL_array___AbstractArray___copy_to(recv) ((array___AbstractArray___copy_to_t)CALL((recv), (SFT_array[3] + 7)))
+#define CALL_array___AbstractArray___init(recv) ((array___AbstractArray___init_t)CALL((recv), (SFT_array[3] + 8)))
+#define ID_Array (SFT_array[4])
+#define COLOR_Array (SFT_array[5])
+#define ATTR_array___Array____items(recv) ATTR(recv, (SFT_array[6] + 0))
+#define ATTR_array___Array____capacity(recv) ATTR(recv, (SFT_array[6] + 1))
+#define INIT_TABLE_POS_Array (SFT_array[7] + 0)
+#define CALL_array___Array___init(recv) ((array___Array___init_t)CALL((recv), (SFT_array[7] + 1)))
+#define CALL_array___Array___with_items(recv) ((array___Array___with_items_t)CALL((recv), (SFT_array[7] + 2)))
+#define CALL_array___Array___with_capacity(recv) ((array___Array___with_capacity_t)CALL((recv), (SFT_array[7] + 3)))
+#define CALL_array___Array___filled_with(recv) ((array___Array___filled_with_t)CALL((recv), (SFT_array[7] + 4)))
+#define CALL_array___Array___with_native(recv) ((array___Array___with_native_t)CALL((recv), (SFT_array[7] + 5)))
+#define ID_ArrayIterator (SFT_array[8])
+#define COLOR_ArrayIterator (SFT_array[9])
+#define ATTR_array___ArrayIterator____index(recv) ATTR(recv, (SFT_array[10] + 0))
+#define ATTR_array___ArrayIterator____array(recv) ATTR(recv, (SFT_array[10] + 1))
+#define INIT_TABLE_POS_ArrayIterator (SFT_array[11] + 0)
+#define CALL_array___ArrayIterator___init(recv) ((array___ArrayIterator___init_t)CALL((recv), (SFT_array[11] + 1)))
+#define ID_ArraySet (SFT_array[12])
+#define COLOR_ArraySet (SFT_array[13])
+#define ATTR_array___ArraySet____array(recv) ATTR(recv, (SFT_array[14] + 0))
+#define INIT_TABLE_POS_ArraySet (SFT_array[15] + 0)
+#define CALL_array___ArraySet___enlarge(recv) ((array___ArraySet___enlarge_t)CALL((recv), (SFT_array[15] + 1)))
+#define CALL_array___ArraySet___remove_at(recv) ((array___ArraySet___remove_at_t)CALL((recv), (SFT_array[15] + 2)))
+#define CALL_array___ArraySet___init(recv) ((array___ArraySet___init_t)CALL((recv), (SFT_array[15] + 3)))
+#define CALL_array___ArraySet___with_capacity(recv) ((array___ArraySet___with_capacity_t)CALL((recv), (SFT_array[15] + 4)))
+#define ID_ArraySetIterator (SFT_array[16])
+#define COLOR_ArraySetIterator (SFT_array[17])
+#define ATTR_array___ArraySetIterator____iter(recv) ATTR(recv, (SFT_array[18] + 0))
+#define INIT_TABLE_POS_ArraySetIterator (SFT_array[19] + 0)
+#define CALL_array___ArraySetIterator___init(recv) ((array___ArraySetIterator___init_t)CALL((recv), (SFT_array[19] + 1)))
+#define ID_ArrayMap (SFT_array[20])
+#define COLOR_ArrayMap (SFT_array[21])
+#define ATTR_array___ArrayMap____items(recv) ATTR(recv, (SFT_array[22] + 0))
+#define ATTR_array___ArrayMap____last_index(recv) ATTR(recv, (SFT_array[22] + 1))
+#define INIT_TABLE_POS_ArrayMap (SFT_array[23] + 0)
+#define CALL_array___ArrayMap___enlarge(recv) ((array___ArrayMap___enlarge_t)CALL((recv), (SFT_array[23] + 1)))
+#define CALL_array___ArrayMap___remove_at_index(recv) ((array___ArrayMap___remove_at_index_t)CALL((recv), (SFT_array[23] + 2)))
+#define CALL_array___ArrayMap___index(recv) ((array___ArrayMap___index_t)CALL((recv), (SFT_array[23] + 3)))
+#define CALL_array___ArrayMap___init(recv) ((array___ArrayMap___init_t)CALL((recv), (SFT_array[23] + 4)))
+#define CALL_array___Iterator___to_a(recv) ((array___Iterator___to_a_t)CALL((recv), (SFT_array[24] + 0)))
+#define CALL_array___Collection___to_a(recv) ((array___Collection___to_a_t)CALL((recv), (SFT_array[25] + 0)))
+#define ID_ArrayCapable (SFT_array[26])
+#define COLOR_ArrayCapable (SFT_array[27])
+#define INIT_TABLE_POS_ArrayCapable (SFT_array[28] + 0)
+#define CALL_array___ArrayCapable___calloc_array(recv) ((array___ArrayCapable___calloc_array_t)CALL((recv), (SFT_array[28] + 1)))
+#define ID_NativeArray (SFT_array[29])
+#define COLOR_NativeArray (SFT_array[30])
+#define INIT_TABLE_POS_NativeArray (SFT_array[31] + 0)
+#define CALL_array___NativeArray_____bra(recv) ((array___NativeArray_____bra_t)CALL((recv), (SFT_array[31] + 1)))
+#define CALL_array___NativeArray_____braeq(recv) ((array___NativeArray_____braeq_t)CALL((recv), (SFT_array[31] + 2)))
+#define CALL_array___NativeArray___copy_to(recv) ((array___NativeArray___copy_to_t)CALL((recv), (SFT_array[31] + 3)))
 typedef val_t (* array___AbstractArray_____eqeq_t)(val_t  self, val_t  param0);
 val_t array___AbstractArray_____eqeq(val_t  self, val_t  param0);
 #define LOCATE_array___AbstractArray_____eqeq "array::AbstractArray::(kernel::Object::==)"
@@ -146,7 +146,6 @@ val_t array___AbstractArray___index_of(val_t  self, val_t  param0);
 typedef void (* array___AbstractArray___enlarge_t)(val_t  self, val_t  param0);
 void array___AbstractArray___enlarge(val_t  self, val_t  param0);
 #define LOCATE_array___AbstractArray___enlarge "array::AbstractArray::enlarge"
-#define ATTR_array___AbstractArray____length(recv) ATTR(recv, COLOR_array___AbstractArray____length)
 typedef void (* array___AbstractArray___insert_t)(val_t  self, val_t  param0, val_t  param1);
 void array___AbstractArray___insert(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_array___AbstractArray___insert "array::AbstractArray::insert"
@@ -198,8 +197,6 @@ typedef void (* array___Array___with_native_t)(val_t  self, val_t  param0, val_t
 void array___Array___with_native(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_array___Array___with_native "array::Array::with_native"
 val_t NEW_Array_array___Array___with_native(val_t p0, val_t p1);
-#define ATTR_array___Array____items(recv) ATTR(recv, COLOR_array___Array____items)
-#define ATTR_array___Array____capacity(recv) ATTR(recv, COLOR_array___Array____capacity)
 typedef val_t (* array___ArrayIterator___item_t)(val_t  self);
 val_t array___ArrayIterator___item(val_t  self);
 #define LOCATE_array___ArrayIterator___item "array::ArrayIterator::(abstract_collection::Iterator::item)"
@@ -219,8 +216,6 @@ typedef void (* array___ArrayIterator___init_t)(val_t  self, val_t  param0, int*
 void array___ArrayIterator___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_array___ArrayIterator___init "array::ArrayIterator::init"
 val_t NEW_ArrayIterator_array___ArrayIterator___init(val_t p0);
-#define ATTR_array___ArrayIterator____index(recv) ATTR(recv, COLOR_array___ArrayIterator____index)
-#define ATTR_array___ArrayIterator____array(recv) ATTR(recv, COLOR_array___ArrayIterator____array)
 typedef val_t (* array___ArraySet___iterator_t)(val_t  self);
 val_t array___ArraySet___iterator(val_t  self);
 #define LOCATE_array___ArraySet___iterator "array::ArraySet::(abstract_collection::Collection::iterator)"
@@ -248,7 +243,6 @@ void array___ArraySet___remove_all(val_t  self, val_t  param0);
 typedef void (* array___ArraySet___add_t)(val_t  self, val_t  param0);
 void array___ArraySet___add(val_t  self, val_t  param0);
 #define LOCATE_array___ArraySet___add "array::ArraySet::(abstract_collection::SimpleCollection::add)"
-#define ATTR_array___ArraySet____array(recv) ATTR(recv, COLOR_array___ArraySet____array)
 typedef void (* array___ArraySet___enlarge_t)(val_t  self, val_t  param0);
 void array___ArraySet___enlarge(val_t  self, val_t  param0);
 #define LOCATE_array___ArraySet___enlarge "array::ArraySet::enlarge"
@@ -276,7 +270,6 @@ typedef void (* array___ArraySetIterator___init_t)(val_t  self, val_t  param0, i
 void array___ArraySetIterator___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_array___ArraySetIterator___init "array::ArraySetIterator::init"
 val_t NEW_ArraySetIterator_array___ArraySetIterator___init(val_t p0);
-#define ATTR_array___ArraySetIterator____iter(recv) ATTR(recv, COLOR_array___ArraySetIterator____iter)
 typedef val_t (* array___ArrayMap___iterator_t)(val_t  self);
 val_t array___ArrayMap___iterator(val_t  self);
 #define LOCATE_array___ArrayMap___iterator "array::ArrayMap::(abstract_collection::Collection::iterator)"
@@ -325,11 +318,9 @@ val_t array___ArrayMap___couple_at(val_t  self, val_t  param0);
 typedef void (* array___ArrayMap___enlarge_t)(val_t  self, val_t  param0);
 void array___ArrayMap___enlarge(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___enlarge "array::ArrayMap::enlarge"
-#define ATTR_array___ArrayMap____items(recv) ATTR(recv, COLOR_array___ArrayMap____items)
 typedef void (* array___ArrayMap___remove_at_index_t)(val_t  self, val_t  param0);
 void array___ArrayMap___remove_at_index(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___remove_at_index "array::ArrayMap::remove_at_index"
-#define ATTR_array___ArrayMap____last_index(recv) ATTR(recv, COLOR_array___ArrayMap____last_index)
 typedef val_t (* array___ArrayMap___index_t)(val_t  self, val_t  param0);
 val_t array___ArrayMap___index(val_t  self, val_t  param0);
 #define LOCATE_array___ArrayMap___index "array::ArrayMap::index"
index bf0ccab..34edd9c 100644 (file)
@@ -9,269 +9,281 @@ void compiling___MMSrcModule___compile_prog_to_c(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___mhe))(variable[3]) /*MMModule::mhe*/;
-  variable[3] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[3]) /*PartialOrderElement::greaters_and_self*/;
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[3])(variable[3]) /*MMModule::mhe*/;
+  variable[3] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[3])(variable[3]) /*PartialOrderElement::greaters_and_self*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*m*/==NIT_NULL) || VAL_ISA( variable[5] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling___MMSrcModule___compile_prog_to_c, LOCATE_compiling, 32); nit_exit(1);}
-    ((compiling_global___MMSrcModule___local_analysis_t)CALL( variable[5] /*m*/,COLOR_compiling_global___MMSrcModule___local_analysis))( variable[5] /*m*/,  variable[1] /*tc*/) /*MMSrcModule::local_analysis*/;
+    CALL_compiling_global___MMSrcModule___local_analysis( variable[5] /*m*/)( variable[5] /*m*/,  variable[1] /*tc*/) /*MMSrcModule::local_analysis*/;
     continue_1: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_1: while(0);
   variable[4] = variable[0];
-  variable[4] = ((compiling_global___MMSrcModule___global_analysis_t)CALL(variable[4],COLOR_compiling_global___MMSrcModule___global_analysis))(variable[4],  variable[1] /*tc*/) /*MMSrcModule::global_analysis*/;
+  variable[4] = CALL_compiling_global___MMSrcModule___global_analysis(variable[4])(variable[4],  variable[1] /*tc*/) /*MMSrcModule::global_analysis*/;
   variable[3] = variable[4];
-  variable[4] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
-  ((file___String___mkdir_t)CALL(variable[4],COLOR_file___String___mkdir))(variable[4]) /*String::mkdir*/;
+  variable[4] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
+  CALL_file___String___mkdir(variable[4])(variable[4]) /*String::mkdir*/;
   variable[5] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[4] = variable[5];
   variable[6] = NEW_ArraySet_array___ArraySet___init(); /*new ArraySet[String]*/
   variable[5] = variable[6];
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("$CLIBDIR/nit_main.c"), TAG_Int(19)); /*new String*/
-  ((array___AbstractArray___add_t)CALL( variable[4] /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___mhe))(variable[6]) /*MMModule::mhe*/;
-  variable[6] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[6]) /*PartialOrderElement::greaters_and_self*/;
-  variable[6] = ((abstract_collection___Collection___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Collection::iterator*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___mhe(variable[6])(variable[6]) /*MMModule::mhe*/;
+  variable[6] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[6])(variable[6]) /*PartialOrderElement::greaters_and_self*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*m*/==NIT_NULL) || VAL_ISA( variable[8] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling___MMSrcModule___compile_prog_to_c, LOCATE_compiling, 44); nit_exit(1);}
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-    variable[12] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+    variable[12] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-    variable[16] = ((abstractmetamodel___MMModule___name_t)CALL( variable[8] /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable[8] /*m*/) /*MMModule::name*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+    variable[16] = CALL_abstractmetamodel___MMModule___name( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::name*/;
     variable[17] = variable[16];
-    variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+    variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString("._sep.c"), TAG_Int(7)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
-    ((array___AbstractArray___add_t)CALL( variable[4] /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*files*/, variable[9]) /*AbstractArray::add*/;
-    ((compiling___MMSrcModule___compile_separate_module_t)CALL( variable[8] /*m*/,COLOR_compiling___MMSrcModule___compile_separate_module))( variable[8] /*m*/,  variable[1] /*tc*/,  variable[3] /*ga*/) /*MMSrcModule::compile_separate_module*/;
-    variable[10] = ((mmloader___MMModule___filename_t)CALL( variable[8] /*m*/,COLOR_mmloader___MMModule___filename))( variable[8] /*m*/) /*MMModule::filename*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[9]) /*AbstractArray::add*/;
+    CALL_compiling___MMSrcModule___compile_separate_module( variable[8] /*m*/)( variable[8] /*m*/,  variable[1] /*tc*/,  variable[3] /*ga*/) /*MMSrcModule::compile_separate_module*/;
+    variable[10] = CALL_mmloader___MMModule___filename( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::filename*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
-    variable[10] = ((file___String___strip_extension_t)CALL(variable[10],COLOR_file___String___strip_extension))(variable[10], variable[11]) /*String::strip_extension*/;
+    variable[10] = CALL_file___String___strip_extension(variable[10])(variable[10], variable[11]) /*String::strip_extension*/;
     variable[9] = variable[10];
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)); /*new String*/
-    variable[10] = ((string___String_____plus_t)CALL( variable[9] /*native_name*/,COLOR_string___String_____plus))( variable[9] /*native_name*/, variable[10]) /*String::+*/;
-    variable[10] = ((file___String___file_exists_t)CALL(variable[10],COLOR_file___String___file_exists))(variable[10]) /*String::file_exists*/;
+    variable[10] = CALL_string___String_____plus( variable[9] /*native_name*/)( variable[9] /*native_name*/, variable[10]) /*String::+*/;
+    variable[10] = CALL_file___String___file_exists(variable[10])(variable[10]) /*String::file_exists*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("-I "), TAG_Int(3)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
-      variable[13] = ((file___String___dirname_t)CALL( variable[9] /*native_name*/,COLOR_file___String___dirname))( variable[9] /*native_name*/) /*String::dirname*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
+      variable[13] = CALL_file___String___dirname( variable[9] /*native_name*/)( variable[9] /*native_name*/) /*String::dirname*/;
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
-      ((array___ArraySet___add_t)CALL( variable[5] /*includes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*includes*/, variable[10]) /*ArraySet::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[5] /*includes*/)( variable[5] /*includes*/, variable[10]) /*ArraySet::add*/;
     }
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_nit.c"), TAG_Int(6)); /*new String*/
-    ((string___String___append_t)CALL( variable[9] /*native_name*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*native_name*/, variable[10]) /*String::append*/;
-    variable[10] = ((file___String___file_exists_t)CALL( variable[9] /*native_name*/,COLOR_file___String___file_exists))( variable[9] /*native_name*/) /*String::file_exists*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[9] /*native_name*/)( variable[9] /*native_name*/, variable[10]) /*String::append*/;
+    variable[10] = CALL_file___String___file_exists( variable[9] /*native_name*/)( variable[9] /*native_name*/) /*String::file_exists*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable[4] /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*files*/,  variable[9] /*native_name*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/,  variable[9] /*native_name*/) /*AbstractArray::add*/;
     }
     continue_2: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
   break_2: while(0);
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-  variable[9] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+  variable[9] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = variable[0];
-  variable[13] = ((abstractmetamodel___MMModule___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMModule___name))(variable[13]) /*MMModule::name*/;
+  variable[13] = CALL_abstractmetamodel___MMModule___name(variable[13])(variable[13]) /*MMModule::name*/;
   variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("._tables.c"), TAG_Int(10)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
-  ((array___AbstractArray___add_t)CALL( variable[4] /*files*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[4] /*files*/)( variable[4] /*files*/, variable[6]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  ((compiling___MMSrcModule___compile_main_t)CALL(variable[6],COLOR_compiling___MMSrcModule___compile_main))(variable[6],  variable[1] /*tc*/,  variable[3] /*ga*/) /*MMSrcModule::compile_main*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling___MMSrcModule___compile_main(variable[6])(variable[6],  variable[1] /*tc*/,  variable[3] /*ga*/) /*MMSrcModule::compile_main*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
-  variable[10] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+  variable[10] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
   variable[14] = variable[0];
-  variable[14] = ((abstractmetamodel___MMModule___name_t)CALL(variable[14],COLOR_abstractmetamodel___MMModule___name))(variable[14]) /*MMModule::name*/;
+  variable[14] = CALL_abstractmetamodel___MMModule___name(variable[14])(variable[14]) /*MMModule::name*/;
   variable[15] = variable[14];
-  variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
+  variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString("._build.sh"), TAG_Int(10)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
   variable[6] = variable[7];
   variable[8] = NEW_OFStream_file___OFStream___open( variable[6] /*fn*/); /*new OFStream*/
   variable[7] = variable[8];
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#!/bin/sh\n"), TAG_Int(10)); /*new String*/
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("# This shell script is generated by NIT to compile the program "), TAG_Int(63)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] = variable[0];
-  variable[11] = ((abstractmetamodel___MMModule___name_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___name))(variable[11]) /*MMModule::name*/;
+  variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(".\n"), TAG_Int(2)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("CLIBDIR=\""), TAG_Int(9)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-  variable[11] = ((compiling_base___ToolContext___clibdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___clibdir))( variable[1] /*tc*/) /*ToolContext::clibdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_base___ToolContext___clibdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::clibdir*/;
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("\"\n"), TAG_Int(2)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-  variable[11] = ((compiling_base___ToolContext___bindir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___bindir))( variable[1] /*tc*/) /*ToolContext::bindir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_base___ToolContext___bindir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::bindir*/;
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("/gccx -d "), TAG_Int(9)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  variable[15] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[15] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" -I $CLIBDIR "), TAG_Int(13)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
   variable[19] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
-  variable[19] = ((string___Collection___join_t)CALL( variable[5] /*includes*/,COLOR_string___Collection___join))( variable[5] /*includes*/, variable[19]) /*Collection::join*/;
+  variable[19] = CALL_string___Collection___join( variable[5] /*includes*/)( variable[5] /*includes*/, variable[19]) /*Collection::join*/;
   variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[22] = variable[21];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  variable[8] = ((compiling_base___ToolContext___output_file_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___output_file))( variable[1] /*tc*/) /*ToolContext::output_file*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  variable[8] = CALL_compiling_base___ToolContext___output_file( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::output_file*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-    variable[11] = ((compiling_base___ToolContext___output_file_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___output_file))( variable[1] /*tc*/) /*ToolContext::output_file*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+    variable[11] = CALL_compiling_base___ToolContext___output_file( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::output_file*/;
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-    ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
   } else { /*if*/
-    variable[8] = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL(variable[8],COLOR_abstract_collection___Collection___is_empty))(variable[8]) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_compiling_base___ToolContext___ext_prefix( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty(variable[8])(variable[8]) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] = variable[0];
-      variable[11] = ((abstractmetamodel___MMModule___name_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___name))(variable[11]) /*MMModule::name*/;
+      variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
       variable[12] = variable[11];
-      variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+      variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-      ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
     } else { /*if*/
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" -o "), TAG_Int(4)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] = variable[0];
-      variable[11] = ((abstractmetamodel___MMModule___name_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___name))(variable[11]) /*MMModule::name*/;
+      variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
       variable[12] = variable[11];
-      variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+      variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-      variable[15] = ((compiling_base___ToolContext___ext_prefix_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___ext_prefix))( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+      variable[15] = CALL_compiling_base___ToolContext___ext_prefix( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::ext_prefix*/;
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
       variable[17] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
-      ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
     }
   }
-  variable[8] = ((compiling_base___ToolContext___boost_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___boost))( variable[1] /*tc*/) /*ToolContext::boost*/;
+  variable[8] = CALL_compiling_base___ToolContext___boost( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::boost*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" -O"), TAG_Int(3)); /*new String*/
-    ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+    CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
   }
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" \"$@\" \\\n  "), TAG_Int(10)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("\\\n  "), TAG_Int(4)); /*new String*/
-  variable[11] = ((string___Collection___join_t)CALL( variable[4] /*files*/,COLOR_string___Collection___join))( variable[4] /*files*/, variable[11]) /*Collection::join*/;
+  variable[11] = CALL_string___Collection___join( variable[4] /*files*/)( variable[4] /*files*/, variable[11]) /*Collection::join*/;
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  ((file___OFStream___close_t)CALL( variable[7] /*f*/,COLOR_stream___IOS___close))( variable[7] /*f*/) /*OFStream::close*/;
-  variable[8] = ((compiling_base___ToolContext___no_cc_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___no_cc))( variable[1] /*tc*/) /*ToolContext::no_cc*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  CALL_stream___IOS___close( variable[7] /*f*/)( variable[7] /*f*/) /*OFStream::close*/;
+  variable[8] = CALL_compiling_base___ToolContext___no_cc( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::no_cc*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
     variable[8] = variable[0];
     variable[8] = (G_sys);
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("sh "), TAG_Int(3)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[6] /*fn*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-    ((exec___Sys___system_t)CALL(variable[8],COLOR_exec___Sys___system))(variable[8], variable[9]) /*Sys::system*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_exec___Sys___system(variable[8])(variable[8], variable[9]) /*Sys::system*/;
   }
   return_label0: while(false);
   tracehead = trace.prev;
@@ -290,76 +302,79 @@ void compiling___MMSrcModule___compile_main(val_t  self, val_t  param0, val_t  p
   variable[6] = NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(variable[5]); /*new CompilerVisitor*/
   variable[5] = variable[6];
   variable[4] = variable[5];
-  ((compiling_base___CompilerVisitor___tc__eq_t)CALL( variable[4] /*v*/,COLOR_compiling_base___CompilerVisitor___tc__eq))( variable[4] /*v*/,  variable[1] /*tc*/) /*CompilerVisitor::tc=*/;
-  ((compiling_global___CompilerVisitor___global_analysis__eq_t)CALL( variable[4] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis__eq))( variable[4] /*v*/,  variable[2] /*ga*/) /*CompilerVisitor::global_analysis=*/;
+  CALL_compiling_base___CompilerVisitor___tc__eq( variable[4] /*v*/)( variable[4] /*v*/,  variable[1] /*tc*/) /*CompilerVisitor::tc=*/;
+  CALL_compiling_global___CompilerVisitor___global_analysis__eq( variable[4] /*v*/)( variable[4] /*v*/,  variable[2] /*ga*/) /*CompilerVisitor::global_analysis=*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[4] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
   variable[5] = variable[0];
-  ((compiling_global___MMSrcModule___compile_tables_to_c_t)CALL(variable[5],COLOR_compiling_global___MMSrcModule___compile_tables_to_c))(variable[5],  variable[4] /*v*/) /*MMSrcModule::compile_tables_to_c*/;
+  CALL_compiling_global___MMSrcModule___compile_tables_to_c(variable[5])(variable[5],  variable[4] /*v*/) /*MMSrcModule::compile_tables_to_c*/;
   variable[5] = variable[0];
-  ((compiling_global___MMSrcModule___compile_main_part_t)CALL(variable[5],COLOR_compiling_global___MMSrcModule___compile_main_part))(variable[5],  variable[4] /*v*/) /*MMSrcModule::compile_main_part*/;
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_global___MMSrcModule___compile_main_part(variable[5])(variable[5],  variable[4] /*v*/) /*MMSrcModule::compile_main_part*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-  variable[9] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+  variable[9] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = variable[0];
-  variable[13] = ((abstractmetamodel___MMModule___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMModule___name))(variable[13]) /*MMModule::name*/;
+  variable[13] = CALL_abstractmetamodel___MMModule___name(variable[13])(variable[13]) /*MMModule::name*/;
   variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("._tables.c"), TAG_Int(10)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[7] = NEW_OFStream_file___OFStream___open(variable[6]); /*new OFStream*/
   variable[6] = variable[7];
   variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/* This C file is generated by NIT to compile program "), TAG_Int(54)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
-  variable[9] = ((abstractmetamodel___MMModule___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMModule___name))(variable[9]) /*MMModule::name*/;
+  variable[9] = CALL_abstractmetamodel___MMModule___name(variable[9])(variable[9]) /*MMModule::name*/;
   variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[5] /*f*/,COLOR_stream___OStream___write))( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___mhe))(variable[6]) /*MMModule::mhe*/;
-  variable[6] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[6]) /*PartialOrderElement::greaters_and_self*/;
-  variable[6] = ((abstract_collection___Collection___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Collection::iterator*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___mhe(variable[6])(variable[6]) /*MMModule::mhe*/;
+  variable[6] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[6])(variable[6]) /*PartialOrderElement::greaters_and_self*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-    variable[12] = ((abstractmetamodel___MMModule___name_t)CALL( variable[8] /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable[8] /*m*/) /*MMModule::name*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+    variable[12] = CALL_abstractmetamodel___MMModule___name( variable[8] /*m*/)( variable[8] /*m*/) /*MMModule::name*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-    ((file___OFStream___write_t)CALL( variable[5] /*f*/,COLOR_stream___OStream___write))( variable[5] /*f*/, variable[9]) /*OFStream::write*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[9]) /*OFStream::write*/;
     continue_4: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
   break_4: while(0);
-  variable[6] = ((compiling_base___CompilerVisitor___to_s_t)CALL( variable[4] /*v*/,COLOR_string___Object___to_s))( variable[4] /*v*/) /*CompilerVisitor::to_s*/;
-  ((file___OFStream___write_t)CALL( variable[5] /*f*/,COLOR_stream___OStream___write))( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
-  ((file___OFStream___close_t)CALL( variable[5] /*f*/,COLOR_stream___IOS___close))( variable[5] /*f*/) /*OFStream::close*/;
+  variable[6] = CALL_string___Object___to_s( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::to_s*/;
+  CALL_stream___OStream___write( variable[5] /*f*/)( variable[5] /*f*/, variable[6]) /*OFStream::write*/;
+  CALL_stream___IOS___close( variable[5] /*f*/)( variable[5] /*f*/) /*OFStream::close*/;
   return_label3: while(false);
   tracehead = trace.prev;
   return;
@@ -377,184 +392,193 @@ void compiling___MMSrcModule___compile_separate_module(val_t  self, val_t  param
   variable[6] = NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(variable[5]); /*new CompilerVisitor*/
   variable[5] = variable[6];
   variable[4] = variable[5];
-  ((compiling_base___CompilerVisitor___tc__eq_t)CALL( variable[4] /*v*/,COLOR_compiling_base___CompilerVisitor___tc__eq))( variable[4] /*v*/,  variable[1] /*tc*/) /*CompilerVisitor::tc=*/;
-  ((compiling_global___CompilerVisitor___global_analysis__eq_t)CALL( variable[4] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis__eq))( variable[4] /*v*/,  variable[2] /*ga*/) /*CompilerVisitor::global_analysis=*/;
+  CALL_compiling_base___CompilerVisitor___tc__eq( variable[4] /*v*/)( variable[4] /*v*/,  variable[1] /*tc*/) /*CompilerVisitor::tc=*/;
+  CALL_compiling_global___CompilerVisitor___global_analysis__eq( variable[4] /*v*/)( variable[4] /*v*/,  variable[2] /*ga*/) /*CompilerVisitor::global_analysis=*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#include <nit_common.h>"), TAG_Int(23)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[4] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
   variable[6] = variable[0];
-  variable[6] = ((mmloader___MMModule___filename_t)CALL(variable[6],COLOR_mmloader___MMModule___filename))(variable[6]) /*MMModule::filename*/;
+  variable[6] = CALL_mmloader___MMModule___filename(variable[6])(variable[6]) /*MMModule::filename*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
-  variable[6] = ((file___String___strip_extension_t)CALL(variable[6],COLOR_file___String___strip_extension))(variable[6], variable[7]) /*String::strip_extension*/;
+  variable[6] = CALL_file___String___strip_extension(variable[6])(variable[6], variable[7]) /*String::strip_extension*/;
   variable[5] = variable[6];
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("_nit.h"), TAG_Int(6)); /*new String*/
-  ((string___String___append_t)CALL( variable[5] /*native_name*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*native_name*/, variable[6]) /*String::append*/;
-  variable[6] = ((file___String___file_exists_t)CALL( variable[5] /*native_name*/,COLOR_file___String___file_exists))( variable[5] /*native_name*/) /*String::file_exists*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[5] /*native_name*/)( variable[5] /*native_name*/, variable[6]) /*String::append*/;
+  variable[6] = CALL_file___String___file_exists( variable[5] /*native_name*/)( variable[5] /*native_name*/) /*String::file_exists*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = NEW_String_string___String___init(); /*new String*/
+    variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("#include <"), TAG_Int(10)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-    variable[9] = ((file___String___basename_t)CALL( variable[5] /*native_name*/,COLOR_file___String___basename))( variable[5] /*native_name*/, variable[9]) /*String::basename*/;
+    variable[9] = CALL_file___String___basename( variable[5] /*native_name*/)( variable[5] /*native_name*/, variable[9]) /*String::basename*/;
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[4] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[4] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_decl( variable[4] /*v*/)( variable[4] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
   }
   variable[6] = variable[0];
-  ((compiling_global___MMSrcModule___declare_class_tables_to_c_t)CALL(variable[6],COLOR_compiling_global___MMSrcModule___declare_class_tables_to_c))(variable[6],  variable[4] /*v*/) /*MMSrcModule::declare_class_tables_to_c*/;
+  CALL_compiling_global___MMSrcModule___declare_class_tables_to_c(variable[6])(variable[6],  variable[4] /*v*/) /*MMSrcModule::declare_class_tables_to_c*/;
   variable[6] = variable[0];
-  ((compiling_global___MMSrcModule___compile_mod_to_c_t)CALL(variable[6],COLOR_compiling_global___MMSrcModule___compile_mod_to_c))(variable[6],  variable[4] /*v*/) /*MMSrcModule::compile_mod_to_c*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_global___MMSrcModule___compile_mod_to_c(variable[6])(variable[6],  variable[4] /*v*/) /*MMSrcModule::compile_mod_to_c*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
-  variable[10] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+  variable[10] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
   variable[14] = variable[0];
-  variable[14] = ((abstractmetamodel___MMModule___name_t)CALL(variable[14],COLOR_abstractmetamodel___MMModule___name))(variable[14]) /*MMModule::name*/;
+  variable[14] = CALL_abstractmetamodel___MMModule___name(variable[14])(variable[14]) /*MMModule::name*/;
   variable[15] = variable[14];
-  variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
+  variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h"), TAG_Int(7)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
   variable[8] = NEW_OFStream_file___OFStream___open(variable[7]); /*new OFStream*/
   variable[7] = variable[8];
   variable[6] = variable[7];
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/* This C header file is generated by NIT to compile modules and programs that requires "), TAG_Int(88)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((abstractmetamodel___MMModule___name_t)CALL(variable[10],COLOR_abstractmetamodel___MMModule___name))(variable[10]) /*MMModule::name*/;
+  variable[10] = CALL_abstractmetamodel___MMModule___name(variable[10])(variable[10]) /*MMModule::name*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[6] /*f*/,COLOR_stream___OStream___write))( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#ifndef "), TAG_Int(8)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((abstractmetamodel___MMModule___name_t)CALL(variable[10],COLOR_abstractmetamodel___MMModule___name))(variable[10]) /*MMModule::name*/;
+  variable[10] = CALL_abstractmetamodel___MMModule___name(variable[10])(variable[10]) /*MMModule::name*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[6] /*f*/,COLOR_stream___OStream___write))( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((abstractmetamodel___MMModule___name_t)CALL(variable[10],COLOR_abstractmetamodel___MMModule___name))(variable[10]) /*MMModule::name*/;
+  variable[10] = CALL_abstractmetamodel___MMModule___name(variable[10])(variable[10]) /*MMModule::name*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("_sep\n"), TAG_Int(5)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[6] /*f*/,COLOR_stream___OStream___write))( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
   variable[7] = variable[0];
-  variable[7] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[7],COLOR_abstractmetamodel___MMModule___mhe))(variable[7]) /*MMModule::mhe*/;
-  variable[7] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[7]) /*PartialOrderElement::direct_greaters*/;
-  variable[7] = ((array___AbstractArray___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*AbstractArray::iterator*/;
+  variable[7] = CALL_abstractmetamodel___MMModule___mhe(variable[7])(variable[7]) /*MMModule::mhe*/;
+  variable[7] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[7])(variable[7]) /*PartialOrderElement::direct_greaters*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
-    variable[10] = NEW_String_string___String___init(); /*new String*/
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
-    variable[13] = ((abstractmetamodel___MMModule___name_t)CALL( variable[9] /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable[9] /*m*/) /*MMModule::name*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
+    variable[13] = CALL_abstractmetamodel___MMModule___name( variable[9] /*m*/)( variable[9] /*m*/) /*MMModule::name*/;
     variable[14] = variable[13];
-    variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
-    ((file___OFStream___write_t)CALL( variable[6] /*f*/,COLOR_stream___OStream___write))( variable[6] /*f*/, variable[10]) /*OFStream::write*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[10]) /*OFStream::write*/;
     continue_6: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
   break_6: while(0);
-  variable[7] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[4] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
-  variable[7] = ((compiling_base___CContext___decls_t)CALL(variable[7],COLOR_compiling_base___CContext___decls))(variable[7]) /*CContext::decls*/;
+  variable[7] = CALL_compiling_base___CompilerVisitor___ctx( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
+  variable[7] = CALL_compiling_base___CContext___decls(variable[7])(variable[7]) /*CContext::decls*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
-  variable[7] = ((string___Collection___join_t)CALL(variable[7],COLOR_string___Collection___join))(variable[7], variable[8]) /*Collection::join*/;
-  ((file___OFStream___write_t)CALL( variable[6] /*f*/,COLOR_stream___OStream___write))( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
+  variable[7] = CALL_string___Collection___join(variable[7])(variable[7], variable[8]) /*Collection::join*/;
+  CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("\n#endif\n"), TAG_Int(8)); /*new String*/
-  ((file___OFStream___write_t)CALL( variable[6] /*f*/,COLOR_stream___OStream___write))( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
-  ((file___OFStream___close_t)CALL( variable[6] /*f*/,COLOR_stream___IOS___close))( variable[6] /*f*/) /*OFStream::close*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  CALL_stream___OStream___write( variable[6] /*f*/)( variable[6] /*f*/, variable[7]) /*OFStream::write*/;
+  CALL_stream___IOS___close( variable[6] /*f*/)( variable[6] /*f*/) /*OFStream::close*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-  variable[11] = ((compiling_base___ToolContext___compdir_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___compdir))( variable[1] /*tc*/) /*ToolContext::compdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_base___ToolContext___compdir( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::compdir*/;
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
   variable[15] = variable[0];
-  variable[15] = ((abstractmetamodel___MMModule___name_t)CALL(variable[15],COLOR_abstractmetamodel___MMModule___name))(variable[15]) /*MMModule::name*/;
+  variable[15] = CALL_abstractmetamodel___MMModule___name(variable[15])(variable[15]) /*MMModule::name*/;
   variable[16] = variable[15];
-  variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+  variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString("._sep.c"), TAG_Int(7)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
   variable[9] = NEW_OFStream_file___OFStream___open(variable[8]); /*new OFStream*/
   variable[8] = variable[9];
   variable[7] = variable[8];
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("/* This C file is generated by NIT to compile module "), TAG_Int(53)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] = variable[0];
-  variable[11] = ((abstractmetamodel___MMModule___name_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___name))(variable[11]) /*MMModule::name*/;
+  variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(". */\n"), TAG_Int(5)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("#include \""), TAG_Int(10)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] = variable[0];
-  variable[11] = ((abstractmetamodel___MMModule___name_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___name))(variable[11]) /*MMModule::name*/;
+  variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("._sep.h\"\n"), TAG_Int(9)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  variable[8] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[4] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
-  variable[8] = ((compiling_base___CContext___instrs_t)CALL(variable[8],COLOR_compiling_base___CContext___instrs))(variable[8]) /*CContext::instrs*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  variable[8] = CALL_compiling_base___CompilerVisitor___ctx( variable[4] /*v*/)( variable[4] /*v*/) /*CompilerVisitor::ctx*/;
+  variable[8] = CALL_compiling_base___CContext___instrs(variable[8])(variable[8]) /*CContext::instrs*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
-  variable[8] = ((string___Collection___join_t)CALL(variable[8],COLOR_string___Collection___join))(variable[8], variable[9]) /*Collection::join*/;
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  variable[8] = CALL_string___Collection___join(variable[8])(variable[8], variable[9]) /*Collection::join*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
-  ((file___OFStream___write_t)CALL( variable[7] /*f*/,COLOR_stream___OStream___write))( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
-  ((file___OFStream___close_t)CALL( variable[7] /*f*/,COLOR_stream___IOS___close))( variable[7] /*f*/) /*OFStream::close*/;
+  CALL_stream___OStream___write( variable[7] /*f*/)( variable[7] /*f*/, variable[8]) /*OFStream::write*/;
+  CALL_stream___IOS___close( variable[7] /*f*/)( variable[7] /*f*/) /*OFStream::close*/;
   return_label5: while(false);
   tracehead = trace.prev;
   return;
index 226b552..0a8fd71 100644 (file)
@@ -5,9 +5,9 @@
 #include <nit_common.h>
 extern const char *LOCATE_compiling;
 extern const int SFT_compiling[];
-#define COLOR_compiling___MMSrcModule___compile_prog_to_c SFT_compiling[0]
-#define COLOR_compiling___MMSrcModule___compile_main SFT_compiling[1]
-#define COLOR_compiling___MMSrcModule___compile_separate_module SFT_compiling[2]
+#define CALL_compiling___MMSrcModule___compile_prog_to_c(recv) ((compiling___MMSrcModule___compile_prog_to_c_t)CALL((recv), (SFT_compiling[0] + 0)))
+#define CALL_compiling___MMSrcModule___compile_main(recv) ((compiling___MMSrcModule___compile_main_t)CALL((recv), (SFT_compiling[0] + 1)))
+#define CALL_compiling___MMSrcModule___compile_separate_module(recv) ((compiling___MMSrcModule___compile_separate_module_t)CALL((recv), (SFT_compiling[0] + 2)))
 val_t NEW_MMSrcModule_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef void (* compiling___MMSrcModule___compile_prog_to_c_t)(val_t  self, val_t  param0);
 void compiling___MMSrcModule___compile_prog_to_c(val_t  self, val_t  param0);
index fff544a..1ebc109 100644 (file)
@@ -19,27 +19,8 @@ void compiling_base___ToolContext___global__eq(val_t  self, val_t  param0) {
   tracehead = trace.prev;
   return;
 }
-val_t compiling_base___ToolContext___attr_sim(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 25, LOCATE_compiling_base___ToolContext___attr_sim};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_base;
-  tracehead = trace.prev;
-  return ATTR_compiling_base___ToolContext____attr_sim( self) /*ToolContext::_attr_sim*/;
-}
-void compiling_base___ToolContext___attr_sim__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 25, LOCATE_compiling_base___ToolContext___attr_sim__eq};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_base;
-  ATTR_compiling_base___ToolContext____attr_sim( self) /*ToolContext::_attr_sim*/ =  param0;
-  tracehead = trace.prev;
-  return;
-}
 val_t compiling_base___ToolContext___compdir(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 26, LOCATE_compiling_base___ToolContext___compdir};
+  struct trace_t trace = {NULL, NULL, 25, LOCATE_compiling_base___ToolContext___compdir};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -48,7 +29,7 @@ val_t compiling_base___ToolContext___compdir(val_t  self) {
   return ATTR_compiling_base___ToolContext____compdir( self) /*ToolContext::_compdir*/;
 }
 void compiling_base___ToolContext___compdir__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 26, LOCATE_compiling_base___ToolContext___compdir__eq};
+  struct trace_t trace = {NULL, NULL, 25, LOCATE_compiling_base___ToolContext___compdir__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -58,7 +39,7 @@ void compiling_base___ToolContext___compdir__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___ToolContext___clibdir(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 27, LOCATE_compiling_base___ToolContext___clibdir};
+  struct trace_t trace = {NULL, NULL, 26, LOCATE_compiling_base___ToolContext___clibdir};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -67,7 +48,7 @@ val_t compiling_base___ToolContext___clibdir(val_t  self) {
   return ATTR_compiling_base___ToolContext____clibdir( self) /*ToolContext::_clibdir*/;
 }
 void compiling_base___ToolContext___clibdir__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 27, LOCATE_compiling_base___ToolContext___clibdir__eq};
+  struct trace_t trace = {NULL, NULL, 26, LOCATE_compiling_base___ToolContext___clibdir__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -77,7 +58,7 @@ void compiling_base___ToolContext___clibdir__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___ToolContext___bindir(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_base___ToolContext___bindir};
+  struct trace_t trace = {NULL, NULL, 27, LOCATE_compiling_base___ToolContext___bindir};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -86,7 +67,7 @@ val_t compiling_base___ToolContext___bindir(val_t  self) {
   return ATTR_compiling_base___ToolContext____bindir( self) /*ToolContext::_bindir*/;
 }
 void compiling_base___ToolContext___bindir__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_base___ToolContext___bindir__eq};
+  struct trace_t trace = {NULL, NULL, 27, LOCATE_compiling_base___ToolContext___bindir__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -96,7 +77,7 @@ void compiling_base___ToolContext___bindir__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___ToolContext___output_file(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 29, LOCATE_compiling_base___ToolContext___output_file};
+  struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_base___ToolContext___output_file};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -105,7 +86,7 @@ val_t compiling_base___ToolContext___output_file(val_t  self) {
   return ATTR_compiling_base___ToolContext____output_file( self) /*ToolContext::_output_file*/;
 }
 void compiling_base___ToolContext___output_file__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 29, LOCATE_compiling_base___ToolContext___output_file__eq};
+  struct trace_t trace = {NULL, NULL, 28, LOCATE_compiling_base___ToolContext___output_file__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -115,7 +96,7 @@ void compiling_base___ToolContext___output_file__eq(val_t  self, val_t  param0)
   return;
 }
 val_t compiling_base___ToolContext___boost(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 30, LOCATE_compiling_base___ToolContext___boost};
+  struct trace_t trace = {NULL, NULL, 29, LOCATE_compiling_base___ToolContext___boost};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -124,7 +105,7 @@ val_t compiling_base___ToolContext___boost(val_t  self) {
   return ATTR_compiling_base___ToolContext____boost( self) /*ToolContext::_boost*/;
 }
 void compiling_base___ToolContext___boost__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 30, LOCATE_compiling_base___ToolContext___boost__eq};
+  struct trace_t trace = {NULL, NULL, 29, LOCATE_compiling_base___ToolContext___boost__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -134,7 +115,7 @@ void compiling_base___ToolContext___boost__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___ToolContext___no_cc(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 31, LOCATE_compiling_base___ToolContext___no_cc};
+  struct trace_t trace = {NULL, NULL, 30, LOCATE_compiling_base___ToolContext___no_cc};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -143,7 +124,7 @@ val_t compiling_base___ToolContext___no_cc(val_t  self) {
   return ATTR_compiling_base___ToolContext____no_cc( self) /*ToolContext::_no_cc*/;
 }
 void compiling_base___ToolContext___no_cc__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 31, LOCATE_compiling_base___ToolContext___no_cc__eq};
+  struct trace_t trace = {NULL, NULL, 30, LOCATE_compiling_base___ToolContext___no_cc__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -153,7 +134,7 @@ void compiling_base___ToolContext___no_cc__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___ToolContext___ext_prefix(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 32, LOCATE_compiling_base___ToolContext___ext_prefix};
+  struct trace_t trace = {NULL, NULL, 31, LOCATE_compiling_base___ToolContext___ext_prefix};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -162,7 +143,7 @@ val_t compiling_base___ToolContext___ext_prefix(val_t  self) {
   return ATTR_compiling_base___ToolContext____ext_prefix( self) /*ToolContext::_ext_prefix*/;
 }
 void compiling_base___ToolContext___ext_prefix__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 32, LOCATE_compiling_base___ToolContext___ext_prefix__eq};
+  struct trace_t trace = {NULL, NULL, 31, LOCATE_compiling_base___ToolContext___ext_prefix__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -172,7 +153,7 @@ void compiling_base___ToolContext___ext_prefix__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___CompilerVisitor___to_s(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 80, LOCATE_compiling_base___CompilerVisitor___to_s};
+  struct trace_t trace = {NULL, NULL, 79, LOCATE_compiling_base___CompilerVisitor___to_s};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -182,16 +163,16 @@ val_t compiling_base___CompilerVisitor___to_s(val_t  self) {
   variable[2] = variable[3];
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
-  variable[3] = ((compiling_base___CContext___decls_t)CALL(variable[3],COLOR_compiling_base___CContext___decls))(variable[3]) /*CContext::decls*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*out*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*out*/, variable[3]) /*IndexedCollection::append*/;
+  variable[3] = CALL_compiling_base___CContext___decls(variable[3])(variable[3]) /*CContext::decls*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[2] /*out*/)( variable[2] /*out*/, variable[3]) /*IndexedCollection::append*/;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
-  variable[3] = ((compiling_base___CContext___instrs_t)CALL(variable[3],COLOR_compiling_base___CContext___instrs))(variable[3]) /*CContext::instrs*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*out*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*out*/, variable[3]) /*IndexedCollection::append*/;
+  variable[3] = CALL_compiling_base___CContext___instrs(variable[3])(variable[3]) /*CContext::instrs*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[2] /*out*/)( variable[2] /*out*/, variable[3]) /*IndexedCollection::append*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  ((array___AbstractArray___add_t)CALL( variable[2] /*out*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*out*/, variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[2] /*out*/)( variable[2] /*out*/, variable[3]) /*AbstractArray::add*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
-  variable[3] = ((string___Collection___join_t)CALL( variable[2] /*out*/,COLOR_string___Collection___join))( variable[2] /*out*/, variable[3]) /*Collection::join*/;
+  variable[3] = CALL_string___Collection___join( variable[2] /*out*/)( variable[2] /*out*/, variable[3]) /*Collection::join*/;
   variable[1] = variable[3];
   goto return_label0;
   return_label0: while(false);
@@ -199,7 +180,7 @@ val_t compiling_base___CompilerVisitor___to_s(val_t  self) {
   return variable[1];
 }
 void compiling_base___CompilerVisitor___add_decl(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 39, LOCATE_compiling_base___CompilerVisitor___add_decl};
+  struct trace_t trace = {NULL, NULL, 38, LOCATE_compiling_base___CompilerVisitor___add_decl};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -212,27 +193,27 @@ void compiling_base___CompilerVisitor___add_decl(val_t  self, val_t  param0) {
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
-    variable[3] = ((compiling_base___CContext___decls_t)CALL(variable[3],COLOR_compiling_base___CContext___decls))(variable[3]) /*CContext::decls*/;
+    variable[3] = CALL_compiling_base___CContext___decls(variable[3])(variable[3]) /*CContext::decls*/;
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\t\t"), TAG_Int(2)); /*new String*/
-    variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4],  variable[1] /*s*/) /*String::+*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___String_____plus(variable[4])(variable[4],  variable[1] /*s*/) /*String::+*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   } else { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
-    variable[3] = ((compiling_base___CContext___decls_t)CALL(variable[3],COLOR_compiling_base___CContext___decls))(variable[3]) /*CContext::decls*/;
+    variable[3] = CALL_compiling_base___CContext___decls(variable[3])(variable[3]) /*CContext::decls*/;
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("  "), TAG_Int(2)); /*new String*/
     variable[5] = variable[0];
     variable[5] = ATTR_compiling_base___CompilerVisitor____indent_level(variable[5]) /*CompilerVisitor::_indent_level*/;
-    variable[4] = ((string___String_____star_t)CALL(variable[4],COLOR_string___String_____star))(variable[4], variable[5]) /*String::**/;
-    variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4],  variable[1] /*s*/) /*String::+*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___String_____star(variable[4])(variable[4], variable[5]) /*String::**/;
+    variable[4] = CALL_string___String_____plus(variable[4])(variable[4],  variable[1] /*s*/) /*String::+*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   }
   return_label1: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_base___CompilerVisitor___add_instr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 49, LOCATE_compiling_base___CompilerVisitor___add_instr};
+  struct trace_t trace = {NULL, NULL, 48, LOCATE_compiling_base___CompilerVisitor___add_instr};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -245,27 +226,27 @@ void compiling_base___CompilerVisitor___add_instr(val_t  self, val_t  param0) {
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
-    variable[3] = ((compiling_base___CContext___instrs_t)CALL(variable[3],COLOR_compiling_base___CContext___instrs))(variable[3]) /*CContext::instrs*/;
+    variable[3] = CALL_compiling_base___CContext___instrs(variable[3])(variable[3]) /*CContext::instrs*/;
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\t\t"), TAG_Int(2)); /*new String*/
-    variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4],  variable[1] /*s*/) /*String::+*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___String_____plus(variable[4])(variable[4],  variable[1] /*s*/) /*String::+*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   } else { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_compiling_base___CompilerVisitor____ctx(variable[3]) /*CompilerVisitor::_ctx*/;
-    variable[3] = ((compiling_base___CContext___instrs_t)CALL(variable[3],COLOR_compiling_base___CContext___instrs))(variable[3]) /*CContext::instrs*/;
+    variable[3] = CALL_compiling_base___CContext___instrs(variable[3])(variable[3]) /*CContext::instrs*/;
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("  "), TAG_Int(2)); /*new String*/
     variable[5] = variable[0];
     variable[5] = ATTR_compiling_base___CompilerVisitor____indent_level(variable[5]) /*CompilerVisitor::_indent_level*/;
-    variable[4] = ((string___String_____star_t)CALL(variable[4],COLOR_string___String_____star))(variable[4], variable[5]) /*String::**/;
-    variable[4] = ((string___String_____plus_t)CALL(variable[4],COLOR_string___String_____plus))(variable[4],  variable[1] /*s*/) /*String::+*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___String_____star(variable[4])(variable[4], variable[5]) /*String::**/;
+    variable[4] = CALL_string___String_____plus(variable[4])(variable[4],  variable[1] /*s*/) /*String::+*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   }
   return_label2: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_base___CompilerVisitor___new_number(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 59, LOCATE_compiling_base___CompilerVisitor___new_number};
+  struct trace_t trace = {NULL, NULL, 58, LOCATE_compiling_base___CompilerVisitor___new_number};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -284,7 +265,7 @@ val_t compiling_base___CompilerVisitor___new_number(val_t  self) {
   return variable[1];
 }
 void compiling_base___CompilerVisitor___indent(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 69, LOCATE_compiling_base___CompilerVisitor___indent};
+  struct trace_t trace = {NULL, NULL, 68, LOCATE_compiling_base___CompilerVisitor___indent};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -297,7 +278,7 @@ void compiling_base___CompilerVisitor___indent(val_t  self) {
   return;
 }
 void compiling_base___CompilerVisitor___unindent(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 73, LOCATE_compiling_base___CompilerVisitor___unindent};
+  struct trace_t trace = {NULL, NULL, 72, LOCATE_compiling_base___CompilerVisitor___unindent};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -317,7 +298,7 @@ void compiling_base___CompilerVisitor___unindent(val_t  self) {
   return;
 }
 val_t compiling_base___CompilerVisitor___module(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 90, LOCATE_compiling_base___CompilerVisitor___module};
+  struct trace_t trace = {NULL, NULL, 89, LOCATE_compiling_base___CompilerVisitor___module};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -326,7 +307,7 @@ val_t compiling_base___CompilerVisitor___module(val_t  self) {
   return ATTR_compiling_base___CompilerVisitor____module( self) /*CompilerVisitor::_module*/;
 }
 void compiling_base___CompilerVisitor___module__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 90, LOCATE_compiling_base___CompilerVisitor___module__eq};
+  struct trace_t trace = {NULL, NULL, 89, LOCATE_compiling_base___CompilerVisitor___module__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -336,7 +317,7 @@ void compiling_base___CompilerVisitor___module__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___CompilerVisitor___ctx(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 93, LOCATE_compiling_base___CompilerVisitor___ctx};
+  struct trace_t trace = {NULL, NULL, 92, LOCATE_compiling_base___CompilerVisitor___ctx};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -345,7 +326,7 @@ val_t compiling_base___CompilerVisitor___ctx(val_t  self) {
   return ATTR_compiling_base___CompilerVisitor____ctx( self) /*CompilerVisitor::_ctx*/;
 }
 void compiling_base___CompilerVisitor___ctx__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 93, LOCATE_compiling_base___CompilerVisitor___ctx__eq};
+  struct trace_t trace = {NULL, NULL, 92, LOCATE_compiling_base___CompilerVisitor___ctx__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -355,7 +336,7 @@ void compiling_base___CompilerVisitor___ctx__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___CompilerVisitor___indent_level(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 96, LOCATE_compiling_base___CompilerVisitor___indent_level};
+  struct trace_t trace = {NULL, NULL, 95, LOCATE_compiling_base___CompilerVisitor___indent_level};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -364,7 +345,7 @@ val_t compiling_base___CompilerVisitor___indent_level(val_t  self) {
   return ATTR_compiling_base___CompilerVisitor____indent_level( self) /*CompilerVisitor::_indent_level*/;
 }
 void compiling_base___CompilerVisitor___indent_level__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 96, LOCATE_compiling_base___CompilerVisitor___indent_level__eq};
+  struct trace_t trace = {NULL, NULL, 95, LOCATE_compiling_base___CompilerVisitor___indent_level__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -374,7 +355,7 @@ void compiling_base___CompilerVisitor___indent_level__eq(val_t  self, val_t  par
   return;
 }
 val_t compiling_base___CompilerVisitor___tc(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 99, LOCATE_compiling_base___CompilerVisitor___tc};
+  struct trace_t trace = {NULL, NULL, 98, LOCATE_compiling_base___CompilerVisitor___tc};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -383,7 +364,7 @@ val_t compiling_base___CompilerVisitor___tc(val_t  self) {
   return ATTR_compiling_base___CompilerVisitor____tc( self) /*CompilerVisitor::_tc*/;
 }
 void compiling_base___CompilerVisitor___tc__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 99, LOCATE_compiling_base___CompilerVisitor___tc__eq};
+  struct trace_t trace = {NULL, NULL, 98, LOCATE_compiling_base___CompilerVisitor___tc__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -393,7 +374,7 @@ void compiling_base___CompilerVisitor___tc__eq(val_t  self, val_t  param0) {
   return;
 }
 void compiling_base___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_base___CompilerVisitor___init};
+  struct trace_t trace = {NULL, NULL, 101, LOCATE_compiling_base___CompilerVisitor___init};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -409,7 +390,7 @@ void compiling_base___CompilerVisitor___init(val_t  self, val_t  param0, int* in
   return;
 }
 val_t compiling_base___CContext___decls(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 109, LOCATE_compiling_base___CContext___decls};
+  struct trace_t trace = {NULL, NULL, 108, LOCATE_compiling_base___CContext___decls};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -418,7 +399,7 @@ val_t compiling_base___CContext___decls(val_t  self) {
   return ATTR_compiling_base___CContext____decls( self) /*CContext::_decls*/;
 }
 val_t compiling_base___CContext___instrs(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 110, LOCATE_compiling_base___CContext___instrs};
+  struct trace_t trace = {NULL, NULL, 109, LOCATE_compiling_base___CContext___instrs};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -427,7 +408,7 @@ val_t compiling_base___CContext___instrs(val_t  self) {
   return ATTR_compiling_base___CContext____instrs( self) /*CContext::_instrs*/;
 }
 void compiling_base___CContext___append(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 112, LOCATE_compiling_base___CContext___append};
+  struct trace_t trace = {NULL, NULL, 111, LOCATE_compiling_base___CContext___append};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -436,18 +417,18 @@ void compiling_base___CContext___append(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_base___CContext____instrs(variable[3]) /*CContext::_instrs*/;
-  variable[4] = ((compiling_base___CContext___decls_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___decls))( variable[1] /*c*/) /*CContext::decls*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
+  variable[4] = CALL_compiling_base___CContext___decls( variable[1] /*c*/)( variable[1] /*c*/) /*CContext::decls*/;
+  CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*IndexedCollection::append*/;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_base___CContext____instrs(variable[3]) /*CContext::_instrs*/;
-  variable[4] = ((compiling_base___CContext___instrs_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___instrs))( variable[1] /*c*/) /*CContext::instrs*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
+  variable[4] = CALL_compiling_base___CContext___instrs( variable[1] /*c*/)( variable[1] /*c*/) /*CContext::instrs*/;
+  CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*IndexedCollection::append*/;
   return_label7: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_base___CContext___merge(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 118, LOCATE_compiling_base___CContext___merge};
+  struct trace_t trace = {NULL, NULL, 117, LOCATE_compiling_base___CContext___merge};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -456,18 +437,18 @@ void compiling_base___CContext___merge(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_base___CContext____decls(variable[3]) /*CContext::_decls*/;
-  variable[4] = ((compiling_base___CContext___decls_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___decls))( variable[1] /*c*/) /*CContext::decls*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
+  variable[4] = CALL_compiling_base___CContext___decls( variable[1] /*c*/)( variable[1] /*c*/) /*CContext::decls*/;
+  CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*IndexedCollection::append*/;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_base___CContext____instrs(variable[3]) /*CContext::_instrs*/;
-  variable[4] = ((compiling_base___CContext___instrs_t)CALL( variable[1] /*c*/,COLOR_compiling_base___CContext___instrs))( variable[1] /*c*/) /*CContext::instrs*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
+  variable[4] = CALL_compiling_base___CContext___instrs( variable[1] /*c*/)( variable[1] /*c*/) /*CContext::instrs*/;
+  CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*IndexedCollection::append*/;
   return_label8: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_base___CContext___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 124, LOCATE_compiling_base___CContext___init};
+  struct trace_t trace = {NULL, NULL, 123, LOCATE_compiling_base___CContext___init};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -480,24 +461,25 @@ void compiling_base___CContext___init(val_t  self, int* init_table) {
   return;
 }
 val_t compiling_base___MMGlobalProperty___meth_call(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 128, LOCATE_compiling_base___MMGlobalProperty___meth_call};
+  struct trace_t trace = {NULL, NULL, 127, LOCATE_compiling_base___MMGlobalProperty___meth_call};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("CALL_"), TAG_Int(5)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[5]) /*MMGlobalProperty::intro*/;
-  variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[5])(variable[5]) /*MMGlobalProperty::intro*/;
+  variable[5] = CALL_compiling_base___MMLocalProperty___cname(variable[5])(variable[5]) /*MMLocalProperty::cname*/;
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
   goto return_label10;
   return_label10: while(false);
@@ -505,136 +487,115 @@ val_t compiling_base___MMGlobalProperty___meth_call(val_t  self) {
   return variable[1];
 }
 val_t compiling_base___MMGlobalProperty___attr_access(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 134, LOCATE_compiling_base___MMGlobalProperty___attr_access};
+  struct trace_t trace = {NULL, NULL, 133, LOCATE_compiling_base___MMGlobalProperty___attr_access};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("ATTR_"), TAG_Int(5)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[5]) /*MMGlobalProperty::intro*/;
-  variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[5])(variable[5]) /*MMGlobalProperty::intro*/;
+  variable[5] = CALL_compiling_base___MMLocalProperty___cname(variable[5])(variable[5]) /*MMLocalProperty::cname*/;
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
   goto return_label11;
   return_label11: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t compiling_base___MMGlobalProperty___color_id(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 140, LOCATE_compiling_base___MMGlobalProperty___color_id};
-  val_t variable[9];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_base;
-  variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
-  variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
-  variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
-  variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[5]) /*MMGlobalProperty::intro*/;
-  variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
-  variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
-  variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
-  variable[1] = variable[2];
-  goto return_label12;
-  return_label12: while(false);
-  tracehead = trace.prev;
-  return variable[1];
-}
 val_t compiling_base___MMGlobalClass___id_id(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 149, LOCATE_compiling_base___MMGlobalClass___id_id};
+  struct trace_t trace = {NULL, NULL, 141, LOCATE_compiling_base___MMGlobalClass___id_id};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("ID_"), TAG_Int(3)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[5]) /*MMGlobalClass::intro*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___name))(variable[5]) /*MMLocalClass::name*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[5])(variable[5]) /*MMGlobalClass::intro*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___name(variable[5])(variable[5]) /*MMLocalClass::name*/;
   variable[6] = variable[5];
-  variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
-  goto return_label13;
-  return_label13: while(false);
+  goto return_label12;
+  return_label12: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_base___MMGlobalClass___color_id(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 155, LOCATE_compiling_base___MMGlobalClass___color_id};
+  struct trace_t trace = {NULL, NULL, 147, LOCATE_compiling_base___MMGlobalClass___color_id};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[5]) /*MMGlobalClass::intro*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___name))(variable[5]) /*MMLocalClass::name*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[5])(variable[5]) /*MMGlobalClass::intro*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___name(variable[5])(variable[5]) /*MMLocalClass::name*/;
   variable[6] = variable[5];
-  variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
-  goto return_label14;
-  return_label14: while(false);
+  goto return_label13;
+  return_label13: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_base___MMGlobalClass___init_table_pos_id(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 161, LOCATE_compiling_base___MMGlobalClass___init_table_pos_id};
+  struct trace_t trace = {NULL, NULL, 153, LOCATE_compiling_base___MMGlobalClass___init_table_pos_id};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("INIT_TABLE_POS_"), TAG_Int(15)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[5]) /*MMGlobalClass::intro*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___name))(variable[5]) /*MMLocalClass::name*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[5])(variable[5]) /*MMGlobalClass::intro*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___name(variable[5])(variable[5]) /*MMLocalClass::name*/;
   variable[6] = variable[5];
-  variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
-  goto return_label15;
-  return_label15: while(false);
+  goto return_label14;
+  return_label14: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_base___MMLocalClass___primitive_info(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 175, LOCATE_compiling_base___MMLocalClass___primitive_info};
-  static val_t once_value_17; static int once_bool_17; /* Once value for variable[3]*/
+  struct trace_t trace = {NULL, NULL, 167, LOCATE_compiling_base___MMLocalClass___primitive_info};
+  static val_t once_value_16; static int once_bool_16; /* Once value for variable[3]*/
   val_t variable[8];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -647,76 +608,76 @@ val_t compiling_base___MMLocalClass___primitive_info(val_t  self) {
     variable[2] = variable[0];
     variable[2] = ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[2]) /*MMLocalClass::_primitive_info_cache*/;
     variable[1] = variable[2];
-    goto return_label16;
+    goto return_label15;
   }
-  if (once_bool_17) variable[3] = once_value_17;
+  if (once_bool_16) variable[3] = once_value_16;
   else {
     variable[3] = variable[0];
-    variable[3] = ((compiling_base___MMLocalClass___primitive_ctypes_t)CALL(variable[3],COLOR_compiling_base___MMLocalClass___primitive_ctypes))(variable[3]) /*MMLocalClass::primitive_ctypes*/;
-    once_value_17 = variable[3];
-    once_bool_17 = true;
+    variable[3] = CALL_compiling_base___MMLocalClass___primitive_ctypes(variable[3])(variable[3]) /*MMLocalClass::primitive_ctypes*/;
+    once_value_16 = variable[3];
+    once_bool_16 = true;
   }
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___name))(variable[3]) /*MMLocalClass::name*/;
-  variable[3] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[2] /*ctypes*/,COLOR_abstract_collection___Map___has_key))( variable[2] /*ctypes*/, variable[3]) /*CoupleMap::has_key*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___name(variable[3])(variable[3]) /*MMLocalClass::name*/;
+  variable[3] = CALL_abstract_collection___Map___has_key( variable[2] /*ctypes*/)( variable[2] /*ctypes*/, variable[3]) /*CoupleMap::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = variable[0];
-    variable[4] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___name))(variable[4]) /*MMLocalClass::name*/;
-    variable[4] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[2] /*ctypes*/,COLOR_abstract_collection___Map_____bra))( variable[2] /*ctypes*/, variable[4]) /*CoupleMap::[]*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalClass___name(variable[4])(variable[4]) /*MMLocalClass::name*/;
+    variable[4] = CALL_abstract_collection___Map_____bra( variable[2] /*ctypes*/)( variable[2] /*ctypes*/, variable[4]) /*CoupleMap::[]*/;
     ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[3]) /*MMLocalClass::_primitive_info_cache*/ = variable[4];
     variable[3] = variable[0];
     ATTR_compiling_base___MMLocalClass____primitive_info_b(variable[3]) /*MMLocalClass::_primitive_info_b*/ =  TAG_Bool(true);
     variable[3] = variable[0];
     variable[3] = ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[3]) /*MMLocalClass::_primitive_info_cache*/;
     variable[1] = variable[3];
-    goto return_label16;
+    goto return_label15;
   }
-  variable[4] = ((hash___HashMap___iterator_t)CALL( variable[2] /*ctypes*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*ctypes*/) /*HashMap::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[2] /*ctypes*/)( variable[2] /*ctypes*/) /*HashMap::iterator*/;
   variable[3] = variable[4];
   while (true) { /*while*/
-    variable[4] = ((hash___HashMapIterator___is_ok_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[3] /*i*/) /*HashMapIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok( variable[3] /*i*/)( variable[3] /*i*/) /*HashMapIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /* while*/
-    variable[5] = ((hash___HashMapIterator___key_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[3] /*i*/) /*HashMapIterator::key*/;
+    variable[5] = CALL_abstract_collection___MapIterator___key( variable[3] /*i*/)( variable[3] /*i*/) /*HashMapIterator::key*/;
     variable[4] = variable[5];
     variable[5] = variable[0];
-    variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/;
-    variable[5] = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___has_global_class_named))(variable[5],  variable[4] /*n*/) /*MMModule::has_global_class_named*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
+    variable[5] = CALL_abstractmetamodel___MMModule___has_global_class_named(variable[5])(variable[5],  variable[4] /*n*/) /*MMModule::has_global_class_named*/;
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[6] = variable[0];
-      variable[6] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___module))(variable[6]) /*MMLocalClass::module*/;
-      variable[6] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[6],  variable[4] /*n*/) /*MMModule::class_by_name*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalClass___module(variable[6])(variable[6]) /*MMLocalClass::module*/;
+      variable[6] = CALL_abstractmetamodel___MMModule___class_by_name(variable[6])(variable[6],  variable[4] /*n*/) /*MMModule::class_by_name*/;
       variable[5] = variable[6];
       variable[6] = variable[0];
-      variable[6] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[6]) /*MMLocalClass::cshe*/;
-      variable[6] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement_____l))(variable[6],  variable[5] /*c*/) /*PartialOrderElement::<*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[6])(variable[6]) /*MMLocalClass::cshe*/;
+      variable[6] = CALL_partial_order___PartialOrderElement_____l(variable[6])(variable[6],  variable[5] /*c*/) /*PartialOrderElement::<*/;
       if (UNTAG_Bool(variable[6])) { /*if*/
         variable[6] = variable[0];
-        variable[7] = ((hash___HashMapIterator___item_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[3] /*i*/) /*HashMapIterator::item*/;
+        variable[7] = CALL_abstract_collection___Iterator___item( variable[3] /*i*/)( variable[3] /*i*/) /*HashMapIterator::item*/;
         ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[6]) /*MMLocalClass::_primitive_info_cache*/ = variable[7];
         variable[6] = variable[0];
         ATTR_compiling_base___MMLocalClass____primitive_info_b(variable[6]) /*MMLocalClass::_primitive_info_b*/ =  TAG_Bool(true);
         variable[6] = variable[0];
         variable[6] = ATTR_compiling_base___MMLocalClass____primitive_info_cache(variable[6]) /*MMLocalClass::_primitive_info_cache*/;
         variable[1] = variable[6];
-        goto return_label16;
+        goto return_label15;
       }
     }
-    ((hash___HashMapIterator___next_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[3] /*i*/) /*HashMapIterator::next*/;
-    continue_18: while(0);
+    CALL_abstract_collection___Iterator___next( variable[3] /*i*/)( variable[3] /*i*/) /*HashMapIterator::next*/;
+    continue_17: while(0);
   }
-  break_18: while(0);
+  break_17: while(0);
   variable[4] = variable[0];
   ATTR_compiling_base___MMLocalClass____primitive_info_b(variable[4]) /*MMLocalClass::_primitive_info_b*/ =  TAG_Bool(true);
   variable[1] =  NIT_NULL /*null*/;
-  goto return_label16;
-  return_label16: while(false);
+  goto return_label15;
+  return_label15: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 205, LOCATE_compiling_base___MMLocalClass___primitive_ctypes};
+  struct trace_t trace = {NULL, NULL, 197, LOCATE_compiling_base___MMLocalClass___primitive_ctypes};
   val_t variable[16];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -726,53 +687,53 @@ val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self) {
   variable[2] = variable[3];
   variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[8]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("NativeString"), TAG_Int(12)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[9]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("NativeArray"), TAG_Int(11)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[10]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Pointer"), TAG_Int(7)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[11]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
   variable[3] = variable[4];
   variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[Bool]*/
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Bool(true)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Bool(true)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Bool(true)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Bool(true)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Bool(true)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Bool(true)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Bool(false)) /*AbstractArray::add*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("bigint"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[7]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("char"), TAG_Int(4)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[8]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("int"), TAG_Int(3)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[9]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("float"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[10]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("char *"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[11]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("val_t *"), TAG_Int(7)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[12]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("void *"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[13]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
   variable[5] = variable[6];
-  variable[6] = ((array___AbstractArray___length_t)CALL( variable[3] /*pnames*/,COLOR_abstract_collection___Collection___length))( variable[3] /*pnames*/) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length( variable[3] /*pnames*/)( variable[3] /*pnames*/) /*AbstractArray::length*/;
   variable[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]); /*new Range[Int]*/
   variable[6] = variable[7];
-  variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
     variable[10] =  variable[3] /*pnames*/;
     variable[11] =  variable[8] /*i*/;
@@ -789,14 +750,14 @@ val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self) {
     variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
     variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
     variable[12] = variable[13];
-    goto return_label21;
-    return_label21: while(false);
+    goto return_label20;
+    return_label20: while(false);
     variable[10] = variable[12];
-    variable[10] = ((symbol___String___to_symbol_t)CALL(variable[10],COLOR_symbol___String___to_symbol))(variable[10]) /*String::to_symbol*/;
+    variable[10] = CALL_symbol___String___to_symbol(variable[10])(variable[10]) /*String::to_symbol*/;
     variable[9] = variable[10];
     variable[11] = NEW_PrimitiveInfo_compiling_base___PrimitiveInfo___init(); /*new PrimitiveInfo*/
     variable[10] = variable[11];
-    ((compiling_base___PrimitiveInfo___name__eq_t)CALL( variable[10] /*pi*/,COLOR_compiling_base___PrimitiveInfo___name__eq))( variable[10] /*pi*/,  variable[9] /*n*/) /*PrimitiveInfo::name=*/;
+    CALL_compiling_base___PrimitiveInfo___name__eq( variable[10] /*pi*/)( variable[10] /*pi*/,  variable[9] /*n*/) /*PrimitiveInfo::name=*/;
     variable[11] =  variable[4] /*tagged*/;
     variable[12] =  variable[8] /*i*/;
     variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -812,10 +773,10 @@ val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self) {
     variable[14] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
     variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
     variable[13] = variable[14];
-    goto return_label22;
-    return_label22: while(false);
+    goto return_label21;
+    return_label21: while(false);
     variable[11] = variable[13];
-    ((compiling_base___PrimitiveInfo___tagged__eq_t)CALL( variable[10] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged__eq))( variable[10] /*pi*/, variable[11]) /*PrimitiveInfo::tagged=*/;
+    CALL_compiling_base___PrimitiveInfo___tagged__eq( variable[10] /*pi*/)( variable[10] /*pi*/, variable[11]) /*PrimitiveInfo::tagged=*/;
     variable[11] =  variable[5] /*cnames*/;
     variable[12] =  variable[8] /*i*/;
     variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -831,23 +792,23 @@ val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self) {
     variable[14] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
     variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
     variable[13] = variable[14];
-    goto return_label23;
-    return_label23: while(false);
+    goto return_label22;
+    return_label22: while(false);
     variable[11] = variable[13];
-    ((compiling_base___PrimitiveInfo___cname__eq_t)CALL( variable[10] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname__eq))( variable[10] /*pi*/, variable[11]) /*PrimitiveInfo::cname=*/;
-    ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  variable[9] /*n*/,  variable[10] /*pi*/) /*HashMap::[]=*/;
-    continue_20: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    CALL_compiling_base___PrimitiveInfo___cname__eq( variable[10] /*pi*/)( variable[10] /*pi*/, variable[11]) /*PrimitiveInfo::cname=*/;
+    CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  variable[9] /*n*/,  variable[10] /*pi*/) /*HashMap::[]=*/;
+    continue_19: while(0);
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
-  break_20: while(0);
+  break_19: while(0);
   variable[1] =  variable[2] /*res*/;
-  goto return_label19;
-  return_label19: while(false);
+  goto return_label18;
+  return_label18: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_base___PrimitiveInfo___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 226, LOCATE_compiling_base___PrimitiveInfo___name};
+  struct trace_t trace = {NULL, NULL, 218, LOCATE_compiling_base___PrimitiveInfo___name};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -856,7 +817,7 @@ val_t compiling_base___PrimitiveInfo___name(val_t  self) {
   return ATTR_compiling_base___PrimitiveInfo____name( self) /*PrimitiveInfo::_name*/;
 }
 void compiling_base___PrimitiveInfo___name__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 226, LOCATE_compiling_base___PrimitiveInfo___name__eq};
+  struct trace_t trace = {NULL, NULL, 218, LOCATE_compiling_base___PrimitiveInfo___name__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -866,7 +827,7 @@ void compiling_base___PrimitiveInfo___name__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___PrimitiveInfo___tagged(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 229, LOCATE_compiling_base___PrimitiveInfo___tagged};
+  struct trace_t trace = {NULL, NULL, 221, LOCATE_compiling_base___PrimitiveInfo___tagged};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -875,7 +836,7 @@ val_t compiling_base___PrimitiveInfo___tagged(val_t  self) {
   return ATTR_compiling_base___PrimitiveInfo____tagged( self) /*PrimitiveInfo::_tagged*/;
 }
 void compiling_base___PrimitiveInfo___tagged__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 229, LOCATE_compiling_base___PrimitiveInfo___tagged__eq};
+  struct trace_t trace = {NULL, NULL, 221, LOCATE_compiling_base___PrimitiveInfo___tagged__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -885,7 +846,7 @@ void compiling_base___PrimitiveInfo___tagged__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t compiling_base___PrimitiveInfo___cname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 232, LOCATE_compiling_base___PrimitiveInfo___cname};
+  struct trace_t trace = {NULL, NULL, 224, LOCATE_compiling_base___PrimitiveInfo___cname};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -894,7 +855,7 @@ val_t compiling_base___PrimitiveInfo___cname(val_t  self) {
   return ATTR_compiling_base___PrimitiveInfo____cname( self) /*PrimitiveInfo::_cname*/;
 }
 void compiling_base___PrimitiveInfo___cname__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 232, LOCATE_compiling_base___PrimitiveInfo___cname__eq};
+  struct trace_t trace = {NULL, NULL, 224, LOCATE_compiling_base___PrimitiveInfo___cname__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -904,93 +865,94 @@ void compiling_base___PrimitiveInfo___cname__eq(val_t  self, val_t  param0) {
   return;
 }
 void compiling_base___PrimitiveInfo___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 235, LOCATE_compiling_base___PrimitiveInfo___init};
+  struct trace_t trace = {NULL, NULL, 227, LOCATE_compiling_base___PrimitiveInfo___init};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PrimitiveInfo].i]) return;
-  return_label24: while(false);
+  return_label23: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PrimitiveInfo].i] = 1;
   tracehead = trace.prev;
   return;
 }
 val_t compiling_base___MMType___cname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 239, LOCATE_compiling_base___MMType___cname};
+  struct trace_t trace = {NULL, NULL, 231, LOCATE_compiling_base___MMType___cname};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
-  variable[3] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[3],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[3]) /*MMLocalClass::primitive_info*/;
+  variable[3] = CALL_static_type___MMType___local_class(variable[3])(variable[3]) /*MMType::local_class*/;
+  variable[3] = CALL_compiling_base___MMLocalClass___primitive_info(variable[3])(variable[3]) /*MMLocalClass::primitive_info*/;
   variable[2] = variable[3];
-  variable[3] = TAG_Bool(( variable[2] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[2] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[2] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool(( variable[2] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[2] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*pi*/)( variable[2] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
     variable[1] = variable[3];
-    goto return_label25;
+    goto return_label24;
   } else { /*if*/
-    variable[3] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[2] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[2] /*pi*/) /*PrimitiveInfo::cname*/;
+    variable[3] = CALL_compiling_base___PrimitiveInfo___cname( variable[2] /*pi*/)( variable[2] /*pi*/) /*PrimitiveInfo::cname*/;
     variable[1] = variable[3];
-    goto return_label25;
+    goto return_label24;
   }
-  return_label25: while(false);
+  return_label24: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_base___MMType___default_cvalue(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 250, LOCATE_compiling_base___MMType___default_cvalue};
+  struct trace_t trace = {NULL, NULL, 242, LOCATE_compiling_base___MMType___default_cvalue};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
-  variable[3] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[3],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[3]) /*MMLocalClass::primitive_info*/;
+  variable[3] = CALL_static_type___MMType___local_class(variable[3])(variable[3]) /*MMType::local_class*/;
+  variable[3] = CALL_compiling_base___MMLocalClass___primitive_info(variable[3])(variable[3]) /*MMLocalClass::primitive_info*/;
   variable[2] = variable[3];
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[2] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[2] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[2] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*pi*/)( variable[2] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
-    variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[2] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[2] /*pi*/) /*PrimitiveInfo::tagged*/;
+    variable[4] = CALL_compiling_base___PrimitiveInfo___tagged( variable[2] /*pi*/)( variable[2] /*pi*/) /*PrimitiveInfo::tagged*/;
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("TAG_"), TAG_Int(4)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
-    variable[6] = ((static_type___MMType___local_class_t)CALL(variable[6],COLOR_static_type___MMType___local_class))(variable[6]) /*MMType::local_class*/;
-    variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___name))(variable[6]) /*MMLocalClass::name*/;
+    variable[6] = CALL_static_type___MMType___local_class(variable[6])(variable[6]) /*MMType::local_class*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___name(variable[6])(variable[6]) /*MMLocalClass::name*/;
     variable[7] = variable[6];
-    variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-    variable[10] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[2] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[2] /*pi*/) /*PrimitiveInfo::cname*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[10] = CALL_compiling_base___PrimitiveInfo___cname( variable[2] /*pi*/)( variable[2] /*pi*/) /*PrimitiveInfo::cname*/;
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")0)"), TAG_Int(3)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[1] = variable[3];
-    goto return_label26;
+    goto return_label25;
   } else { /*if*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_NULL"), TAG_Int(8)); /*new String*/
     variable[1] = variable[3];
-    goto return_label26;
+    goto return_label25;
   }
-  return_label26: while(false);
+  return_label25: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_base___MMType___boxtype(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 262, LOCATE_compiling_base___MMType___boxtype};
+  struct trace_t trace = {NULL, NULL, 254, LOCATE_compiling_base___MMType___boxtype};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -998,65 +960,67 @@ val_t compiling_base___MMType___boxtype(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
-  variable[4] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[4],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[4]) /*MMLocalClass::primitive_info*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  variable[4] = CALL_compiling_base___MMLocalClass___primitive_info(variable[4])(variable[4]) /*MMLocalClass::primitive_info*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[3] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*pi*/)( variable[3] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  variable[1] /*s*/;
-    goto return_label27;
+    goto return_label26;
   } else { /*if*/
-    variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
+    variable[4] = CALL_compiling_base___PrimitiveInfo___tagged( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
     if (UNTAG_Bool(variable[4])) { /*if*/
-      variable[4] = NEW_String_string___String___init(); /*new String*/
+      variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("TAG_"), TAG_Int(4)); /*new String*/
       variable[6] = variable[5];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
       variable[7] = variable[0];
-      variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
-      variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
+      variable[7] = CALL_static_type___MMType___local_class(variable[7])(variable[7]) /*MMType::local_class*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
       variable[8] = variable[7];
-      variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[1] /*s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+      variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
       variable[2] = variable[4];
-      goto return_label27;
+      goto return_label26;
     } else { /*if*/
-      variable[4] = NEW_String_string___String___init(); /*new String*/
+      variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("BOX_"), TAG_Int(4)); /*new String*/
       variable[6] = variable[5];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
       variable[7] = variable[0];
-      variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
-      variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
+      variable[7] = CALL_static_type___MMType___local_class(variable[7])(variable[7]) /*MMType::local_class*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
       variable[8] = variable[7];
-      variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[1] /*s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+      variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
       variable[2] = variable[4];
-      goto return_label27;
+      goto return_label26;
     }
   }
-  return_label27: while(false);
+  return_label26: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_base___MMType___unboxtype(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 276, LOCATE_compiling_base___MMType___unboxtype};
+  struct trace_t trace = {NULL, NULL, 268, LOCATE_compiling_base___MMType___unboxtype};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1064,65 +1028,67 @@ val_t compiling_base___MMType___unboxtype(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
-  variable[4] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[4],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[4]) /*MMLocalClass::primitive_info*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  variable[4] = CALL_compiling_base___MMLocalClass___primitive_info(variable[4])(variable[4]) /*MMLocalClass::primitive_info*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[3] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*pi*/)( variable[3] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  variable[1] /*s*/;
-    goto return_label28;
+    goto return_label27;
   } else { /*if*/
-    variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
+    variable[4] = CALL_compiling_base___PrimitiveInfo___tagged( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
     if (UNTAG_Bool(variable[4])) { /*if*/
-      variable[4] = NEW_String_string___String___init(); /*new String*/
+      variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("UNTAG_"), TAG_Int(6)); /*new String*/
       variable[6] = variable[5];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
       variable[7] = variable[0];
-      variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
-      variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
+      variable[7] = CALL_static_type___MMType___local_class(variable[7])(variable[7]) /*MMType::local_class*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
       variable[8] = variable[7];
-      variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[1] /*s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+      variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
       variable[2] = variable[4];
-      goto return_label28;
+      goto return_label27;
     } else { /*if*/
-      variable[4] = NEW_String_string___String___init(); /*new String*/
+      variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_"), TAG_Int(6)); /*new String*/
       variable[6] = variable[5];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
       variable[7] = variable[0];
-      variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
-      variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
+      variable[7] = CALL_static_type___MMType___local_class(variable[7])(variable[7]) /*MMType::local_class*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
       variable[8] = variable[7];
-      variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[1] /*s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+      variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
       variable[2] = variable[4];
-      goto return_label28;
+      goto return_label27;
     }
   }
-  return_label28: while(false);
+  return_label27: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_base___MMLocalProperty___cname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 295, LOCATE_compiling_base___MMLocalProperty___cname};
+  struct trace_t trace = {NULL, NULL, 287, LOCATE_compiling_base___MMLocalProperty___cname};
   val_t variable[8];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1130,54 +1096,55 @@ val_t compiling_base___MMLocalProperty___cname(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_compiling_base___MMLocalProperty____cname_cache(variable[2]) /*MMLocalProperty::_cname_cache*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[3] = variable[0];
     variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Symbol]*/
     variable[5] = variable[0];
-    variable[5] = ((abstractmetamodel___MMLocalProperty___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___module))(variable[5]) /*MMLocalProperty::module*/;
-    variable[5] = ((abstractmetamodel___MMModule___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___name))(variable[5]) /*MMModule::name*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalProperty___module(variable[5])(variable[5]) /*MMLocalProperty::module*/;
+    variable[5] = CALL_abstractmetamodel___MMModule___name(variable[5])(variable[5]) /*MMModule::name*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
-    variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
-    variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___name))(variable[6]) /*MMLocalClass::name*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[6])(variable[6]) /*MMLocalProperty::local_class*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___name(variable[6])(variable[6]) /*MMLocalClass::name*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] = variable[0];
-    variable[7] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[7]) /*MMLocalProperty::name*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/;
-    variable[3] = ((utils___Object___cmangle_t)CALL(variable[3],COLOR_utils___Object___cmangle))(variable[3], variable[4]) /*Object::cmangle*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[7])(variable[7]) /*MMLocalProperty::name*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
+    variable[3] = CALL_utils___Object___cmangle(variable[3])(variable[3], variable[4]) /*Object::cmangle*/;
     ATTR_compiling_base___MMLocalProperty____cname_cache(variable[2]) /*MMLocalProperty::_cname_cache*/ = variable[3];
   }
   variable[2] = variable[0];
   variable[2] = ATTR_compiling_base___MMLocalProperty____cname_cache(variable[2]) /*MMLocalProperty::_cname_cache*/;
   variable[1] = variable[2];
-  goto return_label29;
-  return_label29: while(false);
+  goto return_label28;
+  return_label28: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t compiling_base___MMLocalProperty___color_id_for_super(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 304, LOCATE_compiling_base___MMLocalProperty___color_id_for_super};
+val_t compiling_base___MMLocalProperty___super_meth_call(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 296, LOCATE_compiling_base___MMLocalProperty___super_meth_call};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_base;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
-  variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_SUPER_"), TAG_Int(12)); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable[3] = NEW_String_string___String___with_native(BOX_NativeString("CALL_SUPER_"), TAG_Int(11)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[5],COLOR_compiling_base___MMLocalProperty___cname))(variable[5]) /*MMLocalProperty::cname*/;
+  variable[5] = CALL_compiling_base___MMLocalProperty___cname(variable[5])(variable[5]) /*MMLocalProperty::cname*/;
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
-  goto return_label30;
-  return_label30: while(false);
+  goto return_label29;
+  return_label29: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
index 27a0876..d2ea89f 100644 (file)
@@ -12,153 +12,134 @@ extern const classtable_elt_t VFT_CContext[];
 extern const classtable_elt_t VFT_PrimitiveInfo[];
 extern const char *LOCATE_compiling_base;
 extern const int SFT_compiling_base[];
-#define COLOR_compiling_base___ToolContext____global SFT_compiling_base[0]
-#define COLOR_compiling_base___ToolContext____attr_sim SFT_compiling_base[1]
-#define COLOR_compiling_base___ToolContext____compdir SFT_compiling_base[2]
-#define COLOR_compiling_base___ToolContext____clibdir SFT_compiling_base[3]
-#define COLOR_compiling_base___ToolContext____bindir SFT_compiling_base[4]
-#define COLOR_compiling_base___ToolContext____output_file SFT_compiling_base[5]
-#define COLOR_compiling_base___ToolContext____boost SFT_compiling_base[6]
-#define COLOR_compiling_base___ToolContext____no_cc SFT_compiling_base[7]
-#define COLOR_compiling_base___ToolContext____ext_prefix SFT_compiling_base[8]
-#define COLOR_compiling_base___ToolContext___global SFT_compiling_base[9]
-#define COLOR_compiling_base___ToolContext___global__eq SFT_compiling_base[10]
-#define COLOR_compiling_base___ToolContext___attr_sim SFT_compiling_base[11]
-#define COLOR_compiling_base___ToolContext___attr_sim__eq SFT_compiling_base[12]
-#define COLOR_compiling_base___ToolContext___compdir SFT_compiling_base[13]
-#define COLOR_compiling_base___ToolContext___compdir__eq SFT_compiling_base[14]
-#define COLOR_compiling_base___ToolContext___clibdir SFT_compiling_base[15]
-#define COLOR_compiling_base___ToolContext___clibdir__eq SFT_compiling_base[16]
-#define COLOR_compiling_base___ToolContext___bindir SFT_compiling_base[17]
-#define COLOR_compiling_base___ToolContext___bindir__eq SFT_compiling_base[18]
-#define COLOR_compiling_base___ToolContext___output_file SFT_compiling_base[19]
-#define COLOR_compiling_base___ToolContext___output_file__eq SFT_compiling_base[20]
-#define COLOR_compiling_base___ToolContext___boost SFT_compiling_base[21]
-#define COLOR_compiling_base___ToolContext___boost__eq SFT_compiling_base[22]
-#define COLOR_compiling_base___ToolContext___no_cc SFT_compiling_base[23]
-#define COLOR_compiling_base___ToolContext___no_cc__eq SFT_compiling_base[24]
-#define COLOR_compiling_base___ToolContext___ext_prefix SFT_compiling_base[25]
-#define COLOR_compiling_base___ToolContext___ext_prefix__eq SFT_compiling_base[26]
-#define ID_CompilerVisitor SFT_compiling_base[27]
-#define COLOR_CompilerVisitor SFT_compiling_base[28]
-#define COLOR_compiling_base___CompilerVisitor____number_cpt SFT_compiling_base[29]
-#define COLOR_compiling_base___CompilerVisitor____module SFT_compiling_base[30]
-#define COLOR_compiling_base___CompilerVisitor____ctx SFT_compiling_base[31]
-#define COLOR_compiling_base___CompilerVisitor____indent_level SFT_compiling_base[32]
-#define COLOR_compiling_base___CompilerVisitor____tc SFT_compiling_base[33]
-#define INIT_TABLE_POS_CompilerVisitor SFT_compiling_base[34]
-#define COLOR_compiling_base___CompilerVisitor___add_decl SFT_compiling_base[35]
-#define COLOR_compiling_base___CompilerVisitor___add_instr SFT_compiling_base[36]
-#define COLOR_compiling_base___CompilerVisitor___new_number SFT_compiling_base[37]
-#define COLOR_compiling_base___CompilerVisitor___indent SFT_compiling_base[38]
-#define COLOR_compiling_base___CompilerVisitor___unindent SFT_compiling_base[39]
-#define COLOR_compiling_base___CompilerVisitor___module SFT_compiling_base[40]
-#define COLOR_compiling_base___CompilerVisitor___module__eq SFT_compiling_base[41]
-#define COLOR_compiling_base___CompilerVisitor___ctx SFT_compiling_base[42]
-#define COLOR_compiling_base___CompilerVisitor___ctx__eq SFT_compiling_base[43]
-#define COLOR_compiling_base___CompilerVisitor___indent_level SFT_compiling_base[44]
-#define COLOR_compiling_base___CompilerVisitor___indent_level__eq SFT_compiling_base[45]
-#define COLOR_compiling_base___CompilerVisitor___tc SFT_compiling_base[46]
-#define COLOR_compiling_base___CompilerVisitor___tc__eq SFT_compiling_base[47]
-#define COLOR_compiling_base___CompilerVisitor___init SFT_compiling_base[48]
-#define ID_CContext SFT_compiling_base[49]
-#define COLOR_CContext SFT_compiling_base[50]
-#define COLOR_compiling_base___CContext____decls SFT_compiling_base[51]
-#define COLOR_compiling_base___CContext____instrs SFT_compiling_base[52]
-#define INIT_TABLE_POS_CContext SFT_compiling_base[53]
-#define COLOR_compiling_base___CContext___decls SFT_compiling_base[54]
-#define COLOR_compiling_base___CContext___instrs SFT_compiling_base[55]
-#define COLOR_compiling_base___CContext___append SFT_compiling_base[56]
-#define COLOR_compiling_base___CContext___merge SFT_compiling_base[57]
-#define COLOR_compiling_base___CContext___init SFT_compiling_base[58]
-#define COLOR_compiling_base___MMGlobalProperty___meth_call SFT_compiling_base[59]
-#define COLOR_compiling_base___MMGlobalProperty___attr_access SFT_compiling_base[60]
-#define COLOR_compiling_base___MMGlobalProperty___color_id SFT_compiling_base[61]
-#define COLOR_compiling_base___MMGlobalClass___id_id SFT_compiling_base[62]
-#define COLOR_compiling_base___MMGlobalClass___color_id SFT_compiling_base[63]
-#define COLOR_compiling_base___MMGlobalClass___init_table_pos_id SFT_compiling_base[64]
-#define COLOR_compiling_base___MMLocalClass____primitive_info_cache SFT_compiling_base[65]
-#define COLOR_compiling_base___MMLocalClass____primitive_info_b SFT_compiling_base[66]
-#define COLOR_compiling_base___MMLocalClass___primitive_info SFT_compiling_base[67]
-#define COLOR_compiling_base___MMLocalClass___primitive_ctypes SFT_compiling_base[68]
-#define ID_PrimitiveInfo SFT_compiling_base[69]
-#define COLOR_PrimitiveInfo SFT_compiling_base[70]
-#define COLOR_compiling_base___PrimitiveInfo____name SFT_compiling_base[71]
-#define COLOR_compiling_base___PrimitiveInfo____tagged SFT_compiling_base[72]
-#define COLOR_compiling_base___PrimitiveInfo____cname SFT_compiling_base[73]
-#define INIT_TABLE_POS_PrimitiveInfo SFT_compiling_base[74]
-#define COLOR_compiling_base___PrimitiveInfo___name SFT_compiling_base[75]
-#define COLOR_compiling_base___PrimitiveInfo___name__eq SFT_compiling_base[76]
-#define COLOR_compiling_base___PrimitiveInfo___tagged SFT_compiling_base[77]
-#define COLOR_compiling_base___PrimitiveInfo___tagged__eq SFT_compiling_base[78]
-#define COLOR_compiling_base___PrimitiveInfo___cname SFT_compiling_base[79]
-#define COLOR_compiling_base___PrimitiveInfo___cname__eq SFT_compiling_base[80]
-#define COLOR_compiling_base___PrimitiveInfo___init SFT_compiling_base[81]
-#define COLOR_compiling_base___MMType___cname SFT_compiling_base[82]
-#define COLOR_compiling_base___MMType___default_cvalue SFT_compiling_base[83]
-#define COLOR_compiling_base___MMType___boxtype SFT_compiling_base[84]
-#define COLOR_compiling_base___MMType___unboxtype SFT_compiling_base[85]
-#define COLOR_compiling_base___MMLocalProperty____cname_cache SFT_compiling_base[86]
-#define COLOR_compiling_base___MMLocalProperty___cname SFT_compiling_base[87]
-#define COLOR_compiling_base___MMLocalProperty___color_id_for_super SFT_compiling_base[88]
+#define ATTR_compiling_base___ToolContext____global(recv) ATTR(recv, (SFT_compiling_base[0] + 0))
+#define ATTR_compiling_base___ToolContext____compdir(recv) ATTR(recv, (SFT_compiling_base[0] + 1))
+#define ATTR_compiling_base___ToolContext____clibdir(recv) ATTR(recv, (SFT_compiling_base[0] + 2))
+#define ATTR_compiling_base___ToolContext____bindir(recv) ATTR(recv, (SFT_compiling_base[0] + 3))
+#define ATTR_compiling_base___ToolContext____output_file(recv) ATTR(recv, (SFT_compiling_base[0] + 4))
+#define ATTR_compiling_base___ToolContext____boost(recv) ATTR(recv, (SFT_compiling_base[0] + 5))
+#define ATTR_compiling_base___ToolContext____no_cc(recv) ATTR(recv, (SFT_compiling_base[0] + 6))
+#define ATTR_compiling_base___ToolContext____ext_prefix(recv) ATTR(recv, (SFT_compiling_base[0] + 7))
+#define CALL_compiling_base___ToolContext___global(recv) ((compiling_base___ToolContext___global_t)CALL((recv), (SFT_compiling_base[1] + 0)))
+#define CALL_compiling_base___ToolContext___global__eq(recv) ((compiling_base___ToolContext___global__eq_t)CALL((recv), (SFT_compiling_base[1] + 1)))
+#define CALL_compiling_base___ToolContext___compdir(recv) ((compiling_base___ToolContext___compdir_t)CALL((recv), (SFT_compiling_base[1] + 2)))
+#define CALL_compiling_base___ToolContext___compdir__eq(recv) ((compiling_base___ToolContext___compdir__eq_t)CALL((recv), (SFT_compiling_base[1] + 3)))
+#define CALL_compiling_base___ToolContext___clibdir(recv) ((compiling_base___ToolContext___clibdir_t)CALL((recv), (SFT_compiling_base[1] + 4)))
+#define CALL_compiling_base___ToolContext___clibdir__eq(recv) ((compiling_base___ToolContext___clibdir__eq_t)CALL((recv), (SFT_compiling_base[1] + 5)))
+#define CALL_compiling_base___ToolContext___bindir(recv) ((compiling_base___ToolContext___bindir_t)CALL((recv), (SFT_compiling_base[1] + 6)))
+#define CALL_compiling_base___ToolContext___bindir__eq(recv) ((compiling_base___ToolContext___bindir__eq_t)CALL((recv), (SFT_compiling_base[1] + 7)))
+#define CALL_compiling_base___ToolContext___output_file(recv) ((compiling_base___ToolContext___output_file_t)CALL((recv), (SFT_compiling_base[1] + 8)))
+#define CALL_compiling_base___ToolContext___output_file__eq(recv) ((compiling_base___ToolContext___output_file__eq_t)CALL((recv), (SFT_compiling_base[1] + 9)))
+#define CALL_compiling_base___ToolContext___boost(recv) ((compiling_base___ToolContext___boost_t)CALL((recv), (SFT_compiling_base[1] + 10)))
+#define CALL_compiling_base___ToolContext___boost__eq(recv) ((compiling_base___ToolContext___boost__eq_t)CALL((recv), (SFT_compiling_base[1] + 11)))
+#define CALL_compiling_base___ToolContext___no_cc(recv) ((compiling_base___ToolContext___no_cc_t)CALL((recv), (SFT_compiling_base[1] + 12)))
+#define CALL_compiling_base___ToolContext___no_cc__eq(recv) ((compiling_base___ToolContext___no_cc__eq_t)CALL((recv), (SFT_compiling_base[1] + 13)))
+#define CALL_compiling_base___ToolContext___ext_prefix(recv) ((compiling_base___ToolContext___ext_prefix_t)CALL((recv), (SFT_compiling_base[1] + 14)))
+#define CALL_compiling_base___ToolContext___ext_prefix__eq(recv) ((compiling_base___ToolContext___ext_prefix__eq_t)CALL((recv), (SFT_compiling_base[1] + 15)))
+#define ID_CompilerVisitor (SFT_compiling_base[2])
+#define COLOR_CompilerVisitor (SFT_compiling_base[3])
+#define ATTR_compiling_base___CompilerVisitor____number_cpt(recv) ATTR(recv, (SFT_compiling_base[4] + 0))
+#define ATTR_compiling_base___CompilerVisitor____module(recv) ATTR(recv, (SFT_compiling_base[4] + 1))
+#define ATTR_compiling_base___CompilerVisitor____ctx(recv) ATTR(recv, (SFT_compiling_base[4] + 2))
+#define ATTR_compiling_base___CompilerVisitor____indent_level(recv) ATTR(recv, (SFT_compiling_base[4] + 3))
+#define ATTR_compiling_base___CompilerVisitor____tc(recv) ATTR(recv, (SFT_compiling_base[4] + 4))
+#define INIT_TABLE_POS_CompilerVisitor (SFT_compiling_base[5] + 0)
+#define CALL_compiling_base___CompilerVisitor___add_decl(recv) ((compiling_base___CompilerVisitor___add_decl_t)CALL((recv), (SFT_compiling_base[5] + 1)))
+#define CALL_compiling_base___CompilerVisitor___add_instr(recv) ((compiling_base___CompilerVisitor___add_instr_t)CALL((recv), (SFT_compiling_base[5] + 2)))
+#define CALL_compiling_base___CompilerVisitor___new_number(recv) ((compiling_base___CompilerVisitor___new_number_t)CALL((recv), (SFT_compiling_base[5] + 3)))
+#define CALL_compiling_base___CompilerVisitor___indent(recv) ((compiling_base___CompilerVisitor___indent_t)CALL((recv), (SFT_compiling_base[5] + 4)))
+#define CALL_compiling_base___CompilerVisitor___unindent(recv) ((compiling_base___CompilerVisitor___unindent_t)CALL((recv), (SFT_compiling_base[5] + 5)))
+#define CALL_compiling_base___CompilerVisitor___module(recv) ((compiling_base___CompilerVisitor___module_t)CALL((recv), (SFT_compiling_base[5] + 6)))
+#define CALL_compiling_base___CompilerVisitor___module__eq(recv) ((compiling_base___CompilerVisitor___module__eq_t)CALL((recv), (SFT_compiling_base[5] + 7)))
+#define CALL_compiling_base___CompilerVisitor___ctx(recv) ((compiling_base___CompilerVisitor___ctx_t)CALL((recv), (SFT_compiling_base[5] + 8)))
+#define CALL_compiling_base___CompilerVisitor___ctx__eq(recv) ((compiling_base___CompilerVisitor___ctx__eq_t)CALL((recv), (SFT_compiling_base[5] + 9)))
+#define CALL_compiling_base___CompilerVisitor___indent_level(recv) ((compiling_base___CompilerVisitor___indent_level_t)CALL((recv), (SFT_compiling_base[5] + 10)))
+#define CALL_compiling_base___CompilerVisitor___indent_level__eq(recv) ((compiling_base___CompilerVisitor___indent_level__eq_t)CALL((recv), (SFT_compiling_base[5] + 11)))
+#define CALL_compiling_base___CompilerVisitor___tc(recv) ((compiling_base___CompilerVisitor___tc_t)CALL((recv), (SFT_compiling_base[5] + 12)))
+#define CALL_compiling_base___CompilerVisitor___tc__eq(recv) ((compiling_base___CompilerVisitor___tc__eq_t)CALL((recv), (SFT_compiling_base[5] + 13)))
+#define CALL_compiling_base___CompilerVisitor___init(recv) ((compiling_base___CompilerVisitor___init_t)CALL((recv), (SFT_compiling_base[5] + 14)))
+#define ID_CContext (SFT_compiling_base[6])
+#define COLOR_CContext (SFT_compiling_base[7])
+#define ATTR_compiling_base___CContext____decls(recv) ATTR(recv, (SFT_compiling_base[8] + 0))
+#define ATTR_compiling_base___CContext____instrs(recv) ATTR(recv, (SFT_compiling_base[8] + 1))
+#define INIT_TABLE_POS_CContext (SFT_compiling_base[9] + 0)
+#define CALL_compiling_base___CContext___decls(recv) ((compiling_base___CContext___decls_t)CALL((recv), (SFT_compiling_base[9] + 1)))
+#define CALL_compiling_base___CContext___instrs(recv) ((compiling_base___CContext___instrs_t)CALL((recv), (SFT_compiling_base[9] + 2)))
+#define CALL_compiling_base___CContext___append(recv) ((compiling_base___CContext___append_t)CALL((recv), (SFT_compiling_base[9] + 3)))
+#define CALL_compiling_base___CContext___merge(recv) ((compiling_base___CContext___merge_t)CALL((recv), (SFT_compiling_base[9] + 4)))
+#define CALL_compiling_base___CContext___init(recv) ((compiling_base___CContext___init_t)CALL((recv), (SFT_compiling_base[9] + 5)))
+#define CALL_compiling_base___MMGlobalProperty___meth_call(recv) ((compiling_base___MMGlobalProperty___meth_call_t)CALL((recv), (SFT_compiling_base[10] + 0)))
+#define CALL_compiling_base___MMGlobalProperty___attr_access(recv) ((compiling_base___MMGlobalProperty___attr_access_t)CALL((recv), (SFT_compiling_base[10] + 1)))
+#define CALL_compiling_base___MMGlobalClass___id_id(recv) ((compiling_base___MMGlobalClass___id_id_t)CALL((recv), (SFT_compiling_base[11] + 0)))
+#define CALL_compiling_base___MMGlobalClass___color_id(recv) ((compiling_base___MMGlobalClass___color_id_t)CALL((recv), (SFT_compiling_base[11] + 1)))
+#define CALL_compiling_base___MMGlobalClass___init_table_pos_id(recv) ((compiling_base___MMGlobalClass___init_table_pos_id_t)CALL((recv), (SFT_compiling_base[11] + 2)))
+#define ATTR_compiling_base___MMLocalClass____primitive_info_cache(recv) ATTR(recv, (SFT_compiling_base[12] + 0))
+#define ATTR_compiling_base___MMLocalClass____primitive_info_b(recv) ATTR(recv, (SFT_compiling_base[12] + 1))
+#define CALL_compiling_base___MMLocalClass___primitive_info(recv) ((compiling_base___MMLocalClass___primitive_info_t)CALL((recv), (SFT_compiling_base[13] + 0)))
+#define CALL_compiling_base___MMLocalClass___primitive_ctypes(recv) ((compiling_base___MMLocalClass___primitive_ctypes_t)CALL((recv), (SFT_compiling_base[13] + 1)))
+#define ID_PrimitiveInfo (SFT_compiling_base[14])
+#define COLOR_PrimitiveInfo (SFT_compiling_base[15])
+#define ATTR_compiling_base___PrimitiveInfo____name(recv) ATTR(recv, (SFT_compiling_base[16] + 0))
+#define ATTR_compiling_base___PrimitiveInfo____tagged(recv) ATTR(recv, (SFT_compiling_base[16] + 1))
+#define ATTR_compiling_base___PrimitiveInfo____cname(recv) ATTR(recv, (SFT_compiling_base[16] + 2))
+#define INIT_TABLE_POS_PrimitiveInfo (SFT_compiling_base[17] + 0)
+#define CALL_compiling_base___PrimitiveInfo___name(recv) ((compiling_base___PrimitiveInfo___name_t)CALL((recv), (SFT_compiling_base[17] + 1)))
+#define CALL_compiling_base___PrimitiveInfo___name__eq(recv) ((compiling_base___PrimitiveInfo___name__eq_t)CALL((recv), (SFT_compiling_base[17] + 2)))
+#define CALL_compiling_base___PrimitiveInfo___tagged(recv) ((compiling_base___PrimitiveInfo___tagged_t)CALL((recv), (SFT_compiling_base[17] + 3)))
+#define CALL_compiling_base___PrimitiveInfo___tagged__eq(recv) ((compiling_base___PrimitiveInfo___tagged__eq_t)CALL((recv), (SFT_compiling_base[17] + 4)))
+#define CALL_compiling_base___PrimitiveInfo___cname(recv) ((compiling_base___PrimitiveInfo___cname_t)CALL((recv), (SFT_compiling_base[17] + 5)))
+#define CALL_compiling_base___PrimitiveInfo___cname__eq(recv) ((compiling_base___PrimitiveInfo___cname__eq_t)CALL((recv), (SFT_compiling_base[17] + 6)))
+#define CALL_compiling_base___PrimitiveInfo___init(recv) ((compiling_base___PrimitiveInfo___init_t)CALL((recv), (SFT_compiling_base[17] + 7)))
+#define CALL_compiling_base___MMType___cname(recv) ((compiling_base___MMType___cname_t)CALL((recv), (SFT_compiling_base[18] + 0)))
+#define CALL_compiling_base___MMType___default_cvalue(recv) ((compiling_base___MMType___default_cvalue_t)CALL((recv), (SFT_compiling_base[18] + 1)))
+#define CALL_compiling_base___MMType___boxtype(recv) ((compiling_base___MMType___boxtype_t)CALL((recv), (SFT_compiling_base[18] + 2)))
+#define CALL_compiling_base___MMType___unboxtype(recv) ((compiling_base___MMType___unboxtype_t)CALL((recv), (SFT_compiling_base[18] + 3)))
+#define ATTR_compiling_base___MMLocalProperty____cname_cache(recv) ATTR(recv, (SFT_compiling_base[19] + 0))
+#define CALL_compiling_base___MMLocalProperty___cname(recv) ((compiling_base___MMLocalProperty___cname_t)CALL((recv), (SFT_compiling_base[20] + 0)))
+#define CALL_compiling_base___MMLocalProperty___super_meth_call(recv) ((compiling_base___MMLocalProperty___super_meth_call_t)CALL((recv), (SFT_compiling_base[20] + 1)))
 val_t NEW_ToolContext_mmloader___ToolContext___init();
-#define ATTR_compiling_base___ToolContext____global(recv) ATTR(recv, COLOR_compiling_base___ToolContext____global)
 typedef val_t (* compiling_base___ToolContext___global_t)(val_t  self);
 val_t compiling_base___ToolContext___global(val_t  self);
 #define LOCATE_compiling_base___ToolContext___global "compiling_base::ToolContext::global"
 typedef void (* compiling_base___ToolContext___global__eq_t)(val_t  self, val_t  param0);
 void compiling_base___ToolContext___global__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___ToolContext___global__eq "compiling_base::ToolContext::global="
-#define ATTR_compiling_base___ToolContext____attr_sim(recv) ATTR(recv, COLOR_compiling_base___ToolContext____attr_sim)
-typedef val_t (* compiling_base___ToolContext___attr_sim_t)(val_t  self);
-val_t compiling_base___ToolContext___attr_sim(val_t  self);
-#define LOCATE_compiling_base___ToolContext___attr_sim "compiling_base::ToolContext::attr_sim"
-typedef void (* compiling_base___ToolContext___attr_sim__eq_t)(val_t  self, val_t  param0);
-void compiling_base___ToolContext___attr_sim__eq(val_t  self, val_t  param0);
-#define LOCATE_compiling_base___ToolContext___attr_sim__eq "compiling_base::ToolContext::attr_sim="
-#define ATTR_compiling_base___ToolContext____compdir(recv) ATTR(recv, COLOR_compiling_base___ToolContext____compdir)
 typedef val_t (* compiling_base___ToolContext___compdir_t)(val_t  self);
 val_t compiling_base___ToolContext___compdir(val_t  self);
 #define LOCATE_compiling_base___ToolContext___compdir "compiling_base::ToolContext::compdir"
 typedef void (* compiling_base___ToolContext___compdir__eq_t)(val_t  self, val_t  param0);
 void compiling_base___ToolContext___compdir__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___ToolContext___compdir__eq "compiling_base::ToolContext::compdir="
-#define ATTR_compiling_base___ToolContext____clibdir(recv) ATTR(recv, COLOR_compiling_base___ToolContext____clibdir)
 typedef val_t (* compiling_base___ToolContext___clibdir_t)(val_t  self);
 val_t compiling_base___ToolContext___clibdir(val_t  self);
 #define LOCATE_compiling_base___ToolContext___clibdir "compiling_base::ToolContext::clibdir"
 typedef void (* compiling_base___ToolContext___clibdir__eq_t)(val_t  self, val_t  param0);
 void compiling_base___ToolContext___clibdir__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___ToolContext___clibdir__eq "compiling_base::ToolContext::clibdir="
-#define ATTR_compiling_base___ToolContext____bindir(recv) ATTR(recv, COLOR_compiling_base___ToolContext____bindir)
 typedef val_t (* compiling_base___ToolContext___bindir_t)(val_t  self);
 val_t compiling_base___ToolContext___bindir(val_t  self);
 #define LOCATE_compiling_base___ToolContext___bindir "compiling_base::ToolContext::bindir"
 typedef void (* compiling_base___ToolContext___bindir__eq_t)(val_t  self, val_t  param0);
 void compiling_base___ToolContext___bindir__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___ToolContext___bindir__eq "compiling_base::ToolContext::bindir="
-#define ATTR_compiling_base___ToolContext____output_file(recv) ATTR(recv, COLOR_compiling_base___ToolContext____output_file)
 typedef val_t (* compiling_base___ToolContext___output_file_t)(val_t  self);
 val_t compiling_base___ToolContext___output_file(val_t  self);
 #define LOCATE_compiling_base___ToolContext___output_file "compiling_base::ToolContext::output_file"
 typedef void (* compiling_base___ToolContext___output_file__eq_t)(val_t  self, val_t  param0);
 void compiling_base___ToolContext___output_file__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___ToolContext___output_file__eq "compiling_base::ToolContext::output_file="
-#define ATTR_compiling_base___ToolContext____boost(recv) ATTR(recv, COLOR_compiling_base___ToolContext____boost)
 typedef val_t (* compiling_base___ToolContext___boost_t)(val_t  self);
 val_t compiling_base___ToolContext___boost(val_t  self);
 #define LOCATE_compiling_base___ToolContext___boost "compiling_base::ToolContext::boost"
 typedef void (* compiling_base___ToolContext___boost__eq_t)(val_t  self, val_t  param0);
 void compiling_base___ToolContext___boost__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___ToolContext___boost__eq "compiling_base::ToolContext::boost="
-#define ATTR_compiling_base___ToolContext____no_cc(recv) ATTR(recv, COLOR_compiling_base___ToolContext____no_cc)
 typedef val_t (* compiling_base___ToolContext___no_cc_t)(val_t  self);
 val_t compiling_base___ToolContext___no_cc(val_t  self);
 #define LOCATE_compiling_base___ToolContext___no_cc "compiling_base::ToolContext::no_cc"
 typedef void (* compiling_base___ToolContext___no_cc__eq_t)(val_t  self, val_t  param0);
 void compiling_base___ToolContext___no_cc__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___ToolContext___no_cc__eq "compiling_base::ToolContext::no_cc="
-#define ATTR_compiling_base___ToolContext____ext_prefix(recv) ATTR(recv, COLOR_compiling_base___ToolContext____ext_prefix)
 typedef val_t (* compiling_base___ToolContext___ext_prefix_t)(val_t  self);
 val_t compiling_base___ToolContext___ext_prefix(val_t  self);
 #define LOCATE_compiling_base___ToolContext___ext_prefix "compiling_base::ToolContext::ext_prefix"
@@ -177,35 +158,30 @@ void compiling_base___CompilerVisitor___add_instr(val_t  self, val_t  param0);
 typedef val_t (* compiling_base___CompilerVisitor___new_number_t)(val_t  self);
 val_t compiling_base___CompilerVisitor___new_number(val_t  self);
 #define LOCATE_compiling_base___CompilerVisitor___new_number "compiling_base::CompilerVisitor::new_number"
-#define ATTR_compiling_base___CompilerVisitor____number_cpt(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____number_cpt)
 typedef void (* compiling_base___CompilerVisitor___indent_t)(val_t  self);
 void compiling_base___CompilerVisitor___indent(val_t  self);
 #define LOCATE_compiling_base___CompilerVisitor___indent "compiling_base::CompilerVisitor::indent"
 typedef void (* compiling_base___CompilerVisitor___unindent_t)(val_t  self);
 void compiling_base___CompilerVisitor___unindent(val_t  self);
 #define LOCATE_compiling_base___CompilerVisitor___unindent "compiling_base::CompilerVisitor::unindent"
-#define ATTR_compiling_base___CompilerVisitor____module(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____module)
 typedef val_t (* compiling_base___CompilerVisitor___module_t)(val_t  self);
 val_t compiling_base___CompilerVisitor___module(val_t  self);
 #define LOCATE_compiling_base___CompilerVisitor___module "compiling_base::CompilerVisitor::module"
 typedef void (* compiling_base___CompilerVisitor___module__eq_t)(val_t  self, val_t  param0);
 void compiling_base___CompilerVisitor___module__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___CompilerVisitor___module__eq "compiling_base::CompilerVisitor::module="
-#define ATTR_compiling_base___CompilerVisitor____ctx(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____ctx)
 typedef val_t (* compiling_base___CompilerVisitor___ctx_t)(val_t  self);
 val_t compiling_base___CompilerVisitor___ctx(val_t  self);
 #define LOCATE_compiling_base___CompilerVisitor___ctx "compiling_base::CompilerVisitor::ctx"
 typedef void (* compiling_base___CompilerVisitor___ctx__eq_t)(val_t  self, val_t  param0);
 void compiling_base___CompilerVisitor___ctx__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___CompilerVisitor___ctx__eq "compiling_base::CompilerVisitor::ctx="
-#define ATTR_compiling_base___CompilerVisitor____indent_level(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____indent_level)
 typedef val_t (* compiling_base___CompilerVisitor___indent_level_t)(val_t  self);
 val_t compiling_base___CompilerVisitor___indent_level(val_t  self);
 #define LOCATE_compiling_base___CompilerVisitor___indent_level "compiling_base::CompilerVisitor::indent_level"
 typedef void (* compiling_base___CompilerVisitor___indent_level__eq_t)(val_t  self, val_t  param0);
 void compiling_base___CompilerVisitor___indent_level__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___CompilerVisitor___indent_level__eq "compiling_base::CompilerVisitor::indent_level="
-#define ATTR_compiling_base___CompilerVisitor____tc(recv) ATTR(recv, COLOR_compiling_base___CompilerVisitor____tc)
 typedef val_t (* compiling_base___CompilerVisitor___tc_t)(val_t  self);
 val_t compiling_base___CompilerVisitor___tc(val_t  self);
 #define LOCATE_compiling_base___CompilerVisitor___tc "compiling_base::CompilerVisitor::tc"
@@ -216,11 +192,9 @@ typedef void (* compiling_base___CompilerVisitor___init_t)(val_t  self, val_t  p
 void compiling_base___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_compiling_base___CompilerVisitor___init "compiling_base::CompilerVisitor::init"
 val_t NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(val_t p0);
-#define ATTR_compiling_base___CContext____decls(recv) ATTR(recv, COLOR_compiling_base___CContext____decls)
 typedef val_t (* compiling_base___CContext___decls_t)(val_t  self);
 val_t compiling_base___CContext___decls(val_t  self);
 #define LOCATE_compiling_base___CContext___decls "compiling_base::CContext::decls"
-#define ATTR_compiling_base___CContext____instrs(recv) ATTR(recv, COLOR_compiling_base___CContext____instrs)
 typedef val_t (* compiling_base___CContext___instrs_t)(val_t  self);
 val_t compiling_base___CContext___instrs(val_t  self);
 #define LOCATE_compiling_base___CContext___instrs "compiling_base::CContext::instrs"
@@ -241,9 +215,6 @@ val_t compiling_base___MMGlobalProperty___meth_call(val_t  self);
 typedef val_t (* compiling_base___MMGlobalProperty___attr_access_t)(val_t  self);
 val_t compiling_base___MMGlobalProperty___attr_access(val_t  self);
 #define LOCATE_compiling_base___MMGlobalProperty___attr_access "compiling_base::MMGlobalProperty::attr_access"
-typedef val_t (* compiling_base___MMGlobalProperty___color_id_t)(val_t  self);
-val_t compiling_base___MMGlobalProperty___color_id(val_t  self);
-#define LOCATE_compiling_base___MMGlobalProperty___color_id "compiling_base::MMGlobalProperty::color_id"
 val_t NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(val_t p0);
 typedef val_t (* compiling_base___MMGlobalClass___id_id_t)(val_t  self);
 val_t compiling_base___MMGlobalClass___id_id(val_t  self);
@@ -255,29 +226,24 @@ typedef val_t (* compiling_base___MMGlobalClass___init_table_pos_id_t)(val_t  se
 val_t compiling_base___MMGlobalClass___init_table_pos_id(val_t  self);
 #define LOCATE_compiling_base___MMGlobalClass___init_table_pos_id "compiling_base::MMGlobalClass::init_table_pos_id"
 val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1);
-#define ATTR_compiling_base___MMLocalClass____primitive_info_cache(recv) ATTR(recv, COLOR_compiling_base___MMLocalClass____primitive_info_cache)
-#define ATTR_compiling_base___MMLocalClass____primitive_info_b(recv) ATTR(recv, COLOR_compiling_base___MMLocalClass____primitive_info_b)
 typedef val_t (* compiling_base___MMLocalClass___primitive_info_t)(val_t  self);
 val_t compiling_base___MMLocalClass___primitive_info(val_t  self);
 #define LOCATE_compiling_base___MMLocalClass___primitive_info "compiling_base::MMLocalClass::primitive_info"
 typedef val_t (* compiling_base___MMLocalClass___primitive_ctypes_t)(val_t  self);
 val_t compiling_base___MMLocalClass___primitive_ctypes(val_t  self);
 #define LOCATE_compiling_base___MMLocalClass___primitive_ctypes "compiling_base::MMLocalClass::primitive_ctypes"
-#define ATTR_compiling_base___PrimitiveInfo____name(recv) ATTR(recv, COLOR_compiling_base___PrimitiveInfo____name)
 typedef val_t (* compiling_base___PrimitiveInfo___name_t)(val_t  self);
 val_t compiling_base___PrimitiveInfo___name(val_t  self);
 #define LOCATE_compiling_base___PrimitiveInfo___name "compiling_base::PrimitiveInfo::name"
 typedef void (* compiling_base___PrimitiveInfo___name__eq_t)(val_t  self, val_t  param0);
 void compiling_base___PrimitiveInfo___name__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___PrimitiveInfo___name__eq "compiling_base::PrimitiveInfo::name="
-#define ATTR_compiling_base___PrimitiveInfo____tagged(recv) ATTR(recv, COLOR_compiling_base___PrimitiveInfo____tagged)
 typedef val_t (* compiling_base___PrimitiveInfo___tagged_t)(val_t  self);
 val_t compiling_base___PrimitiveInfo___tagged(val_t  self);
 #define LOCATE_compiling_base___PrimitiveInfo___tagged "compiling_base::PrimitiveInfo::tagged"
 typedef void (* compiling_base___PrimitiveInfo___tagged__eq_t)(val_t  self, val_t  param0);
 void compiling_base___PrimitiveInfo___tagged__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___PrimitiveInfo___tagged__eq "compiling_base::PrimitiveInfo::tagged="
-#define ATTR_compiling_base___PrimitiveInfo____cname(recv) ATTR(recv, COLOR_compiling_base___PrimitiveInfo____cname)
 typedef val_t (* compiling_base___PrimitiveInfo___cname_t)(val_t  self);
 val_t compiling_base___PrimitiveInfo___cname(val_t  self);
 #define LOCATE_compiling_base___PrimitiveInfo___cname "compiling_base::PrimitiveInfo::cname"
@@ -302,11 +268,10 @@ typedef val_t (* compiling_base___MMType___unboxtype_t)(val_t  self, val_t  para
 val_t compiling_base___MMType___unboxtype(val_t  self, val_t  param0);
 #define LOCATE_compiling_base___MMType___unboxtype "compiling_base::MMType::unboxtype"
 val_t NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-#define ATTR_compiling_base___MMLocalProperty____cname_cache(recv) ATTR(recv, COLOR_compiling_base___MMLocalProperty____cname_cache)
 typedef val_t (* compiling_base___MMLocalProperty___cname_t)(val_t  self);
 val_t compiling_base___MMLocalProperty___cname(val_t  self);
 #define LOCATE_compiling_base___MMLocalProperty___cname "compiling_base::MMLocalProperty::cname"
-typedef val_t (* compiling_base___MMLocalProperty___color_id_for_super_t)(val_t  self);
-val_t compiling_base___MMLocalProperty___color_id_for_super(val_t  self);
-#define LOCATE_compiling_base___MMLocalProperty___color_id_for_super "compiling_base::MMLocalProperty::color_id_for_super"
+typedef val_t (* compiling_base___MMLocalProperty___super_meth_call_t)(val_t  self);
+val_t compiling_base___MMLocalProperty___super_meth_call(val_t  self);
+#define LOCATE_compiling_base___MMLocalProperty___super_meth_call "compiling_base::MMLocalProperty::super_meth_call"
 #endif
index cc97279..3bdb16e 100644 (file)
@@ -10,7 +10,7 @@ val_t compiling_global___ColorContext___color(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_global___ColorContext____colors(variable[3]) /*ColorContext::_colors*/;
-  variable[3] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*e*/) /*CoupleMap::[]*/;
+  variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*e*/) /*CoupleMap::[]*/;
   variable[2] = variable[3];
   goto return_label0;
   return_label0: while(false);
@@ -27,12 +27,12 @@ val_t compiling_global___ColorContext___has_color(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_global___ColorContext____colors(variable[3]) /*ColorContext::_colors*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
     variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/;
-    variable[4] = ((abstract_collection___CoupleMap___has_key_t)CALL(variable[4],COLOR_abstract_collection___Map___has_key))(variable[4],  variable[1] /*e*/) /*CoupleMap::has_key*/;
+    variable[4] = CALL_abstract_collection___Map___has_key(variable[4])(variable[4],  variable[1] /*e*/) /*CoupleMap::has_key*/;
   }
   variable[3] = variable[4];
   variable[2] = variable[3];
@@ -52,7 +52,7 @@ void compiling_global___ColorContext___color__eq(val_t  self, val_t  param0, val
   variable[2] =  param1;
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[TableElt, Int]*/
@@ -60,25 +60,25 @@ void compiling_global___ColorContext___color__eq(val_t  self, val_t  param0, val
   }
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_global___ColorContext____colors(variable[4]) /*ColorContext::_colors*/;
-  ((hash___HashMap_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[1] /*e*/,  variable[2] /*c*/) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*e*/,  variable[2] /*c*/) /*HashMap::[]=*/;
   variable[4] =  variable[2] /*c*/;
-  variable[5] = ((compiling_global___TableElt___length_t)CALL( variable[1] /*e*/,COLOR_compiling_global___TableElt___length))( variable[1] /*e*/) /*TableElt::length*/;
+  variable[5] = CALL_compiling_global___TableElt___length( variable[1] /*e*/)( variable[1] /*e*/) /*TableElt::length*/;
   variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/
   variable[5] = variable[6];
-  variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
     variable[8] = variable[0];
     variable[8] = ATTR_compiling_global___ColorContext____colors(variable[8]) /*ColorContext::_colors*/;
-    variable[9] = ((compiling_global___TableElt___item_t)CALL( variable[1] /*e*/,COLOR_compiling_global___TableElt___item))( variable[1] /*e*/,  variable[7] /*i*/) /*TableElt::item*/;
-    ((hash___HashMap_____braeq_t)CALL(variable[8],COLOR_abstract_collection___Map_____braeq))(variable[8], variable[9],  variable[4] /*idx*/) /*HashMap::[]=*/;
+    variable[9] = CALL_compiling_global___TableElt___item( variable[1] /*e*/)( variable[1] /*e*/,  variable[7] /*i*/) /*TableElt::item*/;
+    CALL_abstract_collection___Map_____braeq(variable[8])(variable[8], variable[9],  variable[4] /*idx*/) /*HashMap::[]=*/;
     variable[8] = TAG_Int(UNTAG_Int( variable[4] /*idx*/)+UNTAG_Int( TAG_Int(1)));
     variable[4] = variable[8] /*idx=*/;
     continue_3: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
   break_3: while(0);
   return_label2: while(false);
@@ -289,36 +289,8 @@ void compiling_global___CompiledClass___init(val_t  self, val_t  param0, int* in
   tracehead = trace.prev;
   return;
 }
-val_t compiling_global___MMGlobalProperty___pos_of(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_global___MMGlobalProperty___pos_of};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  tracehead = trace.prev;
-  return ATTR_compiling_global___MMGlobalProperty____pos_of( self) /*MMGlobalProperty::_pos_of*/;
-}
-void compiling_global___MMGlobalProperty___pos_of__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_global___MMGlobalProperty___pos_of__eq};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  ATTR_compiling_global___MMGlobalProperty____pos_of( self) /*MMGlobalProperty::_pos_of*/ =  param0;
-  tracehead = trace.prev;
-  return;
-}
-val_t compiling_global___MMSrcLocalClass___base_attr_pos(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 108, LOCATE_compiling_global___MMSrcLocalClass___base_attr_pos};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  tracehead = trace.prev;
-  return ATTR_compiling_global___MMSrcLocalClass____base_attr_pos( self) /*MMSrcLocalClass::_base_attr_pos*/;
-}
 val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 111, LOCATE_compiling_global___MMSrcLocalClass___class_color_pos};
+  struct trace_t trace = {NULL, NULL, 102, LOCATE_compiling_global___MMSrcLocalClass___class_color_pos};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -327,7 +299,7 @@ val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t  self) {
   return ATTR_compiling_global___MMSrcLocalClass____class_color_pos( self) /*MMSrcLocalClass::_class_color_pos*/;
 }
 val_t compiling_global___MMSrcLocalClass___class_layout(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 114, LOCATE_compiling_global___MMSrcLocalClass___class_layout};
+  struct trace_t trace = {NULL, NULL, 105, LOCATE_compiling_global___MMSrcLocalClass___class_layout};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -336,7 +308,7 @@ val_t compiling_global___MMSrcLocalClass___class_layout(val_t  self) {
   return ATTR_compiling_global___MMSrcLocalClass____class_layout( self) /*MMSrcLocalClass::_class_layout*/;
 }
 val_t compiling_global___MMSrcLocalClass___instance_layout(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 117, LOCATE_compiling_global___MMSrcLocalClass___instance_layout};
+  struct trace_t trace = {NULL, NULL, 108, LOCATE_compiling_global___MMSrcLocalClass___instance_layout};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -345,141 +317,127 @@ val_t compiling_global___MMSrcLocalClass___instance_layout(val_t  self) {
   return ATTR_compiling_global___MMSrcLocalClass____instance_layout( self) /*MMSrcLocalClass::_instance_layout*/;
 }
 void compiling_global___MMSrcLocalClass___build_layout_in(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 120, LOCATE_compiling_global___MMSrcLocalClass___build_layout_in};
-  val_t variable[14];
+  struct trace_t trace = {NULL, NULL, 111, LOCATE_compiling_global___MMSrcLocalClass___build_layout_in};
+  val_t variable[12];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = NEW_Array_array___Array___init(); /*new Array[MMGlobalProperty]*/
+  variable[5] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
   variable[4] = variable[5];
-  variable[6] = NEW_Array_array___Array___init(); /*new Array[MMGlobalProperty]*/
+  variable[5] = variable[0];
+  ATTR_compiling_global___MMSrcLocalClass____class_layout(variable[5]) /*MMSrcLocalClass::_class_layout*/ =  variable[4] /*clt*/;
+  variable[6] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
   variable[5] = variable[6];
-  variable[7] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/
-  variable[6] = variable[7];
+  variable[6] = variable[0];
+  ATTR_compiling_global___MMSrcLocalClass____instance_layout(variable[6]) /*MMSrcLocalClass::_instance_layout*/ =  variable[5] /*ilt*/;
+  variable[6] = variable[0];
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[6])(variable[6]) /*MMLocalClass::global*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[6])(variable[6]) /*MMGlobalClass::intro*/;
   variable[7] = variable[0];
-  ATTR_compiling_global___MMSrcLocalClass____class_layout(variable[7]) /*MMSrcLocalClass::_class_layout*/ =  variable[6] /*clt*/;
-  variable[8] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/
-  variable[7] = variable[8];
-  variable[8] = variable[0];
-  ATTR_compiling_global___MMSrcLocalClass____instance_layout(variable[8]) /*MMSrcLocalClass::_instance_layout*/ =  variable[7] /*ilt*/;
-  variable[8] = variable[0];
-  variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___global))(variable[8]) /*MMLocalClass::global*/;
-  variable[8] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[8]) /*MMGlobalClass::intro*/;
-  variable[9] = variable[0];
-  variable[8] = TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8], variable[9]) /*Object::==*/)))));
-  if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = variable[0];
-    variable[9] = NEW_TableEltClassIdPos_compiling_global___TableEltClassIdPos___init(variable[8]); /*new TableEltClassIdPos*/
-    variable[8] = variable[9];
-    ((array___AbstractArray___add_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*module_table*/, variable[8]) /*AbstractArray::add*/;
-    variable[8] = variable[0];
-    variable[9] = variable[0];
-    variable[10] = NEW_TableEltClassColorPos_compiling_global___TableEltClassColorPos___init(variable[9]); /*new TableEltClassColorPos*/
-    variable[9] = variable[10];
-    ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[8]) /*MMSrcLocalClass::_class_color_pos*/ = variable[9];
-    variable[8] = variable[0];
-    variable[8] = ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[8]) /*MMSrcLocalClass::_class_color_pos*/;
-    ((array___AbstractArray___add_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*module_table*/, variable[8]) /*AbstractArray::add*/;
-    variable[8] = variable[0];
-    variable[9] = NEW_TableEltClassInitTablePos_compiling_global___TableEltClassInitTablePos___init(variable[8]); /*new TableEltClassInitTablePos*/
-    variable[8] = variable[9];
-    ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[8]) /*AbstractArray::add*/;
+  variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[6])) { /*if*/
+    variable[6] = variable[0];
+    variable[7] = NEW_TableEltClassId_compiling_global___AbsTableEltClass___init(variable[6]); /*new TableEltClassId*/
+    variable[6] = variable[7];
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6]) /*AbstractArray::add*/;
+    variable[6] = variable[0];
+    variable[7] = variable[0];
+    variable[8] = NEW_TableEltClassColor_compiling_global___AbsTableEltClass___init(variable[7]); /*new TableEltClassColor*/
+    variable[7] = variable[8];
+    ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[6]) /*MMSrcLocalClass::_class_color_pos*/ = variable[7];
+    variable[6] = variable[0];
+    variable[6] = ATTR_compiling_global___MMSrcLocalClass____class_color_pos(variable[6]) /*MMSrcLocalClass::_class_color_pos*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/, variable[6]) /*AbstractArray::add*/;
+    variable[6] = variable[0];
+    variable[7] = NEW_TableEltClassInitTable_compiling_global___AbsTableEltClass___init(variable[6]); /*new TableEltClassInitTable*/
+    variable[6] = variable[7];
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[6]) /*AbstractArray::add*/;
   }
-  variable[8] = variable[0];
-  variable[8] = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL(variable[8],COLOR_syntax_base___MMSrcLocalClass___src_local_properties))(variable[8]) /*MMSrcLocalClass::src_local_properties*/;
-  variable[8] = ((abstract_collection___Map___iterator_t)CALL(variable[8],COLOR_abstract_collection___Collection___iterator))(variable[8]) /*Map::iterator*/;
+  variable[6] = variable[0];
+  variable[6] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[6])(variable[6]) /*MMSrcLocalClass::src_local_properties*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[9] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*Iterator::is_ok*/;
-    if (!UNTAG_Bool(variable[9])) break; /*for*/
-    variable[9] = ((abstract_collection___Iterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*Iterator::item*/;
-    variable[10] = variable[9];
-    variable[12] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[10] /*p*/) /*MMLocalProperty::global*/;
-    variable[11] = variable[12];
-    variable[12] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[11] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[11] /*pg*/) /*MMGlobalProperty::intro*/;
-    variable[12] = TAG_Bool((variable[12] ==  variable[10] /*p*/) || ((variable[12] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[12],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[12], variable[10] /*p*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[12],COLOR_kernel___Object_____eqeq))(variable[12],  variable[10] /*p*/) /*Object::==*/)))));
-    if (UNTAG_Bool(variable[12])) { /*if*/
-      variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
-      if (UNTAG_Bool(variable[12])) { /*if*/
-        variable[12] = ((array___AbstractArray___length_t)CALL( variable[5] /*intro_attributes*/,COLOR_abstract_collection___Collection___length))( variable[5] /*intro_attributes*/) /*AbstractArray::length*/;
-        ((compiling_global___MMGlobalProperty___pos_of__eq_t)CALL( variable[11] /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of__eq))( variable[11] /*pg*/, variable[12]) /*MMGlobalProperty::pos_of=*/;
-        ((array___AbstractArray___add_t)CALL( variable[5] /*intro_attributes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*intro_attributes*/,  variable[11] /*pg*/) /*AbstractArray::add*/;
-        variable[12] = NEW_TableEltAttrPos_compiling_global___TableEltAttrPos___init( variable[10] /*p*/); /*new TableEltAttrPos*/
-        ((array___AbstractArray___add_t)CALL( variable[7] /*ilt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*ilt*/, variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
+    if (!UNTAG_Bool(variable[7])) break; /*for*/
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
+    variable[8] = variable[7];
+    variable[10] = CALL_abstractmetamodel___MMLocalProperty___global( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::global*/;
+    variable[9] = variable[10];
+    variable[10] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[9] /*pg*/)( variable[9] /*pg*/) /*MMGlobalProperty::intro*/;
+    variable[10] = TAG_Bool((variable[10] ==  variable[8] /*p*/) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], variable[8] /*p*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10],  variable[8] /*p*/) /*Object::==*/)))));
+    if (UNTAG_Bool(variable[10])) { /*if*/
+      variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
+      if (UNTAG_Bool(variable[10])) { /*if*/
+        variable[10] = NEW_TableEltAttr_compiling_global___TableEltProp___init( variable[8] /*p*/); /*new TableEltAttr*/
+        CALL_abstract_collection___SimpleCollection___add( variable[5] /*ilt*/)( variable[5] /*ilt*/, variable[10]) /*AbstractArray::add*/;
       } else { /*if*/
-        variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
-        if (UNTAG_Bool(variable[12])) { /*if*/
-          variable[12] = ((array___AbstractArray___length_t)CALL( variable[4] /*intro_methods*/,COLOR_abstract_collection___Collection___length))( variable[4] /*intro_methods*/) /*AbstractArray::length*/;
-          ((compiling_global___MMGlobalProperty___pos_of__eq_t)CALL( variable[11] /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of__eq))( variable[11] /*pg*/, variable[12]) /*MMGlobalProperty::pos_of=*/;
-          ((array___AbstractArray___add_t)CALL( variable[4] /*intro_methods*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*intro_methods*/,  variable[11] /*pg*/) /*AbstractArray::add*/;
-          variable[12] = NEW_TableEltMethPos_compiling_global___TableEltMethPos___init( variable[10] /*p*/); /*new TableEltMethPos*/
-          ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[12]) /*AbstractArray::add*/;
+        variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
+        if (UNTAG_Bool(variable[10])) { /*if*/
+          variable[10] = NEW_TableEltMeth_compiling_global___TableEltProp___init( variable[8] /*p*/); /*new TableEltMeth*/
+          CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[10]) /*AbstractArray::add*/;
         }
       }
     }
-    variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
-    variable[13] = variable[12];
-    if (UNTAG_Bool(variable[13])) { /* and */
-      variable[13] = ((abstractmetamodel___MMLocalProperty___need_super_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___need_super))( variable[10] /*p*/) /*MMLocalProperty::need_super*/;
+    variable[10] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
+    variable[11] = variable[10];
+    if (UNTAG_Bool(variable[11])) { /* and */
+      variable[11] = CALL_abstractmetamodel___MMLocalProperty___need_super( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::need_super*/;
     }
-    variable[12] = variable[13];
-    if (UNTAG_Bool(variable[12])) { /*if*/
-      variable[12] = NEW_TableEltSuperPos_compiling_global___TableEltSuperPos___init( variable[10] /*p*/); /*new TableEltSuperPos*/
-      ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[12]) /*AbstractArray::add*/;
+    variable[10] = variable[11];
+    if (UNTAG_Bool(variable[10])) { /*if*/
+      variable[10] = NEW_TableEltSuper_compiling_global___TableEltProp___init( variable[8] /*p*/); /*new TableEltSuper*/
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*clt*/)( variable[4] /*clt*/, variable[10]) /*AbstractArray::add*/;
     }
     continue_7: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
   break_7: while(0);
-  variable[8] = ((compiling_base___ToolContext___attr_sim_t)CALL( variable[1] /*tc*/,COLOR_compiling_base___ToolContext___attr_sim))( variable[1] /*tc*/) /*ToolContext::attr_sim*/;
-  variable[9] = variable[8];
-  if (UNTAG_Bool(variable[9])) { /* and */
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*intro_attributes*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*intro_attributes*/) /*AbstractArray::is_empty*/;
-    variable[9] =  TAG_Bool(!UNTAG_Bool(variable[9]));
+  variable[6] = CALL_abstract_collection___Collection___is_empty( variable[5] /*ilt*/)( variable[5] /*ilt*/) /*AbstractArray::is_empty*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
+    variable[7] = NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init(); /*new ModuleTableEltGroup*/
+    variable[6] = variable[7];
+    variable[7] = CALL_compiling_global___ModuleTableEltGroup___elements( variable[6] /*teg*/)( variable[6] /*teg*/) /*ModuleTableEltGroup::elements*/;
+    CALL_abstract_collection___IndexedCollection___append(variable[7])(variable[7],  variable[5] /*ilt*/) /*IndexedCollection::append*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/,  variable[6] /*teg*/) /*AbstractArray::add*/;
   }
-  variable[8] = variable[9];
-  if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = variable[0];
-    variable[9] = variable[0];
-    variable[10] = NEW_TableEltBaseAttrPos_compiling_global___TableEltBaseAttrPos___init(variable[9]); /*new TableEltBaseAttrPos*/
-    variable[9] = variable[10];
-    ATTR_compiling_global___MMSrcLocalClass____base_attr_pos(variable[8]) /*MMSrcLocalClass::_base_attr_pos*/ = variable[9];
-    variable[8] = variable[0];
-    variable[8] = ATTR_compiling_global___MMSrcLocalClass____base_attr_pos(variable[8]) /*MMSrcLocalClass::_base_attr_pos*/;
-    ((array___AbstractArray___add_t)CALL( variable[6] /*clt*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clt*/, variable[8]) /*AbstractArray::add*/;
-  } else { /*if*/
-    ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*module_table*/,  variable[7] /*ilt*/) /*IndexedCollection::append*/;
+  variable[6] = CALL_abstract_collection___Collection___is_empty( variable[4] /*clt*/)( variable[4] /*clt*/) /*AbstractArray::is_empty*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
+    variable[7] = NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init(); /*new ModuleTableEltGroup*/
+    variable[6] = variable[7];
+    variable[7] = CALL_compiling_global___ModuleTableEltGroup___elements( variable[6] /*teg*/)( variable[6] /*teg*/) /*ModuleTableEltGroup::elements*/;
+    CALL_abstract_collection___IndexedCollection___append(variable[7])(variable[7],  variable[4] /*clt*/) /*IndexedCollection::append*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*module_table*/)( variable[2] /*module_table*/,  variable[6] /*teg*/) /*AbstractArray::add*/;
   }
-  ((abstract_collection___IndexedCollection___append_t)CALL( variable[2] /*module_table*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*module_table*/,  variable[6] /*clt*/) /*IndexedCollection::append*/;
   return_label6: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_global___MMSrcModule___local_analysis(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 168, LOCATE_compiling_global___MMSrcModule___local_analysis};
+  struct trace_t trace = {NULL, NULL, 157, LOCATE_compiling_global___MMSrcModule___local_analysis};
   val_t variable[7];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/
+  variable[4] = NEW_Array_array___Array___init(); /*new Array[ModuleTableElt]*/
   variable[3] = variable[4];
   variable[4] = variable[0];
   ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/ =  variable[3] /*lt*/;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMSrcModule___src_local_classes_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___src_local_classes))(variable[4]) /*MMSrcModule::src_local_classes*/;
-  variable[4] = ((abstract_collection___Map___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Map::iterator*/;
+  variable[4] = CALL_syntax_base___MMSrcModule___src_local_classes(variable[4])(variable[4]) /*MMSrcModule::src_local_classes*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    ((compiling_global___MMSrcLocalClass___build_layout_in_t)CALL( variable[6] /*c*/,COLOR_compiling_global___MMSrcLocalClass___build_layout_in))( variable[6] /*c*/,  variable[1] /*tc*/,  variable[3] /*lt*/) /*MMSrcLocalClass::build_layout_in*/;
+    CALL_compiling_global___MMSrcLocalClass___build_layout_in( variable[6] /*c*/)( variable[6] /*c*/,  variable[1] /*tc*/,  variable[3] /*lt*/) /*MMSrcLocalClass::build_layout_in*/;
     continue_9: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_9: while(0);
   return_label8: while(false);
@@ -487,7 +445,7 @@ void compiling_global___MMSrcModule___local_analysis(val_t  self, val_t  param0)
   return;
 }
 val_t compiling_global___MMSrcModule___global_analysis(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 178, LOCATE_compiling_global___MMSrcModule___global_analysis};
+  struct trace_t trace = {NULL, NULL, 167, LOCATE_compiling_global___MMSrcModule___global_analysis};
   val_t variable[25];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -506,321 +464,291 @@ val_t compiling_global___MMSrcModule___global_analysis(val_t  self, val_t  param
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
   variable[7] = variable[8];
-  variable[8] = NEW_TableEltClassSelfId_compiling_global___TableEltClassSelfId___init(); /*new TableEltClassSelfId*/
-  ((array___AbstractArray___add_t)CALL( variable[6] /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*ctab*/, variable[8]) /*AbstractArray::add*/;
-  variable[8] = NEW_TableEltVftPointer_compiling_global___TableEltVftPointer___init(); /*new TableEltVftPointer*/
-  ((array___AbstractArray___add_t)CALL( variable[7] /*itab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*itab*/, variable[8]) /*AbstractArray::add*/;
+  variable[8] = NEW_TableEltClassSelfId_compiling_global___AbsTableElt___init(); /*new TableEltClassSelfId*/
+  CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[8]) /*AbstractArray::add*/;
+  variable[8] = NEW_TableEltVftPointer_compiling_global___AbsTableElt___init(); /*new TableEltVftPointer*/
+  CALL_abstract_collection___SimpleCollection___add( variable[7] /*itab*/)( variable[7] /*itab*/, variable[8]) /*AbstractArray::add*/;
   variable[9] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
   variable[8] = variable[9];
   variable[9] =  TAG_Int(3);
   variable[11] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
   variable[10] = variable[11];
   variable[11] = variable[0];
-  variable[11] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___local_classes))(variable[11]) /*MMModule::local_classes*/;
-  variable[11] = ((array___AbstractArray___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*AbstractArray::iterator*/;
+  variable[11] = CALL_abstractmetamodel___MMModule___local_classes(variable[11])(variable[11]) /*MMModule::local_classes*/;
+  variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/;
+    variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[12])) break; /*for*/
-    variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/;
+    variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
     variable[13] = variable[12];
-    ((inheritance___MMLocalClass___compute_super_classes_t)CALL( variable[13] /*c*/,COLOR_inheritance___MMLocalClass___compute_super_classes))( variable[13] /*c*/) /*MMLocalClass::compute_super_classes*/;
-    ((array___AbstractArray___add_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*classes*/,  variable[13] /*c*/) /*AbstractArray::add*/;
+    CALL_inheritance___MMLocalClass___compute_super_classes( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::compute_super_classes*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*classes*/)( variable[10] /*classes*/,  variable[13] /*c*/) /*AbstractArray::add*/;
     continue_11: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
   }
   break_11: while(0);
   variable[11] = NEW_ClassSorter_compiling_global___ClassSorter___init(); /*new ClassSorter*/
-  ((sorter___AbstractSorter___sort_t)CALL(variable[11],COLOR_sorter___AbstractSorter___sort))(variable[11],  variable[10] /*classes*/) /*AbstractSorter::sort*/;
-  variable[11] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*classes*/) /*AbstractArray::iterator*/;
+  CALL_sorter___AbstractSorter___sort(variable[11])(variable[11],  variable[10] /*classes*/) /*AbstractSorter::sort*/;
+  variable[11] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/;
+    variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[12])) break; /*for*/
-    variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/;
+    variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
     variable[13] = variable[12];
-    ((inheritance___MMLocalClass___compute_ancestors_t)CALL( variable[13] /*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors))( variable[13] /*c*/) /*MMLocalClass::compute_ancestors*/;
-    ((inheritance___MMLocalClass___inherit_global_properties_t)CALL( variable[13] /*c*/,COLOR_inheritance___MMLocalClass___inherit_global_properties))( variable[13] /*c*/) /*MMLocalClass::inherit_global_properties*/;
+    CALL_inheritance___MMLocalClass___compute_ancestors( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::compute_ancestors*/;
+    CALL_inheritance___MMLocalClass___inherit_global_properties( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::inherit_global_properties*/;
     variable[15] = NEW_CompiledClass_compiling_global___CompiledClass___init( variable[13] /*c*/); /*new CompiledClass*/
     variable[14] = variable[15];
-    variable[15] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-    variable[16] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[13] /*c*/) /*MMLocalClass::global*/;
-    ((hash___HashMap_____braeq_t)CALL(variable[15],COLOR_abstract_collection___Map_____braeq))(variable[15], variable[16],  variable[14] /*cc*/) /*HashMap::[]=*/;
-    variable[16] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[13] /*c*/) /*MMLocalClass::global*/;
+    variable[15] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable[16] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
+    CALL_abstract_collection___Map_____braeq(variable[15])(variable[15], variable[16],  variable[14] /*cc*/) /*HashMap::[]=*/;
+    variable[16] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
     variable[15] = variable[16];
-    variable[17] = ((abstractmetamodel___MMGlobalClass___module_t)CALL( variable[15] /*gc*/,COLOR_abstractmetamodel___MMGlobalClass___module))( variable[15] /*gc*/) /*MMGlobalClass::module*/;
+    variable[17] = CALL_abstractmetamodel___MMGlobalClass___module( variable[15] /*gc*/)( variable[15] /*gc*/) /*MMGlobalClass::module*/;
     variable[16] = variable[17];
-    variable[17] = ((compiling_base___MMLocalClass___primitive_info_t)CALL( variable[13] /*c*/,COLOR_compiling_base___MMLocalClass___primitive_info))( variable[13] /*c*/) /*MMLocalClass::primitive_info*/;
-    variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] ==  NIT_NULL /*null*/) || ((variable[17] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[17],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[17],COLOR_kernel___Object_____eqeq))(variable[17],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[17] = CALL_compiling_base___MMLocalClass___primitive_info( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::primitive_info*/;
+    variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] ==  NIT_NULL /*null*/) || ((variable[17] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[17])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[17])(variable[17],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[17])) { /*if*/
-      ((compiling_global___CompiledClass___id__eq_t)CALL( variable[14] /*cc*/,COLOR_compiling_global___CompiledClass___id__eq))( variable[14] /*cc*/,  variable[8] /*pclassid*/) /*CompiledClass::id=*/;
+      CALL_compiling_global___CompiledClass___id__eq( variable[14] /*cc*/)( variable[14] /*cc*/,  variable[8] /*pclassid*/) /*CompiledClass::id=*/;
       variable[17] = TAG_Int(UNTAG_Int( variable[8] /*pclassid*/)-UNTAG_Int( TAG_Int(4)));
       variable[8] = variable[17] /*pclassid=*/;
     } else { /*if*/
-      ((compiling_global___CompiledClass___id__eq_t)CALL( variable[14] /*cc*/,COLOR_compiling_global___CompiledClass___id__eq))( variable[14] /*cc*/,  variable[9] /*classid*/) /*CompiledClass::id=*/;
+      CALL_compiling_global___CompiledClass___id__eq( variable[14] /*cc*/)( variable[14] /*cc*/,  variable[9] /*classid*/) /*CompiledClass::id=*/;
       variable[17] = TAG_Int(UNTAG_Int( variable[9] /*classid*/)+UNTAG_Int( TAG_Int(4)));
       variable[9] = variable[17] /*classid=*/;
     }
-    variable[17] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[13] /*c*/) /*MMLocalClass::cshe*/;
-    variable[17] = ((partial_order___PartialOrderElement___direct_smallers_t)CALL(variable[17],COLOR_partial_order___PartialOrderElement___direct_smallers))(variable[17]) /*PartialOrderElement::direct_smallers*/;
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL(variable[17],COLOR_abstract_collection___Collection___is_empty))(variable[17]) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::cshe*/;
+    variable[17] = CALL_partial_order___PartialOrderElement___direct_smallers(variable[17])(variable[17]) /*PartialOrderElement::direct_smallers*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty(variable[17])(variable[17]) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable[4] /*smallest_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*smallest_classes*/,  variable[13] /*c*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*smallest_classes*/)( variable[4] /*smallest_classes*/,  variable[13] /*c*/) /*AbstractArray::add*/;
     }
-    variable[18] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[13] /*c*/) /*MMLocalClass::global*/;
-    variable[18] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[18],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[18]) /*MMGlobalClass::intro*/;
+    variable[18] = CALL_abstractmetamodel___MMLocalClass___global( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global*/;
+    variable[18] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[18])(variable[18]) /*MMGlobalClass::intro*/;
     variable[17] = variable[18];
     variable[18] = TAG_Bool(( variable[17] /*bc*/==NIT_NULL) || VAL_ISA( variable[17] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
-    if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 230); nit_exit(1);}
-    variable[18] = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable[17] /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable[17] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
-    ((array___AbstractArray___add_t)CALL( variable[6] /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*ctab*/, variable[18]) /*AbstractArray::add*/;
+    if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 219); nit_exit(1);}
+    variable[18] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[17] /*bc*/)( variable[17] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/, variable[18]) /*AbstractArray::add*/;
     continue_12: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
   }
   break_12: while(0);
   variable[12] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
   variable[11] = variable[12];
   variable[13] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
   variable[12] = variable[13];
-  variable[13] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*smallest_classes*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*smallest_classes*/) /*AbstractArray::iterator*/;
+  variable[13] = CALL_abstract_collection___Collection___iterator( variable[4] /*smallest_classes*/)( variable[4] /*smallest_classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[14] = ((array___ArrayIterator___is_ok_t)CALL(variable[13],COLOR_abstract_collection___Iterator___is_ok))(variable[13]) /*ArrayIterator::is_ok*/;
+    variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[14])) break; /*for*/
-    variable[14] = ((array___ArrayIterator___item_t)CALL(variable[13],COLOR_abstract_collection___Iterator___item))(variable[13]) /*ArrayIterator::item*/;
+    variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*ArrayIterator::item*/;
     variable[15] = variable[14];
     while (true) { /*while*/
-      variable[16] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[15] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[15] /*c*/) /*MMLocalClass::cshe*/;
-      variable[16] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[16],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[16]) /*PartialOrderElement::direct_greaters*/;
-      variable[16] = ((array___AbstractArray___length_t)CALL(variable[16],COLOR_abstract_collection___Collection___length))(variable[16]) /*AbstractArray::length*/;
+      variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
+      variable[16] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[16])(variable[16]) /*PartialOrderElement::direct_greaters*/;
+      variable[16] = CALL_abstract_collection___Collection___length(variable[16])(variable[16]) /*AbstractArray::length*/;
       variable[16] = TAG_Bool((variable[16])==( TAG_Int(1)));
       if (!UNTAG_Bool(variable[16])) break; /* while*/
-      variable[16] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[15] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[15] /*c*/) /*MMLocalClass::cshe*/;
-      variable[16] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[16],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[16]) /*PartialOrderElement::direct_greaters*/;
-      variable[16] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[16],COLOR_abstract_collection___Collection___first))(variable[16]) /*IndexedCollection::first*/;
+      variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
+      variable[16] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[16])(variable[16]) /*PartialOrderElement::direct_greaters*/;
+      variable[16] = CALL_abstract_collection___Collection___first(variable[16])(variable[16]) /*IndexedCollection::first*/;
       variable[15] = variable[16] /*c=*/;
       continue_14: while(0);
     }
     break_14: while(0);
-    ((hash___HashSet___add_t)CALL( variable[11] /*crown_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*crown_classes*/,  variable[15] /*c*/) /*HashSet::add*/;
-    variable[16] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[15] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[15] /*c*/) /*MMLocalClass::cshe*/;
-    variable[16] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[16],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[16]) /*PartialOrderElement::greaters_and_self*/;
-    ((abstract_collection___SimpleCollection___add_all_t)CALL( variable[12] /*core_classes*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable[12] /*core_classes*/, variable[16]) /*SimpleCollection::add_all*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*crown_classes*/)( variable[11] /*crown_classes*/,  variable[15] /*c*/) /*HashSet::add*/;
+    variable[16] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[15] /*c*/)( variable[15] /*c*/) /*MMLocalClass::cshe*/;
+    variable[16] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[16])(variable[16]) /*PartialOrderElement::greaters_and_self*/;
+    CALL_abstract_collection___SimpleCollection___add_all( variable[12] /*core_classes*/)( variable[12] /*core_classes*/, variable[16]) /*SimpleCollection::add_all*/;
     continue_13: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[13],COLOR_abstract_collection___Iterator___next))(variable[13]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*ArrayIterator::next*/;
   }
   break_13: while(0);
   variable[13] = variable[0];
-  ((compiling_global___MMSrcModule___colorize_t)CALL(variable[13],COLOR_compiling_global___MMSrcModule___colorize))(variable[13],  variable[3] /*ga*/,  variable[6] /*ctab*/,  variable[11] /*crown_classes*/,  TAG_Int(0)) /*MMSrcModule::colorize*/;
+  CALL_compiling_global___MMSrcModule___colorize(variable[13])(variable[13],  variable[3] /*ga*/,  variable[6] /*ctab*/,  variable[11] /*crown_classes*/,  TAG_Int(0)) /*MMSrcModule::colorize*/;
   variable[13] =  TAG_Int(0);
-  variable[14] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*classes*/) /*AbstractArray::iterator*/;
+  variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/;
+    variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[15])) break; /*for*/
-    variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/;
+    variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
     variable[16] = variable[15];
-    variable[18] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-    variable[19] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/;
-    variable[18] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[18],COLOR_abstract_collection___Map_____bra))(variable[18], variable[19]) /*CoupleMap::[]*/;
+    variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
+    variable[18] = CALL_abstract_collection___Map_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
     variable[17] = variable[18];
-    variable[18] = ((hash___HashSet___has_t)CALL( variable[12] /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable[12] /*core_classes*/,  variable[16] /*c*/) /*HashSet::has*/;
+    variable[18] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/,  variable[16] /*c*/) /*HashSet::has*/;
     if (UNTAG_Bool(variable[18])) { /*if*/
       variable[18] = variable[0];
-      variable[18] = ((compiling_global___MMSrcModule___build_tables_t)CALL(variable[18],COLOR_compiling_global___MMSrcModule___build_tables))(variable[18],  variable[3] /*ga*/,  variable[16] /*c*/,  variable[6] /*ctab*/) /*MMSrcModule::build_tables*/;
-      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/;
-      variable[18] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-      variable[18] = ((array___AbstractArray___length_t)CALL(variable[18],COLOR_abstract_collection___Collection___length))(variable[18]) /*AbstractArray::length*/;
+      variable[18] = CALL_compiling_global___MMSrcModule___build_tables(variable[18])(variable[18],  variable[3] /*ga*/,  variable[16] /*c*/,  variable[6] /*ctab*/) /*MMSrcModule::build_tables*/;
+      CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/;
+      variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+      variable[18] = CALL_abstract_collection___Collection___length(variable[18])(variable[18]) /*AbstractArray::length*/;
       variable[18] = TAG_Bool(UNTAG_Int( variable[13] /*maxcolor*/)<UNTAG_Int(variable[18]));
       if (UNTAG_Bool(variable[18])) { /*if*/
-        variable[18] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-        variable[18] = ((array___AbstractArray___length_t)CALL(variable[18],COLOR_abstract_collection___Collection___length))(variable[18]) /*AbstractArray::length*/;
+        variable[18] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+        variable[18] = CALL_abstract_collection___Collection___length(variable[18])(variable[18]) /*AbstractArray::length*/;
         variable[13] = variable[18] /*maxcolor=*/;
       }
     } else { /*if*/
-      variable[19] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[16] /*c*/) /*MMLocalClass::cshe*/;
-      variable[19] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[19],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[19]) /*PartialOrderElement::direct_greaters*/;
-      variable[19] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[19],COLOR_abstract_collection___Collection___first))(variable[19]) /*IndexedCollection::first*/;
+      variable[19] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::cshe*/;
+      variable[19] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[19])(variable[19]) /*PartialOrderElement::direct_greaters*/;
+      variable[19] = CALL_abstract_collection___Collection___first(variable[19])(variable[19]) /*IndexedCollection::first*/;
       variable[18] = variable[19];
-      variable[20] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-      variable[21] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[18] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[18] /*sc*/) /*MMLocalClass::global*/;
-      variable[20] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[20],COLOR_abstract_collection___Map_____bra))(variable[20], variable[21]) /*CoupleMap::[]*/;
+      variable[20] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+      variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[18] /*sc*/)( variable[18] /*sc*/) /*MMLocalClass::global*/;
+      variable[20] = CALL_abstract_collection___Map_____bra(variable[20])(variable[20], variable[21]) /*CoupleMap::[]*/;
       variable[19] = variable[20];
-      variable[20] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[19] /*scc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[19] /*scc*/) /*CompiledClass::class_table*/;
-      variable[20] = ((array___Collection___to_a_t)CALL(variable[20],COLOR_array___Collection___to_a))(variable[20]) /*Collection::to_a*/;
-      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable[17] /*cc*/, variable[20]) /*CompiledClass::class_table=*/;
-      variable[21] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/;
-      variable[21] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[21],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[21]) /*MMGlobalClass::intro*/;
+      variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::class_table*/;
+      variable[20] = CALL_array___Collection___to_a(variable[20])(variable[20]) /*Collection::to_a*/;
+      CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[20]) /*CompiledClass::class_table=*/;
+      variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
+      variable[21] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[21])(variable[21]) /*MMGlobalClass::intro*/;
       variable[20] = variable[21];
       variable[21] = TAG_Bool(( variable[20] /*bc*/==NIT_NULL) || VAL_ISA( variable[20] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
-      if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 263); nit_exit(1);}
-      variable[22] = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable[20] /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
+      if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 252); nit_exit(1);}
+      variable[22] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[20] /*bc*/)( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
       variable[21] = variable[22];
-      variable[23] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-      variable[23] = ((array___AbstractArray___length_t)CALL(variable[23],COLOR_abstract_collection___Collection___length))(variable[23]) /*AbstractArray::length*/;
+      variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+      variable[23] = CALL_abstract_collection___Collection___length(variable[23])(variable[23]) /*AbstractArray::length*/;
       variable[22] = variable[23];
-      ((compiling_global___ColorContext___color__eq_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___ColorContext___color__eq))( variable[3] /*ga*/,  variable[21] /*colpos*/,  variable[22] /*colposcolor*/) /*ColorContext::color=*/;
-      variable[23] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-      ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  variable[21] /*colpos*/) /*AbstractArray::add*/;
+      CALL_compiling_global___ColorContext___color__eq( variable[3] /*ga*/)( variable[3] /*ga*/,  variable[21] /*colpos*/,  variable[22] /*colposcolor*/) /*ColorContext::color=*/;
+      variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  variable[21] /*colpos*/) /*AbstractArray::add*/;
       variable[23] = TAG_Bool(UNTAG_Int( variable[13] /*maxcolor*/)<UNTAG_Int( variable[22] /*colposcolor*/));
       if (UNTAG_Bool(variable[23])) { /*if*/
         variable[13] =  variable[22] /*colposcolor*/ /*maxcolor=*/;
       }
     }
     continue_15: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
   }
   break_15: while(0);
   variable[14] = TAG_Int(UNTAG_Int( variable[13] /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
-  ((compiling_global___GlobalAnalysis___max_class_table_length__eq_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___max_class_table_length__eq))( variable[3] /*ga*/, variable[14]) /*GlobalAnalysis::max_class_table_length=*/;
-  variable[14] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*classes*/) /*AbstractArray::iterator*/;
+  CALL_compiling_global___GlobalAnalysis___max_class_table_length__eq( variable[3] /*ga*/)( variable[3] /*ga*/, variable[14]) /*GlobalAnalysis::max_class_table_length=*/;
+  variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/;
+    variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[15])) break; /*for*/
-    variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/;
+    variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
     variable[16] = variable[15];
-    variable[18] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-    variable[19] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/;
-    variable[18] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[18],COLOR_abstract_collection___Map_____bra))(variable[18], variable[19]) /*CoupleMap::[]*/;
+    variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
+    variable[18] = CALL_abstract_collection___Map_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
     variable[17] = variable[18];
     variable[19] = NEW_TableEltComposite_compiling_global___TableEltComposite___init( variable[17] /*cc*/); /*new TableEltComposite*/
     variable[18] = variable[19];
     variable[20] = NEW_TableEltComposite_compiling_global___TableEltComposite___init( variable[17] /*cc*/); /*new TableEltComposite*/
     variable[19] = variable[20];
-    variable[20] = ((abstractmetamodel___MMLocalClass___crhe_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___crhe))( variable[16] /*c*/) /*MMLocalClass::crhe*/;
-    variable[20] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[20],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[20]) /*PartialOrderElement::greaters_and_self*/;
-    variable[20] = ((abstract_collection___Collection___iterator_t)CALL(variable[20],COLOR_abstract_collection___Collection___iterator))(variable[20]) /*Collection::iterator*/;
+    variable[20] = CALL_abstractmetamodel___MMLocalClass___crhe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::crhe*/;
+    variable[20] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[20])(variable[20]) /*PartialOrderElement::greaters_and_self*/;
+    variable[20] = CALL_abstract_collection___Collection___iterator(variable[20])(variable[20]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[21] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[20],COLOR_abstract_collection___Iterator___is_ok))(variable[20]) /*Iterator::is_ok*/;
+      variable[21] = CALL_abstract_collection___Iterator___is_ok(variable[20])(variable[20]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[21])) break; /*for*/
-      variable[21] = ((abstract_collection___Iterator___item_t)CALL(variable[20],COLOR_abstract_collection___Iterator___item))(variable[20]) /*Iterator::item*/;
+      variable[21] = CALL_abstract_collection___Iterator___item(variable[20])(variable[20]) /*Iterator::item*/;
       variable[22] = variable[21];
       variable[23] = TAG_Bool(( variable[22] /*sc*/==NIT_NULL) || VAL_ISA( variable[22] /*sc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
       if (UNTAG_Bool(variable[23])) { /*if*/
-        variable[23] = ((compiling_global___MMSrcLocalClass___class_layout_t)CALL( variable[22] /*sc*/,COLOR_compiling_global___MMSrcLocalClass___class_layout))( variable[22] /*sc*/) /*MMSrcLocalClass::class_layout*/;
-        ((compiling_global___TableEltComposite___add_t)CALL( variable[18] /*cte*/,COLOR_compiling_global___TableEltComposite___add))( variable[18] /*cte*/,  variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
-        variable[23] = ((compiling_global___MMSrcLocalClass___instance_layout_t)CALL( variable[22] /*sc*/,COLOR_compiling_global___MMSrcLocalClass___instance_layout))( variable[22] /*sc*/) /*MMSrcLocalClass::instance_layout*/;
-        ((compiling_global___TableEltComposite___add_t)CALL( variable[19] /*ite*/,COLOR_compiling_global___TableEltComposite___add))( variable[19] /*ite*/,  variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
+        variable[23] = CALL_compiling_global___MMSrcLocalClass___class_layout( variable[22] /*sc*/)( variable[22] /*sc*/) /*MMSrcLocalClass::class_layout*/;
+        CALL_compiling_global___TableEltComposite___add( variable[18] /*cte*/)( variable[18] /*cte*/,  variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
+        variable[23] = CALL_compiling_global___MMSrcLocalClass___instance_layout( variable[22] /*sc*/)( variable[22] /*sc*/) /*MMSrcLocalClass::instance_layout*/;
+        CALL_compiling_global___TableEltComposite___add( variable[19] /*ite*/)( variable[19] /*ite*/,  variable[22] /*sc*/, variable[23]) /*TableEltComposite::add*/;
       }
-      ((compiling_global___CompiledClass___class_layout__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_layout__eq))( variable[17] /*cc*/,  variable[18] /*cte*/) /*CompiledClass::class_layout=*/;
-      ((compiling_global___CompiledClass___instance_layout__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_layout__eq))( variable[17] /*cc*/,  variable[19] /*ite*/) /*CompiledClass::instance_layout=*/;
+      CALL_compiling_global___CompiledClass___class_layout__eq( variable[17] /*cc*/)( variable[17] /*cc*/,  variable[18] /*cte*/) /*CompiledClass::class_layout=*/;
+      CALL_compiling_global___CompiledClass___instance_layout__eq( variable[17] /*cc*/)( variable[17] /*cc*/,  variable[19] /*ite*/) /*CompiledClass::instance_layout=*/;
       continue_17: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[20],COLOR_abstract_collection___Iterator___next))(variable[20]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[20])(variable[20]) /*Iterator::next*/;
     }
     break_17: while(0);
-    variable[20] = ((hash___HashSet___has_t)CALL( variable[12] /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable[12] /*core_classes*/,  variable[16] /*c*/) /*HashSet::has*/;
+    variable[20] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/,  variable[16] /*c*/) /*HashSet::has*/;
     if (UNTAG_Bool(variable[20])) { /*if*/
-      variable[20] = ((compiling_global___TableEltComposite___length_t)CALL( variable[18] /*cte*/,COLOR_compiling_global___TableElt___length))( variable[18] /*cte*/) /*TableEltComposite::length*/;
+      variable[20] = CALL_compiling_global___TableElt___length( variable[18] /*cte*/)( variable[18] /*cte*/) /*TableEltComposite::length*/;
       variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0)));
       if (UNTAG_Bool(variable[20])) { /*if*/
-        ((array___AbstractArray___add_t)CALL( variable[6] /*ctab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*ctab*/,  variable[18] /*cte*/) /*AbstractArray::add*/;
-      }
-      variable[20] = ((compiling_base___ToolContext___attr_sim_t)CALL( variable[1] /*cctx*/,COLOR_compiling_base___ToolContext___attr_sim))( variable[1] /*cctx*/) /*ToolContext::attr_sim*/;
-      variable[20] =  TAG_Bool(!UNTAG_Bool(variable[20]));
-      if (UNTAG_Bool(variable[20])) { /* and */
-        variable[20] = ((compiling_global___TableEltComposite___length_t)CALL( variable[19] /*ite*/,COLOR_compiling_global___TableElt___length))( variable[19] /*ite*/) /*TableEltComposite::length*/;
-        variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0)));
+        CALL_abstract_collection___SimpleCollection___add( variable[6] /*ctab*/)( variable[6] /*ctab*/,  variable[18] /*cte*/) /*AbstractArray::add*/;
       }
+      variable[20] = CALL_compiling_global___TableElt___length( variable[19] /*ite*/)( variable[19] /*ite*/) /*TableEltComposite::length*/;
+      variable[20] = TAG_Bool(UNTAG_Int(variable[20])>UNTAG_Int( TAG_Int(0)));
       if (UNTAG_Bool(variable[20])) { /*if*/
-        ((array___AbstractArray___add_t)CALL( variable[7] /*itab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*itab*/,  variable[19] /*ite*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[7] /*itab*/)( variable[7] /*itab*/,  variable[19] /*ite*/) /*AbstractArray::add*/;
       }
     }
     continue_16: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
   }
   break_16: while(0);
   variable[14] = variable[0];
   variable[15] = TAG_Int(UNTAG_Int( variable[13] /*maxcolor*/)+UNTAG_Int( TAG_Int(1)));
-  ((compiling_global___MMSrcModule___colorize_t)CALL(variable[14],COLOR_compiling_global___MMSrcModule___colorize))(variable[14],  variable[3] /*ga*/,  variable[6] /*ctab*/,  variable[11] /*crown_classes*/, variable[15]) /*MMSrcModule::colorize*/;
+  CALL_compiling_global___MMSrcModule___colorize(variable[14])(variable[14],  variable[3] /*ga*/,  variable[6] /*ctab*/,  variable[11] /*crown_classes*/, variable[15]) /*MMSrcModule::colorize*/;
   variable[14] = variable[0];
-  ((compiling_global___MMSrcModule___colorize_t)CALL(variable[14],COLOR_compiling_global___MMSrcModule___colorize))(variable[14],  variable[3] /*ga*/,  variable[7] /*itab*/,  variable[11] /*crown_classes*/,  TAG_Int(0)) /*MMSrcModule::colorize*/;
-  ((compiling_global___GlobalAnalysis___max_class_table_length__eq_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___max_class_table_length__eq))( variable[3] /*ga*/,  TAG_Int(0)) /*GlobalAnalysis::max_class_table_length=*/;
-  variable[14] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*classes*/) /*AbstractArray::iterator*/;
+  CALL_compiling_global___MMSrcModule___colorize(variable[14])(variable[14],  variable[3] /*ga*/,  variable[7] /*itab*/,  variable[11] /*crown_classes*/,  TAG_Int(0)) /*MMSrcModule::colorize*/;
+  CALL_compiling_global___GlobalAnalysis___max_class_table_length__eq( variable[3] /*ga*/)( variable[3] /*ga*/,  TAG_Int(0)) /*GlobalAnalysis::max_class_table_length=*/;
+  variable[14] = CALL_abstract_collection___Collection___iterator( variable[10] /*classes*/)( variable[10] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/;
+    variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[15])) break; /*for*/
-    variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/;
+    variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
     variable[16] = variable[15];
-    variable[18] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-    variable[19] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/;
-    variable[18] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[18],COLOR_abstract_collection___Map_____bra))(variable[18], variable[19]) /*CoupleMap::[]*/;
+    variable[18] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+    variable[19] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
+    variable[18] = CALL_abstract_collection___Map_____bra(variable[18])(variable[18], variable[19]) /*CoupleMap::[]*/;
     variable[17] = variable[18];
-    variable[18] = ((hash___HashSet___has_t)CALL( variable[12] /*core_classes*/,COLOR_abstract_collection___Collection___has))( variable[12] /*core_classes*/,  variable[16] /*c*/) /*HashSet::has*/;
+    variable[18] = CALL_abstract_collection___Collection___has( variable[12] /*core_classes*/)( variable[12] /*core_classes*/,  variable[16] /*c*/) /*HashSet::has*/;
     if (UNTAG_Bool(variable[18])) { /*if*/
       variable[18] = variable[0];
-      variable[18] = ((compiling_global___MMSrcModule___build_tables_t)CALL(variable[18],COLOR_compiling_global___MMSrcModule___build_tables))(variable[18],  variable[3] /*ga*/,  variable[16] /*c*/,  variable[6] /*ctab*/) /*MMSrcModule::build_tables*/;
-      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/;
+      variable[18] = CALL_compiling_global___MMSrcModule___build_tables(variable[18])(variable[18],  variable[3] /*ga*/,  variable[16] /*c*/,  variable[6] /*ctab*/) /*MMSrcModule::build_tables*/;
+      CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[18]) /*CompiledClass::class_table=*/;
       variable[18] = variable[0];
-      variable[18] = ((compiling_global___MMSrcModule___build_tables_t)CALL(variable[18],COLOR_compiling_global___MMSrcModule___build_tables))(variable[18],  variable[3] /*ga*/,  variable[16] /*c*/,  variable[7] /*itab*/) /*MMSrcModule::build_tables*/;
-      ((compiling_global___CompiledClass___instance_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table__eq))( variable[17] /*cc*/, variable[18]) /*CompiledClass::instance_table=*/;
+      variable[18] = CALL_compiling_global___MMSrcModule___build_tables(variable[18])(variable[18],  variable[3] /*ga*/,  variable[16] /*c*/,  variable[7] /*itab*/) /*MMSrcModule::build_tables*/;
+      CALL_compiling_global___CompiledClass___instance_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[18]) /*CompiledClass::instance_table=*/;
     } else { /*if*/
-      variable[19] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[16] /*c*/) /*MMLocalClass::cshe*/;
-      variable[19] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[19],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[19]) /*PartialOrderElement::direct_greaters*/;
-      variable[19] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[19],COLOR_abstract_collection___Collection___first))(variable[19]) /*IndexedCollection::first*/;
+      variable[19] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::cshe*/;
+      variable[19] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[19])(variable[19]) /*PartialOrderElement::direct_greaters*/;
+      variable[19] = CALL_abstract_collection___Collection___first(variable[19])(variable[19]) /*IndexedCollection::first*/;
       variable[18] = variable[19];
-      variable[20] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-      variable[21] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[18] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[18] /*sc*/) /*MMLocalClass::global*/;
-      variable[20] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[20],COLOR_abstract_collection___Map_____bra))(variable[20], variable[21]) /*CoupleMap::[]*/;
+      variable[20] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[3] /*ga*/)( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+      variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[18] /*sc*/)( variable[18] /*sc*/) /*MMLocalClass::global*/;
+      variable[20] = CALL_abstract_collection___Map_____bra(variable[20])(variable[20], variable[21]) /*CoupleMap::[]*/;
       variable[19] = variable[20];
-      variable[20] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[19] /*scc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[19] /*scc*/) /*CompiledClass::class_table*/;
-      variable[20] = ((array___Collection___to_a_t)CALL(variable[20],COLOR_array___Collection___to_a))(variable[20]) /*Collection::to_a*/;
-      ((compiling_global___CompiledClass___class_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table__eq))( variable[17] /*cc*/, variable[20]) /*CompiledClass::class_table=*/;
-      variable[21] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[16] /*c*/) /*MMLocalClass::global*/;
-      variable[21] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[21],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[21]) /*MMGlobalClass::intro*/;
+      variable[20] = CALL_compiling_global___CompiledClass___class_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::class_table*/;
+      variable[20] = CALL_array___Collection___to_a(variable[20])(variable[20]) /*Collection::to_a*/;
+      CALL_compiling_global___CompiledClass___class_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[20]) /*CompiledClass::class_table=*/;
+      variable[21] = CALL_abstractmetamodel___MMLocalClass___global( variable[16] /*c*/)( variable[16] /*c*/) /*MMLocalClass::global*/;
+      variable[21] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[21])(variable[21]) /*MMGlobalClass::intro*/;
       variable[20] = variable[21];
       variable[21] = TAG_Bool(( variable[20] /*bc*/==NIT_NULL) || VAL_ISA( variable[20] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
-      if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 315); nit_exit(1);}
-      variable[22] = ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL( variable[20] /*bc*/,COLOR_compiling_global___MMSrcLocalClass___class_color_pos))( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
+      if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___global_analysis, LOCATE_compiling_global, 304); nit_exit(1);}
+      variable[22] = CALL_compiling_global___MMSrcLocalClass___class_color_pos( variable[20] /*bc*/)( variable[20] /*bc*/) /*MMSrcLocalClass::class_color_pos*/;
       variable[21] = variable[22];
-      variable[22] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-      variable[23] = ((compiling_global___ColorContext___color_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[3] /*ga*/,  variable[21] /*colpos*/) /*ColorContext::color*/;
-      ((array___Array_____braeq_t)CALL(variable[22],COLOR_abstract_collection___Map_____braeq))(variable[22], variable[23],  variable[21] /*colpos*/) /*Array::[]=*/;
+      variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+      variable[23] = CALL_compiling_global___ColorContext___color( variable[3] /*ga*/)( variable[3] /*ga*/,  variable[21] /*colpos*/) /*ColorContext::color*/;
+      CALL_abstract_collection___Map_____braeq(variable[22])(variable[22], variable[23],  variable[21] /*colpos*/) /*Array::[]=*/;
       while (true) { /*while*/
-        variable[22] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-        variable[22] = ((array___AbstractArray___length_t)CALL(variable[22],COLOR_abstract_collection___Collection___length))(variable[22]) /*AbstractArray::length*/;
+        variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+        variable[22] = CALL_abstract_collection___Collection___length(variable[22])(variable[22]) /*AbstractArray::length*/;
         variable[22] = TAG_Bool(UNTAG_Int(variable[22])<=UNTAG_Int( variable[13] /*maxcolor*/));
         if (!UNTAG_Bool(variable[22])) break; /* while*/
-        variable[22] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-        ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  NIT_NULL /*null*/) /*AbstractArray::add*/;
+        variable[22] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  NIT_NULL /*null*/) /*AbstractArray::add*/;
         continue_19: while(0);
       }
       break_19: while(0);
       variable[22] = variable[0];
-      variable[23] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[17] /*cc*/) /*CompiledClass::class_table*/;
-      variable[24] = ((compiling_global___CompiledClass___class_layout_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___class_layout))( variable[17] /*cc*/) /*CompiledClass::class_layout*/;
-      ((compiling_global___MMSrcModule___append_to_table_t)CALL(variable[22],COLOR_compiling_global___MMSrcModule___append_to_table))(variable[22],  variable[3] /*ga*/, variable[23], variable[24]) /*MMSrcModule::append_to_table*/;
-      variable[22] = ((compiling_global___CompiledClass___instance_table_t)CALL( variable[19] /*scc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable[19] /*scc*/) /*CompiledClass::instance_table*/;
-      variable[22] = ((array___Collection___to_a_t)CALL(variable[22],COLOR_array___Collection___to_a))(variable[22]) /*Collection::to_a*/;
-      ((compiling_global___CompiledClass___instance_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table__eq))( variable[17] /*cc*/, variable[22]) /*CompiledClass::instance_table=*/;
+      variable[23] = CALL_compiling_global___CompiledClass___class_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_table*/;
+      variable[24] = CALL_compiling_global___CompiledClass___class_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::class_layout*/;
+      CALL_compiling_global___MMSrcModule___append_to_table(variable[22])(variable[22],  variable[3] /*ga*/, variable[23], variable[24]) /*MMSrcModule::append_to_table*/;
+      variable[22] = CALL_compiling_global___CompiledClass___instance_table( variable[19] /*scc*/)( variable[19] /*scc*/) /*CompiledClass::instance_table*/;
+      variable[22] = CALL_array___Collection___to_a(variable[22])(variable[22]) /*Collection::to_a*/;
+      CALL_compiling_global___CompiledClass___instance_table__eq( variable[17] /*cc*/)( variable[17] /*cc*/, variable[22]) /*CompiledClass::instance_table=*/;
       variable[22] = variable[0];
-      variable[23] = ((compiling_global___CompiledClass___instance_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
-      variable[24] = ((compiling_global___CompiledClass___instance_layout_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_layout))( variable[17] /*cc*/) /*CompiledClass::instance_layout*/;
-      ((compiling_global___MMSrcModule___append_to_table_t)CALL(variable[22],COLOR_compiling_global___MMSrcModule___append_to_table))(variable[22],  variable[3] /*ga*/, variable[23], variable[24]) /*MMSrcModule::append_to_table*/;
-    }
-    variable[18] = ((compiling_base___ToolContext___attr_sim_t)CALL( variable[1] /*cctx*/,COLOR_compiling_base___ToolContext___attr_sim))( variable[1] /*cctx*/) /*ToolContext::attr_sim*/;
-    if (UNTAG_Bool(variable[18])) { /*if*/
-      variable[18] = variable[0];
-      variable[18] = ((compiling_global___MMSrcModule___build_tables_t)CALL(variable[18],COLOR_compiling_global___MMSrcModule___build_tables))(variable[18],  variable[3] /*ga*/,  variable[16] /*c*/,  variable[7] /*itab*/) /*MMSrcModule::build_tables*/;
-      ((compiling_global___CompiledClass___instance_table__eq_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table__eq))( variable[17] /*cc*/, variable[18]) /*CompiledClass::instance_table=*/;
-      variable[18] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[16] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[16] /*c*/) /*MMLocalClass::cshe*/;
-      variable[18] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[18],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[18]) /*PartialOrderElement::greaters_and_self*/;
-      variable[18] = ((abstract_collection___Collection___iterator_t)CALL(variable[18],COLOR_abstract_collection___Collection___iterator))(variable[18]) /*Collection::iterator*/;
-      while (true) { /*for*/
-        variable[19] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[18],COLOR_abstract_collection___Iterator___is_ok))(variable[18]) /*Iterator::is_ok*/;
-        if (!UNTAG_Bool(variable[19])) break; /*for*/
-        variable[19] = ((abstract_collection___Iterator___item_t)CALL(variable[18],COLOR_abstract_collection___Iterator___item))(variable[18]) /*Iterator::item*/;
-        variable[20] = variable[19];
-        variable[22] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[3] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[3] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-        variable[23] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[20] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[20] /*sc*/) /*MMLocalClass::global*/;
-        variable[22] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[22],COLOR_abstract_collection___Map_____bra))(variable[22], variable[23]) /*CoupleMap::[]*/;
-        variable[21] = variable[22];
-        variable[22] = variable[0];
-        variable[23] = ((compiling_global___CompiledClass___instance_table_t)CALL( variable[17] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
-        variable[24] = ((compiling_global___CompiledClass___instance_layout_t)CALL( variable[21] /*scc*/,COLOR_compiling_global___CompiledClass___instance_layout))( variable[21] /*scc*/) /*CompiledClass::instance_layout*/;
-        ((compiling_global___MMSrcModule___append_to_table_t)CALL(variable[22],COLOR_compiling_global___MMSrcModule___append_to_table))(variable[22],  variable[17] /*cc*/, variable[23], variable[24]) /*MMSrcModule::append_to_table*/;
-        continue_20: while(0);
-        ((abstract_collection___Iterator___next_t)CALL(variable[18],COLOR_abstract_collection___Iterator___next))(variable[18]) /*Iterator::next*/;
-      }
-      break_20: while(0);
+      variable[23] = CALL_compiling_global___CompiledClass___instance_table( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_table*/;
+      variable[24] = CALL_compiling_global___CompiledClass___instance_layout( variable[17] /*cc*/)( variable[17] /*cc*/) /*CompiledClass::instance_layout*/;
+      CALL_compiling_global___MMSrcModule___append_to_table(variable[22])(variable[22],  variable[3] /*ga*/, variable[23], variable[24]) /*MMSrcModule::append_to_table*/;
     }
     continue_18: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
   }
   break_18: while(0);
   variable[2] =  variable[3] /*ga*/;
@@ -830,7 +758,7 @@ val_t compiling_global___MMSrcModule___global_analysis(val_t  self, val_t  param
   return variable[2];
 }
 void compiling_global___MMSrcModule___append_to_table(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 338, LOCATE_compiling_global___MMSrcModule___append_to_table};
+  struct trace_t trace = {NULL, NULL, 319, LOCATE_compiling_global___MMSrcModule___append_to_table};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -839,30 +767,30 @@ void compiling_global___MMSrcModule___append_to_table(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[5] = ((compiling_global___TableEltComposite___length_t)CALL( variable[3] /*cmp*/,COLOR_compiling_global___TableElt___length))( variable[3] /*cmp*/) /*TableEltComposite::length*/;
+  variable[5] = CALL_compiling_global___TableElt___length( variable[3] /*cmp*/)( variable[3] /*cmp*/) /*TableEltComposite::length*/;
   variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/
   variable[5] = variable[6];
-  variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
-    variable[9] = ((compiling_global___TableEltComposite___item_t)CALL( variable[3] /*cmp*/,COLOR_compiling_global___TableElt___item))( variable[3] /*cmp*/,  variable[7] /*j*/) /*TableEltComposite::item*/;
+    variable[9] = CALL_compiling_global___TableElt___item( variable[3] /*cmp*/)( variable[3] /*cmp*/,  variable[7] /*j*/) /*TableEltComposite::item*/;
     variable[8] = variable[9];
-    variable[9] = ((array___AbstractArray___length_t)CALL( variable[2] /*table*/,COLOR_abstract_collection___Collection___length))( variable[2] /*table*/) /*AbstractArray::length*/;
-    ((compiling_global___ColorContext___color__eq_t)CALL( variable[1] /*cc*/,COLOR_compiling_global___ColorContext___color__eq))( variable[1] /*cc*/,  variable[8] /*e*/, variable[9]) /*ColorContext::color=*/;
-    ((array___AbstractArray___add_t)CALL( variable[2] /*table*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*table*/,  variable[8] /*e*/) /*AbstractArray::add*/;
-    continue_22: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    variable[9] = CALL_abstract_collection___Collection___length( variable[2] /*table*/)( variable[2] /*table*/) /*AbstractArray::length*/;
+    CALL_compiling_global___ColorContext___color__eq( variable[1] /*cc*/)( variable[1] /*cc*/,  variable[8] /*e*/, variable[9]) /*ColorContext::color=*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*table*/)( variable[2] /*table*/,  variable[8] /*e*/) /*AbstractArray::add*/;
+    continue_21: while(0);
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
-  break_22: while(0);
-  return_label21: while(false);
+  break_21: while(0);
+  return_label20: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_global___MMSrcModule___build_tables(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 347, LOCATE_compiling_global___MMSrcModule___build_tables};
+  struct trace_t trace = {NULL, NULL, 328, LOCATE_compiling_global___MMSrcModule___build_tables};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -874,72 +802,72 @@ val_t compiling_global___MMSrcModule___build_tables(val_t  self, val_t  param0,
   variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Int, TableElt]*/
   variable[5] = variable[6];
   variable[6] =  TAG_Int(0);
-  variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*elts*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*elts*/) /*AbstractArray::iterator*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*elts*/)( variable[3] /*elts*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
-    variable[10] = ((compiling_global___TableElt___is_related_to_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___is_related_to))( variable[9] /*e*/,  variable[2] /*c*/) /*TableElt::is_related_to*/;
+    variable[10] = CALL_compiling_global___TableElt___is_related_to( variable[9] /*e*/)( variable[9] /*e*/,  variable[2] /*c*/) /*TableElt::is_related_to*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
-      variable[11] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/,  variable[9] /*e*/) /*ColorContext::color*/;
+      variable[11] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/,  variable[9] /*e*/) /*ColorContext::color*/;
       variable[10] = variable[11];
-      variable[12] = ((compiling_global___TableElt___length_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___length))( variable[9] /*e*/) /*TableElt::length*/;
+      variable[12] = CALL_compiling_global___TableElt___length( variable[9] /*e*/)( variable[9] /*e*/) /*TableElt::length*/;
       variable[12] = TAG_Int(UNTAG_Int( variable[10] /*col*/)+UNTAG_Int(variable[12]));
       variable[11] = variable[12];
-      ((hash___HashMap_____braeq_t)CALL( variable[5] /*tab*/,COLOR_abstract_collection___Map_____braeq))( variable[5] /*tab*/,  variable[10] /*col*/,  variable[9] /*e*/) /*HashMap::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[5] /*tab*/)( variable[5] /*tab*/,  variable[10] /*col*/,  variable[9] /*e*/) /*HashMap::[]=*/;
       variable[12] = TAG_Bool(UNTAG_Int( variable[6] /*len*/)<UNTAG_Int( variable[11] /*l*/));
       if (UNTAG_Bool(variable[12])) { /*if*/
         variable[6] =  variable[11] /*l*/ /*len=*/;
       }
     }
-    continue_24: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    continue_23: while(0);
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
-  break_24: while(0);
+  break_23: while(0);
   variable[8] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
   variable[7] = variable[8];
   variable[8] =  TAG_Int(0);
   while (true) { /*while*/
     variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*i*/)<UNTAG_Int( variable[6] /*len*/));
     if (!UNTAG_Bool(variable[9])) break; /* while*/
-    variable[9] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[5] /*tab*/,COLOR_abstract_collection___Map___has_key))( variable[5] /*tab*/,  variable[8] /*i*/) /*CoupleMap::has_key*/;
+    variable[9] = CALL_abstract_collection___Map___has_key( variable[5] /*tab*/)( variable[5] /*tab*/,  variable[8] /*i*/) /*CoupleMap::has_key*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
-      variable[10] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[5] /*tab*/,COLOR_abstract_collection___Map_____bra))( variable[5] /*tab*/,  variable[8] /*i*/) /*CoupleMap::[]*/;
+      variable[10] = CALL_abstract_collection___Map_____bra( variable[5] /*tab*/)( variable[5] /*tab*/,  variable[8] /*i*/) /*CoupleMap::[]*/;
       variable[9] = variable[10];
-      variable[10] = ((compiling_global___TableElt___length_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___length))( variable[9] /*e*/) /*TableElt::length*/;
+      variable[10] = CALL_compiling_global___TableElt___length( variable[9] /*e*/)( variable[9] /*e*/) /*TableElt::length*/;
       variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[10]); /*new Range[Int]*/
       variable[10] = variable[11];
-      variable[10] = ((range___Range___iterator_t)CALL(variable[10],COLOR_abstract_collection___Collection___iterator))(variable[10]) /*Range::iterator*/;
+      variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*Range::iterator*/;
       while (true) { /*for*/
-        variable[11] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*Iterator::is_ok*/;
+        variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
         if (!UNTAG_Bool(variable[11])) break; /*for*/
-        variable[11] = ((abstract_collection___Iterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*Iterator::item*/;
+        variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/;
         variable[12] = variable[11];
-        variable[13] = ((compiling_global___TableElt___item_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___item))( variable[9] /*e*/,  variable[12] /*j*/) /*TableElt::item*/;
-        ((array___Array_____braeq_t)CALL( variable[7] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[7] /*res*/,  variable[8] /*i*/, variable[13]) /*Array::[]=*/;
+        variable[13] = CALL_compiling_global___TableElt___item( variable[9] /*e*/)( variable[9] /*e*/,  variable[12] /*j*/) /*TableElt::item*/;
+        CALL_abstract_collection___Map_____braeq( variable[7] /*res*/)( variable[7] /*res*/,  variable[8] /*i*/, variable[13]) /*Array::[]=*/;
         variable[13] = TAG_Int(UNTAG_Int( variable[8] /*i*/)+UNTAG_Int( TAG_Int(1)));
         variable[8] = variable[13] /*i=*/;
-        continue_26: while(0);
-        ((abstract_collection___Iterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*Iterator::next*/;
+        continue_25: while(0);
+        CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
       }
-      break_26: while(0);
+      break_25: while(0);
     } else { /*if*/
-      ((array___Array_____braeq_t)CALL( variable[7] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[7] /*res*/,  variable[8] /*i*/,  NIT_NULL /*null*/) /*Array::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[7] /*res*/)( variable[7] /*res*/,  variable[8] /*i*/,  NIT_NULL /*null*/) /*Array::[]=*/;
       variable[9] = TAG_Int(UNTAG_Int( variable[8] /*i*/)+UNTAG_Int( TAG_Int(1)));
       variable[8] = variable[9] /*i=*/;
     }
-    continue_25: while(0);
+    continue_24: while(0);
   }
-  break_25: while(0);
+  break_24: while(0);
   variable[4] =  variable[7] /*res*/;
-  goto return_label23;
-  return_label23: while(false);
+  goto return_label22;
+  return_label22: while(false);
   tracehead = trace.prev;
   return variable[4];
 }
 void compiling_global___MMSrcModule___colorize(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
-  struct trace_t trace = {NULL, NULL, 378, LOCATE_compiling_global___MMSrcModule___colorize};
+  struct trace_t trace = {NULL, NULL, 359, LOCATE_compiling_global___MMSrcModule___colorize};
   val_t variable[21];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -953,59 +881,59 @@ void compiling_global___MMSrcModule___colorize(val_t  self, val_t  param0, val_t
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
   variable[7] = variable[8];
-  variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*elts*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*elts*/) /*AbstractArray::iterator*/;
+  variable[8] = CALL_abstract_collection___Collection___iterator( variable[2] /*elts*/)( variable[2] /*elts*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
+    variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[9])) break; /*for*/
-    variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
+    variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
     variable[10] = variable[9];
     variable[12] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
     variable[11] = variable[12];
-    variable[13] = ((compiling_global___TableElt___length_t)CALL( variable[10] /*e*/,COLOR_compiling_global___TableElt___length))( variable[10] /*e*/) /*TableElt::length*/;
+    variable[13] = CALL_compiling_global___TableElt___length( variable[10] /*e*/)( variable[10] /*e*/) /*TableElt::length*/;
     variable[12] = variable[13];
-    variable[13] = ((compiling_global___ColorContext___has_color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___has_color))( variable[1] /*ga*/,  variable[10] /*e*/) /*ColorContext::has_color*/;
+    variable[13] = CALL_compiling_global___ColorContext___has_color( variable[1] /*ga*/)( variable[1] /*ga*/,  variable[10] /*e*/) /*ColorContext::has_color*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
-      variable[13] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/,  variable[10] /*e*/) /*ColorContext::color*/;
+      variable[13] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/,  variable[10] /*e*/) /*ColorContext::color*/;
       variable[11] = variable[13] /*color=*/;
     } else { /*if*/
-      ((array___AbstractArray___clear_t)CALL( variable[7] /*rel_classes*/,COLOR_abstract_collection___RemovableCollection___clear))( variable[7] /*rel_classes*/) /*AbstractArray::clear*/;
-      variable[13] = ((abstract_collection___Collection___iterator_t)CALL( variable[3] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*classes*/) /*Collection::iterator*/;
+      CALL_abstract_collection___RemovableCollection___clear( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/) /*AbstractArray::clear*/;
+      variable[13] = CALL_abstract_collection___Collection___iterator( variable[3] /*classes*/)( variable[3] /*classes*/) /*Collection::iterator*/;
       while (true) { /*for*/
-        variable[14] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[13],COLOR_abstract_collection___Iterator___is_ok))(variable[13]) /*Iterator::is_ok*/;
+        variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*Iterator::is_ok*/;
         if (!UNTAG_Bool(variable[14])) break; /*for*/
-        variable[14] = ((abstract_collection___Iterator___item_t)CALL(variable[13],COLOR_abstract_collection___Iterator___item))(variable[13]) /*Iterator::item*/;
+        variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*Iterator::item*/;
         variable[15] = variable[14];
-        variable[16] = ((compiling_global___TableElt___is_related_to_t)CALL( variable[10] /*e*/,COLOR_compiling_global___TableElt___is_related_to))( variable[10] /*e*/,  variable[15] /*c*/) /*TableElt::is_related_to*/;
+        variable[16] = CALL_compiling_global___TableElt___is_related_to( variable[10] /*e*/)( variable[10] /*e*/,  variable[15] /*c*/) /*TableElt::is_related_to*/;
         if (UNTAG_Bool(variable[16])) { /*if*/
-          ((array___AbstractArray___add_t)CALL( variable[7] /*rel_classes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*rel_classes*/,  variable[15] /*c*/) /*AbstractArray::add*/;
+          CALL_abstract_collection___SimpleCollection___add( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/,  variable[15] /*c*/) /*AbstractArray::add*/;
         }
-        continue_29: while(0);
-        ((abstract_collection___Iterator___next_t)CALL(variable[13],COLOR_abstract_collection___Iterator___next))(variable[13]) /*Iterator::next*/;
+        continue_28: while(0);
+        CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*Iterator::next*/;
       }
-      break_29: while(0);
+      break_28: while(0);
       variable[13] =  variable[4] /*startcolor*/;
       while (true) { /*while*/
         variable[14] = TAG_Bool(( variable[13] /*trycolor*/)!=( variable[11] /*color*/));
         if (!UNTAG_Bool(variable[14])) break; /* while*/
         variable[11] =  variable[13] /*trycolor*/ /*color=*/;
-        variable[14] = ((array___AbstractArray___iterator_t)CALL( variable[7] /*rel_classes*/,COLOR_abstract_collection___Collection___iterator))( variable[7] /*rel_classes*/) /*AbstractArray::iterator*/;
+        variable[14] = CALL_abstract_collection___Collection___iterator( variable[7] /*rel_classes*/)( variable[7] /*rel_classes*/) /*AbstractArray::iterator*/;
         while (true) { /*for*/
-          variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/;
+          variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
           if (!UNTAG_Bool(variable[15])) break; /*for*/
-          variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/;
+          variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
           variable[16] = variable[15];
           variable[17] =  TAG_Int(0);
           while (true) { /*while*/
             variable[18] = TAG_Bool(UNTAG_Int( variable[17] /*idx*/)<UNTAG_Int( variable[12] /*len*/));
             if (!UNTAG_Bool(variable[18])) break; /* while*/
             variable[18] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
-            variable[18] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map___has_key))( variable[6] /*colors*/, variable[18]) /*CoupleMap::has_key*/;
+            variable[18] = CALL_abstract_collection___Map___has_key( variable[6] /*colors*/)( variable[6] /*colors*/, variable[18]) /*CoupleMap::has_key*/;
             variable[19] = variable[18];
             if (UNTAG_Bool(variable[19])) { /* and */
               variable[19] = variable[0];
               variable[20] = TAG_Int(UNTAG_Int( variable[13] /*trycolor*/)+UNTAG_Int( variable[17] /*idx*/));
-              variable[20] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map_____bra))( variable[6] /*colors*/, variable[20]) /*CoupleMap::[]*/;
-              variable[19] = ((compiling_global___MMSrcModule___free_color_t)CALL(variable[19],COLOR_compiling_global___MMSrcModule___free_color))(variable[19], variable[20],  variable[16] /*c*/) /*MMSrcModule::free_color*/;
+              variable[20] = CALL_abstract_collection___Map_____bra( variable[6] /*colors*/)( variable[6] /*colors*/, variable[20]) /*CoupleMap::[]*/;
+              variable[19] = CALL_compiling_global___MMSrcModule___free_color(variable[19])(variable[19], variable[20],  variable[16] /*c*/) /*MMSrcModule::free_color*/;
               variable[19] =  TAG_Bool(!UNTAG_Bool(variable[19]));
             }
             variable[18] = variable[19];
@@ -1018,51 +946,51 @@ void compiling_global___MMSrcModule___colorize(val_t  self, val_t  param0, val_t
               variable[18] = TAG_Int(UNTAG_Int( variable[17] /*idx*/)+UNTAG_Int( TAG_Int(1)));
               variable[17] = variable[18] /*idx=*/;
             }
-            continue_32: while(0);
+            continue_31: while(0);
           }
-          break_32: while(0);
-          continue_31: while(0);
-          ((array___ArrayIterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*ArrayIterator::next*/;
+          break_31: while(0);
+          continue_30: while(0);
+          CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
         }
-        break_31: while(0);
-        continue_30: while(0);
+        break_30: while(0);
+        continue_29: while(0);
       }
-      break_30: while(0);
-      ((compiling_global___ColorContext___color__eq_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color__eq))( variable[1] /*ga*/,  variable[10] /*e*/,  variable[11] /*color*/) /*ColorContext::color=*/;
+      break_29: while(0);
+      CALL_compiling_global___ColorContext___color__eq( variable[1] /*ga*/)( variable[1] /*ga*/,  variable[10] /*e*/,  variable[11] /*color*/) /*ColorContext::color=*/;
     }
     variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[12] /*len*/); /*new Range[Int]*/
-    variable[13] = ((range___Range___iterator_t)CALL(variable[13],COLOR_abstract_collection___Collection___iterator))(variable[13]) /*Range::iterator*/;
+    variable[13] = CALL_abstract_collection___Collection___iterator(variable[13])(variable[13]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[14] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[13],COLOR_abstract_collection___Iterator___is_ok))(variable[13]) /*Iterator::is_ok*/;
+      variable[14] = CALL_abstract_collection___Iterator___is_ok(variable[13])(variable[13]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[14])) break; /*for*/
-      variable[14] = ((abstract_collection___Iterator___item_t)CALL(variable[13],COLOR_abstract_collection___Iterator___item))(variable[13]) /*Iterator::item*/;
+      variable[14] = CALL_abstract_collection___Iterator___item(variable[13])(variable[13]) /*Iterator::item*/;
       variable[15] = variable[14];
       variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
-      variable[16] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map___has_key))( variable[6] /*colors*/, variable[16]) /*CoupleMap::has_key*/;
+      variable[16] = CALL_abstract_collection___Map___has_key( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16]) /*CoupleMap::has_key*/;
       if (UNTAG_Bool(variable[16])) { /*if*/
         variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
-        variable[16] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map_____bra))( variable[6] /*colors*/, variable[16]) /*CoupleMap::[]*/;
-        ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  variable[10] /*e*/) /*AbstractArray::add*/;
+        variable[16] = CALL_abstract_collection___Map_____bra( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16]) /*CoupleMap::[]*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  variable[10] /*e*/) /*AbstractArray::add*/;
       } else { /*if*/
         variable[16] = TAG_Int(UNTAG_Int( variable[11] /*color*/)+UNTAG_Int( variable[15] /*idx*/));
         variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[TableElt]*/
-        ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  variable[10] /*e*/) /*AbstractArray::add*/;
-        ((hash___HashMap_____braeq_t)CALL( variable[6] /*colors*/,COLOR_abstract_collection___Map_____braeq))( variable[6] /*colors*/, variable[16], variable[17]) /*HashMap::[]=*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  variable[10] /*e*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___Map_____braeq( variable[6] /*colors*/)( variable[6] /*colors*/, variable[16], variable[17]) /*HashMap::[]=*/;
       }
-      continue_33: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[13],COLOR_abstract_collection___Iterator___next))(variable[13]) /*Iterator::next*/;
+      continue_32: while(0);
+      CALL_abstract_collection___Iterator___next(variable[13])(variable[13]) /*Iterator::next*/;
     }
-    break_33: while(0);
-    continue_28: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
+    break_32: while(0);
+    continue_27: while(0);
+    CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
   }
-  break_28: while(0);
-  return_label27: while(false);
+  break_27: while(0);
+  return_label26: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_global___MMSrcModule___free_color(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 422, LOCATE_compiling_global___MMSrcModule___free_color};
+  struct trace_t trace = {NULL, NULL, 403, LOCATE_compiling_global___MMSrcModule___free_color};
   val_t variable[8];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1070,29 +998,29 @@ val_t compiling_global___MMSrcModule___free_color(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*es*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*es*/) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*es*/)( variable[1] /*es*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((compiling_global___TableElt___is_related_to_t)CALL( variable[6] /*e2*/,COLOR_compiling_global___TableElt___is_related_to))( variable[6] /*e2*/,  variable[2] /*c*/) /*TableElt::is_related_to*/;
+    variable[7] = CALL_compiling_global___TableElt___is_related_to( variable[6] /*e2*/)( variable[6] /*e2*/,  variable[2] /*c*/) /*TableElt::is_related_to*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[3] =  TAG_Bool(false);
-      goto return_label34;
+      goto return_label33;
     }
-    continue_35: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    continue_34: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
-  break_35: while(0);
+  break_34: while(0);
   variable[3] =  TAG_Bool(true);
-  goto return_label34;
-  return_label34: while(false);
+  goto return_label33;
+  return_label33: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 void compiling_global___MMSrcModule___compile_tables_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 432, LOCATE_compiling_global___MMSrcModule___compile_tables_to_c};
+  struct trace_t trace = {NULL, NULL, 413, LOCATE_compiling_global___MMSrcModule___compile_tables_to_c};
   val_t variable[13];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1100,80 +1028,81 @@ void compiling_global___MMSrcModule___compile_tables_to_c(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___mhe))(variable[3]) /*MMModule::mhe*/;
-  variable[3] = ((partial_order___PartialOrderElement___greaters_and_self_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___greaters_and_self))(variable[3]) /*PartialOrderElement::greaters_and_self*/;
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[3])(variable[3]) /*MMModule::mhe*/;
+  variable[3] = CALL_partial_order___PartialOrderElement___greaters_and_self(variable[3])(variable[3]) /*PartialOrderElement::greaters_and_self*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*m*/==NIT_NULL) || VAL_ISA( variable[5] /*m*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
-    if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___compile_tables_to_c, LOCATE_compiling_global, 436); nit_exit(1);}
-    ((compiling_global___MMSrcModule___compile_local_table_to_c_t)CALL( variable[5] /*m*/,COLOR_compiling_global___MMSrcModule___compile_local_table_to_c))( variable[5] /*m*/,  variable[1] /*v*/) /*MMSrcModule::compile_local_table_to_c*/;
-    continue_37: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___compile_tables_to_c, LOCATE_compiling_global, 417); nit_exit(1);}
+    CALL_compiling_global___MMSrcModule___compile_local_table_to_c( variable[5] /*m*/)( variable[5] /*m*/,  variable[1] /*v*/) /*MMSrcModule::compile_local_table_to_c*/;
+    continue_36: while(0);
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
-  break_37: while(0);
+  break_36: while(0);
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___local_classes))(variable[3]) /*MMModule::local_classes*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___local_classes(variable[3])(variable[3]) /*MMModule::local_classes*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    ((compiling_global___MMLocalClass___compile_tables_to_c_t)CALL( variable[5] /*c*/,COLOR_compiling_global___MMLocalClass___compile_tables_to_c))( variable[5] /*c*/,  variable[1] /*v*/) /*MMLocalClass::compile_tables_to_c*/;
-    continue_38: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_compiling_global___MMLocalClass___compile_tables_to_c( variable[5] /*c*/)( variable[5] /*c*/,  variable[1] /*v*/) /*MMLocalClass::compile_tables_to_c*/;
+    continue_37: while(0);
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
-  break_38: while(0);
+  break_37: while(0);
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("classtable_t TAG2VFT[4] = {NULL"), TAG_Int(31)); /*new String*/
   variable[3] = variable[4];
   variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
-    variable[8] = ((symbol___String___to_symbol_t)CALL( variable[6] /*t*/,COLOR_symbol___String___to_symbol))( variable[6] /*t*/) /*String::to_symbol*/;
-    variable[7] = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL(variable[7],COLOR_abstractmetamodel___MMModule___has_global_class_named))(variable[7], variable[8]) /*MMModule::has_global_class_named*/;
+    variable[8] = CALL_symbol___String___to_symbol( variable[6] /*t*/)( variable[6] /*t*/) /*String::to_symbol*/;
+    variable[7] = CALL_abstractmetamodel___MMModule___has_global_class_named(variable[7])(variable[7], variable[8]) /*MMModule::has_global_class_named*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", (const classtable_t)VFT_"), TAG_Int(26)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] =  variable[6] /*t*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-      ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[7]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[7]) /*String::append*/;
     } else { /*if*/
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString(", NULL"), TAG_Int(6)); /*new String*/
-      ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[7]) /*String::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[7]) /*String::append*/;
     }
-    continue_39: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    continue_38: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
-  break_39: while(0);
+  break_38: while(0);
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
-  ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[4]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/,  variable[3] /*s*/) /*CompilerVisitor::add_instr*/;
-  return_label36: while(false);
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*s*/) /*CompilerVisitor::add_instr*/;
+  return_label35: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_global___MMSrcModule___declare_class_tables_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 455, LOCATE_compiling_global___MMSrcModule___declare_class_tables_to_c};
+  struct trace_t trace = {NULL, NULL, 436, LOCATE_compiling_global___MMSrcModule___declare_class_tables_to_c};
   val_t variable[8];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1181,32 +1110,32 @@ void compiling_global___MMSrcModule___declare_class_tables_to_c(val_t  self, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___local_classes))(variable[3]) /*MMModule::local_classes*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___local_classes(variable[3])(variable[3]) /*MMModule::local_classes*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[5] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[5] /*c*/) /*MMLocalClass::global*/;
-    variable[6] = ((abstractmetamodel___MMGlobalClass___module_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalClass___module))(variable[6]) /*MMGlobalClass::module*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[5] /*c*/)( variable[5] /*c*/) /*MMLocalClass::global*/;
+    variable[6] = CALL_abstractmetamodel___MMGlobalClass___module(variable[6])(variable[6]) /*MMGlobalClass::module*/;
     variable[7] = variable[0];
-    variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], variable[7]) /*Object::==*/)))));
+    variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
     if (UNTAG_Bool(variable[6])) { /*if*/
-      ((compiling_global___MMLocalClass___declare_tables_to_c_t)CALL( variable[5] /*c*/,COLOR_compiling_global___MMLocalClass___declare_tables_to_c))( variable[5] /*c*/,  variable[1] /*v*/) /*MMLocalClass::declare_tables_to_c*/;
+      CALL_compiling_global___MMLocalClass___declare_tables_to_c( variable[5] /*c*/)( variable[5] /*c*/,  variable[1] /*v*/) /*MMLocalClass::declare_tables_to_c*/;
     }
-    continue_41: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    continue_40: while(0);
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
-  break_41: while(0);
-  return_label40: while(false);
+  break_40: while(0);
+  return_label39: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_global___MMSrcModule___compile_main_part(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 465, LOCATE_compiling_global___MMSrcModule___compile_main_part};
-  static val_t once_value_43; static int once_bool_43; /* Once value for variable[4]*/
-    static val_t once_value_44; static int once_bool_44; /* Once value for variable[6]*/
+  struct trace_t trace = {NULL, NULL, 446, LOCATE_compiling_global___MMSrcModule___compile_main_part};
+  static val_t once_value_42; static int once_bool_42; /* Once value for variable[4]*/
+    static val_t once_value_43; static int once_bool_43; /* Once value for variable[6]*/
   val_t variable[13];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1214,435 +1143,394 @@ void compiling_global___MMSrcModule___compile_main_part(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("int main(int argc, char **argv) {"), TAG_Int(33)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("prepare_signals();"), TAG_Int(18)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("glob_argc = argc; glob_argv = argv;"), TAG_Int(35)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
-  if (once_bool_43) variable[4] = once_value_43;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  if (once_bool_42) variable[4] = once_value_42;
   else {
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)); /*new String*/
-    variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/;
-    once_value_43 = variable[4];
-    once_bool_43 = true;
+    variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
+    once_value_42 = variable[4];
+    once_bool_42 = true;
   }
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___has_global_class_named))(variable[4],  variable[3] /*sysname*/) /*MMModule::has_global_class_named*/;
+  variable[4] = CALL_abstractmetamodel___MMModule___has_global_class_named(variable[4])(variable[4],  variable[3] /*sysname*/) /*MMModule::has_global_class_named*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
     variable[4] = variable[0];
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/
-    ((file___Object___print_t)CALL(variable[4],COLOR_file___Object___print))(variable[4], variable[5]) /*Object::print*/;
+    CALL_file___Object___print(variable[4])(variable[4], variable[5]) /*Object::print*/;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[5],  variable[3] /*sysname*/) /*MMModule::class_by_name*/;
+    variable[5] = CALL_abstractmetamodel___MMModule___class_by_name(variable[5])(variable[5],  variable[3] /*sysname*/) /*MMModule::class_by_name*/;
     variable[4] = variable[5];
-    if (once_bool_44) variable[6] = once_value_44;
+    if (once_bool_43) variable[6] = once_value_43;
     else {
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)); /*new String*/
-      variable[6] = ((symbol___String___to_symbol_t)CALL(variable[6],COLOR_symbol___String___to_symbol))(variable[6]) /*String::to_symbol*/;
-      once_value_44 = variable[6];
-      once_bool_44 = true;
+      variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
+      once_value_43 = variable[6];
+      once_bool_43 = true;
     }
-    variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL( variable[4] /*sys*/,COLOR_abstractmetamodel___MMLocalClass___select_method))( variable[4] /*sys*/, variable[6]) /*MMLocalClass::select_method*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___select_method( variable[4] /*sys*/)( variable[4] /*sys*/, variable[6]) /*MMLocalClass::select_method*/;
     variable[5] = variable[6];
-    variable[6] = TAG_Bool(( variable[5] /*mainm*/ ==  NIT_NULL /*null*/) || (( variable[5] /*mainm*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*mainm*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*mainm*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*mainm*/,COLOR_kernel___Object_____eqeq))( variable[5] /*mainm*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[6] = TAG_Bool(( variable[5] /*mainm*/ ==  NIT_NULL /*null*/) || (( variable[5] /*mainm*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*mainm*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*mainm*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*mainm*/)( variable[5] /*mainm*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("No main"), TAG_Int(7)); /*new String*/
-      ((file___Object___print_t)CALL(variable[6],COLOR_file___Object___print))(variable[6], variable[7]) /*Object::print*/;
+      CALL_file___Object___print(variable[6])(variable[6], variable[7]) /*Object::print*/;
     } else { /*if*/
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("G_sys = NEW_Sys();"), TAG_Int(18)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
-      variable[6] = NEW_String_string___String___init(); /*new String*/
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+      variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-      variable[9] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[5] /*mainm*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[5] /*mainm*/) /*MMLocalProperty::cname*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+      variable[9] = CALL_compiling_base___MMLocalProperty___cname( variable[5] /*mainm*/)( variable[5] /*mainm*/) /*MMLocalProperty::cname*/;
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(G_sys);"), TAG_Int(8)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
     }
   }
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("return 0;"), TAG_Int(9)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  return_label42: while(false);
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  return_label41: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_global___MMSrcModule___compile_mod_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 492, LOCATE_compiling_global___MMSrcModule___compile_mod_to_c};
-  val_t variable[27];
+  struct trace_t trace = {NULL, NULL, 473, LOCATE_compiling_global___MMSrcModule___compile_mod_to_c};
+  val_t variable[26];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const char *LOCATE_"), TAG_Int(26)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
-  variable[3] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/;
-  variable[3] = ((compiling_base___ToolContext___global_t)CALL(variable[3],COLOR_compiling_base___ToolContext___global))(variable[3]) /*ToolContext::global*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
+  variable[3] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
+  variable[3] = CALL_compiling_base___ToolContext___global(variable[3])(variable[3]) /*ToolContext::global*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("extern const int SFT_"), TAG_Int(21)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
-    variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/;
+    variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
     variable[7] = variable[6];
-    variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
   }
   variable[3] =  TAG_Int(0);
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/;
-    variable[7] = ((compiling_base___ToolContext___global_t)CALL(variable[7],COLOR_compiling_base___ToolContext___global))(variable[7]) /*ToolContext::global*/;
-    if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = NEW_String_string___String___init(); /*new String*/
-      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
-      variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
-      variable[10] = ((compiling_global___LocalTableElt___symbol_t)CALL( variable[6] /*e*/,COLOR_compiling_global___LocalTableElt___symbol))( variable[6] /*e*/) /*LocalTableElt::symbol*/;
-      variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
-      variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
-      variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-      variable[14] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
-      variable[14] = ((compiling_global___LocalTableElt___value_t)CALL( variable[6] /*e*/,COLOR_compiling_global___LocalTableElt___value))( variable[6] /*e*/, variable[14]) /*LocalTableElt::value*/;
-      variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
-      variable[16] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-      variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_decl*/;
+    /*variable[7] is variable value*/
+    variable[8] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
+    variable[8] = CALL_compiling_base___ToolContext___global(variable[8])(variable[8]) /*ToolContext::global*/;
+    if (UNTAG_Bool(variable[8])) { /*if*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable[10] = variable[9];
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+      variable[11] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+      variable[11] = CALL_compiling_global___ModuleTableElt___value( variable[6] /*e*/)( variable[6] /*e*/, variable[11]) /*ModuleTableElt::value*/;
+      variable[12] = variable[11];
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
+      variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+      variable[14] = variable[13];
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      variable[7] = variable[8] /*value=*/;
     } else { /*if*/
-      variable[7] = NEW_String_string___String___init(); /*new String*/
-      variable[8] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
-      variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
-      variable[10] = ((compiling_global___LocalTableElt___symbol_t)CALL( variable[6] /*e*/,COLOR_compiling_global___LocalTableElt___symbol))( variable[6] /*e*/) /*LocalTableElt::symbol*/;
-      variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
-      variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" SFT_"), TAG_Int(5)); /*new String*/
-      variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-      variable[14] = variable[0];
-      variable[14] = ((abstractmetamodel___MMModule___name_t)CALL(variable[14],COLOR_abstractmetamodel___MMModule___name))(variable[14]) /*MMModule::name*/;
-      variable[15] = variable[14];
-      variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
-      variable[16] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
+      variable[9] = NEW_String_string___String___with_native(BOX_NativeString("SFT_"), TAG_Int(4)); /*new String*/
+      variable[10] = variable[9];
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+      variable[11] = variable[0];
+      variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
+      variable[12] = variable[11];
+      variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
+      variable[13] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
+      variable[14] = variable[13];
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+      variable[15] =  variable[3] /*i*/;
+      variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
+      variable[16] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
-      variable[18] =  variable[3] /*i*/;
-      variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[18]) /*String::append*/;
-      variable[19] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
-      variable[20] = variable[19];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[20]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_decl*/;
-      variable[7] = TAG_Int(UNTAG_Int( variable[3] /*i*/)+UNTAG_Int( TAG_Int(1)));
-      variable[3] = variable[7] /*i=*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      variable[7] = variable[8] /*value=*/;
+      variable[8] = TAG_Int(UNTAG_Int( variable[3] /*i*/)+UNTAG_Int( TAG_Int(1)));
+      variable[3] = variable[8] /*i=*/;
     }
-    continue_46: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_compiling_global___AbsTableElt___compile_macros( variable[6] /*e*/)( variable[6] /*e*/,  variable[1] /*v*/,  variable[7] /*value*/) /*AbsTableElt::compile_macros*/;
+    continue_45: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
-  break_46: while(0);
+  break_45: while(0);
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMSrcModule___src_local_classes_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___src_local_classes))(variable[4]) /*MMSrcModule::src_local_classes*/;
-  variable[4] = ((abstract_collection___Map___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Map::iterator*/;
+  variable[4] = CALL_syntax_base___MMSrcModule___src_local_classes(variable[4])(variable[4]) /*MMSrcModule::src_local_classes*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[6] /*c*/) /*MMLocalClass::global_properties*/;
-    variable[7] = ((abstract_collection___Collection___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*Collection::iterator*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::global_properties*/;
+    variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[8] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*Iterator::is_ok*/;
+      variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[8])) break; /*for*/
-      variable[8] = ((abstract_collection___Iterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*Iterator::item*/;
+      variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/;
       variable[9] = variable[8];
-      variable[11] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[6] /*c*/,  variable[9] /*pg*/) /*MMLocalClass::[]*/;
+      variable[11] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[6] /*c*/)( variable[6] /*c*/,  variable[9] /*pg*/) /*MMLocalClass::[]*/;
       variable[10] = variable[11];
-      variable[11] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[10] /*p*/) /*MMLocalProperty::local_class*/;
-      variable[11] = TAG_Bool((variable[11] ==  variable[6] /*c*/) || ((variable[11] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[6] /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))(variable[11],  variable[6] /*c*/) /*Object::==*/)))));
+      variable[11] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::local_class*/;
+      variable[11] = TAG_Bool((variable[11] ==  variable[6] /*c*/) || ((variable[11] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[11])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[6] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[11])(variable[11],  variable[6] /*c*/) /*Object::==*/)))));
       if (UNTAG_Bool(variable[11])) { /*if*/
-        variable[11] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[9] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[9] /*pg*/) /*MMGlobalProperty::intro*/;
-        variable[11] = TAG_Bool((variable[11] ==  variable[10] /*p*/) || ((variable[11] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[10] /*p*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))(variable[11],  variable[10] /*p*/) /*Object::==*/)))));
-        variable[12] = variable[11];
-        if (UNTAG_Bool(variable[12])) { /* and */
-          variable[12] = TAG_Bool(( variable[10] /*p*/==NIT_NULL) || VAL_ISA( variable[10] /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
-        }
-        variable[11] = variable[12];
-        if (UNTAG_Bool(variable[11])) { /*if*/
-          variable[11] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/;
-          variable[11] = ((compiling_base___ToolContext___attr_sim_t)CALL(variable[11],COLOR_compiling_base___ToolContext___attr_sim))(variable[11]) /*ToolContext::attr_sim*/;
-          if (UNTAG_Bool(variable[11])) { /*if*/
-            variable[12] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL( variable[9] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___local_class))( variable[9] /*pg*/) /*MMGlobalProperty::local_class*/;
-            variable[11] = variable[12];
-            variable[12] = TAG_Bool(( variable[11] /*bc*/==NIT_NULL) || VAL_ISA( variable[11] /*bc*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
-            if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMSrcModule___compile_mod_to_c, LOCATE_compiling_global, 515); nit_exit(1);}
-            variable[13] = ((compiling_global___MMSrcLocalClass___base_attr_pos_t)CALL( variable[11] /*bc*/,COLOR_compiling_global___MMSrcLocalClass___base_attr_pos))( variable[11] /*bc*/) /*MMSrcLocalClass::base_attr_pos*/;
-            variable[13] = ((compiling_global___TableEltBaseAttrPos___symbol_t)CALL(variable[13],COLOR_compiling_global___LocalTableElt___symbol))(variable[13]) /*TableEltBaseAttrPos::symbol*/;
-            variable[12] = variable[13];
-            variable[13] = NEW_String_string___String___init(); /*new String*/
-            variable[14] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
-            variable[15] = variable[14];
-            ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
-            variable[16] = ((compiling_base___MMGlobalProperty___attr_access_t)CALL( variable[9] /*pg*/,COLOR_compiling_base___MMGlobalProperty___attr_access))( variable[9] /*pg*/) /*MMGlobalProperty::attr_access*/;
-            variable[17] = variable[16];
-            ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[17]) /*String::append*/;
-            variable[18] = NEW_String_string___String___with_native(BOX_NativeString("(recv) ATTRS(recv, "), TAG_Int(19)); /*new String*/
-            variable[19] = variable[18];
-            ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
-            variable[20] =  variable[12] /*s*/;
-            ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[20]) /*String::append*/;
-            variable[21] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-            variable[22] = variable[21];
-            ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[22]) /*String::append*/;
-            variable[23] = ((compiling_global___MMGlobalProperty___pos_of_t)CALL( variable[9] /*pg*/,COLOR_compiling_global___MMGlobalProperty___pos_of))( variable[9] /*pg*/) /*MMGlobalProperty::pos_of*/;
-            variable[24] = variable[23];
-            variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[24]) /*String::append*/;
-            variable[25] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
-            variable[26] = variable[25];
-            ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[26]) /*String::append*/;
-            ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/;
-          } else { /*if*/
-            variable[11] = NEW_String_string___String___init(); /*new String*/
-            variable[12] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
-            variable[13] = variable[12];
-            ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[13]) /*String::append*/;
-            variable[14] = ((compiling_base___MMGlobalProperty___attr_access_t)CALL( variable[9] /*pg*/,COLOR_compiling_base___MMGlobalProperty___attr_access))( variable[9] /*pg*/) /*MMGlobalProperty::attr_access*/;
-            variable[15] = variable[14];
-            ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[15]) /*String::append*/;
-            variable[16] = NEW_String_string___String___with_native(BOX_NativeString("(recv) ATTR(recv, "), TAG_Int(18)); /*new String*/
-            variable[17] = variable[16];
-            ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[17]) /*String::append*/;
-            variable[18] = ((compiling_base___MMGlobalProperty___color_id_t)CALL( variable[9] /*pg*/,COLOR_compiling_base___MMGlobalProperty___color_id))( variable[9] /*pg*/) /*MMGlobalProperty::color_id*/;
-            variable[19] = variable[18];
-            ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[19]) /*String::append*/;
-            variable[20] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
-            variable[21] = variable[20];
-            ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[21]) /*String::append*/;
-            ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_decl*/;
-          }
-        }
-        ((compiling_methods___MMLocalProperty___compile_property_to_c_t)CALL( variable[10] /*p*/,COLOR_compiling_methods___MMLocalProperty___compile_property_to_c))( variable[10] /*p*/,  variable[1] /*v*/) /*MMLocalProperty::compile_property_to_c*/;
+        CALL_compiling_methods___MMLocalProperty___compile_property_to_c( variable[10] /*p*/)( variable[10] /*p*/,  variable[1] /*v*/) /*MMLocalProperty::compile_property_to_c*/;
       }
-      variable[11] = ((abstractmetamodel___MMGlobalProperty___is_init_for_t)CALL( variable[9] /*pg*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init_for))( variable[9] /*pg*/,  variable[6] /*c*/) /*MMGlobalProperty::is_init_for*/;
+      variable[11] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for( variable[9] /*pg*/)( variable[9] /*pg*/,  variable[6] /*c*/) /*MMGlobalProperty::is_init_for*/;
       if (UNTAG_Bool(variable[11])) { /*if*/
         variable[12] = NEW_Array_array___Array___init(); /*new Array[String]*/
         variable[11] = variable[12];
-        variable[12] = ((static_type___MMLocalProperty___signature_t)CALL( variable[10] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[10] /*p*/) /*MMLocalProperty::signature*/;
-        variable[12] = ((static_type___MMSignature___arity_t)CALL(variable[12],COLOR_static_type___MMSignature___arity))(variable[12]) /*MMSignature::arity*/;
+        variable[12] = CALL_static_type___MMLocalProperty___signature( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::signature*/;
+        variable[12] = CALL_static_type___MMSignature___arity(variable[12])(variable[12]) /*MMSignature::arity*/;
         variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12]); /*new Range[Int]*/
         variable[12] = variable[13];
-        variable[12] = ((range___Range___iterator_t)CALL(variable[12],COLOR_abstract_collection___Collection___iterator))(variable[12]) /*Range::iterator*/;
+        variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Range::iterator*/;
         while (true) { /*for*/
-          variable[13] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[12],COLOR_abstract_collection___Iterator___is_ok))(variable[12]) /*Iterator::is_ok*/;
+          variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
           if (!UNTAG_Bool(variable[13])) break; /*for*/
-          variable[13] = ((abstract_collection___Iterator___item_t)CALL(variable[12],COLOR_abstract_collection___Iterator___item))(variable[12]) /*Iterator::item*/;
+          variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/;
           variable[14] = variable[13];
-          variable[15] = NEW_String_string___String___init(); /*new String*/
+          variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[16] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)); /*new String*/
           variable[17] = variable[16];
-          ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[17]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[17]) /*AbstractArray::add*/;
           variable[18] =  variable[14] /*i*/;
-          variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[18]) /*String::append*/;
+          variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[18]) /*AbstractArray::add*/;
           variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
           variable[20] = variable[19];
-          ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[20]) /*String::append*/;
-          ((array___AbstractArray___add_t)CALL( variable[11] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*params*/, variable[15]) /*AbstractArray::add*/;
-          continue_49: while(0);
-          ((abstract_collection___Iterator___next_t)CALL(variable[12],COLOR_abstract_collection___Iterator___next))(variable[12]) /*Iterator::next*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[20]) /*AbstractArray::add*/;
+          variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add( variable[11] /*params*/)( variable[11] /*params*/, variable[15]) /*AbstractArray::add*/;
+          continue_48: while(0);
+          CALL_abstract_collection___Iterator___next(variable[12])(variable[12]) /*Iterator::next*/;
         }
-        break_49: while(0);
-        variable[12] = NEW_String_string___String___init(); /*new String*/
+        break_48: while(0);
+        variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
         variable[13] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
         variable[14] = variable[13];
-        ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
         variable[15] =  variable[6] /*c*/;
-        variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[15]) /*String::append*/;
+        variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[15]) /*AbstractArray::add*/;
         variable[16] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
         variable[17] = variable[16];
-        ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[17]) /*String::append*/;
-        variable[18] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[10] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[10] /*p*/) /*MMLocalProperty::global*/;
-        variable[18] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[18],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[18]) /*MMGlobalProperty::intro*/;
-        variable[18] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[18],COLOR_compiling_base___MMLocalProperty___cname))(variable[18]) /*MMLocalProperty::cname*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[17]) /*AbstractArray::add*/;
+        variable[18] = CALL_abstractmetamodel___MMLocalProperty___global( variable[10] /*p*/)( variable[10] /*p*/) /*MMLocalProperty::global*/;
+        variable[18] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[18])(variable[18]) /*MMGlobalProperty::intro*/;
+        variable[18] = CALL_compiling_base___MMLocalProperty___cname(variable[18])(variable[18]) /*MMLocalProperty::cname*/;
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[19]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[19]) /*AbstractArray::add*/;
         variable[20] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
         variable[21] = variable[20];
-        ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[21]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[21]) /*AbstractArray::add*/;
         variable[22] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-        variable[22] = ((string___Collection___join_t)CALL( variable[11] /*params*/,COLOR_string___Collection___join))( variable[11] /*params*/, variable[22]) /*Collection::join*/;
+        variable[22] = CALL_string___Collection___join( variable[11] /*params*/)( variable[11] /*params*/, variable[22]) /*Collection::join*/;
         variable[23] = variable[22];
-        ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[23]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[23]) /*AbstractArray::add*/;
         variable[24] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
         variable[25] = variable[24];
-        ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[25]) /*String::append*/;
-        ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_decl*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[25]) /*AbstractArray::add*/;
+        variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+        CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_decl*/;
       }
-      continue_48: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*Iterator::next*/;
+      continue_47: while(0);
+      CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/;
     }
-    break_48: while(0);
-    continue_47: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    break_47: while(0);
+    continue_46: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
-  break_47: while(0);
-  return_label45: while(false);
+  break_46: while(0);
+  return_label44: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_global___MMSrcModule___compile_local_table_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 536, LOCATE_compiling_global___MMSrcModule___compile_local_table_to_c};
+  struct trace_t trace = {NULL, NULL, 509, LOCATE_compiling_global___MMSrcModule___compile_local_table_to_c};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const char *LOCATE_"), TAG_Int(19)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" = \""), TAG_Int(4)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((mmloader___MMModule___filename_t)CALL(variable[10],COLOR_mmloader___MMModule___filename))(variable[10]) /*MMModule::filename*/;
+  variable[10] = CALL_mmloader___MMModule___filename(variable[10])(variable[10]) /*MMModule::filename*/;
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("\";"), TAG_Int(2)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
-  variable[3] = ((compiling_base___CompilerVisitor___tc_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___tc))( variable[1] /*v*/) /*CompilerVisitor::tc*/;
-  variable[3] = ((compiling_base___ToolContext___global_t)CALL(variable[3],COLOR_compiling_base___ToolContext___global))(variable[3]) /*ToolContext::global*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  variable[3] = CALL_compiling_base___CompilerVisitor___tc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::tc*/;
+  variable[3] = CALL_compiling_base___ToolContext___global(variable[3])(variable[3]) /*ToolContext::global*/;
   variable[4] = variable[3];
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
     variable[4] = ATTR_compiling_global___MMSrcModule____local_table(variable[4]) /*MMSrcModule::_local_table*/;
-    variable[4] = ((array___AbstractArray___is_empty_t)CALL(variable[4],COLOR_abstract_collection___Collection___is_empty))(variable[4]) /*AbstractArray::is_empty*/;
+    variable[4] = CALL_abstract_collection___Collection___is_empty(variable[4])(variable[4]) /*AbstractArray::is_empty*/;
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
-    goto return_label50;
+    goto return_label49;
   }
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("const int SFT_"), TAG_Int(14)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMModule___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___name))(variable[6]) /*MMModule::name*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___name(variable[6])(variable[6]) /*MMModule::name*/;
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
   variable[10] = ATTR_compiling_global___MMSrcModule____local_table(variable[10]) /*MMSrcModule::_local_table*/;
-  variable[10] = ((array___AbstractArray___length_t)CALL(variable[10],COLOR_abstract_collection___Collection___length))(variable[10]) /*AbstractArray::length*/;
+  variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*AbstractArray::length*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_global___MMSrcModule____local_table(variable[3]) /*MMSrcModule::_local_table*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
-    variable[6] = ((compiling_global___LocalTableElt___value_t)CALL( variable[5] /*e*/,COLOR_compiling_global___LocalTableElt___value))( variable[5] /*e*/, variable[6]) /*LocalTableElt::value*/;
+    variable[6] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+    variable[6] = CALL_compiling_global___ModuleTableElt___value( variable[5] /*e*/)( variable[5] /*e*/, variable[6]) /*ModuleTableElt::value*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
-    variable[6] = ((string___String_____plus_t)CALL(variable[6],COLOR_string___String_____plus))(variable[6], variable[7]) /*String::+*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
-    continue_51: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    variable[6] = CALL_string___String_____plus(variable[6])(variable[6], variable[7]) /*String::+*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+    continue_50: while(0);
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
-  break_51: while(0);
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  break_50: while(0);
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
-  return_label50: while(false);
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  return_label49: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___AbsTableElt___compile_macros(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 532, LOCATE_compiling_global___AbsTableElt___compile_macros};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_global;
+  fprintf(stderr, "Deferred method called");
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 532);
+  nit_exit(1);
+  tracehead = trace.prev;
+  return;
+}
+void compiling_global___AbsTableElt___init(val_t  self, int* init_table) {
+  struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___AbsTableElt___init};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_global;
   tracehead = trace.prev;
   return;
 }
 val_t compiling_global___TableElt___is_related_to(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 556, LOCATE_compiling_global___TableElt___is_related_to};
+  struct trace_t trace = {NULL, NULL, 540, LOCATE_compiling_global___TableElt___is_related_to};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 556);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 540);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t compiling_global___TableElt___length(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 557, LOCATE_compiling_global___TableElt___length};
+  struct trace_t trace = {NULL, NULL, 543, LOCATE_compiling_global___TableElt___length};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  TAG_Int(1);
-  goto return_label52;
-  return_label52: while(false);
+  goto return_label51;
+  return_label51: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_global___TableElt___item(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 558, LOCATE_compiling_global___TableElt___item};
+  struct trace_t trace = {NULL, NULL, 546, LOCATE_compiling_global___TableElt___item};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1651,125 +1539,176 @@ val_t compiling_global___TableElt___item(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[2] = variable[3];
-  goto return_label53;
-  return_label53: while(false);
+  goto return_label52;
+  return_label52: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_global___TableElt___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 559, LOCATE_compiling_global___TableElt___compile_to_c};
+  struct trace_t trace = {NULL, NULL, 549, LOCATE_compiling_global___TableElt___compile_to_c};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 559);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 549);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
-void compiling_global___TableElt___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 0, LOCATE_compiling_global___TableElt___init};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  tracehead = trace.prev;
-  return;
-}
-val_t compiling_global___LocalTableElt___symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 564, LOCATE_compiling_global___LocalTableElt___symbol};
+val_t compiling_global___ModuleTableElt___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 557, LOCATE_compiling_global___ModuleTableElt___value};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 564);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 557);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
-val_t compiling_global___LocalTableElt___value(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 565, LOCATE_compiling_global___LocalTableElt___value};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 565);
-  nit_exit(1);
-  tracehead = trace.prev;
-  return NIT_NULL;
-}
-val_t compiling_global___TableEltPropPos___symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 571, LOCATE_compiling_global___TableEltPropPos___symbol};
-  val_t variable[3];
+void compiling_global___ModuleTableEltGroup___compile_macros(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 567, LOCATE_compiling_global___ModuleTableEltGroup___compile_macros};
+  val_t variable[17];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = ATTR_compiling_global___TableEltPropPos____property(variable[2]) /*TableEltPropPos::_property*/;
-  variable[2] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[2]) /*MMLocalProperty::global*/;
-  variable[2] = ((compiling_base___MMGlobalProperty___color_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalProperty___color_id))(variable[2]) /*MMGlobalProperty::color_id*/;
-  variable[1] = variable[2];
-  goto return_label54;
-  return_label54: while(false);
+  variable[1] =  param0;
+  variable[2] =  param1;
+  variable[4] =  TAG_Int(0);
+  variable[5] = variable[0];
+  variable[5] = ATTR_compiling_global___ModuleTableEltGroup____elements(variable[5]) /*ModuleTableEltGroup::_elements*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
+  while (true) { /*for*/
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
+    if (!UNTAG_Bool(variable[6])) break; /*for*/
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
+    variable[7] = variable[6];
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable[10] = variable[9];
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+    variable[11] =  variable[2] /*value*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
+    variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" + "), TAG_Int(3)); /*new String*/
+    variable[13] = variable[12];
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[14] =  variable[4] /*i*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+    variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable[16] = variable[15];
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_compiling_global___AbsTableElt___compile_macros( variable[7] /*e*/)( variable[7] /*e*/,  variable[1] /*v*/, variable[8]) /*AbsTableElt::compile_macros*/;
+    variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
+    continue_54: while(0);
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
+  }
+  break_54: while(0);
+  return_label53: while(false);
   tracehead = trace.prev;
-  return variable[1];
+  return;
 }
-val_t compiling_global___TableEltPropPos___value(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 572, LOCATE_compiling_global___TableEltPropPos___value};
-  val_t variable[14];
+val_t compiling_global___ModuleTableEltGroup___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 566, LOCATE_compiling_global___ModuleTableEltGroup___value};
+  val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
+  variable[6] = ATTR_compiling_global___ModuleTableEltGroup____elements(variable[6]) /*ModuleTableEltGroup::_elements*/;
+  variable[6] = CALL_abstract_collection___Collection___first(variable[6])(variable[6]) /*IndexedCollection::first*/;
+  variable[6] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
-  variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Property "), TAG_Int(13)); /*new String*/
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
+  variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Group of ? */"), TAG_Int(17)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  variable[10] = variable[0];
-  variable[10] = ATTR_compiling_global___TableEltPropPos____property(variable[10]) /*TableEltPropPos::_property*/;
-  variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
-  variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
-  variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
   goto return_label55;
   return_label55: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
-void compiling_global___TableEltPropPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 574, LOCATE_compiling_global___TableEltPropPos___init};
+val_t compiling_global___ModuleTableEltGroup___elements(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 564, LOCATE_compiling_global___ModuleTableEltGroup___elements};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_global;
+  tracehead = trace.prev;
+  return ATTR_compiling_global___ModuleTableEltGroup____elements( self) /*ModuleTableEltGroup::_elements*/;
+}
+void compiling_global___TableEltProp___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, NULL, 582, LOCATE_compiling_global___TableEltProp___init};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltPropPos].i]) return;
+  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltProp].i]) return;
   variable[3] = variable[0];
-  ATTR_compiling_global___TableEltPropPos____property(variable[3]) /*TableEltPropPos::_property*/ =  variable[1] /*p*/;
+  ATTR_compiling_global___TableEltProp____property(variable[3]) /*TableEltProp::_property*/ =  variable[1] /*p*/;
   return_label56: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltPropPos].i] = 1;
+  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltProp].i] = 1;
   tracehead = trace.prev;
   return;
 }
-val_t compiling_global___TableEltMethPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 582, LOCATE_compiling_global___TableEltMethPos___compile_to_c};
+void compiling_global___TableEltMeth___compile_macros(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 591, LOCATE_compiling_global___TableEltMeth___compile_macros};
+  val_t variable[19];
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_compiling_global;
+  variable[0] =  self;
+  variable[1] =  param0;
+  variable[2] =  param1;
+  variable[5] = variable[0];
+  variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
+  variable[4] = variable[5];
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
+  variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+  variable[7] = variable[6];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+  variable[8] = CALL_compiling_base___MMGlobalProperty___meth_call( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::meth_call*/;
+  variable[9] = variable[8];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
+  variable[10] = NEW_String_string___String___with_native(BOX_NativeString("(recv) (("), TAG_Int(9)); /*new String*/
+  variable[11] = variable[10];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+  variable[12] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::intro*/;
+  variable[12] = CALL_compiling_base___MMLocalProperty___cname(variable[12])(variable[12]) /*MMLocalProperty::cname*/;
+  variable[13] = variable[12];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
+  variable[14] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL((recv), ("), TAG_Int(17)); /*new String*/
+  variable[15] = variable[14];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+  variable[16] =  variable[2] /*value*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
+  variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
+  variable[18] = variable[17];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[18]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
+  return_label57: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t compiling_global___TableEltMeth___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 597, LOCATE_compiling_global___TableEltMeth___compile_to_c};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1778,34 +1717,58 @@ val_t compiling_global___TableEltMethPos___compile_to_c(val_t  self, val_t  para
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ATTR_compiling_global___TableEltPropPos____property(variable[5]) /*TableEltPropPos::_property*/;
-  variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[5]) /*MMLocalProperty::global*/;
-  variable[5] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[2] /*c*/, variable[5]) /*MMLocalClass::[]*/;
+  variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[2] /*c*/)( variable[2] /*c*/, variable[5]) /*MMLocalClass::[]*/;
   variable[4] = variable[5];
-  variable[5] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[4] /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[4] /*p*/) /*MMLocalProperty::cname*/;
+  variable[5] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::cname*/;
   variable[3] = variable[5];
-  goto return_label57;
-  return_label57: while(false);
+  goto return_label58;
+  return_label58: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-void compiling_global___TableEltMethPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 587, LOCATE_compiling_global___TableEltMethPos___init};
-  val_t variable[3];
+void compiling_global___TableEltSuper___compile_macros(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 607, LOCATE_compiling_global___TableEltSuper___compile_macros};
+  val_t variable[19];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltMethPos].i]) return;
-  ((compiling_global___TableEltPropPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltPropPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltPropPos::init*/;
-  return_label58: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltMethPos].i] = 1;
+  variable[2] =  param1;
+  variable[5] = variable[0];
+  variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
+  variable[4] = variable[5];
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
+  variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+  variable[7] = variable[6];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+  variable[8] = CALL_compiling_base___MMLocalProperty___super_meth_call( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::super_meth_call*/;
+  variable[9] = variable[8];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
+  variable[10] = NEW_String_string___String___with_native(BOX_NativeString("(recv) (("), TAG_Int(9)); /*new String*/
+  variable[11] = variable[10];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+  variable[12] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*p*/)( variable[4] /*p*/) /*MMLocalProperty::cname*/;
+  variable[13] = variable[12];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
+  variable[14] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL((recv), ("), TAG_Int(17)); /*new String*/
+  variable[15] = variable[14];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+  variable[16] =  variable[2] /*value*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
+  variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
+  variable[18] = variable[17];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[18]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
+  return_label59: while(false);
   tracehead = trace.prev;
   return;
 }
-val_t compiling_global___TableEltSuperPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 593, LOCATE_compiling_global___TableEltSuperPos___compile_to_c};
+val_t compiling_global___TableEltSuper___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 613, LOCATE_compiling_global___TableEltSuper___compile_to_c};
   val_t variable[13];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1814,87 +1777,90 @@ val_t compiling_global___TableEltSuperPos___compile_to_c(val_t  self, val_t  par
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ATTR_compiling_global___TableEltPropPos____property(variable[5]) /*TableEltPropPos::_property*/;
-  variable[5] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[5]) /*MMLocalProperty::local_class*/;
+  variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[5])(variable[5]) /*MMLocalProperty::local_class*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ATTR_compiling_global___TableEltPropPos____property(variable[6]) /*TableEltPropPos::_property*/;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
+  variable[6] = ATTR_compiling_global___TableEltProp____property(variable[6]) /*TableEltProp::_property*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
   variable[5] = variable[6];
-  variable[7] = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable[2] /*c*/) /*MMLocalClass::che*/;
-  variable[7] = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___linear_extension))(variable[7]) /*PartialOrderElement::linear_extension*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___che( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::che*/;
+  variable[7] = CALL_partial_order___PartialOrderElement___linear_extension(variable[7])(variable[7]) /*PartialOrderElement::linear_extension*/;
   variable[6] = variable[7];
   variable[7] =  TAG_Bool(false);
-  variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*lin*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*lin*/) /*AbstractArray::iterator*/;
+  variable[8] = CALL_abstract_collection___Collection___iterator( variable[6] /*lin*/)( variable[6] /*lin*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
+    variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[9])) break; /*for*/
-    variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
+    variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
     variable[10] = variable[9];
-    variable[11] = TAG_Bool(( variable[10] /*s*/ ==  variable[4] /*pc*/) || (( variable[10] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*s*/, variable[4] /*pc*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*s*/,COLOR_kernel___Object_____eqeq))( variable[10] /*s*/,  variable[4] /*pc*/) /*Object::==*/)))));
+    variable[11] = TAG_Bool(( variable[10] /*s*/ ==  variable[4] /*pc*/) || (( variable[10] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*s*/, variable[4] /*pc*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*s*/)( variable[10] /*s*/,  variable[4] /*pc*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  TAG_Bool(true) /*found=*/;
     } else { /*if*/
       variable[11] =  variable[7] /*found*/;
       if (UNTAG_Bool(variable[11])) { /* and */
-        variable[11] = ((abstractmetamodel___MMLocalClass___che_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___che))( variable[2] /*c*/) /*MMLocalClass::che*/;
-        variable[11] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[11],COLOR_partial_order___PartialOrderElement_____l))(variable[11],  variable[10] /*s*/) /*PartialOrderElement::<*/;
+        variable[11] = CALL_abstractmetamodel___MMLocalClass___che( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::che*/;
+        variable[11] = CALL_partial_order___PartialOrderElement_____l(variable[11])(variable[11],  variable[10] /*s*/) /*PartialOrderElement::<*/;
       }
       if (UNTAG_Bool(variable[11])) { /*if*/
-        variable[12] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[10] /*s*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[10] /*s*/,  variable[5] /*g*/) /*MMLocalClass::[]*/;
+        variable[12] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[10] /*s*/)( variable[10] /*s*/,  variable[5] /*g*/) /*MMLocalClass::[]*/;
         variable[11] = variable[12];
-        variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*p*/ ==  NIT_NULL /*null*/) || (( variable[11] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*p*/,COLOR_kernel___Object_____eqeq))( variable[11] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*p*/ ==  NIT_NULL /*null*/) || (( variable[11] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*p*/)( variable[11] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
         if (UNTAG_Bool(variable[12])) { /*if*/
-          variable[12] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[11] /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[11] /*p*/) /*MMLocalProperty::cname*/;
+          variable[12] = CALL_compiling_base___MMLocalProperty___cname( variable[11] /*p*/)( variable[11] /*p*/) /*MMLocalProperty::cname*/;
           variable[3] = variable[12];
-          goto return_label59;
+          goto return_label60;
         }
       }
     }
-    continue_60: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
+    continue_61: while(0);
+    CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
   }
-  break_60: while(0);
-  if (!UNTAG_Bool( TAG_Bool(false))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltSuperPos___compile_to_c, LOCATE_compiling_global, 611); nit_exit(1);}
+  break_61: while(0);
+  if (!UNTAG_Bool( TAG_Bool(false))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltSuper___compile_to_c, LOCATE_compiling_global, 631); nit_exit(1);}
   variable[3] =  NIT_NULL /*null*/;
-  goto return_label59;
-  return_label59: while(false);
+  goto return_label60;
+  return_label60: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-val_t compiling_global___TableEltSuperPos___symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 592, LOCATE_compiling_global___TableEltSuperPos___symbol};
-  val_t variable[3];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = ATTR_compiling_global___TableEltPropPos____property(variable[2]) /*TableEltPropPos::_property*/;
-  variable[2] = ((compiling_base___MMLocalProperty___color_id_for_super_t)CALL(variable[2],COLOR_compiling_base___MMLocalProperty___color_id_for_super))(variable[2]) /*MMLocalProperty::color_id_for_super*/;
-  variable[1] = variable[2];
-  goto return_label61;
-  return_label61: while(false);
-  tracehead = trace.prev;
-  return variable[1];
-}
-void compiling_global___TableEltSuperPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 615, LOCATE_compiling_global___TableEltSuperPos___init};
-  val_t variable[3];
+void compiling_global___TableEltAttr___compile_macros(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 639, LOCATE_compiling_global___TableEltAttr___compile_macros};
+  val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltSuperPos].i]) return;
-  ((compiling_global___TableEltPropPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltPropPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltPropPos::init*/;
+  variable[2] =  param1;
+  variable[5] = variable[0];
+  variable[5] = ATTR_compiling_global___TableEltProp____property(variable[5]) /*TableEltProp::_property*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
+  variable[4] = variable[5];
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
+  variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+  variable[7] = variable[6];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+  variable[8] = CALL_compiling_base___MMGlobalProperty___attr_access( variable[4] /*pg*/)( variable[4] /*pg*/) /*MMGlobalProperty::attr_access*/;
+  variable[9] = variable[8];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
+  variable[10] = NEW_String_string___String___with_native(BOX_NativeString("(recv) ATTR(recv, ("), TAG_Int(19)); /*new String*/
+  variable[11] = variable[10];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+  variable[12] =  variable[2] /*value*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
+  variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
+  variable[14] = variable[13];
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
   return_label62: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltSuperPos].i] = 1;
   tracehead = trace.prev;
   return;
 }
-val_t compiling_global___TableEltAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 620, LOCATE_compiling_global___TableEltAttrPos___compile_to_c};
+val_t compiling_global___TableEltAttr___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 645, LOCATE_compiling_global___TableEltAttr___compile_to_c};
   val_t variable[19];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1902,168 +1868,183 @@ val_t compiling_global___TableEltAttrPos___compile_to_c(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ATTR_compiling_global___TableEltPropPos____property(variable[6]) /*TableEltPropPos::_property*/;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
-  variable[6] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[2] /*c*/, variable[6]) /*MMLocalClass::[]*/;
+  variable[6] = ATTR_compiling_global___TableEltProp____property(variable[6]) /*TableEltProp::_property*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[2] /*c*/)( variable[2] /*c*/, variable[6]) /*MMLocalClass::[]*/;
   variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
-  variable[9] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[9]) /*ColorContext::color*/;
+  variable[9] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[9]) /*ColorContext::color*/;
   variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(": Attribute "), TAG_Int(12)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] =  variable[2] /*c*/;
-  variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+  variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
   variable[16] =  variable[5] /*p*/;
-  variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
+  variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[18]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[3] = variable[6];
   goto return_label63;
   return_label63: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-void compiling_global___TableEltAttrPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 627, LOCATE_compiling_global___TableEltAttrPos___init};
-  val_t variable[3];
+void compiling_global___AbsTableEltClass___compile_macros(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 667, LOCATE_compiling_global___AbsTableEltClass___compile_macros};
+  val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltAttrPos].i]) return;
-  ((compiling_global___TableEltPropPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltPropPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltPropPos::init*/;
+  variable[2] =  param1;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
+  variable[5] = NEW_String_string___String___with_native(BOX_NativeString("#define "), TAG_Int(8)); /*new String*/
+  variable[6] = variable[5];
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
+  variable[7] = variable[0];
+  variable[7] = CALL_compiling_global___AbsTableEltClass___symbol(variable[7])(variable[7]) /*AbsTableEltClass::symbol*/;
+  variable[8] = variable[7];
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
+  variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/
+  variable[10] = variable[9];
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[11] =  variable[2] /*value*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
+  variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable[13] = variable[12];
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/;
   return_label64: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltAttrPos].i] = 1;
   tracehead = trace.prev;
   return;
 }
-val_t compiling_global___TableEltClassPos___is_related_to(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 633, LOCATE_compiling_global___TableEltClassPos___is_related_to};
-  val_t variable[6];
+void compiling_global___AbsTableEltClass___init(val_t  self, val_t  param0, int* init_table) {
+  struct trace_t trace = {NULL, NULL, 659, LOCATE_compiling_global___AbsTableEltClass___init};
+  val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*c*/) /*MMLocalClass::module*/;
-  variable[5] = variable[0];
-  variable[5] = ATTR_compiling_global___TableEltClassPos____local_class(variable[5]) /*TableEltClassPos::_local_class*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___global))(variable[5]) /*MMLocalClass::global*/;
-  variable[4] = ((abstractmetamodel___MMModule_____bra_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule_____bra))(variable[4], variable[5]) /*MMModule::[]*/;
-  variable[3] = variable[4];
-  variable[4] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[1] /*c*/) /*MMLocalClass::cshe*/;
-  variable[4] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____leq))(variable[4],  variable[3] /*bc*/) /*PartialOrderElement::<=*/;
-  variable[2] = variable[4];
-  goto return_label65;
+  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsTableEltClass].i]) return;
+  variable[3] = variable[0];
+  ATTR_compiling_global___AbsTableEltClass____local_class(variable[3]) /*AbsTableEltClass::_local_class*/ =  variable[1] /*c*/;
   return_label65: while(false);
+  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsTableEltClass].i] = 1;
   tracehead = trace.prev;
-  return variable[2];
+  return;
 }
-void compiling_global___TableEltClassPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 639, LOCATE_compiling_global___TableEltClassPos___init};
-  val_t variable[4];
+val_t compiling_global___AbsTableEltClass___symbol(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 664, LOCATE_compiling_global___AbsTableEltClass___symbol};
+  val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassPos].i]) return;
-  variable[3] = variable[0];
-  ATTR_compiling_global___TableEltClassPos____local_class(variable[3]) /*TableEltClassPos::_local_class*/ =  variable[1] /*c*/;
-  return_label66: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassPos].i] = 1;
+  fprintf(stderr, "Deferred method called");
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_global, 664);
+  nit_exit(1);
   tracehead = trace.prev;
-  return;
+  return NIT_NULL;
 }
-val_t compiling_global___TableEltClassIdPos___symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 647, LOCATE_compiling_global___TableEltClassIdPos___symbol};
-  val_t variable[3];
+val_t compiling_global___TableEltClass___is_related_to(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 677, LOCATE_compiling_global___TableEltClass___is_related_to};
+  val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
-  variable[2] = variable[0];
-  variable[2] = ATTR_compiling_global___TableEltClassPos____local_class(variable[2]) /*TableEltClassPos::_local_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___global))(variable[2]) /*MMLocalClass::global*/;
-  variable[2] = ((compiling_base___MMGlobalClass___id_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalClass___id_id))(variable[2]) /*MMGlobalClass::id_id*/;
-  variable[1] = variable[2];
-  goto return_label67;
-  return_label67: while(false);
+  variable[1] =  param0;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::module*/;
+  variable[5] = variable[0];
+  variable[5] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[5]) /*AbsTableEltClass::_local_class*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[5])(variable[5]) /*MMLocalClass::global*/;
+  variable[4] = CALL_abstractmetamodel___MMModule_____bra(variable[4])(variable[4], variable[5]) /*MMModule::[]*/;
+  variable[3] = variable[4];
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::cshe*/;
+  variable[4] = CALL_partial_order___PartialOrderElement_____leq(variable[4])(variable[4],  variable[3] /*bc*/) /*PartialOrderElement::<=*/;
+  variable[2] = variable[4];
+  goto return_label66;
+  return_label66: while(false);
   tracehead = trace.prev;
-  return variable[1];
+  return variable[2];
 }
-val_t compiling_global___TableEltClassIdPos___value(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 648, LOCATE_compiling_global___TableEltClassIdPos___value};
+val_t compiling_global___TableEltClassId___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 690, LOCATE_compiling_global___TableEltClassId___value};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-  variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[1] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[1] /*ga*/)( variable[1] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
   variable[7] = variable[0];
-  variable[7] = ATTR_compiling_global___TableEltClassPos____local_class(variable[7]) /*TableEltClassPos::_local_class*/;
-  variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___global))(variable[7]) /*MMLocalClass::global*/;
-  variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/;
-  variable[6] = ((compiling_global___CompiledClass___id_t)CALL(variable[6],COLOR_compiling_global___CompiledClass___id))(variable[6]) /*CompiledClass::id*/;
+  variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[7]) /*AbsTableEltClass::_local_class*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
+  variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
+  variable[6] = CALL_compiling_global___CompiledClass___id(variable[6])(variable[6]) /*CompiledClass::id*/;
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Id of "), TAG_Int(10)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ATTR_compiling_global___TableEltClassPos____local_class(variable[10]) /*TableEltClassPos::_local_class*/;
+  variable[10] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[10]) /*AbsTableEltClass::_local_class*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label68;
-  return_label68: while(false);
+  goto return_label67;
+  return_label67: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
-void compiling_global___TableEltClassIdPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 653, LOCATE_compiling_global___TableEltClassIdPos___init};
+val_t compiling_global___TableEltClassId___symbol(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 688, LOCATE_compiling_global___TableEltClassId___symbol};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
-  variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassIdPos].i]) return;
-  ((compiling_global___TableEltClassPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltClassPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltClassPos::init*/;
-  return_label69: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassIdPos].i] = 1;
+  variable[2] = variable[0];
+  variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[2]) /*AbsTableEltClass::_local_class*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
+  variable[2] = CALL_compiling_base___MMGlobalClass___id_id(variable[2])(variable[2]) /*MMGlobalClass::id_id*/;
+  variable[1] = variable[2];
+  goto return_label68;
+  return_label68: while(false);
   tracehead = trace.prev;
-  return;
+  return variable[1];
 }
-val_t compiling_global___TableEltClassInitTablePos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 663, LOCATE_compiling_global___TableEltClassInitTablePos___compile_to_c};
+val_t compiling_global___TableEltClassInitTable___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 701, LOCATE_compiling_global___TableEltClassInitTable___compile_to_c};
   val_t variable[25];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2071,16 +2052,16 @@ val_t compiling_global___TableEltClassInitTablePos___compile_to_c(val_t  self, v
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
   variable[4] = variable[5];
-  variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+  variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[4] /*ga*/)( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
   variable[7] = variable[0];
-  variable[7] = ATTR_compiling_global___TableEltClassPos____local_class(variable[7]) /*TableEltClassPos::_local_class*/;
-  variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___global))(variable[7]) /*MMLocalClass::global*/;
-  variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/;
+  variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[7]) /*AbsTableEltClass::_local_class*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
+  variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
   variable[5] = variable[6];
-  variable[7] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[2] /*c*/) /*MMLocalClass::cshe*/;
-  variable[7] = ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___reverse_linear_extension))(variable[7]) /*PartialOrderElement::reverse_linear_extension*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::cshe*/;
+  variable[7] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(variable[7])(variable[7]) /*PartialOrderElement::reverse_linear_extension*/;
   variable[6] = variable[7];
   variable[7] =  TAG_Int(0);
   while (true) { /*while*/
@@ -2099,124 +2080,76 @@ val_t compiling_global___TableEltClassInitTablePos___compile_to_c(val_t  self, v
     variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
     variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
     variable[10] = variable[11];
-    goto return_label72;
-    return_label72: while(false);
+    goto return_label71;
+    return_label71: while(false);
     variable[8] = variable[10];
-    variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___global))(variable[8]) /*MMLocalClass::global*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/;
     variable[9] = variable[0];
-    variable[9] = ATTR_compiling_global___TableEltClassPos____local_class(variable[9]) /*TableEltClassPos::_local_class*/;
-    variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___global))(variable[9]) /*MMLocalClass::global*/;
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8], variable[9]) /*Object::==*/)))))));
+    variable[9] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[9]) /*AbsTableEltClass::_local_class*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___global(variable[9])(variable[9]) /*MMLocalClass::global*/;
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], variable[9]) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[8])) break; /* while*/
     variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*i*/;
-    continue_71: while(0);
+    continue_70: while(0);
   }
-  break_71: while(0);
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  break_70: while(0);
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[7] /*i*/;
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
   variable[14] = variable[0];
-  variable[14] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[14]) /*ColorContext::color*/;
+  variable[14] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[14]) /*ColorContext::color*/;
   variable[15] = variable[14];
-  variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/;
+  variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
   variable[18] =  variable[2] /*c*/;
-  variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+  variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
   variable[19] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/
   variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/;
-  variable[21] = ((compiling_global___CompiledClass___local_class_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___CompiledClass___local_class))( variable[5] /*cc*/) /*CompiledClass::local_class*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
+  variable[21] = CALL_compiling_global___CompiledClass___local_class( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::local_class*/;
   variable[22] = variable[21];
-  variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/;
+  variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
   variable[23] = NEW_String_string___String___with_native(BOX_NativeString(": superclass init_table position */"), TAG_Int(35)); /*new String*/
   variable[24] = variable[23];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[24]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[24]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
   variable[3] = variable[8];
-  goto return_label70;
-  return_label70: while(false);
+  goto return_label69;
+  return_label69: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-val_t compiling_global___TableEltClassInitTablePos___symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 658, LOCATE_compiling_global___TableEltClassInitTablePos___symbol};
+val_t compiling_global___TableEltClassInitTable___symbol(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 699, LOCATE_compiling_global___TableEltClassInitTable___symbol};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ATTR_compiling_global___TableEltClassPos____local_class(variable[2]) /*TableEltClassPos::_local_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___global))(variable[2]) /*MMLocalClass::global*/;
-  variable[2] = ((compiling_base___MMGlobalClass___init_table_pos_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalClass___init_table_pos_id))(variable[2]) /*MMGlobalClass::init_table_pos_id*/;
+  variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[2]) /*AbsTableEltClass::_local_class*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
+  variable[2] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(variable[2])(variable[2]) /*MMGlobalClass::init_table_pos_id*/;
   variable[1] = variable[2];
-  goto return_label73;
-  return_label73: while(false);
+  goto return_label72;
+  return_label72: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t compiling_global___TableEltClassInitTablePos___value(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 659, LOCATE_compiling_global___TableEltClassInitTablePos___value};
-  val_t variable[14];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
-  variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-  variable[6] = variable[0];
-  variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
-  variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
-  variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)); /*new String*/
-  variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  variable[10] = variable[0];
-  variable[10] = ATTR_compiling_global___TableEltClassPos____local_class(variable[10]) /*TableEltClassPos::_local_class*/;
-  variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
-  variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
-  variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
-  variable[2] = variable[3];
-  goto return_label74;
-  return_label74: while(false);
-  tracehead = trace.prev;
-  return variable[2];
-}
-void compiling_global___TableEltClassInitTablePos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 675, LOCATE_compiling_global___TableEltClassInitTablePos___init};
-  val_t variable[3];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassInitTablePos].i]) return;
-  ((compiling_global___TableEltClassPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltClassPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltClassPos::init*/;
-  return_label75: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassInitTablePos].i] = 1;
-  tracehead = trace.prev;
-  return;
-}
-val_t compiling_global___TableEltClassColorPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 685, LOCATE_compiling_global___TableEltClassColorPos___compile_to_c};
+val_t compiling_global___TableEltClassColor___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 728, LOCATE_compiling_global___TableEltClassColor___compile_to_c};
   val_t variable[24];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2224,291 +2157,126 @@ val_t compiling_global___TableEltClassColorPos___compile_to_c(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
   variable[4] = variable[5];
-  variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
+  variable[6] = CALL_compiling_global___GlobalAnalysis___compiled_classes( variable[4] /*ga*/)( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
   variable[7] = variable[0];
-  variable[7] = ATTR_compiling_global___TableEltClassPos____local_class(variable[7]) /*TableEltClassPos::_local_class*/;
-  variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___global))(variable[7]) /*MMLocalClass::global*/;
-  variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/;
+  variable[7] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[7]) /*AbsTableEltClass::_local_class*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___global(variable[7])(variable[7]) /*MMLocalClass::global*/;
+  variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6], variable[7]) /*CoupleMap::[]*/;
   variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-  variable[9] = ((compiling_global___CompiledClass___id_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___CompiledClass___id))( variable[5] /*cc*/) /*CompiledClass::id*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+  variable[9] = CALL_compiling_global___CompiledClass___id( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::id*/;
   variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = variable[0];
-  variable[13] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[13]) /*ColorContext::color*/;
+  variable[13] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[13]) /*ColorContext::color*/;
   variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
   variable[17] =  variable[2] /*c*/;
-  variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[17]) /*String::append*/;
+  variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" < "), TAG_Int(3)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[19]) /*String::append*/;
-  variable[20] = ((compiling_global___CompiledClass___local_class_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___CompiledClass___local_class))( variable[5] /*cc*/) /*CompiledClass::local_class*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[19]) /*AbstractArray::add*/;
+  variable[20] = CALL_compiling_global___CompiledClass___local_class( variable[5] /*cc*/)( variable[5] /*cc*/) /*CompiledClass::local_class*/;
   variable[21] = variable[20];
-  variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[21]) /*String::append*/;
+  variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[21]) /*AbstractArray::add*/;
   variable[22] = NEW_String_string___String___with_native(BOX_NativeString(": superclass typecheck marker */"), TAG_Int(32)); /*new String*/
   variable[23] = variable[22];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[23]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[23]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[3] = variable[6];
-  goto return_label76;
-  return_label76: while(false);
+  goto return_label73;
+  return_label73: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-val_t compiling_global___TableEltClassColorPos___symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 680, LOCATE_compiling_global___TableEltClassColorPos___symbol};
+val_t compiling_global___TableEltClassColor___symbol(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 721, LOCATE_compiling_global___TableEltClassColor___symbol};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ATTR_compiling_global___TableEltClassPos____local_class(variable[2]) /*TableEltClassPos::_local_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___global))(variable[2]) /*MMLocalClass::global*/;
-  variable[2] = ((compiling_base___MMGlobalClass___color_id_t)CALL(variable[2],COLOR_compiling_base___MMGlobalClass___color_id))(variable[2]) /*MMGlobalClass::color_id*/;
+  variable[2] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[2]) /*AbsTableEltClass::_local_class*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
+  variable[2] = CALL_compiling_base___MMGlobalClass___color_id(variable[2])(variable[2]) /*MMGlobalClass::color_id*/;
   variable[1] = variable[2];
-  goto return_label77;
-  return_label77: while(false);
+  goto return_label74;
+  return_label74: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t compiling_global___TableEltClassColorPos___value(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 681, LOCATE_compiling_global___TableEltClassColorPos___value};
+val_t compiling_global___TableEltClassColor___value(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 723, LOCATE_compiling_global___TableEltClassColor___value};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
+  variable[6] = CALL_compiling_global___ColorContext___color( variable[1] /*ga*/)( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
   variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* Color of "), TAG_Int(13)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  variable[10] = variable[0];
-  variable[10] = ATTR_compiling_global___TableEltClassPos____local_class(variable[10]) /*TableEltClassPos::_local_class*/;
-  variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
-  variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
-  variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
-  variable[2] = variable[3];
-  goto return_label78;
-  return_label78: while(false);
-  tracehead = trace.prev;
-  return variable[2];
-}
-void compiling_global___TableEltClassColorPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 692, LOCATE_compiling_global___TableEltClassColorPos___init};
-  val_t variable[3];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassColorPos].i]) return;
-  ((compiling_global___TableEltClassPos___init_t)CALL(variable[0],COLOR_compiling_global___TableEltClassPos___init))(variable[0], variable[1], init_table /*YYY*/) /*TableEltClassPos::init*/;
-  return_label79: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassColorPos].i] = 1;
-  tracehead = trace.prev;
-  return;
-}
-val_t compiling_global___TableEltBaseAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 704, LOCATE_compiling_global___TableEltBaseAttrPos___compile_to_c};
-  val_t variable[28];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[2] =  param1;
-  variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
-  variable[4] = variable[5];
-  variable[6] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___GlobalAnalysis___compiled_classes))( variable[4] /*ga*/) /*GlobalAnalysis::compiled_classes*/;
-  variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[2] /*c*/) /*MMLocalClass::global*/;
-  variable[6] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6], variable[7]) /*CoupleMap::[]*/;
-  variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
-  variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-  variable[9] = variable[0];
-  variable[9] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[9]) /*TableEltBaseAttrPos::_local_class*/;
-  variable[9] = ((compiling_global___MMSrcLocalClass___instance_layout_t)CALL(variable[9],COLOR_compiling_global___MMSrcLocalClass___instance_layout))(variable[9]) /*MMSrcLocalClass::instance_layout*/;
-  variable[9] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[9],COLOR_abstract_collection___Collection___first))(variable[9]) /*IndexedCollection::first*/;
-  variable[9] = ((compiling_global___ColorContext___color_t)CALL( variable[5] /*cc*/,COLOR_compiling_global___ColorContext___color))( variable[5] /*cc*/, variable[9]) /*ColorContext::color*/;
-  variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
-  variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
-  variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-  variable[13] = variable[0];
-  variable[13] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[13]) /*ColorContext::color*/;
-  variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
-  variable[15] = NEW_String_string___String___with_native(BOX_NativeString(": Base attribut offset of "), TAG_Int(26)); /*new String*/
-  variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
-  variable[17] = variable[0];
-  variable[17] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[17]) /*TableEltBaseAttrPos::_local_class*/;
-  variable[17] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[17],COLOR_abstractmetamodel___MMLocalClass___module))(variable[17]) /*MMLocalClass::module*/;
-  variable[18] = variable[17];
-  variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[18]) /*String::append*/;
-  variable[19] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
-  variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[20]) /*String::append*/;
-  variable[21] = variable[0];
-  variable[21] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[21]) /*TableEltBaseAttrPos::_local_class*/;
-  variable[22] = variable[21];
-  variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[22]) /*String::append*/;
-  variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
-  variable[24] = variable[23];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[24]) /*String::append*/;
-  variable[25] =  variable[2] /*c*/;
-  variable[25] = ((string___String___to_s_t)CALL(variable[25],COLOR_string___Object___to_s))(variable[25]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[25]) /*String::append*/;
-  variable[26] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
-  variable[27] = variable[26];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[27]) /*String::append*/;
-  variable[3] = variable[6];
-  goto return_label80;
-  return_label80: while(false);
-  tracehead = trace.prev;
-  return variable[3];
-}
-val_t compiling_global___TableEltBaseAttrPos___symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 698, LOCATE_compiling_global___TableEltBaseAttrPos___symbol};
-  val_t variable[13];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
-  variable[3] = NEW_String_string___String___with_native(BOX_NativeString("COLOR_"), TAG_Int(6)); /*new String*/
-  variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
-  variable[5] = variable[0];
-  variable[5] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[5]) /*TableEltBaseAttrPos::_local_class*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/;
-  variable[6] = variable[5];
-  variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
-  variable[7] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
-  variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
-  variable[9] = variable[0];
-  variable[9] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[9]) /*TableEltBaseAttrPos::_local_class*/;
-  variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/;
-  variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[10]) /*String::append*/;
-  variable[11] = NEW_String_string___String___with_native(BOX_NativeString("_BASEATTR"), TAG_Int(9)); /*new String*/
-  variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[12]) /*String::append*/;
-  variable[1] = variable[2];
-  goto return_label81;
-  return_label81: while(false);
-  tracehead = trace.prev;
-  return variable[1];
-}
-val_t compiling_global___TableEltBaseAttrPos___value(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 699, LOCATE_compiling_global___TableEltBaseAttrPos___value};
-  val_t variable[14];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
-  variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-  variable[6] = variable[0];
-  variable[6] = ((compiling_global___ColorContext___color_t)CALL( variable[1] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[1] /*ga*/, variable[6]) /*ColorContext::color*/;
-  variable[7] = variable[6];
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
-  variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /* BaseAttrPos of "), TAG_Int(19)); /*new String*/
-  variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[10]) /*TableEltBaseAttrPos::_local_class*/;
+  variable[10] = ATTR_compiling_global___AbsTableEltClass____local_class(variable[10]) /*AbsTableEltClass::_local_class*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label82;
-  return_label82: while(false);
+  goto return_label75;
+  return_label75: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
-void compiling_global___TableEltBaseAttrPos___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 711, LOCATE_compiling_global___TableEltBaseAttrPos___init};
-  val_t variable[4];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  variable[1] =  param0;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltBaseAttrPos].i]) return;
-  variable[3] = variable[0];
-  ATTR_compiling_global___TableEltBaseAttrPos____local_class(variable[3]) /*TableEltBaseAttrPos::_local_class*/ =  variable[1] /*c*/;
-  return_label83: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltBaseAttrPos].i] = 1;
-  tracehead = trace.prev;
-  return;
-}
 val_t compiling_global___TableEltComposite___is_related_to(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 723, LOCATE_compiling_global___TableEltComposite___is_related_to};
+  struct trace_t trace = {NULL, NULL, 743, LOCATE_compiling_global___TableEltComposite___is_related_to};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[1] /*c*/) /*MMLocalClass::cshe*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::cshe*/;
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_global___TableEltComposite____cc(variable[4]) /*TableEltComposite::_cc*/;
-  variable[4] = ((compiling_global___CompiledClass___local_class_t)CALL(variable[4],COLOR_compiling_global___CompiledClass___local_class))(variable[4]) /*CompiledClass::local_class*/;
-  variable[3] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement_____leq))(variable[3], variable[4]) /*PartialOrderElement::<=*/;
+  variable[4] = CALL_compiling_global___CompiledClass___local_class(variable[4])(variable[4]) /*CompiledClass::local_class*/;
+  variable[3] = CALL_partial_order___PartialOrderElement_____leq(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<=*/;
   variable[2] = variable[3];
-  goto return_label84;
-  return_label84: while(false);
+  goto return_label76;
+  return_label76: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_global___TableEltComposite___length(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 722, LOCATE_compiling_global___TableEltComposite___length};
+  struct trace_t trace = {NULL, NULL, 742, LOCATE_compiling_global___TableEltComposite___length};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2516,15 +2284,15 @@ val_t compiling_global___TableEltComposite___length(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_compiling_global___TableEltComposite____table(variable[2]) /*TableEltComposite::_table*/;
-  variable[2] = ((array___AbstractArray___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*AbstractArray::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArray::length*/;
   variable[1] = variable[2];
-  goto return_label85;
-  return_label85: while(false);
+  goto return_label77;
+  return_label77: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_global___TableEltComposite___item(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 731, LOCATE_compiling_global___TableEltComposite___item};
+  struct trace_t trace = {NULL, NULL, 751, LOCATE_compiling_global___TableEltComposite___item};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2548,17 +2316,17 @@ val_t compiling_global___TableEltComposite___item(val_t  self, val_t  param0) {
   variable[7] = ATTR_array___Array____items(variable[7]) /*Array::_items*/;
   variable[7] = UNBOX_NativeArray(variable[7])[UNTAG_Int( variable[5] /*index*/)];
   variable[6] = variable[7];
-  goto return_label87;
-  return_label87: while(false);
+  goto return_label79;
+  return_label79: while(false);
   variable[3] = variable[6];
   variable[2] = variable[3];
-  goto return_label86;
-  return_label86: while(false);
+  goto return_label78;
+  return_label78: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_global___TableEltComposite___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 733, LOCATE_compiling_global___TableEltComposite___compile_to_c};
+  struct trace_t trace = {NULL, NULL, 753, LOCATE_compiling_global___TableEltComposite___compile_to_c};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2566,13 +2334,13 @@ val_t compiling_global___TableEltComposite___compile_to_c(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltComposite___compile_to_c, LOCATE_compiling_global, 733); nit_exit(1);
-  return_label88: while(false);
+  fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___TableEltComposite___compile_to_c, LOCATE_compiling_global, 753); nit_exit(1);
+  return_label80: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 void compiling_global___TableEltComposite___add(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 725, LOCATE_compiling_global___TableEltComposite___add};
+  struct trace_t trace = {NULL, NULL, 745, LOCATE_compiling_global___TableEltComposite___add};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2584,17 +2352,17 @@ void compiling_global___TableEltComposite___add(val_t  self, val_t  param0, val_
   variable[4] = ATTR_compiling_global___TableEltComposite____offsets(variable[4]) /*TableEltComposite::_offsets*/;
   variable[5] = variable[0];
   variable[5] = ATTR_compiling_global___TableEltComposite____table(variable[5]) /*TableEltComposite::_table*/;
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
-  ((hash___HashMap_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[1] /*c*/, variable[5]) /*HashMap::[]=*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*c*/, variable[5]) /*HashMap::[]=*/;
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_global___TableEltComposite____table(variable[4]) /*TableEltComposite::_table*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4],  variable[2] /*tab*/) /*IndexedCollection::append*/;
-  return_label89: while(false);
+  CALL_abstract_collection___IndexedCollection___append(variable[4])(variable[4],  variable[2] /*tab*/) /*IndexedCollection::append*/;
+  return_label81: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_global___TableEltComposite___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 735, LOCATE_compiling_global___TableEltComposite___init};
+  struct trace_t trace = {NULL, NULL, 755, LOCATE_compiling_global___TableEltComposite___init};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2605,18 +2373,18 @@ void compiling_global___TableEltComposite___init(val_t  self, val_t  param0, int
   variable[3] = variable[0];
   ATTR_compiling_global___TableEltComposite____cc(variable[3]) /*TableEltComposite::_cc*/ =  variable[1] /*cc*/;
   variable[3] = variable[0];
-  variable[4] = NEW_Array_array___Array___init(); /*new Array[LocalTableElt]*/
+  variable[4] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
   ATTR_compiling_global___TableEltComposite____table(variable[3]) /*TableEltComposite::_table*/ = variable[4];
   variable[3] = variable[0];
   variable[4] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMLocalClass, Int]*/
   ATTR_compiling_global___TableEltComposite____offsets(variable[3]) /*TableEltComposite::_offsets*/ = variable[4];
-  return_label90: while(false);
+  return_label82: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltComposite].i] = 1;
   tracehead = trace.prev;
   return;
 }
 val_t compiling_global___TableEltClassSelfId___is_related_to(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 745, LOCATE_compiling_global___TableEltClassSelfId___is_related_to};
+  struct trace_t trace = {NULL, NULL, 766, LOCATE_compiling_global___TableEltClassSelfId___is_related_to};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2624,13 +2392,13 @@ val_t compiling_global___TableEltClassSelfId___is_related_to(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  TAG_Bool(true);
-  goto return_label91;
-  return_label91: while(false);
+  goto return_label83;
+  return_label83: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 746, LOCATE_compiling_global___TableEltClassSelfId___compile_to_c};
+  struct trace_t trace = {NULL, NULL, 767, LOCATE_compiling_global___TableEltClassSelfId___compile_to_c};
   val_t variable[16];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2638,52 +2406,40 @@ val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
   variable[4] = variable[5];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
-  variable[8] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
-  variable[8] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL(variable[8],COLOR_compiling_global___GlobalAnalysis___compiled_classes))(variable[8]) /*GlobalAnalysis::compiled_classes*/;
-  variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[2] /*c*/) /*MMLocalClass::global*/;
-  variable[8] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[8],COLOR_abstract_collection___Map_____bra))(variable[8], variable[9]) /*CoupleMap::[]*/;
-  variable[8] = ((compiling_global___CompiledClass___id_t)CALL(variable[8],COLOR_compiling_global___CompiledClass___id))(variable[8]) /*CompiledClass::id*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+  variable[8] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[8] = CALL_compiling_global___GlobalAnalysis___compiled_classes(variable[8])(variable[8]) /*GlobalAnalysis::compiled_classes*/;
+  variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::global*/;
+  variable[8] = CALL_abstract_collection___Map_____bra(variable[8])(variable[8], variable[9]) /*CoupleMap::[]*/;
+  variable[8] = CALL_compiling_global___CompiledClass___id(variable[8])(variable[8]) /*CompiledClass::id*/;
   variable[9] = variable[8];
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" /* "), TAG_Int(4)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] = variable[0];
-  variable[12] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[12]) /*ColorContext::color*/;
+  variable[12] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[12]) /*ColorContext::color*/;
   variable[13] = variable[12];
-  variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+  variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString(": Identity */"), TAG_Int(13)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[3] = variable[5];
-  goto return_label92;
-  return_label92: while(false);
+  goto return_label84;
+  return_label84: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-void compiling_global___TableEltClassSelfId___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 752, LOCATE_compiling_global___TableEltClassSelfId___init};
-  val_t variable[2];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassSelfId].i]) return;
-  return_label93: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltClassSelfId].i] = 1;
-  tracehead = trace.prev;
-  return;
-}
 val_t compiling_global___TableEltVftPointer___is_related_to(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 757, LOCATE_compiling_global___TableEltVftPointer___is_related_to};
+  struct trace_t trace = {NULL, NULL, 777, LOCATE_compiling_global___TableEltVftPointer___is_related_to};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2691,13 +2447,13 @@ val_t compiling_global___TableEltVftPointer___is_related_to(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  TAG_Bool(true);
-  goto return_label94;
-  return_label94: while(false);
+  goto return_label85;
+  return_label85: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_global___TableEltVftPointer___compile_to_c(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 758, LOCATE_compiling_global___TableEltVftPointer___compile_to_c};
+  struct trace_t trace = {NULL, NULL, 778, LOCATE_compiling_global___TableEltVftPointer___compile_to_c};
   val_t variable[12];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2705,41 +2461,29 @@ val_t compiling_global___TableEltVftPointer___compile_to_c(val_t  self, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[5] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
   variable[4] = variable[5];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("/* "), TAG_Int(3)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((compiling_global___ColorContext___color_t)CALL( variable[4] /*ga*/,COLOR_compiling_global___ColorContext___color))( variable[4] /*ga*/, variable[8]) /*ColorContext::color*/;
+  variable[8] = CALL_compiling_global___ColorContext___color( variable[4] /*ga*/)( variable[4] /*ga*/, variable[8]) /*ColorContext::color*/;
   variable[9] = variable[8];
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": Pointer to the classtable */"), TAG_Int(30)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[3] = variable[5];
-  goto return_label95;
-  return_label95: while(false);
+  goto return_label86;
+  return_label86: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
-void compiling_global___TableEltVftPointer___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 764, LOCATE_compiling_global___TableEltVftPointer___init};
-  val_t variable[2];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_global;
-  variable[0] =  self;
-  if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltVftPointer].i]) return;
-  return_label96: while(false);
-  init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TableEltVftPointer].i] = 1;
-  tracehead = trace.prev;
-  return;
-}
 val_t compiling_global___ClassSorter___compare(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 771, LOCATE_compiling_global___ClassSorter___compare};
+  struct trace_t trace = {NULL, NULL, 791, LOCATE_compiling_global___ClassSorter___compare};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2747,28 +2491,28 @@ val_t compiling_global___ClassSorter___compare(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((compiling_global___MMLocalClass___compare_t)CALL( variable[1] /*a*/,COLOR_compiling_global___MMLocalClass___compare))( variable[1] /*a*/,  variable[2] /*b*/) /*MMLocalClass::compare*/;
+  variable[4] = CALL_compiling_global___MMLocalClass___compare( variable[1] /*a*/)( variable[1] /*a*/,  variable[2] /*b*/) /*MMLocalClass::compare*/;
   variable[3] = variable[4];
-  goto return_label97;
-  return_label97: while(false);
+  goto return_label87;
+  return_label87: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 void compiling_global___ClassSorter___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 772, LOCATE_compiling_global___ClassSorter___init};
+  struct trace_t trace = {NULL, NULL, 792, LOCATE_compiling_global___ClassSorter___init};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSorter].i]) return;
-  return_label98: while(false);
+  return_label88: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSorter].i] = 1;
   tracehead = trace.prev;
   return;
 }
 val_t compiling_global___MMLocalClass___compare(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 776, LOCATE_compiling_global___MMLocalClass___compare};
+  struct trace_t trace = {NULL, NULL, 796, LOCATE_compiling_global___MMLocalClass___compare};
   val_t variable[8];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2777,62 +2521,62 @@ val_t compiling_global___MMLocalClass___compare(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*a*/ ==  variable[1] /*b*/) || (( variable[3] /*a*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*a*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*a*/, variable[1] /*b*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*a*/,COLOR_kernel___Object_____eqeq))( variable[3] /*a*/,  variable[1] /*b*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*a*/ ==  variable[1] /*b*/) || (( variable[3] /*a*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*a*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*a*/, variable[1] /*b*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*a*/)( variable[3] /*a*/,  variable[1] /*b*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  TAG_Int(0);
-    goto return_label99;
+    goto return_label89;
   } else { /*if*/
-    variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[3] /*a*/) /*MMLocalClass::module*/;
-    variable[4] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___mhe))(variable[4]) /*MMModule::mhe*/;
-    variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*b*/) /*MMLocalClass::module*/;
-    variable[4] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____l))(variable[4], variable[5]) /*PartialOrderElement::<*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::module*/;
+    variable[4] = CALL_abstractmetamodel___MMModule___mhe(variable[4])(variable[4]) /*MMModule::mhe*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::module*/;
+    variable[4] = CALL_partial_order___PartialOrderElement_____l(variable[4])(variable[4], variable[5]) /*PartialOrderElement::<*/;
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[2] =  TAG_Int(1);
-      goto return_label99;
+      goto return_label89;
     } else { /*if*/
-      variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*b*/) /*MMLocalClass::module*/;
-      variable[4] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___mhe))(variable[4]) /*MMModule::mhe*/;
-      variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[3] /*a*/) /*MMLocalClass::module*/;
-      variable[4] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____l))(variable[4], variable[5]) /*PartialOrderElement::<*/;
+      variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::module*/;
+      variable[4] = CALL_abstractmetamodel___MMModule___mhe(variable[4])(variable[4]) /*MMModule::mhe*/;
+      variable[5] = CALL_abstractmetamodel___MMLocalClass___module( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::module*/;
+      variable[4] = CALL_partial_order___PartialOrderElement_____l(variable[4])(variable[4], variable[5]) /*PartialOrderElement::<*/;
       if (UNTAG_Bool(variable[4])) { /*if*/
         variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
         variable[2] = variable[4];
-        goto return_label99;
+        goto return_label89;
       }
     }
   }
-  variable[5] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[3] /*a*/) /*MMLocalClass::cshe*/;
-  variable[5] = ((partial_order___PartialOrderElement___rank_t)CALL(variable[5],COLOR_partial_order___PartialOrderElement___rank))(variable[5]) /*PartialOrderElement::rank*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::cshe*/;
+  variable[5] = CALL_partial_order___PartialOrderElement___rank(variable[5])(variable[5]) /*PartialOrderElement::rank*/;
   variable[4] = variable[5];
-  variable[6] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[1] /*b*/) /*MMLocalClass::cshe*/;
-  variable[6] = ((partial_order___PartialOrderElement___rank_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement___rank))(variable[6]) /*PartialOrderElement::rank*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::cshe*/;
+  variable[6] = CALL_partial_order___PartialOrderElement___rank(variable[6])(variable[6]) /*PartialOrderElement::rank*/;
   variable[5] = variable[6];
   variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*ar*/)>UNTAG_Int( variable[5] /*br*/));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[2] =  TAG_Int(1);
-    goto return_label99;
+    goto return_label89;
   } else { /*if*/
     variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*br*/)>UNTAG_Int( variable[4] /*ar*/));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
       variable[2] = variable[6];
-      goto return_label99;
+      goto return_label89;
     } else { /*if*/
-      variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[1] /*b*/) /*MMLocalClass::name*/;
-      variable[6] = ((symbol___Symbol___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*Symbol::to_s*/;
-      variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[3] /*a*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[3] /*a*/) /*MMLocalClass::name*/;
-      variable[7] = ((symbol___Symbol___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*Symbol::to_s*/;
-      variable[6] = ((kernel___Comparable_____leqg_t)CALL(variable[6],COLOR_kernel___Comparable_____leqg))(variable[6], variable[7]) /*Comparable::<=>*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalClass___name( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::name*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Symbol::to_s*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalClass___name( variable[3] /*a*/)( variable[3] /*a*/) /*MMLocalClass::name*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Symbol::to_s*/;
+      variable[6] = CALL_kernel___Comparable_____leqg(variable[6])(variable[6], variable[7]) /*Comparable::<=>*/;
       variable[2] = variable[6];
-      goto return_label99;
+      goto return_label89;
     }
   }
-  return_label99: while(false);
+  return_label89: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_global___MMLocalClass___declare_tables_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 798, LOCATE_compiling_global___MMLocalClass___declare_tables_to_c};
+  struct trace_t trace = {NULL, NULL, 818, LOCATE_compiling_global___MMLocalClass___declare_tables_to_c};
   val_t variable[16];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2840,609 +2584,631 @@ void compiling_global___MMLocalClass___declare_tables_to_c(val_t  self, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_decl*/;
   variable[4] = variable[0];
-  variable[4] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[4],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[4]) /*MMLocalClass::primitive_info*/;
+  variable[4] = CALL_compiling_base___MMLocalClass___primitive_info(variable[4])(variable[4]) /*MMLocalClass::primitive_info*/;
   variable[3] = variable[4];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("extern const classtable_elt_t VFT_"), TAG_Int(34)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
-  variable[7] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___name))(variable[7]) /*MMLocalClass::name*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___name(variable[7])(variable[7]) /*MMLocalClass::name*/;
   variable[8] = variable[7];
-  variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("[];"), TAG_Int(3)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/;
-  variable[4] = TAG_Bool(( variable[3] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[3] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_decl*/;
+  variable[4] = TAG_Bool(( variable[3] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[3] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*pi*/)( variable[3] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
   } else { /*if*/
-    variable[4] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
+    variable[4] = CALL_compiling_base___PrimitiveInfo___tagged( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::tagged*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
-      variable[5] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[3] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[3] /*pi*/) /*PrimitiveInfo::cname*/;
+      variable[5] = CALL_compiling_base___PrimitiveInfo___cname( variable[3] /*pi*/)( variable[3] /*pi*/) /*PrimitiveInfo::cname*/;
       variable[4] = variable[5];
-      variable[6] = NEW_String_string___String___init(); /*new String*/
+      variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
       variable[9] = variable[0];
-      variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
       variable[10] = variable[9];
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
       variable[5] = variable[6];
-      variable[6] = NEW_String_string___String___init(); /*new String*/
+      variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
       variable[9] =  variable[5] /*tbox*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" { const classtable_elt_t * vft; "), TAG_Int(33)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
       variable[12] =  variable[4] /*t*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" val;};"), TAG_Int(7)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
-      variable[6] = NEW_String_string___String___init(); /*new String*/
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
+      variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
       variable[9] = variable[0];
-      variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
       variable[10] = variable[9];
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[4] /*t*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" val);"), TAG_Int(6)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
-      variable[6] = NEW_String_string___String___init(); /*new String*/
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
+      variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("#define UNBOX_"), TAG_Int(14)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
       variable[9] = variable[0];
-      variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
       variable[10] = variable[9];
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(x) ((("), TAG_Int(7)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[5] /*tbox*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" *)(VAL2OBJ(x)))->val)"), TAG_Int(22)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_decl*/;
     }
   }
-  return_label100: while(false);
+  return_label90: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_global___MMLocalClass___compile_tables_to_c(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 815, LOCATE_compiling_global___MMLocalClass___compile_tables_to_c};
+  struct trace_t trace = {NULL, NULL, 835, LOCATE_compiling_global___MMLocalClass___compile_tables_to_c};
   val_t variable[36];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_global;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
-  variable[4] = ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL(variable[4],COLOR_compiling_global___GlobalAnalysis___compiled_classes))(variable[4]) /*GlobalAnalysis::compiled_classes*/;
+  variable[4] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[4] = CALL_compiling_global___GlobalAnalysis___compiled_classes(variable[4])(variable[4]) /*GlobalAnalysis::compiled_classes*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___global))(variable[5]) /*MMLocalClass::global*/;
-  variable[4] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4], variable[5]) /*CoupleMap::[]*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[5])(variable[5]) /*MMLocalClass::global*/;
+  variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4], variable[5]) /*CoupleMap::[]*/;
   variable[3] = variable[4];
-  variable[5] = ((compiling_global___CompiledClass___class_table_t)CALL( variable[3] /*cc*/,COLOR_compiling_global___CompiledClass___class_table))( variable[3] /*cc*/) /*CompiledClass::class_table*/;
+  variable[5] = CALL_compiling_global___CompiledClass___class_table( variable[3] /*cc*/)( variable[3] /*cc*/) /*CompiledClass::class_table*/;
   variable[4] = variable[5];
-  variable[6] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
   variable[5] = variable[6];
-  variable[6] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
-  variable[6] = ((compiling_global___GlobalAnalysis___max_class_table_length_t)CALL(variable[6],COLOR_compiling_global___GlobalAnalysis___max_class_table_length))(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
-  variable[7] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/;
+  variable[6] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+  variable[6] = CALL_compiling_global___GlobalAnalysis___max_class_table_length(variable[6])(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
+  variable[7] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
   variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int(variable[7]));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = ((compiling_global___CompilerVisitor___global_analysis_t)CALL( variable[1] /*v*/,COLOR_compiling_global___CompilerVisitor___global_analysis))( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
-    variable[6] = ((compiling_global___GlobalAnalysis___max_class_table_length_t)CALL(variable[6],COLOR_compiling_global___GlobalAnalysis___max_class_table_length))(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
+    variable[6] = CALL_compiling_global___CompilerVisitor___global_analysis( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::global_analysis*/;
+    variable[6] = CALL_compiling_global___GlobalAnalysis___max_class_table_length(variable[6])(variable[6]) /*GlobalAnalysis::max_class_table_length*/;
     variable[5] = variable[6] /*clen=*/;
   }
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("const classtable_elt_t VFT_"), TAG_Int(27)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
-  variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/;
+  variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
   variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] =  variable[5] /*clen*/;
-  variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+  variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString("] = {"), TAG_Int(5)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*ctab*/) /*AbstractArray::iterator*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
-    variable[9] = TAG_Bool(( variable[8] /*e*/ ==  NIT_NULL /*null*/) || (( variable[8] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*e*/,COLOR_kernel___Object_____eqeq))( variable[8] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[9] = TAG_Bool(( variable[8] /*e*/ ==  NIT_NULL /*null*/) || (( variable[8] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*e*/)( variable[8] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("{0} /* Class Hole :( */,"), TAG_Int(24)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
     } else { /*if*/
-      variable[9] = NEW_String_string___String___init(); /*new String*/
+      variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("{(bigint) "), TAG_Int(10)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
       variable[12] = variable[0];
-      variable[12] = ((compiling_global___TableElt___compile_to_c_t)CALL( variable[8] /*e*/,COLOR_compiling_global___TableElt___compile_to_c))( variable[8] /*e*/,  variable[1] /*v*/, variable[12]) /*TableElt::compile_to_c*/;
+      variable[12] = CALL_compiling_global___TableElt___compile_to_c( variable[8] /*e*/)( variable[8] /*e*/,  variable[1] /*v*/, variable[12]) /*TableElt::compile_to_c*/;
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString("},"), TAG_Int(2)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
     }
-    continue_102: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    continue_92: while(0);
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
-  break_102: while(0);
-  variable[6] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/;
+  break_92: while(0);
+  variable[6] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
   variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*clen*/)>UNTAG_Int(variable[6]));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("{0},"), TAG_Int(4)); /*new String*/
-    variable[7] = ((array___AbstractArray___length_t)CALL( variable[4] /*ctab*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ctab*/) /*AbstractArray::length*/;
+    variable[7] = CALL_abstract_collection___Collection___length( variable[4] /*ctab*/)( variable[4] /*ctab*/) /*AbstractArray::length*/;
     variable[7] = TAG_Int(UNTAG_Int( variable[5] /*clen*/)-UNTAG_Int(variable[7]));
-    variable[6] = ((string___String_____star_t)CALL(variable[6],COLOR_string___String_____star))(variable[6], variable[7]) /*String::**/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+    variable[6] = CALL_string___String_____star(variable[6])(variable[6], variable[7]) /*String::**/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
   }
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
-  variable[7] = ((compiling_global___CompiledClass___instance_table_t)CALL( variable[3] /*cc*/,COLOR_compiling_global___CompiledClass___instance_table))( variable[3] /*cc*/) /*CompiledClass::instance_table*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  variable[7] = CALL_compiling_global___CompiledClass___instance_table( variable[3] /*cc*/)( variable[3] /*cc*/) /*CompiledClass::instance_table*/;
   variable[6] = variable[7];
-  variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*itab*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*itab*/) /*AbstractArray::iterator*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator( variable[6] /*itab*/)( variable[6] /*itab*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
-    variable[10] = TAG_Bool(( variable[9] /*e*/ ==  NIT_NULL /*null*/) || (( variable[9] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*e*/,COLOR_kernel___Object_____eqeq))( variable[9] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[10] = TAG_Bool(( variable[9] /*e*/ ==  NIT_NULL /*null*/) || (( variable[9] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*e*/)( variable[9] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("/* Instance Hole :( */"), TAG_Int(22)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
     } else { /*if*/
       variable[10] = variable[0];
-      variable[10] = ((compiling_global___TableElt___compile_to_c_t)CALL( variable[9] /*e*/,COLOR_compiling_global___TableElt___compile_to_c))( variable[9] /*e*/,  variable[1] /*v*/, variable[10]) /*TableElt::compile_to_c*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      variable[10] = CALL_compiling_global___TableElt___compile_to_c( variable[9] /*e*/)( variable[9] /*e*/,  variable[1] /*v*/, variable[10]) /*TableElt::compile_to_c*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
     }
-    continue_103: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    continue_93: while(0);
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
-  break_103: while(0);
+  break_93: while(0);
   variable[8] = variable[0];
-  variable[8] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[8],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[8]) /*MMLocalClass::primitive_info*/;
+  variable[8] = CALL_compiling_base___MMLocalClass___primitive_info(variable[8])(variable[8]) /*MMLocalClass::primitive_info*/;
   variable[7] = variable[8];
-  variable[8] = TAG_Bool(( variable[7] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[7] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[8] = TAG_Bool(( variable[7] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*pi*/)( variable[7] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = NEW_CFunctionContext_compiling_methods___CFunctionContext___init( variable[1] /*v*/); /*new CFunctionContext*/
-    ((compiling_methods___CompilerVisitor___cfc__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc__eq))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::cfc=*/;
+    CALL_compiling_methods___CompilerVisitor___cfc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::cfc=*/;
     variable[8] = NEW_NitMethodContext_compiling_methods___NitMethodContext___init( NIT_NULL /*null*/); /*new NitMethodContext*/
-    ((compiling_methods___CompilerVisitor___nmc__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc__eq))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::nmc=*/;
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    CALL_compiling_methods___CompilerVisitor___nmc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::nmc=*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] = variable[0];
-    variable[12] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___name))(variable[12]) /*MMLocalClass::name*/;
+    variable[12] = CALL_abstractmetamodel___MMLocalClass___name(variable[12])(variable[12]) /*MMLocalClass::name*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("(void)"), TAG_Int(6)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
     variable[8] = variable[9];
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/
-    variable[9] = ((string___String_____plus_t)CALL( variable[8] /*s*/,COLOR_string___String_____plus))( variable[8] /*s*/, variable[9]) /*String::+*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
-    ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-    variable[10] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+    variable[9] = CALL_string___String_____plus( variable[8] /*s*/)( variable[8] /*s*/, variable[9]) /*String::+*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+    variable[10] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
     variable[9] = variable[10];
     variable[10] = NEW_CContext_compiling_base___CContext___init(); /*new CContext*/
-    ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::ctx=*/;
+    CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::ctx=*/;
     variable[11] = NEW_ParamVariable_syntax_base___ParamVariable___init( NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new ParamVariable*/
     variable[10] = variable[11];
-    variable[12] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-    variable[12] = ((compiling_methods___CFunctionContext___register_variable_t)CALL(variable[12],COLOR_compiling_methods___CFunctionContext___register_variable))(variable[12],  variable[10] /*self_var*/) /*CFunctionContext::register_variable*/;
+    variable[12] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    variable[12] = CALL_compiling_methods___CFunctionContext___register_variable(variable[12])(variable[12],  variable[10] /*self_var*/) /*CFunctionContext::register_variable*/;
     variable[11] = variable[12];
-    variable[12] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[12] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
     variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[ParamVariable]*/
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  variable[10] /*self_var*/) /*AbstractArray::add*/;
-    ((compiling_methods___NitMethodContext___method_params__eq_t)CALL(variable[12],COLOR_compiling_methods___NitMethodContext___method_params__eq))(variable[12], variable[13]) /*NitMethodContext::method_params=*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  variable[10] /*self_var*/) /*AbstractArray::add*/;
+    CALL_compiling_methods___NitMethodContext___method_params__eq(variable[12])(variable[12], variable[13]) /*NitMethodContext::method_params=*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("obj_t obj;"), TAG_Int(10)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
-    variable[12] = NEW_String_string___String___init(); /*new String*/
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
+    variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj = alloc(sizeof(val_t) * "), TAG_Int(28)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
-    variable[15] = ((array___AbstractArray___length_t)CALL( variable[6] /*itab*/,COLOR_abstract_collection___Collection___length))( variable[6] /*itab*/) /*AbstractArray::length*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
+    variable[15] = CALL_abstract_collection___Collection___length( variable[6] /*itab*/)( variable[6] /*itab*/) /*AbstractArray::length*/;
     variable[16] = variable[15];
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
-    variable[12] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
+    variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
+    variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_"), TAG_Int(34)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
     variable[15] = variable[0];
-    variable[15] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[15],COLOR_abstractmetamodel___MMLocalClass___name))(variable[15]) /*MMLocalClass::name*/;
+    variable[15] = CALL_abstractmetamodel___MMLocalClass___name(variable[15])(variable[15]) /*MMLocalClass::name*/;
     variable[16] = variable[15];
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
+    variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("OBJ2VAL(obj)"), TAG_Int(12)); /*new String*/
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[11] /*self_var_cname*/, variable[12]) /*CompilerVisitor::add_assignment*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[11] /*self_var_cname*/, variable[12]) /*CompilerVisitor::add_assignment*/;
     variable[12] = variable[0];
-    variable[12] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___global_properties))(variable[12]) /*MMLocalClass::global_properties*/;
-    variable[12] = ((abstract_collection___Collection___iterator_t)CALL(variable[12],COLOR_abstract_collection___Collection___iterator))(variable[12]) /*Collection::iterator*/;
+    variable[12] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[12])(variable[12]) /*MMLocalClass::global_properties*/;
+    variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[13] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[12],COLOR_abstract_collection___Iterator___is_ok))(variable[12]) /*Iterator::is_ok*/;
+      variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[13])) break; /*for*/
-      variable[13] = ((abstract_collection___Iterator___item_t)CALL(variable[12],COLOR_abstract_collection___Iterator___item))(variable[12]) /*Iterator::item*/;
+      variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/;
       variable[14] = variable[13];
       variable[16] = variable[0];
-      variable[16] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[16],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[16],  variable[14] /*g*/) /*MMLocalClass::[]*/;
+      variable[16] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[16])(variable[16],  variable[14] /*g*/) /*MMLocalClass::[]*/;
       variable[15] = variable[16];
-      variable[17] = ((static_type___MMLocalProperty___signature_t)CALL( variable[15] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[15] /*p*/) /*MMLocalProperty::signature*/;
-      variable[17] = ((static_type___MMSignature___return_type_t)CALL(variable[17],COLOR_static_type___MMSignature___return_type))(variable[17]) /*MMSignature::return_type*/;
+      variable[17] = CALL_static_type___MMLocalProperty___signature( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::signature*/;
+      variable[17] = CALL_static_type___MMSignature___return_type(variable[17])(variable[17]) /*MMSignature::return_type*/;
       variable[16] = variable[17];
       variable[17] = TAG_Bool(( variable[15] /*p*/==NIT_NULL) || VAL_ISA( variable[15] /*p*/, COLOR_MMAttribute, ID_MMAttribute)) /*cast MMAttribute*/;
       variable[18] = variable[17];
       if (UNTAG_Bool(variable[18])) { /* and */
-        variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*t*/ ==  NIT_NULL /*null*/) || (( variable[16] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*t*/,COLOR_kernel___Object_____eqeq))( variable[16] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*t*/ ==  NIT_NULL /*null*/) || (( variable[16] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*t*/)( variable[16] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       }
       variable[17] = variable[18];
       if (UNTAG_Bool(variable[17])) { /*if*/
         variable[17] = TAG_Bool(( variable[15] /*p*/==NIT_NULL) || VAL_ISA( variable[15] /*p*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
-        if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 872); nit_exit(1);}
-        variable[18] = ((syntax_base___MMSrcAttribute___node_t)CALL( variable[15] /*p*/,COLOR_syntax_base___MMLocalProperty___node))( variable[15] /*p*/) /*MMSrcAttribute::node*/;
+        if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 892); nit_exit(1);}
+        variable[18] = CALL_syntax_base___MMLocalProperty___node( variable[15] /*p*/)( variable[15] /*p*/) /*MMSrcAttribute::node*/;
         variable[17] = variable[18];
         variable[18] = TAG_Bool(( variable[17] /*np*/==NIT_NULL) || VAL_ISA( variable[17] /*np*/, COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast AAttrPropdef*/;
-        if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 874); nit_exit(1);}
-        variable[19] = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( variable[17] /*np*/,COLOR_parser_nodes___AAttrPropdef___n_expr))( variable[17] /*np*/) /*AAttrPropdef::n_expr*/;
+        if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_global___MMLocalClass___compile_tables_to_c, LOCATE_compiling_global, 894); nit_exit(1);}
+        variable[19] = CALL_parser_nodes___AAttrPropdef___n_expr( variable[17] /*np*/)( variable[17] /*np*/) /*AAttrPropdef::n_expr*/;
         variable[18] = variable[19];
-        variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*ne*/ ==  NIT_NULL /*null*/) || (( variable[18] /*ne*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*ne*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*ne*/,COLOR_kernel___Object_____eqeq))( variable[18] /*ne*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*ne*/ ==  NIT_NULL /*null*/) || (( variable[18] /*ne*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*ne*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*ne*/)( variable[18] /*ne*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
         if (UNTAG_Bool(variable[19])) { /*if*/
-          variable[20] = ((compiling_methods___PExpr___compile_expr_t)CALL( variable[18] /*ne*/,COLOR_compiling_methods___PExpr___compile_expr))( variable[18] /*ne*/,  variable[1] /*v*/) /*PExpr::compile_expr*/;
+          variable[20] = CALL_compiling_methods___PExpr___compile_expr( variable[18] /*ne*/)( variable[18] /*ne*/,  variable[1] /*v*/) /*PExpr::compile_expr*/;
           variable[19] = variable[20];
-          variable[20] = NEW_String_string___String___init(); /*new String*/
+          variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
           variable[21] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
           variable[22] = variable[21];
-          ((string___String___append_t)CALL(variable[20],COLOR_abstract_collection___IndexedCollection___append))(variable[20], variable[22]) /*String::append*/;
-          variable[23] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[15] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[15] /*p*/) /*MMLocalProperty::global*/;
-          variable[23] = ((compiling_base___MMGlobalProperty___attr_access_t)CALL(variable[23],COLOR_compiling_base___MMGlobalProperty___attr_access))(variable[23]) /*MMGlobalProperty::attr_access*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[22]) /*AbstractArray::add*/;
+          variable[23] = CALL_abstractmetamodel___MMLocalProperty___global( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::global*/;
+          variable[23] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[23])(variable[23]) /*MMGlobalProperty::attr_access*/;
           variable[24] = variable[23];
-          ((string___String___append_t)CALL(variable[20],COLOR_abstract_collection___IndexedCollection___append))(variable[20], variable[24]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[24]) /*AbstractArray::add*/;
           variable[25] = NEW_String_string___String___with_native(BOX_NativeString("(obj) = "), TAG_Int(8)); /*new String*/
           variable[26] = variable[25];
-          ((string___String___append_t)CALL(variable[20],COLOR_abstract_collection___IndexedCollection___append))(variable[20], variable[26]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[26]) /*AbstractArray::add*/;
           variable[27] =  variable[19] /*e*/;
-          ((string___String___append_t)CALL(variable[20],COLOR_abstract_collection___IndexedCollection___append))(variable[20], variable[27]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[27]) /*AbstractArray::add*/;
           variable[28] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
           variable[29] = variable[28];
-          ((string___String___append_t)CALL(variable[20],COLOR_abstract_collection___IndexedCollection___append))(variable[20], variable[29]) /*String::append*/;
-          ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[20]) /*CompilerVisitor::add_instr*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[29]) /*AbstractArray::add*/;
+          variable[20] = CALL_string___Object___to_s(variable[20])(variable[20]) /*Object::to_s*/;
+          CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[20]) /*CompilerVisitor::add_instr*/;
         } else { /*if*/
-          variable[20] = ((static_type___MMType___local_class_t)CALL( variable[16] /*t*/,COLOR_static_type___MMType___local_class))( variable[16] /*t*/) /*MMType::local_class*/;
-          variable[20] = ((compiling_base___MMLocalClass___primitive_info_t)CALL(variable[20],COLOR_compiling_base___MMLocalClass___primitive_info))(variable[20]) /*MMLocalClass::primitive_info*/;
+          variable[20] = CALL_static_type___MMType___local_class( variable[16] /*t*/)( variable[16] /*t*/) /*MMType::local_class*/;
+          variable[20] = CALL_compiling_base___MMLocalClass___primitive_info(variable[20])(variable[20]) /*MMLocalClass::primitive_info*/;
           variable[19] = variable[20];
-          variable[20] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[19] /*pi*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[19] /*pi*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[19] /*pi*/,COLOR_kernel___Object_____eqeq))( variable[19] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+          variable[20] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*pi*/ ==  NIT_NULL /*null*/) || (( variable[19] /*pi*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[19] /*pi*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*pi*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[19] /*pi*/)( variable[19] /*pi*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
           variable[21] = variable[20];
           if (UNTAG_Bool(variable[21])) { /* and */
-            variable[21] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[19] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[19] /*pi*/) /*PrimitiveInfo::tagged*/;
+            variable[21] = CALL_compiling_base___PrimitiveInfo___tagged( variable[19] /*pi*/)( variable[19] /*pi*/) /*PrimitiveInfo::tagged*/;
           }
           variable[20] = variable[21];
           if (UNTAG_Bool(variable[20])) { /*if*/
-            variable[21] = ((compiling_base___MMType___default_cvalue_t)CALL( variable[16] /*t*/,COLOR_compiling_base___MMType___default_cvalue))( variable[16] /*t*/) /*MMType::default_cvalue*/;
+            variable[21] = CALL_compiling_base___MMType___default_cvalue( variable[16] /*t*/)( variable[16] /*t*/) /*MMType::default_cvalue*/;
             variable[20] = variable[21];
-            variable[21] = NEW_String_string___String___init(); /*new String*/
+            variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
             variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
             variable[23] = variable[22];
-            ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[23]) /*String::append*/;
-            variable[24] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[15] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[15] /*p*/) /*MMLocalProperty::global*/;
-            variable[24] = ((compiling_base___MMGlobalProperty___attr_access_t)CALL(variable[24],COLOR_compiling_base___MMGlobalProperty___attr_access))(variable[24]) /*MMGlobalProperty::attr_access*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
+            variable[24] = CALL_abstractmetamodel___MMLocalProperty___global( variable[15] /*p*/)( variable[15] /*p*/) /*MMLocalProperty::global*/;
+            variable[24] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[24])(variable[24]) /*MMGlobalProperty::attr_access*/;
             variable[25] = variable[24];
-            ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[25]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
             variable[26] = NEW_String_string___String___with_native(BOX_NativeString("(obj) = "), TAG_Int(8)); /*new String*/
             variable[27] = variable[26];
-            ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[27]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
             variable[28] =  variable[20] /*default*/;
-            ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[28]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[28]) /*AbstractArray::add*/;
             variable[29] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
             variable[30] = variable[29];
-            ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[30]) /*String::append*/;
-            ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[30]) /*AbstractArray::add*/;
+            variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+            CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
           }
         }
       }
-      continue_104: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[12],COLOR_abstract_collection___Iterator___next))(variable[12]) /*Iterator::next*/;
+      continue_94: while(0);
+      CALL_abstract_collection___Iterator___next(variable[12])(variable[12]) /*Iterator::next*/;
     }
-    break_104: while(0);
+    break_94: while(0);
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(obj);"), TAG_Int(20)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
-    variable[12] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-    ((compiling_methods___CFunctionContext___generate_var_decls_t)CALL(variable[12],COLOR_compiling_methods___CFunctionContext___generate_var_decls))(variable[12]) /*CFunctionContext::generate_var_decls*/;
-    variable[12] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
-    ((compiling_base___CContext___append_t)CALL( variable[9] /*ctx_old*/,COLOR_compiling_base___CContext___append))( variable[9] /*ctx_old*/, variable[12]) /*CContext::append*/;
-    ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/,  variable[9] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
-    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
+    variable[12] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    CALL_compiling_methods___CFunctionContext___generate_var_decls(variable[12])(variable[12]) /*CFunctionContext::generate_var_decls*/;
+    variable[12] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+    CALL_compiling_base___CContext___append( variable[9] /*ctx_old*/)( variable[9] /*ctx_old*/, variable[12]) /*CContext::append*/;
+    CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[9] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
+    CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
     variable[13] = variable[0];
-    variable[13] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[13]) /*MMLocalClass::cshe*/;
-    variable[13] = ((partial_order___PartialOrderElement___greaters_t)CALL(variable[13],COLOR_partial_order___PartialOrderElement___greaters))(variable[13]) /*PartialOrderElement::greaters*/;
-    variable[13] = ((abstract_collection___Collection___length_t)CALL(variable[13],COLOR_abstract_collection___Collection___length))(variable[13]) /*Collection::length*/;
+    variable[13] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[13])(variable[13]) /*MMLocalClass::cshe*/;
+    variable[13] = CALL_partial_order___PartialOrderElement___greaters(variable[13])(variable[13]) /*PartialOrderElement::greaters*/;
+    variable[13] = CALL_abstract_collection___Collection___length(variable[13])(variable[13]) /*Collection::length*/;
     variable[13] = TAG_Int(UNTAG_Int(variable[13])+UNTAG_Int( TAG_Int(1)));
     variable[12] = variable[13];
-    variable[14] = NEW_String_string___String___init(); /*new String*/
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString("int init_table["), TAG_Int(15)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[12] /*init_table_size*/;
-    variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+    variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString("] = {0"), TAG_Int(6)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_String_string___String___with_native(BOX_NativeString(", 0"), TAG_Int(3)); /*new String*/
     variable[21] = TAG_Int(UNTAG_Int( variable[12] /*init_table_size*/)-UNTAG_Int( TAG_Int(1)));
-    variable[20] = ((string___String_____star_t)CALL(variable[20],COLOR_string___String_____star))(variable[20], variable[21]) /*String::**/;
+    variable[20] = CALL_string___String_____star(variable[20])(variable[20], variable[21]) /*String::**/;
     variable[21] = variable[20];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[21]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[21]) /*AbstractArray::add*/;
     variable[22] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
     variable[23] = variable[22];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[23]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[23]) /*AbstractArray::add*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
     variable[13] = variable[14];
     variable[14] = variable[0];
-    variable[14] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL(variable[14],COLOR_abstractmetamodel___MMLocalClass___global_properties))(variable[14]) /*MMLocalClass::global_properties*/;
-    variable[14] = ((abstract_collection___Collection___iterator_t)CALL(variable[14],COLOR_abstract_collection___Collection___iterator))(variable[14]) /*Collection::iterator*/;
+    variable[14] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[14])(variable[14]) /*MMLocalClass::global_properties*/;
+    variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[15] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*Iterator::is_ok*/;
+      variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[15])) break; /*for*/
-      variable[15] = ((abstract_collection___Iterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*Iterator::item*/;
+      variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*Iterator::item*/;
       variable[16] = variable[15];
       variable[18] = variable[0];
-      variable[18] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[18],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[18],  variable[16] /*g*/) /*MMLocalClass::[]*/;
+      variable[18] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[18])(variable[18],  variable[16] /*g*/) /*MMLocalClass::[]*/;
       variable[17] = variable[18];
-      variable[18] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[17] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[17] /*p*/) /*MMLocalProperty::global*/;
+      variable[18] = CALL_abstractmetamodel___MMLocalProperty___global( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::global*/;
       variable[19] = variable[0];
-      variable[18] = ((abstractmetamodel___MMGlobalProperty___is_init_for_t)CALL(variable[18],COLOR_abstractmetamodel___MMGlobalProperty___is_init_for))(variable[18], variable[19]) /*MMGlobalProperty::is_init_for*/;
+      variable[18] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for(variable[18])(variable[18], variable[19]) /*MMGlobalProperty::is_init_for*/;
       if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[18])))) { /*if*/
-        goto continue_105;
+        goto continue_95;
       }
       variable[19] = NEW_Array_array___Array___init(); /*new Array[String]*/
       variable[18] = variable[19];
       variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
       variable[21] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/
-      ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20], variable[21]) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
       variable[19] = variable[20];
-      variable[20] = ((static_type___MMLocalProperty___signature_t)CALL( variable[17] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[17] /*p*/) /*MMLocalProperty::signature*/;
-      variable[20] = ((static_type___MMSignature___arity_t)CALL(variable[20],COLOR_static_type___MMSignature___arity))(variable[20]) /*MMSignature::arity*/;
+      variable[20] = CALL_static_type___MMLocalProperty___signature( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::signature*/;
+      variable[20] = CALL_static_type___MMSignature___arity(variable[20])(variable[20]) /*MMSignature::arity*/;
       variable[21] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[20]); /*new Range[Int]*/
       variable[20] = variable[21];
-      variable[20] = ((range___Range___iterator_t)CALL(variable[20],COLOR_abstract_collection___Collection___iterator))(variable[20]) /*Range::iterator*/;
+      variable[20] = CALL_abstract_collection___Collection___iterator(variable[20])(variable[20]) /*Range::iterator*/;
       while (true) { /*for*/
-        variable[21] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[20],COLOR_abstract_collection___Iterator___is_ok))(variable[20]) /*Iterator::is_ok*/;
+        variable[21] = CALL_abstract_collection___Iterator___is_ok(variable[20])(variable[20]) /*Iterator::is_ok*/;
         if (!UNTAG_Bool(variable[21])) break; /*for*/
-        variable[21] = ((abstract_collection___Iterator___item_t)CALL(variable[20],COLOR_abstract_collection___Iterator___item))(variable[20]) /*Iterator::item*/;
+        variable[21] = CALL_abstract_collection___Iterator___item(variable[20])(variable[20]) /*Iterator::item*/;
         variable[22] = variable[21];
-        variable[23] = NEW_String_string___String___init(); /*new String*/
+        variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[24] = NEW_String_string___String___with_native(BOX_NativeString("val_t p"), TAG_Int(7)); /*new String*/
         variable[25] = variable[24];
-        ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[25]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
         variable[26] =  variable[22] /*i*/;
-        variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[26]) /*String::append*/;
+        variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[26]) /*AbstractArray::add*/;
         variable[27] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[28] = variable[27];
-        ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[28]) /*String::append*/;
-        ((array___AbstractArray___add_t)CALL( variable[18] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[18] /*params*/, variable[23]) /*AbstractArray::add*/;
-        variable[23] = NEW_String_string___String___init(); /*new String*/
+        CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[28]) /*AbstractArray::add*/;
+        variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[18] /*params*/)( variable[18] /*params*/, variable[23]) /*AbstractArray::add*/;
+        variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[24] = NEW_String_string___String___with_native(BOX_NativeString("p"), TAG_Int(1)); /*new String*/
         variable[25] = variable[24];
-        ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[25]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
         variable[26] =  variable[22] /*i*/;
-        variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[26]) /*String::append*/;
+        variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[26]) /*AbstractArray::add*/;
         variable[27] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[28] = variable[27];
-        ((string___String___append_t)CALL(variable[23],COLOR_abstract_collection___IndexedCollection___append))(variable[23], variable[28]) /*String::append*/;
-        ((array___AbstractArray___add_t)CALL( variable[19] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[19] /*args*/, variable[23]) /*AbstractArray::add*/;
-        continue_106: while(0);
-        ((abstract_collection___Iterator___next_t)CALL(variable[20],COLOR_abstract_collection___Iterator___next))(variable[20]) /*Iterator::next*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[28]) /*AbstractArray::add*/;
+        variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[19] /*args*/)( variable[19] /*args*/, variable[23]) /*AbstractArray::add*/;
+        continue_96: while(0);
+        CALL_abstract_collection___Iterator___next(variable[20])(variable[20]) /*Iterator::next*/;
       }
-      break_106: while(0);
+      break_96: while(0);
       variable[20] = NEW_String_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)); /*new String*/
-      ((array___AbstractArray___add_t)CALL( variable[19] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[19] /*args*/, variable[20]) /*AbstractArray::add*/;
-      variable[21] = NEW_String_string___String___init(); /*new String*/
+      CALL_abstract_collection___SimpleCollection___add( variable[19] /*args*/)( variable[19] /*args*/, variable[20]) /*AbstractArray::add*/;
+      variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[22] = NEW_String_string___String___with_native(BOX_NativeString("val_t NEW_"), TAG_Int(10)); /*new String*/
       variable[23] = variable[22];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[23]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
       variable[24] = variable[0];
       variable[25] = variable[24];
-      variable[25] = ((string___String___to_s_t)CALL(variable[25],COLOR_string___Object___to_s))(variable[25]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[25]) /*String::append*/;
+      variable[25] = CALL_string___Object___to_s(variable[25])(variable[25]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
       variable[26] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
       variable[27] = variable[26];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[27]) /*String::append*/;
-      variable[28] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[17] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[17] /*p*/) /*MMLocalProperty::global*/;
-      variable[28] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[28],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[28]) /*MMGlobalProperty::intro*/;
-      variable[28] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[28],COLOR_compiling_base___MMLocalProperty___cname))(variable[28]) /*MMLocalProperty::cname*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
+      variable[28] = CALL_abstractmetamodel___MMLocalProperty___global( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::global*/;
+      variable[28] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[28])(variable[28]) /*MMGlobalProperty::intro*/;
+      variable[28] = CALL_compiling_base___MMLocalProperty___cname(variable[28])(variable[28]) /*MMLocalProperty::cname*/;
       variable[29] = variable[28];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[29]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[29]) /*AbstractArray::add*/;
       variable[30] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[31] = variable[30];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[31]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[31]) /*AbstractArray::add*/;
       variable[32] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-      variable[32] = ((string___Collection___join_t)CALL( variable[18] /*params*/,COLOR_string___Collection___join))( variable[18] /*params*/, variable[32]) /*Collection::join*/;
+      variable[32] = CALL_string___Collection___join( variable[18] /*params*/)( variable[18] /*params*/, variable[32]) /*Collection::join*/;
       variable[33] = variable[32];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[33]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[33]) /*AbstractArray::add*/;
       variable[34] = NEW_String_string___String___with_native(BOX_NativeString(") {"), TAG_Int(3)); /*new String*/
       variable[35] = variable[34];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[35]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[35]) /*AbstractArray::add*/;
+      variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
       variable[20] = variable[21];
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/,  variable[20] /*s*/) /*CompilerVisitor::add_instr*/;
-      ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/,  variable[13] /*init_table_decl*/) /*CompilerVisitor::add_instr*/;
-      variable[21] = NEW_String_string___String___init(); /*new String*/
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/,  variable[20] /*s*/) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/,  variable[13] /*init_table_decl*/) /*CompilerVisitor::add_instr*/;
+      variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[22] = NEW_String_string___String___with_native(BOX_NativeString("val_t self = NEW_"), TAG_Int(17)); /*new String*/
       variable[23] = variable[22];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[23]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
       variable[24] = variable[0];
-      variable[24] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[24],COLOR_abstractmetamodel___MMLocalClass___name))(variable[24]) /*MMLocalClass::name*/;
+      variable[24] = CALL_abstractmetamodel___MMLocalClass___name(variable[24])(variable[24]) /*MMLocalClass::name*/;
       variable[25] = variable[24];
-      variable[25] = ((string___String___to_s_t)CALL(variable[25],COLOR_string___Object___to_s))(variable[25]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[25]) /*String::append*/;
+      variable[25] = CALL_string___Object___to_s(variable[25])(variable[25]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
       variable[26] = NEW_String_string___String___with_native(BOX_NativeString("();"), TAG_Int(3)); /*new String*/
       variable[27] = variable[26];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[27]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
-      variable[21] = NEW_String_string___String___init(); /*new String*/
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
+      variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
+      variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[23] = variable[22];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[23]) /*String::append*/;
-      variable[24] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[17] /*p*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[17] /*p*/) /*MMLocalProperty::cname*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
+      variable[24] = CALL_compiling_base___MMLocalProperty___cname( variable[17] /*p*/)( variable[17] /*p*/) /*MMLocalProperty::cname*/;
       variable[25] = variable[24];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[25]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[25]) /*AbstractArray::add*/;
       variable[26] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[27] = variable[26];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[27]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[27]) /*AbstractArray::add*/;
       variable[28] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-      variable[28] = ((string___Collection___join_t)CALL( variable[19] /*args*/,COLOR_string___Collection___join))( variable[19] /*args*/, variable[28]) /*Collection::join*/;
+      variable[28] = CALL_string___Collection___join( variable[19] /*args*/)( variable[19] /*args*/, variable[28]) /*Collection::join*/;
       variable[29] = variable[28];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[29]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[29]) /*AbstractArray::add*/;
       variable[30] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
       variable[31] = variable[30];
-      ((string___String___append_t)CALL(variable[21],COLOR_abstract_collection___IndexedCollection___append))(variable[21], variable[31]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[31]) /*AbstractArray::add*/;
+      variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
       variable[21] = NEW_String_string___String___with_native(BOX_NativeString("return self;"), TAG_Int(12)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
-      ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
       variable[21] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
-      continue_105: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*Iterator::next*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[21]) /*CompilerVisitor::add_instr*/;
+      continue_95: while(0);
+      CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*Iterator::next*/;
     }
-    break_105: while(0);
+    break_95: while(0);
   } else { /*if*/
-    variable[8] = ((compiling_base___PrimitiveInfo___tagged_t)CALL( variable[7] /*pi*/,COLOR_compiling_base___PrimitiveInfo___tagged))( variable[7] /*pi*/) /*PrimitiveInfo::tagged*/;
+    variable[8] = CALL_compiling_base___PrimitiveInfo___tagged( variable[7] /*pi*/)( variable[7] /*pi*/) /*PrimitiveInfo::tagged*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
-      variable[9] = ((compiling_base___PrimitiveInfo___cname_t)CALL( variable[7] /*pi*/,COLOR_compiling_base___PrimitiveInfo___cname))( variable[7] /*pi*/) /*PrimitiveInfo::cname*/;
+      variable[9] = CALL_compiling_base___PrimitiveInfo___cname( variable[7] /*pi*/)( variable[7] /*pi*/) /*PrimitiveInfo::cname*/;
       variable[8] = variable[9];
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("struct TBOX_"), TAG_Int(12)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] = variable[0];
-      variable[13] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___name))(variable[13]) /*MMLocalClass::name*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[13])(variable[13]) /*MMLocalClass::name*/;
       variable[14] = variable[13];
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
       variable[9] = variable[10];
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("val_t BOX_"), TAG_Int(10)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] = variable[0];
-      variable[13] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___name))(variable[13]) /*MMLocalClass::name*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[13])(variable[13]) /*MMLocalClass::name*/;
       variable[14] = variable[13];
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
       variable[17] =  variable[8] /*t*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" val) {"), TAG_Int(7)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
-      ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[9] /*tbox*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" *box = ("), TAG_Int(9)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
       variable[16] =  variable[9] /*tbox*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
       variable[17] = NEW_String_string___String___with_native(BOX_NativeString("*)alloc(sizeof("), TAG_Int(15)); /*new String*/
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[18]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[18]) /*AbstractArray::add*/;
       variable[19] =  variable[9] /*tbox*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
       variable[20] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
       variable[21] = variable[20];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[21]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[21]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("box->vft = VFT_"), TAG_Int(15)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] = variable[0];
-      variable[13] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___name))(variable[13]) /*MMLocalClass::name*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[13])(variable[13]) /*MMLocalClass::name*/;
       variable[14] = variable[13];
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("box->val = val;"), TAG_Int(15)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return OBJ2VAL(box);"), TAG_Int(20)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
-      ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
     }
   }
-  return_label101: while(false);
+  return_label91: while(false);
   tracehead = trace.prev;
   return;
 }
index 4b90523..ff84181 100644 (file)
@@ -10,27 +10,31 @@ extern const classtable_elt_t VFT_GlobalAnalysis[];
 
 extern const classtable_elt_t VFT_CompiledClass[];
 
+extern const classtable_elt_t VFT_AbsTableElt[];
+
 extern const classtable_elt_t VFT_TableElt[];
 
-extern const classtable_elt_t VFT_LocalTableElt[];
+extern const classtable_elt_t VFT_ModuleTableElt[];
+
+extern const classtable_elt_t VFT_ModuleTableEltGroup[];
 
-extern const classtable_elt_t VFT_TableEltPropPos[];
+extern const classtable_elt_t VFT_TableEltProp[];
 
-extern const classtable_elt_t VFT_TableEltMethPos[];
+extern const classtable_elt_t VFT_TableEltMeth[];
 
-extern const classtable_elt_t VFT_TableEltSuperPos[];
+extern const classtable_elt_t VFT_TableEltSuper[];
 
-extern const classtable_elt_t VFT_TableEltAttrPos[];
+extern const classtable_elt_t VFT_TableEltAttr[];
 
-extern const classtable_elt_t VFT_TableEltClassPos[];
+extern const classtable_elt_t VFT_AbsTableEltClass[];
 
-extern const classtable_elt_t VFT_TableEltClassIdPos[];
+extern const classtable_elt_t VFT_TableEltClass[];
 
-extern const classtable_elt_t VFT_TableEltClassInitTablePos[];
+extern const classtable_elt_t VFT_TableEltClassId[];
 
-extern const classtable_elt_t VFT_TableEltClassColorPos[];
+extern const classtable_elt_t VFT_TableEltClassInitTable[];
 
-extern const classtable_elt_t VFT_TableEltBaseAttrPos[];
+extern const classtable_elt_t VFT_TableEltClassColor[];
 
 extern const classtable_elt_t VFT_TableEltComposite[];
 
@@ -41,149 +45,142 @@ extern const classtable_elt_t VFT_TableEltVftPointer[];
 extern const classtable_elt_t VFT_ClassSorter[];
 extern const char *LOCATE_compiling_global;
 extern const int SFT_compiling_global[];
-#define ID_ColorContext SFT_compiling_global[0]
-#define COLOR_ColorContext SFT_compiling_global[1]
-#define COLOR_compiling_global___ColorContext____colors SFT_compiling_global[2]
-#define INIT_TABLE_POS_ColorContext SFT_compiling_global[3]
-#define COLOR_compiling_global___ColorContext___color SFT_compiling_global[4]
-#define COLOR_compiling_global___ColorContext___has_color SFT_compiling_global[5]
-#define COLOR_compiling_global___ColorContext___color__eq SFT_compiling_global[6]
-#define COLOR_compiling_global___ColorContext___init SFT_compiling_global[7]
-#define ID_GlobalAnalysis SFT_compiling_global[8]
-#define COLOR_GlobalAnalysis SFT_compiling_global[9]
-#define COLOR_compiling_global___GlobalAnalysis____compiled_classes SFT_compiling_global[10]
-#define COLOR_compiling_global___GlobalAnalysis____module SFT_compiling_global[11]
-#define COLOR_compiling_global___GlobalAnalysis____max_class_table_length SFT_compiling_global[12]
-#define INIT_TABLE_POS_GlobalAnalysis SFT_compiling_global[13]
-#define COLOR_compiling_global___GlobalAnalysis___compiled_classes SFT_compiling_global[14]
-#define COLOR_compiling_global___GlobalAnalysis___module SFT_compiling_global[15]
-#define COLOR_compiling_global___GlobalAnalysis___max_class_table_length SFT_compiling_global[16]
-#define COLOR_compiling_global___GlobalAnalysis___max_class_table_length__eq SFT_compiling_global[17]
-#define COLOR_compiling_global___GlobalAnalysis___init SFT_compiling_global[18]
-#define COLOR_compiling_global___CompilerVisitor____global_analysis SFT_compiling_global[19]
-#define COLOR_compiling_global___CompilerVisitor___global_analysis SFT_compiling_global[20]
-#define COLOR_compiling_global___CompilerVisitor___global_analysis__eq SFT_compiling_global[21]
-#define ID_CompiledClass SFT_compiling_global[22]
-#define COLOR_CompiledClass SFT_compiling_global[23]
-#define COLOR_compiling_global___CompiledClass____local_class SFT_compiling_global[24]
-#define COLOR_compiling_global___CompiledClass____id SFT_compiling_global[25]
-#define COLOR_compiling_global___CompiledClass____class_table SFT_compiling_global[26]
-#define COLOR_compiling_global___CompiledClass____instance_table SFT_compiling_global[27]
-#define COLOR_compiling_global___CompiledClass____class_layout SFT_compiling_global[28]
-#define COLOR_compiling_global___CompiledClass____instance_layout SFT_compiling_global[29]
-#define INIT_TABLE_POS_CompiledClass SFT_compiling_global[30]
-#define COLOR_compiling_global___CompiledClass___local_class SFT_compiling_global[31]
-#define COLOR_compiling_global___CompiledClass___id SFT_compiling_global[32]
-#define COLOR_compiling_global___CompiledClass___id__eq SFT_compiling_global[33]
-#define COLOR_compiling_global___CompiledClass___class_table SFT_compiling_global[34]
-#define COLOR_compiling_global___CompiledClass___class_table__eq SFT_compiling_global[35]
-#define COLOR_compiling_global___CompiledClass___instance_table SFT_compiling_global[36]
-#define COLOR_compiling_global___CompiledClass___instance_table__eq SFT_compiling_global[37]
-#define COLOR_compiling_global___CompiledClass___class_layout SFT_compiling_global[38]
-#define COLOR_compiling_global___CompiledClass___class_layout__eq SFT_compiling_global[39]
-#define COLOR_compiling_global___CompiledClass___instance_layout SFT_compiling_global[40]
-#define COLOR_compiling_global___CompiledClass___instance_layout__eq SFT_compiling_global[41]
-#define COLOR_compiling_global___CompiledClass___init SFT_compiling_global[42]
-#define COLOR_compiling_global___MMGlobalProperty____pos_of SFT_compiling_global[43]
-#define COLOR_compiling_global___MMGlobalProperty___pos_of SFT_compiling_global[44]
-#define COLOR_compiling_global___MMGlobalProperty___pos_of__eq SFT_compiling_global[45]
-#define COLOR_compiling_global___MMSrcLocalClass____base_attr_pos SFT_compiling_global[46]
-#define COLOR_compiling_global___MMSrcLocalClass____class_color_pos SFT_compiling_global[47]
-#define COLOR_compiling_global___MMSrcLocalClass____class_layout SFT_compiling_global[48]
-#define COLOR_compiling_global___MMSrcLocalClass____instance_layout SFT_compiling_global[49]
-#define COLOR_compiling_global___MMSrcLocalClass___base_attr_pos SFT_compiling_global[50]
-#define COLOR_compiling_global___MMSrcLocalClass___class_color_pos SFT_compiling_global[51]
-#define COLOR_compiling_global___MMSrcLocalClass___class_layout SFT_compiling_global[52]
-#define COLOR_compiling_global___MMSrcLocalClass___instance_layout SFT_compiling_global[53]
-#define COLOR_compiling_global___MMSrcLocalClass___build_layout_in SFT_compiling_global[54]
-#define COLOR_compiling_global___MMSrcModule____local_table SFT_compiling_global[55]
-#define COLOR_compiling_global___MMSrcModule___local_analysis SFT_compiling_global[56]
-#define COLOR_compiling_global___MMSrcModule___global_analysis SFT_compiling_global[57]
-#define COLOR_compiling_global___MMSrcModule___append_to_table SFT_compiling_global[58]
-#define COLOR_compiling_global___MMSrcModule___build_tables SFT_compiling_global[59]
-#define COLOR_compiling_global___MMSrcModule___colorize SFT_compiling_global[60]
-#define COLOR_compiling_global___MMSrcModule___free_color SFT_compiling_global[61]
-#define COLOR_compiling_global___MMSrcModule___compile_tables_to_c SFT_compiling_global[62]
-#define COLOR_compiling_global___MMSrcModule___declare_class_tables_to_c SFT_compiling_global[63]
-#define COLOR_compiling_global___MMSrcModule___compile_main_part SFT_compiling_global[64]
-#define COLOR_compiling_global___MMSrcModule___compile_mod_to_c SFT_compiling_global[65]
-#define COLOR_compiling_global___MMSrcModule___compile_local_table_to_c SFT_compiling_global[66]
-#define ID_TableElt SFT_compiling_global[67]
-#define COLOR_TableElt SFT_compiling_global[68]
-#define INIT_TABLE_POS_TableElt SFT_compiling_global[69]
-#define COLOR_compiling_global___TableElt___is_related_to SFT_compiling_global[70]
-#define COLOR_compiling_global___TableElt___length SFT_compiling_global[71]
-#define COLOR_compiling_global___TableElt___item SFT_compiling_global[72]
-#define COLOR_compiling_global___TableElt___compile_to_c SFT_compiling_global[73]
-#define COLOR_compiling_global___TableElt___init SFT_compiling_global[74]
-#define ID_LocalTableElt SFT_compiling_global[75]
-#define COLOR_LocalTableElt SFT_compiling_global[76]
-#define INIT_TABLE_POS_LocalTableElt SFT_compiling_global[77]
-#define COLOR_compiling_global___LocalTableElt___symbol SFT_compiling_global[78]
-#define COLOR_compiling_global___LocalTableElt___value SFT_compiling_global[79]
-#define ID_TableEltPropPos SFT_compiling_global[80]
-#define COLOR_TableEltPropPos SFT_compiling_global[81]
-#define COLOR_compiling_global___TableEltPropPos____property SFT_compiling_global[82]
-#define INIT_TABLE_POS_TableEltPropPos SFT_compiling_global[83]
-#define COLOR_compiling_global___TableEltPropPos___init SFT_compiling_global[84]
-#define ID_TableEltMethPos SFT_compiling_global[85]
-#define COLOR_TableEltMethPos SFT_compiling_global[86]
-#define INIT_TABLE_POS_TableEltMethPos SFT_compiling_global[87]
-#define COLOR_compiling_global___TableEltMethPos___init SFT_compiling_global[88]
-#define ID_TableEltSuperPos SFT_compiling_global[89]
-#define COLOR_TableEltSuperPos SFT_compiling_global[90]
-#define INIT_TABLE_POS_TableEltSuperPos SFT_compiling_global[91]
-#define COLOR_compiling_global___TableEltSuperPos___init SFT_compiling_global[92]
-#define ID_TableEltAttrPos SFT_compiling_global[93]
-#define COLOR_TableEltAttrPos SFT_compiling_global[94]
-#define INIT_TABLE_POS_TableEltAttrPos SFT_compiling_global[95]
-#define COLOR_compiling_global___TableEltAttrPos___init SFT_compiling_global[96]
-#define ID_TableEltClassPos SFT_compiling_global[97]
-#define COLOR_TableEltClassPos SFT_compiling_global[98]
-#define COLOR_compiling_global___TableEltClassPos____local_class SFT_compiling_global[99]
-#define INIT_TABLE_POS_TableEltClassPos SFT_compiling_global[100]
-#define COLOR_compiling_global___TableEltClassPos___init SFT_compiling_global[101]
-#define ID_TableEltClassIdPos SFT_compiling_global[102]
-#define COLOR_TableEltClassIdPos SFT_compiling_global[103]
-#define INIT_TABLE_POS_TableEltClassIdPos SFT_compiling_global[104]
-#define COLOR_compiling_global___TableEltClassIdPos___init SFT_compiling_global[105]
-#define ID_TableEltClassInitTablePos SFT_compiling_global[106]
-#define COLOR_TableEltClassInitTablePos SFT_compiling_global[107]
-#define INIT_TABLE_POS_TableEltClassInitTablePos SFT_compiling_global[108]
-#define COLOR_compiling_global___TableEltClassInitTablePos___init SFT_compiling_global[109]
-#define ID_TableEltClassColorPos SFT_compiling_global[110]
-#define COLOR_TableEltClassColorPos SFT_compiling_global[111]
-#define INIT_TABLE_POS_TableEltClassColorPos SFT_compiling_global[112]
-#define COLOR_compiling_global___TableEltClassColorPos___init SFT_compiling_global[113]
-#define ID_TableEltBaseAttrPos SFT_compiling_global[114]
-#define COLOR_TableEltBaseAttrPos SFT_compiling_global[115]
-#define COLOR_compiling_global___TableEltBaseAttrPos____local_class SFT_compiling_global[116]
-#define INIT_TABLE_POS_TableEltBaseAttrPos SFT_compiling_global[117]
-#define COLOR_compiling_global___TableEltBaseAttrPos___init SFT_compiling_global[118]
-#define ID_TableEltComposite SFT_compiling_global[119]
-#define COLOR_TableEltComposite SFT_compiling_global[120]
-#define COLOR_compiling_global___TableEltComposite____table SFT_compiling_global[121]
-#define COLOR_compiling_global___TableEltComposite____cc SFT_compiling_global[122]
-#define COLOR_compiling_global___TableEltComposite____offsets SFT_compiling_global[123]
-#define INIT_TABLE_POS_TableEltComposite SFT_compiling_global[124]
-#define COLOR_compiling_global___TableEltComposite___add SFT_compiling_global[125]
-#define COLOR_compiling_global___TableEltComposite___init SFT_compiling_global[126]
-#define ID_TableEltClassSelfId SFT_compiling_global[127]
-#define COLOR_TableEltClassSelfId SFT_compiling_global[128]
-#define INIT_TABLE_POS_TableEltClassSelfId SFT_compiling_global[129]
-#define COLOR_compiling_global___TableEltClassSelfId___init SFT_compiling_global[130]
-#define ID_TableEltVftPointer SFT_compiling_global[131]
-#define COLOR_TableEltVftPointer SFT_compiling_global[132]
-#define INIT_TABLE_POS_TableEltVftPointer SFT_compiling_global[133]
-#define COLOR_compiling_global___TableEltVftPointer___init SFT_compiling_global[134]
-#define ID_ClassSorter SFT_compiling_global[135]
-#define COLOR_ClassSorter SFT_compiling_global[136]
-#define INIT_TABLE_POS_ClassSorter SFT_compiling_global[137]
-#define COLOR_compiling_global___ClassSorter___init SFT_compiling_global[138]
-#define COLOR_compiling_global___MMLocalClass___compare SFT_compiling_global[139]
-#define COLOR_compiling_global___MMLocalClass___declare_tables_to_c SFT_compiling_global[140]
-#define COLOR_compiling_global___MMLocalClass___compile_tables_to_c SFT_compiling_global[141]
-#define ATTR_compiling_global___ColorContext____colors(recv) ATTR(recv, COLOR_compiling_global___ColorContext____colors)
+#define ID_ColorContext (SFT_compiling_global[0])
+#define COLOR_ColorContext (SFT_compiling_global[1])
+#define ATTR_compiling_global___ColorContext____colors(recv) ATTR(recv, (SFT_compiling_global[2] + 0))
+#define INIT_TABLE_POS_ColorContext (SFT_compiling_global[3] + 0)
+#define CALL_compiling_global___ColorContext___color(recv) ((compiling_global___ColorContext___color_t)CALL((recv), (SFT_compiling_global[3] + 1)))
+#define CALL_compiling_global___ColorContext___has_color(recv) ((compiling_global___ColorContext___has_color_t)CALL((recv), (SFT_compiling_global[3] + 2)))
+#define CALL_compiling_global___ColorContext___color__eq(recv) ((compiling_global___ColorContext___color__eq_t)CALL((recv), (SFT_compiling_global[3] + 3)))
+#define CALL_compiling_global___ColorContext___init(recv) ((compiling_global___ColorContext___init_t)CALL((recv), (SFT_compiling_global[3] + 4)))
+#define ID_GlobalAnalysis (SFT_compiling_global[4])
+#define COLOR_GlobalAnalysis (SFT_compiling_global[5])
+#define ATTR_compiling_global___GlobalAnalysis____compiled_classes(recv) ATTR(recv, (SFT_compiling_global[6] + 0))
+#define ATTR_compiling_global___GlobalAnalysis____module(recv) ATTR(recv, (SFT_compiling_global[6] + 1))
+#define ATTR_compiling_global___GlobalAnalysis____max_class_table_length(recv) ATTR(recv, (SFT_compiling_global[6] + 2))
+#define INIT_TABLE_POS_GlobalAnalysis (SFT_compiling_global[7] + 0)
+#define CALL_compiling_global___GlobalAnalysis___compiled_classes(recv) ((compiling_global___GlobalAnalysis___compiled_classes_t)CALL((recv), (SFT_compiling_global[7] + 1)))
+#define CALL_compiling_global___GlobalAnalysis___module(recv) ((compiling_global___GlobalAnalysis___module_t)CALL((recv), (SFT_compiling_global[7] + 2)))
+#define CALL_compiling_global___GlobalAnalysis___max_class_table_length(recv) ((compiling_global___GlobalAnalysis___max_class_table_length_t)CALL((recv), (SFT_compiling_global[7] + 3)))
+#define CALL_compiling_global___GlobalAnalysis___max_class_table_length__eq(recv) ((compiling_global___GlobalAnalysis___max_class_table_length__eq_t)CALL((recv), (SFT_compiling_global[7] + 4)))
+#define CALL_compiling_global___GlobalAnalysis___init(recv) ((compiling_global___GlobalAnalysis___init_t)CALL((recv), (SFT_compiling_global[7] + 5)))
+#define ATTR_compiling_global___CompilerVisitor____global_analysis(recv) ATTR(recv, (SFT_compiling_global[8] + 0))
+#define CALL_compiling_global___CompilerVisitor___global_analysis(recv) ((compiling_global___CompilerVisitor___global_analysis_t)CALL((recv), (SFT_compiling_global[9] + 0)))
+#define CALL_compiling_global___CompilerVisitor___global_analysis__eq(recv) ((compiling_global___CompilerVisitor___global_analysis__eq_t)CALL((recv), (SFT_compiling_global[9] + 1)))
+#define ID_CompiledClass (SFT_compiling_global[10])
+#define COLOR_CompiledClass (SFT_compiling_global[11])
+#define ATTR_compiling_global___CompiledClass____local_class(recv) ATTR(recv, (SFT_compiling_global[12] + 0))
+#define ATTR_compiling_global___CompiledClass____id(recv) ATTR(recv, (SFT_compiling_global[12] + 1))
+#define ATTR_compiling_global___CompiledClass____class_table(recv) ATTR(recv, (SFT_compiling_global[12] + 2))
+#define ATTR_compiling_global___CompiledClass____instance_table(recv) ATTR(recv, (SFT_compiling_global[12] + 3))
+#define ATTR_compiling_global___CompiledClass____class_layout(recv) ATTR(recv, (SFT_compiling_global[12] + 4))
+#define ATTR_compiling_global___CompiledClass____instance_layout(recv) ATTR(recv, (SFT_compiling_global[12] + 5))
+#define INIT_TABLE_POS_CompiledClass (SFT_compiling_global[13] + 0)
+#define CALL_compiling_global___CompiledClass___local_class(recv) ((compiling_global___CompiledClass___local_class_t)CALL((recv), (SFT_compiling_global[13] + 1)))
+#define CALL_compiling_global___CompiledClass___id(recv) ((compiling_global___CompiledClass___id_t)CALL((recv), (SFT_compiling_global[13] + 2)))
+#define CALL_compiling_global___CompiledClass___id__eq(recv) ((compiling_global___CompiledClass___id__eq_t)CALL((recv), (SFT_compiling_global[13] + 3)))
+#define CALL_compiling_global___CompiledClass___class_table(recv) ((compiling_global___CompiledClass___class_table_t)CALL((recv), (SFT_compiling_global[13] + 4)))
+#define CALL_compiling_global___CompiledClass___class_table__eq(recv) ((compiling_global___CompiledClass___class_table__eq_t)CALL((recv), (SFT_compiling_global[13] + 5)))
+#define CALL_compiling_global___CompiledClass___instance_table(recv) ((compiling_global___CompiledClass___instance_table_t)CALL((recv), (SFT_compiling_global[13] + 6)))
+#define CALL_compiling_global___CompiledClass___instance_table__eq(recv) ((compiling_global___CompiledClass___instance_table__eq_t)CALL((recv), (SFT_compiling_global[13] + 7)))
+#define CALL_compiling_global___CompiledClass___class_layout(recv) ((compiling_global___CompiledClass___class_layout_t)CALL((recv), (SFT_compiling_global[13] + 8)))
+#define CALL_compiling_global___CompiledClass___class_layout__eq(recv) ((compiling_global___CompiledClass___class_layout__eq_t)CALL((recv), (SFT_compiling_global[13] + 9)))
+#define CALL_compiling_global___CompiledClass___instance_layout(recv) ((compiling_global___CompiledClass___instance_layout_t)CALL((recv), (SFT_compiling_global[13] + 10)))
+#define CALL_compiling_global___CompiledClass___instance_layout__eq(recv) ((compiling_global___CompiledClass___instance_layout__eq_t)CALL((recv), (SFT_compiling_global[13] + 11)))
+#define CALL_compiling_global___CompiledClass___init(recv) ((compiling_global___CompiledClass___init_t)CALL((recv), (SFT_compiling_global[13] + 12)))
+#define ATTR_compiling_global___MMSrcLocalClass____class_color_pos(recv) ATTR(recv, (SFT_compiling_global[14] + 0))
+#define ATTR_compiling_global___MMSrcLocalClass____class_layout(recv) ATTR(recv, (SFT_compiling_global[14] + 1))
+#define ATTR_compiling_global___MMSrcLocalClass____instance_layout(recv) ATTR(recv, (SFT_compiling_global[14] + 2))
+#define CALL_compiling_global___MMSrcLocalClass___class_color_pos(recv) ((compiling_global___MMSrcLocalClass___class_color_pos_t)CALL((recv), (SFT_compiling_global[15] + 0)))
+#define CALL_compiling_global___MMSrcLocalClass___class_layout(recv) ((compiling_global___MMSrcLocalClass___class_layout_t)CALL((recv), (SFT_compiling_global[15] + 1)))
+#define CALL_compiling_global___MMSrcLocalClass___instance_layout(recv) ((compiling_global___MMSrcLocalClass___instance_layout_t)CALL((recv), (SFT_compiling_global[15] + 2)))
+#define CALL_compiling_global___MMSrcLocalClass___build_layout_in(recv) ((compiling_global___MMSrcLocalClass___build_layout_in_t)CALL((recv), (SFT_compiling_global[15] + 3)))
+#define ATTR_compiling_global___MMSrcModule____local_table(recv) ATTR(recv, (SFT_compiling_global[16] + 0))
+#define CALL_compiling_global___MMSrcModule___local_analysis(recv) ((compiling_global___MMSrcModule___local_analysis_t)CALL((recv), (SFT_compiling_global[17] + 0)))
+#define CALL_compiling_global___MMSrcModule___global_analysis(recv) ((compiling_global___MMSrcModule___global_analysis_t)CALL((recv), (SFT_compiling_global[17] + 1)))
+#define CALL_compiling_global___MMSrcModule___append_to_table(recv) ((compiling_global___MMSrcModule___append_to_table_t)CALL((recv), (SFT_compiling_global[17] + 2)))
+#define CALL_compiling_global___MMSrcModule___build_tables(recv) ((compiling_global___MMSrcModule___build_tables_t)CALL((recv), (SFT_compiling_global[17] + 3)))
+#define CALL_compiling_global___MMSrcModule___colorize(recv) ((compiling_global___MMSrcModule___colorize_t)CALL((recv), (SFT_compiling_global[17] + 4)))
+#define CALL_compiling_global___MMSrcModule___free_color(recv) ((compiling_global___MMSrcModule___free_color_t)CALL((recv), (SFT_compiling_global[17] + 5)))
+#define CALL_compiling_global___MMSrcModule___compile_tables_to_c(recv) ((compiling_global___MMSrcModule___compile_tables_to_c_t)CALL((recv), (SFT_compiling_global[17] + 6)))
+#define CALL_compiling_global___MMSrcModule___declare_class_tables_to_c(recv) ((compiling_global___MMSrcModule___declare_class_tables_to_c_t)CALL((recv), (SFT_compiling_global[17] + 7)))
+#define CALL_compiling_global___MMSrcModule___compile_main_part(recv) ((compiling_global___MMSrcModule___compile_main_part_t)CALL((recv), (SFT_compiling_global[17] + 8)))
+#define CALL_compiling_global___MMSrcModule___compile_mod_to_c(recv) ((compiling_global___MMSrcModule___compile_mod_to_c_t)CALL((recv), (SFT_compiling_global[17] + 9)))
+#define CALL_compiling_global___MMSrcModule___compile_local_table_to_c(recv) ((compiling_global___MMSrcModule___compile_local_table_to_c_t)CALL((recv), (SFT_compiling_global[17] + 10)))
+#define ID_AbsTableElt (SFT_compiling_global[18])
+#define COLOR_AbsTableElt (SFT_compiling_global[19])
+#define INIT_TABLE_POS_AbsTableElt (SFT_compiling_global[20] + 0)
+#define CALL_compiling_global___AbsTableElt___compile_macros(recv) ((compiling_global___AbsTableElt___compile_macros_t)CALL((recv), (SFT_compiling_global[20] + 1)))
+#define CALL_compiling_global___AbsTableElt___init(recv) ((compiling_global___AbsTableElt___init_t)CALL((recv), (SFT_compiling_global[20] + 2)))
+#define ID_TableElt (SFT_compiling_global[21])
+#define COLOR_TableElt (SFT_compiling_global[22])
+#define INIT_TABLE_POS_TableElt (SFT_compiling_global[23] + 0)
+#define CALL_compiling_global___TableElt___is_related_to(recv) ((compiling_global___TableElt___is_related_to_t)CALL((recv), (SFT_compiling_global[23] + 1)))
+#define CALL_compiling_global___TableElt___length(recv) ((compiling_global___TableElt___length_t)CALL((recv), (SFT_compiling_global[23] + 2)))
+#define CALL_compiling_global___TableElt___item(recv) ((compiling_global___TableElt___item_t)CALL((recv), (SFT_compiling_global[23] + 3)))
+#define CALL_compiling_global___TableElt___compile_to_c(recv) ((compiling_global___TableElt___compile_to_c_t)CALL((recv), (SFT_compiling_global[23] + 4)))
+#define ID_ModuleTableElt (SFT_compiling_global[24])
+#define COLOR_ModuleTableElt (SFT_compiling_global[25])
+#define INIT_TABLE_POS_ModuleTableElt (SFT_compiling_global[26] + 0)
+#define CALL_compiling_global___ModuleTableElt___value(recv) ((compiling_global___ModuleTableElt___value_t)CALL((recv), (SFT_compiling_global[26] + 1)))
+#define ID_ModuleTableEltGroup (SFT_compiling_global[27])
+#define COLOR_ModuleTableEltGroup (SFT_compiling_global[28])
+#define ATTR_compiling_global___ModuleTableEltGroup____elements(recv) ATTR(recv, (SFT_compiling_global[29] + 0))
+#define INIT_TABLE_POS_ModuleTableEltGroup (SFT_compiling_global[30] + 0)
+#define CALL_compiling_global___ModuleTableEltGroup___elements(recv) ((compiling_global___ModuleTableEltGroup___elements_t)CALL((recv), (SFT_compiling_global[30] + 1)))
+#define ID_TableEltProp (SFT_compiling_global[31])
+#define COLOR_TableEltProp (SFT_compiling_global[32])
+#define ATTR_compiling_global___TableEltProp____property(recv) ATTR(recv, (SFT_compiling_global[33] + 0))
+#define INIT_TABLE_POS_TableEltProp (SFT_compiling_global[34] + 0)
+#define CALL_compiling_global___TableEltProp___init(recv) ((compiling_global___TableEltProp___init_t)CALL((recv), (SFT_compiling_global[34] + 1)))
+#define ID_TableEltMeth (SFT_compiling_global[35])
+#define COLOR_TableEltMeth (SFT_compiling_global[36])
+#define INIT_TABLE_POS_TableEltMeth (SFT_compiling_global[37] + 0)
+#define ID_TableEltSuper (SFT_compiling_global[38])
+#define COLOR_TableEltSuper (SFT_compiling_global[39])
+#define INIT_TABLE_POS_TableEltSuper (SFT_compiling_global[40] + 0)
+#define ID_TableEltAttr (SFT_compiling_global[41])
+#define COLOR_TableEltAttr (SFT_compiling_global[42])
+#define INIT_TABLE_POS_TableEltAttr (SFT_compiling_global[43] + 0)
+#define ID_AbsTableEltClass (SFT_compiling_global[44])
+#define COLOR_AbsTableEltClass (SFT_compiling_global[45])
+#define ATTR_compiling_global___AbsTableEltClass____local_class(recv) ATTR(recv, (SFT_compiling_global[46] + 0))
+#define INIT_TABLE_POS_AbsTableEltClass (SFT_compiling_global[47] + 0)
+#define CALL_compiling_global___AbsTableEltClass___init(recv) ((compiling_global___AbsTableEltClass___init_t)CALL((recv), (SFT_compiling_global[47] + 1)))
+#define CALL_compiling_global___AbsTableEltClass___symbol(recv) ((compiling_global___AbsTableEltClass___symbol_t)CALL((recv), (SFT_compiling_global[47] + 2)))
+#define ID_TableEltClass (SFT_compiling_global[48])
+#define COLOR_TableEltClass (SFT_compiling_global[49])
+#define INIT_TABLE_POS_TableEltClass (SFT_compiling_global[50] + 0)
+#define ID_TableEltClassId (SFT_compiling_global[51])
+#define COLOR_TableEltClassId (SFT_compiling_global[52])
+#define INIT_TABLE_POS_TableEltClassId (SFT_compiling_global[53] + 0)
+#define ID_TableEltClassInitTable (SFT_compiling_global[54])
+#define COLOR_TableEltClassInitTable (SFT_compiling_global[55])
+#define INIT_TABLE_POS_TableEltClassInitTable (SFT_compiling_global[56] + 0)
+#define ID_TableEltClassColor (SFT_compiling_global[57])
+#define COLOR_TableEltClassColor (SFT_compiling_global[58])
+#define INIT_TABLE_POS_TableEltClassColor (SFT_compiling_global[59] + 0)
+#define ID_TableEltComposite (SFT_compiling_global[60])
+#define COLOR_TableEltComposite (SFT_compiling_global[61])
+#define ATTR_compiling_global___TableEltComposite____table(recv) ATTR(recv, (SFT_compiling_global[62] + 0))
+#define ATTR_compiling_global___TableEltComposite____cc(recv) ATTR(recv, (SFT_compiling_global[62] + 1))
+#define ATTR_compiling_global___TableEltComposite____offsets(recv) ATTR(recv, (SFT_compiling_global[62] + 2))
+#define INIT_TABLE_POS_TableEltComposite (SFT_compiling_global[63] + 0)
+#define CALL_compiling_global___TableEltComposite___add(recv) ((compiling_global___TableEltComposite___add_t)CALL((recv), (SFT_compiling_global[63] + 1)))
+#define CALL_compiling_global___TableEltComposite___init(recv) ((compiling_global___TableEltComposite___init_t)CALL((recv), (SFT_compiling_global[63] + 2)))
+#define ID_TableEltClassSelfId (SFT_compiling_global[64])
+#define COLOR_TableEltClassSelfId (SFT_compiling_global[65])
+#define INIT_TABLE_POS_TableEltClassSelfId (SFT_compiling_global[66] + 0)
+#define ID_TableEltVftPointer (SFT_compiling_global[67])
+#define COLOR_TableEltVftPointer (SFT_compiling_global[68])
+#define INIT_TABLE_POS_TableEltVftPointer (SFT_compiling_global[69] + 0)
+#define ID_ClassSorter (SFT_compiling_global[70])
+#define COLOR_ClassSorter (SFT_compiling_global[71])
+#define INIT_TABLE_POS_ClassSorter (SFT_compiling_global[72] + 0)
+#define CALL_compiling_global___ClassSorter___init(recv) ((compiling_global___ClassSorter___init_t)CALL((recv), (SFT_compiling_global[72] + 1)))
+#define CALL_compiling_global___MMLocalClass___compare(recv) ((compiling_global___MMLocalClass___compare_t)CALL((recv), (SFT_compiling_global[73] + 0)))
+#define CALL_compiling_global___MMLocalClass___declare_tables_to_c(recv) ((compiling_global___MMLocalClass___declare_tables_to_c_t)CALL((recv), (SFT_compiling_global[73] + 1)))
+#define CALL_compiling_global___MMLocalClass___compile_tables_to_c(recv) ((compiling_global___MMLocalClass___compile_tables_to_c_t)CALL((recv), (SFT_compiling_global[73] + 2)))
 typedef val_t (* compiling_global___ColorContext___color_t)(val_t  self, val_t  param0);
 val_t compiling_global___ColorContext___color(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___ColorContext___color "compiling_global::ColorContext::color"
@@ -197,15 +194,12 @@ typedef void (* compiling_global___ColorContext___init_t)(val_t  self, int* init
 void compiling_global___ColorContext___init(val_t  self, int* init_table);
 #define LOCATE_compiling_global___ColorContext___init "compiling_global::ColorContext::init"
 val_t NEW_ColorContext_compiling_global___ColorContext___init();
-#define ATTR_compiling_global___GlobalAnalysis____compiled_classes(recv) ATTR(recv, COLOR_compiling_global___GlobalAnalysis____compiled_classes)
 typedef val_t (* compiling_global___GlobalAnalysis___compiled_classes_t)(val_t  self);
 val_t compiling_global___GlobalAnalysis___compiled_classes(val_t  self);
 #define LOCATE_compiling_global___GlobalAnalysis___compiled_classes "compiling_global::GlobalAnalysis::compiled_classes"
-#define ATTR_compiling_global___GlobalAnalysis____module(recv) ATTR(recv, COLOR_compiling_global___GlobalAnalysis____module)
 typedef val_t (* compiling_global___GlobalAnalysis___module_t)(val_t  self);
 val_t compiling_global___GlobalAnalysis___module(val_t  self);
 #define LOCATE_compiling_global___GlobalAnalysis___module "compiling_global::GlobalAnalysis::module"
-#define ATTR_compiling_global___GlobalAnalysis____max_class_table_length(recv) ATTR(recv, COLOR_compiling_global___GlobalAnalysis____max_class_table_length)
 typedef val_t (* compiling_global___GlobalAnalysis___max_class_table_length_t)(val_t  self);
 val_t compiling_global___GlobalAnalysis___max_class_table_length(val_t  self);
 #define LOCATE_compiling_global___GlobalAnalysis___max_class_table_length "compiling_global::GlobalAnalysis::max_class_table_length"
@@ -217,46 +211,39 @@ void compiling_global___GlobalAnalysis___init(val_t  self, val_t  param0, int* i
 #define LOCATE_compiling_global___GlobalAnalysis___init "compiling_global::GlobalAnalysis::init"
 val_t NEW_GlobalAnalysis_compiling_global___GlobalAnalysis___init(val_t p0);
 val_t NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(val_t p0);
-#define ATTR_compiling_global___CompilerVisitor____global_analysis(recv) ATTR(recv, COLOR_compiling_global___CompilerVisitor____global_analysis)
 typedef val_t (* compiling_global___CompilerVisitor___global_analysis_t)(val_t  self);
 val_t compiling_global___CompilerVisitor___global_analysis(val_t  self);
 #define LOCATE_compiling_global___CompilerVisitor___global_analysis "compiling_global::CompilerVisitor::global_analysis"
 typedef void (* compiling_global___CompilerVisitor___global_analysis__eq_t)(val_t  self, val_t  param0);
 void compiling_global___CompilerVisitor___global_analysis__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___CompilerVisitor___global_analysis__eq "compiling_global::CompilerVisitor::global_analysis="
-#define ATTR_compiling_global___CompiledClass____local_class(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____local_class)
 typedef val_t (* compiling_global___CompiledClass___local_class_t)(val_t  self);
 val_t compiling_global___CompiledClass___local_class(val_t  self);
 #define LOCATE_compiling_global___CompiledClass___local_class "compiling_global::CompiledClass::local_class"
-#define ATTR_compiling_global___CompiledClass____id(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____id)
 typedef val_t (* compiling_global___CompiledClass___id_t)(val_t  self);
 val_t compiling_global___CompiledClass___id(val_t  self);
 #define LOCATE_compiling_global___CompiledClass___id "compiling_global::CompiledClass::id"
 typedef void (* compiling_global___CompiledClass___id__eq_t)(val_t  self, val_t  param0);
 void compiling_global___CompiledClass___id__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___CompiledClass___id__eq "compiling_global::CompiledClass::id="
-#define ATTR_compiling_global___CompiledClass____class_table(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____class_table)
 typedef val_t (* compiling_global___CompiledClass___class_table_t)(val_t  self);
 val_t compiling_global___CompiledClass___class_table(val_t  self);
 #define LOCATE_compiling_global___CompiledClass___class_table "compiling_global::CompiledClass::class_table"
 typedef void (* compiling_global___CompiledClass___class_table__eq_t)(val_t  self, val_t  param0);
 void compiling_global___CompiledClass___class_table__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___CompiledClass___class_table__eq "compiling_global::CompiledClass::class_table="
-#define ATTR_compiling_global___CompiledClass____instance_table(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____instance_table)
 typedef val_t (* compiling_global___CompiledClass___instance_table_t)(val_t  self);
 val_t compiling_global___CompiledClass___instance_table(val_t  self);
 #define LOCATE_compiling_global___CompiledClass___instance_table "compiling_global::CompiledClass::instance_table"
 typedef void (* compiling_global___CompiledClass___instance_table__eq_t)(val_t  self, val_t  param0);
 void compiling_global___CompiledClass___instance_table__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___CompiledClass___instance_table__eq "compiling_global::CompiledClass::instance_table="
-#define ATTR_compiling_global___CompiledClass____class_layout(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____class_layout)
 typedef val_t (* compiling_global___CompiledClass___class_layout_t)(val_t  self);
 val_t compiling_global___CompiledClass___class_layout(val_t  self);
 #define LOCATE_compiling_global___CompiledClass___class_layout "compiling_global::CompiledClass::class_layout"
 typedef void (* compiling_global___CompiledClass___class_layout__eq_t)(val_t  self, val_t  param0);
 void compiling_global___CompiledClass___class_layout__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___CompiledClass___class_layout__eq "compiling_global::CompiledClass::class_layout="
-#define ATTR_compiling_global___CompiledClass____instance_layout(recv) ATTR(recv, COLOR_compiling_global___CompiledClass____instance_layout)
 typedef val_t (* compiling_global___CompiledClass___instance_layout_t)(val_t  self);
 val_t compiling_global___CompiledClass___instance_layout(val_t  self);
 #define LOCATE_compiling_global___CompiledClass___instance_layout "compiling_global::CompiledClass::instance_layout"
@@ -267,28 +254,13 @@ typedef void (* compiling_global___CompiledClass___init_t)(val_t  self, val_t  p
 void compiling_global___CompiledClass___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_compiling_global___CompiledClass___init "compiling_global::CompiledClass::init"
 val_t NEW_CompiledClass_compiling_global___CompiledClass___init(val_t p0);
-val_t NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(val_t p0);
-#define ATTR_compiling_global___MMGlobalProperty____pos_of(recv) ATTR(recv, COLOR_compiling_global___MMGlobalProperty____pos_of)
-typedef val_t (* compiling_global___MMGlobalProperty___pos_of_t)(val_t  self);
-val_t compiling_global___MMGlobalProperty___pos_of(val_t  self);
-#define LOCATE_compiling_global___MMGlobalProperty___pos_of "compiling_global::MMGlobalProperty::pos_of"
-typedef void (* compiling_global___MMGlobalProperty___pos_of__eq_t)(val_t  self, val_t  param0);
-void compiling_global___MMGlobalProperty___pos_of__eq(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___MMGlobalProperty___pos_of__eq "compiling_global::MMGlobalProperty::pos_of="
 val_t NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_compiling_global___MMSrcLocalClass____base_attr_pos(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____base_attr_pos)
-typedef val_t (* compiling_global___MMSrcLocalClass___base_attr_pos_t)(val_t  self);
-val_t compiling_global___MMSrcLocalClass___base_attr_pos(val_t  self);
-#define LOCATE_compiling_global___MMSrcLocalClass___base_attr_pos "compiling_global::MMSrcLocalClass::base_attr_pos"
-#define ATTR_compiling_global___MMSrcLocalClass____class_color_pos(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____class_color_pos)
 typedef val_t (* compiling_global___MMSrcLocalClass___class_color_pos_t)(val_t  self);
 val_t compiling_global___MMSrcLocalClass___class_color_pos(val_t  self);
 #define LOCATE_compiling_global___MMSrcLocalClass___class_color_pos "compiling_global::MMSrcLocalClass::class_color_pos"
-#define ATTR_compiling_global___MMSrcLocalClass____class_layout(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____class_layout)
 typedef val_t (* compiling_global___MMSrcLocalClass___class_layout_t)(val_t  self);
 val_t compiling_global___MMSrcLocalClass___class_layout(val_t  self);
 #define LOCATE_compiling_global___MMSrcLocalClass___class_layout "compiling_global::MMSrcLocalClass::class_layout"
-#define ATTR_compiling_global___MMSrcLocalClass____instance_layout(recv) ATTR(recv, COLOR_compiling_global___MMSrcLocalClass____instance_layout)
 typedef val_t (* compiling_global___MMSrcLocalClass___instance_layout_t)(val_t  self);
 val_t compiling_global___MMSrcLocalClass___instance_layout(val_t  self);
 #define LOCATE_compiling_global___MMSrcLocalClass___instance_layout "compiling_global::MMSrcLocalClass::instance_layout"
@@ -296,7 +268,6 @@ typedef void (* compiling_global___MMSrcLocalClass___build_layout_in_t)(val_t  s
 void compiling_global___MMSrcLocalClass___build_layout_in(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_global___MMSrcLocalClass___build_layout_in "compiling_global::MMSrcLocalClass::build_layout_in"
 val_t NEW_MMSrcModule_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
-#define ATTR_compiling_global___MMSrcModule____local_table(recv) ATTR(recv, COLOR_compiling_global___MMSrcModule____local_table)
 typedef void (* compiling_global___MMSrcModule___local_analysis_t)(val_t  self, val_t  param0);
 void compiling_global___MMSrcModule___local_analysis(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___MMSrcModule___local_analysis "compiling_global::MMSrcModule::local_analysis"
@@ -330,6 +301,14 @@ void compiling_global___MMSrcModule___compile_mod_to_c(val_t  self, val_t  param
 typedef void (* compiling_global___MMSrcModule___compile_local_table_to_c_t)(val_t  self, val_t  param0);
 void compiling_global___MMSrcModule___compile_local_table_to_c(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___MMSrcModule___compile_local_table_to_c "compiling_global::MMSrcModule::compile_local_table_to_c"
+typedef void (* compiling_global___AbsTableElt___compile_macros_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___AbsTableElt___compile_macros(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___AbsTableElt___compile_macros "compiling_global::AbsTableElt::compile_macros"
+typedef void (* compiling_global___AbsTableElt___init_t)(val_t  self, int* init_table);
+void compiling_global___AbsTableElt___init(val_t  self, int* init_table);
+#define LOCATE_compiling_global___AbsTableElt___init "compiling_global::AbsTableElt::init"
+val_t NEW_AbsTableElt_compiling_global___AbsTableElt___init();
+val_t NEW_TableElt_compiling_global___AbsTableElt___init();
 typedef val_t (* compiling_global___TableElt___is_related_to_t)(val_t  self, val_t  param0);
 val_t compiling_global___TableElt___is_related_to(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___TableElt___is_related_to "compiling_global::TableElt::is_related_to"
@@ -342,110 +321,83 @@ val_t compiling_global___TableElt___item(val_t  self, val_t  param0);
 typedef val_t (* compiling_global___TableElt___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
 val_t compiling_global___TableElt___compile_to_c(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_global___TableElt___compile_to_c "compiling_global::TableElt::compile_to_c"
-typedef void (* compiling_global___TableElt___init_t)(val_t  self, int* init_table);
-void compiling_global___TableElt___init(val_t  self, int* init_table);
-#define LOCATE_compiling_global___TableElt___init "compiling_global::TableElt::init"
-val_t NEW_TableElt_compiling_global___TableElt___init();
-val_t NEW_LocalTableElt_compiling_global___TableElt___init();
-typedef val_t (* compiling_global___LocalTableElt___symbol_t)(val_t  self);
-val_t compiling_global___LocalTableElt___symbol(val_t  self);
-#define LOCATE_compiling_global___LocalTableElt___symbol "compiling_global::LocalTableElt::symbol"
-typedef val_t (* compiling_global___LocalTableElt___value_t)(val_t  self, val_t  param0);
-val_t compiling_global___LocalTableElt___value(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___LocalTableElt___value "compiling_global::LocalTableElt::value"
-typedef val_t (* compiling_global___TableEltPropPos___symbol_t)(val_t  self);
-val_t compiling_global___TableEltPropPos___symbol(val_t  self);
-#define LOCATE_compiling_global___TableEltPropPos___symbol "compiling_global::TableEltPropPos::(compiling_global::LocalTableElt::symbol)"
-typedef val_t (* compiling_global___TableEltPropPos___value_t)(val_t  self, val_t  param0);
-val_t compiling_global___TableEltPropPos___value(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___TableEltPropPos___value "compiling_global::TableEltPropPos::(compiling_global::LocalTableElt::value)"
-#define ATTR_compiling_global___TableEltPropPos____property(recv) ATTR(recv, COLOR_compiling_global___TableEltPropPos____property)
-typedef void (* compiling_global___TableEltPropPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltPropPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltPropPos___init "compiling_global::TableEltPropPos::init"
-val_t NEW_TableEltPropPos_compiling_global___TableEltPropPos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltMethPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
-val_t compiling_global___TableEltMethPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_compiling_global___TableEltMethPos___compile_to_c "compiling_global::TableEltMethPos::(compiling_global::TableElt::compile_to_c)"
-typedef void (* compiling_global___TableEltMethPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltMethPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltMethPos___init "compiling_global::TableEltMethPos::init"
-val_t NEW_TableEltMethPos_compiling_global___TableEltMethPos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltSuperPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
-val_t compiling_global___TableEltSuperPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_compiling_global___TableEltSuperPos___compile_to_c "compiling_global::TableEltSuperPos::(compiling_global::TableElt::compile_to_c)"
-typedef val_t (* compiling_global___TableEltSuperPos___symbol_t)(val_t  self);
-val_t compiling_global___TableEltSuperPos___symbol(val_t  self);
-#define LOCATE_compiling_global___TableEltSuperPos___symbol "compiling_global::TableEltSuperPos::(compiling_global::LocalTableElt::symbol)"
-typedef void (* compiling_global___TableEltSuperPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltSuperPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltSuperPos___init "compiling_global::TableEltSuperPos::init"
-val_t NEW_TableEltSuperPos_compiling_global___TableEltSuperPos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltAttrPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
-val_t compiling_global___TableEltAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_compiling_global___TableEltAttrPos___compile_to_c "compiling_global::TableEltAttrPos::(compiling_global::TableElt::compile_to_c)"
-typedef void (* compiling_global___TableEltAttrPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltAttrPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltAttrPos___init "compiling_global::TableEltAttrPos::init"
-val_t NEW_TableEltAttrPos_compiling_global___TableEltAttrPos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltClassPos___is_related_to_t)(val_t  self, val_t  param0);
-val_t compiling_global___TableEltClassPos___is_related_to(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___TableEltClassPos___is_related_to "compiling_global::TableEltClassPos::(compiling_global::TableElt::is_related_to)"
-#define ATTR_compiling_global___TableEltClassPos____local_class(recv) ATTR(recv, COLOR_compiling_global___TableEltClassPos____local_class)
-typedef void (* compiling_global___TableEltClassPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltClassPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltClassPos___init "compiling_global::TableEltClassPos::init"
-val_t NEW_TableEltClassPos_compiling_global___TableEltClassPos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltClassIdPos___symbol_t)(val_t  self);
-val_t compiling_global___TableEltClassIdPos___symbol(val_t  self);
-#define LOCATE_compiling_global___TableEltClassIdPos___symbol "compiling_global::TableEltClassIdPos::(compiling_global::LocalTableElt::symbol)"
-typedef val_t (* compiling_global___TableEltClassIdPos___value_t)(val_t  self, val_t  param0);
-val_t compiling_global___TableEltClassIdPos___value(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___TableEltClassIdPos___value "compiling_global::TableEltClassIdPos::(compiling_global::LocalTableElt::value)"
-typedef void (* compiling_global___TableEltClassIdPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltClassIdPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltClassIdPos___init "compiling_global::TableEltClassIdPos::init"
-val_t NEW_TableEltClassIdPos_compiling_global___TableEltClassIdPos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltClassInitTablePos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
-val_t compiling_global___TableEltClassInitTablePos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_compiling_global___TableEltClassInitTablePos___compile_to_c "compiling_global::TableEltClassInitTablePos::(compiling_global::TableElt::compile_to_c)"
-typedef val_t (* compiling_global___TableEltClassInitTablePos___symbol_t)(val_t  self);
-val_t compiling_global___TableEltClassInitTablePos___symbol(val_t  self);
-#define LOCATE_compiling_global___TableEltClassInitTablePos___symbol "compiling_global::TableEltClassInitTablePos::(compiling_global::LocalTableElt::symbol)"
-typedef val_t (* compiling_global___TableEltClassInitTablePos___value_t)(val_t  self, val_t  param0);
-val_t compiling_global___TableEltClassInitTablePos___value(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___TableEltClassInitTablePos___value "compiling_global::TableEltClassInitTablePos::(compiling_global::LocalTableElt::value)"
-typedef void (* compiling_global___TableEltClassInitTablePos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltClassInitTablePos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltClassInitTablePos___init "compiling_global::TableEltClassInitTablePos::init"
-val_t NEW_TableEltClassInitTablePos_compiling_global___TableEltClassInitTablePos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltClassColorPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
-val_t compiling_global___TableEltClassColorPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_compiling_global___TableEltClassColorPos___compile_to_c "compiling_global::TableEltClassColorPos::(compiling_global::TableElt::compile_to_c)"
-typedef val_t (* compiling_global___TableEltClassColorPos___symbol_t)(val_t  self);
-val_t compiling_global___TableEltClassColorPos___symbol(val_t  self);
-#define LOCATE_compiling_global___TableEltClassColorPos___symbol "compiling_global::TableEltClassColorPos::(compiling_global::LocalTableElt::symbol)"
-typedef val_t (* compiling_global___TableEltClassColorPos___value_t)(val_t  self, val_t  param0);
-val_t compiling_global___TableEltClassColorPos___value(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___TableEltClassColorPos___value "compiling_global::TableEltClassColorPos::(compiling_global::LocalTableElt::value)"
-typedef void (* compiling_global___TableEltClassColorPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltClassColorPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltClassColorPos___init "compiling_global::TableEltClassColorPos::init"
-val_t NEW_TableEltClassColorPos_compiling_global___TableEltClassColorPos___init(val_t p0);
-typedef val_t (* compiling_global___TableEltBaseAttrPos___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
-val_t compiling_global___TableEltBaseAttrPos___compile_to_c(val_t  self, val_t  param0, val_t  param1);
-#define LOCATE_compiling_global___TableEltBaseAttrPos___compile_to_c "compiling_global::TableEltBaseAttrPos::(compiling_global::TableElt::compile_to_c)"
-typedef val_t (* compiling_global___TableEltBaseAttrPos___symbol_t)(val_t  self);
-val_t compiling_global___TableEltBaseAttrPos___symbol(val_t  self);
-#define LOCATE_compiling_global___TableEltBaseAttrPos___symbol "compiling_global::TableEltBaseAttrPos::(compiling_global::LocalTableElt::symbol)"
-typedef val_t (* compiling_global___TableEltBaseAttrPos___value_t)(val_t  self, val_t  param0);
-val_t compiling_global___TableEltBaseAttrPos___value(val_t  self, val_t  param0);
-#define LOCATE_compiling_global___TableEltBaseAttrPos___value "compiling_global::TableEltBaseAttrPos::(compiling_global::LocalTableElt::value)"
-#define ATTR_compiling_global___TableEltBaseAttrPos____local_class(recv) ATTR(recv, COLOR_compiling_global___TableEltBaseAttrPos____local_class)
-typedef void (* compiling_global___TableEltBaseAttrPos___init_t)(val_t  self, val_t  param0, int* init_table);
-void compiling_global___TableEltBaseAttrPos___init(val_t  self, val_t  param0, int* init_table);
-#define LOCATE_compiling_global___TableEltBaseAttrPos___init "compiling_global::TableEltBaseAttrPos::init"
-val_t NEW_TableEltBaseAttrPos_compiling_global___TableEltBaseAttrPos___init(val_t p0);
+val_t NEW_ModuleTableElt_compiling_global___AbsTableElt___init();
+typedef val_t (* compiling_global___ModuleTableElt___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___ModuleTableElt___value(val_t  self, val_t  param0);
+#define LOCATE_compiling_global___ModuleTableElt___value "compiling_global::ModuleTableElt::value"
+typedef void (* compiling_global___ModuleTableEltGroup___compile_macros_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___ModuleTableEltGroup___compile_macros(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___ModuleTableEltGroup___compile_macros "compiling_global::ModuleTableEltGroup::(compiling_global::AbsTableElt::compile_macros)"
+val_t NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init();
+typedef val_t (* compiling_global___ModuleTableEltGroup___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___ModuleTableEltGroup___value(val_t  self, val_t  param0);
+#define LOCATE_compiling_global___ModuleTableEltGroup___value "compiling_global::ModuleTableEltGroup::(compiling_global::ModuleTableElt::value)"
+typedef val_t (* compiling_global___ModuleTableEltGroup___elements_t)(val_t  self);
+val_t compiling_global___ModuleTableEltGroup___elements(val_t  self);
+#define LOCATE_compiling_global___ModuleTableEltGroup___elements "compiling_global::ModuleTableEltGroup::elements"
+typedef void (* compiling_global___TableEltProp___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___TableEltProp___init(val_t  self, val_t  param0, int* init_table);
+#define LOCATE_compiling_global___TableEltProp___init "compiling_global::TableEltProp::init"
+val_t NEW_TableEltProp_compiling_global___TableEltProp___init(val_t p0);
+typedef void (* compiling_global___TableEltMeth___compile_macros_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___TableEltMeth___compile_macros(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltMeth___compile_macros "compiling_global::TableEltMeth::(compiling_global::AbsTableElt::compile_macros)"
+typedef val_t (* compiling_global___TableEltMeth___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltMeth___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltMeth___compile_to_c "compiling_global::TableEltMeth::(compiling_global::TableElt::compile_to_c)"
+val_t NEW_TableEltMeth_compiling_global___TableEltProp___init(val_t p0);
+typedef void (* compiling_global___TableEltSuper___compile_macros_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___TableEltSuper___compile_macros(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltSuper___compile_macros "compiling_global::TableEltSuper::(compiling_global::AbsTableElt::compile_macros)"
+typedef val_t (* compiling_global___TableEltSuper___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltSuper___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltSuper___compile_to_c "compiling_global::TableEltSuper::(compiling_global::TableElt::compile_to_c)"
+val_t NEW_TableEltSuper_compiling_global___TableEltProp___init(val_t p0);
+typedef void (* compiling_global___TableEltAttr___compile_macros_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___TableEltAttr___compile_macros(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltAttr___compile_macros "compiling_global::TableEltAttr::(compiling_global::AbsTableElt::compile_macros)"
+typedef val_t (* compiling_global___TableEltAttr___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltAttr___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltAttr___compile_to_c "compiling_global::TableEltAttr::(compiling_global::TableElt::compile_to_c)"
+val_t NEW_TableEltAttr_compiling_global___TableEltProp___init(val_t p0);
+typedef void (* compiling_global___AbsTableEltClass___compile_macros_t)(val_t  self, val_t  param0, val_t  param1);
+void compiling_global___AbsTableEltClass___compile_macros(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___AbsTableEltClass___compile_macros "compiling_global::AbsTableEltClass::(compiling_global::AbsTableElt::compile_macros)"
+typedef void (* compiling_global___AbsTableEltClass___init_t)(val_t  self, val_t  param0, int* init_table);
+void compiling_global___AbsTableEltClass___init(val_t  self, val_t  param0, int* init_table);
+#define LOCATE_compiling_global___AbsTableEltClass___init "compiling_global::AbsTableEltClass::init"
+val_t NEW_AbsTableEltClass_compiling_global___AbsTableEltClass___init(val_t p0);
+typedef val_t (* compiling_global___AbsTableEltClass___symbol_t)(val_t  self);
+val_t compiling_global___AbsTableEltClass___symbol(val_t  self);
+#define LOCATE_compiling_global___AbsTableEltClass___symbol "compiling_global::AbsTableEltClass::symbol"
+typedef val_t (* compiling_global___TableEltClass___is_related_to_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClass___is_related_to(val_t  self, val_t  param0);
+#define LOCATE_compiling_global___TableEltClass___is_related_to "compiling_global::TableEltClass::(compiling_global::TableElt::is_related_to)"
+val_t NEW_TableEltClass_compiling_global___AbsTableEltClass___init(val_t p0);
+typedef val_t (* compiling_global___TableEltClassId___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClassId___value(val_t  self, val_t  param0);
+#define LOCATE_compiling_global___TableEltClassId___value "compiling_global::TableEltClassId::(compiling_global::ModuleTableElt::value)"
+val_t NEW_TableEltClassId_compiling_global___AbsTableEltClass___init(val_t p0);
+typedef val_t (* compiling_global___TableEltClassId___symbol_t)(val_t  self);
+val_t compiling_global___TableEltClassId___symbol(val_t  self);
+#define LOCATE_compiling_global___TableEltClassId___symbol "compiling_global::TableEltClassId::(compiling_global::AbsTableEltClass::symbol)"
+typedef val_t (* compiling_global___TableEltClassInitTable___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltClassInitTable___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltClassInitTable___compile_to_c "compiling_global::TableEltClassInitTable::(compiling_global::TableElt::compile_to_c)"
+val_t NEW_TableEltClassInitTable_compiling_global___AbsTableEltClass___init(val_t p0);
+typedef val_t (* compiling_global___TableEltClassInitTable___symbol_t)(val_t  self);
+val_t compiling_global___TableEltClassInitTable___symbol(val_t  self);
+#define LOCATE_compiling_global___TableEltClassInitTable___symbol "compiling_global::TableEltClassInitTable::(compiling_global::AbsTableEltClass::symbol)"
+typedef val_t (* compiling_global___TableEltClassColor___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
+val_t compiling_global___TableEltClassColor___compile_to_c(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_compiling_global___TableEltClassColor___compile_to_c "compiling_global::TableEltClassColor::(compiling_global::TableElt::compile_to_c)"
+val_t NEW_TableEltClassColor_compiling_global___AbsTableEltClass___init(val_t p0);
+typedef val_t (* compiling_global___TableEltClassColor___symbol_t)(val_t  self);
+val_t compiling_global___TableEltClassColor___symbol(val_t  self);
+#define LOCATE_compiling_global___TableEltClassColor___symbol "compiling_global::TableEltClassColor::(compiling_global::AbsTableEltClass::symbol)"
+typedef val_t (* compiling_global___TableEltClassColor___value_t)(val_t  self, val_t  param0);
+val_t compiling_global___TableEltClassColor___value(val_t  self, val_t  param0);
+#define LOCATE_compiling_global___TableEltClassColor___value "compiling_global::TableEltClassColor::(compiling_global::ModuleTableElt::value)"
 typedef val_t (* compiling_global___TableEltComposite___is_related_to_t)(val_t  self, val_t  param0);
 val_t compiling_global___TableEltComposite___is_related_to(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___TableEltComposite___is_related_to "compiling_global::TableEltComposite::(compiling_global::TableElt::is_related_to)"
@@ -458,9 +410,6 @@ val_t compiling_global___TableEltComposite___item(val_t  self, val_t  param0);
 typedef val_t (* compiling_global___TableEltComposite___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
 val_t compiling_global___TableEltComposite___compile_to_c(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_global___TableEltComposite___compile_to_c "compiling_global::TableEltComposite::(compiling_global::TableElt::compile_to_c)"
-#define ATTR_compiling_global___TableEltComposite____table(recv) ATTR(recv, COLOR_compiling_global___TableEltComposite____table)
-#define ATTR_compiling_global___TableEltComposite____cc(recv) ATTR(recv, COLOR_compiling_global___TableEltComposite____cc)
-#define ATTR_compiling_global___TableEltComposite____offsets(recv) ATTR(recv, COLOR_compiling_global___TableEltComposite____offsets)
 typedef void (* compiling_global___TableEltComposite___add_t)(val_t  self, val_t  param0, val_t  param1);
 void compiling_global___TableEltComposite___add(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_global___TableEltComposite___add "compiling_global::TableEltComposite::add"
@@ -468,26 +417,20 @@ typedef void (* compiling_global___TableEltComposite___init_t)(val_t  self, val_
 void compiling_global___TableEltComposite___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_compiling_global___TableEltComposite___init "compiling_global::TableEltComposite::init"
 val_t NEW_TableEltComposite_compiling_global___TableEltComposite___init(val_t p0);
+val_t NEW_TableEltClassSelfId_compiling_global___AbsTableElt___init();
 typedef val_t (* compiling_global___TableEltClassSelfId___is_related_to_t)(val_t  self, val_t  param0);
 val_t compiling_global___TableEltClassSelfId___is_related_to(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___TableEltClassSelfId___is_related_to "compiling_global::TableEltClassSelfId::(compiling_global::TableElt::is_related_to)"
 typedef val_t (* compiling_global___TableEltClassSelfId___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
 val_t compiling_global___TableEltClassSelfId___compile_to_c(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_global___TableEltClassSelfId___compile_to_c "compiling_global::TableEltClassSelfId::(compiling_global::TableElt::compile_to_c)"
-typedef void (* compiling_global___TableEltClassSelfId___init_t)(val_t  self, int* init_table);
-void compiling_global___TableEltClassSelfId___init(val_t  self, int* init_table);
-#define LOCATE_compiling_global___TableEltClassSelfId___init "compiling_global::TableEltClassSelfId::init"
-val_t NEW_TableEltClassSelfId_compiling_global___TableEltClassSelfId___init();
+val_t NEW_TableEltVftPointer_compiling_global___AbsTableElt___init();
 typedef val_t (* compiling_global___TableEltVftPointer___is_related_to_t)(val_t  self, val_t  param0);
 val_t compiling_global___TableEltVftPointer___is_related_to(val_t  self, val_t  param0);
 #define LOCATE_compiling_global___TableEltVftPointer___is_related_to "compiling_global::TableEltVftPointer::(compiling_global::TableElt::is_related_to)"
 typedef val_t (* compiling_global___TableEltVftPointer___compile_to_c_t)(val_t  self, val_t  param0, val_t  param1);
 val_t compiling_global___TableEltVftPointer___compile_to_c(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_global___TableEltVftPointer___compile_to_c "compiling_global::TableEltVftPointer::(compiling_global::TableElt::compile_to_c)"
-typedef void (* compiling_global___TableEltVftPointer___init_t)(val_t  self, int* init_table);
-void compiling_global___TableEltVftPointer___init(val_t  self, int* init_table);
-#define LOCATE_compiling_global___TableEltVftPointer___init "compiling_global::TableEltVftPointer::init"
-val_t NEW_TableEltVftPointer_compiling_global___TableEltVftPointer___init();
 typedef val_t (* compiling_global___ClassSorter___compare_t)(val_t  self, val_t  param0, val_t  param1);
 val_t compiling_global___ClassSorter___compare(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_global___ClassSorter___compare "compiling_global::ClassSorter::(sorter::AbstractSorter::compare)"
index 43616e3..7084396 100644 (file)
@@ -9,7 +9,7 @@ void compiling_methods___CompilerVisitor___init(val_t  self, val_t  param0, int*
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompilerVisitor].i]) return;
-  ((compiling_methods___CompilerVisitor___init_t)CALL(variable[0],COLOR_SUPER_compiling_methods___CompilerVisitor___init))(variable[0], variable[1], init_table) /*super CompilerVisitor::init*/;
+  CALL_SUPER_compiling_methods___CompilerVisitor___init(variable[0])(variable[0], variable[1], init_table) /*super CompilerVisitor::init*/;
   return_label0: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CompilerVisitor].i] = 1;
   tracehead = trace.prev;
@@ -24,15 +24,15 @@ void compiling_methods___CompilerVisitor___compile_stmt(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((compiling_methods___PExpr___prepare_compile_stmt_t)CALL( variable[1] /*n*/,COLOR_compiling_methods___PExpr___prepare_compile_stmt))( variable[1] /*n*/, variable[3]) /*PExpr::prepare_compile_stmt*/;
+  CALL_compiling_methods___PExpr___prepare_compile_stmt( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PExpr::prepare_compile_stmt*/;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[4]) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[4])(variable[4]) /*CompilerVisitor::cfc*/;
   variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((compiling_methods___PExpr___compile_stmt_t)CALL( variable[1] /*n*/,COLOR_compiling_methods___PExpr___compile_stmt))( variable[1] /*n*/, variable[4]) /*PExpr::compile_stmt*/;
+  CALL_compiling_methods___PExpr___compile_stmt( variable[1] /*n*/)( variable[1] /*n*/, variable[4]) /*PExpr::compile_stmt*/;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[4]) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[4])(variable[4]) /*CompilerVisitor::cfc*/;
   ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/ =  variable[3] /*i*/;
   return_label1: while(false);
   tracehead = trace.prev;
@@ -47,27 +47,27 @@ val_t compiling_methods___CompilerVisitor___compile_expr(val_t  self, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[4]) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[4])(variable[4]) /*CompilerVisitor::cfc*/;
   variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((compiling_methods___PExpr___compile_expr_t)CALL( variable[1] /*n*/,COLOR_compiling_methods___PExpr___compile_expr))( variable[1] /*n*/, variable[5]) /*PExpr::compile_expr*/;
+  variable[5] = CALL_compiling_methods___PExpr___compile_expr( variable[1] /*n*/)( variable[1] /*n*/, variable[5]) /*PExpr::compile_expr*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[5],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[5]) /*CompilerVisitor::cfc*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc(variable[5])(variable[5]) /*CompilerVisitor::cfc*/;
   ATTR_compiling_methods___CFunctionContext____variable_index(variable[5]) /*CFunctionContext::_variable_index*/ =  variable[3] /*i*/;
-  variable[5] = ((string___String_____bra_t)CALL( variable[4] /*s*/,COLOR_abstract_collection___Map_____bra))( variable[4] /*s*/,  TAG_Int(0)) /*String::[]*/;
+  variable[5] = CALL_abstract_collection___Map_____bra( variable[4] /*s*/)( variable[4] /*s*/,  TAG_Int(0)) /*String::[]*/;
   variable[5] = TAG_Bool((variable[5])==( TAG_Char(' ')));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[2] =  variable[4] /*s*/;
     goto return_label2;
   }
   variable[6] = variable[0];
-  variable[6] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[6],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[6]) /*CompilerVisitor::cfc*/;
-  variable[6] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[6],COLOR_compiling_methods___CFunctionContext___get_var))(variable[6]) /*CFunctionContext::get_var*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc(variable[6])(variable[6]) /*CompilerVisitor::cfc*/;
+  variable[6] = CALL_compiling_methods___CFunctionContext___get_var(variable[6])(variable[6]) /*CFunctionContext::get_var*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL(variable[6],COLOR_compiling_methods___CompilerVisitor___add_assignment))(variable[6],  variable[5] /*v*/,  variable[4] /*s*/) /*CompilerVisitor::add_assignment*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment(variable[6])(variable[6],  variable[5] /*v*/,  variable[4] /*s*/) /*CompilerVisitor::add_assignment*/;
   variable[2] =  variable[5] /*v*/;
   goto return_label2;
   return_label2: while(false);
@@ -82,19 +82,19 @@ val_t compiling_methods___CompilerVisitor___ensure_var(val_t  self, val_t  param
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((string___String___substring_t)CALL( variable[1] /*s*/,COLOR_string___String___substring))( variable[1] /*s*/,  TAG_Int(0),  TAG_Int(3)) /*String::substring*/;
+  variable[3] = CALL_string___String___substring( variable[1] /*s*/)( variable[1] /*s*/,  TAG_Int(0),  TAG_Int(3)) /*String::substring*/;
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("variable"), TAG_Int(8)); /*new String*/
-  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[4]) /*String::==*/)));
+  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*String::==*/)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  variable[1] /*s*/;
     goto return_label3;
   }
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[4]) /*CompilerVisitor::cfc*/;
-  variable[4] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___get_var))(variable[4]) /*CFunctionContext::get_var*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc(variable[4])(variable[4]) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CFunctionContext___get_var(variable[4])(variable[4]) /*CFunctionContext::get_var*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___add_assignment))(variable[4],  variable[3] /*v*/,  variable[1] /*s*/) /*CompilerVisitor::add_assignment*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment(variable[4])(variable[4],  variable[3] /*v*/,  variable[1] /*s*/) /*CompilerVisitor::add_assignment*/;
   variable[2] =  variable[3] /*v*/;
   goto return_label3;
   return_label3: while(false);
@@ -110,24 +110,25 @@ void compiling_methods___CompilerVisitor___add_assignment(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*v*/ ==  variable[2] /*s*/) || (( variable[1] /*v*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*v*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*v*/, variable[2] /*s*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*v*/,COLOR_kernel___Object_____eqeq))( variable[1] /*v*/,  variable[2] /*s*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*v*/ ==  variable[2] /*s*/) || (( variable[1] /*v*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*v*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*v*/, variable[2] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*s*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] =  variable[1] /*v*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
     variable[11] =  variable[2] /*s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL(variable[4],COLOR_compiling_base___CompilerVisitor___add_instr))(variable[4], variable[5]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr(variable[4])(variable[4], variable[5]) /*CompilerVisitor::add_instr*/;
   }
   return_label4: while(false);
   tracehead = trace.prev;
@@ -201,54 +202,56 @@ val_t compiling_methods___CompilerVisitor___printf_locate_error(val_t  self, val
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \""), TAG_Int(17)); /*new String*/
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___nmc))(variable[4]) /*CompilerVisitor::nmc*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[4])(variable[4]) /*CompilerVisitor::nmc*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" in %s"), TAG_Int(6)); /*new String*/
-    ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[4]) /*String::append*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
   }
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" (%s:%d)\\n\", "), TAG_Int(13)); /*new String*/
-  ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[4]) /*String::append*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___nmc))(variable[4]) /*CompilerVisitor::nmc*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[4])(variable[4]) /*CompilerVisitor::nmc*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = NEW_String_string___String___init(); /*new String*/
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("LOCATE_"), TAG_Int(7)); /*new String*/
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] = variable[0];
-    variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL(variable[7],COLOR_compiling_methods___CompilerVisitor___nmc))(variable[7]) /*CompilerVisitor::nmc*/;
-    variable[7] = ((compiling_methods___NitMethodContext___method_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___method))(variable[7]) /*NitMethodContext::method*/;
-    variable[7] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[7],COLOR_compiling_base___MMLocalProperty___cname))(variable[7]) /*MMLocalProperty::cname*/;
+    variable[7] = CALL_compiling_methods___CompilerVisitor___nmc(variable[7])(variable[7]) /*CompilerVisitor::nmc*/;
+    variable[7] = CALL_compiling_methods___NitMethodContext___method(variable[7])(variable[7]) /*NitMethodContext::method*/;
+    variable[7] = CALL_compiling_base___MMLocalProperty___cname(variable[7])(variable[7]) /*MMLocalProperty::cname*/;
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-    ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[4]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
   }
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("LOCATE_"), TAG_Int(7)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
-  variable[7] = ((compiling_base___CompilerVisitor___module_t)CALL(variable[7],COLOR_compiling_base___CompilerVisitor___module))(variable[7]) /*CompilerVisitor::module*/;
-  variable[7] = ((abstractmetamodel___MMModule___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMModule___name))(variable[7]) /*MMModule::name*/;
+  variable[7] = CALL_compiling_base___CompilerVisitor___module(variable[7])(variable[7]) /*CompilerVisitor::module*/;
+  variable[7] = CALL_abstractmetamodel___MMModule___name(variable[7])(variable[7]) /*MMModule::name*/;
   variable[8] = variable[7];
-  variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-  variable[11] = ((parser_prod___PNode___line_number_t)CALL( variable[1] /*node*/,COLOR_parser_prod___PNode___line_number))( variable[1] /*node*/) /*PNode::line_number*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_parser_prod___PNode___line_number( variable[1] /*node*/)( variable[1] /*node*/) /*PNode::line_number*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[14]) /*String::append*/;
-  ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[14]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*String::append*/;
   variable[2] =  variable[3] /*s*/;
   goto return_label5;
   return_label5: while(false);
@@ -264,23 +267,23 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL(variable[4],COLOR_compiling_methods___CompilerVisitor___nmc))(variable[4]) /*CompilerVisitor::nmc*/;
-  variable[4] = ((compiling_methods___NitMethodContext___method_t)CALL(variable[4],COLOR_compiling_methods___NitMethodContext___method))(variable[4]) /*NitMethodContext::method*/;
-  variable[4] = ((syntax_base___MMLocalProperty___node_t)CALL(variable[4],COLOR_syntax_base___MMLocalProperty___node))(variable[4]) /*MMLocalProperty::node*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc(variable[4])(variable[4]) /*CompilerVisitor::nmc*/;
+  variable[4] = CALL_compiling_methods___NitMethodContext___method(variable[4])(variable[4]) /*NitMethodContext::method*/;
+  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMLocalProperty::node*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(( variable[3] /*n*/==NIT_NULL) || VAL_ISA( variable[3] /*n*/, COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___CompilerVisitor___invoke_super_init_calls_after, LOCATE_compiling_methods, 92); nit_exit(1);}
-  variable[4] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable[3] /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
-  variable[4] = ((array___AbstractArray___is_empty_t)CALL(variable[4],COLOR_abstract_collection___Collection___is_empty))(variable[4]) /*AbstractArray::is_empty*/;
+  variable[4] = CALL_typing___AConcreteInitPropdef___super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+  variable[4] = CALL_abstract_collection___Collection___is_empty(variable[4])(variable[4]) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     goto return_label6;
   }
   variable[4] =  TAG_Int(0);
   variable[5] =  TAG_Int(0);
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*start_prop*/ ==  NIT_NULL /*null*/) || (( variable[1] /*start_prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*start_prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*start_prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*start_prop*/,COLOR_kernel___Object_____eqeq))( variable[1] /*start_prop*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*start_prop*/ ==  NIT_NULL /*null*/) || (( variable[1] /*start_prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*start_prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*start_prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*start_prop*/)( variable[1] /*start_prop*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     while (true) { /*while*/
-      variable[6] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable[3] /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+      variable[6] = CALL_typing___AConcreteInitPropdef___super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
       variable[7] = variable[6];
       variable[8] =  variable[4] /*i*/;
       variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -299,7 +302,7 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
       goto return_label8;
       return_label8: while(false);
       variable[6] = variable[9];
-      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*start_prop*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*start_prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*start_prop*/) /*Object::==*/)))))));
+      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*start_prop*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*start_prop*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*start_prop*/) /*Object::==*/)))))));
       if (!UNTAG_Bool(variable[6])) break; /* while*/
       variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
       continue_7: while(0);
@@ -307,7 +310,7 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
     break_7: while(0);
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
     while (true) { /*while*/
-      variable[6] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( variable[3] /*n*/,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+      variable[6] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
       variable[7] = variable[6];
       variable[8] =  variable[5] /*j*/;
       variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -326,7 +329,7 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
       goto return_label10;
       return_label10: while(false);
       variable[6] = variable[9];
-      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*start_prop*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*start_prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*start_prop*/) /*Object::==*/)))))));
+      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*start_prop*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*start_prop*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*start_prop*/) /*Object::==*/)))))));
       if (!UNTAG_Bool(variable[6])) break; /* while*/
       variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*j*/;
       continue_9: while(0);
@@ -335,11 +338,11 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
     variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*j*/;
   }
   variable[6] =  NIT_NULL /*null*/;
-  variable[7] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( variable[3] /*n*/,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
-  variable[7] = ((array___AbstractArray___length_t)CALL(variable[7],COLOR_abstract_collection___Collection___length))(variable[7]) /*AbstractArray::length*/;
+  variable[7] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+  variable[7] = CALL_abstract_collection___Collection___length(variable[7])(variable[7]) /*AbstractArray::length*/;
   variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*j*/)<UNTAG_Int(variable[7]));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL( variable[3] /*n*/,COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+    variable[7] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::explicit_super_init_calls*/;
     variable[8] = variable[7];
     variable[9] =  variable[5] /*j*/;
     variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -360,13 +363,13 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
     variable[7] = variable[10];
     variable[6] = variable[7] /*stop_prop=*/;
   }
-  variable[8] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable[3] /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
-  variable[8] = ((array___AbstractArray___length_t)CALL(variable[8],COLOR_abstract_collection___Collection___length))(variable[8]) /*AbstractArray::length*/;
+  variable[8] = CALL_typing___AConcreteInitPropdef___super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+  variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*AbstractArray::length*/;
   variable[7] = variable[8];
   while (true) { /*while*/
     variable[8] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int( variable[7] /*l*/));
     if (!UNTAG_Bool(variable[8])) break; /* while*/
-    variable[9] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL( variable[3] /*n*/,COLOR_typing___AConcreteInitPropdef___super_init_calls))( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
+    variable[9] = CALL_typing___AConcreteInitPropdef___super_init_calls( variable[3] /*n*/)( variable[3] /*n*/) /*AConcreteInitPropdef::super_init_calls*/;
     variable[10] = variable[9];
     variable[11] =  variable[4] /*i*/;
     variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -386,21 +389,21 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
     return_label13: while(false);
     variable[9] = variable[12];
     variable[8] = variable[9];
-    variable[9] = TAG_Bool(( variable[8] /*p*/ ==  variable[6] /*stop_prop*/) || (( variable[8] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*p*/, variable[6] /*stop_prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*p*/,COLOR_kernel___Object_____eqeq))( variable[8] /*p*/,  variable[6] /*stop_prop*/) /*Object::==*/)))));
+    variable[9] = TAG_Bool(( variable[8] /*p*/ ==  variable[6] /*stop_prop*/) || (( variable[8] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*p*/, variable[6] /*stop_prop*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*p*/)( variable[8] /*p*/,  variable[6] /*stop_prop*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[9])) { /*if*/
       goto break_12;
     }
     variable[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
     variable[9] = variable[10];
-    variable[10] = ((static_type___MMLocalProperty___signature_t)CALL( variable[8] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[8] /*p*/) /*MMLocalProperty::signature*/;
-    variable[10] = ((static_type___MMSignature___arity_t)CALL(variable[10],COLOR_static_type___MMSignature___arity))(variable[10]) /*MMSignature::arity*/;
+    variable[10] = CALL_static_type___MMLocalProperty___signature( variable[8] /*p*/)( variable[8] /*p*/) /*MMLocalProperty::signature*/;
+    variable[10] = CALL_static_type___MMSignature___arity(variable[10])(variable[10]) /*MMSignature::arity*/;
     variable[10] = TAG_Bool((variable[10])==( TAG_Int(0)));
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[10] = variable[0];
-      variable[10] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[10],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[10]) /*CompilerVisitor::cfc*/;
+      variable[10] = CALL_compiling_methods___CompilerVisitor___cfc(variable[10])(variable[10]) /*CompilerVisitor::cfc*/;
       variable[11] = variable[0];
-      variable[11] = ((compiling_methods___CompilerVisitor___nmc_t)CALL(variable[11],COLOR_compiling_methods___CompilerVisitor___nmc))(variable[11]) /*CompilerVisitor::nmc*/;
-      variable[11] = ((compiling_methods___NitMethodContext___method_params_t)CALL(variable[11],COLOR_compiling_methods___NitMethodContext___method_params))(variable[11]) /*NitMethodContext::method_params*/;
+      variable[11] = CALL_compiling_methods___CompilerVisitor___nmc(variable[11])(variable[11]) /*CompilerVisitor::nmc*/;
+      variable[11] = CALL_compiling_methods___NitMethodContext___method_params(variable[11])(variable[11]) /*NitMethodContext::method_params*/;
       variable[12] = variable[11];
       variable[13] =  TAG_Int(0);
       variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -419,29 +422,29 @@ void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t
       goto return_label14;
       return_label14: while(false);
       variable[11] = variable[14];
-      variable[10] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[10],COLOR_compiling_methods___CFunctionContext___varname))(variable[10], variable[11]) /*CFunctionContext::varname*/;
-      ((array___AbstractArray___add_t)CALL( variable[9] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*cargs*/, variable[10]) /*AbstractArray::add*/;
+      variable[10] = CALL_compiling_methods___CFunctionContext___varname(variable[10])(variable[10], variable[11]) /*CFunctionContext::varname*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[9] /*cargs*/)( variable[9] /*cargs*/, variable[10]) /*AbstractArray::add*/;
     } else { /*if*/
       variable[10] = variable[0];
-      variable[10] = ((compiling_methods___CompilerVisitor___nmc_t)CALL(variable[10],COLOR_compiling_methods___CompilerVisitor___nmc))(variable[10]) /*CompilerVisitor::nmc*/;
-      variable[10] = ((compiling_methods___NitMethodContext___method_params_t)CALL(variable[10],COLOR_compiling_methods___NitMethodContext___method_params))(variable[10]) /*NitMethodContext::method_params*/;
-      variable[10] = ((array___AbstractArray___iterator_t)CALL(variable[10],COLOR_abstract_collection___Collection___iterator))(variable[10]) /*AbstractArray::iterator*/;
+      variable[10] = CALL_compiling_methods___CompilerVisitor___nmc(variable[10])(variable[10]) /*CompilerVisitor::nmc*/;
+      variable[10] = CALL_compiling_methods___NitMethodContext___method_params(variable[10])(variable[10]) /*NitMethodContext::method_params*/;
+      variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+        variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[11])) break; /*for*/
-        variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+        variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
         variable[12] = variable[11];
         variable[13] = variable[0];
-        variable[13] = ((compiling_methods___CompilerVisitor___cfc_t)CALL(variable[13],COLOR_compiling_methods___CompilerVisitor___cfc))(variable[13]) /*CompilerVisitor::cfc*/;
-        variable[13] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[13],COLOR_compiling_methods___CFunctionContext___varname))(variable[13],  variable[12] /*va*/) /*CFunctionContext::varname*/;
-        ((array___AbstractArray___add_t)CALL( variable[9] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*cargs*/, variable[13]) /*AbstractArray::add*/;
+        variable[13] = CALL_compiling_methods___CompilerVisitor___cfc(variable[13])(variable[13]) /*CompilerVisitor::cfc*/;
+        variable[13] = CALL_compiling_methods___CFunctionContext___varname(variable[13])(variable[13],  variable[12] /*va*/) /*CFunctionContext::varname*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[9] /*cargs*/)( variable[9] /*cargs*/, variable[13]) /*AbstractArray::add*/;
         continue_15: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
       }
       break_15: while(0);
     }
     variable[10] = variable[0];
-    ((compiling_methods___MMMethod___compile_call_t)CALL( variable[8] /*p*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[8] /*p*/, variable[10],  variable[9] /*cargs*/) /*MMMethod::compile_call*/;
+    CALL_compiling_methods___MMMethod___compile_call( variable[8] /*p*/)( variable[8] /*p*/, variable[10],  variable[9] /*cargs*/) /*MMMethod::compile_call*/;
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_12: while(0);
   }
@@ -489,24 +492,25 @@ val_t compiling_methods___CFunctionContext___varname(val_t  self, val_t  param0)
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_methods___CFunctionContext____in_closure(variable[3]) /*CFunctionContext::_in_closure*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("closctx->"), TAG_Int(9)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
     variable[6] = ATTR_compiling_methods___CFunctionContext____varnames(variable[6]) /*CFunctionContext::_varnames*/;
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[1] /*v*/) /*Map::[]*/;
+    variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[1] /*v*/) /*Map::[]*/;
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[2] = variable[3];
     goto return_label16;
   } else { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_compiling_methods___CFunctionContext____varnames(variable[3]) /*CFunctionContext::_varnames*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*v*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*v*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label16;
   }
@@ -524,7 +528,7 @@ val_t compiling_methods___CFunctionContext___get_var(val_t  self) {
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
-  variable[3] = ((compiling_methods___CFunctionContext___variable_t)CALL(variable[3],COLOR_compiling_methods___CFunctionContext___variable))(variable[3], variable[4]) /*CFunctionContext::variable*/;
+  variable[3] = CALL_compiling_methods___CFunctionContext___variable(variable[3])(variable[3], variable[4]) /*CFunctionContext::variable*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   variable[4] = variable[0];
@@ -557,24 +561,25 @@ val_t compiling_methods___CFunctionContext___register_variable(val_t  self, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___get_var))(variable[4]) /*CFunctionContext::get_var*/;
+  variable[4] = CALL_compiling_methods___CFunctionContext___get_var(variable[4])(variable[4]) /*CFunctionContext::get_var*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_methods___CFunctionContext____varnames(variable[4]) /*CFunctionContext::_varnames*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("variable["), TAG_Int(9)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
   variable[8] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[8]) /*CFunctionContext::_variable_index*/;
   variable[8] = TAG_Int(UNTAG_Int(variable[8])-UNTAG_Int( TAG_Int(1)));
   variable[9] = variable[8];
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[1] /*v*/, variable[5]) /*Map::[]=*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*Map::[]=*/;
   variable[2] =  variable[3] /*s*/;
   goto return_label18;
   return_label18: while(false);
@@ -589,36 +594,38 @@ val_t compiling_methods___CFunctionContext___register_closurevariable(val_t  sel
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("closurevariable["), TAG_Int(16)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
   variable[7] = ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[7]) /*CFunctionContext::_closurevariable_index*/;
   variable[8] = variable[7];
-  variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
   ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[4]) /*CFunctionContext::_closurevariable_index*/ = TAG_Int(UNTAG_Int(ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[4]) /*CFunctionContext::_closurevariable_index*/)+UNTAG_Int( TAG_Int(1)));
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_methods___CFunctionContext____varnames(variable[4]) /*CFunctionContext::_varnames*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[1] /*v*/,  variable[3] /*s*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*s*/) /*Map::[]=*/;
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_methods___CFunctionContext____in_closure(variable[4]) /*CFunctionContext::_in_closure*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = NEW_String_string___String___init(); /*new String*/
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("(closctx->"), TAG_Int(10)); /*new String*/
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] =  variable[3] /*s*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
     variable[2] = variable[4];
     goto return_label19;
   } else { /*if*/
@@ -640,29 +647,31 @@ val_t compiling_methods___CFunctionContext___variable(val_t  self, val_t  param0
   variable[3] = variable[0];
   variable[3] = ATTR_compiling_methods___CFunctionContext____in_closure(variable[3]) /*CFunctionContext::_in_closure*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("(closctx->variable["), TAG_Int(19)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] =  variable[1] /*i*/;
-    variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[6]) /*String::append*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("])"), TAG_Int(2)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[2] = variable[3];
     goto return_label20;
   } else { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("variable["), TAG_Int(9)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] =  variable[1] /*i*/;
-    variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[6]) /*String::append*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[2] = variable[3];
     goto return_label20;
   }
@@ -682,8 +691,8 @@ void compiling_methods___CFunctionContext___free_var(val_t  self, val_t  param0)
   variable[4] = variable[0];
   variable[4] = ATTR_compiling_methods___CFunctionContext____variable_index(variable[4]) /*CFunctionContext::_variable_index*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
-  variable[3] = ((compiling_methods___CFunctionContext___variable_t)CALL(variable[3],COLOR_compiling_methods___CFunctionContext___variable))(variable[3], variable[4]) /*CFunctionContext::variable*/;
-  variable[3] = TAG_Bool(( variable[1] /*v*/ == variable[3]) || (( variable[1] /*v*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable[1] /*v*/,COLOR_kernel___Object_____eqeq))( variable[1] /*v*/, variable[3]) /*String::==*/)));
+  variable[3] = CALL_compiling_methods___CFunctionContext___variable(variable[3])(variable[3], variable[4]) /*CFunctionContext::variable*/;
+  variable[3] = TAG_Bool(( variable[1] /*v*/ == variable[3]) || (( variable[1] /*v*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*String::==*/)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = variable[0];
@@ -707,50 +716,52 @@ void compiling_methods___CFunctionContext___generate_var_decls(val_t  self) {
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((compiling_methods___CFunctionContext___visitor_t)CALL(variable[2],COLOR_compiling_methods___CFunctionContext___visitor))(variable[2]) /*CFunctionContext::visitor*/;
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[2])(variable[2]) /*CFunctionContext::visitor*/;
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("val_t variable["), TAG_Int(15)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
     variable[6] = ATTR_compiling_methods___CFunctionContext____variable_index_max(variable[6]) /*CFunctionContext::_variable_index_max*/;
     variable[7] = variable[6];
-    variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("];"), TAG_Int(2)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL(variable[2],COLOR_compiling_base___CompilerVisitor___add_decl))(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_decl(variable[2])(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
   } else { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((compiling_methods___CFunctionContext___visitor_t)CALL(variable[2],COLOR_compiling_methods___CFunctionContext___visitor))(variable[2]) /*CFunctionContext::visitor*/;
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[2])(variable[2]) /*CFunctionContext::visitor*/;
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("val_t *variable = NULL;"), TAG_Int(23)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL(variable[2],COLOR_compiling_base___CompilerVisitor___add_decl))(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
+    CALL_compiling_base___CompilerVisitor___add_decl(variable[2])(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
   }
   variable[2] = variable[0];
   variable[2] = ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[2]) /*CFunctionContext::_closurevariable_index*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((compiling_methods___CFunctionContext___visitor_t)CALL(variable[2],COLOR_compiling_methods___CFunctionContext___visitor))(variable[2]) /*CFunctionContext::visitor*/;
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[2])(variable[2]) /*CFunctionContext::visitor*/;
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("void *closurevariable["), TAG_Int(22)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
     variable[6] = ATTR_compiling_methods___CFunctionContext____closurevariable_index(variable[6]) /*CFunctionContext::_closurevariable_index*/;
     variable[7] = variable[6];
-    variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("];"), TAG_Int(2)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL(variable[2],COLOR_compiling_base___CompilerVisitor___add_decl))(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_decl(variable[2])(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
   } else { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((compiling_methods___CFunctionContext___visitor_t)CALL(variable[2],COLOR_compiling_methods___CFunctionContext___visitor))(variable[2]) /*CFunctionContext::visitor*/;
+    variable[2] = CALL_compiling_methods___CFunctionContext___visitor(variable[2])(variable[2]) /*CFunctionContext::visitor*/;
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("void **closurevariable = NULL;"), TAG_Int(30)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL(variable[2],COLOR_compiling_base___CompilerVisitor___add_decl))(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
+    CALL_compiling_base___CompilerVisitor___add_decl(variable[2])(variable[2], variable[3]) /*CompilerVisitor::add_decl*/;
   }
   return_label22: while(false);
   tracehead = trace.prev;
@@ -970,40 +981,40 @@ val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, va
     variable[5] = TAG_Bool(( variable[4] /*i*/==NIT_NULL) || VAL_ISA( variable[4] /*i*/, COLOR_MMMethSrcMethod, ID_MMMethSrcMethod)) /*cast MMMethSrcMethod*/;
     variable[6] = variable[5];
     if (UNTAG_Bool(variable[6])) { /* and */
-      variable[6] = ((syntax_base___MMMethSrcMethod___node_t)CALL( variable[4] /*i*/,COLOR_syntax_base___MMLocalProperty___node))( variable[4] /*i*/) /*MMMethSrcMethod::node*/;
+      variable[6] = CALL_syntax_base___MMLocalProperty___node( variable[4] /*i*/)( variable[4] /*i*/) /*MMMethSrcMethod::node*/;
       variable[6] = TAG_Bool((variable[6]==NIT_NULL) || VAL_ISA(variable[6], COLOR_AInternMethPropdef, ID_AInternMethPropdef)) /*cast AInternMethPropdef*/;
     }
     variable[5] = variable[6];
     variable[6] = variable[5];
     if (!UNTAG_Bool(variable[6])) { /* or */
-      variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[4] /*i*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[4] /*i*/) /*MMLocalProperty::local_class*/;
-      variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___name))(variable[6]) /*MMLocalClass::name*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[4] /*i*/)( variable[4] /*i*/) /*MMLocalProperty::local_class*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalClass___name(variable[6])(variable[6]) /*MMLocalClass::name*/;
       if (once_bool_26) variable[7] = once_value_26;
       else {
         variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)); /*new String*/
-        variable[7] = ((symbol___String___to_symbol_t)CALL(variable[7],COLOR_symbol___String___to_symbol))(variable[7]) /*String::to_symbol*/;
+        variable[7] = CALL_symbol___String___to_symbol(variable[7])(variable[7]) /*String::to_symbol*/;
         once_value_26 = variable[7];
         once_bool_26 = true;
       }
-      variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], variable[7]) /*Object::==*/)))));
+      variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
       variable[7] = variable[6];
       if (UNTAG_Bool(variable[7])) { /* and */
         variable[7] = variable[0];
-        variable[7] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[7]) /*MMLocalProperty::name*/;
+        variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[7])(variable[7]) /*MMLocalProperty::name*/;
         if (once_bool_27) variable[8] = once_value_27;
         else {
           variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
-          variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+          variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
           once_value_27 = variable[8];
           once_bool_27 = true;
         }
-        variable[7] = TAG_Bool((variable[7] == variable[8]) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7],variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7], variable[8]) /*Object::==*/)))));
+        variable[7] = TAG_Bool((variable[7] == variable[8]) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7],variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7], variable[8]) /*Object::==*/)))));
       }
       variable[6] = variable[7];
     }
     variable[5] = variable[6];
     if (UNTAG_Bool(variable[5])) { /*if*/
-      variable[6] = ((compiling_methods___MMSrcMethod___do_compile_inside_t)CALL( variable[4] /*i*/,COLOR_compiling_methods___MMSrcMethod___do_compile_inside))( variable[4] /*i*/,  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMSrcMethod::do_compile_inside*/;
+      variable[6] = CALL_compiling_methods___MMSrcMethod___do_compile_inside( variable[4] /*i*/)( variable[4] /*i*/,  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMSrcMethod::do_compile_inside*/;
       variable[5] = variable[6];
       variable[3] =  variable[5] /*e*/;
       goto return_label25;
@@ -1012,7 +1023,7 @@ val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, va
   if (once_bool_28) variable[6] = once_value_28;
   else {
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
-    variable[6] = ((symbol___String___to_symbol_t)CALL(variable[6],COLOR_symbol___String___to_symbol))(variable[6]) /*String::to_symbol*/;
+    variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
     once_value_28 = variable[6];
     once_bool_28 = true;
   }
@@ -1020,55 +1031,57 @@ val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, va
   if (once_bool_29) variable[7] = once_value_29;
   else {
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
-    variable[7] = ((symbol___String___to_symbol_t)CALL(variable[7],COLOR_symbol___String___to_symbol))(variable[7]) /*String::to_symbol*/;
+    variable[7] = CALL_symbol___String___to_symbol(variable[7])(variable[7]) /*String::to_symbol*/;
     once_value_29 = variable[7];
     once_bool_29 = true;
   }
   variable[6] = variable[7];
   variable[7] = variable[0];
-  variable[7] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[7]) /*MMLocalProperty::name*/;
-  variable[7] = TAG_Bool((variable[7] ==  variable[6] /*ne*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[6] /*ne*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[6] /*ne*/) /*Object::==*/)))));
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name(variable[7])(variable[7]) /*MMLocalProperty::name*/;
+  variable[7] = TAG_Bool((variable[7] ==  variable[6] /*ne*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[6] /*ne*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[6] /*ne*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[8] = variable[0];
-    variable[8] = ((static_type___MMLocalProperty___signature_t)CALL(variable[8],COLOR_static_type___MMLocalProperty___signature))(variable[8]) /*MMLocalProperty::signature*/;
-    variable[8] = ((static_type___MMSignature___recv_t)CALL(variable[8],COLOR_static_type___MMSignature___recv))(variable[8]) /*MMSignature::recv*/;
-    variable[8] = ((static_type___MMType___local_class_t)CALL(variable[8],COLOR_static_type___MMType___local_class))(variable[8]) /*MMType::local_class*/;
-    variable[8] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[8],  variable[5] /*ee*/) /*MMLocalClass::select_method*/;
+    variable[8] = CALL_static_type___MMLocalProperty___signature(variable[8])(variable[8]) /*MMLocalProperty::signature*/;
+    variable[8] = CALL_static_type___MMSignature___recv(variable[8])(variable[8]) /*MMSignature::recv*/;
+    variable[8] = CALL_static_type___MMType___local_class(variable[8])(variable[8]) /*MMType::local_class*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[8])(variable[8],  variable[5] /*ee*/) /*MMLocalClass::select_method*/;
     variable[7] = variable[8];
-    variable[9] = ((compiling_methods___MMMethod___compile_call_t)CALL( variable[7] /*eqp*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[7] /*eqp*/,  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMMethod::compile_call*/;
+    variable[9] = CALL_compiling_methods___MMMethod___compile_call( variable[7] /*eqp*/)( variable[7] /*eqp*/,  variable[1] /*v*/,  variable[2] /*cargs*/) /*MMMethod::compile_call*/;
     variable[8] = variable[9];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(!UNTAG_Bool("), TAG_Int(21)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[8] /*eqcall*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
     variable[3] = variable[9];
     goto return_label25;
   }
   variable[7] = variable[0];
-  variable[7] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[7]) /*MMLocalProperty::global*/;
-  variable[7] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[7]) /*MMGlobalProperty::is_init*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable[7])(variable[7]) /*MMLocalProperty::global*/;
+  variable[7] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[7])(variable[7]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((array___Collection___to_a_t)CALL( variable[2] /*cargs*/,COLOR_array___Collection___to_a))( variable[2] /*cargs*/) /*Collection::to_a*/;
+    variable[7] = CALL_array___Collection___to_a( variable[2] /*cargs*/)( variable[2] /*cargs*/) /*Collection::to_a*/;
     variable[2] = variable[7] /*cargs=*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("init_table /*YYY*/"), TAG_Int(18)); /*new String*/
-    ((array___AbstractArray___add_t)CALL( variable[2] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*cargs*/, variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[7]) /*AbstractArray::add*/;
   }
-  variable[8] = NEW_String_string___String___init(); /*new String*/
-  variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
+  variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] = variable[0];
-  variable[11] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[11],COLOR_compiling_base___MMLocalProperty___cname))(variable[11]) /*MMLocalProperty::cname*/;
+  variable[11] = CALL_abstractmetamodel___MMLocalProperty___global(variable[11])(variable[11]) /*MMLocalProperty::global*/;
+  variable[11] = CALL_compiling_base___MMGlobalProperty___meth_call(variable[11])(variable[11]) /*MMGlobalProperty::meth_call*/;
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
-  variable[13] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL("), TAG_Int(8)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
+  variable[13] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
   variable[15] =  variable[2] /*cargs*/;
   variable[16] =  TAG_Int(0);
   variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -1088,93 +1101,88 @@ val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, va
   return_label30: while(false);
   variable[15] = variable[17];
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
-  variable[17] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
+  variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
-  variable[19] = variable[0];
-  variable[19] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[19],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[19]) /*MMLocalProperty::global*/;
-  variable[19] = ((compiling_base___MMGlobalProperty___color_id_t)CALL(variable[19],COLOR_compiling_base___MMGlobalProperty___color_id))(variable[19]) /*MMGlobalProperty::color_id*/;
-  variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/;
-  variable[21] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-  variable[22] = variable[21];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
   variable[7] = variable[8];
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[7] /*m*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[15] = ((string___Collection___join_t)CALL( variable[2] /*cargs*/,COLOR_string___Collection___join))( variable[2] /*cargs*/, variable[15]) /*Collection::join*/;
+  variable[15] = CALL_string___Collection___join( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[15]) /*Collection::join*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(") /*"), TAG_Int(4)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
   variable[19] = variable[0];
-  variable[19] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[19],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[19]) /*MMLocalProperty::local_class*/;
+  variable[19] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[19])(variable[19]) /*MMLocalProperty::local_class*/;
   variable[20] = variable[19];
-  variable[20] = ((string___String___to_s_t)CALL(variable[20],COLOR_string___Object___to_s))(variable[20]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[20]) /*String::append*/;
+  variable[20] = CALL_string___Object___to_s(variable[20])(variable[20]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[20]) /*AbstractArray::add*/;
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
   variable[22] = variable[21];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[22]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[22]) /*AbstractArray::add*/;
   variable[23] = variable[0];
-  variable[23] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[23],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[23]) /*MMLocalProperty::name*/;
+  variable[23] = CALL_abstractmetamodel___MMLocalProperty___name(variable[23])(variable[23]) /*MMLocalProperty::name*/;
   variable[24] = variable[23];
-  variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[24]) /*String::append*/;
+  variable[24] = CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[24]) /*AbstractArray::add*/;
   variable[25] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[26] = variable[25];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[26]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[26]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
   variable[9] = variable[0];
-  variable[9] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[9]) /*MMLocalProperty::name*/;
-  variable[9] = TAG_Bool((variable[9] ==  variable[5] /*ee*/) || ((variable[9] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], variable[5] /*ee*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))(variable[9],  variable[5] /*ee*/) /*Object::==*/)))));
+  variable[9] = CALL_abstractmetamodel___MMLocalProperty___name(variable[9])(variable[9]) /*MMLocalProperty::name*/;
+  variable[9] = TAG_Bool((variable[9] ==  variable[5] /*ee*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], variable[5] /*ee*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9],  variable[5] /*ee*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("UNTAG_Bool("), TAG_Int(11)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[8] /*vcall*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
     variable[8] = variable[9] /*vcall=*/;
     if (once_bool_31) variable[10] = once_value_31;
     else {
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
-      variable[10] = ((symbol___String___to_symbol_t)CALL(variable[10],COLOR_symbol___String___to_symbol))(variable[10]) /*String::to_symbol*/;
+      variable[10] = CALL_symbol___String___to_symbol(variable[10])(variable[10]) /*String::to_symbol*/;
       once_value_31 = variable[10];
       once_bool_31 = true;
     }
     variable[9] = variable[10];
-    variable[10] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[4] /*i*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[4] /*i*/) /*MMLocalProperty::local_class*/;
-    variable[10] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[10],COLOR_abstractmetamodel___MMLocalClass___name))(variable[10]) /*MMLocalClass::name*/;
-    variable[10] = TAG_Bool((variable[10] ==  variable[9] /*obj*/) || ((variable[10] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], variable[9] /*obj*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))(variable[10],  variable[9] /*obj*/) /*Object::==*/)))));
+    variable[10] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[4] /*i*/)( variable[4] /*i*/) /*MMLocalProperty::local_class*/;
+    variable[10] = CALL_abstractmetamodel___MMLocalClass___name(variable[10])(variable[10]) /*MMLocalClass::name*/;
+    variable[10] = TAG_Bool((variable[10] ==  variable[9] /*obj*/) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], variable[9] /*obj*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10],  variable[9] /*obj*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[10])) { /*if*/
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[7] /*m*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
-      variable[16] = ((compiling_base___MMLocalProperty___cname_t)CALL( variable[4] /*i*/,COLOR_compiling_base___MMLocalProperty___cname))( variable[4] /*i*/) /*MMLocalProperty::cname*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
+      variable[16] = CALL_compiling_base___MMLocalProperty___cname( variable[4] /*i*/)( variable[4] /*i*/) /*MMLocalProperty::cname*/;
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString(")?(IS_EQUAL_NN("), TAG_Int(15)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
       variable[20] =  variable[2] /*cargs*/;
       variable[21] =  TAG_Int(0);
       variable[23] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -1194,10 +1202,10 @@ val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, va
       return_label32: while(false);
       variable[20] = variable[22];
       variable[21] = variable[20];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[21]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[21]) /*AbstractArray::add*/;
       variable[22] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
       variable[23] = variable[22];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[23]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[23]) /*AbstractArray::add*/;
       variable[24] =  variable[2] /*cargs*/;
       variable[25] =  TAG_Int(1);
       variable[27] = TAG_Bool(UNTAG_Int( variable[25] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -1217,27 +1225,28 @@ val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, va
       return_label33: while(false);
       variable[24] = variable[26];
       variable[25] = variable[24];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[25]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[25]) /*AbstractArray::add*/;
       variable[26] = NEW_String_string___String___with_native(BOX_NativeString(")):("), TAG_Int(4)); /*new String*/
       variable[27] = variable[26];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[27]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[27]) /*AbstractArray::add*/;
       variable[28] =  variable[8] /*vcall*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[28]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[28]) /*AbstractArray::add*/;
       variable[29] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
       variable[30] = variable[29];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[30]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[30]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
       variable[8] = variable[10] /*vcall=*/;
     }
-    variable[10] = NEW_String_string___String___init(); /*new String*/
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
-    variable[13] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[2] /*cargs*/,COLOR_abstract_collection___Collection___first))( variable[2] /*cargs*/) /*IndexedCollection::first*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
+    variable[13] = CALL_abstract_collection___Collection___first( variable[2] /*cargs*/)( variable[2] /*cargs*/) /*IndexedCollection::first*/;
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" == "), TAG_Int(4)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[2] /*cargs*/;
     variable[18] =  TAG_Int(1);
     variable[20] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -1257,34 +1266,35 @@ val_t compiling_methods___MMMethod___compile_call(val_t  self, val_t  param0, va
     return_label34: while(false);
     variable[17] = variable[19];
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[18]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[18]) /*AbstractArray::add*/;
     variable[19] = NEW_String_string___String___with_native(BOX_NativeString(") || (("), TAG_Int(7)); /*new String*/
     variable[20] = variable[19];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[20]) /*String::append*/;
-    variable[21] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[2] /*cargs*/,COLOR_abstract_collection___Collection___first))( variable[2] /*cargs*/) /*IndexedCollection::first*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[20]) /*AbstractArray::add*/;
+    variable[21] = CALL_abstract_collection___Collection___first( variable[2] /*cargs*/)( variable[2] /*cargs*/) /*IndexedCollection::first*/;
     variable[22] = variable[21];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[22]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[22]) /*AbstractArray::add*/;
     variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" != NIT_NULL) && "), TAG_Int(17)); /*new String*/
     variable[24] = variable[23];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[24]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[24]) /*AbstractArray::add*/;
     variable[25] =  variable[8] /*vcall*/;
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[25]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[25]) /*AbstractArray::add*/;
     variable[26] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
     variable[27] = variable[26];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[27]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[27]) /*AbstractArray::add*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
     variable[8] = variable[10] /*vcall=*/;
   }
   variable[9] = variable[0];
-  variable[9] = ((static_type___MMLocalProperty___signature_t)CALL(variable[9],COLOR_static_type___MMLocalProperty___signature))(variable[9]) /*MMLocalProperty::signature*/;
-  variable[9] = ((static_type___MMSignature___return_type_t)CALL(variable[9],COLOR_static_type___MMSignature___return_type))(variable[9]) /*MMSignature::return_type*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = CALL_static_type___MMLocalProperty___signature(variable[9])(variable[9]) /*MMLocalProperty::signature*/;
+  variable[9] = CALL_static_type___MMSignature___return_type(variable[9])(variable[9]) /*MMSignature::return_type*/;
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[3] =  variable[8] /*vcall*/;
     goto return_label25;
   } else { /*if*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-    variable[9] = ((string___String_____plus_t)CALL( variable[8] /*vcall*/,COLOR_string___String_____plus))( variable[8] /*vcall*/, variable[9]) /*String::+*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+    variable[9] = CALL_string___String_____plus( variable[8] /*vcall*/)( variable[8] /*vcall*/, variable[9]) /*String::+*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
     variable[3] =  NIT_NULL /*null*/;
     goto return_label25;
   }
@@ -1302,48 +1312,49 @@ val_t compiling_methods___MMMethod___compile_constructor_call(val_t  self, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[6] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[6] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[6],COLOR_compiling_methods___CFunctionContext___get_var))(variable[6]) /*CFunctionContext::get_var*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[6] = CALL_compiling_methods___CFunctionContext___get_var(variable[6])(variable[6]) /*CFunctionContext::get_var*/;
   variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[5] /*recv*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" = NEW_"), TAG_Int(7)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
-  variable[12] = ((static_type___MMType___local_class_t)CALL( variable[2] /*recvtype*/,COLOR_static_type___MMType___local_class))( variable[2] /*recvtype*/) /*MMType::local_class*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
+  variable[12] = CALL_static_type___MMType___local_class( variable[2] /*recvtype*/)( variable[2] /*recvtype*/) /*MMType::local_class*/;
   variable[13] = variable[12];
-  variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+  variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
   variable[16] = variable[0];
-  variable[16] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[16],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[16]) /*MMLocalProperty::global*/;
-  variable[16] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[16],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[16]) /*MMGlobalProperty::intro*/;
-  variable[16] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[16],COLOR_compiling_base___MMLocalProperty___cname))(variable[16]) /*MMLocalProperty::cname*/;
+  variable[16] = CALL_abstractmetamodel___MMLocalProperty___global(variable[16])(variable[16]) /*MMLocalProperty::global*/;
+  variable[16] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[16])(variable[16]) /*MMGlobalProperty::intro*/;
+  variable[16] = CALL_compiling_base___MMLocalProperty___cname(variable[16])(variable[16]) /*MMLocalProperty::cname*/;
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[20] = ((string___Collection___join_t)CALL( variable[3] /*cargs*/,COLOR_string___Collection___join))( variable[3] /*cargs*/, variable[20]) /*Collection::join*/;
+  variable[20] = CALL_string___Collection___join( variable[3] /*cargs*/)( variable[3] /*cargs*/, variable[20]) /*Collection::join*/;
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[21]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[21]) /*AbstractArray::add*/;
   variable[22] = NEW_String_string___String___with_native(BOX_NativeString("); /*new "), TAG_Int(9)); /*new String*/
   variable[23] = variable[22];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[23]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[23]) /*AbstractArray::add*/;
   variable[24] =  variable[2] /*recvtype*/;
-  variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[24]) /*String::append*/;
+  variable[24] = CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[24]) /*AbstractArray::add*/;
   variable[25] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[26] = variable[25];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[26]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[26]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
   variable[4] =  variable[5] /*recv*/;
   goto return_label35;
   return_label35: while(false);
@@ -1359,17 +1370,17 @@ val_t compiling_methods___MMMethod___compile_super_call(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
-  variable[6] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
+  variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[8],COLOR_compiling_base___MMLocalProperty___cname))(variable[8]) /*MMLocalProperty::cname*/;
+  variable[8] = CALL_compiling_base___MMLocalProperty___super_meth_call(variable[8])(variable[8]) /*MMLocalProperty::super_meth_call*/;
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
-  variable[10] = NEW_String_string___String___with_native(BOX_NativeString("_t)CALL("), TAG_Int(8)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
+  variable[10] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[2] /*cargs*/;
   variable[13] =  TAG_Int(0);
   variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -1389,50 +1400,45 @@ val_t compiling_methods___MMMethod___compile_super_call(val_t  self, val_t  para
   return_label37: while(false);
   variable[12] = variable[14];
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
-  variable[14] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
+  variable[14] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/;
-  variable[16] = variable[0];
-  variable[16] = ((compiling_base___MMLocalProperty___color_id_for_super_t)CALL(variable[16],COLOR_compiling_base___MMLocalProperty___color_id_for_super))(variable[16]) /*MMLocalProperty::color_id_for_super*/;
-  variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[17]) /*String::append*/;
-  variable[18] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
-  variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[4] = variable[5];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[4] /*m*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[12] = ((string___Collection___join_t)CALL( variable[2] /*cargs*/,COLOR_string___Collection___join))( variable[2] /*cargs*/, variable[12]) /*Collection::join*/;
+  variable[12] = CALL_string___Collection___join( variable[2] /*cargs*/)( variable[2] /*cargs*/, variable[12]) /*Collection::join*/;
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString(") /*super "), TAG_Int(10)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
   variable[16] = variable[0];
-  variable[16] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[16],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[16]) /*MMLocalProperty::local_class*/;
+  variable[16] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[16])(variable[16]) /*MMLocalProperty::local_class*/;
   variable[17] = variable[16];
-  variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[17]) /*String::append*/;
+  variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[19]) /*AbstractArray::add*/;
   variable[20] = variable[0];
-  variable[20] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[20],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[20]) /*MMLocalProperty::name*/;
+  variable[20] = CALL_abstractmetamodel___MMLocalProperty___name(variable[20])(variable[20]) /*MMLocalProperty::name*/;
   variable[21] = variable[20];
-  variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[21]) /*String::append*/;
+  variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[21]) /*AbstractArray::add*/;
   variable[22] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[23] = variable[22];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[23]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[23]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[5] = variable[6];
   variable[3] =  variable[5] /*vcall*/;
   goto return_label36;
@@ -1448,23 +1454,24 @@ val_t compiling_methods___MMMethod___closure_cname(val_t  self, val_t  param0) {
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("WBT_"), TAG_Int(4)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[6],COLOR_compiling_base___MMLocalProperty___cname))(variable[6]) /*MMLocalProperty::cname*/;
+  variable[6] = CALL_compiling_base___MMLocalProperty___cname(variable[6])(variable[6]) /*MMLocalProperty::cname*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] =  variable[1] /*i*/;
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
   goto return_label38;
   return_label38: while(false);
@@ -1480,39 +1487,40 @@ val_t compiling_methods___MMAttribute___compile_access(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
-  variable[7] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[7]) /*MMLocalProperty::global*/;
-  variable[7] = ((compiling_base___MMGlobalProperty___attr_access_t)CALL(variable[7],COLOR_compiling_base___MMGlobalProperty___attr_access))(variable[7]) /*MMGlobalProperty::attr_access*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___global(variable[7])(variable[7]) /*MMLocalProperty::global*/;
+  variable[7] = CALL_compiling_base___MMGlobalProperty___attr_access(variable[7])(variable[7]) /*MMGlobalProperty::attr_access*/;
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[2] /*recv*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(") /*"), TAG_Int(4)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
   variable[14] = variable[0];
-  variable[14] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[14],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[14]) /*MMLocalProperty::local_class*/;
+  variable[14] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[14])(variable[14]) /*MMLocalProperty::local_class*/;
   variable[15] = variable[14];
-  variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[15]) /*String::append*/;
+  variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[17]) /*AbstractArray::add*/;
   variable[18] = variable[0];
-  variable[18] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[18],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[18]) /*MMLocalProperty::name*/;
+  variable[18] = CALL_abstractmetamodel___MMLocalProperty___name(variable[18])(variable[18]) /*MMLocalProperty::name*/;
   variable[19] = variable[18];
-  variable[19] = ((string___String___to_s_t)CALL(variable[19],COLOR_string___Object___to_s))(variable[19]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[19]) /*String::append*/;
+  variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[21]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[21]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
   variable[3] = variable[4];
   goto return_label39;
   return_label39: while(false);
@@ -1540,187 +1548,194 @@ void compiling_methods___MMSrcMethod___compile_property_to_c(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_CFunctionContext_compiling_methods___CFunctionContext___init( variable[1] /*v*/); /*new CFunctionContext*/
-  ((compiling_methods___CompilerVisitor___cfc__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc__eq))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::cfc=*/;
+  CALL_compiling_methods___CompilerVisitor___cfc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::cfc=*/;
   variable[4] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[3] = variable[4];
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" self"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL( variable[3] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*args*/, variable[4]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[3] /*args*/)( variable[3] /*args*/, variable[4]) /*AbstractArray::add*/;
   variable[4] = variable[0];
-  variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
-  variable[4] = ((static_type___MMSignature___arity_t)CALL(variable[4],COLOR_static_type___MMSignature___arity))(variable[4]) /*MMSignature::arity*/;
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+  variable[4] = CALL_static_type___MMSignature___arity(variable[4])(variable[4]) /*MMSignature::arity*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" param"), TAG_Int(6)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[6] /*i*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-    ((array___AbstractArray___add_t)CALL( variable[3] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*args*/, variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*args*/)( variable[3] /*args*/, variable[7]) /*AbstractArray::add*/;
     continue_42: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_42: while(0);
   variable[4] = variable[0];
-  variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
-  variable[4] = ((static_type___MMSignature___closures_t)CALL(variable[4],COLOR_static_type___MMSignature___closures))(variable[4]) /*MMSignature::closures*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+  variable[4] = CALL_static_type___MMSignature___closures(variable[4])(variable[4]) /*MMSignature::closures*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" wd"), TAG_Int(3)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[6] /*i*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-    ((array___AbstractArray___add_t)CALL( variable[3] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*args*/, variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*args*/)( variable[3] /*args*/, variable[7]) /*AbstractArray::add*/;
     continue_43: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_43: while(0);
   variable[5] = variable[0];
-  variable[5] = ((compiling_methods___MMSrcMethod___decl_csignature_t)CALL(variable[5],COLOR_compiling_methods___MMSrcMethod___decl_csignature))(variable[5],  variable[1] /*v*/,  variable[3] /*args*/) /*MMSrcMethod::decl_csignature*/;
+  variable[5] = CALL_compiling_methods___MMSrcMethod___decl_csignature(variable[5])(variable[5],  variable[1] /*v*/,  variable[3] /*args*/) /*MMSrcMethod::decl_csignature*/;
   variable[4] = variable[5];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("#define LOCATE_"), TAG_Int(15)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[8],COLOR_compiling_base___MMLocalProperty___cname))(variable[8]) /*MMLocalProperty::cname*/;
+  variable[8] = CALL_compiling_base___MMLocalProperty___cname(variable[8])(variable[8]) /*MMLocalProperty::cname*/;
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" \""), TAG_Int(2)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] = variable[0];
-  variable[12] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable[12]) /*MMLocalProperty::full_name*/;
+  variable[12] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[12])(variable[12]) /*MMLocalProperty::full_name*/;
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[4] /*cs*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-  variable[6] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  variable[6] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
   variable[5] = variable[6];
   variable[6] = NEW_CContext_compiling_base___CContext___init(); /*new CContext*/
-  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::ctx=*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___out_contexts_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___out_contexts))( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
-  ((array___AbstractArray___clear_t)CALL(variable[6],COLOR_abstract_collection___RemovableCollection___clear))(variable[6]) /*AbstractArray::clear*/;
+  CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::ctx=*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___out_contexts( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
+  CALL_abstract_collection___RemovableCollection___clear(variable[6])(variable[6]) /*AbstractArray::clear*/;
   variable[6] =  TAG_Int(0);
   variable[8] = variable[0];
   variable[7] = variable[8];
-  variable[8] = ((syntax_base___MMLocalProperty___node_t)CALL( variable[7] /*s*/,COLOR_syntax_base___MMLocalProperty___node))( variable[7] /*s*/) /*MMLocalProperty::node*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = CALL_syntax_base___MMLocalProperty___node( variable[7] /*s*/)( variable[7] /*s*/) /*MMLocalProperty::node*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((syntax_base___MMLocalProperty___node_t)CALL( variable[7] /*s*/,COLOR_syntax_base___MMLocalProperty___node))( variable[7] /*s*/) /*MMLocalProperty::node*/;
-    variable[8] = ((parser_prod___PNode___line_number_t)CALL(variable[8],COLOR_parser_prod___PNode___line_number))(variable[8]) /*PNode::line_number*/;
+    variable[8] = CALL_syntax_base___MMLocalProperty___node( variable[7] /*s*/)( variable[7] /*s*/) /*MMLocalProperty::node*/;
+    variable[8] = CALL_parser_prod___PNode___line_number(variable[8])(variable[8]) /*PNode::line_number*/;
     variable[6] = variable[8] /*ln=*/;
   }
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("struct trace_t trace = {NULL, NULL, "), TAG_Int(36)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[6] /*ln*/;
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(", LOCATE_"), TAG_Int(9)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
   variable[14] = variable[0];
-  variable[14] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[14],COLOR_compiling_base___MMLocalProperty___cname))(variable[14]) /*MMLocalProperty::cname*/;
+  variable[14] = CALL_compiling_base___MMLocalProperty___cname(variable[14])(variable[14]) /*MMLocalProperty::cname*/;
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_decl*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_decl*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("trace.prev = tracehead; tracehead = &trace;"), TAG_Int(43)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("trace.file = LOCATE_"), TAG_Int(20)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] = variable[0];
-  variable[11] = ((abstractmetamodel___MMLocalProperty___module_t)CALL(variable[11],COLOR_abstractmetamodel___MMLocalProperty___module))(variable[11]) /*MMLocalProperty::module*/;
-  variable[11] = ((abstractmetamodel___MMModule___name_t)CALL(variable[11],COLOR_abstractmetamodel___MMModule___name))(variable[11]) /*MMModule::name*/;
+  variable[11] = CALL_abstractmetamodel___MMLocalProperty___module(variable[11])(variable[11]) /*MMLocalProperty::module*/;
+  variable[11] = CALL_abstractmetamodel___MMModule___name(variable[11])(variable[11]) /*MMModule::name*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   variable[9] = variable[0];
-  variable[9] = ((compiling_methods___MMSrcMethod___do_compile_inside_t)CALL(variable[9],COLOR_compiling_methods___MMSrcMethod___do_compile_inside))(variable[9],  variable[1] /*v*/,  variable[3] /*args*/) /*MMSrcMethod::do_compile_inside*/;
+  variable[9] = CALL_compiling_methods___MMSrcMethod___do_compile_inside(variable[9])(variable[9],  variable[1] /*v*/,  variable[3] /*args*/) /*MMSrcMethod::do_compile_inside*/;
   variable[8] = variable[9];
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("tracehead = trace.prev;"), TAG_Int(23)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
-  variable[9] = TAG_Bool(( variable[8] /*s*/ ==  NIT_NULL /*null*/) || (( variable[8] /*s*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable[8] /*s*/,COLOR_kernel___Object_____eqeq))( variable[8] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+  variable[9] = TAG_Bool(( variable[8] /*s*/ ==  NIT_NULL /*null*/) || (( variable[8] /*s*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*s*/)( variable[8] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("return;"), TAG_Int(7)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
   } else { /*if*/
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return "), TAG_Int(7)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[8] /*s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
   }
-  variable[9] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___generate_var_decls_t)CALL(variable[9],COLOR_compiling_methods___CFunctionContext___generate_var_decls))(variable[9]) /*CFunctionContext::generate_var_decls*/;
-  variable[9] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
-  ((compiling_base___CContext___append_t)CALL( variable[5] /*ctx_old*/,COLOR_compiling_base___CContext___append))( variable[5] /*ctx_old*/, variable[9]) /*CContext::append*/;
-  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/,  variable[5] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  variable[9] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___generate_var_decls(variable[9])(variable[9]) /*CFunctionContext::generate_var_decls*/;
+  variable[9] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+  CALL_compiling_base___CContext___append( variable[5] /*ctx_old*/)( variable[5] /*ctx_old*/, variable[9]) /*CContext::append*/;
+  CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
-  variable[9] = ((compiling_methods___CompilerVisitor___out_contexts_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___out_contexts))( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
-  variable[9] = ((array___AbstractArray___iterator_t)CALL(variable[9],COLOR_abstract_collection___Collection___iterator))(variable[9]) /*AbstractArray::iterator*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+  variable[9] = CALL_compiling_methods___CompilerVisitor___out_contexts( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
+  variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[10] = ((array___ArrayIterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*ArrayIterator::is_ok*/;
+    variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[10])) break; /*for*/
-    variable[10] = ((array___ArrayIterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*ArrayIterator::item*/;
+    variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/;
     variable[11] = variable[10];
-    variable[12] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
-    ((compiling_base___CContext___merge_t)CALL(variable[12],COLOR_compiling_base___CContext___merge))(variable[12],  variable[11] /*ctx*/) /*CContext::merge*/;
+    variable[12] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+    CALL_compiling_base___CContext___merge(variable[12])(variable[12],  variable[11] /*ctx*/) /*CContext::merge*/;
     continue_44: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/;
   }
   break_44: while(0);
   return_label41: while(false);
@@ -1738,10 +1753,10 @@ val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  para
   variable[2] =  param1;
   variable[5] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[4] = variable[5];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[2] /*args*/;
   variable[9] =  TAG_Int(0);
   variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -1761,26 +1776,27 @@ val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  para
   return_label46: while(false);
   variable[8] = variable[10];
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-  ((array___AbstractArray___add_t)CALL( variable[4] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*params*/, variable[5]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[5]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((static_type___MMLocalProperty___signature_t)CALL(variable[5],COLOR_static_type___MMLocalProperty___signature))(variable[5]) /*MMLocalProperty::signature*/;
-  variable[5] = ((static_type___MMSignature___arity_t)CALL(variable[5],COLOR_static_type___MMSignature___arity))(variable[5]) /*MMSignature::arity*/;
+  variable[5] = CALL_static_type___MMLocalProperty___signature(variable[5])(variable[5]) /*MMLocalProperty::signature*/;
+  variable[5] = CALL_static_type___MMSignature___arity(variable[5])(variable[5]) /*MMSignature::arity*/;
   variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/
   variable[5] = variable[6];
-  variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] = TAG_Int(UNTAG_Int( variable[7] /*i*/)+UNTAG_Int( TAG_Int(1)));
     variable[13] =  variable[2] /*args*/;
     variable[14] = variable[12];
@@ -1801,39 +1817,40 @@ val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  para
     return_label48: while(false);
     variable[12] = variable[15];
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
     variable[8] = variable[9];
-    ((array___AbstractArray___add_t)CALL( variable[4] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*params*/,  variable[8] /*p*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/,  variable[8] /*p*/) /*AbstractArray::add*/;
     continue_47: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
   break_47: while(0);
   variable[6] = variable[0];
-  variable[6] = ((static_type___MMLocalProperty___signature_t)CALL(variable[6],COLOR_static_type___MMLocalProperty___signature))(variable[6]) /*MMLocalProperty::signature*/;
-  variable[6] = ((static_type___MMSignature___arity_t)CALL(variable[6],COLOR_static_type___MMSignature___arity))(variable[6]) /*MMSignature::arity*/;
+  variable[6] = CALL_static_type___MMLocalProperty___signature(variable[6])(variable[6]) /*MMLocalProperty::signature*/;
+  variable[6] = CALL_static_type___MMSignature___arity(variable[6])(variable[6]) /*MMSignature::arity*/;
   variable[6] = TAG_Int(UNTAG_Int(variable[6])+UNTAG_Int( TAG_Int(1)));
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((static_type___MMLocalProperty___signature_t)CALL(variable[6],COLOR_static_type___MMLocalProperty___signature))(variable[6]) /*MMLocalProperty::signature*/;
-  variable[6] = ((static_type___MMSignature___closures_t)CALL(variable[6],COLOR_static_type___MMSignature___closures))(variable[6]) /*MMSignature::closures*/;
-  variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+  variable[6] = CALL_static_type___MMLocalProperty___signature(variable[6])(variable[6]) /*MMLocalProperty::signature*/;
+  variable[6] = CALL_static_type___MMSignature___closures(variable[6])(variable[6]) /*MMSignature::closures*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
   variable[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]); /*new Range[Int]*/
   variable[6] = variable[7];
-  variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
     variable[10] = variable[0];
-    variable[10] = ((compiling_methods___MMMethod___closure_cname_t)CALL(variable[10],COLOR_compiling_methods___MMMethod___closure_cname))(variable[10],  variable[8] /*i*/) /*MMMethod::closure_cname*/;
+    variable[10] = CALL_compiling_methods___MMMethod___closure_cname(variable[10])(variable[10],  variable[8] /*i*/) /*MMMethod::closure_cname*/;
     variable[9] = variable[10];
     variable[11] = variable[0];
-    variable[11] = ((static_type___MMLocalProperty___signature_t)CALL(variable[11],COLOR_static_type___MMLocalProperty___signature))(variable[11]) /*MMLocalProperty::signature*/;
-    variable[11] = ((static_type___MMSignature___closures_t)CALL(variable[11],COLOR_static_type___MMSignature___closures))(variable[11]) /*MMSignature::closures*/;
+    variable[11] = CALL_static_type___MMLocalProperty___signature(variable[11])(variable[11]) /*MMLocalProperty::signature*/;
+    variable[11] = CALL_static_type___MMSignature___closures(variable[11])(variable[11]) /*MMSignature::closures*/;
     variable[12] = variable[11];
     variable[13] =  variable[8] /*i*/;
     variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -1852,53 +1869,54 @@ val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  para
     goto return_label50;
     return_label50: while(false);
     variable[11] = variable[14];
-    variable[11] = ((static_type___MMClosure___signature_t)CALL(variable[11],COLOR_static_type___MMClosure___signature))(variable[11]) /*MMClosure::signature*/;
+    variable[11] = CALL_static_type___MMClosure___signature(variable[11])(variable[11]) /*MMClosure::signature*/;
     variable[10] = variable[11];
     variable[12] = NEW_Array_array___Array___init(); /*new Array[String]*/
     variable[11] = variable[12];
-    variable[12] = NEW_String_string___String___init(); /*new String*/
+    variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
     variable[15] =  variable[9] /*closcn*/;
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
     variable[17] = variable[16];
-    ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[17]) /*String::append*/;
-    ((array___AbstractArray___add_t)CALL( variable[11] /*subparams*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*subparams*/, variable[12]) /*AbstractArray::add*/;
-    variable[12] = ((static_type___MMSignature___arity_t)CALL( variable[10] /*cs*/,COLOR_static_type___MMSignature___arity))( variable[10] /*cs*/) /*MMSignature::arity*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[17]) /*AbstractArray::add*/;
+    variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*subparams*/)( variable[11] /*subparams*/, variable[12]) /*AbstractArray::add*/;
+    variable[12] = CALL_static_type___MMSignature___arity( variable[10] /*cs*/)( variable[10] /*cs*/) /*MMSignature::arity*/;
     variable[13] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[12]); /*new Range[Int]*/
     variable[12] = variable[13];
-    variable[12] = ((range___Range___iterator_t)CALL(variable[12],COLOR_abstract_collection___Collection___iterator))(variable[12]) /*Range::iterator*/;
+    variable[12] = CALL_abstract_collection___Collection___iterator(variable[12])(variable[12]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[13] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[12],COLOR_abstract_collection___Iterator___is_ok))(variable[12]) /*Iterator::is_ok*/;
+      variable[13] = CALL_abstract_collection___Iterator___is_ok(variable[12])(variable[12]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[13])) break; /*for*/
-      variable[13] = ((abstract_collection___Iterator___item_t)CALL(variable[12],COLOR_abstract_collection___Iterator___item))(variable[12]) /*Iterator::item*/;
+      variable[13] = CALL_abstract_collection___Iterator___item(variable[12])(variable[12]) /*Iterator::item*/;
       variable[14] = variable[13];
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
       variable[15] = variable[16];
-      ((array___AbstractArray___add_t)CALL( variable[11] /*subparams*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*subparams*/,  variable[15] /*p*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[11] /*subparams*/)( variable[11] /*subparams*/,  variable[15] /*p*/) /*AbstractArray::add*/;
       continue_51: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[12],COLOR_abstract_collection___Iterator___next))(variable[12]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[12])(variable[12]) /*Iterator::next*/;
     }
     break_51: while(0);
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("void"), TAG_Int(4)); /*new String*/
     variable[12] = variable[13];
-    variable[13] = ((static_type___MMSignature___return_type_t)CALL( variable[10] /*cs*/,COLOR_static_type___MMSignature___return_type))( variable[10] /*cs*/) /*MMSignature::return_type*/;
-    variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[13] ==  NIT_NULL /*null*/) || ((variable[13] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[13],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[13], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[13],COLOR_kernel___Object_____eqeq))(variable[13],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[13] = CALL_static_type___MMSignature___return_type( variable[10] /*cs*/)( variable[10] /*cs*/) /*MMSignature::return_type*/;
+    variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[13] ==  NIT_NULL /*null*/) || ((variable[13] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[13])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[13], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[13])(variable[13],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
       variable[12] = variable[13] /*r=*/;
     }
-    variable[13] = NEW_String_string___String___init(); /*new String*/
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[9] /*closcn*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" *"), TAG_Int(2)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[18]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
     variable[19] = TAG_Int(UNTAG_Int( variable[5] /*first_closure_index*/)+UNTAG_Int( variable[8] /*i*/));
     variable[20] =  variable[2] /*args*/;
     variable[21] = variable[19];
@@ -1919,74 +1937,78 @@ val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  para
     return_label52: while(false);
     variable[19] = variable[22];
     variable[20] = variable[19];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[20]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[20]) /*AbstractArray::add*/;
     variable[21] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[22] = variable[21];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[22]) /*String::append*/;
-    ((array___AbstractArray___add_t)CALL( variable[4] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*params*/, variable[13]) /*AbstractArray::add*/;
-    variable[13] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[22]) /*AbstractArray::add*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[13]) /*AbstractArray::add*/;
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[9] /*closcn*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[18]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/;
-    variable[13] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/;
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("typedef "), TAG_Int(8)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[12] /*r*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" (*F"), TAG_Int(4)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[18]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
     variable[19] =  variable[9] /*closcn*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_String_string___String___with_native(BOX_NativeString(")("), TAG_Int(2)); /*new String*/
     variable[21] = variable[20];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[21]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[21]) /*AbstractArray::add*/;
     variable[22] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-    variable[22] = ((string___Collection___join_t)CALL( variable[11] /*subparams*/,COLOR_string___Collection___join))( variable[11] /*subparams*/, variable[22]) /*Collection::join*/;
+    variable[22] = CALL_string___Collection___join( variable[11] /*subparams*/)( variable[11] /*subparams*/, variable[22]) /*Collection::join*/;
     variable[23] = variable[22];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[23]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[23]) /*AbstractArray::add*/;
     variable[24] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
     variable[25] = variable[24];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[25]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/;
-    variable[13] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[25]) /*AbstractArray::add*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/;
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[9] /*closcn*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" {F"), TAG_Int(3)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[18]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
     variable[19] =  variable[9] /*closcn*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_String_string___String___with_native(BOX_NativeString(" fun; val_t *has_broke; val_t broke_value; val_t *variable; void **closurevariable;};"), TAG_Int(85)); /*new String*/
     variable[21] = variable[20];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[21]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[21]) /*AbstractArray::add*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_decl*/;
     continue_49: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
   break_49: while(0);
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
-  variable[6] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[6]) /*MMGlobalProperty::is_init*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[6])(variable[6]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("int* init_table"), TAG_Int(15)); /*new String*/
-    ((array___AbstractArray___add_t)CALL( variable[4] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*params*/, variable[6]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[6]) /*AbstractArray::add*/;
   }
   /*variable[6] is variable ret*/
   variable[7] = variable[0];
-  variable[7] = ((static_type___MMLocalProperty___signature_t)CALL(variable[7],COLOR_static_type___MMLocalProperty___signature))(variable[7]) /*MMLocalProperty::signature*/;
-  variable[7] = ((static_type___MMSignature___return_type_t)CALL(variable[7],COLOR_static_type___MMSignature___return_type))(variable[7]) /*MMSignature::return_type*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = CALL_static_type___MMLocalProperty___signature(variable[7])(variable[7]) /*MMLocalProperty::signature*/;
+  variable[7] = CALL_static_type___MMSignature___return_type(variable[7])(variable[7]) /*MMSignature::return_type*/;
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
     variable[6] = variable[7] /*ret=*/;
@@ -1995,55 +2017,57 @@ val_t compiling_methods___MMSrcMethod___decl_csignature(val_t  self, val_t  para
     variable[6] = variable[7] /*ret=*/;
   }
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[8] = ((string___Collection___join_t)CALL( variable[4] /*params*/,COLOR_string___Collection___join))( variable[4] /*params*/, variable[8]) /*Collection::join*/;
+  variable[8] = CALL_string___Collection___join( variable[4] /*params*/)( variable[4] /*params*/, variable[8]) /*Collection::join*/;
   variable[7] = variable[8];
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[6] /*ret*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
   variable[15] = variable[0];
-  variable[15] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[15],COLOR_compiling_base___MMLocalProperty___cname))(variable[15]) /*MMLocalProperty::cname*/;
+  variable[15] = CALL_compiling_base___MMLocalProperty___cname(variable[15])(variable[15]) /*MMLocalProperty::cname*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
   variable[19] =  variable[7] /*p*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[21]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("typedef "), TAG_Int(8)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[6] /*ret*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" (* "), TAG_Int(4)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
   variable[15] = variable[0];
-  variable[15] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[15],COLOR_compiling_base___MMLocalProperty___cname))(variable[15]) /*MMLocalProperty::cname*/;
+  variable[15] = CALL_compiling_base___MMLocalProperty___cname(variable[15])(variable[15]) /*MMLocalProperty::cname*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString("_t)("), TAG_Int(4)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
   variable[19] =  variable[7] /*p*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[21]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-  variable[9] = ((string___String_____plus_t)CALL( variable[8] /*s*/,COLOR_string___String_____plus))( variable[8] /*s*/, variable[9]) /*String::+*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
+  variable[9] = CALL_string___String_____plus( variable[8] /*s*/)( variable[8] /*s*/, variable[9]) /*String::+*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
   variable[3] =  variable[8] /*s*/;
   goto return_label45;
   return_label45: while(false);
@@ -2072,8 +2096,8 @@ val_t compiling_methods___MMReadImplementationMethod___do_compile_inside(val_t
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMAttrImplementationMethod___node_t)CALL(variable[4],COLOR_syntax_base___MMLocalProperty___node))(variable[4]) /*MMAttrImplementationMethod::node*/;
-  variable[4] = ((mmbuilder___AAttrPropdef___prop_t)CALL(variable[4],COLOR_syntax_base___AAttrPropdef___prop))(variable[4]) /*AAttrPropdef::prop*/;
+  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMAttrImplementationMethod::node*/;
+  variable[4] = CALL_syntax_base___AAttrPropdef___prop(variable[4])(variable[4]) /*AAttrPropdef::prop*/;
   variable[5] =  variable[2] /*params*/;
   variable[6] =  TAG_Int(0);
   variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -2092,7 +2116,7 @@ val_t compiling_methods___MMReadImplementationMethod___do_compile_inside(val_t
   goto return_label54;
   return_label54: while(false);
   variable[5] = variable[7];
-  variable[4] = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable[4],COLOR_compiling_methods___MMAttribute___compile_access))(variable[4],  variable[1] /*v*/, variable[5]) /*MMAttribute::compile_access*/;
+  variable[4] = CALL_compiling_methods___MMAttribute___compile_access(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*MMAttribute::compile_access*/;
   variable[3] = variable[4];
   goto return_label53;
   return_label53: while(false);
@@ -2109,8 +2133,8 @@ val_t compiling_methods___MMWriteImplementationMethod___do_compile_inside(val_t
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMAttrImplementationMethod___node_t)CALL(variable[4],COLOR_syntax_base___MMLocalProperty___node))(variable[4]) /*MMAttrImplementationMethod::node*/;
-  variable[4] = ((mmbuilder___AAttrPropdef___prop_t)CALL(variable[4],COLOR_syntax_base___AAttrPropdef___prop))(variable[4]) /*AAttrPropdef::prop*/;
+  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMAttrImplementationMethod::node*/;
+  variable[4] = CALL_syntax_base___AAttrPropdef___prop(variable[4])(variable[4]) /*AAttrPropdef::prop*/;
   variable[5] =  variable[2] /*params*/;
   variable[6] =  TAG_Int(0);
   variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -2129,7 +2153,7 @@ val_t compiling_methods___MMWriteImplementationMethod___do_compile_inside(val_t
   goto return_label56;
   return_label56: while(false);
   variable[5] = variable[7];
-  variable[4] = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable[4],COLOR_compiling_methods___MMAttribute___compile_access))(variable[4],  variable[1] /*v*/, variable[5]) /*MMAttribute::compile_access*/;
+  variable[4] = CALL_compiling_methods___MMAttribute___compile_access(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*MMAttribute::compile_access*/;
   variable[5] =  variable[2] /*params*/;
   variable[6] =  TAG_Int(1);
   variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -2148,7 +2172,7 @@ val_t compiling_methods___MMWriteImplementationMethod___do_compile_inside(val_t
   goto return_label57;
   return_label57: while(false);
   variable[5] = variable[7];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[4], variable[5]) /*CompilerVisitor::add_assignment*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*CompilerVisitor::add_assignment*/;
   variable[3] =  NIT_NULL /*null*/;
   goto return_label55;
   return_label55: while(false);
@@ -2165,9 +2189,9 @@ val_t compiling_methods___MMMethSrcMethod___do_compile_inside(val_t  self, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMMethSrcMethod___node_t)CALL(variable[4],COLOR_syntax_base___MMLocalProperty___node))(variable[4]) /*MMMethSrcMethod::node*/;
+  variable[4] = CALL_syntax_base___MMLocalProperty___node(variable[4])(variable[4]) /*MMMethSrcMethod::node*/;
   variable[5] = variable[0];
-  variable[4] = ((compiling_methods___AMethPropdef___do_compile_inside_t)CALL(variable[4],COLOR_compiling_methods___AMethPropdef___do_compile_inside))(variable[4],  variable[1] /*v*/, variable[5],  variable[2] /*params*/) /*AMethPropdef::do_compile_inside*/;
+  variable[4] = CALL_compiling_methods___AMethPropdef___do_compile_inside(variable[4])(variable[4],  variable[1] /*v*/, variable[5],  variable[2] /*params*/) /*AMethPropdef::do_compile_inside*/;
   variable[3] = variable[4];
   goto return_label58;
   return_label58: while(false);
@@ -2183,40 +2207,40 @@ val_t compiling_methods___MMImplicitInit___do_compile_inside(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[2] /*params*/,COLOR_abstract_collection___Collection___length))( variable[2] /*params*/) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[2] /*params*/)( variable[2] /*params*/) /*AbstractArray::length*/;
   variable[6] = variable[0];
-  variable[6] = ((syntax_base___MMImplicitInit___unassigned_attributes_t)CALL(variable[6],COLOR_syntax_base___MMImplicitInit___unassigned_attributes))(variable[6]) /*MMImplicitInit::unassigned_attributes*/;
-  variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+  variable[6] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(variable[6])(variable[6]) /*MMImplicitInit::unassigned_attributes*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int(variable[6]));
   variable[4] = variable[5];
-  variable[6] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[2] /*params*/,COLOR_abstract_collection___Collection___first))( variable[2] /*params*/) /*IndexedCollection::first*/;
+  variable[6] = CALL_abstract_collection___Collection___first( variable[2] /*params*/)( variable[2] /*params*/) /*IndexedCollection::first*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((syntax_base___MMImplicitInit___super_inits_t)CALL(variable[6],COLOR_syntax_base___MMImplicitInit___super_inits))(variable[6]) /*MMImplicitInit::super_inits*/;
-  variable[6] = ((array___AbstractArray___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*AbstractArray::iterator*/;
+  variable[6] = CALL_syntax_base___MMImplicitInit___super_inits(variable[6])(variable[6]) /*MMImplicitInit::super_inits*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*sp*/==NIT_NULL) || VAL_ISA( variable[8] /*sp*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___MMImplicitInit___do_compile_inside, LOCATE_compiling_methods, 486); nit_exit(1);}
     variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  variable[5] /*recv*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  variable[5] /*recv*/) /*AbstractArray::add*/;
     variable[9] = variable[10];
     variable[10] = variable[0];
-    variable[10] = ((mmbuilder___MMImplicitInit___super_init_t)CALL(variable[10],COLOR_mmbuilder___MMImplicitInit___super_init))(variable[10]) /*MMImplicitInit::super_init*/;
-    variable[10] = TAG_Bool(( variable[8] /*sp*/ == variable[10]) || (( variable[8] /*sp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*sp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*sp*/,variable[10])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*sp*/,COLOR_kernel___Object_____eqeq))( variable[8] /*sp*/, variable[10]) /*Object::==*/)))));
+    variable[10] = CALL_mmbuilder___MMImplicitInit___super_init(variable[10])(variable[10]) /*MMImplicitInit::super_init*/;
+    variable[10] = TAG_Bool(( variable[8] /*sp*/ == variable[10]) || (( variable[8] /*sp*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*sp*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*sp*/,variable[10])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*sp*/)( variable[8] /*sp*/, variable[10]) /*Object::==*/)))));
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[11] = NEW_Array_array___Array___with_capacity( variable[4] /*f*/); /*new Array[String]*/
       variable[10] = variable[11];
-      ((array___AbstractArray___add_t)CALL( variable[10] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*args*/,  variable[5] /*recv*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[10] /*args*/)( variable[10] /*args*/,  variable[5] /*recv*/) /*AbstractArray::add*/;
       variable[11] = NEW_Range_range___Range___without_last( TAG_Int(1),  variable[4] /*f*/); /*new Range[Int]*/
-      variable[11] = ((range___Range___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Range::iterator*/;
+      variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
       while (true) { /*for*/
-        variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
+        variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
         if (!UNTAG_Bool(variable[12])) break; /*for*/
-        variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
+        variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
         variable[13] = variable[12];
         variable[14] =  variable[2] /*params*/;
         variable[15] =  variable[13] /*i*/;
@@ -2236,30 +2260,30 @@ val_t compiling_methods___MMImplicitInit___do_compile_inside(val_t  self, val_t
         goto return_label62;
         return_label62: while(false);
         variable[14] = variable[16];
-        ((array___AbstractArray___add_t)CALL( variable[10] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*args*/, variable[14]) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[10] /*args*/)( variable[10] /*args*/, variable[14]) /*AbstractArray::add*/;
         continue_61: while(0);
-        ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
       }
       break_61: while(0);
-      ((compiling_methods___MMMethod___compile_call_t)CALL( variable[8] /*sp*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[8] /*sp*/,  variable[1] /*v*/,  variable[10] /*args*/) /*MMMethod::compile_call*/;
+      CALL_compiling_methods___MMMethod___compile_call( variable[8] /*sp*/)( variable[8] /*sp*/,  variable[1] /*v*/,  variable[10] /*args*/) /*MMMethod::compile_call*/;
     } else { /*if*/
-      ((compiling_methods___MMMethod___compile_call_t)CALL( variable[8] /*sp*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[8] /*sp*/,  variable[1] /*v*/,  variable[9] /*args_recv*/) /*MMMethod::compile_call*/;
+      CALL_compiling_methods___MMMethod___compile_call( variable[8] /*sp*/)( variable[8] /*sp*/,  variable[1] /*v*/,  variable[9] /*args_recv*/) /*MMMethod::compile_call*/;
     }
     continue_60: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_60: while(0);
-  variable[6] = ((array___AbstractArray___length_t)CALL( variable[2] /*params*/,COLOR_abstract_collection___Collection___length))( variable[2] /*params*/) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length( variable[2] /*params*/)( variable[2] /*params*/) /*AbstractArray::length*/;
   variable[7] = NEW_Range_range___Range___without_last( variable[4] /*f*/, variable[6]); /*new Range[Int]*/
   variable[6] = variable[7];
-  variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
     variable[10] = variable[0];
-    variable[10] = ((syntax_base___MMImplicitInit___unassigned_attributes_t)CALL(variable[10],COLOR_syntax_base___MMImplicitInit___unassigned_attributes))(variable[10]) /*MMImplicitInit::unassigned_attributes*/;
+    variable[10] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(variable[10])(variable[10]) /*MMImplicitInit::unassigned_attributes*/;
     variable[11] = TAG_Int(UNTAG_Int( variable[8] /*i*/)-UNTAG_Int( variable[4] /*f*/));
     variable[12] = variable[10];
     variable[13] = variable[11];
@@ -2280,7 +2304,7 @@ val_t compiling_methods___MMImplicitInit___do_compile_inside(val_t  self, val_t
     return_label64: while(false);
     variable[10] = variable[14];
     variable[9] = variable[10];
-    variable[10] = ((compiling_methods___MMAttribute___compile_access_t)CALL( variable[9] /*attribute*/,COLOR_compiling_methods___MMAttribute___compile_access))( variable[9] /*attribute*/,  variable[1] /*v*/,  variable[5] /*recv*/) /*MMAttribute::compile_access*/;
+    variable[10] = CALL_compiling_methods___MMAttribute___compile_access( variable[9] /*attribute*/)( variable[9] /*attribute*/,  variable[1] /*v*/,  variable[5] /*recv*/) /*MMAttribute::compile_access*/;
     variable[11] =  variable[2] /*params*/;
     variable[12] =  variable[8] /*i*/;
     variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -2299,9 +2323,9 @@ val_t compiling_methods___MMImplicitInit___do_compile_inside(val_t  self, val_t
     goto return_label65;
     return_label65: while(false);
     variable[11] = variable[13];
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[10], variable[11]) /*CompilerVisitor::add_assignment*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[10], variable[11]) /*CompilerVisitor::add_assignment*/;
     continue_63: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
   break_63: while(0);
   variable[3] =  NIT_NULL /*null*/;
@@ -2320,42 +2344,43 @@ val_t compiling_methods___MMType___compile_cast(val_t  self, val_t  param0, val_
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ((static_type___MMType___local_class_t)CALL(variable[5],COLOR_static_type___MMType___local_class))(variable[5]) /*MMType::local_class*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___global))(variable[5]) /*MMLocalClass::global*/;
+  variable[5] = CALL_static_type___MMType___local_class(variable[5])(variable[5]) /*MMType::local_class*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___global(variable[5])(variable[5]) /*MMLocalClass::global*/;
   variable[4] = variable[5];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[2] /*recv*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("==NIT_NULL) || VAL_ISA("), TAG_Int(23)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[2] /*recv*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
-  variable[14] = ((compiling_base___MMGlobalClass___color_id_t)CALL( variable[4] /*g*/,COLOR_compiling_base___MMGlobalClass___color_id))( variable[4] /*g*/) /*MMGlobalClass::color_id*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
+  variable[14] = CALL_compiling_base___MMGlobalClass___color_id( variable[4] /*g*/)( variable[4] /*g*/) /*MMGlobalClass::color_id*/;
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[17]) /*String::append*/;
-  variable[18] = ((compiling_base___MMGlobalClass___id_id_t)CALL( variable[4] /*g*/,COLOR_compiling_base___MMGlobalClass___id_id))( variable[4] /*g*/) /*MMGlobalClass::id_id*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[17]) /*AbstractArray::add*/;
+  variable[18] = CALL_compiling_base___MMGlobalClass___id_id( variable[4] /*g*/)( variable[4] /*g*/) /*MMGlobalClass::id_id*/;
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString(")) /*cast "), TAG_Int(10)); /*new String*/
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[21]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[21]) /*AbstractArray::add*/;
   variable[22] = variable[0];
   variable[23] = variable[22];
-  variable[23] = ((string___String___to_s_t)CALL(variable[23],COLOR_string___Object___to_s))(variable[23]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[23]) /*String::append*/;
+  variable[23] = CALL_string___Object___to_s(variable[23])(variable[23]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[23]) /*AbstractArray::add*/;
   variable[24] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[25] = variable[24];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[25]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[25]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[3] = variable[5];
   goto return_label66;
   return_label66: while(false);
@@ -2373,49 +2398,50 @@ void compiling_methods___MMType___compile_type_check(val_t  self, val_t  param0,
   variable[2] =  param1;
   variable[3] =  param2;
   variable[6] = variable[0];
-  variable[6] = ((static_type___MMType___local_class_t)CALL(variable[6],COLOR_static_type___MMType___local_class))(variable[6]) /*MMType::local_class*/;
-  variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___global))(variable[6]) /*MMLocalClass::global*/;
+  variable[6] = CALL_static_type___MMType___local_class(variable[6])(variable[6]) /*MMType::local_class*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[6])(variable[6]) /*MMLocalClass::global*/;
   variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(13)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("if (("), TAG_Int(5)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[2] /*recv*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("!=NIT_NULL) && !VAL_ISA("), TAG_Int(24)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[2] /*recv*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
-  variable[15] = ((compiling_base___MMGlobalClass___color_id_t)CALL( variable[5] /*g*/,COLOR_compiling_base___MMGlobalClass___color_id))( variable[5] /*g*/) /*MMGlobalClass::color_id*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
+  variable[15] = CALL_compiling_base___MMGlobalClass___color_id( variable[5] /*g*/)( variable[5] /*g*/) /*MMGlobalClass::color_id*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[18]) /*String::append*/;
-  variable[19] = ((compiling_base___MMGlobalClass___id_id_t)CALL( variable[5] /*g*/,COLOR_compiling_base___MMGlobalClass___id_id))( variable[5] /*g*/) /*MMGlobalClass::id_id*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[18]) /*AbstractArray::add*/;
+  variable[19] = CALL_compiling_base___MMGlobalClass___id_id( variable[5] /*g*/)( variable[5] /*g*/) /*MMGlobalClass::id_id*/;
   variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[20]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[20]) /*AbstractArray::add*/;
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString(")) { fprintf(stderr, \"Cast failled\"); "), TAG_Int(38)); /*new String*/
   variable[22] = variable[21];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[22]) /*String::append*/;
-  variable[23] = ((compiling_methods___CompilerVisitor___printf_locate_error_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___printf_locate_error))( variable[1] /*v*/,  variable[3] /*n*/) /*CompilerVisitor::printf_locate_error*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[22]) /*AbstractArray::add*/;
+  variable[23] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*n*/) /*CompilerVisitor::printf_locate_error*/;
   variable[24] = variable[23];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[24]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[24]) /*AbstractArray::add*/;
   variable[25] = NEW_String_string___String___with_native(BOX_NativeString(" nit_exit(1); } /*cast "), TAG_Int(23)); /*new String*/
   variable[26] = variable[25];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[26]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[26]) /*AbstractArray::add*/;
   variable[27] = variable[0];
   variable[28] = variable[27];
-  variable[28] = ((string___String___to_s_t)CALL(variable[28],COLOR_string___Object___to_s))(variable[28]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[28]) /*String::append*/;
+  variable[28] = CALL_string___Object___to_s(variable[28])(variable[28]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[28]) /*AbstractArray::add*/;
   variable[29] = NEW_String_string___String___with_native(BOX_NativeString("*/;"), TAG_Int(3)); /*new String*/
   variable[30] = variable[29];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[30]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[30]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
   return_label67: while(false);
   tracehead = trace.prev;
   return;
@@ -2455,50 +2481,51 @@ void compiling_methods___ASignature___compile_parameters(val_t  self, val_t  par
   variable[2] =  param1;
   variable[3] =  param2;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ASignature___n_params_t)CALL(variable[5],COLOR_parser_nodes___ASignature___n_params))(variable[5]) /*ASignature::n_params*/;
-  variable[5] = ((list___List___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*List::iterator*/;
+  variable[5] = CALL_parser_nodes___ASignature___n_params(variable[5])(variable[5]) /*ASignature::n_params*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((list___ListIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ListIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((list___ListIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ListIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ListIterator::item*/;
     variable[7] = variable[6];
-    variable[9] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-    variable[10] = ((mmbuilder___PParam___variable_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___variable))( variable[7] /*ap*/) /*PParam::variable*/;
-    variable[9] = ((compiling_methods___CFunctionContext___register_variable_t)CALL(variable[9],COLOR_compiling_methods___CFunctionContext___register_variable))(variable[9], variable[10]) /*CFunctionContext::register_variable*/;
+    variable[9] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    variable[10] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+    variable[9] = CALL_compiling_methods___CFunctionContext___register_variable(variable[9])(variable[9], variable[10]) /*CFunctionContext::register_variable*/;
     variable[8] = variable[9];
-    variable[9] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[9] = ((compiling_methods___NitMethodContext___method_params_t)CALL(variable[9],COLOR_compiling_methods___NitMethodContext___method_params))(variable[9]) /*NitMethodContext::method_params*/;
-    variable[10] = ((mmbuilder___PParam___variable_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___variable))( variable[7] /*ap*/) /*PParam::variable*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9], variable[10]) /*AbstractArray::add*/;
-    variable[10] = ((mmbuilder___PParam___position_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___position))( variable[7] /*ap*/) /*PParam::position*/;
-    variable[10] = ((static_type___MMSignature_____bra_t)CALL( variable[2] /*orig_sig*/,COLOR_static_type___MMSignature_____bra))( variable[2] /*orig_sig*/, variable[10]) /*MMSignature::[]*/;
+    variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[9] = CALL_compiling_methods___NitMethodContext___method_params(variable[9])(variable[9]) /*NitMethodContext::method_params*/;
+    variable[10] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    variable[10] = CALL_syntax_base___PParam___position( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::position*/;
+    variable[10] = CALL_static_type___MMSignature_____bra( variable[2] /*orig_sig*/)( variable[2] /*orig_sig*/, variable[10]) /*MMSignature::[]*/;
     variable[9] = variable[10];
-    variable[10] = ((mmbuilder___PParam___variable_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___variable))( variable[7] /*ap*/) /*PParam::variable*/;
-    variable[10] = ((syntax_base___Variable___stype_t)CALL(variable[10],COLOR_syntax_base___Variable___stype))(variable[10]) /*Variable::stype*/;
-    variable[10] = ((static_type___MMType_____l_t)CALL( variable[9] /*orig_type*/,COLOR_static_type___MMType_____l))( variable[9] /*orig_type*/, variable[10]) /*MMType::<*/;
+    variable[10] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+    variable[10] = CALL_syntax_base___Variable___stype(variable[10])(variable[10]) /*Variable::stype*/;
+    variable[10] = CALL_static_type___MMType_____l( variable[9] /*orig_type*/)( variable[9] /*orig_type*/, variable[10]) /*MMType::<*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[10])))) { /*if*/
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("/* check if p<"), TAG_Int(14)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
-      variable[13] = ((mmbuilder___PParam___variable_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___variable))( variable[7] /*ap*/) /*PParam::variable*/;
-      variable[13] = ((syntax_base___Variable___stype_t)CALL(variable[13],COLOR_syntax_base___Variable___stype))(variable[13]) /*Variable::stype*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
+      variable[13] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+      variable[13] = CALL_syntax_base___Variable___stype(variable[13])(variable[13]) /*Variable::stype*/;
       variable[14] = variable[13];
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" with p:"), TAG_Int(8)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
       variable[17] =  variable[9] /*orig_type*/;
-      variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+      variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
-      variable[10] = ((mmbuilder___PParam___variable_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___variable))( variable[7] /*ap*/) /*PParam::variable*/;
-      variable[10] = ((syntax_base___Variable___stype_t)CALL(variable[10],COLOR_syntax_base___Variable___stype))(variable[10]) /*Variable::stype*/;
-      variable[11] = ((mmbuilder___PParam___position_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___position))( variable[7] /*ap*/) /*PParam::position*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
+      variable[10] = CALL_syntax_base___PParam___variable( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::variable*/;
+      variable[10] = CALL_syntax_base___Variable___stype(variable[10])(variable[10]) /*Variable::stype*/;
+      variable[11] = CALL_syntax_base___PParam___position( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::position*/;
       variable[12] =  variable[3] /*params*/;
       variable[13] = variable[11];
       variable[15] = TAG_Bool(UNTAG_Int( variable[13] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -2517,9 +2544,9 @@ void compiling_methods___ASignature___compile_parameters(val_t  self, val_t  par
       goto return_label70;
       return_label70: while(false);
       variable[11] = variable[14];
-      ((compiling_methods___MMType___compile_type_check_t)CALL(variable[10],COLOR_compiling_methods___MMType___compile_type_check))(variable[10],  variable[1] /*v*/, variable[11],  variable[7] /*ap*/) /*MMType::compile_type_check*/;
+      CALL_compiling_methods___MMType___compile_type_check(variable[10])(variable[10],  variable[1] /*v*/, variable[11],  variable[7] /*ap*/) /*MMType::compile_type_check*/;
     }
-    variable[10] = ((mmbuilder___PParam___position_t)CALL( variable[7] /*ap*/,COLOR_syntax_base___PParam___position))( variable[7] /*ap*/) /*PParam::position*/;
+    variable[10] = CALL_syntax_base___PParam___position( variable[7] /*ap*/)( variable[7] /*ap*/) /*PParam::position*/;
     variable[11] =  variable[3] /*params*/;
     variable[12] = variable[10];
     variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -2538,49 +2565,50 @@ void compiling_methods___ASignature___compile_parameters(val_t  self, val_t  par
     goto return_label71;
     return_label71: while(false);
     variable[10] = variable[13];
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[8] /*cname*/, variable[10]) /*CompilerVisitor::add_assignment*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[8] /*cname*/, variable[10]) /*CompilerVisitor::add_assignment*/;
     continue_69: while(0);
-    ((list___ListIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ListIterator::next*/;
   }
   break_69: while(0);
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ASignature___n_closure_decls_t)CALL(variable[5],COLOR_parser_nodes___ASignature___n_closure_decls))(variable[5]) /*ASignature::n_closure_decls*/;
-  variable[5] = ((list___List___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*List::length*/;
+  variable[5] = CALL_parser_nodes___ASignature___n_closure_decls(variable[5])(variable[5]) /*ASignature::n_closure_decls*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*List::length*/;
   variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/
   variable[5] = variable[6];
-  variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
     variable[9] = variable[0];
-    variable[9] = ((parser_nodes___ASignature___n_closure_decls_t)CALL(variable[9],COLOR_parser_nodes___ASignature___n_closure_decls))(variable[9]) /*ASignature::n_closure_decls*/;
-    variable[9] = ((list___List_____bra_t)CALL(variable[9],COLOR_abstract_collection___Map_____bra))(variable[9],  variable[7] /*i*/) /*List::[]*/;
+    variable[9] = CALL_parser_nodes___ASignature___n_closure_decls(variable[9])(variable[9]) /*ASignature::n_closure_decls*/;
+    variable[9] = CALL_abstract_collection___Map_____bra(variable[9])(variable[9],  variable[7] /*i*/) /*List::[]*/;
     variable[8] = variable[9];
-    variable[10] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-    variable[11] = ((syntax_base___PClosureDecl___variable_t)CALL( variable[8] /*wd*/,COLOR_syntax_base___PClosureDecl___variable))( variable[8] /*wd*/) /*PClosureDecl::variable*/;
-    variable[10] = ((compiling_methods___CFunctionContext___register_closurevariable_t)CALL(variable[10],COLOR_compiling_methods___CFunctionContext___register_closurevariable))(variable[10], variable[11]) /*CFunctionContext::register_closurevariable*/;
+    variable[10] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    variable[11] = CALL_syntax_base___PClosureDecl___variable( variable[8] /*wd*/)( variable[8] /*wd*/) /*PClosureDecl::variable*/;
+    variable[10] = CALL_compiling_methods___CFunctionContext___register_closurevariable(variable[10])(variable[10], variable[11]) /*CFunctionContext::register_closurevariable*/;
     variable[9] = variable[10];
-    variable[10] = ((syntax_base___PClosureDecl___variable_t)CALL( variable[8] /*wd*/,COLOR_syntax_base___PClosureDecl___variable))( variable[8] /*wd*/) /*PClosureDecl::variable*/;
-    variable[11] = NEW_String_string___String___init(); /*new String*/
+    variable[10] = CALL_syntax_base___PClosureDecl___variable( variable[8] /*wd*/)( variable[8] /*wd*/) /*PClosureDecl::variable*/;
+    variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[13]) /*String::append*/;
-    variable[14] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[14] = ((compiling_methods___NitMethodContext___method_t)CALL(variable[14],COLOR_compiling_methods___NitMethodContext___method))(variable[14]) /*NitMethodContext::method*/;
-    variable[14] = ((compiling_methods___MMMethod___closure_cname_t)CALL(variable[14],COLOR_compiling_methods___MMMethod___closure_cname))(variable[14],  variable[7] /*i*/) /*MMMethod::closure_cname*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
+    variable[14] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[14] = CALL_compiling_methods___NitMethodContext___method(variable[14])(variable[14]) /*NitMethodContext::method*/;
+    variable[14] = CALL_compiling_methods___MMMethod___closure_cname(variable[14])(variable[14],  variable[7] /*i*/) /*MMMethod::closure_cname*/;
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" *"), TAG_Int(2)); /*new String*/
     variable[17] = variable[16];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[17]) /*String::append*/;
-    ((compiling_methods___ClosureVariable___ctypename__eq_t)CALL(variable[10],COLOR_compiling_methods___ClosureVariable___ctypename__eq))(variable[10], variable[11]) /*ClosureVariable::ctypename=*/;
-    variable[10] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[17]) /*AbstractArray::add*/;
+    variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+    CALL_compiling_methods___ClosureVariable___ctypename__eq(variable[10])(variable[10], variable[11]) /*ClosureVariable::ctypename=*/;
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
-    variable[13] = ((static_type___MMSignature___arity_t)CALL( variable[2] /*orig_sig*/,COLOR_static_type___MMSignature___arity))( variable[2] /*orig_sig*/) /*MMSignature::arity*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
+    variable[13] = CALL_static_type___MMSignature___arity( variable[2] /*orig_sig*/)( variable[2] /*orig_sig*/) /*MMSignature::arity*/;
     variable[13] = TAG_Int(UNTAG_Int(variable[13])+UNTAG_Int( variable[7] /*i*/));
     variable[14] =  variable[3] /*params*/;
     variable[15] = variable[13];
@@ -2601,13 +2629,14 @@ void compiling_methods___ASignature___compile_parameters(val_t  self, val_t  par
     return_label73: while(false);
     variable[13] = variable[16];
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[9] /*cname*/, variable[10]) /*CompilerVisitor::add_assignment*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[9] /*cname*/, variable[10]) /*CompilerVisitor::add_assignment*/;
     continue_72: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
   break_72: while(0);
   return_label68: while(false);
@@ -2624,14 +2653,14 @@ val_t compiling_methods___AConcreteMethPropdef___do_compile_inside(val_t  self,
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
   variable[5] = variable[6];
   variable[6] = NEW_NitMethodContext_compiling_methods___NitMethodContext___init( variable[2] /*method*/); /*new NitMethodContext*/
-  ((compiling_methods___CompilerVisitor___nmc__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc__eq))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::nmc=*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CompilerVisitor___nmc__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::nmc=*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[8] = variable[0];
-  variable[8] = ((typing___AMethPropdef___self_var_t)CALL(variable[8],COLOR_syntax_base___AMethPropdef___self_var))(variable[8]) /*AMethPropdef::self_var*/;
-  variable[7] = ((compiling_methods___CFunctionContext___register_variable_t)CALL(variable[7],COLOR_compiling_methods___CFunctionContext___register_variable))(variable[7], variable[8]) /*CFunctionContext::register_variable*/;
+  variable[8] = CALL_syntax_base___AMethPropdef___self_var(variable[8])(variable[8]) /*AMethPropdef::self_var*/;
+  variable[7] = CALL_compiling_methods___CFunctionContext___register_variable(variable[7])(variable[7], variable[8]) /*CFunctionContext::register_variable*/;
   variable[6] = variable[7];
   variable[7] =  variable[3] /*params*/;
   variable[8] =  TAG_Int(0);
@@ -2651,128 +2680,133 @@ val_t compiling_methods___AConcreteMethPropdef___do_compile_inside(val_t  self,
   goto return_label75;
   return_label75: while(false);
   variable[7] = variable[9];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[6] /*selfcname*/, variable[7]) /*CompilerVisitor::add_assignment*/;
-  ((array___AbstractArray___shift_t)CALL( variable[3] /*params*/,COLOR_abstract_collection___IndexedCollection___shift))( variable[3] /*params*/) /*AbstractArray::shift*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*selfcname*/, variable[7]) /*CompilerVisitor::add_assignment*/;
+  CALL_abstract_collection___IndexedCollection___shift( variable[3] /*params*/)( variable[3] /*params*/) /*AbstractArray::shift*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
   variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[ParamVariable]*/
   variable[9] = variable[0];
-  variable[9] = ((typing___AMethPropdef___self_var_t)CALL(variable[9],COLOR_syntax_base___AMethPropdef___self_var))(variable[9]) /*AMethPropdef::self_var*/;
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
-  ((compiling_methods___NitMethodContext___method_params__eq_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___method_params__eq))(variable[7], variable[8]) /*NitMethodContext::method_params=*/;
+  variable[9] = CALL_syntax_base___AMethPropdef___self_var(variable[9])(variable[9]) /*AMethPropdef::self_var*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+  CALL_compiling_methods___NitMethodContext___method_params__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::method_params=*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___AMethPropdef___n_signature_t)CALL(variable[7],COLOR_parser_nodes___AMethPropdef___n_signature))(variable[7]) /*AMethPropdef::n_signature*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = CALL_parser_nodes___AMethPropdef___n_signature(variable[7])(variable[7]) /*AMethPropdef::n_signature*/;
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[8] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*method*/) /*MMLocalProperty::global*/;
-    variable[8] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[8]) /*MMGlobalProperty::intro*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::global*/;
+    variable[8] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[8])(variable[8]) /*MMGlobalProperty::intro*/;
     variable[7] = variable[8];
-    variable[9] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*method*/) /*MMLocalProperty::signature*/;
-    variable[9] = ((static_type___MMSignature___recv_t)CALL(variable[9],COLOR_static_type___MMSignature___recv))(variable[9]) /*MMSignature::recv*/;
-    variable[9] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[7] /*orig_meth*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[7] /*orig_meth*/, variable[9]) /*MMLocalProperty::signature_for*/;
+    variable[9] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+    variable[9] = CALL_static_type___MMSignature___recv(variable[9])(variable[9]) /*MMSignature::recv*/;
+    variable[9] = CALL_static_type___MMLocalProperty___signature_for( variable[7] /*orig_meth*/)( variable[7] /*orig_meth*/, variable[9]) /*MMLocalProperty::signature_for*/;
     variable[8] = variable[9];
     variable[9] = variable[0];
-    variable[9] = ((parser_nodes___AMethPropdef___n_signature_t)CALL(variable[9],COLOR_parser_nodes___AMethPropdef___n_signature))(variable[9]) /*AMethPropdef::n_signature*/;
-    ((compiling_methods___PSignature___compile_parameters_t)CALL(variable[9],COLOR_compiling_methods___PSignature___compile_parameters))(variable[9],  variable[1] /*v*/,  variable[8] /*orig_sig*/,  variable[3] /*params*/) /*PSignature::compile_parameters*/;
+    variable[9] = CALL_parser_nodes___AMethPropdef___n_signature(variable[9])(variable[9]) /*AMethPropdef::n_signature*/;
+    CALL_compiling_methods___PSignature___compile_parameters(variable[9])(variable[9],  variable[1] /*v*/,  variable[8] /*orig_sig*/,  variable[3] /*params*/) /*PSignature::compile_parameters*/;
   }
   variable[7] =  NIT_NULL /*null*/;
   variable[8] = variable[0];
   variable[8] = TAG_Bool((variable[8]==NIT_NULL) || VAL_ISA(variable[8], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("VAL2OBJ("), TAG_Int(8)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
     variable[11] =  variable[6] /*selfcname*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")->vft["), TAG_Int(7)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-    variable[14] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
-    variable[14] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[14],COLOR_abstractmetamodel___MMLocalClass___global))(variable[14]) /*MMLocalClass::global*/;
-    variable[14] = ((compiling_base___MMGlobalClass___init_table_pos_id_t)CALL(variable[14],COLOR_compiling_base___MMGlobalClass___init_table_pos_id))(variable[14]) /*MMGlobalClass::init_table_pos_id*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[14] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+    variable[14] = CALL_abstractmetamodel___MMLocalClass___global(variable[14])(variable[14]) /*MMLocalClass::global*/;
+    variable[14] = CALL_compiling_base___MMGlobalClass___init_table_pos_id(variable[14])(variable[14]) /*MMGlobalClass::init_table_pos_id*/;
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_String_string___String___with_native(BOX_NativeString("].i"), TAG_Int(3)); /*new String*/
     variable[17] = variable[16];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
     variable[7] = variable[8] /*itpos=*/;
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("if (init_table["), TAG_Int(15)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
     variable[11] =  variable[7] /*itpos*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("]) return;"), TAG_Int(10)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   }
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("return_label"), TAG_Int(12)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-  variable[12] = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+  variable[12] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[13] = variable[12];
-  variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+  variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-  ((compiling_methods___NitMethodContext___return_label__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___return_label__eq))(variable[8], variable[9]) /*NitMethodContext::return_label=*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[9] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[9] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[9],COLOR_compiling_methods___CFunctionContext___get_var))(variable[9]) /*CFunctionContext::get_var*/;
-  ((compiling_methods___NitMethodContext___return_value__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___return_value__eq))(variable[8], variable[9]) /*NitMethodContext::return_value=*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_compiling_methods___NitMethodContext___return_label__eq(variable[8])(variable[8], variable[9]) /*NitMethodContext::return_label=*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[9] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[9] = CALL_compiling_methods___CFunctionContext___get_var(variable[9])(variable[9]) /*CFunctionContext::get_var*/;
+  CALL_compiling_methods___NitMethodContext___return_value__eq(variable[8])(variable[8], variable[9]) /*NitMethodContext::return_value=*/;
   variable[8] = variable[0];
   variable[8] = TAG_Bool((variable[8]==NIT_NULL) || VAL_ISA(variable[8], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    ((compiling_methods___CompilerVisitor___invoke_super_init_calls_after_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___invoke_super_init_calls_after))( variable[1] /*v*/,  NIT_NULL /*null*/) /*CompilerVisitor::invoke_super_init_calls_after*/;
+    CALL_compiling_methods___CompilerVisitor___invoke_super_init_calls_after( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/) /*CompilerVisitor::invoke_super_init_calls_after*/;
   }
   variable[8] = variable[0];
-  variable[8] = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL(variable[8],COLOR_parser_nodes___AConcreteMethPropdef___n_block))(variable[8]) /*AConcreteMethPropdef::n_block*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = CALL_parser_nodes___AConcreteMethPropdef___n_block(variable[8])(variable[8]) /*AConcreteMethPropdef::n_block*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    variable[8] = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL(variable[8],COLOR_parser_nodes___AConcreteMethPropdef___n_block))(variable[8]) /*AConcreteMethPropdef::n_block*/;
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::compile_stmt*/;
+    variable[8] = CALL_parser_nodes___AConcreteMethPropdef___n_block(variable[8])(variable[8]) /*AConcreteMethPropdef::n_block*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::compile_stmt*/;
   }
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-  variable[11] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[11] = ((compiling_methods___NitMethodContext___return_label_t)CALL(variable[11],COLOR_compiling_methods___NitMethodContext___return_label))(variable[11]) /*NitMethodContext::return_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[11] = CALL_compiling_methods___NitMethodContext___return_label(variable[11])(variable[11]) /*NitMethodContext::return_label*/;
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(": while(false);"), TAG_Int(15)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   variable[8] = variable[0];
   variable[8] = TAG_Bool((variable[8]==NIT_NULL) || VAL_ISA(variable[8], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("init_table["), TAG_Int(11)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
     variable[11] =  variable[7] /*itpos*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("] = 1;"), TAG_Int(6)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   }
   variable[8] =  NIT_NULL /*null*/;
-  variable[9] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*method*/) /*MMLocalProperty::signature*/;
-  variable[9] = ((static_type___MMSignature___return_type_t)CALL(variable[9],COLOR_static_type___MMSignature___return_type))(variable[9]) /*MMSignature::return_type*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  variable[9] = CALL_static_type___MMSignature___return_type(variable[9])(variable[9]) /*MMSignature::return_type*/;
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[9] = ((compiling_methods___NitMethodContext___return_value_t)CALL(variable[9],COLOR_compiling_methods___NitMethodContext___return_value))(variable[9]) /*NitMethodContext::return_value*/;
+    variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[9] = CALL_compiling_methods___NitMethodContext___return_value(variable[9])(variable[9]) /*NitMethodContext::return_value*/;
     variable[8] = variable[9] /*ret=*/;
   }
-  ((compiling_methods___CompilerVisitor___nmc__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc__eq))( variable[1] /*v*/,  variable[5] /*old_nmc*/) /*CompilerVisitor::nmc=*/;
+  CALL_compiling_methods___CompilerVisitor___nmc__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*old_nmc*/) /*CompilerVisitor::nmc=*/;
   variable[4] =  variable[8] /*ret*/;
   goto return_label74;
   return_label74: while(false);
@@ -2790,15 +2824,15 @@ val_t compiling_methods___ADeferredMethPropdef___do_compile_inside(val_t  self,
   variable[2] =  param1;
   variable[3] =  param2;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Deferred method called\");"), TAG_Int(42)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
   variable[5] = variable[0];
-  variable[5] = ((compiling_methods___CompilerVisitor___printf_locate_error_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___printf_locate_error))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::printf_locate_error*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::printf_locate_error*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("nit_exit(1);"), TAG_Int(12)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
-  variable[5] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*method*/) /*MMLocalProperty::signature*/;
-  variable[5] = ((static_type___MMSignature___return_type_t)CALL(variable[5],COLOR_static_type___MMSignature___return_type))(variable[5]) /*MMSignature::return_type*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  variable[5] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("NIT_NULL"), TAG_Int(8)); /*new String*/
     variable[4] = variable[5];
@@ -2821,94 +2855,96 @@ val_t compiling_methods___AExternMethPropdef___do_compile_inside(val_t  self, va
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-  variable[9] = ((abstractmetamodel___MMLocalProperty___module_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___module))( variable[2] /*method*/) /*MMLocalProperty::module*/;
-  variable[9] = ((abstractmetamodel___MMModule___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMModule___name))(variable[9]) /*MMModule::name*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+  variable[9] = CALL_abstractmetamodel___MMLocalProperty___module( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::module*/;
+  variable[9] = CALL_abstractmetamodel___MMModule___name(variable[9])(variable[9]) /*MMModule::name*/;
   variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-  variable[13] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
-  variable[13] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___name))(variable[13]) /*MMLocalClass::name*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+  variable[13] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+  variable[13] = CALL_abstractmetamodel___MMLocalClass___name(variable[13])(variable[13]) /*MMLocalClass::name*/;
   variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
-  variable[17] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
-  variable[17] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[17],COLOR_abstractmetamodel___MMLocalClass___name))(variable[17]) /*MMLocalClass::name*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
+  variable[17] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+  variable[17] = CALL_abstractmetamodel___MMLocalClass___name(variable[17])(variable[17]) /*MMLocalClass::name*/;
   variable[18] = variable[17];
-  variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[18]) /*String::append*/;
+  variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[18]) /*AbstractArray::add*/;
   variable[19] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
   variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[20]) /*String::append*/;
-  variable[21] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[2] /*method*/) /*MMLocalProperty::name*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[20]) /*AbstractArray::add*/;
+  variable[21] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::name*/;
   variable[22] = variable[21];
-  variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[22]) /*String::append*/;
+  variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[22]) /*AbstractArray::add*/;
   variable[23] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
   variable[24] = variable[23];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[24]) /*String::append*/;
-  variable[25] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*method*/) /*MMLocalProperty::signature*/;
-  variable[25] = ((static_type___MMSignature___arity_t)CALL(variable[25],COLOR_static_type___MMSignature___arity))(variable[25]) /*MMSignature::arity*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[24]) /*AbstractArray::add*/;
+  variable[25] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  variable[25] = CALL_static_type___MMSignature___arity(variable[25])(variable[25]) /*MMSignature::arity*/;
   variable[26] = variable[25];
-  variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[26]) /*String::append*/;
+  variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[26]) /*AbstractArray::add*/;
   variable[27] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[28] = variable[27];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[28]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[28]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AExternMethPropdef___n_extern_t)CALL(variable[6],COLOR_parser_nodes___AExternMethPropdef___n_extern))(variable[6]) /*AExternMethPropdef::n_extern*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = CALL_parser_nodes___AExternMethPropdef___n_extern(variable[6])(variable[6]) /*AExternMethPropdef::n_extern*/;
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AExternMethPropdef___n_extern_t)CALL(variable[6],COLOR_parser_nodes___AExternMethPropdef___n_extern))(variable[6]) /*AExternMethPropdef::n_extern*/;
-    variable[6] = ((lexer___Token___text_t)CALL(variable[6],COLOR_lexer___Token___text))(variable[6]) /*Token::text*/;
+    variable[6] = CALL_parser_nodes___AExternMethPropdef___n_extern(variable[6])(variable[6]) /*AExternMethPropdef::n_extern*/;
+    variable[6] = CALL_lexer___Token___text(variable[6])(variable[6]) /*Token::text*/;
     variable[5] = variable[6] /*ename=*/;
-    variable[6] = ((array___AbstractArray___length_t)CALL( variable[5] /*ename*/,COLOR_abstract_collection___Collection___length))( variable[5] /*ename*/) /*AbstractArray::length*/;
+    variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*ename*/)( variable[5] /*ename*/) /*AbstractArray::length*/;
     variable[6] = TAG_Int(UNTAG_Int(variable[6])-UNTAG_Int( TAG_Int(2)));
-    variable[6] = ((string___String___substring_t)CALL( variable[5] /*ename*/,COLOR_string___String___substring))( variable[5] /*ename*/,  TAG_Int(1), variable[6]) /*String::substring*/;
+    variable[6] = CALL_string___String___substring( variable[5] /*ename*/)( variable[5] /*ename*/,  TAG_Int(1), variable[6]) /*String::substring*/;
     variable[5] = variable[6] /*ename=*/;
   }
-  variable[7] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  variable[7] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
   variable[6] = variable[7];
-  variable[7] = ((array___AbstractArray___length_t)CALL( variable[3] /*params*/,COLOR_abstract_collection___Collection___length))( variable[3] /*params*/) /*AbstractArray::length*/;
-  variable[8] = ((static_type___MMSignature___arity_t)CALL( variable[6] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[6] /*sig*/) /*MMSignature::arity*/;
+  variable[7] = CALL_abstract_collection___Collection___length( variable[3] /*params*/)( variable[3] /*params*/) /*AbstractArray::length*/;
+  variable[8] = CALL_static_type___MMSignature___arity( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::arity*/;
   variable[8] = TAG_Int(UNTAG_Int(variable[8])+UNTAG_Int( TAG_Int(1)));
   variable[7] = TAG_Bool((variable[7])!=(variable[8]));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("par:"), TAG_Int(4)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-    variable[11] = ((array___AbstractArray___length_t)CALL( variable[3] /*params*/,COLOR_abstract_collection___Collection___length))( variable[3] /*params*/) /*AbstractArray::length*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+    variable[11] = CALL_abstract_collection___Collection___length( variable[3] /*params*/)( variable[3] /*params*/) /*AbstractArray::length*/;
     variable[12] = variable[11];
-    variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+    variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" sig:"), TAG_Int(5)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-    variable[15] = ((static_type___MMSignature___arity_t)CALL( variable[6] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[6] /*sig*/) /*MMSignature::arity*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+    variable[15] = CALL_static_type___MMSignature___arity( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::arity*/;
     variable[16] = variable[15];
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
-    ((parser_prod___PNode___printl_t)CALL(variable[7],COLOR_parser_prod___PNode___printl))(variable[7], variable[8]) /*PNode::printl*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_parser_prod___PNode___printl(variable[7])(variable[7], variable[8]) /*PNode::printl*/;
   }
   variable[8] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[7] = variable[8];
-  variable[8] = ((static_type___MMSignature___recv_t)CALL( variable[6] /*sig*/,COLOR_static_type___MMSignature___recv))( variable[6] /*sig*/) /*MMSignature::recv*/;
+  variable[8] = CALL_static_type___MMSignature___recv( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::recv*/;
   variable[9] =  variable[3] /*params*/;
   variable[10] =  TAG_Int(0);
   variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -2927,18 +2963,18 @@ val_t compiling_methods___AExternMethPropdef___do_compile_inside(val_t  self, va
   goto return_label78;
   return_label78: while(false);
   variable[9] = variable[11];
-  variable[8] = ((compiling_base___MMType___unboxtype_t)CALL(variable[8],COLOR_compiling_base___MMType___unboxtype))(variable[8], variable[9]) /*MMType::unboxtype*/;
-  ((array___AbstractArray___add_t)CALL( variable[7] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*args*/, variable[8]) /*AbstractArray::add*/;
-  variable[8] = ((static_type___MMSignature___arity_t)CALL( variable[6] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[6] /*sig*/) /*MMSignature::arity*/;
+  variable[8] = CALL_compiling_base___MMType___unboxtype(variable[8])(variable[8], variable[9]) /*MMType::unboxtype*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[7] /*args*/)( variable[7] /*args*/, variable[8]) /*AbstractArray::add*/;
+  variable[8] = CALL_static_type___MMSignature___arity( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::arity*/;
   variable[9] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[8]); /*new Range[Int]*/
   variable[8] = variable[9];
-  variable[8] = ((range___Range___iterator_t)CALL(variable[8],COLOR_abstract_collection___Collection___iterator))(variable[8]) /*Range::iterator*/;
+  variable[8] = CALL_abstract_collection___Collection___iterator(variable[8])(variable[8]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[9] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*Iterator::is_ok*/;
+    variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[9])) break; /*for*/
-    variable[9] = ((abstract_collection___Iterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*Iterator::item*/;
+    variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*Iterator::item*/;
     variable[10] = variable[9];
-    variable[11] = ((static_type___MMSignature_____bra_t)CALL( variable[6] /*sig*/,COLOR_static_type___MMSignature_____bra))( variable[6] /*sig*/,  variable[10] /*i*/) /*MMSignature::[]*/;
+    variable[11] = CALL_static_type___MMSignature_____bra( variable[6] /*sig*/)( variable[6] /*sig*/,  variable[10] /*i*/) /*MMSignature::[]*/;
     variable[12] = TAG_Int(UNTAG_Int( variable[10] /*i*/)+UNTAG_Int( TAG_Int(1)));
     variable[13] =  variable[3] /*params*/;
     variable[14] = variable[12];
@@ -2958,47 +2994,49 @@ val_t compiling_methods___AExternMethPropdef___do_compile_inside(val_t  self, va
     goto return_label80;
     return_label80: while(false);
     variable[12] = variable[15];
-    variable[11] = ((compiling_base___MMType___unboxtype_t)CALL(variable[11],COLOR_compiling_base___MMType___unboxtype))(variable[11], variable[12]) /*MMType::unboxtype*/;
-    ((array___AbstractArray___add_t)CALL( variable[7] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*args*/, variable[11]) /*AbstractArray::add*/;
+    variable[11] = CALL_compiling_base___MMType___unboxtype(variable[11])(variable[11], variable[12]) /*MMType::unboxtype*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[7] /*args*/)( variable[7] /*args*/, variable[11]) /*AbstractArray::add*/;
     continue_79: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*Iterator::next*/;
   }
   break_79: while(0);
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[5] /*ename*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[15] = ((string___Collection___join_t)CALL( variable[7] /*args*/,COLOR_string___Collection___join))( variable[7] /*args*/, variable[15]) /*Collection::join*/;
+  variable[15] = CALL_string___Collection___join( variable[7] /*args*/)( variable[7] /*args*/, variable[15]) /*Collection::join*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
-  variable[9] = ((static_type___MMSignature___return_type_t)CALL( variable[6] /*sig*/,COLOR_static_type___MMSignature___return_type))( variable[6] /*sig*/) /*MMSignature::return_type*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = CALL_static_type___MMSignature___return_type( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::return_type*/;
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((static_type___MMSignature___return_type_t)CALL( variable[6] /*sig*/,COLOR_static_type___MMSignature___return_type))( variable[6] /*sig*/) /*MMSignature::return_type*/;
-    variable[9] = ((compiling_base___MMType___boxtype_t)CALL(variable[9],COLOR_compiling_base___MMType___boxtype))(variable[9],  variable[8] /*s*/) /*MMType::boxtype*/;
+    variable[9] = CALL_static_type___MMSignature___return_type( variable[6] /*sig*/)( variable[6] /*sig*/) /*MMSignature::return_type*/;
+    variable[9] = CALL_compiling_base___MMType___boxtype(variable[9])(variable[9],  variable[8] /*s*/) /*MMType::boxtype*/;
     variable[4] = variable[9];
     goto return_label77;
   } else { /*if*/
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[8] /*s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_instr*/;
     variable[4] =  NIT_NULL /*null*/;
     goto return_label77;
   }
@@ -3094,34 +3132,34 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
-  variable[6] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___name))(variable[6]) /*MMLocalClass::name*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::local_class*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___name(variable[6])(variable[6]) /*MMLocalClass::name*/;
   variable[5] = variable[6];
-  variable[7] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[2] /*method*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[2] /*method*/) /*MMLocalProperty::name*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::name*/;
   variable[6] = variable[7];
   variable[7] =  NIT_NULL /*null*/;
   if (once_bool_82) variable[8] = once_value_82;
   else {
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
-    variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+    variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
     once_value_82 = variable[8];
     once_bool_82 = true;
   }
-  variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
+  variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     if (once_bool_83) variable[8] = once_value_83;
     else {
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
-      variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+      variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
       once_value_83 = variable[8];
       once_bool_83 = true;
     }
-    variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+    variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[3] /*p*/;
       variable[12] =  TAG_Int(0);
       variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3141,25 +3179,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
       return_label84: while(false);
       variable[11] = variable[13];
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
       variable[7] = variable[8] /*s=*/;
     } else { /*if*/
       if (once_bool_85) variable[8] = once_value_85;
       else {
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
-        variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+        variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
         once_value_85 = variable[8];
         once_bool_85 = true;
       }
-      variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+      variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
       if (UNTAG_Bool(variable[8])) { /*if*/
-        variable[8] = NEW_String_string___String___init(); /*new String*/
+        variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(-UNTAG_Int("), TAG_Int(19)); /*new String*/
         variable[10] = variable[9];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
         variable[11] =  variable[3] /*p*/;
         variable[12] =  TAG_Int(0);
         variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3179,25 +3218,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
         return_label86: while(false);
         variable[11] = variable[13];
         variable[12] = variable[11];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
         variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
         variable[14] = variable[13];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+        variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
         variable[7] = variable[8] /*s=*/;
       } else { /*if*/
         if (once_bool_87) variable[8] = once_value_87;
         else {
           variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
-          variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+          variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
           once_value_87 = variable[8];
           once_bool_87 = true;
         }
-        variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+        variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
         if (UNTAG_Bool(variable[8])) { /*if*/
-          variable[8] = NEW_String_string___String___init(); /*new String*/
+          variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[9] = NEW_String_string___String___with_native(BOX_NativeString("printf(\"%ld\\n\", UNTAG_Int("), TAG_Int(26)); /*new String*/
           variable[10] = variable[9];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
           variable[11] =  variable[3] /*p*/;
           variable[12] =  TAG_Int(0);
           variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3217,25 +3257,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
           return_label88: while(false);
           variable[11] = variable[13];
           variable[12] = variable[11];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
           variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
           variable[14] = variable[13];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-          ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+          variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+          CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
         } else { /*if*/
           if (once_bool_89) variable[8] = once_value_89;
           else {
             variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
-            variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+            variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
             once_value_89 = variable[8];
             once_bool_89 = true;
           }
-          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
           if (UNTAG_Bool(variable[8])) { /*if*/
-            variable[8] = NEW_String_string___String___init(); /*new String*/
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
             variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Int("), TAG_Int(19)); /*new String*/
             variable[10] = variable[9];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
             variable[11] =  variable[3] /*p*/;
             variable[12] =  TAG_Int(0);
             variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3255,25 +3296,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
             return_label90: while(false);
             variable[11] = variable[13];
             variable[12] = variable[11];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
             variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
             variable[14] = variable[13];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
             variable[7] = variable[8] /*s=*/;
           } else { /*if*/
             if (once_bool_91) variable[8] = once_value_91;
             else {
               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)); /*new String*/
-              variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+              variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
               once_value_91 = variable[8];
               once_bool_91 = true;
             }
-            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
             if (UNTAG_Bool(variable[8])) { /*if*/
-              variable[8] = NEW_String_string___String___init(); /*new String*/
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
               variable[10] = variable[9];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
               variable[11] =  variable[3] /*p*/;
               variable[12] =  TAG_Int(0);
               variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3293,25 +3335,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
               return_label92: while(false);
               variable[11] = variable[13];
               variable[12] = variable[11];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
               variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)); /*new String*/
               variable[14] = variable[13];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
               variable[7] = variable[8] /*s=*/;
             } else { /*if*/
               if (once_bool_93) variable[8] = once_value_93;
               else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_93 = variable[8];
                once_bool_93 = true;
               }
-              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
               if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3331,25 +3374,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label94: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
               } else { /*if*/
                if (once_bool_95) variable[8] = once_value_95;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_f"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_95 = variable[8];
                once_bool_95 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float((float)UNTAG_Int("), TAG_Int(27)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3369,25 +3413,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label96: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_97) variable[8] = once_value_97;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_97 = variable[8];
                once_bool_97 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3407,10 +3452,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label98: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3430,25 +3475,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label99: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_100) variable[8] = once_value_100;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_100 = variable[8];
                once_bool_100 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3468,10 +3514,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label101: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3491,25 +3537,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label102: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_103) variable[8] = once_value_103;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_103 = variable[8];
                once_bool_103 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3529,10 +3576,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label104: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")*UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3552,25 +3599,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label105: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_106) variable[8] = once_value_106;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_106 = variable[8];
                once_bool_106 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3590,10 +3638,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label107: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")/UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3613,25 +3661,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label108: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_109) variable[8] = once_value_109;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_109 = variable[8];
                once_bool_109 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3651,10 +3700,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label110: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")%UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3674,25 +3723,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label111: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_112) variable[8] = once_value_112;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_112 = variable[8];
                once_bool_112 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3712,10 +3762,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label113: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3735,25 +3785,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label114: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_115) variable[8] = once_value_115;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_115 = variable[8];
                once_bool_115 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3773,10 +3824,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label116: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3796,25 +3847,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label117: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_118) variable[8] = once_value_118;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_118 = variable[8];
                once_bool_118 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3834,10 +3886,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label119: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNTAG_Int("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3857,25 +3909,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label120: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_121) variable[8] = once_value_121;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_121 = variable[8];
                once_bool_121 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Int("), TAG_Int(19)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3895,10 +3948,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label122: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNTAG_Int("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3918,25 +3971,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label123: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_124) variable[8] = once_value_124;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("lshift"), TAG_Int(6)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_124 = variable[8];
                once_bool_124 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3956,10 +4010,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label125: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<<UNTAG_Int("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -3979,25 +4033,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label126: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_127) variable[8] = once_value_127;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("rshift"), TAG_Int(6)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_127 = variable[8];
                once_bool_127 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Int("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4017,10 +4072,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label128: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>>UNTAG_Int("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4040,25 +4095,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label129: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_130) variable[8] = once_value_130;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_130 = variable[8];
                once_bool_130 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4078,10 +4134,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label131: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4101,25 +4157,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label132: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_133) variable[8] = once_value_133;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_133 = variable[8];
                once_bool_133 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4139,10 +4196,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label134: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4162,10 +4219,11 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label135: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
                }
@@ -4191,25 +4249,25 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
     if (once_bool_136) variable[8] = once_value_136;
     else {
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
-      variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+      variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
       once_value_136 = variable[8];
       once_bool_136 = true;
     }
-    variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
+    variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
     if (UNTAG_Bool(variable[8])) { /*if*/
       if (once_bool_137) variable[8] = once_value_137;
       else {
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
-        variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+        variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
         once_value_137 = variable[8];
         once_bool_137 = true;
       }
-      variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+      variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
       if (UNTAG_Bool(variable[8])) { /*if*/
-        variable[8] = NEW_String_string___String___init(); /*new String*/
+        variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((bigint)UNBOX_Float("), TAG_Int(28)); /*new String*/
         variable[10] = variable[9];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
         variable[11] =  variable[3] /*p*/;
         variable[12] =  TAG_Int(0);
         variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4229,25 +4287,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
         return_label138: while(false);
         variable[11] = variable[13];
         variable[12] = variable[11];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
         variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
         variable[14] = variable[13];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+        variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
         variable[7] = variable[8] /*s=*/;
       } else { /*if*/
         if (once_bool_139) variable[8] = once_value_139;
         else {
           variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
-          variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+          variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
           once_value_139 = variable[8];
           once_bool_139 = true;
         }
-        variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+        variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
         if (UNTAG_Bool(variable[8])) { /*if*/
-          variable[8] = NEW_String_string___String___init(); /*new String*/
+          variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(-UNBOX_Float("), TAG_Int(23)); /*new String*/
           variable[10] = variable[9];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
           variable[11] =  variable[3] /*p*/;
           variable[12] =  TAG_Int(0);
           variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4267,25 +4326,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
           return_label140: while(false);
           variable[11] = variable[13];
           variable[12] = variable[11];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
           variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
           variable[14] = variable[13];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+          variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
           variable[7] = variable[8] /*s=*/;
         } else { /*if*/
           if (once_bool_141) variable[8] = once_value_141;
           else {
             variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
-            variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+            variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
             once_value_141 = variable[8];
             once_bool_141 = true;
           }
-          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
           if (UNTAG_Bool(variable[8])) { /*if*/
-            variable[8] = NEW_String_string___String___init(); /*new String*/
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
             variable[9] = NEW_String_string___String___with_native(BOX_NativeString("printf(\"%f\\n\", UNBOX_Float("), TAG_Int(27)); /*new String*/
             variable[10] = variable[9];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
             variable[11] =  variable[3] /*p*/;
             variable[12] =  TAG_Int(0);
             variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4305,25 +4365,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
             return_label142: while(false);
             variable[11] = variable[13];
             variable[12] = variable[11];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
             variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
             variable[14] = variable[13];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-            ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+            CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
           } else { /*if*/
             if (once_bool_143) variable[8] = once_value_143;
             else {
               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
-              variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+              variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
               once_value_143 = variable[8];
               once_bool_143 = true;
             }
-            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
             if (UNTAG_Bool(variable[8])) { /*if*/
-              variable[8] = NEW_String_string___String___init(); /*new String*/
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((bigint)UNBOX_Float("), TAG_Int(28)); /*new String*/
               variable[10] = variable[9];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
               variable[11] =  variable[3] /*p*/;
               variable[12] =  TAG_Int(0);
               variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4343,25 +4404,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
               return_label144: while(false);
               variable[11] = variable[13];
               variable[12] = variable[11];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
               variable[14] = variable[13];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
               variable[7] = variable[8] /*s=*/;
             } else { /*if*/
               if (once_bool_145) variable[8] = once_value_145;
               else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_145 = variable[8];
                once_bool_145 = true;
               }
-              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
               if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4381,10 +4443,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label146: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNBOX_Float("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4404,25 +4466,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label147: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
               } else { /*if*/
                if (once_bool_148) variable[8] = once_value_148;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_148 = variable[8];
                once_bool_148 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4442,10 +4505,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label149: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-UNBOX_Float("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4465,25 +4528,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label150: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_151) variable[8] = once_value_151;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_151 = variable[8];
                once_bool_151 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4503,10 +4567,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label152: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")*UNBOX_Float("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4526,25 +4590,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label153: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_154) variable[8] = once_value_154;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_154 = variable[8];
                once_bool_154 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float(UNBOX_Float("), TAG_Int(22)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4564,10 +4629,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label155: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")/UNBOX_Float("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4587,25 +4652,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label156: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_157) variable[8] = once_value_157;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_157 = variable[8];
                once_bool_157 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4625,10 +4691,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label158: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<UNBOX_Float("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4648,25 +4714,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label159: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_160) variable[8] = once_value_160;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_160 = variable[8];
                once_bool_160 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4686,10 +4753,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label161: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>UNBOX_Float("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4709,25 +4776,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label162: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_163) variable[8] = once_value_163;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_163 = variable[8];
                once_bool_163 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4747,10 +4815,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label164: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNBOX_Float("), TAG_Int(15)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4770,25 +4838,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label165: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_166) variable[8] = once_value_166;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_166 = variable[8];
                once_bool_166 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNBOX_Float("), TAG_Int(21)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4808,10 +4877,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label167: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNBOX_Float("), TAG_Int(15)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4831,10 +4900,11 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label168: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
                }
@@ -4852,25 +4922,25 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
       if (once_bool_169) variable[8] = once_value_169;
       else {
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
-        variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+        variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
         once_value_169 = variable[8];
         once_bool_169 = true;
       }
-      variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
+      variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
       if (UNTAG_Bool(variable[8])) { /*if*/
         if (once_bool_170) variable[8] = once_value_170;
         else {
           variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
-          variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+          variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
           once_value_170 = variable[8];
           once_bool_170 = true;
         }
-        variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+        variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
         if (UNTAG_Bool(variable[8])) { /*if*/
-          variable[8] = NEW_String_string___String___init(); /*new String*/
+          variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Char("), TAG_Int(19)); /*new String*/
           variable[10] = variable[9];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
           variable[11] =  variable[3] /*p*/;
           variable[12] =  TAG_Int(0);
           variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4890,25 +4960,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
           return_label171: while(false);
           variable[11] = variable[13];
           variable[12] = variable[11];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
           variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
           variable[14] = variable[13];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+          variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
           variable[7] = variable[8] /*s=*/;
         } else { /*if*/
           if (once_bool_172) variable[8] = once_value_172;
           else {
             variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
-            variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+            variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
             once_value_172 = variable[8];
             once_bool_172 = true;
           }
-          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
           if (UNTAG_Bool(variable[8])) { /*if*/
-            variable[8] = NEW_String_string___String___init(); /*new String*/
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
             variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(-UNTAG_Char("), TAG_Int(21)); /*new String*/
             variable[10] = variable[9];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
             variable[11] =  variable[3] /*p*/;
             variable[12] =  TAG_Int(0);
             variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4928,25 +4999,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
             return_label173: while(false);
             variable[11] = variable[13];
             variable[12] = variable[11];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
             variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
             variable[14] = variable[13];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
             variable[7] = variable[8] /*s=*/;
           } else { /*if*/
             if (once_bool_174) variable[8] = once_value_174;
             else {
               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
-              variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+              variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
               once_value_174 = variable[8];
               once_bool_174 = true;
             }
-            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
             if (UNTAG_Bool(variable[8])) { /*if*/
-              variable[8] = NEW_String_string___String___init(); /*new String*/
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("printf(\"%c\", (unsigned char)UNTAG_Char("), TAG_Int(39)); /*new String*/
               variable[10] = variable[9];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
               variable[11] =  variable[3] /*p*/;
               variable[12] =  TAG_Int(0);
               variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -4966,25 +5038,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
               return_label175: while(false);
               variable[11] = variable[13];
               variable[12] = variable[11];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
               variable[14] = variable[13];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-              ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+              CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
             } else { /*if*/
               if (once_bool_176) variable[8] = once_value_176;
               else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_176 = variable[8];
                once_bool_176 = true;
               }
-              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
               if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((unsigned char)UNTAG_Char("), TAG_Int(34)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5004,25 +5077,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label177: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
               } else { /*if*/
                if (once_bool_178) variable[8] = once_value_178;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("succ"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_178 = variable[8];
                once_bool_178 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5042,25 +5116,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label179: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+1)"), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_180) variable[8] = once_value_180;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("prec"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_180 = variable[8];
                once_bool_180 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5080,25 +5155,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label181: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-1)"), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_182) variable[8] = once_value_182;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_182 = variable[8];
                once_bool_182 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Char("), TAG_Int(19)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5118,25 +5194,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label183: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-'0')"), TAG_Int(6)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_184) variable[8] = once_value_184;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_184 = variable[8];
                once_bool_184 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5156,10 +5233,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label185: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Char("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5179,25 +5256,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label186: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_187) variable[8] = once_value_187;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_187 = variable[8];
                once_bool_187 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5217,10 +5295,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label188: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")-UNTAG_Char("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5240,25 +5318,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label189: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_190) variable[8] = once_value_190;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_190 = variable[8];
                once_bool_190 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5278,10 +5357,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label191: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")*UNTAG_Char("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5301,25 +5380,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label192: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_193) variable[8] = once_value_193;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_193 = variable[8];
                once_bool_193 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5339,10 +5419,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label194: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")/UNTAG_Char("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5362,25 +5442,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label195: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_196) variable[8] = once_value_196;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_196 = variable[8];
                once_bool_196 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5400,10 +5481,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label197: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")%UNTAG_Char("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5423,25 +5504,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label198: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_199) variable[8] = once_value_199;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_199 = variable[8];
                once_bool_199 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5461,10 +5543,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label200: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<UNTAG_Char("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5484,25 +5566,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label201: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_202) variable[8] = once_value_202;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_202 = variable[8];
                once_bool_202 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5522,10 +5605,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label203: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>UNTAG_Char("), TAG_Int(13)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5545,25 +5628,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label204: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_205) variable[8] = once_value_205;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_205 = variable[8];
                once_bool_205 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5583,10 +5667,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label206: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")<=UNTAG_Char("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5606,25 +5690,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label207: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_208) variable[8] = once_value_208;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_208 = variable[8];
                once_bool_208 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Char("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5644,10 +5729,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label209: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")>=UNTAG_Char("), TAG_Int(14)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5667,25 +5752,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label210: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_211) variable[8] = once_value_211;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_211 = variable[8];
                once_bool_211 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5705,10 +5791,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label212: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5728,25 +5814,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label213: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_214) variable[8] = once_value_214;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_214 = variable[8];
                once_bool_214 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5766,10 +5853,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label215: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5789,10 +5876,11 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label216: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
                }
@@ -5816,25 +5904,25 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
         if (once_bool_217) variable[8] = once_value_217;
         else {
           variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
-          variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+          variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
           once_value_217 = variable[8];
           once_bool_217 = true;
         }
-        variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
+        variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
         if (UNTAG_Bool(variable[8])) { /*if*/
           if (once_bool_218) variable[8] = once_value_218;
           else {
             variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
-            variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+            variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
             once_value_218 = variable[8];
             once_bool_218 = true;
           }
-          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+          variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
           if (UNTAG_Bool(variable[8])) { /*if*/
-            variable[8] = NEW_String_string___String___init(); /*new String*/
+            variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
             variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Bool("), TAG_Int(19)); /*new String*/
             variable[10] = variable[9];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
             variable[11] =  variable[3] /*p*/;
             variable[12] =  TAG_Int(0);
             variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5854,25 +5942,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
             return_label219: while(false);
             variable[11] = variable[13];
             variable[12] = variable[11];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
             variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
             variable[14] = variable[13];
-            ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+            variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
             variable[7] = variable[8] /*s=*/;
           } else { /*if*/
             if (once_bool_220) variable[8] = once_value_220;
             else {
               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
-              variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+              variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
               once_value_220 = variable[8];
               once_bool_220 = true;
             }
-            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
             if (UNTAG_Bool(variable[8])) { /*if*/
-              variable[8] = NEW_String_string___String___init(); /*new String*/
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(-UNTAG_Bool("), TAG_Int(21)); /*new String*/
               variable[10] = variable[9];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
               variable[11] =  variable[3] /*p*/;
               variable[12] =  TAG_Int(0);
               variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5892,25 +5981,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
               return_label221: while(false);
               variable[11] = variable[13];
               variable[12] = variable[11];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
               variable[14] = variable[13];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
               variable[7] = variable[8] /*s=*/;
             } else { /*if*/
               if (once_bool_222) variable[8] = once_value_222;
               else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("output"), TAG_Int(6)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_222 = variable[8];
                once_bool_222 = true;
               }
-              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
               if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(void)printf(UNTAG_Bool("), TAG_Int(24)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5930,25 +6020,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label223: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")?\"true\\n\":\"false\\n\");"), TAG_Int(22)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+               CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
               } else { /*if*/
                if (once_bool_224) variable[8] = once_value_224;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("ascii"), TAG_Int(5)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_224 = variable[8];
                once_bool_224 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(UNTAG_Bool("), TAG_Int(20)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -5968,25 +6059,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label225: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_226) variable[8] = once_value_226;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_i"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_226 = variable[8];
                once_bool_226 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNTAG_Bool("), TAG_Int(19)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6006,25 +6098,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label227: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_228) variable[8] = once_value_228;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_228 = variable[8];
                once_bool_228 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6044,10 +6137,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label229: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==("), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6067,25 +6160,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label230: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_231) variable[8] = once_value_231;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_231 = variable[8];
                once_bool_231 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(("), TAG_Int(10)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6105,10 +6199,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label232: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")!=("), TAG_Int(4)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6128,10 +6222,11 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label233: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                }
                }
@@ -6144,25 +6239,25 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
           if (once_bool_234) variable[8] = once_value_234;
           else {
             variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NativeArray"), TAG_Int(11)); /*new String*/
-            variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+            variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
             once_value_234 = variable[8];
             once_bool_234 = true;
           }
-          variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
+          variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
           if (UNTAG_Bool(variable[8])) { /*if*/
             if (once_bool_235) variable[8] = once_value_235;
             else {
               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
-              variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+              variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
               once_value_235 = variable[8];
               once_bool_235 = true;
             }
-            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+            variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
             if (UNTAG_Bool(variable[8])) { /*if*/
-              variable[8] = NEW_String_string___String___init(); /*new String*/
+              variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
               variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNBOX_NativeArray("), TAG_Int(26)); /*new String*/
               variable[10] = variable[9];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
               variable[11] =  variable[3] /*p*/;
               variable[12] =  TAG_Int(0);
               variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6182,25 +6277,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
               return_label236: while(false);
               variable[11] = variable[13];
               variable[12] = variable[11];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
               variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
               variable[14] = variable[13];
-              ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+              variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
               variable[7] = variable[8] /*s=*/;
             } else { /*if*/
               if (once_bool_237) variable[8] = once_value_237;
               else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_237 = variable[8];
                once_bool_237 = true;
               }
-              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
               if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_NativeArray("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6220,10 +6316,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label238: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6243,25 +6339,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label239: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")]"), TAG_Int(2)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
               } else { /*if*/
                if (once_bool_240) variable[8] = once_value_240;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_240 = variable[8];
                once_bool_240 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_NativeArray("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6281,10 +6378,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label241: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6304,10 +6401,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label242: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")]="), TAG_Int(3)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
                variable[19] =  variable[3] /*p*/;
                variable[20] =  TAG_Int(2);
                variable[22] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6327,25 +6424,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label243: while(false);
                variable[19] = variable[21];
                variable[20] = variable[19];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
                variable[21] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
                variable[22] = variable[21];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/;
-               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+               CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
                } else { /*if*/
                if (once_bool_244) variable[8] = once_value_244;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_244 = variable[8];
                once_bool_244 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(void)memcpy(UNBOX_NativeArray("), TAG_Int(31)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(1);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6365,10 +6463,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label245: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("), UNBOX_NativeArray("), TAG_Int(21)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(0);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6388,10 +6486,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label246: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("), UNTAG_Int("), TAG_Int(13)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
                variable[19] =  variable[3] /*p*/;
                variable[20] =  TAG_Int(2);
                variable[22] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6411,11 +6509,12 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label247: while(false);
                variable[19] = variable[21];
                variable[20] = variable[19];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
                variable[21] = NEW_String_string___String___with_native(BOX_NativeString(")*sizeof(val_t));"), TAG_Int(17)); /*new String*/
                variable[22] = variable[21];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/;
-               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+               CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
                }
                }
               }
@@ -6424,25 +6523,25 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
             if (once_bool_248) variable[8] = once_value_248;
             else {
               variable[8] = NEW_String_string___String___with_native(BOX_NativeString("NativeString"), TAG_Int(12)); /*new String*/
-              variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+              variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
               once_value_248 = variable[8];
               once_bool_248 = true;
             }
-            variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
+            variable[8] = TAG_Bool(( variable[5] /*c*/ == variable[8]) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/, variable[8]) /*Object::==*/)))));
             if (UNTAG_Bool(variable[8])) { /*if*/
               if (once_bool_249) variable[8] = once_value_249;
               else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_249 = variable[8];
                once_bool_249 = true;
               }
-              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
               if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(UNBOX_NativeString("), TAG_Int(27)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6462,25 +6561,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label250: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
               } else { /*if*/
                if (once_bool_251) variable[8] = once_value_251;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("atoi"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_251 = variable[8];
                once_bool_251 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int(atoi(UNBOX_NativeString("), TAG_Int(32)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6500,25 +6600,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label252: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_253) variable[8] = once_value_253;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_253 = variable[8];
                once_bool_253 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Char(UNBOX_NativeString("), TAG_Int(28)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6538,10 +6639,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label254: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6561,25 +6662,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label255: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")])"), TAG_Int(3)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_256) variable[8] = once_value_256;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_256 = variable[8];
                once_bool_256 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("UNBOX_NativeString("), TAG_Int(19)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6599,10 +6701,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label257: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")[UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6622,10 +6724,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label258: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")]=UNTAG_Char("), TAG_Int(14)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
                variable[19] =  variable[3] /*p*/;
                variable[20] =  TAG_Int(2);
                variable[22] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6645,25 +6747,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label259: while(false);
                variable[19] = variable[21];
                variable[20] = variable[19];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
                variable[21] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
                variable[22] = variable[21];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/;
-               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+               CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
                } else { /*if*/
                if (once_bool_260) variable[8] = once_value_260;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("copy_to"), TAG_Int(7)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_260 = variable[8];
                once_bool_260 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("(void)memcpy(UNBOX_NativeString("), TAG_Int(32)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(1);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6683,10 +6786,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label261: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(4);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6706,10 +6809,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label262: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString("), UNBOX_NativeString("), TAG_Int(22)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
                variable[19] =  variable[3] /*p*/;
                variable[20] =  TAG_Int(0);
                variable[22] = TAG_Bool(UNTAG_Int( variable[20] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6729,10 +6832,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label263: while(false);
                variable[19] = variable[21];
                variable[20] = variable[19];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[20]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[20]) /*AbstractArray::add*/;
                variable[21] = NEW_String_string___String___with_native(BOX_NativeString(")+UNTAG_Int("), TAG_Int(12)); /*new String*/
                variable[22] = variable[21];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[22]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[22]) /*AbstractArray::add*/;
                variable[23] =  variable[3] /*p*/;
                variable[24] =  TAG_Int(3);
                variable[26] = TAG_Bool(UNTAG_Int( variable[24] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6752,10 +6855,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label264: while(false);
                variable[23] = variable[25];
                variable[24] = variable[23];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[24]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[24]) /*AbstractArray::add*/;
                variable[25] = NEW_String_string___String___with_native(BOX_NativeString("), UNTAG_Int("), TAG_Int(13)); /*new String*/
                variable[26] = variable[25];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[26]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[26]) /*AbstractArray::add*/;
                variable[27] =  variable[3] /*p*/;
                variable[28] =  TAG_Int(2);
                variable[30] = TAG_Bool(UNTAG_Int( variable[28] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6775,11 +6878,12 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label265: while(false);
                variable[27] = variable[29];
                variable[28] = variable[27];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[28]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[28]) /*AbstractArray::add*/;
                variable[29] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
                variable[30] = variable[29];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[30]) /*String::append*/;
-               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[30]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+               CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
                }
                }
                }
@@ -6789,16 +6893,16 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
               if (once_bool_266) variable[8] = once_value_266;
               else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("object_id"), TAG_Int(9)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_266 = variable[8];
                once_bool_266 = true;
               }
-              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+              variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
               if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int((bigint)"), TAG_Int(16)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6818,20 +6922,21 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label267: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
               } else { /*if*/
                if (once_bool_268) variable[8] = once_value_268;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("sys"), TAG_Int(3)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_268 = variable[8];
                once_bool_268 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("(G_sys)"), TAG_Int(7)); /*new String*/
                variable[7] = variable[8] /*s=*/;
@@ -6839,16 +6944,16 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                if (once_bool_269) variable[8] = once_value_269;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("is_same_type"), TAG_Int(12)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_269 = variable[8];
                once_bool_269 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool((VAL2VFT("), TAG_Int(18)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(0);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6868,10 +6973,10 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label270: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(")==VAL2VFT("), TAG_Int(11)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[3] /*p*/;
                variable[16] =  TAG_Int(1);
                variable[18] = TAG_Bool(UNTAG_Int( variable[16] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6891,25 +6996,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label271: while(false);
                variable[15] = variable[17];
                variable[16] = variable[15];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
                variable[17] = NEW_String_string___String___with_native(BOX_NativeString(")))"), TAG_Int(3)); /*new String*/
                variable[18] = variable[17];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[18]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[18]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_272) variable[8] = once_value_272;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("exit"), TAG_Int(4)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_272 = variable[8];
                once_bool_272 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("exit(UNTAG_Int("), TAG_Int(15)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(1);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6929,25 +7035,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label273: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("));"), TAG_Int(3)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+               CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
                } else { /*if*/
                if (once_bool_274) variable[8] = once_value_274;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("calloc_array"), TAG_Int(12)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_274 = variable[8];
                once_bool_274 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_NativeArray((val_t*)malloc((UNTAG_Int("), TAG_Int(42)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(1);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -6967,25 +7074,26 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label275: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(") * sizeof(val_t))))"), TAG_Int(20)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
                if (once_bool_276) variable[8] = once_value_276;
                else {
                variable[8] = NEW_String_string___String___with_native(BOX_NativeString("calloc_string"), TAG_Int(13)); /*new String*/
-               variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+               variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
                once_value_276 = variable[8];
                once_bool_276 = true;
                }
-               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
+               variable[8] = TAG_Bool(( variable[6] /*n*/ == variable[8]) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/, variable[8]) /*Object::==*/)))));
                if (UNTAG_Bool(variable[8])) { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("BOX_NativeString((char*)malloc((UNTAG_Int("), TAG_Int(42)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[3] /*p*/;
                variable[12] =  TAG_Int(1);
                variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -7005,23 +7113,25 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
                return_label277: while(false);
                variable[11] = variable[13];
                variable[12] = variable[11];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString(") * sizeof(char))))"), TAG_Int(19)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
                variable[7] = variable[8] /*s=*/;
                } else { /*if*/
-               variable[8] = NEW_String_string___String___init(); /*new String*/
+               variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
                variable[9] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Intern "), TAG_Int(24)); /*new String*/
                variable[10] = variable[9];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
                variable[11] =  variable[6] /*n*/;
-               variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+               variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
                variable[12] = NEW_String_string___String___with_native(BOX_NativeString("\\n\"); nit_exit(1);"), TAG_Int(18)); /*new String*/
                variable[13] = variable[12];
-               ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-               ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+               variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+               CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
                }
                }
                }
@@ -7034,12 +7144,12 @@ val_t compiling_methods___AInternMethPropdef___do_compile_inside(val_t  self, va
       }
     }
   }
-  variable[8] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*method*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*method*/) /*MMLocalProperty::signature*/;
-  variable[8] = ((static_type___MMSignature___return_type_t)CALL(variable[8],COLOR_static_type___MMSignature___return_type))(variable[8]) /*MMSignature::return_type*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*method*/)( variable[2] /*method*/) /*MMLocalProperty::signature*/;
+  variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[9] = variable[8];
   if (UNTAG_Bool(variable[9])) { /* and */
-    variable[9] = TAG_Bool(( variable[7] /*s*/ ==  NIT_NULL /*null*/) || (( variable[7] /*s*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable[7] /*s*/,COLOR_kernel___Object_____eqeq))( variable[7] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
+    variable[9] = TAG_Bool(( variable[7] /*s*/ ==  NIT_NULL /*null*/) || (( variable[7] /*s*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*s*/)( variable[7] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
   }
   variable[8] = variable[9];
   if (UNTAG_Bool(variable[8])) { /*if*/
@@ -7086,7 +7196,7 @@ void compiling_methods___PExpr___compile_stmt(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Error!"), TAG_Int(6)); /*new String*/
-  ((parser_prod___PNode___printl_t)CALL(variable[3],COLOR_parser_prod___PNode___printl))(variable[3], variable[4]) /*PNode::printl*/;
+  CALL_parser_prod___PNode___printl(variable[3])(variable[3], variable[4]) /*PNode::printl*/;
   return_label279: while(false);
   tracehead = trace.prev;
   return;
@@ -7100,16 +7210,16 @@ void compiling_methods___ABlockExpr___compile_stmt(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ABlockExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ABlockExpr___n_expr))(variable[3]) /*ABlockExpr::n_expr*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_parser_nodes___ABlockExpr___n_expr(variable[3])(variable[3]) /*ABlockExpr::n_expr*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/,  variable[5] /*n*/) /*CompilerVisitor::compile_stmt*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*CompilerVisitor::compile_stmt*/;
     continue_281: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_281: while(0);
   return_label280: while(false);
@@ -7124,10 +7234,10 @@ void compiling_methods___AVardeclExpr___prepare_compile_stmt(val_t  self, val_t
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[3] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___AVardeclExpr___variable_t)CALL(variable[4],COLOR_syntax_base___AVardeclExpr___variable))(variable[4]) /*AVardeclExpr::variable*/;
-  ((compiling_methods___CFunctionContext___register_variable_t)CALL(variable[3],COLOR_compiling_methods___CFunctionContext___register_variable))(variable[3], variable[4]) /*CFunctionContext::register_variable*/;
+  variable[4] = CALL_syntax_base___AVardeclExpr___variable(variable[4])(variable[4]) /*AVardeclExpr::variable*/;
+  CALL_compiling_methods___CFunctionContext___register_variable(variable[3])(variable[3], variable[4]) /*CFunctionContext::register_variable*/;
   return_label282: while(false);
   tracehead = trace.prev;
   return;
@@ -7140,40 +7250,41 @@ void compiling_methods___AVardeclExpr___compile_stmt(val_t  self, val_t  param0)
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AVardeclExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVardeclExpr___variable))(variable[5]) /*AVardeclExpr::variable*/;
-  variable[4] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___varname))(variable[4], variable[5]) /*CFunctionContext::varname*/;
+  variable[5] = CALL_syntax_base___AVardeclExpr___variable(variable[5])(variable[5]) /*AVardeclExpr::variable*/;
+  variable[4] = CALL_compiling_methods___CFunctionContext___varname(variable[4])(variable[4], variable[5]) /*CFunctionContext::varname*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[4])(variable[4]) /*AVardeclExpr::n_expr*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = NEW_String_string___String___init(); /*new String*/
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("/*"), TAG_Int(2)); /*new String*/
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] =  variable[3] /*cname*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" is variable "), TAG_Int(13)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
     variable[10] = variable[0];
-    variable[10] = ((syntax_base___AVardeclExpr___variable_t)CALL(variable[10],COLOR_syntax_base___AVardeclExpr___variable))(variable[10]) /*AVardeclExpr::variable*/;
-    variable[10] = ((syntax_base___Variable___name_t)CALL(variable[10],COLOR_syntax_base___Variable___name))(variable[10]) /*Variable::name*/;
+    variable[10] = CALL_syntax_base___AVardeclExpr___variable(variable[10])(variable[10]) /*AVardeclExpr::variable*/;
+    variable[10] = CALL_syntax_base___Variable___name(variable[10])(variable[10]) /*Variable::name*/;
     variable[11] = variable[10];
-    variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+    variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[5]) /*AVardeclExpr::n_expr*/;
-    variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+    variable[5] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[5])(variable[5]) /*AVardeclExpr::n_expr*/;
+    variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
     variable[4] = variable[5];
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[3] /*cname*/,  variable[4] /*e*/) /*CompilerVisitor::add_assignment*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*cname*/,  variable[4] /*e*/) /*CompilerVisitor::add_assignment*/;
   }
   return_label283: while(false);
   tracehead = trace.prev;
@@ -7188,45 +7299,47 @@ void compiling_methods___AReturnExpr___compile_stmt(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[3]) /*AReturnExpr::n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___AReturnExpr___n_expr(variable[3])(variable[3]) /*AReturnExpr::n_expr*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
-    variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+    variable[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable[4])(variable[4]) /*AReturnExpr::n_expr*/;
+    variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
     variable[3] = variable[4];
-    variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[4] = ((compiling_methods___NitMethodContext___return_value_t)CALL(variable[4],COLOR_compiling_methods___NitMethodContext___return_value))(variable[4]) /*NitMethodContext::return_value*/;
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[4],  variable[3] /*e*/) /*CompilerVisitor::add_assignment*/;
+    variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[4] = CALL_compiling_methods___NitMethodContext___return_value(variable[4])(variable[4]) /*NitMethodContext::return_value*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[4],  variable[3] /*e*/) /*CompilerVisitor::add_assignment*/;
   }
-  variable[3] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[3] = ((compiling_methods___CFunctionContext___in_closure_t)CALL(variable[3],COLOR_compiling_methods___CFunctionContext___in_closure))(variable[3]) /*CFunctionContext::in_closure*/;
+  variable[3] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[3] = CALL_compiling_methods___CFunctionContext___in_closure(variable[3])(variable[3]) /*CFunctionContext::in_closure*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("closctx->has_broke = &("), TAG_Int(23)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-    variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[6] = ((compiling_methods___NitMethodContext___return_value_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___return_value))(variable[6]) /*NitMethodContext::return_value*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
+    variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[6] = CALL_compiling_methods___NitMethodContext___return_value(variable[6])(variable[6]) /*NitMethodContext::return_value*/;
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
   }
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[6] = ((compiling_methods___NitMethodContext___return_label_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___return_label))(variable[6]) /*NitMethodContext::return_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[6] = CALL_compiling_methods___NitMethodContext___return_label(variable[6])(variable[6]) /*NitMethodContext::return_label*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
   return_label284: while(false);
   tracehead = trace.prev;
   return;
@@ -7240,45 +7353,47 @@ void compiling_methods___ABreakExpr___compile_stmt(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[3]) /*ABreakExpr::n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___ABreakExpr___n_expr(variable[3])(variable[3]) /*ABreakExpr::n_expr*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[4]) /*ABreakExpr::n_expr*/;
-    variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+    variable[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable[4])(variable[4]) /*ABreakExpr::n_expr*/;
+    variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
     variable[3] = variable[4];
-    variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[4] = ((compiling_methods___NitMethodContext___break_value_t)CALL(variable[4],COLOR_compiling_methods___NitMethodContext___break_value))(variable[4]) /*NitMethodContext::break_value*/;
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[4],  variable[3] /*e*/) /*CompilerVisitor::add_assignment*/;
+    variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[4] = CALL_compiling_methods___NitMethodContext___break_value(variable[4])(variable[4]) /*NitMethodContext::break_value*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[4],  variable[3] /*e*/) /*CompilerVisitor::add_assignment*/;
   }
-  variable[3] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[3] = ((compiling_methods___CFunctionContext___in_closure_t)CALL(variable[3],COLOR_compiling_methods___CFunctionContext___in_closure))(variable[3]) /*CFunctionContext::in_closure*/;
+  variable[3] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[3] = CALL_compiling_methods___CFunctionContext___in_closure(variable[3])(variable[3]) /*CFunctionContext::in_closure*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("closctx->has_broke = &("), TAG_Int(23)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-    variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[6] = ((compiling_methods___NitMethodContext___break_value_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___break_value))(variable[6]) /*NitMethodContext::break_value*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
+    variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[6] = CALL_compiling_methods___NitMethodContext___break_value(variable[6])(variable[6]) /*NitMethodContext::break_value*/;
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("); closctx->broke_value = *closctx->has_broke;"), TAG_Int(46)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
   }
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[6] = ((compiling_methods___NitMethodContext___break_label_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___break_label))(variable[6]) /*NitMethodContext::break_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[6] = CALL_compiling_methods___NitMethodContext___break_label(variable[6])(variable[6]) /*NitMethodContext::break_label*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
   return_label285: while(false);
   tracehead = trace.prev;
   return;
@@ -7292,29 +7407,30 @@ void compiling_methods___AContinueExpr___compile_stmt(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[3]) /*AContinueExpr::n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___AContinueExpr___n_expr(variable[3])(variable[3]) /*AContinueExpr::n_expr*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[4]) /*AContinueExpr::n_expr*/;
-    variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+    variable[4] = CALL_parser_nodes___AContinueExpr___n_expr(variable[4])(variable[4]) /*AContinueExpr::n_expr*/;
+    variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
     variable[3] = variable[4];
-    variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[4] = ((compiling_methods___NitMethodContext___continue_value_t)CALL(variable[4],COLOR_compiling_methods___NitMethodContext___continue_value))(variable[4]) /*NitMethodContext::continue_value*/;
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[4],  variable[3] /*e*/) /*CompilerVisitor::add_assignment*/;
+    variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[4] = CALL_compiling_methods___NitMethodContext___continue_value(variable[4])(variable[4]) /*NitMethodContext::continue_value*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[4],  variable[3] /*e*/) /*CompilerVisitor::add_assignment*/;
   }
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[6] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[6]) /*NitMethodContext::continue_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[6] = CALL_compiling_methods___NitMethodContext___continue_label(variable[6])(variable[6]) /*NitMethodContext::continue_label*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
   return_label286: while(false);
   tracehead = trace.prev;
   return;
@@ -7327,18 +7443,19 @@ void compiling_methods___AAbortExpr___compile_stmt(val_t  self, val_t  param0) {
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("fprintf(stderr, \"Aborted\"); "), TAG_Int(28)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((compiling_methods___CompilerVisitor___printf_locate_error_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___printf_locate_error))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::printf_locate_error*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::printf_locate_error*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" nit_exit(1);"), TAG_Int(13)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
   return_label287: while(false);
   tracehead = trace.prev;
   return;
@@ -7352,12 +7469,12 @@ void compiling_methods___ADoExpr___compile_stmt(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ADoExpr___n_block_t)CALL(variable[3],COLOR_parser_nodes___ADoExpr___n_block))(variable[3]) /*ADoExpr::n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___ADoExpr___n_block(variable[3])(variable[3]) /*ADoExpr::n_block*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((parser_nodes___ADoExpr___n_block_t)CALL(variable[3],COLOR_parser_nodes___ADoExpr___n_block))(variable[3]) /*ADoExpr::n_block*/;
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::compile_stmt*/;
+    variable[3] = CALL_parser_nodes___ADoExpr___n_block(variable[3])(variable[3]) /*ADoExpr::n_block*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::compile_stmt*/;
   }
   return_label288: while(false);
   tracehead = trace.prev;
@@ -7372,45 +7489,46 @@ void compiling_methods___AIfExpr___compile_stmt(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AIfExpr___n_expr(variable[4])(variable[4]) /*AIfExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")) { /*if*/"), TAG_Int(11)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___free_var))(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[4])(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_then))(variable[4]) /*AIfExpr::n_then*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AIfExpr___n_then(variable[4])(variable[4]) /*AIfExpr::n_then*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+    CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AIfExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_then))(variable[4]) /*AIfExpr::n_then*/;
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_stmt*/;
-    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+    variable[4] = CALL_parser_nodes___AIfExpr___n_then(variable[4])(variable[4]) /*AIfExpr::n_then*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_stmt*/;
+    CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   }
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_else))(variable[4]) /*AIfExpr::n_else*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AIfExpr___n_else(variable[4])(variable[4]) /*AIfExpr::n_else*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("} else { /*if*/"), TAG_Int(15)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-    ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_else))(variable[4]) /*AIfExpr::n_else*/;
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_stmt*/;
-    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+    variable[4] = CALL_parser_nodes___AIfExpr___n_else(variable[4])(variable[4]) /*AIfExpr::n_else*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_stmt*/;
+    CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   }
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
   return_label289: while(false);
   tracehead = trace.prev;
   return;
@@ -7424,42 +7542,43 @@ val_t compiling_methods___AIfexprExpr___compile_expr(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable[4])(variable[4]) /*AIfexprExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")) { /*if*/"), TAG_Int(11)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___free_var))(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[4])(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AIfexprExpr___n_then_t)CALL(variable[5],COLOR_parser_nodes___AIfexprExpr___n_then))(variable[5]) /*AIfexprExpr::n_then*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::ensure_var*/;
+  variable[5] = CALL_parser_nodes___AIfexprExpr___n_then(variable[5])(variable[5]) /*AIfexprExpr::n_then*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::ensure_var*/;
   variable[4] = variable[5];
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("} else { /*if*/"), TAG_Int(15)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[5],COLOR_compiling_methods___CFunctionContext___free_var))(variable[5],  variable[4] /*e*/) /*CFunctionContext::free_var*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[5])(variable[5],  variable[4] /*e*/) /*CFunctionContext::free_var*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AIfexprExpr___n_else_t)CALL(variable[6],COLOR_parser_nodes___AIfexprExpr___n_else))(variable[6]) /*AIfexprExpr::n_else*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::ensure_var*/;
+  variable[6] = CALL_parser_nodes___AIfexprExpr___n_else(variable[6])(variable[6]) /*AIfexprExpr::n_else*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::ensure_var*/;
   variable[5] = variable[6];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[4] /*e*/,  variable[5] /*e2*/) /*CompilerVisitor::add_assignment*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*e*/,  variable[5] /*e2*/) /*CompilerVisitor::add_assignment*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
   variable[2] =  variable[4] /*e*/;
   goto return_label290;
   return_label290: while(false);
@@ -7474,44 +7593,46 @@ void compiling_methods___AControlableBlock___compile_stmt(val_t  self, val_t  pa
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[4] = ((compiling_methods___NitMethodContext___break_label_t)CALL(variable[4],COLOR_compiling_methods___NitMethodContext___break_label))(variable[4]) /*NitMethodContext::break_label*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[4] = CALL_compiling_methods___NitMethodContext___break_label(variable[4])(variable[4]) /*NitMethodContext::break_label*/;
   variable[3] = variable[4];
-  variable[5] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[5] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[5],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[5]) /*NitMethodContext::continue_label*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[5] = CALL_compiling_methods___NitMethodContext___continue_label(variable[5])(variable[5]) /*NitMethodContext::continue_label*/;
   variable[4] = variable[5];
-  variable[6] = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  variable[6] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[5] = variable[6];
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("break_"), TAG_Int(6)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] =  variable[5] /*id*/;
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-  ((compiling_methods___NitMethodContext___break_label__eq_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___break_label__eq))(variable[6], variable[7]) /*NitMethodContext::break_label=*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_compiling_methods___NitMethodContext___break_label__eq(variable[6])(variable[6], variable[7]) /*NitMethodContext::break_label=*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("continue_"), TAG_Int(9)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] =  variable[5] /*id*/;
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-  ((compiling_methods___NitMethodContext___continue_label__eq_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___continue_label__eq))(variable[6], variable[7]) /*NitMethodContext::continue_label=*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_compiling_methods___NitMethodContext___continue_label__eq(variable[6])(variable[6], variable[7]) /*NitMethodContext::continue_label=*/;
   variable[6] = variable[0];
-  ((compiling_methods___AControlableBlock___compile_inside_block_t)CALL(variable[6],COLOR_compiling_methods___AControlableBlock___compile_inside_block))(variable[6],  variable[1] /*v*/) /*AControlableBlock::compile_inside_block*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___break_label__eq_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___break_label__eq))(variable[6],  variable[3] /*old_break_label*/) /*NitMethodContext::break_label=*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___continue_label__eq_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___continue_label__eq))(variable[6],  variable[4] /*old_continue_label*/) /*NitMethodContext::continue_label=*/;
+  CALL_compiling_methods___AControlableBlock___compile_inside_block(variable[6])(variable[6],  variable[1] /*v*/) /*AControlableBlock::compile_inside_block*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___break_label__eq(variable[6])(variable[6],  variable[3] /*old_break_label*/) /*NitMethodContext::break_label=*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___continue_label__eq(variable[6])(variable[6],  variable[4] /*old_continue_label*/) /*NitMethodContext::continue_label=*/;
   return_label291: while(false);
   tracehead = trace.prev;
   return;
@@ -7537,59 +7658,62 @@ void compiling_methods___AWhileExpr___compile_inside_block(val_t  self, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("while (true) { /*while*/"), TAG_Int(24)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AWhileExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AWhileExpr___n_expr))(variable[4]) /*AWhileExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AWhileExpr___n_expr(variable[4])(variable[4]) /*AWhileExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")) break; /* while*/"), TAG_Int(20)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___free_var))(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[4])(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AWhileExpr___n_block_t)CALL(variable[4],COLOR_parser_nodes___AWhileExpr___n_block))(variable[4]) /*AWhileExpr::n_block*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AWhileExpr___n_block(variable[4])(variable[4]) /*AWhileExpr::n_block*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AWhileExpr___n_block_t)CALL(variable[4],COLOR_parser_nodes___AWhileExpr___n_block))(variable[4]) /*AWhileExpr::n_block*/;
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_stmt*/;
+    variable[4] = CALL_parser_nodes___AWhileExpr___n_block(variable[4])(variable[4]) /*AWhileExpr::n_block*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_stmt*/;
   }
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[7] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[7]) /*NitMethodContext::continue_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[7] = CALL_compiling_methods___NitMethodContext___continue_label(variable[7])(variable[7]) /*NitMethodContext::continue_label*/;
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[7] = ((compiling_methods___NitMethodContext___break_label_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___break_label))(variable[7]) /*NitMethodContext::break_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[7] = CALL_compiling_methods___NitMethodContext___break_label(variable[7])(variable[7]) /*NitMethodContext::break_label*/;
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
   return_label292: while(false);
   tracehead = trace.prev;
   return;
@@ -7603,195 +7727,133 @@ void compiling_methods___AForExpr___compile_inside_block(val_t  self, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AForExpr___n_vardecl_t)CALL(variable[3],COLOR_parser_nodes___AForExpr___n_vardecl))(variable[3]) /*AForExpr::n_vardecl*/;
-  ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::compile_stmt*/;
+  variable[3] = CALL_parser_nodes___AForExpr___n_vardecl(variable[3])(variable[3]) /*AForExpr::n_vardecl*/;
+  CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::compile_stmt*/;
   return_label293: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AForVardeclExpr___compile_stmt(val_t  self, val_t  param0) {
   struct trace_t trace = {NULL, NULL, 1002, LOCATE_compiling_methods___AForVardeclExpr___compile_stmt};
-  static val_t once_value_295; static int once_bool_295; /* Once value for variable[6]*/
-  static val_t once_value_296; static int once_bool_296; /* Once value for variable[9]*/
-  static val_t once_value_297; static int once_bool_297; /* Once value for variable[10]*/
-  static val_t once_value_298; static int once_bool_298; /* Once value for variable[11]*/
-  val_t variable[22];
+  val_t variable[18];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[4]) /*AForVardeclExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable[4])(variable[4]) /*AForVardeclExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[5]) /*AForVardeclExpr::n_expr*/;
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
-  variable[5] = ((static_type___MMType___local_class_t)CALL(variable[5],COLOR_static_type___MMType___local_class))(variable[5]) /*MMType::local_class*/;
-  if (once_bool_295) variable[6] = once_value_295;
-  else {
-    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)); /*new String*/
-    variable[6] = ((symbol___String___to_symbol_t)CALL(variable[6],COLOR_symbol___String___to_symbol))(variable[6]) /*String::to_symbol*/;
-    once_value_295 = variable[6];
-    once_bool_295 = true;
-  }
-  variable[5] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[5], variable[6]) /*MMLocalClass::select_method*/;
+  variable[5] = CALL_typing___AForVardeclExpr___meth_iterator(variable[5])(variable[5]) /*AForVardeclExpr::meth_iterator*/;
+  variable[5] = CALL_static_type___MMLocalProperty___signature(variable[5])(variable[5]) /*MMLocalProperty::signature*/;
+  variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(( variable[4] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[4] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[4] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
-  if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[5] = variable[0];
-    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("No iterator"), TAG_Int(11)); /*new String*/
-    ((parser_prod___PNode___printl_t)CALL(variable[5],COLOR_parser_prod___PNode___printl))(variable[5], variable[6]) /*PNode::printl*/;
-    goto return_label294;
-  }
-  variable[6] = ((static_type___MMLocalProperty___signature_t)CALL( variable[4] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[4] /*prop*/) /*MMLocalProperty::signature*/;
-  variable[6] = ((static_type___MMSignature___return_type_t)CALL(variable[6],COLOR_static_type___MMSignature___return_type))(variable[6]) /*MMSignature::return_type*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[5])(variable[5],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[6] = CALL_compiling_methods___CFunctionContext___get_var(variable[6])(variable[6]) /*CFunctionContext::get_var*/;
   variable[5] = variable[6];
-  variable[6] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[6],COLOR_compiling_methods___CFunctionContext___free_var))(variable[6],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[7] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[7],COLOR_compiling_methods___CFunctionContext___get_var))(variable[7]) /*CFunctionContext::get_var*/;
-  variable[6] = variable[7];
+  variable[6] = variable[0];
+  variable[6] = CALL_typing___AForVardeclExpr___meth_iterator(variable[6])(variable[6]) /*AForVardeclExpr::meth_iterator*/;
   variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[3] /*e*/) /*AbstractArray::add*/;
-  variable[7] = ((compiling_methods___MMMethod___compile_call_t)CALL( variable[4] /*prop*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[4] /*prop*/,  variable[1] /*v*/, variable[7]) /*MMMethod::compile_call*/;
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[6] /*iter*/, variable[7]) /*CompilerVisitor::add_assignment*/;
-  variable[8] = ((static_type___MMType___local_class_t)CALL( variable[5] /*ittype*/,COLOR_static_type___MMType___local_class))( variable[5] /*ittype*/) /*MMType::local_class*/;
-  if (once_bool_296) variable[9] = once_value_296;
-  else {
-    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("is_ok"), TAG_Int(5)); /*new String*/
-    variable[9] = ((symbol___String___to_symbol_t)CALL(variable[9],COLOR_symbol___String___to_symbol))(variable[9]) /*String::to_symbol*/;
-    once_value_296 = variable[9];
-    once_bool_296 = true;
-  }
-  variable[8] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[8], variable[9]) /*MMLocalClass::select_method*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[3] /*e*/) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_methods___MMMethod___compile_call(variable[6])(variable[6],  variable[1] /*v*/, variable[7]) /*MMMethod::compile_call*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*iter*/, variable[6]) /*CompilerVisitor::add_assignment*/;
+  variable[6] = NEW_String_string___String___with_native(BOX_NativeString("while (true) { /*for*/"), TAG_Int(22)); /*new String*/
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[7] = CALL_compiling_methods___CFunctionContext___get_var(variable[7])(variable[7]) /*CFunctionContext::get_var*/;
+  variable[6] = variable[7];
+  variable[7] = variable[0];
+  variable[7] = CALL_typing___AForVardeclExpr___meth_is_ok(variable[7])(variable[7]) /*AForVardeclExpr::meth_is_ok*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[5] /*iter*/) /*AbstractArray::add*/;
+  variable[7] = CALL_compiling_methods___MMMethod___compile_call(variable[7])(variable[7],  variable[1] /*v*/, variable[8]) /*MMMethod::compile_call*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*ok*/, variable[7]) /*CompilerVisitor::add_assignment*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable[8] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
+  variable[9] = variable[8];
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+  variable[10] =  variable[6] /*ok*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
+  variable[11] = NEW_String_string___String___with_native(BOX_NativeString(")) break; /*for*/"), TAG_Int(17)); /*new String*/
+  variable[12] = variable[11];
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_instr*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[7])(variable[7],  variable[6] /*ok*/) /*CFunctionContext::free_var*/;
+  variable[8] = variable[0];
+  variable[8] = CALL_typing___AForVardeclExpr___meth_item(variable[8])(variable[8]) /*AForVardeclExpr::meth_item*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[5] /*iter*/) /*AbstractArray::add*/;
+  variable[8] = CALL_compiling_methods___MMMethod___compile_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_call*/;
   variable[7] = variable[8];
-  variable[8] = TAG_Bool(( variable[7] /*prop2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*prop2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*prop2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*prop2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*prop2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*prop2*/,  NIT_NULL /*null*/) /*Object::==*/)))));
-  if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = variable[0];
-    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("No is_ok"), TAG_Int(8)); /*new String*/
-    ((parser_prod___PNode___printl_t)CALL(variable[8],COLOR_parser_prod___PNode___printl))(variable[8], variable[9]) /*PNode::printl*/;
-    goto return_label294;
-  }
-  variable[9] = ((static_type___MMType___local_class_t)CALL( variable[5] /*ittype*/,COLOR_static_type___MMType___local_class))( variable[5] /*ittype*/) /*MMType::local_class*/;
-  if (once_bool_297) variable[10] = once_value_297;
-  else {
-    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
-    variable[10] = ((symbol___String___to_symbol_t)CALL(variable[10],COLOR_symbol___String___to_symbol))(variable[10]) /*String::to_symbol*/;
-    once_value_297 = variable[10];
-    once_bool_297 = true;
-  }
-  variable[9] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[9], variable[10]) /*MMLocalClass::select_method*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*e*/) /*CompilerVisitor::ensure_var*/;
+  variable[7] = variable[8] /*e=*/;
+  variable[9] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[10] = variable[0];
+  variable[10] = CALL_syntax_base___AForVardeclExpr___variable(variable[10])(variable[10]) /*AForVardeclExpr::variable*/;
+  variable[9] = CALL_compiling_methods___CFunctionContext___register_variable(variable[9])(variable[9], variable[10]) /*CFunctionContext::register_variable*/;
   variable[8] = variable[9];
-  variable[9] = TAG_Bool(( variable[8] /*prop3*/ ==  NIT_NULL /*null*/) || (( variable[8] /*prop3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*prop3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*prop3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*prop3*/,COLOR_kernel___Object_____eqeq))( variable[8] /*prop3*/,  NIT_NULL /*null*/) /*Object::==*/)))));
-  if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = variable[0];
-    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("No item"), TAG_Int(7)); /*new String*/
-    ((parser_prod___PNode___printl_t)CALL(variable[9],COLOR_parser_prod___PNode___printl))(variable[9], variable[10]) /*PNode::printl*/;
-    goto return_label294;
-  }
-  variable[10] = ((static_type___MMType___local_class_t)CALL( variable[5] /*ittype*/,COLOR_static_type___MMType___local_class))( variable[5] /*ittype*/) /*MMType::local_class*/;
-  if (once_bool_298) variable[11] = once_value_298;
-  else {
-    variable[11] = NEW_String_string___String___with_native(BOX_NativeString("next"), TAG_Int(4)); /*new String*/
-    variable[11] = ((symbol___String___to_symbol_t)CALL(variable[11],COLOR_symbol___String___to_symbol))(variable[11]) /*String::to_symbol*/;
-    once_value_298 = variable[11];
-    once_bool_298 = true;
-  }
-  variable[10] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[10],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[10], variable[11]) /*MMLocalClass::select_method*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[8] /*cname*/,  variable[7] /*e*/) /*CompilerVisitor::add_assignment*/;
+  variable[10] = variable[0];
+  variable[10] = CALL_parser_prod___PNode___parent(variable[10])(variable[10]) /*PNode::parent*/;
   variable[9] = variable[10];
-  variable[10] = TAG_Bool(( variable[9] /*prop4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*prop4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*prop4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*prop4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*prop4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*prop4*/,  NIT_NULL /*null*/) /*Object::==*/)))));
-  if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = variable[0];
-    variable[11] = NEW_String_string___String___with_native(BOX_NativeString("No next"), TAG_Int(7)); /*new String*/
-    ((parser_prod___PNode___printl_t)CALL(variable[10],COLOR_parser_prod___PNode___printl))(variable[10], variable[11]) /*PNode::printl*/;
-    goto return_label294;
-  }
-  variable[10] = NEW_String_string___String___with_native(BOX_NativeString("while (true) { /*for*/"), TAG_Int(22)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[10]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-  variable[11] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[11] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[11],COLOR_compiling_methods___CFunctionContext___get_var))(variable[11]) /*CFunctionContext::get_var*/;
+  variable[10] = TAG_Bool(( variable[9] /*par*/==NIT_NULL) || VAL_ISA( variable[9] /*par*/, COLOR_AForExpr, ID_AForExpr)) /*cast AForExpr*/;
+  if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AForVardeclExpr___compile_stmt, LOCATE_compiling_methods, 1020); nit_exit(1);}
+  variable[11] = CALL_parser_nodes___AForExpr___n_block( variable[9] /*par*/)( variable[9] /*par*/) /*AForExpr::n_block*/;
   variable[10] = variable[11];
-  variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  variable[6] /*iter*/) /*AbstractArray::add*/;
-  variable[11] = ((compiling_methods___MMMethod___compile_call_t)CALL( variable[7] /*prop2*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[7] /*prop2*/,  variable[1] /*v*/, variable[11]) /*MMMethod::compile_call*/;
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[10] /*ok*/, variable[11]) /*CompilerVisitor::add_assignment*/;
-  variable[11] = NEW_String_string___String___init(); /*new String*/
-  variable[12] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
-  variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[13]) /*String::append*/;
-  variable[14] =  variable[10] /*ok*/;
-  ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[14]) /*String::append*/;
-  variable[15] = NEW_String_string___String___with_native(BOX_NativeString(")) break; /*for*/"), TAG_Int(17)); /*new String*/
-  variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[16]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_instr*/;
-  variable[11] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[11],COLOR_compiling_methods___CFunctionContext___free_var))(variable[11],  variable[10] /*ok*/) /*CFunctionContext::free_var*/;
-  variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  variable[6] /*iter*/) /*AbstractArray::add*/;
-  variable[12] = ((compiling_methods___MMMethod___compile_call_t)CALL( variable[8] /*prop3*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[8] /*prop3*/,  variable[1] /*v*/, variable[12]) /*MMMethod::compile_call*/;
-  variable[11] = variable[12];
-  variable[12] = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable[1] /*v*/,  variable[11] /*e*/) /*CompilerVisitor::ensure_var*/;
-  variable[11] = variable[12] /*e=*/;
-  variable[13] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[14] = variable[0];
-  variable[14] = ((syntax_base___AForVardeclExpr___variable_t)CALL(variable[14],COLOR_syntax_base___AForVardeclExpr___variable))(variable[14]) /*AForVardeclExpr::variable*/;
-  variable[13] = ((compiling_methods___CFunctionContext___register_variable_t)CALL(variable[13],COLOR_compiling_methods___CFunctionContext___register_variable))(variable[13], variable[14]) /*CFunctionContext::register_variable*/;
-  variable[12] = variable[13];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[12] /*cname*/,  variable[11] /*e*/) /*CompilerVisitor::add_assignment*/;
-  variable[14] = variable[0];
-  variable[14] = ((parser_prod___PNode___parent_t)CALL(variable[14],COLOR_parser_prod___PNode___parent))(variable[14]) /*PNode::parent*/;
-  variable[13] = variable[14];
-  variable[14] = TAG_Bool(( variable[13] /*par*/==NIT_NULL) || VAL_ISA( variable[13] /*par*/, COLOR_AForExpr, ID_AForExpr)) /*cast AForExpr*/;
-  if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AForVardeclExpr___compile_stmt, LOCATE_compiling_methods, 1040); nit_exit(1);}
-  variable[15] = ((parser_nodes___AForExpr___n_block_t)CALL( variable[13] /*par*/,COLOR_parser_nodes___AForExpr___n_block))( variable[13] /*par*/) /*AForExpr::n_block*/;
-  variable[14] = variable[15];
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[14] /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*n_block*/,COLOR_kernel___Object_____eqeq))( variable[14] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
-  if (UNTAG_Bool(variable[15])) { /*if*/
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/,  variable[14] /*n_block*/) /*CompilerVisitor::compile_stmt*/;
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[10] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*n_block*/)( variable[10] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  if (UNTAG_Bool(variable[11])) { /*if*/
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/,  variable[10] /*n_block*/) /*CompilerVisitor::compile_stmt*/;
   }
-  variable[15] = NEW_String_string___String___init(); /*new String*/
-  variable[16] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable[13] = variable[12];
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
+  variable[14] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[14] = CALL_compiling_methods___NitMethodContext___continue_label(variable[14])(variable[14]) /*NitMethodContext::continue_label*/;
+  variable[15] = variable[14];
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[15]) /*AbstractArray::add*/;
+  variable[16] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[17]) /*String::append*/;
-  variable[18] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[18] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[18],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[18]) /*NitMethodContext::continue_label*/;
-  variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[19]) /*String::append*/;
-  variable[20] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
-  variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[21]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[15]) /*CompilerVisitor::add_instr*/;
-  variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  variable[6] /*iter*/) /*AbstractArray::add*/;
-  variable[15] = ((compiling_methods___MMMethod___compile_call_t)CALL( variable[9] /*prop4*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[9] /*prop4*/,  variable[1] /*v*/, variable[15]) /*MMMethod::compile_call*/;
-  variable[11] = variable[15] /*e=*/;
-  variable[15] = TAG_Bool(( variable[11] /*e*/ ==  NIT_NULL /*null*/) || (( variable[11] /*e*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable[11] /*e*/,COLOR_kernel___Object_____eqeq))( variable[11] /*e*/,  NIT_NULL /*null*/) /*String::==*/)));
-  if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AForVardeclExpr___compile_stmt, LOCATE_compiling_methods, 1047); nit_exit(1);}
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
-  variable[15] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[15]) /*CompilerVisitor::add_instr*/;
-  variable[15] = NEW_String_string___String___init(); /*new String*/
-  variable[16] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[17]) /*AbstractArray::add*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_instr*/;
+  variable[11] = variable[0];
+  variable[11] = CALL_typing___AForVardeclExpr___meth_next(variable[11])(variable[11]) /*AForVardeclExpr::meth_next*/;
+  variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  variable[5] /*iter*/) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_methods___MMMethod___compile_call(variable[11])(variable[11],  variable[1] /*v*/, variable[12]) /*MMMethod::compile_call*/;
+  variable[7] = variable[11] /*e=*/;
+  variable[11] = TAG_Bool(( variable[7] /*e*/ ==  NIT_NULL /*null*/) || (( variable[7] /*e*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*e*/)( variable[7] /*e*/,  NIT_NULL /*null*/) /*String::==*/)));
+  if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AForVardeclExpr___compile_stmt, LOCATE_compiling_methods, 1027); nit_exit(1);}
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  variable[11] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_instr*/;
+  variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+  variable[13] = variable[12];
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
+  variable[14] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[14] = CALL_compiling_methods___NitMethodContext___break_label(variable[14])(variable[14]) /*NitMethodContext::break_label*/;
+  variable[15] = variable[14];
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[15]) /*AbstractArray::add*/;
+  variable[16] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[17]) /*String::append*/;
-  variable[18] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[18] = ((compiling_methods___NitMethodContext___break_label_t)CALL(variable[18],COLOR_compiling_methods___NitMethodContext___break_label))(variable[18]) /*NitMethodContext::break_label*/;
-  variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[19]) /*String::append*/;
-  variable[20] = NEW_String_string___String___with_native(BOX_NativeString(": while(0);"), TAG_Int(11)); /*new String*/
-  variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[21]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[15]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[17]) /*AbstractArray::add*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_instr*/;
   return_label294: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AAssertExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1055, LOCATE_compiling_methods___AAssertExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1035, LOCATE_compiling_methods___AAssertExpr___compile_stmt};
   val_t variable[18];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -7799,93 +7861,96 @@ void compiling_methods___AAssertExpr___compile_stmt(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAssertExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAssertExpr___n_expr))(variable[4]) /*AAssertExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AAssertExpr___n_expr(variable[4])(variable[4]) /*AAssertExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AAssertExpr___n_id_t)CALL(variable[5],COLOR_parser_nodes___AAssertExpr___n_id))(variable[5]) /*AAssertExpr::n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = CALL_parser_nodes___AAssertExpr___n_id(variable[5])(variable[5]) /*AAssertExpr::n_id*/;
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString(" '"), TAG_Int(2)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] = variable[0];
-    variable[8] = ((parser_nodes___AAssertExpr___n_id_t)CALL(variable[8],COLOR_parser_nodes___AAssertExpr___n_id))(variable[8]) /*AAssertExpr::n_id*/;
-    variable[8] = ((lexer___Token___text_t)CALL(variable[8],COLOR_lexer___Token___text))(variable[8]) /*Token::text*/;
+    variable[8] = CALL_parser_nodes___AAssertExpr___n_id(variable[8])(variable[8]) /*AAssertExpr::n_id*/;
+    variable[8] = CALL_lexer___Token___text(variable[8])(variable[8]) /*Token::text*/;
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("' "), TAG_Int(2)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
     variable[4] = variable[5] /*s=*/;
   }
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(")) { fprintf(stderr, \"Assert%s failed\", \""), TAG_Int(41)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[4] /*s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("\"); "), TAG_Int(4)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
   variable[14] = variable[0];
-  variable[14] = ((compiling_methods___CompilerVisitor___printf_locate_error_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___printf_locate_error))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::printf_locate_error*/;
+  variable[14] = CALL_compiling_methods___CompilerVisitor___printf_locate_error( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::printf_locate_error*/;
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" nit_exit(1);}"), TAG_Int(14)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[17]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
-  return_label299: while(false);
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[17]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  return_label295: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___AVarExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1067, LOCATE_compiling_methods___AVarExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1047, LOCATE_compiling_methods___AVarExpr___compile_expr};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[7] = variable[0];
-  variable[7] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[7],COLOR_syntax_base___AVarFormExpr___variable))(variable[7]) /*AVarFormExpr::variable*/;
-  variable[6] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[6],COLOR_compiling_methods___CFunctionContext___varname))(variable[6], variable[7]) /*CFunctionContext::varname*/;
+  variable[7] = CALL_syntax_base___AVarFormExpr___variable(variable[7])(variable[7]) /*AVarFormExpr::variable*/;
+  variable[6] = CALL_compiling_methods___CFunctionContext___varname(variable[6])(variable[6], variable[7]) /*CFunctionContext::varname*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[10],COLOR_syntax_base___AVarFormExpr___variable))(variable[10]) /*AVarFormExpr::variable*/;
-  variable[10] = ((syntax_base___Variable___name_t)CALL(variable[10],COLOR_syntax_base___Variable___name))(variable[10]) /*Variable::name*/;
+  variable[10] = CALL_syntax_base___AVarFormExpr___variable(variable[10])(variable[10]) /*AVarFormExpr::variable*/;
+  variable[10] = CALL_syntax_base___Variable___name(variable[10])(variable[10]) /*Variable::name*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label300;
-  return_label300: while(false);
+  goto return_label296;
+  return_label296: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_methods___AVarAssignExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1074, LOCATE_compiling_methods___AVarAssignExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1054, LOCATE_compiling_methods___AVarAssignExpr___compile_stmt};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -7893,98 +7958,100 @@ void compiling_methods___AVarAssignExpr___compile_stmt(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[4],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[4]) /*AAssignFormExpr::n_value*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[4])(variable[4]) /*AAssignFormExpr::n_value*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
-  variable[4] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___varname))(variable[4], variable[5]) /*CFunctionContext::varname*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[5])(variable[5]) /*AVarFormExpr::variable*/;
+  variable[4] = CALL_compiling_methods___CFunctionContext___varname(variable[4])(variable[4], variable[5]) /*CFunctionContext::varname*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
   variable[11] = variable[0];
-  variable[11] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[11],COLOR_syntax_base___AVarFormExpr___variable))(variable[11]) /*AVarFormExpr::variable*/;
-  variable[11] = ((syntax_base___Variable___name_t)CALL(variable[11],COLOR_syntax_base___Variable___name))(variable[11]) /*Variable::name*/;
+  variable[11] = CALL_syntax_base___AVarFormExpr___variable(variable[11])(variable[11]) /*AVarFormExpr::variable*/;
+  variable[11] = CALL_syntax_base___Variable___name(variable[11])(variable[11]) /*Variable::name*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("=*/"), TAG_Int(3)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[14]) /*String::append*/;
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[4], variable[5]) /*CompilerVisitor::add_assignment*/;
-  return_label301: while(false);
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*CompilerVisitor::add_assignment*/;
+  return_label297: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AVarReassignExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1082, LOCATE_compiling_methods___AVarReassignExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1062, LOCATE_compiling_methods___AVarReassignExpr___compile_stmt};
   val_t variable[17];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
-  variable[4] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___varname))(variable[4], variable[5]) /*CFunctionContext::varname*/;
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[5])(variable[5]) /*AVarFormExpr::variable*/;
+  variable[4] = CALL_compiling_methods___CFunctionContext___varname(variable[4])(variable[4], variable[5]) /*CFunctionContext::varname*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[5],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[5]) /*AReassignFormExpr::n_value*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[5])(variable[5]) /*AReassignFormExpr::n_value*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((typing___AReassignFormExpr___assign_method_t)CALL(variable[6],COLOR_typing___AReassignFormExpr___assign_method))(variable[6]) /*AReassignFormExpr::assign_method*/;
+  variable[6] = CALL_typing___AReassignFormExpr___assign_method(variable[6])(variable[6]) /*AReassignFormExpr::assign_method*/;
   variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[3] /*e1*/) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[4] /*e2*/) /*AbstractArray::add*/;
-  variable[6] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[6],COLOR_compiling_methods___MMMethod___compile_call))(variable[6],  variable[1] /*v*/, variable[7]) /*MMMethod::compile_call*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[3] /*e1*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[4] /*e2*/) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_methods___MMMethod___compile_call(variable[6])(variable[6],  variable[1] /*v*/, variable[7]) /*MMMethod::compile_call*/;
   variable[5] = variable[6];
-  variable[6] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[7] = variable[0];
-  variable[7] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[7],COLOR_syntax_base___AVarFormExpr___variable))(variable[7]) /*AVarFormExpr::variable*/;
-  variable[6] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[6],COLOR_compiling_methods___CFunctionContext___varname))(variable[6], variable[7]) /*CFunctionContext::varname*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = CALL_syntax_base___AVarFormExpr___variable(variable[7])(variable[7]) /*AVarFormExpr::variable*/;
+  variable[6] = CALL_compiling_methods___CFunctionContext___varname(variable[6])(variable[6], variable[7]) /*CFunctionContext::varname*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] =  variable[5] /*e3*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" /*"), TAG_Int(3)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
   variable[13] = variable[0];
-  variable[13] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[13],COLOR_syntax_base___AVarFormExpr___variable))(variable[13]) /*AVarFormExpr::variable*/;
-  variable[13] = ((syntax_base___Variable___name_t)CALL(variable[13],COLOR_syntax_base___Variable___name))(variable[13]) /*Variable::name*/;
+  variable[13] = CALL_syntax_base___AVarFormExpr___variable(variable[13])(variable[13]) /*AVarFormExpr::variable*/;
+  variable[13] = CALL_syntax_base___Variable___name(variable[13])(variable[13]) /*Variable::name*/;
   variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[16]) /*String::append*/;
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[6], variable[7]) /*CompilerVisitor::add_assignment*/;
-  return_label302: while(false);
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*CompilerVisitor::add_assignment*/;
+  return_label298: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___ASelfExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1092, LOCATE_compiling_methods___ASelfExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1072, LOCATE_compiling_methods___ASelfExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[4] = ((compiling_methods___NitMethodContext___method_params_t)CALL(variable[4],COLOR_compiling_methods___NitMethodContext___method_params))(variable[4]) /*NitMethodContext::method_params*/;
+  variable[3] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[4] = CALL_compiling_methods___NitMethodContext___method_params(variable[4])(variable[4]) /*NitMethodContext::method_params*/;
   variable[5] = variable[4];
   variable[6] =  TAG_Int(0);
   variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -8000,18 +8067,18 @@ val_t compiling_methods___ASelfExpr___compile_expr(val_t  self, val_t  param0) {
   variable[8] = ATTR_array___Array____items(variable[8]) /*Array::_items*/;
   variable[8] = UNBOX_NativeArray(variable[8])[UNTAG_Int( variable[6] /*index*/)];
   variable[7] = variable[8];
-  goto return_label304;
-  return_label304: while(false);
+  goto return_label300;
+  return_label300: while(false);
   variable[4] = variable[7];
-  variable[3] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[3],COLOR_compiling_methods___CFunctionContext___varname))(variable[3], variable[4]) /*CFunctionContext::varname*/;
+  variable[3] = CALL_compiling_methods___CFunctionContext___varname(variable[3])(variable[3], variable[4]) /*CFunctionContext::varname*/;
   variable[2] = variable[3];
-  goto return_label303;
-  return_label303: while(false);
+  goto return_label299;
+  return_label299: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AOrExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1099, LOCATE_compiling_methods___AOrExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1079, LOCATE_compiling_methods___AOrExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8019,39 +8086,40 @@ val_t compiling_methods___AOrExpr___compile_expr(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AOrExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AOrExpr___n_expr))(variable[4]) /*AOrExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::ensure_var*/;
+  variable[4] = CALL_parser_nodes___AOrExpr___n_expr(variable[4])(variable[4]) /*AOrExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::ensure_var*/;
   variable[3] = variable[4];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (!UNTAG_Bool("), TAG_Int(16)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")) { /* or */"), TAG_Int(13)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___free_var))(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[4])(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AOrExpr___n_expr2_t)CALL(variable[5],COLOR_parser_nodes___AOrExpr___n_expr2))(variable[5]) /*AOrExpr::n_expr2*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = CALL_parser_nodes___AOrExpr___n_expr2(variable[5])(variable[5]) /*AOrExpr::n_expr2*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[3] /*e*/,  variable[4] /*e2*/) /*CompilerVisitor::add_assignment*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*e*/,  variable[4] /*e2*/) /*CompilerVisitor::add_assignment*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
   variable[2] =  variable[3] /*e*/;
-  goto return_label305;
-  return_label305: while(false);
+  goto return_label301;
+  return_label301: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AAndExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1114, LOCATE_compiling_methods___AAndExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1094, LOCATE_compiling_methods___AAndExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8059,65 +8127,67 @@ val_t compiling_methods___AAndExpr___compile_expr(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::ensure_var*/;
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr(variable[4])(variable[4]) /*AAndExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::ensure_var*/;
   variable[3] = variable[4];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("if (UNTAG_Bool("), TAG_Int(15)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")) { /* and */"), TAG_Int(14)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[4],COLOR_compiling_methods___CFunctionContext___free_var))(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[4])(variable[4],  variable[3] /*e*/) /*CFunctionContext::free_var*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[5],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[5]) /*AAndExpr::n_expr2*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = CALL_parser_nodes___AAndExpr___n_expr2(variable[5])(variable[5]) /*AAndExpr::n_expr2*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[3] /*e*/,  variable[4] /*e2*/) /*CompilerVisitor::add_assignment*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*e*/,  variable[4] /*e2*/) /*CompilerVisitor::add_assignment*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
   variable[2] =  variable[3] /*e*/;
-  goto return_label306;
-  return_label306: while(false);
+  goto return_label302;
+  return_label302: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___ANotExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1129, LOCATE_compiling_methods___ANotExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1109, LOCATE_compiling_methods___ANotExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(!UNTAG_Bool("), TAG_Int(22)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ANotExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ANotExpr___n_expr))(variable[6]) /*ANotExpr::n_expr*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
+  variable[6] = CALL_parser_nodes___ANotExpr___n_expr(variable[6])(variable[6]) /*ANotExpr::n_expr*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label307;
-  return_label307: while(false);
+  goto return_label303;
+  return_label303: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AEeExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1136, LOCATE_compiling_methods___AEeExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1116, LOCATE_compiling_methods___AEeExpr___compile_expr};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8125,35 +8195,36 @@ val_t compiling_methods___AEeExpr___compile_expr(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AEeExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AEeExpr___n_expr))(variable[4]) /*AEeExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AEeExpr___n_expr(variable[4])(variable[4]) /*AEeExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AEeExpr___n_expr2_t)CALL(variable[5],COLOR_parser_nodes___AEeExpr___n_expr2))(variable[5]) /*AEeExpr::n_expr2*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = CALL_parser_nodes___AEeExpr___n_expr2(variable[5])(variable[5]) /*AEeExpr::n_expr2*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Bool(IS_EQUAL_NN("), TAG_Int(21)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*e*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[4] /*e2*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[2] = variable[5];
-  goto return_label308;
-  return_label308: while(false);
+  goto return_label304;
+  return_label304: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AIsaExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1145, LOCATE_compiling_methods___AIsaExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1125, LOCATE_compiling_methods___AIsaExpr___compile_expr};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8161,21 +8232,21 @@ val_t compiling_methods___AIsaExpr___compile_expr(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIsaExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIsaExpr___n_expr))(variable[4]) /*AIsaExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AIsaExpr___n_expr(variable[4])(variable[4]) /*AIsaExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIsaExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AIsaExpr___n_type))(variable[4]) /*AIsaExpr::n_type*/;
-  variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
-  variable[4] = ((compiling_methods___MMType___compile_cast_t)CALL(variable[4],COLOR_compiling_methods___MMType___compile_cast))(variable[4],  variable[1] /*v*/,  variable[3] /*e*/) /*MMType::compile_cast*/;
+  variable[4] = CALL_parser_nodes___AIsaExpr___n_type(variable[4])(variable[4]) /*AIsaExpr::n_type*/;
+  variable[4] = CALL_typing___PType___stype(variable[4])(variable[4]) /*PType::stype*/;
+  variable[4] = CALL_compiling_methods___MMType___compile_cast(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*e*/) /*MMType::compile_cast*/;
   variable[2] = variable[4];
-  goto return_label309;
-  return_label309: while(false);
+  goto return_label305;
+  return_label305: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AAsCastExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1153, LOCATE_compiling_methods___AAsCastExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1133, LOCATE_compiling_methods___AAsCastExpr___compile_expr};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8183,22 +8254,22 @@ val_t compiling_methods___AAsCastExpr___compile_expr(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAsCastExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAsCastExpr___n_expr))(variable[4]) /*AAsCastExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AAsCastExpr___n_expr(variable[4])(variable[4]) /*AAsCastExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAsCastExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AAsCastExpr___n_type))(variable[4]) /*AAsCastExpr::n_type*/;
-  variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
+  variable[4] = CALL_parser_nodes___AAsCastExpr___n_type(variable[4])(variable[4]) /*AAsCastExpr::n_type*/;
+  variable[4] = CALL_typing___PType___stype(variable[4])(variable[4]) /*PType::stype*/;
   variable[5] = variable[0];
-  ((compiling_methods___MMType___compile_type_check_t)CALL(variable[4],COLOR_compiling_methods___MMType___compile_type_check))(variable[4],  variable[1] /*v*/,  variable[3] /*e*/, variable[5]) /*MMType::compile_type_check*/;
+  CALL_compiling_methods___MMType___compile_type_check(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*e*/, variable[5]) /*MMType::compile_type_check*/;
   variable[2] =  variable[3] /*e*/;
-  goto return_label310;
-  return_label310: while(false);
+  goto return_label306;
+  return_label306: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___ATrueExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1162, LOCATE_compiling_methods___ATrueExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1142, LOCATE_compiling_methods___ATrueExpr___compile_expr};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8207,13 +8278,13 @@ val_t compiling_methods___ATrueExpr___compile_expr(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(true)"), TAG_Int(15)); /*new String*/
   variable[2] = variable[3];
-  goto return_label311;
-  return_label311: while(false);
+  goto return_label307;
+  return_label307: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AFalseExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1169, LOCATE_compiling_methods___AFalseExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1149, LOCATE_compiling_methods___AFalseExpr___compile_expr};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8222,161 +8293,155 @@ val_t compiling_methods___AFalseExpr___compile_expr(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Bool(false)"), TAG_Int(16)); /*new String*/
   variable[2] = variable[3];
-  goto return_label312;
-  return_label312: while(false);
+  goto return_label308;
+  return_label308: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AIntExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1176, LOCATE_compiling_methods___AIntExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1156, LOCATE_compiling_methods___AIntExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Int("), TAG_Int(9)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AIntExpr___n_number_t)CALL(variable[6],COLOR_parser_nodes___AIntExpr___n_number))(variable[6]) /*AIntExpr::n_number*/;
-  variable[6] = ((lexer___Token___text_t)CALL(variable[6],COLOR_lexer___Token___text))(variable[6]) /*Token::text*/;
+  variable[6] = CALL_parser_nodes___AIntExpr___n_number(variable[6])(variable[6]) /*AIntExpr::n_number*/;
+  variable[6] = CALL_lexer___Token___text(variable[6])(variable[6]) /*Token::text*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label313;
-  return_label313: while(false);
+  goto return_label309;
+  return_label309: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AFloatExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1183, LOCATE_compiling_methods___AFloatExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1163, LOCATE_compiling_methods___AFloatExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("BOX_Float("), TAG_Int(10)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AFloatExpr___n_float_t)CALL(variable[6],COLOR_parser_nodes___AFloatExpr___n_float))(variable[6]) /*AFloatExpr::n_float*/;
-  variable[6] = ((lexer___Token___text_t)CALL(variable[6],COLOR_lexer___Token___text))(variable[6]) /*Token::text*/;
+  variable[6] = CALL_parser_nodes___AFloatExpr___n_float(variable[6])(variable[6]) /*AFloatExpr::n_float*/;
+  variable[6] = CALL_lexer___Token___text(variable[6])(variable[6]) /*Token::text*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label314;
-  return_label314: while(false);
+  goto return_label310;
+  return_label310: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___ACharExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1190, LOCATE_compiling_methods___ACharExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1170, LOCATE_compiling_methods___ACharExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString(" TAG_Char("), TAG_Int(10)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ACharExpr___n_char_t)CALL(variable[6],COLOR_parser_nodes___ACharExpr___n_char))(variable[6]) /*ACharExpr::n_char*/;
-  variable[6] = ((lexer___Token___text_t)CALL(variable[6],COLOR_lexer___Token___text))(variable[6]) /*Token::text*/;
+  variable[6] = CALL_parser_nodes___ACharExpr___n_char(variable[6])(variable[6]) /*ACharExpr::n_char*/;
+  variable[6] = CALL_lexer___Token___text(variable[6])(variable[6]) /*Token::text*/;
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
-  goto return_label315;
-  return_label315: while(false);
+  goto return_label311;
+  return_label311: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AStringFormExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1197, LOCATE_compiling_methods___AStringFormExpr___compile_expr};
-  static val_t once_value_317; static int once_bool_317; /* Once value for variable[5]*/
+  struct trace_t trace = {NULL, NULL, 1177, LOCATE_compiling_methods___AStringFormExpr___compile_expr};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
+  variable[3] = variable[0];
+  CALL_compiling_methods___AStringFormExpr___compute_string_info(variable[3])(variable[3]) /*AStringFormExpr::compute_string_info*/;
+  variable[3] = variable[0];
+  variable[3] = CALL_typing___AStringFormExpr___meth_with_native(variable[3])(variable[3]) /*AStringFormExpr::meth_with_native*/;
   variable[4] = variable[0];
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
-  variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
-  if (once_bool_317) variable[5] = once_value_317;
-  else {
-    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("with_native"), TAG_Int(11)); /*new String*/
-    variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
-    once_value_317 = variable[5];
-    once_bool_317 = true;
-  }
-  variable[4] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[4], variable[5]) /*MMLocalClass::select_method*/;
-  variable[3] = variable[4];
-  variable[4] = variable[0];
-  ((compiling_methods___AStringFormExpr___compute_string_info_t)CALL(variable[4],COLOR_compiling_methods___AStringFormExpr___compute_string_info))(variable[4]) /*AStringFormExpr::compute_string_info*/;
-  variable[4] = variable[0];
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
   variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("BOX_NativeString(\""), TAG_Int(18)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
   variable[9] = ATTR_compiling_methods___AStringFormExpr____cstring(variable[9]) /*AStringFormExpr::_cstring*/;
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("\")"), TAG_Int(2)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[6]) /*AbstractArray::add*/;
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
   variable[10] = ATTR_compiling_methods___AStringFormExpr____cstring_length(variable[10]) /*AStringFormExpr::_cstring_length*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[7]) /*AbstractArray::add*/;
-  variable[4] = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable[3] /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable[3] /*prop*/,  variable[1] /*v*/, variable[4], variable[5]) /*MMMethod::compile_constructor_call*/;
-  variable[2] = variable[4];
-  goto return_label316;
-  return_label316: while(false);
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+  variable[3] = CALL_compiling_methods___MMMethod___compile_constructor_call(variable[3])(variable[3],  variable[1] /*v*/, variable[4], variable[5]) /*MMMethod::compile_constructor_call*/;
+  variable[2] = variable[3];
+  goto return_label312;
+  return_label312: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AStringFormExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1204, LOCATE_compiling_methods___AStringFormExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1183, LOCATE_compiling_methods___AStringFormExpr___string_text};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1204);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1183);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 void compiling_methods___AStringFormExpr___compute_string_info(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1213, LOCATE_compiling_methods___AStringFormExpr___compute_string_info};
+  struct trace_t trace = {NULL, NULL, 1192, LOCATE_compiling_methods___AStringFormExpr___compute_string_info};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8384,22 +8449,22 @@ void compiling_methods___AStringFormExpr___compute_string_info(val_t  self) {
   variable[0] =  self;
   variable[2] =  TAG_Int(0);
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___AStringFormExpr___string_text_t)CALL(variable[4],COLOR_compiling_methods___AStringFormExpr___string_text))(variable[4]) /*AStringFormExpr::string_text*/;
+  variable[4] = CALL_compiling_methods___AStringFormExpr___string_text(variable[4])(variable[4]) /*AStringFormExpr::string_text*/;
   variable[3] = variable[4];
   variable[5] = NEW_String_string___String___init(); /*new String*/
   variable[4] = variable[5];
   variable[5] =  TAG_Int(0);
   while (true) { /*while*/
-    variable[6] = ((array___AbstractArray___length_t)CALL( variable[3] /*str*/,COLOR_abstract_collection___Collection___length))( variable[3] /*str*/) /*AbstractArray::length*/;
+    variable[6] = CALL_abstract_collection___Collection___length( variable[3] /*str*/)( variable[3] /*str*/) /*AbstractArray::length*/;
     variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*i*/)<UNTAG_Int(variable[6]));
     if (!UNTAG_Bool(variable[6])) break; /* while*/
-    variable[7] = ((string___String_____bra_t)CALL( variable[3] /*str*/,COLOR_abstract_collection___Map_____bra))( variable[3] /*str*/,  variable[5] /*i*/) /*String::[]*/;
+    variable[7] = CALL_abstract_collection___Map_____bra( variable[3] /*str*/)( variable[3] /*str*/,  variable[5] /*i*/) /*String::[]*/;
     variable[6] = variable[7];
     variable[7] = TAG_Bool(( variable[6] /*c*/)==( TAG_Char('\\')));
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[7] = TAG_Int(UNTAG_Int( variable[5] /*i*/)+UNTAG_Int( TAG_Int(1)));
       variable[5] = variable[7] /*i=*/;
-      variable[8] = ((string___String_____bra_t)CALL( variable[3] /*str*/,COLOR_abstract_collection___Map_____bra))( variable[3] /*str*/,  variable[5] /*i*/) /*String::[]*/;
+      variable[8] = CALL_abstract_collection___Map_____bra( variable[3] /*str*/)( variable[3] /*str*/,  variable[5] /*i*/) /*String::[]*/;
       variable[7] = variable[8];
       variable[8] = TAG_Bool(( variable[7] /*c2*/)!=( TAG_Char('{')));
       variable[9] = variable[8];
@@ -8408,203 +8473,190 @@ void compiling_methods___AStringFormExpr___compute_string_info(val_t  self) {
       }
       variable[8] = variable[9];
       if (UNTAG_Bool(variable[8])) { /*if*/
-        ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  variable[6] /*c*/) /*String::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[6] /*c*/) /*String::add*/;
       }
       variable[6] =  variable[7] /*c2*/ /*c=*/;
     }
     variable[7] = TAG_Int(UNTAG_Int( variable[2] /*len*/)+UNTAG_Int( TAG_Int(1)));
     variable[2] = variable[7] /*len=*/;
-    ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  variable[6] /*c*/) /*String::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[6] /*c*/) /*String::add*/;
     variable[7] = TAG_Int(UNTAG_Int( variable[5] /*i*/)+UNTAG_Int( TAG_Int(1)));
     variable[5] = variable[7] /*i=*/;
-    continue_319: while(0);
+    continue_314: while(0);
   }
-  break_319: while(0);
+  break_314: while(0);
   variable[6] = variable[0];
   ATTR_compiling_methods___AStringFormExpr____cstring(variable[6]) /*AStringFormExpr::_cstring*/ =  variable[4] /*res*/;
   variable[6] = variable[0];
   ATTR_compiling_methods___AStringFormExpr____cstring_length(variable[6]) /*AStringFormExpr::_cstring_length*/ =  variable[2] /*len*/;
-  return_label318: while(false);
+  return_label313: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___AStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1240, LOCATE_compiling_methods___AStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1219, LOCATE_compiling_methods___AStringExpr___string_text};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AStringExpr___n_string_t)CALL(variable[2],COLOR_parser_nodes___AStringExpr___n_string))(variable[2]) /*AStringExpr::n_string*/;
-  variable[2] = ((lexer___Token___text_t)CALL(variable[2],COLOR_lexer___Token___text))(variable[2]) /*Token::text*/;
+  variable[2] = CALL_parser_nodes___AStringExpr___n_string(variable[2])(variable[2]) /*AStringExpr::n_string*/;
+  variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AStringExpr___n_string_t)CALL(variable[3],COLOR_parser_nodes___AStringExpr___n_string))(variable[3]) /*AStringExpr::n_string*/;
-  variable[3] = ((lexer___Token___text_t)CALL(variable[3],COLOR_lexer___Token___text))(variable[3]) /*Token::text*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_parser_nodes___AStringExpr___n_string(variable[3])(variable[3]) /*AStringExpr::n_string*/;
+  variable[3] = CALL_lexer___Token___text(variable[3])(variable[3]) /*Token::text*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = ((string___String___substring_t)CALL(variable[2],COLOR_string___String___substring))(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
   variable[1] = variable[2];
-  goto return_label320;
-  return_label320: while(false);
+  goto return_label315;
+  return_label315: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_methods___AStartStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1243, LOCATE_compiling_methods___AStartStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1222, LOCATE_compiling_methods___AStartStringExpr___string_text};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AStartStringExpr___n_string_t)CALL(variable[2],COLOR_parser_nodes___AStartStringExpr___n_string))(variable[2]) /*AStartStringExpr::n_string*/;
-  variable[2] = ((lexer___Token___text_t)CALL(variable[2],COLOR_lexer___Token___text))(variable[2]) /*Token::text*/;
+  variable[2] = CALL_parser_nodes___AStartStringExpr___n_string(variable[2])(variable[2]) /*AStartStringExpr::n_string*/;
+  variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AStartStringExpr___n_string_t)CALL(variable[3],COLOR_parser_nodes___AStartStringExpr___n_string))(variable[3]) /*AStartStringExpr::n_string*/;
-  variable[3] = ((lexer___Token___text_t)CALL(variable[3],COLOR_lexer___Token___text))(variable[3]) /*Token::text*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_parser_nodes___AStartStringExpr___n_string(variable[3])(variable[3]) /*AStartStringExpr::n_string*/;
+  variable[3] = CALL_lexer___Token___text(variable[3])(variable[3]) /*Token::text*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = ((string___String___substring_t)CALL(variable[2],COLOR_string___String___substring))(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
   variable[1] = variable[2];
-  goto return_label321;
-  return_label321: while(false);
+  goto return_label316;
+  return_label316: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_methods___AMidStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1246, LOCATE_compiling_methods___AMidStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1225, LOCATE_compiling_methods___AMidStringExpr___string_text};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AMidStringExpr___n_string_t)CALL(variable[2],COLOR_parser_nodes___AMidStringExpr___n_string))(variable[2]) /*AMidStringExpr::n_string*/;
-  variable[2] = ((lexer___Token___text_t)CALL(variable[2],COLOR_lexer___Token___text))(variable[2]) /*Token::text*/;
+  variable[2] = CALL_parser_nodes___AMidStringExpr___n_string(variable[2])(variable[2]) /*AMidStringExpr::n_string*/;
+  variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AMidStringExpr___n_string_t)CALL(variable[3],COLOR_parser_nodes___AMidStringExpr___n_string))(variable[3]) /*AMidStringExpr::n_string*/;
-  variable[3] = ((lexer___Token___text_t)CALL(variable[3],COLOR_lexer___Token___text))(variable[3]) /*Token::text*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_parser_nodes___AMidStringExpr___n_string(variable[3])(variable[3]) /*AMidStringExpr::n_string*/;
+  variable[3] = CALL_lexer___Token___text(variable[3])(variable[3]) /*Token::text*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = ((string___String___substring_t)CALL(variable[2],COLOR_string___String___substring))(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
   variable[1] = variable[2];
-  goto return_label322;
-  return_label322: while(false);
+  goto return_label317;
+  return_label317: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_methods___AEndStringExpr___string_text(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1249, LOCATE_compiling_methods___AEndStringExpr___string_text};
+  struct trace_t trace = {NULL, NULL, 1228, LOCATE_compiling_methods___AEndStringExpr___string_text};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AEndStringExpr___n_string_t)CALL(variable[2],COLOR_parser_nodes___AEndStringExpr___n_string))(variable[2]) /*AEndStringExpr::n_string*/;
-  variable[2] = ((lexer___Token___text_t)CALL(variable[2],COLOR_lexer___Token___text))(variable[2]) /*Token::text*/;
+  variable[2] = CALL_parser_nodes___AEndStringExpr___n_string(variable[2])(variable[2]) /*AEndStringExpr::n_string*/;
+  variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AEndStringExpr___n_string_t)CALL(variable[3],COLOR_parser_nodes___AEndStringExpr___n_string))(variable[3]) /*AEndStringExpr::n_string*/;
-  variable[3] = ((lexer___Token___text_t)CALL(variable[3],COLOR_lexer___Token___text))(variable[3]) /*Token::text*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_parser_nodes___AEndStringExpr___n_string(variable[3])(variable[3]) /*AEndStringExpr::n_string*/;
+  variable[3] = CALL_lexer___Token___text(variable[3])(variable[3]) /*Token::text*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(2)));
-  variable[2] = ((string___String___substring_t)CALL(variable[2],COLOR_string___String___substring))(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
+  variable[2] = CALL_string___String___substring(variable[2])(variable[2],  TAG_Int(1), variable[3]) /*String::substring*/;
   variable[1] = variable[2];
-  goto return_label323;
-  return_label323: while(false);
+  goto return_label318;
+  return_label318: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t compiling_methods___ASuperstringExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1253, LOCATE_compiling_methods___ASuperstringExpr___compile_expr};
-  static val_t once_value_325; static int once_bool_325; /* Once value for variable[5]*/
-  static val_t once_value_326; static int once_bool_326; /* Once value for variable[7]*/
-  static val_t once_value_327; static int once_bool_327; /* Once value for variable[8]*/
-  val_t variable[13];
+  struct trace_t trace = {NULL, NULL, 1232, LOCATE_compiling_methods___ASuperstringExpr___compile_expr};
+  val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
-  variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
-  if (once_bool_325) variable[5] = once_value_325;
-  else {
-    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-    variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
-    once_value_325 = variable[5];
-    once_bool_325 = true;
-  }
-  variable[4] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[4], variable[5]) /*MMLocalClass::select_method*/;
-  variable[3] = variable[4];
+  variable[4] = CALL_typing___ASuperstringExpr___meth_with_capacity(variable[4])(variable[4]) /*ASuperstringExpr::meth_with_capacity*/;
   variable[5] = variable[0];
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
-  variable[6] = NEW_Array_array___Array___init(); /*new Array[String]*/
-  variable[5] = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable[3] /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable[3] /*prop*/,  variable[1] /*v*/, variable[5], variable[6]) /*MMMethod::compile_constructor_call*/;
-  variable[4] = variable[5];
-  variable[6] = variable[0];
-  variable[6] = ((typing___PExpr___stype_t)CALL(variable[6],COLOR_syntax_base___PExpr___stype))(variable[6]) /*PExpr::stype*/;
-  variable[6] = ((static_type___MMType___local_class_t)CALL(variable[6],COLOR_static_type___MMType___local_class))(variable[6]) /*MMType::local_class*/;
-  if (once_bool_326) variable[7] = once_value_326;
-  else {
-    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("append"), TAG_Int(6)); /*new String*/
-    variable[7] = ((symbol___String___to_symbol_t)CALL(variable[7],COLOR_symbol___String___to_symbol))(variable[7]) /*String::to_symbol*/;
-    once_value_326 = variable[7];
-    once_bool_326 = true;
-  }
-  variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[6], variable[7]) /*MMLocalClass::select_method*/;
-  variable[5] = variable[6];
-  variable[7] = variable[0];
-  variable[7] = ((typing___PExpr___stype_t)CALL(variable[7],COLOR_syntax_base___PExpr___stype))(variable[7]) /*PExpr::stype*/;
-  variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
-  if (once_bool_327) variable[8] = once_value_327;
-  else {
-    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("to_s"), TAG_Int(4)); /*new String*/
-    variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
-    once_value_327 = variable[8];
-    once_bool_327 = true;
-  }
-  variable[7] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[7], variable[8]) /*MMLocalClass::select_method*/;
-  variable[6] = variable[7];
-  variable[7] = variable[0];
-  variable[7] = ((parser_nodes___ASuperstringExpr___n_exprs_t)CALL(variable[7],COLOR_parser_nodes___ASuperstringExpr___n_exprs))(variable[7]) /*ASuperstringExpr::n_exprs*/;
-  variable[7] = ((list___List___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*List::iterator*/;
+  variable[5] = CALL_typing___ASuperstringExpr___atype(variable[5])(variable[5]) /*ASuperstringExpr::atype*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+  variable[8] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)); /*new String*/
+  variable[9] = variable[8];
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+  variable[10] = variable[0];
+  variable[10] = CALL_parser_nodes___ASuperstringExpr___n_exprs(variable[10])(variable[10]) /*ASuperstringExpr::n_exprs*/;
+  variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*List::length*/;
+  variable[11] = variable[10];
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
+  variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
+  variable[13] = variable[12];
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[4] = CALL_compiling_methods___MMMethod___compile_constructor_call(variable[4])(variable[4],  variable[1] /*v*/, variable[5], variable[6]) /*MMMethod::compile_constructor_call*/;
+  variable[3] = variable[4];
+  variable[4] = variable[0];
+  variable[4] = CALL_parser_nodes___ASuperstringExpr___n_exprs(variable[4])(variable[4]) /*ASuperstringExpr::n_exprs*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((list___ListIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ListIterator::is_ok*/;
-    if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((list___ListIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ListIterator::item*/;
-    variable[9] = variable[8];
-    variable[11] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/,  variable[9] /*ne*/) /*CompilerVisitor::compile_expr*/;
-    variable[11] = ((compiling_methods___CompilerVisitor___ensure_var_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___ensure_var))( variable[1] /*v*/, variable[11]) /*CompilerVisitor::ensure_var*/;
-    variable[10] = variable[11];
-    variable[11] = ((typing___PExpr___stype_t)CALL( variable[9] /*ne*/,COLOR_syntax_base___PExpr___stype))( variable[9] /*ne*/) /*PExpr::stype*/;
-    variable[12] = variable[0];
-    variable[12] = ((typing___PExpr___stype_t)CALL(variable[12],COLOR_syntax_base___PExpr___stype))(variable[12]) /*PExpr::stype*/;
-    variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[11] == variable[12]) || ((variable[11] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11],variable[12])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))(variable[11], variable[12]) /*Object::==*/)))))));
-    if (UNTAG_Bool(variable[11])) { /*if*/
-      variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-      ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  variable[10] /*e*/) /*AbstractArray::add*/;
-      variable[11] = ((compiling_methods___MMMethod___compile_call_t)CALL( variable[6] /*prop3*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[6] /*prop3*/,  variable[1] /*v*/, variable[11]) /*MMMethod::compile_call*/;
-      ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[10] /*e*/, variable[11]) /*CompilerVisitor::add_assignment*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable[5])) break; /*for*/
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/;
+    variable[6] = variable[5];
+    variable[8] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*ne*/) /*CompilerVisitor::compile_expr*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___ensure_var( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::ensure_var*/;
+    variable[7] = variable[8];
+    variable[8] = CALL_syntax_base___PExpr___stype( variable[6] /*ne*/)( variable[6] /*ne*/) /*PExpr::stype*/;
+    variable[9] = variable[0];
+    variable[9] = CALL_syntax_base___PExpr___stype(variable[9])(variable[9]) /*PExpr::stype*/;
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], variable[9]) /*Object::==*/)))))));
+    if (UNTAG_Bool(variable[8])) { /*if*/
+      variable[8] = variable[0];
+      variable[8] = CALL_typing___ASuperstringExpr___meth_to_s(variable[8])(variable[8]) /*ASuperstringExpr::meth_to_s*/;
+      variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[7] /*e*/) /*AbstractArray::add*/;
+      variable[8] = CALL_compiling_methods___MMMethod___compile_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_call*/;
+      CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*e*/, variable[8]) /*CompilerVisitor::add_assignment*/;
     }
-    variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  variable[4] /*recv*/) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  variable[10] /*e*/) /*AbstractArray::add*/;
-    ((compiling_methods___MMMethod___compile_call_t)CALL( variable[5] /*prop2*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[5] /*prop2*/,  variable[1] /*v*/, variable[11]) /*MMMethod::compile_call*/;
-    continue_328: while(0);
-    ((list___ListIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ListIterator::next*/;
+    variable[8] = variable[0];
+    variable[8] = CALL_typing___ASuperstringExpr___meth_add(variable[8])(variable[8]) /*ASuperstringExpr::meth_add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[3] /*array*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[7] /*e*/) /*AbstractArray::add*/;
+    CALL_compiling_methods___MMMethod___compile_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_call*/;
+    continue_320: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/;
   }
-  break_328: while(0);
-  variable[2] =  variable[4] /*recv*/;
-  goto return_label324;
-  return_label324: while(false);
+  break_320: while(0);
+  variable[4] = variable[0];
+  variable[4] = CALL_typing___ASuperstringExpr___meth_to_s(variable[4])(variable[4]) /*ASuperstringExpr::meth_to_s*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  variable[3] /*array*/) /*AbstractArray::add*/;
+  variable[4] = CALL_compiling_methods___MMMethod___compile_call(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*MMMethod::compile_call*/;
+  variable[2] = variable[4];
+  goto return_label319;
+  return_label319: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___ANullExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1274, LOCATE_compiling_methods___ANullExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1249, LOCATE_compiling_methods___ANullExpr___compile_expr};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8613,15 +8665,13 @@ val_t compiling_methods___ANullExpr___compile_expr(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" NIT_NULL /*null*/"), TAG_Int(18)); /*new String*/
   variable[2] = variable[3];
-  goto return_label329;
-  return_label329: while(false);
+  goto return_label321;
+  return_label321: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AArrayExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1281, LOCATE_compiling_methods___AArrayExpr___compile_expr};
-  static val_t once_value_331; static int once_bool_331; /* Once value for variable[5]*/
-  static val_t once_value_332; static int once_bool_332; /* Once value for variable[7]*/
+  struct trace_t trace = {NULL, NULL, 1256, LOCATE_compiling_methods___AArrayExpr___compile_expr};
   val_t variable[14];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8629,74 +8679,55 @@ val_t compiling_methods___AArrayExpr___compile_expr(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
-  variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
-  if (once_bool_331) variable[5] = once_value_331;
-  else {
-    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)); /*new String*/
-    variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
-    once_value_331 = variable[5];
-    once_bool_331 = true;
-  }
-  variable[4] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[4], variable[5]) /*MMLocalClass::select_method*/;
-  variable[3] = variable[4];
+  variable[4] = CALL_typing___AArrayExpr___meth_with_capacity(variable[4])(variable[4]) /*AArrayExpr::meth_with_capacity*/;
   variable[5] = variable[0];
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
   variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("TAG_Int("), TAG_Int(8)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((parser_nodes___AArrayExpr___n_exprs_t)CALL(variable[10],COLOR_parser_nodes___AArrayExpr___n_exprs))(variable[10]) /*AArrayExpr::n_exprs*/;
-  variable[10] = ((list___List___length_t)CALL(variable[10],COLOR_abstract_collection___Collection___length))(variable[10]) /*List::length*/;
+  variable[10] = CALL_parser_nodes___AArrayExpr___n_exprs(variable[10])(variable[10]) /*AArrayExpr::n_exprs*/;
+  variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*List::length*/;
   variable[11] = variable[10];
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[7]) /*AbstractArray::add*/;
-  variable[5] = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable[3] /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable[3] /*prop*/,  variable[1] /*v*/, variable[5], variable[6]) /*MMMethod::compile_constructor_call*/;
-  variable[4] = variable[5];
-  variable[6] = variable[0];
-  variable[6] = ((typing___PExpr___stype_t)CALL(variable[6],COLOR_syntax_base___PExpr___stype))(variable[6]) /*PExpr::stype*/;
-  variable[6] = ((static_type___MMType___local_class_t)CALL(variable[6],COLOR_static_type___MMType___local_class))(variable[6]) /*MMType::local_class*/;
-  if (once_bool_332) variable[7] = once_value_332;
-  else {
-    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)); /*new String*/
-    variable[7] = ((symbol___String___to_symbol_t)CALL(variable[7],COLOR_symbol___String___to_symbol))(variable[7]) /*String::to_symbol*/;
-    once_value_332 = variable[7];
-    once_bool_332 = true;
-  }
-  variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[6], variable[7]) /*MMLocalClass::select_method*/;
-  variable[5] = variable[6];
-  variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AArrayExpr___n_exprs_t)CALL(variable[6],COLOR_parser_nodes___AArrayExpr___n_exprs))(variable[6]) /*AArrayExpr::n_exprs*/;
-  variable[6] = ((list___List___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*List::iterator*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+  variable[4] = CALL_compiling_methods___MMMethod___compile_constructor_call(variable[4])(variable[4],  variable[1] /*v*/, variable[5], variable[6]) /*MMMethod::compile_constructor_call*/;
+  variable[3] = variable[4];
+  variable[4] = variable[0];
+  variable[4] = CALL_parser_nodes___AArrayExpr___n_exprs(variable[4])(variable[4]) /*AArrayExpr::n_exprs*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((list___ListIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ListIterator::is_ok*/;
-    if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((list___ListIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ListIterator::item*/;
-    variable[8] = variable[7];
-    variable[10] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/,  variable[8] /*ne*/) /*CompilerVisitor::compile_expr*/;
-    variable[9] = variable[10];
-    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  variable[4] /*recv*/) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  variable[9] /*e*/) /*AbstractArray::add*/;
-    ((compiling_methods___MMMethod___compile_call_t)CALL( variable[5] /*prop2*/,COLOR_compiling_methods___MMMethod___compile_call))( variable[5] /*prop2*/,  variable[1] /*v*/, variable[10]) /*MMMethod::compile_call*/;
-    continue_333: while(0);
-    ((list___ListIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ListIterator::next*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ListIterator::is_ok*/;
+    if (!UNTAG_Bool(variable[5])) break; /*for*/
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/;
+    variable[6] = variable[5];
+    variable[8] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*ne*/) /*CompilerVisitor::compile_expr*/;
+    variable[7] = variable[8];
+    variable[8] = variable[0];
+    variable[8] = CALL_typing___AArrayExpr___meth_add(variable[8])(variable[8]) /*AArrayExpr::meth_add*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[3] /*recv*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[7] /*e*/) /*AbstractArray::add*/;
+    CALL_compiling_methods___MMMethod___compile_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_call*/;
+    continue_323: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/;
   }
-  break_333: while(0);
-  variable[2] =  variable[4] /*recv*/;
-  goto return_label330;
-  return_label330: while(false);
+  break_323: while(0);
+  variable[2] =  variable[3] /*recv*/;
+  goto return_label322;
+  return_label322: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___ARangeExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1296, LOCATE_compiling_methods___ARangeExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1269, LOCATE_compiling_methods___ARangeExpr___compile_expr};
   val_t variable[8];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8704,116 +8735,57 @@ val_t compiling_methods___ARangeExpr___compile_expr(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
-  variable[4] = ((static_type___MMType___local_class_t)CALL(variable[4],COLOR_static_type___MMType___local_class))(variable[4]) /*MMType::local_class*/;
-  variable[5] = variable[0];
-  variable[5] = ((compiling_methods___ARangeExpr___propname_t)CALL(variable[5],COLOR_compiling_methods___ARangeExpr___propname))(variable[5]) /*ARangeExpr::propname*/;
-  variable[4] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[4], variable[5]) /*MMLocalClass::select_method*/;
+  variable[4] = CALL_parser_nodes___ARangeExpr___n_expr(variable[4])(variable[4]) /*ARangeExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ARangeExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ARangeExpr___n_expr))(variable[5]) /*ARangeExpr::n_expr*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = CALL_parser_nodes___ARangeExpr___n_expr2(variable[5])(variable[5]) /*ARangeExpr::n_expr2*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
+  variable[5] = variable[0];
+  variable[5] = CALL_typing___ARangeExpr___meth_init(variable[5])(variable[5]) /*ARangeExpr::meth_init*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ARangeExpr___n_expr2_t)CALL(variable[6],COLOR_parser_nodes___ARangeExpr___n_expr2))(variable[6]) /*ARangeExpr::n_expr2*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
-  variable[5] = variable[6];
-  variable[6] = variable[0];
-  variable[6] = ((typing___PExpr___stype_t)CALL(variable[6],COLOR_syntax_base___PExpr___stype))(variable[6]) /*PExpr::stype*/;
+  variable[6] = CALL_syntax_base___PExpr___stype(variable[6])(variable[6]) /*PExpr::stype*/;
   variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[4] /*e*/) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[5] /*e2*/) /*AbstractArray::add*/;
-  variable[6] = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL( variable[3] /*prop*/,COLOR_compiling_methods___MMMethod___compile_constructor_call))( variable[3] /*prop*/,  variable[1] /*v*/, variable[6], variable[7]) /*MMMethod::compile_constructor_call*/;
-  variable[2] = variable[6];
-  goto return_label334;
-  return_label334: while(false);
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[3] /*e*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[4] /*e2*/) /*AbstractArray::add*/;
+  variable[5] = CALL_compiling_methods___MMMethod___compile_constructor_call(variable[5])(variable[5],  variable[1] /*v*/, variable[6], variable[7]) /*MMMethod::compile_constructor_call*/;
+  variable[2] = variable[5];
+  goto return_label324;
+  return_label324: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
-val_t compiling_methods___ARangeExpr___propname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1303, LOCATE_compiling_methods___ARangeExpr___propname};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1303);
-  nit_exit(1);
-  tracehead = trace.prev;
-  return NIT_NULL;
-}
-val_t compiling_methods___ACrangeExpr___propname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1308, LOCATE_compiling_methods___ACrangeExpr___propname};
-  static val_t once_value_336; static int once_bool_336; /* Once value for variable[2]*/
-  val_t variable[3];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  if (once_bool_336) variable[2] = once_value_336;
-  else {
-    variable[2] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_336 = variable[2];
-    once_bool_336 = true;
-  }
-  variable[1] = variable[2];
-  goto return_label335;
-  return_label335: while(false);
-  tracehead = trace.prev;
-  return variable[1];
-}
-val_t compiling_methods___AOrangeExpr___propname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1311, LOCATE_compiling_methods___AOrangeExpr___propname};
-  static val_t once_value_338; static int once_bool_338; /* Once value for variable[2]*/
-  val_t variable[3];
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_compiling_methods;
-  variable[0] =  self;
-  if (once_bool_338) variable[2] = once_value_338;
-  else {
-    variable[2] = NEW_String_string___String___with_native(BOX_NativeString("without_last"), TAG_Int(12)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_338 = variable[2];
-    once_bool_338 = true;
-  }
-  variable[1] = variable[2];
-  goto return_label337;
-  return_label337: while(false);
-  tracehead = trace.prev;
-  return variable[1];
-}
 val_t compiling_methods___ASuperExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1321, LOCATE_compiling_methods___ASuperExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1284, LOCATE_compiling_methods___ASuperExpr___compile_expr};
   val_t variable[16];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[4] = ((compiling_methods___NitMethodContext___method_params_t)CALL(variable[4],COLOR_compiling_methods___NitMethodContext___method_params))(variable[4]) /*NitMethodContext::method_params*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[4] = CALL_compiling_methods___NitMethodContext___method_params(variable[4])(variable[4]) /*NitMethodContext::method_params*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((typing___ASuperExpr___init_in_superclass_t)CALL(variable[4],COLOR_typing___ASuperExpr___init_in_superclass))(variable[4]) /*ASuperExpr::init_in_superclass*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_typing___ASuperExpr___init_in_superclass(variable[4])(variable[4]) /*ASuperExpr::init_in_superclass*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((typing___ASuperExpr___init_in_superclass_t)CALL(variable[4],COLOR_typing___ASuperExpr___init_in_superclass))(variable[4]) /*ASuperExpr::init_in_superclass*/;
-    variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
-    variable[4] = ((static_type___MMSignature___arity_t)CALL(variable[4],COLOR_static_type___MMSignature___arity))(variable[4]) /*MMSignature::arity*/;
+    variable[4] = CALL_typing___ASuperExpr___init_in_superclass(variable[4])(variable[4]) /*ASuperExpr::init_in_superclass*/;
+    variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+    variable[4] = CALL_static_type___MMSignature___arity(variable[4])(variable[4]) /*MMSignature::arity*/;
     variable[3] = variable[4] /*arity=*/;
   }
   variable[5] = TAG_Int(UNTAG_Int( variable[3] /*arity*/)+UNTAG_Int( TAG_Int(1)));
   variable[6] = NEW_Array_array___Array___with_capacity(variable[5]); /*new Array[String]*/
   variable[5] = variable[6];
   variable[4] = variable[5];
-  variable[5] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[6] = ((compiling_methods___NitMethodContext___method_params_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___method_params))(variable[6]) /*NitMethodContext::method_params*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[6] = CALL_compiling_methods___NitMethodContext___method_params(variable[6])(variable[6]) /*NitMethodContext::method_params*/;
   variable[7] = variable[6];
   variable[8] =  TAG_Int(0);
   variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -8829,26 +8801,26 @@ val_t compiling_methods___ASuperExpr___compile_expr(val_t  self, val_t  param0)
   variable[10] = ATTR_array___Array____items(variable[10]) /*Array::_items*/;
   variable[10] = UNBOX_NativeArray(variable[10])[UNTAG_Int( variable[8] /*index*/)];
   variable[9] = variable[10];
-  goto return_label340;
-  return_label340: while(false);
+  goto return_label326;
+  return_label326: while(false);
   variable[6] = variable[9];
-  variable[5] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[5],COLOR_compiling_methods___CFunctionContext___varname))(variable[5], variable[6]) /*CFunctionContext::varname*/;
-  ((array___AbstractArray___add_t)CALL( variable[4] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*args*/, variable[5]) /*AbstractArray::add*/;
+  variable[5] = CALL_compiling_methods___CFunctionContext___varname(variable[5])(variable[5], variable[6]) /*CFunctionContext::varname*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[4] /*args*/)( variable[4] /*args*/, variable[5]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ASuperExpr___n_args_t)CALL(variable[5],COLOR_parser_nodes___ASuperExpr___n_args))(variable[5]) /*ASuperExpr::n_args*/;
-  variable[5] = ((list___List___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*List::length*/;
+  variable[5] = CALL_parser_nodes___ASuperExpr___n_args(variable[5])(variable[5]) /*ASuperExpr::n_args*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*List::length*/;
   variable[5] = TAG_Bool((variable[5])!=( variable[3] /*arity*/));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[3] /*arity*/); /*new Range[Int]*/
-    variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
       variable[7] = variable[6];
-      variable[8] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-      variable[9] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-      variable[9] = ((compiling_methods___NitMethodContext___method_params_t)CALL(variable[9],COLOR_compiling_methods___NitMethodContext___method_params))(variable[9]) /*NitMethodContext::method_params*/;
+      variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+      variable[9] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+      variable[9] = CALL_compiling_methods___NitMethodContext___method_params(variable[9])(variable[9]) /*NitMethodContext::method_params*/;
       variable[10] = TAG_Int(UNTAG_Int( variable[7] /*i*/)+UNTAG_Int( TAG_Int(1)));
       variable[11] = variable[9];
       variable[12] = variable[10];
@@ -8865,61 +8837,61 @@ val_t compiling_methods___ASuperExpr___compile_expr(val_t  self, val_t  param0)
       variable[14] = ATTR_array___Array____items(variable[14]) /*Array::_items*/;
       variable[14] = UNBOX_NativeArray(variable[14])[UNTAG_Int( variable[12] /*index*/)];
       variable[13] = variable[14];
-      goto return_label342;
-      return_label342: while(false);
+      goto return_label328;
+      return_label328: while(false);
       variable[9] = variable[13];
-      variable[8] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[8],COLOR_compiling_methods___CFunctionContext___varname))(variable[8], variable[9]) /*CFunctionContext::varname*/;
-      ((array___AbstractArray___add_t)CALL( variable[4] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*args*/, variable[8]) /*AbstractArray::add*/;
-      continue_341: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+      variable[8] = CALL_compiling_methods___CFunctionContext___varname(variable[8])(variable[8], variable[9]) /*CFunctionContext::varname*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*args*/)( variable[4] /*args*/, variable[8]) /*AbstractArray::add*/;
+      continue_327: while(0);
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
     }
-    break_341: while(0);
+    break_327: while(0);
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___ASuperExpr___n_args_t)CALL(variable[5],COLOR_parser_nodes___ASuperExpr___n_args))(variable[5]) /*ASuperExpr::n_args*/;
-    variable[5] = ((list___List___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*List::iterator*/;
+    variable[5] = CALL_parser_nodes___ASuperExpr___n_args(variable[5])(variable[5]) /*ASuperExpr::n_args*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*List::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((list___ListIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ListIterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ListIterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((list___ListIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ListIterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ListIterator::item*/;
       variable[7] = variable[6];
-      variable[8] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/,  variable[7] /*na*/) /*CompilerVisitor::compile_expr*/;
-      ((array___AbstractArray___add_t)CALL( variable[4] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*args*/, variable[8]) /*AbstractArray::add*/;
-      continue_343: while(0);
-      ((list___ListIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ListIterator::next*/;
+      variable[8] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*na*/) /*CompilerVisitor::compile_expr*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*args*/)( variable[4] /*args*/, variable[8]) /*AbstractArray::add*/;
+      continue_329: while(0);
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ListIterator::next*/;
     }
-    break_343: while(0);
+    break_329: while(0);
   }
   variable[5] = variable[0];
-  variable[5] = ((typing___ASuperExpr___init_in_superclass_t)CALL(variable[5],COLOR_typing___ASuperExpr___init_in_superclass))(variable[5]) /*ASuperExpr::init_in_superclass*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = CALL_typing___ASuperExpr___init_in_superclass(variable[5])(variable[5]) /*ASuperExpr::init_in_superclass*/;
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((typing___ASuperExpr___init_in_superclass_t)CALL(variable[5],COLOR_typing___ASuperExpr___init_in_superclass))(variable[5]) /*ASuperExpr::init_in_superclass*/;
-    variable[5] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[5],COLOR_compiling_methods___MMMethod___compile_call))(variable[5],  variable[1] /*v*/,  variable[4] /*args*/) /*MMMethod::compile_call*/;
+    variable[5] = CALL_typing___ASuperExpr___init_in_superclass(variable[5])(variable[5]) /*ASuperExpr::init_in_superclass*/;
+    variable[5] = CALL_compiling_methods___MMMethod___compile_call(variable[5])(variable[5],  variable[1] /*v*/,  variable[4] /*args*/) /*MMMethod::compile_call*/;
     variable[2] = variable[5];
-    goto return_label339;
+    goto return_label325;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
-    variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[5]) /*MMLocalProperty::global*/;
-    variable[5] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[5]) /*MMGlobalProperty::is_init*/;
+    variable[5] = CALL_typing___AAbsSendExpr___prop(variable[5])(variable[5]) /*AAbsSendExpr::prop*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
+    variable[5] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[5])(variable[5]) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init_table"), TAG_Int(10)); /*new String*/
-      ((array___AbstractArray___add_t)CALL( variable[4] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*args*/, variable[5]) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*args*/)( variable[4] /*args*/, variable[5]) /*AbstractArray::add*/;
     }
     variable[5] = variable[0];
-    variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
-    variable[5] = ((compiling_methods___MMMethod___compile_super_call_t)CALL(variable[5],COLOR_compiling_methods___MMMethod___compile_super_call))(variable[5],  variable[1] /*v*/,  variable[4] /*args*/) /*MMMethod::compile_super_call*/;
+    variable[5] = CALL_typing___AAbsSendExpr___prop(variable[5])(variable[5]) /*AAbsSendExpr::prop*/;
+    variable[5] = CALL_compiling_methods___MMMethod___compile_super_call(variable[5])(variable[5],  variable[1] /*v*/,  variable[4] /*args*/) /*MMMethod::compile_super_call*/;
     variable[2] = variable[5];
-    goto return_label339;
+    goto return_label325;
   }
-  return_label339: while(false);
+  return_label325: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_methods___ASuperExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1315, LOCATE_compiling_methods___ASuperExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1278, LOCATE_compiling_methods___ASuperExpr___compile_stmt};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8927,27 +8899,28 @@ void compiling_methods___ASuperExpr___compile_stmt(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___ASuperExpr___compile_expr_t)CALL(variable[4],COLOR_compiling_methods___PExpr___compile_expr))(variable[4],  variable[1] /*v*/) /*ASuperExpr::compile_expr*/;
+  variable[4] = CALL_compiling_methods___PExpr___compile_expr(variable[4])(variable[4],  variable[1] /*v*/) /*ASuperExpr::compile_expr*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*e*/ ==  NIT_NULL /*null*/) || (( variable[3] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*e*/,COLOR_kernel___Object_____eqeq))( variable[3] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*e*/ ==  NIT_NULL /*null*/) || (( variable[3] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*e*/)( variable[3] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = NEW_String_string___String___init(); /*new String*/
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] =  variable[3] /*e*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
   }
-  return_label344: while(false);
+  return_label330: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___AAttrExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1349, LOCATE_compiling_methods___AAttrExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1312, LOCATE_compiling_methods___AAttrExpr___compile_expr};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8955,20 +8928,20 @@ val_t compiling_methods___AAttrExpr___compile_expr(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[4]) /*AAttrFormExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[4])(variable[4]) /*AAttrFormExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((typing___AAttrFormExpr___prop_t)CALL(variable[4],COLOR_typing___AAttrFormExpr___prop))(variable[4]) /*AAttrFormExpr::prop*/;
-  variable[4] = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable[4],COLOR_compiling_methods___MMAttribute___compile_access))(variable[4],  variable[1] /*v*/,  variable[3] /*e*/) /*MMAttribute::compile_access*/;
+  variable[4] = CALL_typing___AAttrFormExpr___prop(variable[4])(variable[4]) /*AAttrFormExpr::prop*/;
+  variable[4] = CALL_compiling_methods___MMAttribute___compile_access(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*e*/) /*MMAttribute::compile_access*/;
   variable[2] = variable[4];
-  goto return_label345;
-  return_label345: while(false);
+  goto return_label331;
+  return_label331: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_methods___AAttrAssignExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1357, LOCATE_compiling_methods___AAttrAssignExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1320, LOCATE_compiling_methods___AAttrAssignExpr___compile_stmt};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -8976,23 +8949,23 @@ void compiling_methods___AAttrAssignExpr___compile_stmt(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[4]) /*AAttrFormExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[4])(variable[4]) /*AAttrFormExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[5],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[5]) /*AAssignFormExpr::n_value*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
+  variable[5] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[5])(variable[5]) /*AAssignFormExpr::n_value*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::compile_expr*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((typing___AAttrFormExpr___prop_t)CALL(variable[5],COLOR_typing___AAttrFormExpr___prop))(variable[5]) /*AAttrFormExpr::prop*/;
-  variable[5] = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable[5],COLOR_compiling_methods___MMAttribute___compile_access))(variable[5],  variable[1] /*v*/,  variable[3] /*e*/) /*MMAttribute::compile_access*/;
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/, variable[5],  variable[4] /*e2*/) /*CompilerVisitor::add_assignment*/;
-  return_label346: while(false);
+  variable[5] = CALL_typing___AAttrFormExpr___prop(variable[5])(variable[5]) /*AAttrFormExpr::prop*/;
+  variable[5] = CALL_compiling_methods___MMAttribute___compile_access(variable[5])(variable[5],  variable[1] /*v*/,  variable[3] /*e*/) /*MMAttribute::compile_access*/;
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/, variable[5],  variable[4] /*e2*/) /*CompilerVisitor::add_assignment*/;
+  return_label332: while(false);
   tracehead = trace.prev;
   return;
 }
 void compiling_methods___AAttrReassignExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1365, LOCATE_compiling_methods___AAttrReassignExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1328, LOCATE_compiling_methods___AAttrReassignExpr___compile_stmt};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9000,31 +8973,31 @@ void compiling_methods___AAttrReassignExpr___compile_stmt(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[4]) /*AAttrFormExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[4])(variable[4]) /*AAttrFormExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((typing___AAttrFormExpr___prop_t)CALL(variable[5],COLOR_typing___AAttrFormExpr___prop))(variable[5]) /*AAttrFormExpr::prop*/;
-  variable[5] = ((compiling_methods___MMAttribute___compile_access_t)CALL(variable[5],COLOR_compiling_methods___MMAttribute___compile_access))(variable[5],  variable[1] /*v*/,  variable[3] /*e1*/) /*MMAttribute::compile_access*/;
+  variable[5] = CALL_typing___AAttrFormExpr___prop(variable[5])(variable[5]) /*AAttrFormExpr::prop*/;
+  variable[5] = CALL_compiling_methods___MMAttribute___compile_access(variable[5])(variable[5],  variable[1] /*v*/,  variable[3] /*e1*/) /*MMAttribute::compile_access*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[6],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[6]) /*AReassignFormExpr::n_value*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
+  variable[6] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[6])(variable[6]) /*AReassignFormExpr::n_value*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
   variable[5] = variable[6];
   variable[7] = variable[0];
-  variable[7] = ((typing___AReassignFormExpr___assign_method_t)CALL(variable[7],COLOR_typing___AReassignFormExpr___assign_method))(variable[7]) /*AReassignFormExpr::assign_method*/;
+  variable[7] = CALL_typing___AReassignFormExpr___assign_method(variable[7])(variable[7]) /*AReassignFormExpr::assign_method*/;
   variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[4] /*e2*/) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[5] /*e3*/) /*AbstractArray::add*/;
-  variable[7] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[7],COLOR_compiling_methods___MMMethod___compile_call))(variable[7],  variable[1] /*v*/, variable[8]) /*MMMethod::compile_call*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[4] /*e2*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[5] /*e3*/) /*AbstractArray::add*/;
+  variable[7] = CALL_compiling_methods___MMMethod___compile_call(variable[7])(variable[7],  variable[1] /*v*/, variable[8]) /*MMMethod::compile_call*/;
   variable[6] = variable[7];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[4] /*e2*/,  variable[6] /*e4*/) /*CompilerVisitor::add_assignment*/;
-  return_label347: while(false);
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*e2*/,  variable[6] /*e4*/) /*CompilerVisitor::add_assignment*/;
+  return_label333: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1376, LOCATE_compiling_methods___ASendExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1339, LOCATE_compiling_methods___ASendExpr___compile_expr};
   val_t variable[26];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9032,63 +9005,63 @@ val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[4])(variable[4]) /*ASendExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[4] = variable[5];
-  ((array___AbstractArray___add_t)CALL( variable[4] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*cargs*/,  variable[3] /*recv*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/,  variable[3] /*recv*/) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((typing___AAbsSendExpr___arguments_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___arguments))(variable[5]) /*AAbsSendExpr::arguments*/;
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_typing___AAbsSendExpr___arguments(variable[5])(variable[5]) /*AAbsSendExpr::arguments*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[8] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/,  variable[7] /*a*/) /*CompilerVisitor::compile_expr*/;
-    ((array___AbstractArray___add_t)CALL( variable[4] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*cargs*/, variable[8]) /*AbstractArray::add*/;
-    continue_349: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*a*/) /*CompilerVisitor::compile_expr*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/, variable[8]) /*AbstractArray::add*/;
+    continue_335: while(0);
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
-  break_349: while(0);
+  break_335: while(0);
   /*variable[5] is variable e*/
   variable[6] = variable[0];
-  variable[6] = ((typing___AAbsSendExpr___prop_signature_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop_signature))(variable[6]) /*AAbsSendExpr::prop_signature*/;
-  variable[6] = ((static_type___MMSignature___closures_t)CALL(variable[6],COLOR_static_type___MMSignature___closures))(variable[6]) /*MMSignature::closures*/;
-  variable[6] = ((array___AbstractArray___is_empty_t)CALL(variable[6],COLOR_abstract_collection___Collection___is_empty))(variable[6]) /*AbstractArray::is_empty*/;
+  variable[6] = CALL_typing___AAbsSendExpr___prop_signature(variable[6])(variable[6]) /*AAbsSendExpr::prop_signature*/;
+  variable[6] = CALL_static_type___MMSignature___closures(variable[6])(variable[6]) /*MMSignature::closures*/;
+  variable[6] = CALL_abstract_collection___Collection___is_empty(variable[6])(variable[6]) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
-    variable[6] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[6],COLOR_compiling_methods___MMMethod___compile_call))(variable[6],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
+    variable[6] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
+    variable[6] = CALL_compiling_methods___MMMethod___compile_call(variable[6])(variable[6],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
     variable[5] = variable[6] /*e=*/;
   } else { /*if*/
     variable[7] = variable[0];
-    variable[7] = ((typing___ASendExpr___closure_defs_t)CALL(variable[7],COLOR_typing___ASendExpr___closure_defs))(variable[7]) /*ASendExpr::closure_defs*/;
+    variable[7] = CALL_typing___ASendExpr___closure_defs(variable[7])(variable[7]) /*ASendExpr::closure_defs*/;
     variable[6] = variable[7];
     variable[7] =  TAG_Int(0);
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*cd*/ ==  NIT_NULL /*null*/) || (( variable[6] /*cd*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*cd*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*cd*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*cd*/,COLOR_kernel___Object_____eqeq))( variable[6] /*cd*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*cd*/ ==  NIT_NULL /*null*/) || (( variable[6] /*cd*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*cd*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*cd*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*cd*/)( variable[6] /*cd*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[8] = ((array___AbstractArray___length_t)CALL( variable[6] /*cd*/,COLOR_abstract_collection___Collection___length))( variable[6] /*cd*/) /*AbstractArray::length*/;
+      variable[8] = CALL_abstract_collection___Collection___length( variable[6] /*cd*/)( variable[6] /*cd*/) /*AbstractArray::length*/;
       variable[7] = variable[8] /*arity=*/;
     }
     variable[9] = NEW_Array_array___Array___init(); /*new Array[String]*/
     variable[8] = variable[9];
     variable[9] =  NIT_NULL /*null*/;
-    variable[11] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[11] = ((compiling_methods___NitMethodContext___break_value_t)CALL(variable[11],COLOR_compiling_methods___NitMethodContext___break_value))(variable[11]) /*NitMethodContext::break_value*/;
+    variable[11] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[11] = CALL_compiling_methods___NitMethodContext___break_value(variable[11])(variable[11]) /*NitMethodContext::break_value*/;
     variable[10] = variable[11];
-    variable[11] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-    variable[11] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[11],COLOR_compiling_methods___CFunctionContext___get_var))(variable[11]) /*CFunctionContext::get_var*/;
+    variable[11] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    variable[11] = CALL_compiling_methods___CFunctionContext___get_var(variable[11])(variable[11]) /*CFunctionContext::get_var*/;
     variable[9] = variable[11] /*ve=*/;
-    variable[11] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    ((compiling_methods___NitMethodContext___break_value__eq_t)CALL(variable[11],COLOR_compiling_methods___NitMethodContext___break_value__eq))(variable[11],  variable[9] /*ve*/) /*NitMethodContext::break_value=*/;
+    variable[11] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    CALL_compiling_methods___NitMethodContext___break_value__eq(variable[11])(variable[11],  variable[9] /*ve*/) /*NitMethodContext::break_value=*/;
     variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[7] /*arity*/); /*new Range[Int]*/
-    variable[11] = ((range___Range___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Range::iterator*/;
+    variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
+      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[12])) break; /*for*/
-      variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
+      variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
       variable[13] = variable[12];
       variable[15] =  variable[6] /*cd*/;
       variable[16] =  variable[13] /*i*/;
@@ -9105,60 +9078,60 @@ val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
       variable[18] = ATTR_array___Array____items(variable[18]) /*Array::_items*/;
       variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
       variable[17] = variable[18];
-      goto return_label351;
-      return_label351: while(false);
+      goto return_label337;
+      return_label337: while(false);
       variable[15] = variable[17];
       variable[16] = variable[0];
-      variable[16] = ((typing___AAbsSendExpr___prop_t)CALL(variable[16],COLOR_typing___AAbsSendExpr___prop))(variable[16]) /*AAbsSendExpr::prop*/;
-      variable[16] = ((compiling_methods___MMMethod___closure_cname_t)CALL(variable[16],COLOR_compiling_methods___MMMethod___closure_cname))(variable[16],  variable[13] /*i*/) /*MMMethod::closure_cname*/;
-      variable[15] = ((compiling_methods___PClosureDef___compile_closure_t)CALL(variable[15],COLOR_compiling_methods___PClosureDef___compile_closure))(variable[15],  variable[1] /*v*/, variable[16]) /*PClosureDef::compile_closure*/;
+      variable[16] = CALL_typing___AAbsSendExpr___prop(variable[16])(variable[16]) /*AAbsSendExpr::prop*/;
+      variable[16] = CALL_compiling_methods___MMMethod___closure_cname(variable[16])(variable[16],  variable[13] /*i*/) /*MMMethod::closure_cname*/;
+      variable[15] = CALL_compiling_methods___PClosureDef___compile_closure(variable[15])(variable[15],  variable[1] /*v*/, variable[16]) /*PClosureDef::compile_closure*/;
       variable[14] = variable[15];
-      ((array___AbstractArray___add_t)CALL( variable[8] /*closcns*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*closcns*/,  variable[14] /*cn*/) /*AbstractArray::add*/;
-      ((array___AbstractArray___add_t)CALL( variable[4] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*cargs*/,  variable[14] /*cn*/) /*AbstractArray::add*/;
-      continue_350: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[8] /*closcns*/)( variable[8] /*closcns*/,  variable[14] /*cn*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/,  variable[14] /*cn*/) /*AbstractArray::add*/;
+      continue_336: while(0);
+      CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
     }
-    break_350: while(0);
+    break_336: while(0);
     variable[11] = variable[0];
-    variable[11] = ((typing___AAbsSendExpr___prop_signature_t)CALL(variable[11],COLOR_typing___AAbsSendExpr___prop_signature))(variable[11]) /*AAbsSendExpr::prop_signature*/;
-    variable[11] = ((static_type___MMSignature___closures_t)CALL(variable[11],COLOR_static_type___MMSignature___closures))(variable[11]) /*MMSignature::closures*/;
-    variable[11] = ((array___AbstractArray___length_t)CALL(variable[11],COLOR_abstract_collection___Collection___length))(variable[11]) /*AbstractArray::length*/;
+    variable[11] = CALL_typing___AAbsSendExpr___prop_signature(variable[11])(variable[11]) /*AAbsSendExpr::prop_signature*/;
+    variable[11] = CALL_static_type___MMSignature___closures(variable[11])(variable[11]) /*MMSignature::closures*/;
+    variable[11] = CALL_abstract_collection___Collection___length(variable[11])(variable[11]) /*AbstractArray::length*/;
     variable[12] = NEW_Range_range___Range___without_last( variable[7] /*arity*/, variable[11]); /*new Range[Int]*/
     variable[11] = variable[12];
-    variable[11] = ((range___Range___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Range::iterator*/;
+    variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
+      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[12])) break; /*for*/
-      variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
+      variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
       variable[13] = variable[12];
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString("NULL"), TAG_Int(4)); /*new String*/
-      ((array___AbstractArray___add_t)CALL( variable[4] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*cargs*/, variable[14]) /*AbstractArray::add*/;
-      continue_352: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/, variable[14]) /*AbstractArray::add*/;
+      continue_338: while(0);
+      CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
     }
-    break_352: while(0);
-    variable[11] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    ((compiling_methods___NitMethodContext___break_value__eq_t)CALL(variable[11],COLOR_compiling_methods___NitMethodContext___break_value__eq))(variable[11],  variable[10] /*old_bv*/) /*NitMethodContext::break_value=*/;
+    break_338: while(0);
+    variable[11] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    CALL_compiling_methods___NitMethodContext___break_value__eq(variable[11])(variable[11],  variable[10] /*old_bv*/) /*NitMethodContext::break_value=*/;
     variable[11] = variable[0];
-    variable[11] = ((typing___AAbsSendExpr___prop_t)CALL(variable[11],COLOR_typing___AAbsSendExpr___prop))(variable[11]) /*AAbsSendExpr::prop*/;
-    variable[11] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[11],COLOR_compiling_methods___MMMethod___compile_call))(variable[11],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
+    variable[11] = CALL_typing___AAbsSendExpr___prop(variable[11])(variable[11]) /*AAbsSendExpr::prop*/;
+    variable[11] = CALL_compiling_methods___MMMethod___compile_call(variable[11])(variable[11],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
     variable[5] = variable[11] /*e=*/;
-    variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*e*/)( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[11])) { /*if*/
-      ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[9] /*ve*/,  variable[5] /*e*/) /*CompilerVisitor::add_assignment*/;
+      CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[9] /*ve*/,  variable[5] /*e*/) /*CompilerVisitor::add_assignment*/;
       variable[5] =  variable[9] /*ve*/ /*e=*/;
     }
     variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[7] /*arity*/); /*new Range[Int]*/
-    variable[11] = ((range___Range___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Range::iterator*/;
+    variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
+      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[12])) break; /*for*/
-      variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
+      variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
       variable[13] = variable[12];
-      variable[14] = NEW_String_string___String___init(); /*new String*/
+      variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
       variable[17] =  variable[8] /*closcns*/;
       variable[18] =  variable[13] /*i*/;
       variable[20] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -9174,20 +9147,21 @@ val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
       variable[20] = ATTR_array___Array____items(variable[20]) /*Array::_items*/;
       variable[20] = UNBOX_NativeArray(variable[20])[UNTAG_Int( variable[18] /*index*/)];
       variable[19] = variable[20];
-      goto return_label354;
-      return_label354: while(false);
+      goto return_label340;
+      return_label340: while(false);
       variable[17] = variable[19];
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[18]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[18]) /*AbstractArray::add*/;
       variable[19] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke != NULL) {"), TAG_Int(22)); /*new String*/
       variable[20] = variable[19];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[20]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
-      ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-      variable[14] = NEW_String_string___String___init(); /*new String*/
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+      variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
       variable[17] =  variable[8] /*closcns*/;
       variable[18] =  variable[13] /*i*/;
       variable[20] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -9203,28 +9177,29 @@ val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
       variable[20] = ATTR_array___Array____items(variable[20]) /*Array::_items*/;
       variable[20] = UNBOX_NativeArray(variable[20])[UNTAG_Int( variable[18] /*index*/)];
       variable[19] = variable[20];
-      goto return_label355;
-      return_label355: while(false);
+      goto return_label341;
+      return_label341: while(false);
       variable[17] = variable[19];
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[18]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[18]) /*AbstractArray::add*/;
       variable[19] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke != &("), TAG_Int(17)); /*new String*/
       variable[20] = variable[19];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[20]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
       variable[21] =  variable[9] /*ve*/;
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[21]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[21]) /*AbstractArray::add*/;
       variable[22] = NEW_String_string___String___with_native(BOX_NativeString(")) {"), TAG_Int(4)); /*new String*/
       variable[23] = variable[22];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[23]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
-      ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-      variable[14] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-      variable[14] = ((compiling_methods___CFunctionContext___in_closure_t)CALL(variable[14],COLOR_compiling_methods___CFunctionContext___in_closure))(variable[14]) /*CFunctionContext::in_closure*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[23]) /*AbstractArray::add*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+      variable[14] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+      variable[14] = CALL_compiling_methods___CFunctionContext___in_closure(variable[14])(variable[14]) /*CFunctionContext::in_closure*/;
       if (UNTAG_Bool(variable[14])) { /*if*/
-        variable[14] = NEW_String_string___String___init(); /*new String*/
+        variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
         variable[15] = NEW_String_string___String___with_native(BOX_NativeString("closctx->has_broke = "), TAG_Int(21)); /*new String*/
         variable[16] = variable[15];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
         variable[17] =  variable[8] /*closcns*/;
         variable[18] =  variable[13] /*i*/;
         variable[20] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -9240,14 +9215,14 @@ val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
         variable[20] = ATTR_array___Array____items(variable[20]) /*Array::_items*/;
         variable[20] = UNBOX_NativeArray(variable[20])[UNTAG_Int( variable[18] /*index*/)];
         variable[19] = variable[20];
-        goto return_label356;
-        return_label356: while(false);
+        goto return_label342;
+        return_label342: while(false);
         variable[17] = variable[19];
         variable[18] = variable[17];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[18]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[18]) /*AbstractArray::add*/;
         variable[19] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke; closctx->broke_value = "), TAG_Int(36)); /*new String*/
         variable[20] = variable[19];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[20]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
         variable[21] =  variable[8] /*closcns*/;
         variable[22] =  variable[13] /*i*/;
         variable[24] = TAG_Bool(UNTAG_Int( variable[22] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -9263,40 +9238,42 @@ val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
         variable[24] = ATTR_array___Array____items(variable[24]) /*Array::_items*/;
         variable[24] = UNBOX_NativeArray(variable[24])[UNTAG_Int( variable[22] /*index*/)];
         variable[23] = variable[24];
-        goto return_label357;
-        return_label357: while(false);
+        goto return_label343;
+        return_label343: while(false);
         variable[21] = variable[23];
         variable[22] = variable[21];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[22]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[22]) /*AbstractArray::add*/;
         variable[23] = NEW_String_string___String___with_native(BOX_NativeString("->broke_value;"), TAG_Int(14)); /*new String*/
         variable[24] = variable[23];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[24]) /*String::append*/;
-        ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[24]) /*AbstractArray::add*/;
+        variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+        CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
       }
-      variable[14] = NEW_String_string___String___init(); /*new String*/
+      variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
-      variable[17] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-      variable[17] = ((compiling_methods___NitMethodContext___return_label_t)CALL(variable[17],COLOR_compiling_methods___NitMethodContext___return_label))(variable[17]) /*NitMethodContext::return_label*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
+      variable[17] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+      variable[17] = CALL_compiling_methods___NitMethodContext___return_label(variable[17])(variable[17]) /*NitMethodContext::return_label*/;
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[18]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[18]) /*AbstractArray::add*/;
       variable[19] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
       variable[20] = variable[19];
-      ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[20]) /*String::append*/;
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
-      ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
-      variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+      CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+      variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*e*/)( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[14])) { /*if*/
-        variable[14] = NEW_String_string___String___init(); /*new String*/
+        variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
         variable[15] = NEW_String_string___String___with_native(BOX_NativeString("} else "), TAG_Int(7)); /*new String*/
         variable[16] = variable[15];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
         variable[17] =  variable[9] /*ve*/;
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
         variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)); /*new String*/
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
         variable[20] =  variable[8] /*closcns*/;
         variable[21] =  variable[13] /*i*/;
         variable[23] = TAG_Bool(UNTAG_Int( variable[21] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -9312,44 +9289,45 @@ val_t compiling_methods___ASendExpr___compile_expr(val_t  self, val_t  param0) {
         variable[23] = ATTR_array___Array____items(variable[23]) /*Array::_items*/;
         variable[23] = UNBOX_NativeArray(variable[23])[UNTAG_Int( variable[21] /*index*/)];
         variable[22] = variable[23];
-        goto return_label358;
-        return_label358: while(false);
+        goto return_label344;
+        return_label344: while(false);
         variable[20] = variable[22];
         variable[21] = variable[20];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[21]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[21]) /*AbstractArray::add*/;
         variable[22] = NEW_String_string___String___with_native(BOX_NativeString("->broke_value;"), TAG_Int(14)); /*new String*/
         variable[23] = variable[22];
-        ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[23]) /*String::append*/;
-        ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[23]) /*AbstractArray::add*/;
+        variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+        CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
       } else { /*if*/
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-        ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+        CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
       }
-      ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+      CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-      ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
-      continue_353: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
+      CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+      continue_339: while(0);
+      CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
     }
-    break_353: while(0);
+    break_339: while(0);
   }
   variable[6] = variable[0];
-  variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
-  variable[6] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[6]) /*MMGlobalProperty::is_init*/;
+  variable[6] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[6])(variable[6]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
-    ((compiling_methods___CompilerVisitor___invoke_super_init_calls_after_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___invoke_super_init_calls_after))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::invoke_super_init_calls_after*/;
+    variable[6] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
+    CALL_compiling_methods___CompilerVisitor___invoke_super_init_calls_after( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::invoke_super_init_calls_after*/;
   }
   variable[2] =  variable[5] /*e*/;
-  goto return_label348;
-  return_label348: while(false);
+  goto return_label334;
+  return_label334: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void compiling_methods___ASendExpr___compile_stmt(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1450, LOCATE_compiling_methods___ASendExpr___compile_stmt};
+  struct trace_t trace = {NULL, NULL, 1413, LOCATE_compiling_methods___ASendExpr___compile_stmt};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9357,20 +9335,20 @@ void compiling_methods___ASendExpr___compile_stmt(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((compiling_methods___ASendExpr___compile_expr_t)CALL(variable[4],COLOR_compiling_methods___PExpr___compile_expr))(variable[4],  variable[1] /*v*/) /*ASendExpr::compile_expr*/;
+  variable[4] = CALL_compiling_methods___PExpr___compile_expr(variable[4])(variable[4],  variable[1] /*v*/) /*ASendExpr::compile_expr*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*e*/ ==  NIT_NULL /*null*/) || (( variable[3] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*e*/,COLOR_kernel___Object_____eqeq))( variable[3] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*e*/ ==  NIT_NULL /*null*/) || (( variable[3] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*e*/)( variable[3] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-    variable[4] = ((string___String_____plus_t)CALL( variable[3] /*e*/,COLOR_string___String_____plus))( variable[3] /*e*/, variable[4]) /*String::+*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
+    variable[4] = CALL_string___String_____plus( variable[3] /*e*/)( variable[3] /*e*/, variable[4]) /*String::+*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::add_instr*/;
   }
-  return_label359: while(false);
+  return_label345: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t compiling_methods___ASendReassignExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1460, LOCATE_compiling_methods___ASendReassignExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1423, LOCATE_compiling_methods___ASendReassignExpr___compile_expr};
   val_t variable[10];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9378,53 +9356,53 @@ val_t compiling_methods___ASendReassignExpr___compile_expr(val_t  self, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
-  variable[4] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
+  variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[4])(variable[4]) /*ASendExpr::n_expr*/;
+  variable[4] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*CompilerVisitor::compile_expr*/;
   variable[3] = variable[4];
   variable[5] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[4] = variable[5];
-  ((array___AbstractArray___add_t)CALL( variable[4] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*cargs*/,  variable[3] /*recv*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/,  variable[3] /*recv*/) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((typing___AAbsSendExpr___arguments_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___arguments))(variable[5]) /*AAbsSendExpr::arguments*/;
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_typing___AAbsSendExpr___arguments(variable[5])(variable[5]) /*AAbsSendExpr::arguments*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[8] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/,  variable[7] /*a*/) /*CompilerVisitor::compile_expr*/;
-    ((array___AbstractArray___add_t)CALL( variable[4] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*cargs*/, variable[8]) /*AbstractArray::add*/;
-    continue_361: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*a*/) /*CompilerVisitor::compile_expr*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/, variable[8]) /*AbstractArray::add*/;
+    continue_347: while(0);
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
-  break_361: while(0);
+  break_347: while(0);
   variable[6] = variable[0];
-  variable[6] = ((typing___ASendReassignExpr___read_prop_t)CALL(variable[6],COLOR_typing___ASendReassignExpr___read_prop))(variable[6]) /*ASendReassignExpr::read_prop*/;
-  variable[6] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[6],COLOR_compiling_methods___MMMethod___compile_call))(variable[6],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
+  variable[6] = CALL_typing___ASendReassignExpr___read_prop(variable[6])(variable[6]) /*ASendReassignExpr::read_prop*/;
+  variable[6] = CALL_compiling_methods___MMMethod___compile_call(variable[6])(variable[6],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
   variable[5] = variable[6];
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[7],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[7]) /*AReassignFormExpr::n_value*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_expr*/;
+  variable[7] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[7])(variable[7]) /*AReassignFormExpr::n_value*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_expr*/;
   variable[6] = variable[7];
   variable[8] = variable[0];
-  variable[8] = ((typing___AReassignFormExpr___assign_method_t)CALL(variable[8],COLOR_typing___AReassignFormExpr___assign_method))(variable[8]) /*AReassignFormExpr::assign_method*/;
+  variable[8] = CALL_typing___AReassignFormExpr___assign_method(variable[8])(variable[8]) /*AReassignFormExpr::assign_method*/;
   variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[5] /*e2*/) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[6] /*e3*/) /*AbstractArray::add*/;
-  variable[8] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[8],COLOR_compiling_methods___MMMethod___compile_call))(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_call*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[5] /*e2*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[6] /*e3*/) /*AbstractArray::add*/;
+  variable[8] = CALL_compiling_methods___MMMethod___compile_call(variable[8])(variable[8],  variable[1] /*v*/, variable[9]) /*MMMethod::compile_call*/;
   variable[7] = variable[8];
-  ((array___AbstractArray___add_t)CALL( variable[4] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*cargs*/,  variable[7] /*e4*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[4] /*cargs*/)( variable[4] /*cargs*/,  variable[7] /*e4*/) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((typing___AAbsSendExpr___prop_t)CALL(variable[8],COLOR_typing___AAbsSendExpr___prop))(variable[8]) /*AAbsSendExpr::prop*/;
-  variable[8] = ((compiling_methods___MMMethod___compile_call_t)CALL(variable[8],COLOR_compiling_methods___MMMethod___compile_call))(variable[8],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
+  variable[8] = CALL_typing___AAbsSendExpr___prop(variable[8])(variable[8]) /*AAbsSendExpr::prop*/;
+  variable[8] = CALL_compiling_methods___MMMethod___compile_call(variable[8])(variable[8],  variable[1] /*v*/,  variable[4] /*cargs*/) /*MMMethod::compile_call*/;
   variable[2] = variable[8];
-  goto return_label360;
-  return_label360: while(false);
+  goto return_label346;
+  return_label346: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___ANewExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1478, LOCATE_compiling_methods___ANewExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1441, LOCATE_compiling_methods___ANewExpr___compile_expr};
   val_t variable[8];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9434,56 +9412,56 @@ val_t compiling_methods___ANewExpr___compile_expr(val_t  self, val_t  param0) {
   variable[4] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((typing___AAbsSendExpr___arguments_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___arguments))(variable[4]) /*AAbsSendExpr::arguments*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_typing___AAbsSendExpr___arguments(variable[4])(variable[4]) /*AAbsSendExpr::arguments*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/,  variable[6] /*a*/) /*CompilerVisitor::compile_expr*/;
-    ((array___AbstractArray___add_t)CALL( variable[3] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*cargs*/, variable[7]) /*AbstractArray::add*/;
-    continue_363: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    variable[7] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*a*/) /*CompilerVisitor::compile_expr*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*cargs*/)( variable[3] /*cargs*/, variable[7]) /*AbstractArray::add*/;
+    continue_349: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
-  break_363: while(0);
+  break_349: while(0);
   variable[4] = variable[0];
-  variable[4] = ((typing___AAbsSendExpr___prop_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___prop))(variable[4]) /*AAbsSendExpr::prop*/;
+  variable[4] = CALL_typing___AAbsSendExpr___prop(variable[4])(variable[4]) /*AAbsSendExpr::prop*/;
   variable[5] = variable[0];
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
-  variable[4] = ((compiling_methods___MMMethod___compile_constructor_call_t)CALL(variable[4],COLOR_compiling_methods___MMMethod___compile_constructor_call))(variable[4],  variable[1] /*v*/, variable[5],  variable[3] /*cargs*/) /*MMMethod::compile_constructor_call*/;
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
+  variable[4] = CALL_compiling_methods___MMMethod___compile_constructor_call(variable[4])(variable[4],  variable[1] /*v*/, variable[5],  variable[3] /*cargs*/) /*MMMethod::compile_constructor_call*/;
   variable[2] = variable[4];
-  goto return_label362;
-  return_label362: while(false);
+  goto return_label348;
+  return_label348: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___PClosureDef___compile_closure(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1489, LOCATE_compiling_methods___PClosureDef___compile_closure};
+  struct trace_t trace = {NULL, NULL, 1452, LOCATE_compiling_methods___PClosureDef___compile_closure};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1489);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1452);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t compiling_methods___PClosureDef___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1493, LOCATE_compiling_methods___PClosureDef___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 1456, LOCATE_compiling_methods___PClosureDef___do_compile_inside};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1493);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1456);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t compiling_methods___AClosureDef___compile_closure(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1501, LOCATE_compiling_methods___AClosureDef___compile_closure};
+  struct trace_t trace = {NULL, NULL, 1464, LOCATE_compiling_methods___AClosureDef___compile_closure};
   val_t variable[26];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9491,292 +9469,308 @@ val_t compiling_methods___AClosureDef___compile_closure(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+  variable[5] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
   variable[4] = variable[5];
   variable[5] = NEW_CContext_compiling_base___CContext___init(); /*new CContext*/
-  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::ctx=*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___out_contexts_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___out_contexts))( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
-  variable[6] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
-  ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[6]) /*AbstractArray::add*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[6] = ((compiling_methods___CFunctionContext___in_closure_t)CALL(variable[6],COLOR_compiling_methods___CFunctionContext___in_closure))(variable[6]) /*CFunctionContext::in_closure*/;
+  CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::ctx=*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___out_contexts( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
+  variable[6] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[6] = CALL_compiling_methods___CFunctionContext___in_closure(variable[6])(variable[6]) /*CFunctionContext::in_closure*/;
   variable[5] = variable[6];
-  variable[6] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___in_closure__eq_t)CALL(variable[6],COLOR_compiling_methods___CFunctionContext___in_closure__eq))(variable[6],  TAG_Bool(true)) /*CFunctionContext::in_closure=*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[7] = ((compiling_methods___NitMethodContext___return_value_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___return_value))(variable[7]) /*NitMethodContext::return_value*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___in_closure__eq(variable[6])(variable[6],  TAG_Bool(true)) /*CFunctionContext::in_closure=*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[7] = CALL_compiling_methods___NitMethodContext___return_value(variable[7])(variable[7]) /*NitMethodContext::return_value*/;
   variable[6] = variable[7];
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = ((compiling_methods___NitMethodContext___break_value_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___break_value))(variable[8]) /*NitMethodContext::break_value*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = CALL_compiling_methods___NitMethodContext___break_value(variable[8])(variable[8]) /*NitMethodContext::break_value*/;
   variable[7] = variable[8];
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable[5] /*cfc_old*/)))) { /*if*/
-    variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("closctx->"), TAG_Int(9)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[6] /*old_rv*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-    ((compiling_methods___NitMethodContext___return_value__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___return_value__eq))(variable[8], variable[9]) /*NitMethodContext::return_value=*/;
-    variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_compiling_methods___NitMethodContext___return_value__eq(variable[8])(variable[8], variable[9]) /*NitMethodContext::return_value=*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("closctx->"), TAG_Int(9)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[7] /*old_bv*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-    ((compiling_methods___NitMethodContext___break_value__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___break_value__eq))(variable[8], variable[9]) /*NitMethodContext::break_value=*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_compiling_methods___NitMethodContext___break_value__eq(variable[8])(variable[8], variable[9]) /*NitMethodContext::break_value=*/;
   }
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("OC_"), TAG_Int(3)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-  variable[12] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[12] = ((compiling_methods___NitMethodContext___method_t)CALL(variable[12],COLOR_compiling_methods___NitMethodContext___method))(variable[12]) /*NitMethodContext::method*/;
-  variable[12] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[12],COLOR_compiling_base___MMLocalProperty___cname))(variable[12]) /*MMLocalProperty::cname*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+  variable[12] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[12] = CALL_compiling_methods___NitMethodContext___method(variable[12])(variable[12]) /*NitMethodContext::method*/;
+  variable[12] = CALL_compiling_base___MMLocalProperty___cname(variable[12])(variable[12]) /*MMLocalProperty::cname*/;
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString("_"), TAG_Int(1)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-  variable[16] = ((compiling_methods___CompilerVisitor___out_contexts_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___out_contexts))( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
-  variable[16] = ((array___AbstractArray___length_t)CALL(variable[16],COLOR_abstract_collection___Collection___length))(variable[16]) /*AbstractArray::length*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+  variable[16] = CALL_compiling_methods___CompilerVisitor___out_contexts( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::out_contexts*/;
+  variable[16] = CALL_abstract_collection___Collection___length(variable[16])(variable[16]) /*AbstractArray::length*/;
   variable[17] = variable[16];
-  variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+  variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
   variable[9] = variable[0];
   ATTR_compiling_methods___AClosureDef____cname(variable[9]) /*AClosureDef::_cname*/ =  variable[8] /*cname*/;
   variable[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[9] = variable[10];
   variable[10] = variable[0];
-  variable[10] = ((syntax_base___PClosureDef___closure_t)CALL(variable[10],COLOR_syntax_base___PClosureDef___closure))(variable[10]) /*PClosureDef::closure*/;
-  variable[10] = ((static_type___MMClosure___signature_t)CALL(variable[10],COLOR_static_type___MMClosure___signature))(variable[10]) /*MMClosure::signature*/;
-  variable[10] = ((static_type___MMSignature___arity_t)CALL(variable[10],COLOR_static_type___MMSignature___arity))(variable[10]) /*MMSignature::arity*/;
+  variable[10] = CALL_syntax_base___PClosureDef___closure(variable[10])(variable[10]) /*PClosureDef::closure*/;
+  variable[10] = CALL_static_type___MMClosure___signature(variable[10])(variable[10]) /*MMClosure::signature*/;
+  variable[10] = CALL_static_type___MMSignature___arity(variable[10])(variable[10]) /*MMSignature::arity*/;
   variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[10]); /*new Range[Int]*/
   variable[10] = variable[11];
-  variable[10] = ((range___Range___iterator_t)CALL(variable[10],COLOR_abstract_collection___Collection___iterator))(variable[10]) /*Range::iterator*/;
+  variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[11] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*Iterator::is_ok*/;
+    variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[11])) break; /*for*/
-    variable[11] = ((abstract_collection___Iterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*Iterator::item*/;
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*Iterator::item*/;
     variable[12] = variable[11];
-    variable[13] = NEW_String_string___String___init(); /*new String*/
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" param"), TAG_Int(6)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[12] /*i*/;
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[18]) /*String::append*/;
-    ((array___AbstractArray___add_t)CALL( variable[9] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*args*/, variable[13]) /*AbstractArray::add*/;
-    continue_365: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*Iterator::next*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*args*/)( variable[9] /*args*/, variable[13]) /*AbstractArray::add*/;
+    continue_351: while(0);
+    CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*Iterator::next*/;
   }
-  break_365: while(0);
+  break_351: while(0);
   variable[11] = variable[0];
-  variable[11] = ((compiling_methods___AClosureDef___decl_csignature_t)CALL(variable[11],COLOR_compiling_methods___AClosureDef___decl_csignature))(variable[11],  variable[1] /*v*/,  variable[9] /*args*/,  variable[2] /*closcn*/) /*AClosureDef::decl_csignature*/;
+  variable[11] = CALL_compiling_methods___AClosureDef___decl_csignature(variable[11])(variable[11],  variable[1] /*v*/,  variable[9] /*args*/,  variable[2] /*closcn*/) /*AClosureDef::decl_csignature*/;
   variable[10] = variable[11];
-  variable[11] = NEW_String_string___String___init(); /*new String*/
+  variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
   variable[14] =  variable[10] /*cs*/;
-  ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" {"), TAG_Int(2)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[16]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-  variable[12] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[16]) /*AbstractArray::add*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[11]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  variable[12] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
   variable[11] = variable[12];
   variable[12] = NEW_CContext_compiling_base___CContext___init(); /*new CContext*/
-  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::ctx=*/;
-  variable[12] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::ctx=*/;
+  variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("struct trace_t trace = {NULL, NULL, "), TAG_Int(36)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
   variable[15] = variable[0];
-  variable[15] = ((parser_prod___Prod___line_number_t)CALL(variable[15],COLOR_parser_prod___PNode___line_number))(variable[15]) /*Prod::line_number*/;
+  variable[15] = CALL_parser_prod___PNode___line_number(variable[15])(variable[15]) /*Prod::line_number*/;
   variable[16] = variable[15];
-  variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[16]) /*String::append*/;
+  variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(", LOCATE_"), TAG_Int(9)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/;
-  variable[19] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[19] = ((compiling_methods___NitMethodContext___method_t)CALL(variable[19],COLOR_compiling_methods___NitMethodContext___method))(variable[19]) /*NitMethodContext::method*/;
-  variable[19] = ((compiling_base___MMLocalProperty___cname_t)CALL(variable[19],COLOR_compiling_base___MMLocalProperty___cname))(variable[19]) /*MMLocalProperty::cname*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
+  variable[19] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[19] = CALL_compiling_methods___NitMethodContext___method(variable[19])(variable[19]) /*NitMethodContext::method*/;
+  variable[19] = CALL_compiling_base___MMLocalProperty___cname(variable[19])(variable[19]) /*MMLocalProperty::cname*/;
   variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[20]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[20]) /*AbstractArray::add*/;
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString("};"), TAG_Int(2)); /*new String*/
   variable[22] = variable[21];
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[22]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_decl*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[22]) /*AbstractArray::add*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_decl*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("trace.prev = tracehead; tracehead = &trace;"), TAG_Int(43)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
-  variable[12] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
+  variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("trace.file = LOCATE_"), TAG_Int(20)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
-  variable[15] = ((compiling_base___CompilerVisitor___module_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___module))( variable[1] /*v*/) /*CompilerVisitor::module*/;
-  variable[15] = ((abstractmetamodel___MMModule___name_t)CALL(variable[15],COLOR_abstractmetamodel___MMModule___name))(variable[15]) /*MMModule::name*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
+  variable[15] = CALL_compiling_base___CompilerVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::module*/;
+  variable[15] = CALL_abstractmetamodel___MMModule___name(variable[15])(variable[15]) /*MMModule::name*/;
   variable[16] = variable[15];
-  variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[16]) /*String::append*/;
+  variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[12]) /*CompilerVisitor::add_instr*/;
   variable[13] = variable[0];
-  variable[13] = ((compiling_methods___AClosureDef___do_compile_inside_t)CALL(variable[13],COLOR_compiling_methods___PClosureDef___do_compile_inside))(variable[13],  variable[1] /*v*/,  variable[9] /*args*/) /*AClosureDef::do_compile_inside*/;
+  variable[13] = CALL_compiling_methods___PClosureDef___do_compile_inside(variable[13])(variable[13],  variable[1] /*v*/,  variable[9] /*args*/) /*AClosureDef::do_compile_inside*/;
   variable[12] = variable[13];
-  variable[13] = NEW_String_string___String___init(); /*new String*/
+  variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
-  variable[16] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[16] = ((compiling_methods___NitMethodContext___return_label_t)CALL(variable[16],COLOR_compiling_methods___NitMethodContext___return_label))(variable[16]) /*NitMethodContext::return_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
+  variable[16] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[16] = CALL_compiling_methods___NitMethodContext___return_label(variable[16])(variable[16]) /*NitMethodContext::return_label*/;
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[19]) /*AbstractArray::add*/;
+  variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("tracehead = trace.prev;"), TAG_Int(23)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
-  variable[13] = TAG_Bool(( variable[12] /*s*/ ==  NIT_NULL /*null*/) || (( variable[12] /*s*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable[12] /*s*/,COLOR_kernel___Object_____eqeq))( variable[12] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
+  variable[13] = TAG_Bool(( variable[12] /*s*/ ==  NIT_NULL /*null*/) || (( variable[12] /*s*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*s*/)( variable[12] /*s*/,  NIT_NULL /*null*/) /*String::==*/)));
   if (UNTAG_Bool(variable[13])) { /*if*/
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("return;"), TAG_Int(7)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
   } else { /*if*/
-    variable[13] = NEW_String_string___String___init(); /*new String*/
+    variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("return "), TAG_Int(7)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[12] /*s*/;
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[18]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[18]) /*AbstractArray::add*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
   }
-  variable[13] = ((compiling_base___CompilerVisitor___ctx_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx))( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
-  ((compiling_base___CContext___append_t)CALL( variable[11] /*ctx_old2*/,COLOR_compiling_base___CContext___append))( variable[11] /*ctx_old2*/, variable[13]) /*CContext::append*/;
-  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/,  variable[11] /*ctx_old2*/) /*CompilerVisitor::ctx=*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  variable[13] = CALL_compiling_base___CompilerVisitor___ctx( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::ctx*/;
+  CALL_compiling_base___CContext___append( variable[11] /*ctx_old2*/)( variable[11] /*ctx_old2*/, variable[13]) /*CContext::append*/;
+  CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[11] /*ctx_old2*/) /*CompilerVisitor::ctx=*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___ctx__eq_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___ctx__eq))( variable[1] /*v*/,  variable[4] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
-  variable[13] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___in_closure__eq_t)CALL(variable[13],COLOR_compiling_methods___CFunctionContext___in_closure__eq))(variable[13],  variable[5] /*cfc_old*/) /*CFunctionContext::in_closure=*/;
-  variable[13] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___return_value__eq_t)CALL(variable[13],COLOR_compiling_methods___NitMethodContext___return_value__eq))(variable[13],  variable[6] /*old_rv*/) /*NitMethodContext::return_value=*/;
-  variable[13] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___break_value__eq_t)CALL(variable[13],COLOR_compiling_methods___NitMethodContext___break_value__eq))(variable[13],  variable[7] /*old_bv*/) /*NitMethodContext::break_value=*/;
-  variable[14] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[13]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*ctx_old*/) /*CompilerVisitor::ctx=*/;
+  variable[13] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___in_closure__eq(variable[13])(variable[13],  variable[5] /*cfc_old*/) /*CFunctionContext::in_closure=*/;
+  variable[13] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___return_value__eq(variable[13])(variable[13],  variable[6] /*old_rv*/) /*NitMethodContext::return_value=*/;
+  variable[13] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___break_value__eq(variable[13])(variable[13],  variable[7] /*old_bv*/) /*NitMethodContext::break_value=*/;
+  variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("wbclos"), TAG_Int(6)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
-  variable[17] = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
+  variable[17] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[18] = variable[17];
-  variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[18]) /*String::append*/;
+  variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[18]) /*AbstractArray::add*/;
   variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[20] = variable[19];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[20]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
   variable[13] = variable[14];
-  variable[14] = NEW_String_string___String___init(); /*new String*/
+  variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
   variable[17] =  variable[2] /*closcn*/;
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
   variable[20] =  variable[13] /*closcnv*/;
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[20]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[20]) /*AbstractArray::add*/;
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString(" = {"), TAG_Int(4)); /*new String*/
   variable[22] = variable[21];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[22]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[22]) /*AbstractArray::add*/;
   variable[23] =  variable[8] /*cname*/;
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[23]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[23]) /*AbstractArray::add*/;
   variable[24] = NEW_String_string___String___with_native(BOX_NativeString(", NULL};"), TAG_Int(8)); /*new String*/
   variable[25] = variable[24];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[25]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_decl*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[25]) /*AbstractArray::add*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_decl*/;
   if (UNTAG_Bool( variable[5] /*cfc_old*/)) { /*if*/
-    variable[14] = NEW_String_string___String___init(); /*new String*/
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[13] /*closcnv*/;
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString(".variable = closctx->variable;"), TAG_Int(30)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
-    variable[14] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[13] /*closcnv*/;
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString(".closurevariable = closctx->closurevariable;"), TAG_Int(44)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
   } else { /*if*/
-    variable[14] = NEW_String_string___String___init(); /*new String*/
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[13] /*closcnv*/;
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString(".variable = variable;"), TAG_Int(21)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
-    variable[14] = NEW_String_string___String___init(); /*new String*/
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+    variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[13] /*closcnv*/;
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString(".closurevariable = closurevariable;"), TAG_Int(35)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[14]) /*CompilerVisitor::add_instr*/;
   }
-  variable[14] = NEW_String_string___String___init(); /*new String*/
+  variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("(&"), TAG_Int(2)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
   variable[17] =  variable[13] /*closcnv*/;
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[14],COLOR_abstract_collection___IndexedCollection___append))(variable[14], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
   variable[3] = variable[14];
-  goto return_label364;
-  return_label364: while(false);
+  goto return_label350;
+  return_label350: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___AClosureDef___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1591, LOCATE_compiling_methods___AClosureDef___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 1554, LOCATE_compiling_methods___AClosureDef___do_compile_inside};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9785,19 +9779,19 @@ val_t compiling_methods___AClosureDef___do_compile_inside(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___PClosureDef___variables_t)CALL(variable[4],COLOR_syntax_base___PClosureDef___variables))(variable[4]) /*PClosureDef::variables*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_syntax_base___PClosureDef___variables(variable[4])(variable[4]) /*PClosureDef::variables*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[8] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
     variable[9] = variable[0];
-    variable[9] = ((syntax_base___PClosureDef___variables_t)CALL(variable[9],COLOR_syntax_base___PClosureDef___variables))(variable[9]) /*PClosureDef::variables*/;
+    variable[9] = CALL_syntax_base___PClosureDef___variables(variable[9])(variable[9]) /*PClosureDef::variables*/;
     variable[10] = variable[9];
     variable[11] =  variable[6] /*i*/;
     variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -9813,10 +9807,10 @@ val_t compiling_methods___AClosureDef___do_compile_inside(val_t  self, val_t  pa
     variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
     variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
     variable[12] = variable[13];
-    goto return_label368;
-    return_label368: while(false);
+    goto return_label354;
+    return_label354: while(false);
     variable[9] = variable[12];
-    variable[8] = ((compiling_methods___CFunctionContext___register_variable_t)CALL(variable[8],COLOR_compiling_methods___CFunctionContext___register_variable))(variable[8], variable[9]) /*CFunctionContext::register_variable*/;
+    variable[8] = CALL_compiling_methods___CFunctionContext___register_variable(variable[8])(variable[8], variable[9]) /*CFunctionContext::register_variable*/;
     variable[7] = variable[8];
     variable[8] =  variable[2] /*params*/;
     variable[9] =  variable[6] /*i*/;
@@ -9833,89 +9827,91 @@ val_t compiling_methods___AClosureDef___do_compile_inside(val_t  self, val_t  pa
     variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
     variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
     variable[10] = variable[11];
-    goto return_label369;
-    return_label369: while(false);
+    goto return_label355;
+    return_label355: while(false);
     variable[8] = variable[10];
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[7] /*vacname*/, variable[8]) /*CompilerVisitor::add_assignment*/;
-    continue_367: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[7] /*vacname*/, variable[8]) /*CompilerVisitor::add_assignment*/;
+    continue_353: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
-  break_367: while(0);
-  variable[5] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[5] = ((compiling_methods___NitMethodContext___continue_value_t)CALL(variable[5],COLOR_compiling_methods___NitMethodContext___continue_value))(variable[5]) /*NitMethodContext::continue_value*/;
+  break_353: while(0);
+  variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[5] = CALL_compiling_methods___NitMethodContext___continue_value(variable[5])(variable[5]) /*NitMethodContext::continue_value*/;
   variable[4] = variable[5];
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[6] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[6]) /*NitMethodContext::continue_label*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[6] = CALL_compiling_methods___NitMethodContext___continue_label(variable[6])(variable[6]) /*NitMethodContext::continue_label*/;
   variable[5] = variable[6];
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[7] = ((compiling_methods___NitMethodContext___break_label_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___break_label))(variable[7]) /*NitMethodContext::break_label*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[7] = CALL_compiling_methods___NitMethodContext___break_label(variable[7])(variable[7]) /*NitMethodContext::break_label*/;
   variable[6] = variable[7];
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[8] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[8],COLOR_compiling_methods___CFunctionContext___get_var))(variable[8]) /*CFunctionContext::get_var*/;
-  ((compiling_methods___NitMethodContext___continue_value__eq_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___continue_value__eq))(variable[7], variable[8]) /*NitMethodContext::continue_value=*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[8] = CALL_compiling_methods___CFunctionContext___get_var(variable[8])(variable[8]) /*CFunctionContext::get_var*/;
+  CALL_compiling_methods___NitMethodContext___continue_value__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::continue_value=*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("continue_label"), TAG_Int(14)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-  variable[11] = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((compiling_methods___NitMethodContext___continue_label__eq_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___continue_label__eq))(variable[7], variable[8]) /*NitMethodContext::continue_label=*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = ((compiling_methods___NitMethodContext___return_label_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___return_label))(variable[8]) /*NitMethodContext::return_label*/;
-  ((compiling_methods___NitMethodContext___break_label__eq_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___break_label__eq))(variable[7], variable[8]) /*NitMethodContext::break_label=*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_compiling_methods___NitMethodContext___continue_label__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::continue_label=*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = CALL_compiling_methods___NitMethodContext___return_label(variable[8])(variable[8]) /*NitMethodContext::return_label*/;
+  CALL_compiling_methods___NitMethodContext___break_label__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::break_label=*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___AClosureDef___n_expr_t)CALL(variable[7],COLOR_parser_nodes___AClosureDef___n_expr))(variable[7]) /*AClosureDef::n_expr*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = CALL_parser_nodes___AClosureDef___n_expr(variable[7])(variable[7]) /*AClosureDef::n_expr*/;
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    variable[7] = ((parser_nodes___AClosureDef___n_expr_t)CALL(variable[7],COLOR_parser_nodes___AClosureDef___n_expr))(variable[7]) /*AClosureDef::n_expr*/;
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_stmt*/;
+    variable[7] = CALL_parser_nodes___AClosureDef___n_expr(variable[7])(variable[7]) /*AClosureDef::n_expr*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_stmt*/;
   }
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
-  variable[10] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[10] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[10],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[10]) /*NitMethodContext::continue_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+  variable[10] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[10] = CALL_compiling_methods___NitMethodContext___continue_label(variable[10])(variable[10]) /*NitMethodContext::continue_label*/;
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(": while(false);"), TAG_Int(15)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_instr*/;
   variable[7] =  NIT_NULL /*null*/;
   variable[8] = variable[0];
-  variable[8] = ((syntax_base___PClosureDef___closure_t)CALL(variable[8],COLOR_syntax_base___PClosureDef___closure))(variable[8]) /*PClosureDef::closure*/;
-  variable[8] = ((static_type___MMClosure___signature_t)CALL(variable[8],COLOR_static_type___MMClosure___signature))(variable[8]) /*MMClosure::signature*/;
-  variable[8] = ((static_type___MMSignature___return_type_t)CALL(variable[8],COLOR_static_type___MMSignature___return_type))(variable[8]) /*MMSignature::return_type*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = CALL_syntax_base___PClosureDef___closure(variable[8])(variable[8]) /*PClosureDef::closure*/;
+  variable[8] = CALL_static_type___MMClosure___signature(variable[8])(variable[8]) /*MMClosure::signature*/;
+  variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[8] = ((compiling_methods___NitMethodContext___continue_value_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___continue_value))(variable[8]) /*NitMethodContext::continue_value*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[8] = CALL_compiling_methods___NitMethodContext___continue_value(variable[8])(variable[8]) /*NitMethodContext::continue_value*/;
     variable[7] = variable[8] /*ret=*/;
   }
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___continue_value__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___continue_value__eq))(variable[8],  variable[4] /*old_cv*/) /*NitMethodContext::continue_value=*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___continue_label__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___continue_label__eq))(variable[8],  variable[5] /*old_cl*/) /*NitMethodContext::continue_label=*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___break_label__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___break_label__eq))(variable[8],  variable[6] /*old_bl*/) /*NitMethodContext::break_label=*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___continue_value__eq(variable[8])(variable[8],  variable[4] /*old_cv*/) /*NitMethodContext::continue_value=*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___continue_label__eq(variable[8])(variable[8],  variable[5] /*old_cl*/) /*NitMethodContext::continue_label=*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___break_label__eq(variable[8])(variable[8],  variable[6] /*old_bl*/) /*NitMethodContext::break_label=*/;
   variable[3] =  variable[7] /*ret*/;
-  goto return_label366;
-  return_label366: while(false);
+  goto return_label352;
+  return_label352: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___AClosureDef___cname(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1498, LOCATE_compiling_methods___AClosureDef___cname};
+  struct trace_t trace = {NULL, NULL, 1461, LOCATE_compiling_methods___AClosureDef___cname};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9924,7 +9920,7 @@ val_t compiling_methods___AClosureDef___cname(val_t  self) {
   return ATTR_compiling_methods___AClosureDef____cname( self) /*AClosureDef::_cname*/;
 }
 val_t compiling_methods___AClosureDef___decl_csignature(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 1569, LOCATE_compiling_methods___AClosureDef___decl_csignature};
+  struct trace_t trace = {NULL, NULL, 1532, LOCATE_compiling_methods___AClosureDef___decl_csignature};
   val_t variable[22];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -9935,32 +9931,33 @@ val_t compiling_methods___AClosureDef___decl_csignature(val_t  self, val_t  para
   variable[3] =  param2;
   variable[6] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[3] /*closcn*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("* closctx"), TAG_Int(9)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
-  ((array___AbstractArray___add_t)CALL( variable[5] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*params*/, variable[6]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[5] /*params*/)( variable[5] /*params*/, variable[6]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((syntax_base___PClosureDef___closure_t)CALL(variable[6],COLOR_syntax_base___PClosureDef___closure))(variable[6]) /*PClosureDef::closure*/;
-  variable[6] = ((static_type___MMClosure___signature_t)CALL(variable[6],COLOR_static_type___MMClosure___signature))(variable[6]) /*MMClosure::signature*/;
-  variable[6] = ((static_type___MMSignature___arity_t)CALL(variable[6],COLOR_static_type___MMSignature___arity))(variable[6]) /*MMSignature::arity*/;
+  variable[6] = CALL_syntax_base___PClosureDef___closure(variable[6])(variable[6]) /*PClosureDef::closure*/;
+  variable[6] = CALL_static_type___MMClosure___signature(variable[6])(variable[6]) /*MMClosure::signature*/;
+  variable[6] = CALL_static_type___MMSignature___arity(variable[6])(variable[6]) /*MMSignature::arity*/;
   variable[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]); /*new Range[Int]*/
   variable[6] = variable[7];
-  variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
-    variable[10] = NEW_String_string___String___init(); /*new String*/
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("val_t "), TAG_Int(6)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
     variable[13] =  variable[2] /*args*/;
     variable[14] =  variable[8] /*i*/;
     variable[16] = TAG_Bool(UNTAG_Int( variable[14] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -9976,26 +9973,27 @@ val_t compiling_methods___AClosureDef___decl_csignature(val_t  self, val_t  para
     variable[16] = ATTR_array___Array____items(variable[16]) /*Array::_items*/;
     variable[16] = UNBOX_NativeArray(variable[16])[UNTAG_Int( variable[14] /*index*/)];
     variable[15] = variable[16];
-    goto return_label372;
-    return_label372: while(false);
+    goto return_label358;
+    return_label358: while(false);
     variable[13] = variable[15];
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
     variable[9] = variable[10];
-    ((array___AbstractArray___add_t)CALL( variable[5] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*params*/,  variable[9] /*p*/) /*AbstractArray::add*/;
-    continue_371: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*params*/)( variable[5] /*params*/,  variable[9] /*p*/) /*AbstractArray::add*/;
+    continue_357: while(0);
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
-  break_371: while(0);
+  break_357: while(0);
   /*variable[6] is variable ret*/
   variable[7] = variable[0];
-  variable[7] = ((syntax_base___PClosureDef___closure_t)CALL(variable[7],COLOR_syntax_base___PClosureDef___closure))(variable[7]) /*PClosureDef::closure*/;
-  variable[7] = ((static_type___MMClosure___signature_t)CALL(variable[7],COLOR_static_type___MMClosure___signature))(variable[7]) /*MMClosure::signature*/;
-  variable[7] = ((static_type___MMSignature___return_type_t)CALL(variable[7],COLOR_static_type___MMSignature___return_type))(variable[7]) /*MMSignature::return_type*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = CALL_syntax_base___PClosureDef___closure(variable[7])(variable[7]) /*PClosureDef::closure*/;
+  variable[7] = CALL_static_type___MMClosure___signature(variable[7])(variable[7]) /*MMClosure::signature*/;
+  variable[7] = CALL_static_type___MMSignature___return_type(variable[7])(variable[7]) /*MMSignature::return_type*/;
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("val_t"), TAG_Int(5)); /*new String*/
     variable[6] = variable[7] /*ret=*/;
@@ -10004,85 +10002,88 @@ val_t compiling_methods___AClosureDef___decl_csignature(val_t  self, val_t  para
     variable[6] = variable[7] /*ret=*/;
   }
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[8] = ((string___Collection___join_t)CALL( variable[5] /*params*/,COLOR_string___Collection___join))( variable[5] /*params*/, variable[8]) /*Collection::join*/;
+  variable[8] = CALL_string___Collection___join( variable[5] /*params*/)( variable[5] /*params*/, variable[8]) /*Collection::join*/;
   variable[7] = variable[8];
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[6] /*ret*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
   variable[15] = variable[0];
-  variable[15] = ((compiling_methods___AClosureDef___cname_t)CALL(variable[15],COLOR_compiling_methods___AClosureDef___cname))(variable[15]) /*AClosureDef::cname*/;
+  variable[15] = CALL_compiling_methods___AClosureDef___cname(variable[15])(variable[15]) /*AClosureDef::cname*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
   variable[19] =  variable[7] /*p*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[21]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
   variable[8] = variable[9];
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("struct "), TAG_Int(7)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[3] /*closcn*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
-  variable[9] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
+  variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("typedef "), TAG_Int(8)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[6] /*ret*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" (* "), TAG_Int(4)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
   variable[15] = variable[0];
-  variable[15] = ((compiling_methods___AClosureDef___cname_t)CALL(variable[15],COLOR_compiling_methods___AClosureDef___cname))(variable[15]) /*AClosureDef::cname*/;
+  variable[15] = CALL_compiling_methods___AClosureDef___cname(variable[15])(variable[15]) /*AClosureDef::cname*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString("_t)("), TAG_Int(4)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
   variable[19] =  variable[7] /*p*/;
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString(");"), TAG_Int(2)); /*new String*/
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[21]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
-  variable[9] = ((string___String_____plus_t)CALL( variable[8] /*s*/,COLOR_string___String_____plus))( variable[8] /*s*/, variable[9]) /*String::+*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
+  variable[9] = CALL_string___String_____plus( variable[8] /*s*/)( variable[8] /*s*/, variable[9]) /*String::+*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[9]) /*CompilerVisitor::add_decl*/;
   variable[4] =  variable[8] /*s*/;
-  goto return_label370;
-  return_label370: while(false);
+  goto return_label356;
+  return_label356: while(false);
   tracehead = trace.prev;
   return variable[4];
 }
 val_t compiling_methods___PClosureDecl___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1622, LOCATE_compiling_methods___PClosureDecl___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 1585, LOCATE_compiling_methods___PClosureDecl___do_compile_inside};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1622);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_compiling_methods, 1585);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t compiling_methods___AClosureDecl___do_compile_inside(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1625, LOCATE_compiling_methods___AClosureDecl___do_compile_inside};
+  struct trace_t trace = {NULL, NULL, 1588, LOCATE_compiling_methods___AClosureDecl___do_compile_inside};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -10091,93 +10092,95 @@ val_t compiling_methods___AClosureDecl___do_compile_inside(val_t  self, val_t  p
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AClosureDecl___n_signature_t)CALL(variable[4],COLOR_parser_nodes___AClosureDecl___n_signature))(variable[4]) /*AClosureDecl::n_signature*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AClosureDecl___n_signature(variable[4])(variable[4]) /*AClosureDecl::n_signature*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AClosureDecl___n_signature_t)CALL(variable[4],COLOR_parser_nodes___AClosureDecl___n_signature))(variable[4]) /*AClosureDecl::n_signature*/;
+    variable[4] = CALL_parser_nodes___AClosureDecl___n_signature(variable[4])(variable[4]) /*AClosureDecl::n_signature*/;
     variable[5] = variable[0];
-    variable[5] = ((mmbuilder___AClosureDecl___variable_t)CALL(variable[5],COLOR_syntax_base___PClosureDecl___variable))(variable[5]) /*AClosureDecl::variable*/;
-    variable[5] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[5],COLOR_syntax_base___ClosureVariable___closure))(variable[5]) /*ClosureVariable::closure*/;
-    variable[5] = ((static_type___MMClosure___signature_t)CALL(variable[5],COLOR_static_type___MMClosure___signature))(variable[5]) /*MMClosure::signature*/;
-    ((compiling_methods___PSignature___compile_parameters_t)CALL(variable[4],COLOR_compiling_methods___PSignature___compile_parameters))(variable[4],  variable[1] /*v*/, variable[5],  variable[2] /*params*/) /*PSignature::compile_parameters*/;
+    variable[5] = CALL_syntax_base___PClosureDecl___variable(variable[5])(variable[5]) /*AClosureDecl::variable*/;
+    variable[5] = CALL_syntax_base___ClosureVariable___closure(variable[5])(variable[5]) /*ClosureVariable::closure*/;
+    variable[5] = CALL_static_type___MMClosure___signature(variable[5])(variable[5]) /*MMClosure::signature*/;
+    CALL_compiling_methods___PSignature___compile_parameters(variable[4])(variable[4],  variable[1] /*v*/, variable[5],  variable[2] /*params*/) /*PSignature::compile_parameters*/;
   }
-  variable[5] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[5] = ((compiling_methods___NitMethodContext___continue_value_t)CALL(variable[5],COLOR_compiling_methods___NitMethodContext___continue_value))(variable[5]) /*NitMethodContext::continue_value*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[5] = CALL_compiling_methods___NitMethodContext___continue_value(variable[5])(variable[5]) /*NitMethodContext::continue_value*/;
   variable[4] = variable[5];
-  variable[6] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[6] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[6],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[6]) /*NitMethodContext::continue_label*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[6] = CALL_compiling_methods___NitMethodContext___continue_label(variable[6])(variable[6]) /*NitMethodContext::continue_label*/;
   variable[5] = variable[6];
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[7] = ((compiling_methods___NitMethodContext___break_label_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___break_label))(variable[7]) /*NitMethodContext::break_label*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[7] = CALL_compiling_methods___NitMethodContext___break_label(variable[7])(variable[7]) /*NitMethodContext::break_label*/;
   variable[6] = variable[7];
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[8] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[8],COLOR_compiling_methods___CFunctionContext___get_var))(variable[8]) /*CFunctionContext::get_var*/;
-  ((compiling_methods___NitMethodContext___continue_value__eq_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___continue_value__eq))(variable[7], variable[8]) /*NitMethodContext::continue_value=*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[8] = CALL_compiling_methods___CFunctionContext___get_var(variable[8])(variable[8]) /*CFunctionContext::get_var*/;
+  CALL_compiling_methods___NitMethodContext___continue_value__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::continue_value=*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("continue_label"), TAG_Int(14)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-  variable[11] = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[12] = variable[11];
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((compiling_methods___NitMethodContext___continue_label__eq_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___continue_label__eq))(variable[7], variable[8]) /*NitMethodContext::continue_label=*/;
-  variable[7] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[8] = ((compiling_methods___NitMethodContext___return_label_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___return_label))(variable[8]) /*NitMethodContext::return_label*/;
-  ((compiling_methods___NitMethodContext___break_label__eq_t)CALL(variable[7],COLOR_compiling_methods___NitMethodContext___break_label__eq))(variable[7], variable[8]) /*NitMethodContext::break_label=*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_compiling_methods___NitMethodContext___continue_label__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::continue_label=*/;
+  variable[7] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[8] = CALL_compiling_methods___NitMethodContext___return_label(variable[8])(variable[8]) /*NitMethodContext::return_label*/;
+  CALL_compiling_methods___NitMethodContext___break_label__eq(variable[7])(variable[7], variable[8]) /*NitMethodContext::break_label=*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___AClosureDecl___n_expr_t)CALL(variable[7],COLOR_parser_nodes___AClosureDecl___n_expr))(variable[7]) /*AClosureDecl::n_expr*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = CALL_parser_nodes___AClosureDecl___n_expr(variable[7])(variable[7]) /*AClosureDecl::n_expr*/;
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    variable[7] = ((parser_nodes___AClosureDecl___n_expr_t)CALL(variable[7],COLOR_parser_nodes___AClosureDecl___n_expr))(variable[7]) /*AClosureDecl::n_expr*/;
-    ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_stmt))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_stmt*/;
+    variable[7] = CALL_parser_nodes___AClosureDecl___n_expr(variable[7])(variable[7]) /*AClosureDecl::n_expr*/;
+    CALL_compiling_methods___CompilerVisitor___compile_stmt( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::compile_stmt*/;
   }
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
-  variable[10] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[10] = ((compiling_methods___NitMethodContext___continue_label_t)CALL(variable[10],COLOR_compiling_methods___NitMethodContext___continue_label))(variable[10]) /*NitMethodContext::continue_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+  variable[10] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[10] = CALL_compiling_methods___NitMethodContext___continue_label(variable[10])(variable[10]) /*NitMethodContext::continue_label*/;
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(": while(false);"), TAG_Int(15)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_instr*/;
   variable[7] =  NIT_NULL /*null*/;
   variable[8] = variable[0];
-  variable[8] = ((mmbuilder___AClosureDecl___variable_t)CALL(variable[8],COLOR_syntax_base___PClosureDecl___variable))(variable[8]) /*AClosureDecl::variable*/;
-  variable[8] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[8],COLOR_syntax_base___ClosureVariable___closure))(variable[8]) /*ClosureVariable::closure*/;
-  variable[8] = ((static_type___MMClosure___signature_t)CALL(variable[8],COLOR_static_type___MMClosure___signature))(variable[8]) /*MMClosure::signature*/;
-  variable[8] = ((static_type___MMSignature___return_type_t)CALL(variable[8],COLOR_static_type___MMSignature___return_type))(variable[8]) /*MMSignature::return_type*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = CALL_syntax_base___PClosureDecl___variable(variable[8])(variable[8]) /*AClosureDecl::variable*/;
+  variable[8] = CALL_syntax_base___ClosureVariable___closure(variable[8])(variable[8]) /*ClosureVariable::closure*/;
+  variable[8] = CALL_static_type___MMClosure___signature(variable[8])(variable[8]) /*MMClosure::signature*/;
+  variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-    variable[8] = ((compiling_methods___NitMethodContext___continue_value_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___continue_value))(variable[8]) /*NitMethodContext::continue_value*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+    variable[8] = CALL_compiling_methods___NitMethodContext___continue_value(variable[8])(variable[8]) /*NitMethodContext::continue_value*/;
     variable[7] = variable[8] /*ret=*/;
   }
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___continue_value__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___continue_value__eq))(variable[8],  variable[4] /*old_cv*/) /*NitMethodContext::continue_value=*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___continue_label__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___continue_label__eq))(variable[8],  variable[5] /*old_cl*/) /*NitMethodContext::continue_label=*/;
-  variable[8] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  ((compiling_methods___NitMethodContext___break_label__eq_t)CALL(variable[8],COLOR_compiling_methods___NitMethodContext___break_label__eq))(variable[8],  variable[6] /*old_bl*/) /*NitMethodContext::break_label=*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___continue_value__eq(variable[8])(variable[8],  variable[4] /*old_cv*/) /*NitMethodContext::continue_value=*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___continue_label__eq(variable[8])(variable[8],  variable[5] /*old_cl*/) /*NitMethodContext::continue_label=*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  CALL_compiling_methods___NitMethodContext___break_label__eq(variable[8])(variable[8],  variable[6] /*old_bl*/) /*NitMethodContext::break_label=*/;
   variable[3] =  variable[7] /*ret*/;
-  goto return_label373;
-  return_label373: while(false);
+  goto return_label359;
+  return_label359: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 val_t compiling_methods___AClosureCallExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1653, LOCATE_compiling_methods___AClosureCallExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1616, LOCATE_compiling_methods___AClosureCallExpr___compile_expr};
   val_t variable[22];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -10187,218 +10190,225 @@ val_t compiling_methods___AClosureCallExpr___compile_expr(val_t  self, val_t  pa
   variable[4] = NEW_Array_array___Array___init(); /*new Array[String]*/
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((typing___AAbsSendExpr___arguments_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___arguments))(variable[4]) /*AAbsSendExpr::arguments*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_typing___AAbsSendExpr___arguments(variable[4])(variable[4]) /*AAbsSendExpr::arguments*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/,  variable[6] /*a*/) /*CompilerVisitor::compile_expr*/;
-    ((array___AbstractArray___add_t)CALL( variable[3] /*cargs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*cargs*/, variable[7]) /*AbstractArray::add*/;
-    continue_375: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    variable[7] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*a*/) /*CompilerVisitor::compile_expr*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*cargs*/)( variable[3] /*cargs*/, variable[7]) /*AbstractArray::add*/;
+    continue_361: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
-  break_375: while(0);
+  break_361: while(0);
   variable[4] =  NIT_NULL /*null*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AClosureCallExpr___variable))(variable[5]) /*AClosureCallExpr::variable*/;
-  variable[5] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[5],COLOR_syntax_base___ClosureVariable___closure))(variable[5]) /*ClosureVariable::closure*/;
-  variable[5] = ((static_type___MMClosure___signature_t)CALL(variable[5],COLOR_static_type___MMClosure___signature))(variable[5]) /*MMClosure::signature*/;
-  variable[5] = ((static_type___MMSignature___return_type_t)CALL(variable[5],COLOR_static_type___MMSignature___return_type))(variable[5]) /*MMSignature::return_type*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = CALL_syntax_base___AClosureCallExpr___variable(variable[5])(variable[5]) /*AClosureCallExpr::variable*/;
+  variable[5] = CALL_syntax_base___ClosureVariable___closure(variable[5])(variable[5]) /*ClosureVariable::closure*/;
+  variable[5] = CALL_static_type___MMClosure___signature(variable[5])(variable[5]) /*MMClosure::signature*/;
+  variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[5] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-    variable[5] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[5],COLOR_compiling_methods___CFunctionContext___get_var))(variable[5]) /*CFunctionContext::get_var*/;
+    variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    variable[5] = CALL_compiling_methods___CFunctionContext___get_var(variable[5])(variable[5]) /*CFunctionContext::get_var*/;
     variable[4] = variable[5] /*va=*/;
   }
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AClosureCallExpr___variable))(variable[5]) /*AClosureCallExpr::variable*/;
-  variable[5] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[5],COLOR_syntax_base___ClosureVariable___closure))(variable[5]) /*ClosureVariable::closure*/;
-  variable[5] = ((static_type___MMClosure___is_optional_t)CALL(variable[5],COLOR_static_type___MMClosure___is_optional))(variable[5]) /*MMClosure::is_optional*/;
+  variable[5] = CALL_syntax_base___AClosureCallExpr___variable(variable[5])(variable[5]) /*AClosureCallExpr::variable*/;
+  variable[5] = CALL_syntax_base___ClosureVariable___closure(variable[5])(variable[5]) /*ClosureVariable::closure*/;
+  variable[5] = CALL_static_type___MMClosure___is_optional(variable[5])(variable[5]) /*MMClosure::is_optional*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if("), TAG_Int(3)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
-    variable[8] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+    variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
     variable[9] = variable[0];
-    variable[9] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[9],COLOR_syntax_base___AClosureCallExpr___variable))(variable[9]) /*AClosureCallExpr::variable*/;
-    variable[8] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[8],COLOR_compiling_methods___CFunctionContext___varname))(variable[8], variable[9]) /*CFunctionContext::varname*/;
+    variable[9] = CALL_syntax_base___AClosureCallExpr___variable(variable[9])(variable[9]) /*AClosureCallExpr::variable*/;
+    variable[8] = CALL_compiling_methods___CFunctionContext___varname(variable[8])(variable[8], variable[9]) /*CFunctionContext::varname*/;
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("==NULL) {"), TAG_Int(9)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
-    ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
     variable[6] = variable[0];
-    variable[6] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[6],COLOR_syntax_base___AClosureCallExpr___variable))(variable[6]) /*AClosureCallExpr::variable*/;
-    variable[6] = ((syntax_base___Variable___decl_t)CALL(variable[6],COLOR_syntax_base___Variable___decl))(variable[6]) /*Variable::decl*/;
+    variable[6] = CALL_syntax_base___AClosureCallExpr___variable(variable[6])(variable[6]) /*AClosureCallExpr::variable*/;
+    variable[6] = CALL_syntax_base___Variable___decl(variable[6])(variable[6]) /*Variable::decl*/;
     variable[5] = variable[6];
     variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_AClosureDecl, ID_AClosureDecl)) /*cast AClosureDecl*/;
-    if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AClosureCallExpr___compile_expr, LOCATE_compiling_methods, 1664); nit_exit(1);}
-    variable[7] = ((compiling_methods___AClosureDecl___do_compile_inside_t)CALL( variable[5] /*n*/,COLOR_compiling_methods___PClosureDecl___do_compile_inside))( variable[5] /*n*/,  variable[1] /*v*/,  variable[3] /*cargs*/) /*AClosureDecl::do_compile_inside*/;
+    if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_compiling_methods___AClosureCallExpr___compile_expr, LOCATE_compiling_methods, 1627); nit_exit(1);}
+    variable[7] = CALL_compiling_methods___PClosureDecl___do_compile_inside( variable[5] /*n*/)( variable[5] /*n*/,  variable[1] /*v*/,  variable[3] /*cargs*/) /*AClosureDecl::do_compile_inside*/;
     variable[6] = variable[7];
-    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*s*/ ==  NIT_NULL /*null*/) || (( variable[6] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*s*/,COLOR_kernel___Object_____eqeq))( variable[6] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*s*/ ==  NIT_NULL /*null*/) || (( variable[6] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*s*/)( variable[6] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[4] /*va*/,  variable[6] /*s*/) /*CompilerVisitor::add_assignment*/;
+      CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*va*/,  variable[6] /*s*/) /*CompilerVisitor::add_assignment*/;
     }
-    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+    CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("} else {"), TAG_Int(8)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_instr*/;
-    ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[7]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   }
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("(("), TAG_Int(2)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
-  variable[9] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[9],COLOR_syntax_base___AClosureCallExpr___variable))(variable[9]) /*AClosureCallExpr::variable*/;
-  variable[9] = ((compiling_methods___ClosureVariable___ctypename_t)CALL(variable[9],COLOR_compiling_methods___ClosureVariable___ctypename))(variable[9]) /*ClosureVariable::ctypename*/;
+  variable[9] = CALL_syntax_base___AClosureCallExpr___variable(variable[9])(variable[9]) /*AClosureCallExpr::variable*/;
+  variable[9] = CALL_compiling_methods___ClosureVariable___ctypename(variable[9])(variable[9]) /*ClosureVariable::ctypename*/;
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(")("), TAG_Int(2)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-  variable[13] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+  variable[13] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
   variable[14] = variable[0];
-  variable[14] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[14],COLOR_syntax_base___AClosureCallExpr___variable))(variable[14]) /*AClosureCallExpr::variable*/;
-  variable[13] = ((compiling_methods___CFunctionContext___varname_t)CALL(variable[13],COLOR_compiling_methods___CFunctionContext___varname))(variable[13], variable[14]) /*CFunctionContext::varname*/;
+  variable[14] = CALL_syntax_base___AClosureCallExpr___variable(variable[14])(variable[14]) /*AClosureCallExpr::variable*/;
+  variable[13] = CALL_compiling_methods___CFunctionContext___varname(variable[13])(variable[13], variable[14]) /*CFunctionContext::varname*/;
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("))"), TAG_Int(2)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[5] /*ivar*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[5] /*ivar*/) /*AbstractArray::add*/;
   variable[6] = variable[7];
-  ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*cargs2*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*cargs2*/,  variable[3] /*cargs*/) /*IndexedCollection::append*/;
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___IndexedCollection___append( variable[6] /*cargs2*/)( variable[6] /*cargs2*/,  variable[3] /*cargs*/) /*IndexedCollection::append*/;
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[5] /*ivar*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("->fun("), TAG_Int(6)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[14] = ((string___Collection___join_t)CALL( variable[6] /*cargs2*/,COLOR_string___Collection___join))( variable[6] /*cargs2*/, variable[14]) /*Collection::join*/;
+  variable[14] = CALL_string___Collection___join( variable[6] /*cargs2*/)( variable[6] /*cargs2*/, variable[14]) /*Collection::join*/;
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString(")) /* Invoke closure "), TAG_Int(21)); /*new String*/
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
   variable[18] = variable[0];
-  variable[18] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[18],COLOR_syntax_base___AClosureCallExpr___variable))(variable[18]) /*AClosureCallExpr::variable*/;
+  variable[18] = CALL_syntax_base___AClosureCallExpr___variable(variable[18])(variable[18]) /*AClosureCallExpr::variable*/;
   variable[19] = variable[18];
-  variable[19] = ((string___String___to_s_t)CALL(variable[19],COLOR_string___Object___to_s))(variable[19]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[19]) /*String::append*/;
+  variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_String_string___String___with_native(BOX_NativeString(" */"), TAG_Int(3)); /*new String*/
   variable[21] = variable[20];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[21]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[21]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
   variable[7] = variable[8];
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*va*/ ==  NIT_NULL /*null*/) || (( variable[4] /*va*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*va*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*va*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*va*/,COLOR_kernel___Object_____eqeq))( variable[4] /*va*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*va*/ ==  NIT_NULL /*null*/) || (( variable[4] /*va*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*va*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*va*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*va*/)( variable[4] /*va*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[4] /*va*/,  variable[7] /*s*/) /*CompilerVisitor::add_assignment*/;
+    CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*va*/,  variable[7] /*s*/) /*CompilerVisitor::add_assignment*/;
   } else { /*if*/
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
     variable[11] =  variable[7] /*s*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   }
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[5] /*ivar*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke) {"), TAG_Int(14)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
   variable[8] = variable[0];
-  variable[8] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[8],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[8]) /*ASendExpr::n_closure_defs*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[8])(variable[8]) /*ASendExpr::n_closure_defs*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[9] = variable[8];
   if (UNTAG_Bool(variable[9])) { /* and */
     variable[9] = variable[0];
-    variable[9] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[9],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[9]) /*ASendExpr::n_closure_defs*/;
-    variable[9] = ((list___List___length_t)CALL(variable[9],COLOR_abstract_collection___Collection___length))(variable[9]) /*List::length*/;
+    variable[9] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[9])(variable[9]) /*ASendExpr::n_closure_defs*/;
+    variable[9] = CALL_abstract_collection___Collection___length(variable[9])(variable[9]) /*List::length*/;
     variable[9] = TAG_Bool((variable[9])==( TAG_Int(1)));
   }
   variable[8] = variable[9];
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    variable[8] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[8],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[8]) /*ASendExpr::n_closure_defs*/;
-    variable[8] = ((list___List___first_t)CALL(variable[8],COLOR_abstract_collection___Collection___first))(variable[8]) /*List::first*/;
-    ((compiling_methods___PClosureDef___do_compile_inside_t)CALL(variable[8],COLOR_compiling_methods___PClosureDef___do_compile_inside))(variable[8],  variable[1] /*v*/,  NIT_NULL /*null*/) /*PClosureDef::do_compile_inside*/;
+    variable[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[8])(variable[8]) /*ASendExpr::n_closure_defs*/;
+    variable[8] = CALL_abstract_collection___Collection___first(variable[8])(variable[8]) /*List::first*/;
+    CALL_compiling_methods___PClosureDef___do_compile_inside(variable[8])(variable[8],  variable[1] /*v*/,  NIT_NULL /*null*/) /*PClosureDef::do_compile_inside*/;
   }
-  variable[8] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[8] = ((compiling_methods___CFunctionContext___in_closure_t)CALL(variable[8],COLOR_compiling_methods___CFunctionContext___in_closure))(variable[8]) /*CFunctionContext::in_closure*/;
+  variable[8] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[8] = CALL_compiling_methods___CFunctionContext___in_closure(variable[8])(variable[8]) /*CFunctionContext::in_closure*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("if ("), TAG_Int(4)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
     variable[11] =  variable[5] /*ivar*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke) { closctx->has_broke = "), TAG_Int(36)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
     variable[14] =  variable[5] /*ivar*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString("->has_broke; closctx->broke_value = "), TAG_Int(36)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[5] /*ivar*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString("->broke_value;}"), TAG_Int(15)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[19]) /*String::append*/;
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[19]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   }
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("goto "), TAG_Int(5)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
-  variable[11] = ((compiling_methods___CompilerVisitor___nmc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___nmc))( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
-  variable[11] = ((compiling_methods___NitMethodContext___return_label_t)CALL(variable[11],COLOR_compiling_methods___NitMethodContext___return_label))(variable[11]) /*NitMethodContext::return_label*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
+  variable[11] = CALL_compiling_methods___CompilerVisitor___nmc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::nmc*/;
+  variable[11] = CALL_compiling_methods___NitMethodContext___return_label(variable[11])(variable[11]) /*NitMethodContext::return_label*/;
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   variable[8] = variable[0];
-  variable[8] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[8],COLOR_syntax_base___AClosureCallExpr___variable))(variable[8]) /*AClosureCallExpr::variable*/;
-  variable[8] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[8],COLOR_syntax_base___ClosureVariable___closure))(variable[8]) /*ClosureVariable::closure*/;
-  variable[8] = ((static_type___MMClosure___is_optional_t)CALL(variable[8],COLOR_static_type___MMClosure___is_optional))(variable[8]) /*MMClosure::is_optional*/;
+  variable[8] = CALL_syntax_base___AClosureCallExpr___variable(variable[8])(variable[8]) /*AClosureCallExpr::variable*/;
+  variable[8] = CALL_syntax_base___ClosureVariable___closure(variable[8])(variable[8]) /*ClosureVariable::closure*/;
+  variable[8] = CALL_static_type___MMClosure___is_optional(variable[8])(variable[8]) /*MMClosure::is_optional*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+    CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-    ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
+    CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[8]) /*CompilerVisitor::add_instr*/;
   }
   variable[2] =  variable[4] /*va*/;
-  goto return_label374;
-  return_label374: while(false);
+  goto return_label360;
+  return_label360: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AProxyExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1700, LOCATE_compiling_methods___AProxyExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1663, LOCATE_compiling_methods___AProxyExpr___compile_expr};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -10406,114 +10416,118 @@ val_t compiling_methods___AProxyExpr___compile_expr(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AProxyExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AProxyExpr___n_expr))(variable[3]) /*AProxyExpr::n_expr*/;
-  variable[3] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[3]) /*CompilerVisitor::compile_expr*/;
+  variable[3] = CALL_parser_nodes___AProxyExpr___n_expr(variable[3])(variable[3]) /*AProxyExpr::n_expr*/;
+  variable[3] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*CompilerVisitor::compile_expr*/;
   variable[2] = variable[3];
-  goto return_label376;
-  return_label376: while(false);
+  goto return_label362;
+  return_label362: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t compiling_methods___AOnceExpr___compile_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1707, LOCATE_compiling_methods___AOnceExpr___compile_expr};
+  struct trace_t trace = {NULL, NULL, 1670, LOCATE_compiling_methods___AOnceExpr___compile_expr};
   val_t variable[17];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_compiling_methods;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((compiling_base___CompilerVisitor___new_number_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___new_number))( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
+  variable[4] = CALL_compiling_base___CompilerVisitor___new_number( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::new_number*/;
   variable[3] = variable[4];
-  variable[5] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  variable[5] = ((compiling_methods___CFunctionContext___get_var_t)CALL(variable[5],COLOR_compiling_methods___CFunctionContext___get_var))(variable[5]) /*CFunctionContext::get_var*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  variable[5] = CALL_compiling_methods___CFunctionContext___get_var(variable[5])(variable[5]) /*CFunctionContext::get_var*/;
   variable[4] = variable[5];
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("static val_t once_value_"), TAG_Int(24)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*i*/;
-  variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("; static int once_bool_"), TAG_Int(23)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[3] /*i*/;
-  variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("; /* Once value for "), TAG_Int(20)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
   variable[14] =  variable[4] /*cvar*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("*/"), TAG_Int(2)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[16]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_decl_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_decl))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_decl( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_decl*/;
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("if (once_bool_"), TAG_Int(14)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] =  variable[3] /*i*/;
-  variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(") "), TAG_Int(2)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[4] /*cvar*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" = once_value_"), TAG_Int(14)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
   variable[14] =  variable[3] /*i*/;
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[16]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("else {"), TAG_Int(6)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___indent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___indent))( variable[1] /*v*/) /*CompilerVisitor::indent*/;
-  variable[5] = ((compiling_methods___CompilerVisitor___cfc_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___cfc))( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
-  ((compiling_methods___CFunctionContext___free_var_t)CALL(variable[5],COLOR_compiling_methods___CFunctionContext___free_var))(variable[5],  variable[4] /*cvar*/) /*CFunctionContext::free_var*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___indent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::indent*/;
+  variable[5] = CALL_compiling_methods___CompilerVisitor___cfc( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::cfc*/;
+  CALL_compiling_methods___CFunctionContext___free_var(variable[5])(variable[5],  variable[4] /*cvar*/) /*CFunctionContext::free_var*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AProxyExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___AProxyExpr___n_expr))(variable[6]) /*AProxyExpr::n_expr*/;
-  variable[6] = ((compiling_methods___CompilerVisitor___compile_expr_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___compile_expr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
+  variable[6] = CALL_parser_nodes___AProxyExpr___n_expr(variable[6])(variable[6]) /*AProxyExpr::n_expr*/;
+  variable[6] = CALL_compiling_methods___CompilerVisitor___compile_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::compile_expr*/;
   variable[5] = variable[6];
-  ((compiling_methods___CompilerVisitor___add_assignment_t)CALL( variable[1] /*v*/,COLOR_compiling_methods___CompilerVisitor___add_assignment))( variable[1] /*v*/,  variable[4] /*cvar*/,  variable[5] /*e*/) /*CompilerVisitor::add_assignment*/;
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  CALL_compiling_methods___CompilerVisitor___add_assignment( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*cvar*/,  variable[5] /*e*/) /*CompilerVisitor::add_assignment*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("once_value_"), TAG_Int(11)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[3] /*i*/;
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" = "), TAG_Int(3)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[4] /*cvar*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(";"), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("once_bool_"), TAG_Int(10)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[3] /*i*/;
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" = true;"), TAG_Int(8)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
-  ((compiling_base___CompilerVisitor___unindent_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___unindent))( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___unindent( variable[1] /*v*/)( variable[1] /*v*/) /*CompilerVisitor::unindent*/;
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString("}"), TAG_Int(1)); /*new String*/
-  ((compiling_base___CompilerVisitor___add_instr_t)CALL( variable[1] /*v*/,COLOR_compiling_base___CompilerVisitor___add_instr))( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
+  CALL_compiling_base___CompilerVisitor___add_instr( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*CompilerVisitor::add_instr*/;
   variable[2] =  variable[4] /*cvar*/;
-  goto return_label377;
-  return_label377: while(false);
+  goto return_label363;
+  return_label363: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
index 122629f..6712ab7 100644 (file)
@@ -9,99 +9,98 @@ extern const classtable_elt_t VFT_CFunctionContext[];
 extern const classtable_elt_t VFT_NitMethodContext[];
 extern const char *LOCATE_compiling_methods;
 extern const int SFT_compiling_methods[];
-#define COLOR_compiling_methods___CompilerVisitor____cfc SFT_compiling_methods[0]
-#define COLOR_compiling_methods___CompilerVisitor____nmc SFT_compiling_methods[1]
-#define COLOR_compiling_methods___CompilerVisitor____out_contexts SFT_compiling_methods[2]
-#define COLOR_compiling_methods___CompilerVisitor___compile_stmt SFT_compiling_methods[3]
-#define COLOR_compiling_methods___CompilerVisitor___compile_expr SFT_compiling_methods[4]
-#define COLOR_compiling_methods___CompilerVisitor___ensure_var SFT_compiling_methods[5]
-#define COLOR_compiling_methods___CompilerVisitor___add_assignment SFT_compiling_methods[6]
-#define COLOR_compiling_methods___CompilerVisitor___cfc SFT_compiling_methods[7]
-#define COLOR_compiling_methods___CompilerVisitor___cfc__eq SFT_compiling_methods[8]
-#define COLOR_compiling_methods___CompilerVisitor___nmc SFT_compiling_methods[9]
-#define COLOR_compiling_methods___CompilerVisitor___nmc__eq SFT_compiling_methods[10]
-#define COLOR_compiling_methods___CompilerVisitor___out_contexts SFT_compiling_methods[11]
-#define COLOR_compiling_methods___CompilerVisitor___out_contexts__eq SFT_compiling_methods[12]
-#define COLOR_compiling_methods___CompilerVisitor___printf_locate_error SFT_compiling_methods[13]
-#define COLOR_SUPER_compiling_methods___CompilerVisitor___init SFT_compiling_methods[14]
-#define COLOR_compiling_methods___CompilerVisitor___invoke_super_init_calls_after SFT_compiling_methods[15]
-#define ID_CFunctionContext SFT_compiling_methods[16]
-#define COLOR_CFunctionContext SFT_compiling_methods[17]
-#define COLOR_compiling_methods___CFunctionContext____visitor SFT_compiling_methods[18]
-#define COLOR_compiling_methods___CFunctionContext____variable_index SFT_compiling_methods[19]
-#define COLOR_compiling_methods___CFunctionContext____variable_index_max SFT_compiling_methods[20]
-#define COLOR_compiling_methods___CFunctionContext____varnames SFT_compiling_methods[21]
-#define COLOR_compiling_methods___CFunctionContext____in_closure SFT_compiling_methods[22]
-#define COLOR_compiling_methods___CFunctionContext____closurevariable_index SFT_compiling_methods[23]
-#define INIT_TABLE_POS_CFunctionContext SFT_compiling_methods[24]
-#define COLOR_compiling_methods___CFunctionContext___visitor SFT_compiling_methods[25]
-#define COLOR_compiling_methods___CFunctionContext___in_closure SFT_compiling_methods[26]
-#define COLOR_compiling_methods___CFunctionContext___in_closure__eq SFT_compiling_methods[27]
-#define COLOR_compiling_methods___CFunctionContext___varname SFT_compiling_methods[28]
-#define COLOR_compiling_methods___CFunctionContext___get_var SFT_compiling_methods[29]
-#define COLOR_compiling_methods___CFunctionContext___register_variable SFT_compiling_methods[30]
-#define COLOR_compiling_methods___CFunctionContext___register_closurevariable SFT_compiling_methods[31]
-#define COLOR_compiling_methods___CFunctionContext___variable SFT_compiling_methods[32]
-#define COLOR_compiling_methods___CFunctionContext___free_var SFT_compiling_methods[33]
-#define COLOR_compiling_methods___CFunctionContext___generate_var_decls SFT_compiling_methods[34]
-#define COLOR_compiling_methods___CFunctionContext___init SFT_compiling_methods[35]
-#define ID_NitMethodContext SFT_compiling_methods[36]
-#define COLOR_NitMethodContext SFT_compiling_methods[37]
-#define COLOR_compiling_methods___NitMethodContext____method SFT_compiling_methods[38]
-#define COLOR_compiling_methods___NitMethodContext____method_params SFT_compiling_methods[39]
-#define COLOR_compiling_methods___NitMethodContext____return_label SFT_compiling_methods[40]
-#define COLOR_compiling_methods___NitMethodContext____break_label SFT_compiling_methods[41]
-#define COLOR_compiling_methods___NitMethodContext____continue_label SFT_compiling_methods[42]
-#define COLOR_compiling_methods___NitMethodContext____return_value SFT_compiling_methods[43]
-#define COLOR_compiling_methods___NitMethodContext____break_value SFT_compiling_methods[44]
-#define COLOR_compiling_methods___NitMethodContext____continue_value SFT_compiling_methods[45]
-#define INIT_TABLE_POS_NitMethodContext SFT_compiling_methods[46]
-#define COLOR_compiling_methods___NitMethodContext___method SFT_compiling_methods[47]
-#define COLOR_compiling_methods___NitMethodContext___method_params SFT_compiling_methods[48]
-#define COLOR_compiling_methods___NitMethodContext___method_params__eq SFT_compiling_methods[49]
-#define COLOR_compiling_methods___NitMethodContext___return_label SFT_compiling_methods[50]
-#define COLOR_compiling_methods___NitMethodContext___return_label__eq SFT_compiling_methods[51]
-#define COLOR_compiling_methods___NitMethodContext___break_label SFT_compiling_methods[52]
-#define COLOR_compiling_methods___NitMethodContext___break_label__eq SFT_compiling_methods[53]
-#define COLOR_compiling_methods___NitMethodContext___continue_label SFT_compiling_methods[54]
-#define COLOR_compiling_methods___NitMethodContext___continue_label__eq SFT_compiling_methods[55]
-#define COLOR_compiling_methods___NitMethodContext___return_value SFT_compiling_methods[56]
-#define COLOR_compiling_methods___NitMethodContext___return_value__eq SFT_compiling_methods[57]
-#define COLOR_compiling_methods___NitMethodContext___break_value SFT_compiling_methods[58]
-#define COLOR_compiling_methods___NitMethodContext___break_value__eq SFT_compiling_methods[59]
-#define COLOR_compiling_methods___NitMethodContext___continue_value SFT_compiling_methods[60]
-#define COLOR_compiling_methods___NitMethodContext___continue_value__eq SFT_compiling_methods[61]
-#define COLOR_compiling_methods___NitMethodContext___init SFT_compiling_methods[62]
-#define COLOR_compiling_methods___ClosureVariable____ctypename SFT_compiling_methods[63]
-#define COLOR_compiling_methods___ClosureVariable___ctypename SFT_compiling_methods[64]
-#define COLOR_compiling_methods___ClosureVariable___ctypename__eq SFT_compiling_methods[65]
-#define COLOR_compiling_methods___MMMethod___compile_call SFT_compiling_methods[66]
-#define COLOR_compiling_methods___MMMethod___compile_constructor_call SFT_compiling_methods[67]
-#define COLOR_compiling_methods___MMMethod___compile_super_call SFT_compiling_methods[68]
-#define COLOR_compiling_methods___MMMethod___closure_cname SFT_compiling_methods[69]
-#define COLOR_compiling_methods___MMAttribute___compile_access SFT_compiling_methods[70]
-#define COLOR_compiling_methods___MMLocalProperty___compile_property_to_c SFT_compiling_methods[71]
-#define COLOR_compiling_methods___MMSrcMethod___decl_csignature SFT_compiling_methods[72]
-#define COLOR_compiling_methods___MMSrcMethod___do_compile_inside SFT_compiling_methods[73]
-#define COLOR_compiling_methods___MMType___compile_cast SFT_compiling_methods[74]
-#define COLOR_compiling_methods___MMType___compile_type_check SFT_compiling_methods[75]
-#define COLOR_compiling_methods___AMethPropdef___do_compile_inside SFT_compiling_methods[76]
-#define COLOR_compiling_methods___PSignature___compile_parameters SFT_compiling_methods[77]
-#define COLOR_compiling_methods___PExpr___compile_expr SFT_compiling_methods[78]
-#define COLOR_compiling_methods___PExpr___prepare_compile_stmt SFT_compiling_methods[79]
-#define COLOR_compiling_methods___PExpr___compile_stmt SFT_compiling_methods[80]
-#define COLOR_compiling_methods___AControlableBlock___compile_inside_block SFT_compiling_methods[81]
-#define COLOR_compiling_methods___AStringFormExpr____cstring SFT_compiling_methods[82]
-#define COLOR_compiling_methods___AStringFormExpr____cstring_length SFT_compiling_methods[83]
-#define COLOR_compiling_methods___AStringFormExpr___string_text SFT_compiling_methods[84]
-#define COLOR_compiling_methods___AStringFormExpr___compute_string_info SFT_compiling_methods[85]
-#define COLOR_compiling_methods___ARangeExpr___propname SFT_compiling_methods[86]
-#define COLOR_compiling_methods___PClosureDef___compile_closure SFT_compiling_methods[87]
-#define COLOR_compiling_methods___PClosureDef___do_compile_inside SFT_compiling_methods[88]
-#define COLOR_compiling_methods___AClosureDef____cname SFT_compiling_methods[89]
-#define COLOR_compiling_methods___AClosureDef___cname SFT_compiling_methods[90]
-#define COLOR_compiling_methods___AClosureDef___decl_csignature SFT_compiling_methods[91]
-#define COLOR_compiling_methods___PClosureDecl___do_compile_inside SFT_compiling_methods[92]
+#define ATTR_compiling_methods___CompilerVisitor____cfc(recv) ATTR(recv, (SFT_compiling_methods[0] + 0))
+#define ATTR_compiling_methods___CompilerVisitor____nmc(recv) ATTR(recv, (SFT_compiling_methods[0] + 1))
+#define ATTR_compiling_methods___CompilerVisitor____out_contexts(recv) ATTR(recv, (SFT_compiling_methods[0] + 2))
+#define CALL_compiling_methods___CompilerVisitor___compile_stmt(recv) ((compiling_methods___CompilerVisitor___compile_stmt_t)CALL((recv), (SFT_compiling_methods[1] + 0)))
+#define CALL_compiling_methods___CompilerVisitor___compile_expr(recv) ((compiling_methods___CompilerVisitor___compile_expr_t)CALL((recv), (SFT_compiling_methods[1] + 1)))
+#define CALL_compiling_methods___CompilerVisitor___ensure_var(recv) ((compiling_methods___CompilerVisitor___ensure_var_t)CALL((recv), (SFT_compiling_methods[1] + 2)))
+#define CALL_compiling_methods___CompilerVisitor___add_assignment(recv) ((compiling_methods___CompilerVisitor___add_assignment_t)CALL((recv), (SFT_compiling_methods[1] + 3)))
+#define CALL_compiling_methods___CompilerVisitor___cfc(recv) ((compiling_methods___CompilerVisitor___cfc_t)CALL((recv), (SFT_compiling_methods[1] + 4)))
+#define CALL_compiling_methods___CompilerVisitor___cfc__eq(recv) ((compiling_methods___CompilerVisitor___cfc__eq_t)CALL((recv), (SFT_compiling_methods[1] + 5)))
+#define CALL_compiling_methods___CompilerVisitor___nmc(recv) ((compiling_methods___CompilerVisitor___nmc_t)CALL((recv), (SFT_compiling_methods[1] + 6)))
+#define CALL_compiling_methods___CompilerVisitor___nmc__eq(recv) ((compiling_methods___CompilerVisitor___nmc__eq_t)CALL((recv), (SFT_compiling_methods[1] + 7)))
+#define CALL_compiling_methods___CompilerVisitor___out_contexts(recv) ((compiling_methods___CompilerVisitor___out_contexts_t)CALL((recv), (SFT_compiling_methods[1] + 8)))
+#define CALL_compiling_methods___CompilerVisitor___out_contexts__eq(recv) ((compiling_methods___CompilerVisitor___out_contexts__eq_t)CALL((recv), (SFT_compiling_methods[1] + 9)))
+#define CALL_compiling_methods___CompilerVisitor___printf_locate_error(recv) ((compiling_methods___CompilerVisitor___printf_locate_error_t)CALL((recv), (SFT_compiling_methods[1] + 10)))
+#define CALL_SUPER_compiling_methods___CompilerVisitor___init(recv) ((compiling_methods___CompilerVisitor___init_t)CALL((recv), (SFT_compiling_methods[1] + 11)))
+#define CALL_compiling_methods___CompilerVisitor___invoke_super_init_calls_after(recv) ((compiling_methods___CompilerVisitor___invoke_super_init_calls_after_t)CALL((recv), (SFT_compiling_methods[1] + 12)))
+#define ID_CFunctionContext (SFT_compiling_methods[2])
+#define COLOR_CFunctionContext (SFT_compiling_methods[3])
+#define ATTR_compiling_methods___CFunctionContext____visitor(recv) ATTR(recv, (SFT_compiling_methods[4] + 0))
+#define ATTR_compiling_methods___CFunctionContext____variable_index(recv) ATTR(recv, (SFT_compiling_methods[4] + 1))
+#define ATTR_compiling_methods___CFunctionContext____variable_index_max(recv) ATTR(recv, (SFT_compiling_methods[4] + 2))
+#define ATTR_compiling_methods___CFunctionContext____varnames(recv) ATTR(recv, (SFT_compiling_methods[4] + 3))
+#define ATTR_compiling_methods___CFunctionContext____in_closure(recv) ATTR(recv, (SFT_compiling_methods[4] + 4))
+#define ATTR_compiling_methods___CFunctionContext____closurevariable_index(recv) ATTR(recv, (SFT_compiling_methods[4] + 5))
+#define INIT_TABLE_POS_CFunctionContext (SFT_compiling_methods[5] + 0)
+#define CALL_compiling_methods___CFunctionContext___visitor(recv) ((compiling_methods___CFunctionContext___visitor_t)CALL((recv), (SFT_compiling_methods[5] + 1)))
+#define CALL_compiling_methods___CFunctionContext___in_closure(recv) ((compiling_methods___CFunctionContext___in_closure_t)CALL((recv), (SFT_compiling_methods[5] + 2)))
+#define CALL_compiling_methods___CFunctionContext___in_closure__eq(recv) ((compiling_methods___CFunctionContext___in_closure__eq_t)CALL((recv), (SFT_compiling_methods[5] + 3)))
+#define CALL_compiling_methods___CFunctionContext___varname(recv) ((compiling_methods___CFunctionContext___varname_t)CALL((recv), (SFT_compiling_methods[5] + 4)))
+#define CALL_compiling_methods___CFunctionContext___get_var(recv) ((compiling_methods___CFunctionContext___get_var_t)CALL((recv), (SFT_compiling_methods[5] + 5)))
+#define CALL_compiling_methods___CFunctionContext___register_variable(recv) ((compiling_methods___CFunctionContext___register_variable_t)CALL((recv), (SFT_compiling_methods[5] + 6)))
+#define CALL_compiling_methods___CFunctionContext___register_closurevariable(recv) ((compiling_methods___CFunctionContext___register_closurevariable_t)CALL((recv), (SFT_compiling_methods[5] + 7)))
+#define CALL_compiling_methods___CFunctionContext___variable(recv) ((compiling_methods___CFunctionContext___variable_t)CALL((recv), (SFT_compiling_methods[5] + 8)))
+#define CALL_compiling_methods___CFunctionContext___free_var(recv) ((compiling_methods___CFunctionContext___free_var_t)CALL((recv), (SFT_compiling_methods[5] + 9)))
+#define CALL_compiling_methods___CFunctionContext___generate_var_decls(recv) ((compiling_methods___CFunctionContext___generate_var_decls_t)CALL((recv), (SFT_compiling_methods[5] + 10)))
+#define CALL_compiling_methods___CFunctionContext___init(recv) ((compiling_methods___CFunctionContext___init_t)CALL((recv), (SFT_compiling_methods[5] + 11)))
+#define ID_NitMethodContext (SFT_compiling_methods[6])
+#define COLOR_NitMethodContext (SFT_compiling_methods[7])
+#define ATTR_compiling_methods___NitMethodContext____method(recv) ATTR(recv, (SFT_compiling_methods[8] + 0))
+#define ATTR_compiling_methods___NitMethodContext____method_params(recv) ATTR(recv, (SFT_compiling_methods[8] + 1))
+#define ATTR_compiling_methods___NitMethodContext____return_label(recv) ATTR(recv, (SFT_compiling_methods[8] + 2))
+#define ATTR_compiling_methods___NitMethodContext____break_label(recv) ATTR(recv, (SFT_compiling_methods[8] + 3))
+#define ATTR_compiling_methods___NitMethodContext____continue_label(recv) ATTR(recv, (SFT_compiling_methods[8] + 4))
+#define ATTR_compiling_methods___NitMethodContext____return_value(recv) ATTR(recv, (SFT_compiling_methods[8] + 5))
+#define ATTR_compiling_methods___NitMethodContext____break_value(recv) ATTR(recv, (SFT_compiling_methods[8] + 6))
+#define ATTR_compiling_methods___NitMethodContext____continue_value(recv) ATTR(recv, (SFT_compiling_methods[8] + 7))
+#define INIT_TABLE_POS_NitMethodContext (SFT_compiling_methods[9] + 0)
+#define CALL_compiling_methods___NitMethodContext___method(recv) ((compiling_methods___NitMethodContext___method_t)CALL((recv), (SFT_compiling_methods[9] + 1)))
+#define CALL_compiling_methods___NitMethodContext___method_params(recv) ((compiling_methods___NitMethodContext___method_params_t)CALL((recv), (SFT_compiling_methods[9] + 2)))
+#define CALL_compiling_methods___NitMethodContext___method_params__eq(recv) ((compiling_methods___NitMethodContext___method_params__eq_t)CALL((recv), (SFT_compiling_methods[9] + 3)))
+#define CALL_compiling_methods___NitMethodContext___return_label(recv) ((compiling_methods___NitMethodContext___return_label_t)CALL((recv), (SFT_compiling_methods[9] + 4)))
+#define CALL_compiling_methods___NitMethodContext___return_label__eq(recv) ((compiling_methods___NitMethodContext___return_label__eq_t)CALL((recv), (SFT_compiling_methods[9] + 5)))
+#define CALL_compiling_methods___NitMethodContext___break_label(recv) ((compiling_methods___NitMethodContext___break_label_t)CALL((recv), (SFT_compiling_methods[9] + 6)))
+#define CALL_compiling_methods___NitMethodContext___break_label__eq(recv) ((compiling_methods___NitMethodContext___break_label__eq_t)CALL((recv), (SFT_compiling_methods[9] + 7)))
+#define CALL_compiling_methods___NitMethodContext___continue_label(recv) ((compiling_methods___NitMethodContext___continue_label_t)CALL((recv), (SFT_compiling_methods[9] + 8)))
+#define CALL_compiling_methods___NitMethodContext___continue_label__eq(recv) ((compiling_methods___NitMethodContext___continue_label__eq_t)CALL((recv), (SFT_compiling_methods[9] + 9)))
+#define CALL_compiling_methods___NitMethodContext___return_value(recv) ((compiling_methods___NitMethodContext___return_value_t)CALL((recv), (SFT_compiling_methods[9] + 10)))
+#define CALL_compiling_methods___NitMethodContext___return_value__eq(recv) ((compiling_methods___NitMethodContext___return_value__eq_t)CALL((recv), (SFT_compiling_methods[9] + 11)))
+#define CALL_compiling_methods___NitMethodContext___break_value(recv) ((compiling_methods___NitMethodContext___break_value_t)CALL((recv), (SFT_compiling_methods[9] + 12)))
+#define CALL_compiling_methods___NitMethodContext___break_value__eq(recv) ((compiling_methods___NitMethodContext___break_value__eq_t)CALL((recv), (SFT_compiling_methods[9] + 13)))
+#define CALL_compiling_methods___NitMethodContext___continue_value(recv) ((compiling_methods___NitMethodContext___continue_value_t)CALL((recv), (SFT_compiling_methods[9] + 14)))
+#define CALL_compiling_methods___NitMethodContext___continue_value__eq(recv) ((compiling_methods___NitMethodContext___continue_value__eq_t)CALL((recv), (SFT_compiling_methods[9] + 15)))
+#define CALL_compiling_methods___NitMethodContext___init(recv) ((compiling_methods___NitMethodContext___init_t)CALL((recv), (SFT_compiling_methods[9] + 16)))
+#define ATTR_compiling_methods___ClosureVariable____ctypename(recv) ATTR(recv, (SFT_compiling_methods[10] + 0))
+#define CALL_compiling_methods___ClosureVariable___ctypename(recv) ((compiling_methods___ClosureVariable___ctypename_t)CALL((recv), (SFT_compiling_methods[11] + 0)))
+#define CALL_compiling_methods___ClosureVariable___ctypename__eq(recv) ((compiling_methods___ClosureVariable___ctypename__eq_t)CALL((recv), (SFT_compiling_methods[11] + 1)))
+#define CALL_compiling_methods___MMMethod___compile_call(recv) ((compiling_methods___MMMethod___compile_call_t)CALL((recv), (SFT_compiling_methods[12] + 0)))
+#define CALL_compiling_methods___MMMethod___compile_constructor_call(recv) ((compiling_methods___MMMethod___compile_constructor_call_t)CALL((recv), (SFT_compiling_methods[12] + 1)))
+#define CALL_compiling_methods___MMMethod___compile_super_call(recv) ((compiling_methods___MMMethod___compile_super_call_t)CALL((recv), (SFT_compiling_methods[12] + 2)))
+#define CALL_compiling_methods___MMMethod___closure_cname(recv) ((compiling_methods___MMMethod___closure_cname_t)CALL((recv), (SFT_compiling_methods[12] + 3)))
+#define CALL_compiling_methods___MMAttribute___compile_access(recv) ((compiling_methods___MMAttribute___compile_access_t)CALL((recv), (SFT_compiling_methods[13] + 0)))
+#define CALL_compiling_methods___MMLocalProperty___compile_property_to_c(recv) ((compiling_methods___MMLocalProperty___compile_property_to_c_t)CALL((recv), (SFT_compiling_methods[14] + 0)))
+#define CALL_compiling_methods___MMSrcMethod___decl_csignature(recv) ((compiling_methods___MMSrcMethod___decl_csignature_t)CALL((recv), (SFT_compiling_methods[15] + 0)))
+#define CALL_compiling_methods___MMSrcMethod___do_compile_inside(recv) ((compiling_methods___MMSrcMethod___do_compile_inside_t)CALL((recv), (SFT_compiling_methods[15] + 1)))
+#define CALL_compiling_methods___MMType___compile_cast(recv) ((compiling_methods___MMType___compile_cast_t)CALL((recv), (SFT_compiling_methods[16] + 0)))
+#define CALL_compiling_methods___MMType___compile_type_check(recv) ((compiling_methods___MMType___compile_type_check_t)CALL((recv), (SFT_compiling_methods[16] + 1)))
+#define CALL_compiling_methods___AMethPropdef___do_compile_inside(recv) ((compiling_methods___AMethPropdef___do_compile_inside_t)CALL((recv), (SFT_compiling_methods[17] + 0)))
+#define CALL_compiling_methods___PSignature___compile_parameters(recv) ((compiling_methods___PSignature___compile_parameters_t)CALL((recv), (SFT_compiling_methods[18] + 0)))
+#define CALL_compiling_methods___PExpr___compile_expr(recv) ((compiling_methods___PExpr___compile_expr_t)CALL((recv), (SFT_compiling_methods[19] + 0)))
+#define CALL_compiling_methods___PExpr___prepare_compile_stmt(recv) ((compiling_methods___PExpr___prepare_compile_stmt_t)CALL((recv), (SFT_compiling_methods[19] + 1)))
+#define CALL_compiling_methods___PExpr___compile_stmt(recv) ((compiling_methods___PExpr___compile_stmt_t)CALL((recv), (SFT_compiling_methods[19] + 2)))
+#define CALL_compiling_methods___AControlableBlock___compile_inside_block(recv) ((compiling_methods___AControlableBlock___compile_inside_block_t)CALL((recv), (SFT_compiling_methods[20] + 0)))
+#define ATTR_compiling_methods___AStringFormExpr____cstring(recv) ATTR(recv, (SFT_compiling_methods[21] + 0))
+#define ATTR_compiling_methods___AStringFormExpr____cstring_length(recv) ATTR(recv, (SFT_compiling_methods[21] + 1))
+#define CALL_compiling_methods___AStringFormExpr___string_text(recv) ((compiling_methods___AStringFormExpr___string_text_t)CALL((recv), (SFT_compiling_methods[22] + 0)))
+#define CALL_compiling_methods___AStringFormExpr___compute_string_info(recv) ((compiling_methods___AStringFormExpr___compute_string_info_t)CALL((recv), (SFT_compiling_methods[22] + 1)))
+#define CALL_compiling_methods___PClosureDef___compile_closure(recv) ((compiling_methods___PClosureDef___compile_closure_t)CALL((recv), (SFT_compiling_methods[23] + 0)))
+#define CALL_compiling_methods___PClosureDef___do_compile_inside(recv) ((compiling_methods___PClosureDef___do_compile_inside_t)CALL((recv), (SFT_compiling_methods[23] + 1)))
+#define ATTR_compiling_methods___AClosureDef____cname(recv) ATTR(recv, (SFT_compiling_methods[24] + 0))
+#define CALL_compiling_methods___AClosureDef___cname(recv) ((compiling_methods___AClosureDef___cname_t)CALL((recv), (SFT_compiling_methods[25] + 0)))
+#define CALL_compiling_methods___AClosureDef___decl_csignature(recv) ((compiling_methods___AClosureDef___decl_csignature_t)CALL((recv), (SFT_compiling_methods[25] + 1)))
+#define CALL_compiling_methods___PClosureDecl___do_compile_inside(recv) ((compiling_methods___PClosureDecl___do_compile_inside_t)CALL((recv), (SFT_compiling_methods[26] + 0)))
 typedef void (* compiling_methods___CompilerVisitor___init_t)(val_t  self, val_t  param0, int* init_table);
 void compiling_methods___CompilerVisitor___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_compiling_methods___CompilerVisitor___init "compiling_methods::CompilerVisitor::(compiling_base::CompilerVisitor::init)"
@@ -118,21 +117,18 @@ val_t compiling_methods___CompilerVisitor___ensure_var(val_t  self, val_t  param
 typedef void (* compiling_methods___CompilerVisitor___add_assignment_t)(val_t  self, val_t  param0, val_t  param1);
 void compiling_methods___CompilerVisitor___add_assignment(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_methods___CompilerVisitor___add_assignment "compiling_methods::CompilerVisitor::add_assignment"
-#define ATTR_compiling_methods___CompilerVisitor____cfc(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____cfc)
 typedef val_t (* compiling_methods___CompilerVisitor___cfc_t)(val_t  self);
 val_t compiling_methods___CompilerVisitor___cfc(val_t  self);
 #define LOCATE_compiling_methods___CompilerVisitor___cfc "compiling_methods::CompilerVisitor::cfc"
 typedef void (* compiling_methods___CompilerVisitor___cfc__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___CompilerVisitor___cfc__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___CompilerVisitor___cfc__eq "compiling_methods::CompilerVisitor::cfc="
-#define ATTR_compiling_methods___CompilerVisitor____nmc(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____nmc)
 typedef val_t (* compiling_methods___CompilerVisitor___nmc_t)(val_t  self);
 val_t compiling_methods___CompilerVisitor___nmc(val_t  self);
 #define LOCATE_compiling_methods___CompilerVisitor___nmc "compiling_methods::CompilerVisitor::nmc"
 typedef void (* compiling_methods___CompilerVisitor___nmc__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___CompilerVisitor___nmc__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___CompilerVisitor___nmc__eq "compiling_methods::CompilerVisitor::nmc="
-#define ATTR_compiling_methods___CompilerVisitor____out_contexts(recv) ATTR(recv, COLOR_compiling_methods___CompilerVisitor____out_contexts)
 typedef val_t (* compiling_methods___CompilerVisitor___out_contexts_t)(val_t  self);
 val_t compiling_methods___CompilerVisitor___out_contexts(val_t  self);
 #define LOCATE_compiling_methods___CompilerVisitor___out_contexts "compiling_methods::CompilerVisitor::out_contexts"
@@ -145,14 +141,9 @@ val_t compiling_methods___CompilerVisitor___printf_locate_error(val_t  self, val
 typedef void (* compiling_methods___CompilerVisitor___invoke_super_init_calls_after_t)(val_t  self, val_t  param0);
 void compiling_methods___CompilerVisitor___invoke_super_init_calls_after(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___CompilerVisitor___invoke_super_init_calls_after "compiling_methods::CompilerVisitor::invoke_super_init_calls_after"
-#define ATTR_compiling_methods___CFunctionContext____visitor(recv) ATTR(recv, COLOR_compiling_methods___CFunctionContext____visitor)
 typedef val_t (* compiling_methods___CFunctionContext___visitor_t)(val_t  self);
 val_t compiling_methods___CFunctionContext___visitor(val_t  self);
 #define LOCATE_compiling_methods___CFunctionContext___visitor "compiling_methods::CFunctionContext::visitor"
-#define ATTR_compiling_methods___CFunctionContext____variable_index(recv) ATTR(recv, COLOR_compiling_methods___CFunctionContext____variable_index)
-#define ATTR_compiling_methods___CFunctionContext____variable_index_max(recv) ATTR(recv, COLOR_compiling_methods___CFunctionContext____variable_index_max)
-#define ATTR_compiling_methods___CFunctionContext____varnames(recv) ATTR(recv, COLOR_compiling_methods___CFunctionContext____varnames)
-#define ATTR_compiling_methods___CFunctionContext____in_closure(recv) ATTR(recv, COLOR_compiling_methods___CFunctionContext____in_closure)
 typedef val_t (* compiling_methods___CFunctionContext___in_closure_t)(val_t  self);
 val_t compiling_methods___CFunctionContext___in_closure(val_t  self);
 #define LOCATE_compiling_methods___CFunctionContext___in_closure "compiling_methods::CFunctionContext::in_closure"
@@ -168,7 +159,6 @@ val_t compiling_methods___CFunctionContext___get_var(val_t  self);
 typedef val_t (* compiling_methods___CFunctionContext___register_variable_t)(val_t  self, val_t  param0);
 val_t compiling_methods___CFunctionContext___register_variable(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___CFunctionContext___register_variable "compiling_methods::CFunctionContext::register_variable"
-#define ATTR_compiling_methods___CFunctionContext____closurevariable_index(recv) ATTR(recv, COLOR_compiling_methods___CFunctionContext____closurevariable_index)
 typedef val_t (* compiling_methods___CFunctionContext___register_closurevariable_t)(val_t  self, val_t  param0);
 val_t compiling_methods___CFunctionContext___register_closurevariable(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___CFunctionContext___register_closurevariable "compiling_methods::CFunctionContext::register_closurevariable"
@@ -185,53 +175,45 @@ typedef void (* compiling_methods___CFunctionContext___init_t)(val_t  self, val_
 void compiling_methods___CFunctionContext___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_compiling_methods___CFunctionContext___init "compiling_methods::CFunctionContext::init"
 val_t NEW_CFunctionContext_compiling_methods___CFunctionContext___init(val_t p0);
-#define ATTR_compiling_methods___NitMethodContext____method(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____method)
 typedef val_t (* compiling_methods___NitMethodContext___method_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___method(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___method "compiling_methods::NitMethodContext::method"
-#define ATTR_compiling_methods___NitMethodContext____method_params(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____method_params)
 typedef val_t (* compiling_methods___NitMethodContext___method_params_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___method_params(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___method_params "compiling_methods::NitMethodContext::method_params"
 typedef void (* compiling_methods___NitMethodContext___method_params__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___NitMethodContext___method_params__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___NitMethodContext___method_params__eq "compiling_methods::NitMethodContext::method_params="
-#define ATTR_compiling_methods___NitMethodContext____return_label(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____return_label)
 typedef val_t (* compiling_methods___NitMethodContext___return_label_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___return_label(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___return_label "compiling_methods::NitMethodContext::return_label"
 typedef void (* compiling_methods___NitMethodContext___return_label__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___NitMethodContext___return_label__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___NitMethodContext___return_label__eq "compiling_methods::NitMethodContext::return_label="
-#define ATTR_compiling_methods___NitMethodContext____break_label(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____break_label)
 typedef val_t (* compiling_methods___NitMethodContext___break_label_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___break_label(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___break_label "compiling_methods::NitMethodContext::break_label"
 typedef void (* compiling_methods___NitMethodContext___break_label__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___NitMethodContext___break_label__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___NitMethodContext___break_label__eq "compiling_methods::NitMethodContext::break_label="
-#define ATTR_compiling_methods___NitMethodContext____continue_label(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____continue_label)
 typedef val_t (* compiling_methods___NitMethodContext___continue_label_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___continue_label(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___continue_label "compiling_methods::NitMethodContext::continue_label"
 typedef void (* compiling_methods___NitMethodContext___continue_label__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___NitMethodContext___continue_label__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___NitMethodContext___continue_label__eq "compiling_methods::NitMethodContext::continue_label="
-#define ATTR_compiling_methods___NitMethodContext____return_value(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____return_value)
 typedef val_t (* compiling_methods___NitMethodContext___return_value_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___return_value(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___return_value "compiling_methods::NitMethodContext::return_value"
 typedef void (* compiling_methods___NitMethodContext___return_value__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___NitMethodContext___return_value__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___NitMethodContext___return_value__eq "compiling_methods::NitMethodContext::return_value="
-#define ATTR_compiling_methods___NitMethodContext____break_value(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____break_value)
 typedef val_t (* compiling_methods___NitMethodContext___break_value_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___break_value(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___break_value "compiling_methods::NitMethodContext::break_value"
 typedef void (* compiling_methods___NitMethodContext___break_value__eq_t)(val_t  self, val_t  param0);
 void compiling_methods___NitMethodContext___break_value__eq(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___NitMethodContext___break_value__eq "compiling_methods::NitMethodContext::break_value="
-#define ATTR_compiling_methods___NitMethodContext____continue_value(recv) ATTR(recv, COLOR_compiling_methods___NitMethodContext____continue_value)
 typedef val_t (* compiling_methods___NitMethodContext___continue_value_t)(val_t  self);
 val_t compiling_methods___NitMethodContext___continue_value(val_t  self);
 #define LOCATE_compiling_methods___NitMethodContext___continue_value "compiling_methods::NitMethodContext::continue_value"
@@ -243,7 +225,6 @@ void compiling_methods___NitMethodContext___init(val_t  self, val_t  param0, int
 #define LOCATE_compiling_methods___NitMethodContext___init "compiling_methods::NitMethodContext::init"
 val_t NEW_NitMethodContext_compiling_methods___NitMethodContext___init(val_t p0);
 val_t NEW_ClosureVariable_syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_compiling_methods___ClosureVariable____ctypename(recv) ATTR(recv, COLOR_compiling_methods___ClosureVariable____ctypename)
 typedef val_t (* compiling_methods___ClosureVariable___ctypename_t)(val_t  self);
 val_t compiling_methods___ClosureVariable___ctypename(val_t  self);
 #define LOCATE_compiling_methods___ClosureVariable___ctypename "compiling_methods::ClosureVariable::ctypename"
@@ -547,8 +528,6 @@ val_t compiling_methods___AStringFormExpr___compile_expr(val_t  self, val_t  par
 typedef val_t (* compiling_methods___AStringFormExpr___string_text_t)(val_t  self);
 val_t compiling_methods___AStringFormExpr___string_text(val_t  self);
 #define LOCATE_compiling_methods___AStringFormExpr___string_text "compiling_methods::AStringFormExpr::string_text"
-#define ATTR_compiling_methods___AStringFormExpr____cstring(recv) ATTR(recv, COLOR_compiling_methods___AStringFormExpr____cstring)
-#define ATTR_compiling_methods___AStringFormExpr____cstring_length(recv) ATTR(recv, COLOR_compiling_methods___AStringFormExpr____cstring_length)
 typedef void (* compiling_methods___AStringFormExpr___compute_string_info_t)(val_t  self);
 void compiling_methods___AStringFormExpr___compute_string_info(val_t  self);
 #define LOCATE_compiling_methods___AStringFormExpr___compute_string_info "compiling_methods::AStringFormExpr::compute_string_info"
@@ -600,25 +579,6 @@ val_t NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t
 typedef val_t (* compiling_methods___ARangeExpr___compile_expr_t)(val_t  self, val_t  param0);
 val_t compiling_methods___ARangeExpr___compile_expr(val_t  self, val_t  param0);
 #define LOCATE_compiling_methods___ARangeExpr___compile_expr "compiling_methods::ARangeExpr::(compiling_methods::PExpr::compile_expr)"
-typedef val_t (* compiling_methods___ARangeExpr___propname_t)(val_t  self);
-val_t compiling_methods___ARangeExpr___propname(val_t  self);
-#define LOCATE_compiling_methods___ARangeExpr___propname "compiling_methods::ARangeExpr::propname"
-val_t NEW_ACrangeExpr_parser_nodes___PNode___init();
-val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___empty_init();
-val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
-val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___empty_init();
-val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1);
-typedef val_t (* compiling_methods___ACrangeExpr___propname_t)(val_t  self);
-val_t compiling_methods___ACrangeExpr___propname(val_t  self);
-#define LOCATE_compiling_methods___ACrangeExpr___propname "compiling_methods::ACrangeExpr::(compiling_methods::ARangeExpr::propname)"
-val_t NEW_AOrangeExpr_parser_nodes___PNode___init();
-val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___empty_init();
-val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
-val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___empty_init();
-val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1);
-typedef val_t (* compiling_methods___AOrangeExpr___propname_t)(val_t  self);
-val_t compiling_methods___AOrangeExpr___propname(val_t  self);
-#define LOCATE_compiling_methods___AOrangeExpr___propname "compiling_methods::AOrangeExpr::(compiling_methods::ARangeExpr::propname)"
 val_t NEW_ASuperExpr_parser_nodes___PNode___init();
 val_t NEW_ASuperExpr_parser_prod___ASuperExpr___empty_init();
 val_t NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
@@ -683,7 +643,6 @@ val_t compiling_methods___AClosureDef___compile_closure(val_t  self, val_t  para
 typedef val_t (* compiling_methods___AClosureDef___do_compile_inside_t)(val_t  self, val_t  param0, val_t  param1);
 val_t compiling_methods___AClosureDef___do_compile_inside(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_compiling_methods___AClosureDef___do_compile_inside "compiling_methods::AClosureDef::(compiling_methods::PClosureDef::do_compile_inside)"
-#define ATTR_compiling_methods___AClosureDef____cname(recv) ATTR(recv, COLOR_compiling_methods___AClosureDef____cname)
 typedef val_t (* compiling_methods___AClosureDef___cname_t)(val_t  self);
 val_t compiling_methods___AClosureDef___cname(val_t  self);
 #define LOCATE_compiling_methods___AClosureDef___cname "compiling_methods::AClosureDef::cname"
index b854882..24d21e2 100644 (file)
@@ -13,8 +13,8 @@ void control_flow___MMSrcModule___do_control_flow(val_t  self, val_t  param0) {
   variable[4] = variable[5];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMSrcModule___node_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___node))(variable[4]) /*MMSrcModule::node*/;
-  ((control_flow___ControlFlowVisitor___visit_t)CALL( variable[3] /*tv*/,COLOR_parser_prod___Visitor___visit))( variable[3] /*tv*/, variable[4]) /*ControlFlowVisitor::visit*/;
+  variable[4] = CALL_syntax_base___MMSrcModule___node(variable[4])(variable[4]) /*MMSrcModule::node*/;
+  CALL_parser_prod___Visitor___visit( variable[3] /*tv*/)( variable[3] /*tv*/, variable[4]) /*ControlFlowVisitor::visit*/;
   return_label0: while(false);
   tracehead = trace.prev;
   return;
@@ -53,10 +53,10 @@ void control_flow___ControlFlowVisitor___visit(val_t  self, val_t  param0) {
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((control_flow___PNode___accept_control_flow_t)CALL( variable[1] /*n*/,COLOR_control_flow___PNode___accept_control_flow))( variable[1] /*n*/, variable[3]) /*PNode::accept_control_flow*/;
+    CALL_control_flow___PNode___accept_control_flow( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_control_flow*/;
   }
   return_label3: while(false);
   tracehead = trace.prev;
@@ -109,42 +109,43 @@ void control_flow___ControlFlowVisitor___check_is_set(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((control_flow___Variable___must_be_set_t)CALL( variable[2] /*v*/,COLOR_control_flow___Variable___must_be_set))( variable[2] /*v*/) /*Variable::must_be_set*/;
+  variable[4] = CALL_control_flow___Variable___must_be_set( variable[2] /*v*/)( variable[2] /*v*/) /*Variable::must_be_set*/;
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL(variable[5],COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))(variable[5]) /*ControlFlowVisitor::control_flow_ctx*/;
-    variable[5] = ((control_flow___ControlFlowContext___is_set_t)CALL(variable[5],COLOR_control_flow___ControlFlowContext___is_set))(variable[5],  variable[2] /*v*/) /*ControlFlowContext::is_set*/;
+    variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx(variable[5])(variable[5]) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[5] = CALL_control_flow___ControlFlowContext___is_set(variable[5])(variable[5],  variable[2] /*v*/) /*ControlFlowContext::is_set*/;
     variable[5] =  TAG_Bool(!UNTAG_Bool(variable[5]));
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: variable '"), TAG_Int(17)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] =  variable[2] /*v*/;
-    variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("' is possibly unset."), TAG_Int(20)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL(variable[4],COLOR_syntax_base___AbsSyntaxVisitor___error))(variable[4],  variable[1] /*n*/, variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error(variable[4])(variable[4],  variable[1] /*n*/, variable[5]) /*AbsSyntaxVisitor::error*/;
     variable[5] = variable[0];
-    variable[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL(variable[5],COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))(variable[5]) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx(variable[5])(variable[5]) /*ControlFlowVisitor::control_flow_ctx*/;
     variable[4] = variable[5];
     while (true) { /*while*/
-      variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*cfc*/ ==  NIT_NULL /*null*/) || (( variable[4] /*cfc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*cfc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cfc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*cfc*/,COLOR_kernel___Object_____eqeq))( variable[4] /*cfc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*cfc*/ ==  NIT_NULL /*null*/) || (( variable[4] /*cfc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*cfc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cfc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*cfc*/)( variable[4] /*cfc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (!UNTAG_Bool(variable[5])) break; /* while*/
       variable[5] = variable[0];
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("cfc: "), TAG_Int(5)); /*new String*/
-      variable[7] = ((control_flow___ControlFlowContext___set_variables_t)CALL( variable[4] /*cfc*/,COLOR_control_flow___ControlFlowContext___set_variables))( variable[4] /*cfc*/) /*ControlFlowContext::set_variables*/;
+      variable[7] = CALL_control_flow___ControlFlowContext___set_variables( variable[4] /*cfc*/)( variable[4] /*cfc*/) /*ControlFlowContext::set_variables*/;
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
-      variable[7] = ((string___Collection___join_t)CALL(variable[7],COLOR_string___Collection___join))(variable[7], variable[8]) /*Collection::join*/;
-      variable[6] = ((string___String_____plus_t)CALL(variable[6],COLOR_string___String_____plus))(variable[6], variable[7]) /*String::+*/;
-      ((file___Object___print_t)CALL(variable[5],COLOR_file___Object___print))(variable[5], variable[6]) /*Object::print*/;
-      variable[5] = ((control_flow___ControlFlowContext___prev_t)CALL( variable[4] /*cfc*/,COLOR_control_flow___ControlFlowContext___prev))( variable[4] /*cfc*/) /*ControlFlowContext::prev*/;
+      variable[7] = CALL_string___Collection___join(variable[7])(variable[7], variable[8]) /*Collection::join*/;
+      variable[6] = CALL_string___String_____plus(variable[6])(variable[6], variable[7]) /*String::+*/;
+      CALL_file___Object___print(variable[5])(variable[5], variable[6]) /*Object::print*/;
+      variable[5] = CALL_control_flow___ControlFlowContext___prev( variable[4] /*cfc*/)( variable[4] /*cfc*/) /*ControlFlowContext::prev*/;
       variable[4] = variable[5] /*cfc=*/;
       continue_5: while(0);
     }
@@ -163,9 +164,9 @@ void control_flow___ControlFlowVisitor___mark_is_set(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL(variable[3],COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))(variable[3]) /*ControlFlowVisitor::control_flow_ctx*/;
-  variable[3] = ((control_flow___ControlFlowContext___set_variables_t)CALL(variable[3],COLOR_control_flow___ControlFlowContext___set_variables))(variable[3]) /*ControlFlowContext::set_variables*/;
-  ((hash___HashSet___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*v*/) /*HashSet::add*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx(variable[3])(variable[3]) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[3] = CALL_control_flow___ControlFlowContext___set_variables(variable[3])(variable[3]) /*ControlFlowContext::set_variables*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*v*/) /*HashSet::add*/;
   return_label6: while(false);
   tracehead = trace.prev;
   return;
@@ -180,7 +181,7 @@ void control_flow___ControlFlowVisitor___init(val_t  self, val_t  param0, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ControlFlowVisitor].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   return_label7: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ControlFlowVisitor].i] = 1;
   tracehead = trace.prev;
@@ -271,17 +272,17 @@ val_t control_flow___ControlFlowContext___is_set(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_control_flow___ControlFlowContext____set_variables(variable[3]) /*ControlFlowContext::_set_variables*/;
-  variable[3] = ((hash___HashSet___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*v*/) /*HashSet::has*/;
+  variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*v*/) /*HashSet::has*/;
   variable[4] = variable[3];
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
     variable[4] = ATTR_control_flow___ControlFlowContext____prev(variable[4]) /*ControlFlowContext::_prev*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[5] = variable[4];
     if (UNTAG_Bool(variable[5])) { /* and */
       variable[5] = variable[0];
       variable[5] = ATTR_control_flow___ControlFlowContext____prev(variable[5]) /*ControlFlowContext::_prev*/;
-      variable[5] = ((control_flow___ControlFlowContext___is_set_t)CALL(variable[5],COLOR_control_flow___ControlFlowContext___is_set))(variable[5],  variable[1] /*v*/) /*ControlFlowContext::is_set*/;
+      variable[5] = CALL_control_flow___ControlFlowContext___is_set(variable[5])(variable[5],  variable[1] /*v*/) /*ControlFlowContext::is_set*/;
     }
     variable[4] = variable[5];
   }
@@ -333,13 +334,13 @@ void control_flow___ControlFlowContext___with_prev(val_t  self, val_t  param0, i
   variable[3] = variable[0];
   ATTR_control_flow___ControlFlowContext____prev(variable[3]) /*ControlFlowContext::_prev*/ =  variable[1] /*p*/;
   variable[3] = variable[0];
-  variable[4] = ((control_flow___ControlFlowContext___unreash_t)CALL( variable[1] /*p*/,COLOR_control_flow___ControlFlowContext___unreash))( variable[1] /*p*/) /*ControlFlowContext::unreash*/;
+  variable[4] = CALL_control_flow___ControlFlowContext___unreash( variable[1] /*p*/)( variable[1] /*p*/) /*ControlFlowContext::unreash*/;
   ATTR_control_flow___ControlFlowContext____unreash(variable[3]) /*ControlFlowContext::_unreash*/ = variable[4];
   variable[3] = variable[0];
-  variable[4] = ((control_flow___ControlFlowContext___already_unreash_t)CALL( variable[1] /*p*/,COLOR_control_flow___ControlFlowContext___already_unreash))( variable[1] /*p*/) /*ControlFlowContext::already_unreash*/;
+  variable[4] = CALL_control_flow___ControlFlowContext___already_unreash( variable[1] /*p*/)( variable[1] /*p*/) /*ControlFlowContext::already_unreash*/;
   ATTR_control_flow___ControlFlowContext____already_unreash(variable[3]) /*ControlFlowContext::_already_unreash*/ = variable[4];
   variable[3] = variable[0];
-  variable[4] = ((control_flow___ControlFlowContext___base_block_t)CALL( variable[1] /*p*/,COLOR_control_flow___ControlFlowContext___base_block))( variable[1] /*p*/) /*ControlFlowContext::base_block*/;
+  variable[4] = CALL_control_flow___ControlFlowContext___base_block( variable[1] /*p*/)( variable[1] /*p*/) /*ControlFlowContext::base_block*/;
   ATTR_control_flow___ControlFlowContext____base_block(variable[3]) /*ControlFlowContext::_base_block*/ = variable[4];
   return_label11: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ControlFlowContext].i] = 1;
@@ -355,7 +356,7 @@ void control_flow___PNode___accept_control_flow(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   return_label12: while(false);
   tracehead = trace.prev;
   return;
@@ -369,8 +370,8 @@ void control_flow___AMethPropdef___accept_control_flow(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_ControlFlowContext_control_flow___ControlFlowContext___init(); /*new ControlFlowContext*/
-  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::control_flow_ctx=*/;
-  ((control_flow___AMethPropdef___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AMethPropdef___accept_control_flow))(variable[0], variable[1]) /*super AMethPropdef::accept_control_flow*/;
+  CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::control_flow_ctx=*/;
+  CALL_SUPER_control_flow___AMethPropdef___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_control_flow*/;
   return_label13: while(false);
   tracehead = trace.prev;
   return;
@@ -383,23 +384,23 @@ void control_flow___AConcreteMethPropdef___accept_control_flow(val_t  self, val_
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AConcreteMethPropdef___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow))(variable[0], variable[1]) /*super AConcreteMethPropdef::accept_control_flow*/;
-  variable[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  variable[3] = ((control_flow___ControlFlowContext___unreash_t)CALL(variable[3],COLOR_control_flow___ControlFlowContext___unreash))(variable[3]) /*ControlFlowContext::unreash*/;
+  CALL_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AConcreteMethPropdef::accept_control_flow*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[3] = CALL_control_flow___ControlFlowContext___unreash(variable[3])(variable[3]) /*ControlFlowContext::unreash*/;
   variable[3] = TAG_Bool((variable[3])==( TAG_Bool(false)));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = ((syntax_base___AMethPropdef___method_t)CALL(variable[4],COLOR_syntax_base___AMethPropdef___method))(variable[4]) /*AMethPropdef::method*/;
-    variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
-    variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = CALL_syntax_base___AMethPropdef___method(variable[4])(variable[4]) /*AMethPropdef::method*/;
+    variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+    variable[4] = CALL_static_type___MMSignature___return_type(variable[4])(variable[4]) /*MMSignature::return_type*/;
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of function (a 'return' with a value was expected)."), TAG_Int(78)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
   }
   return_label14: while(false);
   tracehead = trace.prev;
@@ -413,14 +414,14 @@ void control_flow___AVardeclExpr___accept_control_flow(val_t  self, val_t  param
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AVardeclExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AVardeclExpr___accept_control_flow))(variable[0], variable[1]) /*super AVardeclExpr::accept_control_flow*/;
+  CALL_SUPER_control_flow___AVardeclExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AVardeclExpr::accept_control_flow*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[3]) /*AVardeclExpr::n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[3])(variable[3]) /*AVardeclExpr::n_expr*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((syntax_base___AVardeclExpr___variable_t)CALL(variable[3],COLOR_syntax_base___AVardeclExpr___variable))(variable[3]) /*AVardeclExpr::variable*/;
-    ((control_flow___ControlFlowVisitor___mark_is_set_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set))( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::mark_is_set*/;
+    variable[3] = CALL_syntax_base___AVardeclExpr___variable(variable[3])(variable[3]) /*AVardeclExpr::variable*/;
+    CALL_control_flow___ControlFlowVisitor___mark_is_set( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::mark_is_set*/;
   }
   return_label15: while(false);
   tracehead = trace.prev;
@@ -435,31 +436,31 @@ void control_flow___ABlockExpr___accept_control_flow(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ABlockExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ABlockExpr___n_expr))(variable[3]) /*ABlockExpr::n_expr*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_parser_nodes___ABlockExpr___n_expr(variable[3])(variable[3]) /*ABlockExpr::n_expr*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-    variable[6] = ((control_flow___ControlFlowContext___unreash_t)CALL(variable[6],COLOR_control_flow___ControlFlowContext___unreash))(variable[6]) /*ControlFlowContext::unreash*/;
+    variable[6] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[6] = CALL_control_flow___ControlFlowContext___unreash(variable[6])(variable[6]) /*ControlFlowContext::unreash*/;
     variable[7] = variable[6];
     if (UNTAG_Bool(variable[7])) { /* and */
-      variable[7] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-      variable[7] = ((control_flow___ControlFlowContext___already_unreash_t)CALL(variable[7],COLOR_control_flow___ControlFlowContext___already_unreash))(variable[7]) /*ControlFlowContext::already_unreash*/;
+      variable[7] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+      variable[7] = CALL_control_flow___ControlFlowContext___already_unreash(variable[7])(variable[7]) /*ControlFlowContext::already_unreash*/;
       variable[7] =  TAG_Bool(!UNTAG_Bool(variable[7]));
     }
     variable[6] = variable[7];
     if (UNTAG_Bool(variable[6])) { /*if*/
-      variable[6] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-      ((control_flow___ControlFlowContext___already_unreash__eq_t)CALL(variable[6],COLOR_control_flow___ControlFlowContext___already_unreash__eq))(variable[6],  TAG_Bool(true)) /*ControlFlowContext::already_unreash=*/;
+      variable[6] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+      CALL_control_flow___ControlFlowContext___already_unreash__eq(variable[6])(variable[6],  TAG_Bool(true)) /*ControlFlowContext::already_unreash=*/;
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Warning: unreachable statement."), TAG_Int(31)); /*new String*/
-      ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable[1] /*v*/,  variable[5] /*e*/, variable[6]) /*AbsSyntaxVisitor::warning*/;
+      CALL_syntax_base___AbsSyntaxVisitor___warning( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*e*/, variable[6]) /*AbsSyntaxVisitor::warning*/;
     }
-    ((control_flow___ControlFlowVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*e*/) /*ControlFlowVisitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*e*/) /*ControlFlowVisitor::visit*/;
     continue_17: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_17: while(0);
   return_label16: while(false);
@@ -474,9 +475,9 @@ void control_flow___AReturnExpr___accept_control_flow(val_t  self, val_t  param0
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AReturnExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AReturnExpr___accept_control_flow))(variable[0], variable[1]) /*super AReturnExpr::accept_control_flow*/;
-  variable[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable[3],COLOR_control_flow___ControlFlowContext___unreash__eq))(variable[3],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  CALL_SUPER_control_flow___AReturnExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AReturnExpr::accept_control_flow*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  CALL_control_flow___ControlFlowContext___unreash__eq(variable[3])(variable[3],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
   return_label18: while(false);
   tracehead = trace.prev;
   return;
@@ -498,21 +499,21 @@ void control_flow___ABreakExpr___accept_control_flow(val_t  self, val_t  param0)
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___ABreakExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___ABreakExpr___accept_control_flow))(variable[0], variable[1]) /*super ABreakExpr::accept_control_flow*/;
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  variable[4] = ((control_flow___ControlFlowContext___base_block_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___base_block))(variable[4]) /*ControlFlowContext::base_block*/;
+  CALL_SUPER_control_flow___ABreakExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super ABreakExpr::accept_control_flow*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[4] = CALL_control_flow___ControlFlowContext___base_block(variable[4])(variable[4]) /*ControlFlowContext::base_block*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*block*/ ==  NIT_NULL /*null*/) || (( variable[3] /*block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*block*/,COLOR_kernel___Object_____eqeq))( variable[3] /*block*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*block*/ ==  NIT_NULL /*null*/) || (( variable[3] /*block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*block*/)( variable[3] /*block*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: 'break' statment outside block."), TAG_Int(45)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     goto return_label19;
   }
   variable[4] = variable[0];
   ATTR_control_flow___ABlockControler____block(variable[4]) /*ABlockControler::_block*/ =  variable[3] /*block*/;
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___unreash__eq))(variable[4],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  CALL_control_flow___ControlFlowContext___unreash__eq(variable[4])(variable[4],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
   return_label19: while(false);
   tracehead = trace.prev;
   return;
@@ -525,21 +526,21 @@ void control_flow___AContinueExpr___accept_control_flow(val_t  self, val_t  para
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AContinueExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AContinueExpr___accept_control_flow))(variable[0], variable[1]) /*super AContinueExpr::accept_control_flow*/;
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  variable[4] = ((control_flow___ControlFlowContext___base_block_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___base_block))(variable[4]) /*ControlFlowContext::base_block*/;
+  CALL_SUPER_control_flow___AContinueExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AContinueExpr::accept_control_flow*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[4] = CALL_control_flow___ControlFlowContext___base_block(variable[4])(variable[4]) /*ControlFlowContext::base_block*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*block*/ ==  NIT_NULL /*null*/) || (( variable[3] /*block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*block*/,COLOR_kernel___Object_____eqeq))( variable[3] /*block*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*block*/ ==  NIT_NULL /*null*/) || (( variable[3] /*block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*block*/)( variable[3] /*block*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: 'continue' outside block."), TAG_Int(39)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     goto return_label20;
   }
   variable[4] = variable[0];
   ATTR_control_flow___ABlockControler____block(variable[4]) /*ABlockControler::_block*/ =  variable[3] /*block*/;
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___unreash__eq))(variable[4],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  CALL_control_flow___ControlFlowContext___unreash__eq(variable[4])(variable[4],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
   return_label20: while(false);
   tracehead = trace.prev;
   return;
@@ -552,9 +553,9 @@ void control_flow___AAbortExpr___accept_control_flow(val_t  self, val_t  param0)
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AAbortExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AAbortExpr___accept_control_flow))(variable[0], variable[1]) /*super AAbortExpr::accept_control_flow*/;
-  variable[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable[3],COLOR_control_flow___ControlFlowContext___unreash__eq))(variable[3],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+  CALL_SUPER_control_flow___AAbortExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AAbortExpr::accept_control_flow*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  CALL_control_flow___ControlFlowContext___unreash__eq(variable[3])(variable[3],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
   return_label21: while(false);
   tracehead = trace.prev;
   return;
@@ -567,14 +568,14 @@ void control_flow___AClosureCallExpr___accept_control_flow(val_t  self, val_t  p
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AClosureCallExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AClosureCallExpr___accept_control_flow))(variable[0], variable[1]) /*super AClosureCallExpr::accept_control_flow*/;
+  CALL_SUPER_control_flow___AClosureCallExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AClosureCallExpr::accept_control_flow*/;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[3],COLOR_syntax_base___AClosureCallExpr___variable))(variable[3]) /*AClosureCallExpr::variable*/;
-  variable[3] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[3],COLOR_syntax_base___ClosureVariable___closure))(variable[3]) /*ClosureVariable::closure*/;
-  variable[3] = ((static_type___MMClosure___is_break_t)CALL(variable[3],COLOR_static_type___MMClosure___is_break))(variable[3]) /*MMClosure::is_break*/;
+  variable[3] = CALL_syntax_base___AClosureCallExpr___variable(variable[3])(variable[3]) /*AClosureCallExpr::variable*/;
+  variable[3] = CALL_syntax_base___ClosureVariable___closure(variable[3])(variable[3]) /*ClosureVariable::closure*/;
+  variable[3] = CALL_static_type___MMClosure___is_break(variable[3])(variable[3]) /*MMClosure::is_break*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-    ((control_flow___ControlFlowContext___unreash__eq_t)CALL(variable[3],COLOR_control_flow___ControlFlowContext___unreash__eq))(variable[3],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
+    variable[3] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    CALL_control_flow___ControlFlowContext___unreash__eq(variable[3])(variable[3],  TAG_Bool(true)) /*ControlFlowContext::unreash=*/;
   }
   return_label22: while(false);
   tracehead = trace.prev;
@@ -589,65 +590,65 @@ void control_flow___AIfExpr___accept_control_flow(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AIfExpr___n_expr))(variable[3]) /*AIfExpr::n_expr*/;
-  ((control_flow___ControlFlowVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::visit*/;
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[3] = CALL_parser_nodes___AIfExpr___n_expr(variable[3])(variable[3]) /*AIfExpr::n_expr*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::visit*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
   variable[3] = variable[4];
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  variable[4] = ((control_flow___ControlFlowContext___sub_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___sub))(variable[4]) /*ControlFlowContext::sub*/;
-  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[4] = CALL_control_flow___ControlFlowContext___sub(variable[4])(variable[4]) /*ControlFlowContext::sub*/;
+  CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_then))(variable[4]) /*AIfExpr::n_then*/;
-  ((control_flow___ControlFlowVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::visit*/;
+  variable[4] = CALL_parser_nodes___AIfExpr___n_then(variable[4])(variable[4]) /*AIfExpr::n_then*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::visit*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_else))(variable[4]) /*AIfExpr::n_else*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = CALL_parser_nodes___AIfExpr___n_else(variable[4])(variable[4]) /*AIfExpr::n_else*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+    CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
   } else { /*if*/
-    variable[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
     variable[4] = variable[5];
-    variable[5] = ((control_flow___ControlFlowContext___sub_t)CALL( variable[3] /*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___sub))( variable[3] /*old_control_flow_ctx*/) /*ControlFlowContext::sub*/;
-    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/, variable[5]) /*ControlFlowVisitor::control_flow_ctx=*/;
+    variable[5] = CALL_control_flow___ControlFlowContext___sub( variable[3] /*old_control_flow_ctx*/)( variable[3] /*old_control_flow_ctx*/) /*ControlFlowContext::sub*/;
+    CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*ControlFlowVisitor::control_flow_ctx=*/;
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[5],COLOR_parser_nodes___AIfExpr___n_else))(variable[5]) /*AIfExpr::n_else*/;
-    ((control_flow___ControlFlowVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[5]) /*ControlFlowVisitor::visit*/;
-    variable[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-    variable[5] = ((control_flow___ControlFlowContext___unreash_t)CALL(variable[5],COLOR_control_flow___ControlFlowContext___unreash))(variable[5]) /*ControlFlowContext::unreash*/;
+    variable[5] = CALL_parser_nodes___AIfExpr___n_else(variable[5])(variable[5]) /*AIfExpr::n_else*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*ControlFlowVisitor::visit*/;
+    variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[5] = CALL_control_flow___ControlFlowContext___unreash(variable[5])(variable[5]) /*ControlFlowContext::unreash*/;
     variable[6] = variable[5];
     if (UNTAG_Bool(variable[6])) { /* and */
-      variable[6] = ((control_flow___ControlFlowContext___unreash_t)CALL( variable[4] /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash))( variable[4] /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
+      variable[6] = CALL_control_flow___ControlFlowContext___unreash( variable[4] /*then_control_flow_ctx*/)( variable[4] /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
     }
     variable[5] = variable[6];
-    ((control_flow___ControlFlowContext___unreash__eq_t)CALL( variable[3] /*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash__eq))( variable[3] /*old_control_flow_ctx*/, variable[5]) /*ControlFlowContext::unreash=*/;
-    variable[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-    variable[5] = ((control_flow___ControlFlowContext___unreash_t)CALL(variable[5],COLOR_control_flow___ControlFlowContext___unreash))(variable[5]) /*ControlFlowContext::unreash*/;
+    CALL_control_flow___ControlFlowContext___unreash__eq( variable[3] /*old_control_flow_ctx*/)( variable[3] /*old_control_flow_ctx*/, variable[5]) /*ControlFlowContext::unreash=*/;
+    variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[5] = CALL_control_flow___ControlFlowContext___unreash(variable[5])(variable[5]) /*ControlFlowContext::unreash*/;
     if (UNTAG_Bool(variable[5])) { /*if*/
-      ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/,  variable[4] /*then_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+      CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[4] /*then_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
     }
-    variable[5] = ((control_flow___ControlFlowContext___unreash_t)CALL( variable[4] /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___unreash))( variable[4] /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
+    variable[5] = CALL_control_flow___ControlFlowContext___unreash( variable[4] /*then_control_flow_ctx*/)( variable[4] /*then_control_flow_ctx*/) /*ControlFlowContext::unreash*/;
     if (UNTAG_Bool(variable[5])) { /*if*/
-      variable[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+      variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
       variable[4] = variable[5] /*then_control_flow_ctx=*/;
     }
-    variable[5] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-    variable[5] = ((control_flow___ControlFlowContext___set_variables_t)CALL(variable[5],COLOR_control_flow___ControlFlowContext___set_variables))(variable[5]) /*ControlFlowContext::set_variables*/;
-    variable[5] = ((hash___HashSet___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*HashSet::iterator*/;
+    variable[5] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[5] = CALL_control_flow___ControlFlowContext___set_variables(variable[5])(variable[5]) /*ControlFlowContext::set_variables*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*HashSet::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
       variable[7] = variable[6];
-      variable[8] = ((control_flow___ControlFlowContext___is_set_t)CALL( variable[4] /*then_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___is_set))( variable[4] /*then_control_flow_ctx*/,  variable[7] /*variable*/) /*ControlFlowContext::is_set*/;
+      variable[8] = CALL_control_flow___ControlFlowContext___is_set( variable[4] /*then_control_flow_ctx*/)( variable[4] /*then_control_flow_ctx*/,  variable[7] /*variable*/) /*ControlFlowContext::is_set*/;
       if (UNTAG_Bool(variable[8])) { /*if*/
-        variable[8] = ((control_flow___ControlFlowContext___set_variables_t)CALL( variable[3] /*old_control_flow_ctx*/,COLOR_control_flow___ControlFlowContext___set_variables))( variable[3] /*old_control_flow_ctx*/) /*ControlFlowContext::set_variables*/;
-        ((hash___HashSet___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*variable*/) /*HashSet::add*/;
+        variable[8] = CALL_control_flow___ControlFlowContext___set_variables( variable[3] /*old_control_flow_ctx*/)( variable[3] /*old_control_flow_ctx*/) /*ControlFlowContext::set_variables*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*variable*/) /*HashSet::add*/;
       }
       continue_24: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
     }
     break_24: while(0);
-    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+    CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
   }
   return_label23: while(false);
   tracehead = trace.prev;
@@ -661,18 +662,18 @@ void control_flow___AControlableBlock___accept_control_flow(val_t  self, val_t
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
   variable[3] = variable[4];
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  variable[4] = ((control_flow___ControlFlowContext___sub_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___sub))(variable[4]) /*ControlFlowContext::sub*/;
-  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
-  variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[4] = CALL_control_flow___ControlFlowContext___sub(variable[4])(variable[4]) /*ControlFlowContext::sub*/;
+  CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
+  variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
   variable[5] = variable[0];
-  ((control_flow___ControlFlowContext___base_block__eq_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___base_block__eq))(variable[4], variable[5]) /*ControlFlowContext::base_block=*/;
-  ((control_flow___AControlableBlock___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AControlableBlock___accept_control_flow))(variable[0], variable[1]) /*super AControlableBlock::accept_control_flow*/;
+  CALL_control_flow___ControlFlowContext___base_block__eq(variable[4])(variable[4], variable[5]) /*ControlFlowContext::base_block=*/;
+  CALL_SUPER_control_flow___AControlableBlock___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AControlableBlock::accept_control_flow*/;
   variable[4] = variable[0];
-  ((control_flow___AControlableBlock___check_control_flow_t)CALL(variable[4],COLOR_control_flow___AControlableBlock___check_control_flow))(variable[4],  variable[1] /*v*/) /*AControlableBlock::check_control_flow*/;
-  ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+  CALL_control_flow___AControlableBlock___check_control_flow(variable[4])(variable[4],  variable[1] /*v*/) /*AControlableBlock::check_control_flow*/;
+  CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
   return_label25: while(false);
   tracehead = trace.prev;
   return;
@@ -697,11 +698,11 @@ void control_flow___AVarExpr___accept_control_flow(val_t  self, val_t  param0) {
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AVarExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AVarExpr___accept_control_flow))(variable[0], variable[1]) /*super AVarExpr::accept_control_flow*/;
+  CALL_SUPER_control_flow___AVarExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AVarExpr::accept_control_flow*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[4],COLOR_syntax_base___AVarFormExpr___variable))(variable[4]) /*AVarFormExpr::variable*/;
-  ((control_flow___ControlFlowVisitor___check_is_set_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___check_is_set))( variable[1] /*v*/, variable[3], variable[4]) /*ControlFlowVisitor::check_is_set*/;
+  variable[4] = CALL_syntax_base___AVarFormExpr___variable(variable[4])(variable[4]) /*AVarFormExpr::variable*/;
+  CALL_control_flow___ControlFlowVisitor___check_is_set( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*ControlFlowVisitor::check_is_set*/;
   return_label27: while(false);
   tracehead = trace.prev;
   return;
@@ -714,10 +715,10 @@ void control_flow___AVarAssignExpr___accept_control_flow(val_t  self, val_t  par
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AVarAssignExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AVarAssignExpr___accept_control_flow))(variable[0], variable[1]) /*super AVarAssignExpr::accept_control_flow*/;
+  CALL_SUPER_control_flow___AVarAssignExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AVarAssignExpr::accept_control_flow*/;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[3],COLOR_syntax_base___AVarFormExpr___variable))(variable[3]) /*AVarFormExpr::variable*/;
-  ((control_flow___ControlFlowVisitor___mark_is_set_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set))( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::mark_is_set*/;
+  variable[3] = CALL_syntax_base___AVarFormExpr___variable(variable[3])(variable[3]) /*AVarFormExpr::variable*/;
+  CALL_control_flow___ControlFlowVisitor___mark_is_set( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::mark_is_set*/;
   return_label28: while(false);
   tracehead = trace.prev;
   return;
@@ -730,14 +731,14 @@ void control_flow___AVarReassignExpr___accept_control_flow(val_t  self, val_t  p
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  ((control_flow___AVarReassignExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AVarReassignExpr___accept_control_flow))(variable[0], variable[1]) /*super AVarReassignExpr::accept_control_flow*/;
+  CALL_SUPER_control_flow___AVarReassignExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AVarReassignExpr::accept_control_flow*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[4],COLOR_syntax_base___AVarFormExpr___variable))(variable[4]) /*AVarFormExpr::variable*/;
-  ((control_flow___ControlFlowVisitor___check_is_set_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___check_is_set))( variable[1] /*v*/, variable[3], variable[4]) /*ControlFlowVisitor::check_is_set*/;
+  variable[4] = CALL_syntax_base___AVarFormExpr___variable(variable[4])(variable[4]) /*AVarFormExpr::variable*/;
+  CALL_control_flow___ControlFlowVisitor___check_is_set( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*ControlFlowVisitor::check_is_set*/;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[3],COLOR_syntax_base___AVarFormExpr___variable))(variable[3]) /*AVarFormExpr::variable*/;
-  ((control_flow___ControlFlowVisitor___mark_is_set_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set))( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::mark_is_set*/;
+  variable[3] = CALL_syntax_base___AVarFormExpr___variable(variable[3])(variable[3]) /*AVarFormExpr::variable*/;
+  CALL_control_flow___ControlFlowVisitor___mark_is_set( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::mark_is_set*/;
   return_label29: while(false);
   tracehead = trace.prev;
   return;
@@ -751,46 +752,46 @@ void control_flow___AClosureDecl___accept_control_flow(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AClosureDecl___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AClosureDecl___n_expr))(variable[3]) /*AClosureDecl::n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___AClosureDecl___n_expr(variable[3])(variable[3]) /*AClosureDecl::n_expr*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
     variable[3] = variable[4];
-    variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-    variable[4] = ((control_flow___ControlFlowContext___sub_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___sub))(variable[4]) /*ControlFlowContext::sub*/;
-    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
-    variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[4] = CALL_control_flow___ControlFlowContext___sub(variable[4])(variable[4]) /*ControlFlowContext::sub*/;
+    CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*ControlFlowVisitor::control_flow_ctx=*/;
+    variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AClosureDecl___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AClosureDecl___n_expr))(variable[5]) /*AClosureDecl::n_expr*/;
-    ((control_flow___ControlFlowContext___base_block__eq_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___base_block__eq))(variable[4], variable[5]) /*ControlFlowContext::base_block=*/;
-    ((control_flow___AClosureDecl___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AClosureDecl___accept_control_flow))(variable[0], variable[1]) /*super AClosureDecl::accept_control_flow*/;
-    variable[4] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-    variable[4] = ((control_flow___ControlFlowContext___unreash_t)CALL(variable[4],COLOR_control_flow___ControlFlowContext___unreash))(variable[4]) /*ControlFlowContext::unreash*/;
+    variable[5] = CALL_parser_nodes___AClosureDecl___n_expr(variable[5])(variable[5]) /*AClosureDecl::n_expr*/;
+    CALL_control_flow___ControlFlowContext___base_block__eq(variable[4])(variable[4], variable[5]) /*ControlFlowContext::base_block=*/;
+    CALL_SUPER_control_flow___AClosureDecl___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AClosureDecl::accept_control_flow*/;
+    variable[4] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+    variable[4] = CALL_control_flow___ControlFlowContext___unreash(variable[4])(variable[4]) /*ControlFlowContext::unreash*/;
     variable[4] = TAG_Bool((variable[4])==( TAG_Bool(false)));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((syntax_base___PClosureDecl___variable_t)CALL(variable[4],COLOR_syntax_base___PClosureDecl___variable))(variable[4]) /*PClosureDecl::variable*/;
-      variable[4] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[4],COLOR_syntax_base___ClosureVariable___closure))(variable[4]) /*ClosureVariable::closure*/;
-      variable[4] = ((static_type___MMClosure___signature_t)CALL(variable[4],COLOR_static_type___MMClosure___signature))(variable[4]) /*MMClosure::signature*/;
-      variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
-      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[4] = CALL_syntax_base___PClosureDecl___variable(variable[4])(variable[4]) /*PClosureDecl::variable*/;
+      variable[4] = CALL_syntax_base___ClosureVariable___closure(variable[4])(variable[4]) /*ClosureVariable::closure*/;
+      variable[4] = CALL_static_type___MMClosure___signature(variable[4])(variable[4]) /*MMClosure::signature*/;
+      variable[4] = CALL_static_type___MMSignature___return_type(variable[4])(variable[4]) /*MMSignature::return_type*/;
+      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[4])) { /*if*/
         variable[4] = variable[0];
         variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of bloc (a 'continue' with a value was expected)."), TAG_Int(76)); /*new String*/
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
       } else { /*if*/
         variable[4] = variable[0];
-        variable[4] = ((syntax_base___PClosureDecl___variable_t)CALL(variable[4],COLOR_syntax_base___PClosureDecl___variable))(variable[4]) /*PClosureDecl::variable*/;
-        variable[4] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[4],COLOR_syntax_base___ClosureVariable___closure))(variable[4]) /*ClosureVariable::closure*/;
-        variable[4] = ((static_type___MMClosure___is_break_t)CALL(variable[4],COLOR_static_type___MMClosure___is_break))(variable[4]) /*MMClosure::is_break*/;
+        variable[4] = CALL_syntax_base___PClosureDecl___variable(variable[4])(variable[4]) /*PClosureDecl::variable*/;
+        variable[4] = CALL_syntax_base___ClosureVariable___closure(variable[4])(variable[4]) /*ClosureVariable::closure*/;
+        variable[4] = CALL_static_type___MMClosure___is_break(variable[4])(variable[4]) /*MMClosure::is_break*/;
         if (UNTAG_Bool(variable[4])) { /*if*/
           variable[4] = variable[0];
           variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of break bloc (an 'abort' was expected)."), TAG_Int(67)); /*new String*/
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
         }
       }
     }
-    ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
+    CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_control_flow_ctx*/) /*ControlFlowVisitor::control_flow_ctx=*/;
   }
   return_label30: while(false);
   tracehead = trace.prev;
@@ -805,19 +806,19 @@ void control_flow___AClosureDef___accept_control_flow(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___PClosureDef___variables_t)CALL(variable[3],COLOR_syntax_base___PClosureDef___variables))(variable[3]) /*PClosureDef::variables*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_syntax_base___PClosureDef___variables(variable[3])(variable[3]) /*PClosureDef::variables*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    ((control_flow___ControlFlowVisitor___mark_is_set_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___mark_is_set))( variable[1] /*v*/,  variable[5] /*va*/) /*ControlFlowVisitor::mark_is_set*/;
+    CALL_control_flow___ControlFlowVisitor___mark_is_set( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*va*/) /*ControlFlowVisitor::mark_is_set*/;
     continue_32: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_32: while(0);
-  ((control_flow___AClosureDef___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AClosureDef___accept_control_flow))(variable[0], variable[1]) /*super AClosureDef::accept_control_flow*/;
+  CALL_SUPER_control_flow___AClosureDef___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AClosureDef::accept_control_flow*/;
   return_label31: while(false);
   tracehead = trace.prev;
   return;
@@ -830,27 +831,27 @@ void control_flow___AClosureDef___check_control_flow(val_t  self, val_t  param0)
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___control_flow_ctx))( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
-  variable[3] = ((control_flow___ControlFlowContext___unreash_t)CALL(variable[3],COLOR_control_flow___ControlFlowContext___unreash))(variable[3]) /*ControlFlowContext::unreash*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___control_flow_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::control_flow_ctx*/;
+  variable[3] = CALL_control_flow___ControlFlowContext___unreash(variable[3])(variable[3]) /*ControlFlowContext::unreash*/;
   variable[3] = TAG_Bool((variable[3])==( TAG_Bool(false)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((syntax_base___PClosureDef___closure_t)CALL(variable[3],COLOR_syntax_base___PClosureDef___closure))(variable[3]) /*PClosureDef::closure*/;
-    variable[3] = ((static_type___MMClosure___signature_t)CALL(variable[3],COLOR_static_type___MMClosure___signature))(variable[3]) /*MMClosure::signature*/;
-    variable[3] = ((static_type___MMSignature___return_type_t)CALL(variable[3],COLOR_static_type___MMSignature___return_type))(variable[3]) /*MMSignature::return_type*/;
-    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[3] = CALL_syntax_base___PClosureDef___closure(variable[3])(variable[3]) /*PClosureDef::closure*/;
+    variable[3] = CALL_static_type___MMClosure___signature(variable[3])(variable[3]) /*MMClosure::signature*/;
+    variable[3] = CALL_static_type___MMSignature___return_type(variable[3])(variable[3]) /*MMSignature::return_type*/;
+    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[3] = variable[0];
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of bloc (a 'continue' with a value was expected)."), TAG_Int(76)); /*new String*/
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[3] = variable[0];
-      variable[3] = ((syntax_base___PClosureDef___closure_t)CALL(variable[3],COLOR_syntax_base___PClosureDef___closure))(variable[3]) /*PClosureDef::closure*/;
-      variable[3] = ((static_type___MMClosure___is_break_t)CALL(variable[3],COLOR_static_type___MMClosure___is_break))(variable[3]) /*MMClosure::is_break*/;
+      variable[3] = CALL_syntax_base___PClosureDef___closure(variable[3])(variable[3]) /*PClosureDef::closure*/;
+      variable[3] = CALL_static_type___MMClosure___is_break(variable[3])(variable[3]) /*MMClosure::is_break*/;
       if (UNTAG_Bool(variable[3])) { /*if*/
         variable[3] = variable[0];
         variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Control error: Reached end of break bloc (a 'break' was expected)."), TAG_Int(66)); /*new String*/
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
       }
     }
   }
@@ -866,20 +867,20 @@ void control_flow___AOnceExpr___accept_control_flow(val_t  self, val_t  param0)
   trace.file = LOCATE_control_flow;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((control_flow___ControlFlowVisitor___once_count_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count))( variable[1] /*v*/) /*ControlFlowVisitor::once_count*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___once_count( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::once_count*/;
   variable[3] = TAG_Bool(UNTAG_Int(variable[3])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Useless once in a once expression."), TAG_Int(34)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::warning*/;
+    CALL_syntax_base___AbsSyntaxVisitor___warning( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::warning*/;
   }
-  variable[3] = ((control_flow___ControlFlowVisitor___once_count_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count))( variable[1] /*v*/) /*ControlFlowVisitor::once_count*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___once_count( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::once_count*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1)));
-  ((control_flow___ControlFlowVisitor___once_count__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq))( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::once_count=*/;
-  ((control_flow___AOnceExpr___accept_control_flow_t)CALL(variable[0],COLOR_SUPER_control_flow___AOnceExpr___accept_control_flow))(variable[0], variable[1]) /*super AOnceExpr::accept_control_flow*/;
-  variable[3] = ((control_flow___ControlFlowVisitor___once_count_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count))( variable[1] /*v*/) /*ControlFlowVisitor::once_count*/;
+  CALL_control_flow___ControlFlowVisitor___once_count__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::once_count=*/;
+  CALL_SUPER_control_flow___AOnceExpr___accept_control_flow(variable[0])(variable[0], variable[1]) /*super AOnceExpr::accept_control_flow*/;
+  variable[3] = CALL_control_flow___ControlFlowVisitor___once_count( variable[1] /*v*/)( variable[1] /*v*/) /*ControlFlowVisitor::once_count*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
-  ((control_flow___ControlFlowVisitor___once_count__eq_t)CALL( variable[1] /*v*/,COLOR_control_flow___ControlFlowVisitor___once_count__eq))( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::once_count=*/;
+  CALL_control_flow___ControlFlowVisitor___once_count__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*ControlFlowVisitor::once_count=*/;
   return_label34: while(false);
   tracehead = trace.prev;
   return;
index dc875c3..55f7994 100644 (file)
@@ -13,65 +13,65 @@ extern const classtable_elt_t VFT_ABlockControler[];
 extern const classtable_elt_t VFT_AControlableBlock[];
 extern const char *LOCATE_control_flow;
 extern const int SFT_control_flow[];
-#define COLOR_control_flow___MMSrcModule___do_control_flow SFT_control_flow[0]
-#define COLOR_control_flow___Variable___must_be_set SFT_control_flow[1]
-#define ID_ControlFlowVisitor SFT_control_flow[2]
-#define COLOR_ControlFlowVisitor SFT_control_flow[3]
-#define COLOR_control_flow___ControlFlowVisitor____once_count SFT_control_flow[4]
-#define COLOR_control_flow___ControlFlowVisitor____control_flow_ctx SFT_control_flow[5]
-#define INIT_TABLE_POS_ControlFlowVisitor SFT_control_flow[6]
-#define COLOR_control_flow___ControlFlowVisitor___once_count SFT_control_flow[7]
-#define COLOR_control_flow___ControlFlowVisitor___once_count__eq SFT_control_flow[8]
-#define COLOR_control_flow___ControlFlowVisitor___control_flow_ctx SFT_control_flow[9]
-#define COLOR_control_flow___ControlFlowVisitor___control_flow_ctx__eq SFT_control_flow[10]
-#define COLOR_control_flow___ControlFlowVisitor___check_is_set SFT_control_flow[11]
-#define COLOR_control_flow___ControlFlowVisitor___mark_is_set SFT_control_flow[12]
-#define COLOR_control_flow___ControlFlowVisitor___init SFT_control_flow[13]
-#define ID_ControlFlowContext SFT_control_flow[14]
-#define COLOR_ControlFlowContext SFT_control_flow[15]
-#define COLOR_control_flow___ControlFlowContext____prev SFT_control_flow[16]
-#define COLOR_control_flow___ControlFlowContext____unreash SFT_control_flow[17]
-#define COLOR_control_flow___ControlFlowContext____already_unreash SFT_control_flow[18]
-#define COLOR_control_flow___ControlFlowContext____base_block SFT_control_flow[19]
-#define COLOR_control_flow___ControlFlowContext____set_variables SFT_control_flow[20]
-#define INIT_TABLE_POS_ControlFlowContext SFT_control_flow[21]
-#define COLOR_control_flow___ControlFlowContext___prev SFT_control_flow[22]
-#define COLOR_control_flow___ControlFlowContext___unreash SFT_control_flow[23]
-#define COLOR_control_flow___ControlFlowContext___unreash__eq SFT_control_flow[24]
-#define COLOR_control_flow___ControlFlowContext___already_unreash SFT_control_flow[25]
-#define COLOR_control_flow___ControlFlowContext___already_unreash__eq SFT_control_flow[26]
-#define COLOR_control_flow___ControlFlowContext___base_block SFT_control_flow[27]
-#define COLOR_control_flow___ControlFlowContext___base_block__eq SFT_control_flow[28]
-#define COLOR_control_flow___ControlFlowContext___set_variables SFT_control_flow[29]
-#define COLOR_control_flow___ControlFlowContext___is_set SFT_control_flow[30]
-#define COLOR_control_flow___ControlFlowContext___sub SFT_control_flow[31]
-#define COLOR_control_flow___ControlFlowContext___init SFT_control_flow[32]
-#define COLOR_control_flow___ControlFlowContext___with_prev SFT_control_flow[33]
-#define COLOR_control_flow___PNode___accept_control_flow SFT_control_flow[34]
-#define COLOR_SUPER_control_flow___AMethPropdef___accept_control_flow SFT_control_flow[35]
-#define COLOR_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow SFT_control_flow[36]
-#define COLOR_SUPER_control_flow___AVardeclExpr___accept_control_flow SFT_control_flow[37]
-#define COLOR_SUPER_control_flow___AReturnExpr___accept_control_flow SFT_control_flow[38]
-#define ID_ABlockControler SFT_control_flow[39]
-#define COLOR_ABlockControler SFT_control_flow[40]
-#define COLOR_control_flow___ABlockControler____block SFT_control_flow[41]
-#define INIT_TABLE_POS_ABlockControler SFT_control_flow[42]
-#define COLOR_control_flow___ABlockControler___block SFT_control_flow[43]
-#define COLOR_SUPER_control_flow___ABreakExpr___accept_control_flow SFT_control_flow[44]
-#define COLOR_SUPER_control_flow___AContinueExpr___accept_control_flow SFT_control_flow[45]
-#define COLOR_SUPER_control_flow___AAbortExpr___accept_control_flow SFT_control_flow[46]
-#define COLOR_SUPER_control_flow___AClosureCallExpr___accept_control_flow SFT_control_flow[47]
-#define ID_AControlableBlock SFT_control_flow[48]
-#define COLOR_AControlableBlock SFT_control_flow[49]
-#define INIT_TABLE_POS_AControlableBlock SFT_control_flow[50]
-#define COLOR_SUPER_control_flow___AControlableBlock___accept_control_flow SFT_control_flow[51]
-#define COLOR_control_flow___AControlableBlock___check_control_flow SFT_control_flow[52]
-#define COLOR_SUPER_control_flow___AVarExpr___accept_control_flow SFT_control_flow[53]
-#define COLOR_SUPER_control_flow___AVarAssignExpr___accept_control_flow SFT_control_flow[54]
-#define COLOR_SUPER_control_flow___AVarReassignExpr___accept_control_flow SFT_control_flow[55]
-#define COLOR_SUPER_control_flow___AClosureDecl___accept_control_flow SFT_control_flow[56]
-#define COLOR_SUPER_control_flow___AClosureDef___accept_control_flow SFT_control_flow[57]
-#define COLOR_SUPER_control_flow___AOnceExpr___accept_control_flow SFT_control_flow[58]
+#define CALL_control_flow___MMSrcModule___do_control_flow(recv) ((control_flow___MMSrcModule___do_control_flow_t)CALL((recv), (SFT_control_flow[0] + 0)))
+#define CALL_control_flow___Variable___must_be_set(recv) ((control_flow___Variable___must_be_set_t)CALL((recv), (SFT_control_flow[1] + 0)))
+#define ID_ControlFlowVisitor (SFT_control_flow[2])
+#define COLOR_ControlFlowVisitor (SFT_control_flow[3])
+#define ATTR_control_flow___ControlFlowVisitor____once_count(recv) ATTR(recv, (SFT_control_flow[4] + 0))
+#define ATTR_control_flow___ControlFlowVisitor____control_flow_ctx(recv) ATTR(recv, (SFT_control_flow[4] + 1))
+#define INIT_TABLE_POS_ControlFlowVisitor (SFT_control_flow[5] + 0)
+#define CALL_control_flow___ControlFlowVisitor___once_count(recv) ((control_flow___ControlFlowVisitor___once_count_t)CALL((recv), (SFT_control_flow[5] + 1)))
+#define CALL_control_flow___ControlFlowVisitor___once_count__eq(recv) ((control_flow___ControlFlowVisitor___once_count__eq_t)CALL((recv), (SFT_control_flow[5] + 2)))
+#define CALL_control_flow___ControlFlowVisitor___control_flow_ctx(recv) ((control_flow___ControlFlowVisitor___control_flow_ctx_t)CALL((recv), (SFT_control_flow[5] + 3)))
+#define CALL_control_flow___ControlFlowVisitor___control_flow_ctx__eq(recv) ((control_flow___ControlFlowVisitor___control_flow_ctx__eq_t)CALL((recv), (SFT_control_flow[5] + 4)))
+#define CALL_control_flow___ControlFlowVisitor___check_is_set(recv) ((control_flow___ControlFlowVisitor___check_is_set_t)CALL((recv), (SFT_control_flow[5] + 5)))
+#define CALL_control_flow___ControlFlowVisitor___mark_is_set(recv) ((control_flow___ControlFlowVisitor___mark_is_set_t)CALL((recv), (SFT_control_flow[5] + 6)))
+#define CALL_control_flow___ControlFlowVisitor___init(recv) ((control_flow___ControlFlowVisitor___init_t)CALL((recv), (SFT_control_flow[5] + 7)))
+#define ID_ControlFlowContext (SFT_control_flow[6])
+#define COLOR_ControlFlowContext (SFT_control_flow[7])
+#define ATTR_control_flow___ControlFlowContext____prev(recv) ATTR(recv, (SFT_control_flow[8] + 0))
+#define ATTR_control_flow___ControlFlowContext____unreash(recv) ATTR(recv, (SFT_control_flow[8] + 1))
+#define ATTR_control_flow___ControlFlowContext____already_unreash(recv) ATTR(recv, (SFT_control_flow[8] + 2))
+#define ATTR_control_flow___ControlFlowContext____base_block(recv) ATTR(recv, (SFT_control_flow[8] + 3))
+#define ATTR_control_flow___ControlFlowContext____set_variables(recv) ATTR(recv, (SFT_control_flow[8] + 4))
+#define INIT_TABLE_POS_ControlFlowContext (SFT_control_flow[9] + 0)
+#define CALL_control_flow___ControlFlowContext___prev(recv) ((control_flow___ControlFlowContext___prev_t)CALL((recv), (SFT_control_flow[9] + 1)))
+#define CALL_control_flow___ControlFlowContext___unreash(recv) ((control_flow___ControlFlowContext___unreash_t)CALL((recv), (SFT_control_flow[9] + 2)))
+#define CALL_control_flow___ControlFlowContext___unreash__eq(recv) ((control_flow___ControlFlowContext___unreash__eq_t)CALL((recv), (SFT_control_flow[9] + 3)))
+#define CALL_control_flow___ControlFlowContext___already_unreash(recv) ((control_flow___ControlFlowContext___already_unreash_t)CALL((recv), (SFT_control_flow[9] + 4)))
+#define CALL_control_flow___ControlFlowContext___already_unreash__eq(recv) ((control_flow___ControlFlowContext___already_unreash__eq_t)CALL((recv), (SFT_control_flow[9] + 5)))
+#define CALL_control_flow___ControlFlowContext___base_block(recv) ((control_flow___ControlFlowContext___base_block_t)CALL((recv), (SFT_control_flow[9] + 6)))
+#define CALL_control_flow___ControlFlowContext___base_block__eq(recv) ((control_flow___ControlFlowContext___base_block__eq_t)CALL((recv), (SFT_control_flow[9] + 7)))
+#define CALL_control_flow___ControlFlowContext___set_variables(recv) ((control_flow___ControlFlowContext___set_variables_t)CALL((recv), (SFT_control_flow[9] + 8)))
+#define CALL_control_flow___ControlFlowContext___is_set(recv) ((control_flow___ControlFlowContext___is_set_t)CALL((recv), (SFT_control_flow[9] + 9)))
+#define CALL_control_flow___ControlFlowContext___sub(recv) ((control_flow___ControlFlowContext___sub_t)CALL((recv), (SFT_control_flow[9] + 10)))
+#define CALL_control_flow___ControlFlowContext___init(recv) ((control_flow___ControlFlowContext___init_t)CALL((recv), (SFT_control_flow[9] + 11)))
+#define CALL_control_flow___ControlFlowContext___with_prev(recv) ((control_flow___ControlFlowContext___with_prev_t)CALL((recv), (SFT_control_flow[9] + 12)))
+#define CALL_control_flow___PNode___accept_control_flow(recv) ((control_flow___PNode___accept_control_flow_t)CALL((recv), (SFT_control_flow[10] + 0)))
+#define CALL_SUPER_control_flow___AMethPropdef___accept_control_flow(recv) ((control_flow___AMethPropdef___accept_control_flow_t)CALL((recv), (SFT_control_flow[11] + 0)))
+#define CALL_SUPER_control_flow___AConcreteMethPropdef___accept_control_flow(recv) ((control_flow___AConcreteMethPropdef___accept_control_flow_t)CALL((recv), (SFT_control_flow[12] + 0)))
+#define CALL_SUPER_control_flow___AVardeclExpr___accept_control_flow(recv) ((control_flow___AVardeclExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[13] + 0)))
+#define CALL_SUPER_control_flow___AReturnExpr___accept_control_flow(recv) ((control_flow___AReturnExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[14] + 0)))
+#define ID_ABlockControler (SFT_control_flow[15])
+#define COLOR_ABlockControler (SFT_control_flow[16])
+#define ATTR_control_flow___ABlockControler____block(recv) ATTR(recv, (SFT_control_flow[17] + 0))
+#define INIT_TABLE_POS_ABlockControler (SFT_control_flow[18] + 0)
+#define CALL_control_flow___ABlockControler___block(recv) ((control_flow___ABlockControler___block_t)CALL((recv), (SFT_control_flow[18] + 1)))
+#define CALL_SUPER_control_flow___ABreakExpr___accept_control_flow(recv) ((control_flow___ABreakExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[19] + 0)))
+#define CALL_SUPER_control_flow___AContinueExpr___accept_control_flow(recv) ((control_flow___AContinueExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[20] + 0)))
+#define CALL_SUPER_control_flow___AAbortExpr___accept_control_flow(recv) ((control_flow___AAbortExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[21] + 0)))
+#define CALL_SUPER_control_flow___AClosureCallExpr___accept_control_flow(recv) ((control_flow___AClosureCallExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[22] + 0)))
+#define ID_AControlableBlock (SFT_control_flow[23])
+#define COLOR_AControlableBlock (SFT_control_flow[24])
+#define INIT_TABLE_POS_AControlableBlock (SFT_control_flow[25] + 0)
+#define CALL_SUPER_control_flow___AControlableBlock___accept_control_flow(recv) ((control_flow___AControlableBlock___accept_control_flow_t)CALL((recv), (SFT_control_flow[25] + 1)))
+#define CALL_control_flow___AControlableBlock___check_control_flow(recv) ((control_flow___AControlableBlock___check_control_flow_t)CALL((recv), (SFT_control_flow[25] + 2)))
+#define CALL_SUPER_control_flow___AVarExpr___accept_control_flow(recv) ((control_flow___AVarExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[26] + 0)))
+#define CALL_SUPER_control_flow___AVarAssignExpr___accept_control_flow(recv) ((control_flow___AVarAssignExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[27] + 0)))
+#define CALL_SUPER_control_flow___AVarReassignExpr___accept_control_flow(recv) ((control_flow___AVarReassignExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[28] + 0)))
+#define CALL_SUPER_control_flow___AClosureDecl___accept_control_flow(recv) ((control_flow___AClosureDecl___accept_control_flow_t)CALL((recv), (SFT_control_flow[29] + 0)))
+#define CALL_SUPER_control_flow___AClosureDef___accept_control_flow(recv) ((control_flow___AClosureDef___accept_control_flow_t)CALL((recv), (SFT_control_flow[30] + 0)))
+#define CALL_SUPER_control_flow___AOnceExpr___accept_control_flow(recv) ((control_flow___AOnceExpr___accept_control_flow_t)CALL((recv), (SFT_control_flow[31] + 0)))
 val_t NEW_MMSrcModule_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef void (* control_flow___MMSrcModule___do_control_flow_t)(val_t  self, val_t  param0);
 void control_flow___MMSrcModule___do_control_flow(val_t  self, val_t  param0);
@@ -87,14 +87,12 @@ val_t control_flow___VarVariable___must_be_set(val_t  self);
 typedef void (* control_flow___ControlFlowVisitor___visit_t)(val_t  self, val_t  param0);
 void control_flow___ControlFlowVisitor___visit(val_t  self, val_t  param0);
 #define LOCATE_control_flow___ControlFlowVisitor___visit "control_flow::ControlFlowVisitor::(parser_prod::Visitor::visit)"
-#define ATTR_control_flow___ControlFlowVisitor____once_count(recv) ATTR(recv, COLOR_control_flow___ControlFlowVisitor____once_count)
 typedef val_t (* control_flow___ControlFlowVisitor___once_count_t)(val_t  self);
 val_t control_flow___ControlFlowVisitor___once_count(val_t  self);
 #define LOCATE_control_flow___ControlFlowVisitor___once_count "control_flow::ControlFlowVisitor::once_count"
 typedef void (* control_flow___ControlFlowVisitor___once_count__eq_t)(val_t  self, val_t  param0);
 void control_flow___ControlFlowVisitor___once_count__eq(val_t  self, val_t  param0);
 #define LOCATE_control_flow___ControlFlowVisitor___once_count__eq "control_flow::ControlFlowVisitor::once_count="
-#define ATTR_control_flow___ControlFlowVisitor____control_flow_ctx(recv) ATTR(recv, COLOR_control_flow___ControlFlowVisitor____control_flow_ctx)
 typedef val_t (* control_flow___ControlFlowVisitor___control_flow_ctx_t)(val_t  self);
 val_t control_flow___ControlFlowVisitor___control_flow_ctx(val_t  self);
 #define LOCATE_control_flow___ControlFlowVisitor___control_flow_ctx "control_flow::ControlFlowVisitor::control_flow_ctx"
@@ -111,32 +109,27 @@ typedef void (* control_flow___ControlFlowVisitor___init_t)(val_t  self, val_t
 void control_flow___ControlFlowVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_control_flow___ControlFlowVisitor___init "control_flow::ControlFlowVisitor::init"
 val_t NEW_ControlFlowVisitor_control_flow___ControlFlowVisitor___init(val_t p0, val_t p1);
-#define ATTR_control_flow___ControlFlowContext____prev(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____prev)
 typedef val_t (* control_flow___ControlFlowContext___prev_t)(val_t  self);
 val_t control_flow___ControlFlowContext___prev(val_t  self);
 #define LOCATE_control_flow___ControlFlowContext___prev "control_flow::ControlFlowContext::prev"
-#define ATTR_control_flow___ControlFlowContext____unreash(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____unreash)
 typedef val_t (* control_flow___ControlFlowContext___unreash_t)(val_t  self);
 val_t control_flow___ControlFlowContext___unreash(val_t  self);
 #define LOCATE_control_flow___ControlFlowContext___unreash "control_flow::ControlFlowContext::unreash"
 typedef void (* control_flow___ControlFlowContext___unreash__eq_t)(val_t  self, val_t  param0);
 void control_flow___ControlFlowContext___unreash__eq(val_t  self, val_t  param0);
 #define LOCATE_control_flow___ControlFlowContext___unreash__eq "control_flow::ControlFlowContext::unreash="
-#define ATTR_control_flow___ControlFlowContext____already_unreash(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____already_unreash)
 typedef val_t (* control_flow___ControlFlowContext___already_unreash_t)(val_t  self);
 val_t control_flow___ControlFlowContext___already_unreash(val_t  self);
 #define LOCATE_control_flow___ControlFlowContext___already_unreash "control_flow::ControlFlowContext::already_unreash"
 typedef void (* control_flow___ControlFlowContext___already_unreash__eq_t)(val_t  self, val_t  param0);
 void control_flow___ControlFlowContext___already_unreash__eq(val_t  self, val_t  param0);
 #define LOCATE_control_flow___ControlFlowContext___already_unreash__eq "control_flow::ControlFlowContext::already_unreash="
-#define ATTR_control_flow___ControlFlowContext____base_block(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____base_block)
 typedef val_t (* control_flow___ControlFlowContext___base_block_t)(val_t  self);
 val_t control_flow___ControlFlowContext___base_block(val_t  self);
 #define LOCATE_control_flow___ControlFlowContext___base_block "control_flow::ControlFlowContext::base_block"
 typedef void (* control_flow___ControlFlowContext___base_block__eq_t)(val_t  self, val_t  param0);
 void control_flow___ControlFlowContext___base_block__eq(val_t  self, val_t  param0);
 #define LOCATE_control_flow___ControlFlowContext___base_block__eq "control_flow::ControlFlowContext::base_block="
-#define ATTR_control_flow___ControlFlowContext____set_variables(recv) ATTR(recv, COLOR_control_flow___ControlFlowContext____set_variables)
 typedef val_t (* control_flow___ControlFlowContext___set_variables_t)(val_t  self);
 val_t control_flow___ControlFlowContext___set_variables(val_t  self);
 #define LOCATE_control_flow___ControlFlowContext___set_variables "control_flow::ControlFlowContext::set_variables"
@@ -191,7 +184,6 @@ typedef void (* control_flow___AReturnExpr___accept_control_flow_t)(val_t  self,
 void control_flow___AReturnExpr___accept_control_flow(val_t  self, val_t  param0);
 #define LOCATE_control_flow___AReturnExpr___accept_control_flow "control_flow::AReturnExpr::(control_flow::PNode::accept_control_flow)"
 val_t NEW_ABlockControler_parser_nodes___PNode___init();
-#define ATTR_control_flow___ABlockControler____block(recv) ATTR(recv, COLOR_control_flow___ABlockControler____block)
 typedef val_t (* control_flow___ABlockControler___block_t)(val_t  self);
 val_t control_flow___ABlockControler___block(val_t  self);
 #define LOCATE_control_flow___ABlockControler___block "control_flow::ABlockControler::block"
index d430c2d..6b66ff5 100644 (file)
@@ -9,34 +9,35 @@ val_t environ___Symbol___environ(val_t  self) {
   trace.file = LOCATE_environ;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((symbol___Symbol___to_s_t)CALL(variable[3],COLOR_string___Object___to_s))(variable[3]) /*Symbol::to_s*/;
-  variable[3] = ((string___String___to_cstring_t)CALL(variable[3],COLOR_string___String___to_cstring))(variable[3]) /*String::to_cstring*/;
-  variable[3] = ((environ___NativeString___get_environ_t)CALL(variable[3],COLOR_environ___NativeString___get_environ))(variable[3]) /*NativeString::get_environ*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Symbol::to_s*/;
+  variable[3] = CALL_string___String___to_cstring(variable[3])(variable[3]) /*String::to_cstring*/;
+  variable[3] = CALL_environ___NativeString___get_environ(variable[3])(variable[3]) /*NativeString::get_environ*/;
   variable[2] = variable[3];
   if (once_bool_1) variable[4] = once_value_1;
   else {
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-    variable[4] = ((string___String___to_cstring_t)CALL(variable[4],COLOR_string___String___to_cstring))(variable[4]) /*String::to_cstring*/;
-    variable[4] = ((environ___NativeString___get_environ_t)CALL(variable[4],COLOR_environ___NativeString___get_environ))(variable[4]) /*NativeString::get_environ*/;
+    variable[4] = CALL_string___String___to_cstring(variable[4])(variable[4]) /*String::to_cstring*/;
+    variable[4] = CALL_environ___NativeString___get_environ(variable[4])(variable[4]) /*NativeString::get_environ*/;
     once_value_1 = variable[4];
     once_bool_1 = true;
   }
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*res*/ ==  variable[3] /*nulstr*/) || (( variable[2] /*res*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*res*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*res*/, variable[3] /*nulstr*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*res*/,COLOR_kernel___Object_____eqeq))( variable[2] /*res*/,  variable[3] /*nulstr*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*res*/ ==  variable[3] /*nulstr*/) || (( variable[2] /*res*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*res*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*res*/, variable[3] /*nulstr*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*res*/)( variable[2] /*res*/,  variable[3] /*nulstr*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = NEW_String_string___String___init(); /*new String*/
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("env "), TAG_Int(4)); /*new String*/
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] = variable[0];
     variable[8] = variable[7];
-    variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-    ((string___String___output_t)CALL(variable[4],COLOR_kernel___Object___output))(variable[4]) /*String::output*/;
-    ((kernel___Object___output_t)CALL( variable[2] /*res*/,COLOR_kernel___Object___output))( variable[2] /*res*/) /*Object::output*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_kernel___Object___output(variable[4])(variable[4]) /*String::output*/;
+    CALL_kernel___Object___output( variable[2] /*res*/)( variable[2] /*res*/) /*Object::output*/;
     variable[4] = NEW_String_string___String___from_cstring( variable[2] /*res*/); /*new String*/
     variable[1] = variable[4];
     goto return_label0;
index 2135f40..3c8a9d9 100644 (file)
@@ -6,8 +6,8 @@
 #include <environ_nit.h>
 extern const char *LOCATE_environ;
 extern const int SFT_environ[];
-#define COLOR_environ___Symbol___environ SFT_environ[0]
-#define COLOR_environ___NativeString___get_environ SFT_environ[1]
+#define CALL_environ___Symbol___environ(recv) ((environ___Symbol___environ_t)CALL((recv), (SFT_environ[0] + 0)))
+#define CALL_environ___NativeString___get_environ(recv) ((environ___NativeString___get_environ_t)CALL((recv), (SFT_environ[1] + 0)))
 val_t NEW_Symbol_symbol___Symbol___init(val_t p0);
 typedef val_t (* environ___Symbol___environ_t)(val_t  self);
 val_t environ___Symbol___environ(val_t  self);
index 57c70ce..6d57e6c 100644 (file)
@@ -9,7 +9,7 @@ val_t exec___Process___id(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___Process____data(variable[2]) /*Process::_data*/;
-  variable[2] = ((exec___NativeProcess___id_t)CALL(variable[2],COLOR_exec___NativeProcess___id))(variable[2]) /*NativeProcess::id*/;
+  variable[2] = CALL_exec___NativeProcess___id(variable[2])(variable[2]) /*NativeProcess::id*/;
   variable[1] = variable[2];
   goto return_label0;
   return_label0: while(false);
@@ -25,7 +25,7 @@ val_t exec___Process___is_finished(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___Process____data(variable[2]) /*Process::_data*/;
-  variable[2] = ((exec___NativeProcess___is_finished_t)CALL(variable[2],COLOR_exec___NativeProcess___is_finished))(variable[2]) /*NativeProcess::is_finished*/;
+  variable[2] = CALL_exec___NativeProcess___is_finished(variable[2])(variable[2]) /*NativeProcess::is_finished*/;
   variable[1] = variable[2];
   goto return_label1;
   return_label1: while(false);
@@ -41,9 +41,9 @@ void exec___Process___wait(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___Process____data(variable[2]) /*Process::_data*/;
-  ((exec___NativeProcess___wait_t)CALL(variable[2],COLOR_exec___NativeProcess___wait))(variable[2]) /*NativeProcess::wait*/;
+  CALL_exec___NativeProcess___wait(variable[2])(variable[2]) /*NativeProcess::wait*/;
   variable[2] = variable[0];
-  variable[2] = ((exec___Process___is_finished_t)CALL(variable[2],COLOR_exec___Process___is_finished))(variable[2]) /*Process::is_finished*/;
+  variable[2] = CALL_exec___Process___is_finished(variable[2])(variable[2]) /*Process::is_finished*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_exec___Process___wait, LOCATE_exec, 33); nit_exit(1);}
   return_label2: while(false);
   tracehead = trace.prev;
@@ -57,11 +57,11 @@ val_t exec___Process___status(val_t  self) {
   trace.file = LOCATE_exec;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((exec___Process___is_finished_t)CALL(variable[2],COLOR_exec___Process___is_finished))(variable[2]) /*Process::is_finished*/;
+  variable[2] = CALL_exec___Process___is_finished(variable[2])(variable[2]) /*Process::is_finished*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_exec___Process___status, LOCATE_exec, 39); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_exec___Process____data(variable[2]) /*Process::_data*/;
-  variable[2] = ((exec___NativeProcess___status_t)CALL(variable[2],COLOR_exec___NativeProcess___status))(variable[2]) /*NativeProcess::status*/;
+  variable[2] = CALL_exec___NativeProcess___status(variable[2])(variable[2]) /*NativeProcess::status*/;
   variable[1] = variable[2];
   goto return_label3;
   return_label3: while(false);
@@ -78,7 +78,7 @@ void exec___Process___kill(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_exec___Process____data(variable[3]) /*Process::_data*/;
-  ((exec___NativeProcess___kill_t)CALL(variable[3],COLOR_exec___NativeProcess___kill))(variable[3],  variable[1] /*signal*/) /*NativeProcess::kill*/;
+  CALL_exec___NativeProcess___kill(variable[3])(variable[3],  variable[1] /*signal*/) /*NativeProcess::kill*/;
   return_label4: while(false);
   tracehead = trace.prev;
   return;
@@ -91,7 +91,7 @@ void exec___Process___term(val_t  self) {
   trace.file = LOCATE_exec;
   variable[0] =  self;
   variable[2] = variable[0];
-  ((exec___Process___kill_t)CALL(variable[2],COLOR_exec___Process___kill))(variable[2],  TAG_Int(15)) /*Process::kill*/;
+  CALL_exec___Process___kill(variable[2])(variable[2],  TAG_Int(15)) /*Process::kill*/;
   return_label5: while(false);
   tracehead = trace.prev;
   return;
@@ -109,7 +109,7 @@ void exec___Process___init(val_t  self, val_t  param0, val_t  param1, int* init_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Process].i]) return;
   variable[4] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[4],COLOR_exec___Process___execute))(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(0), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___Process___execute(variable[4])(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(0), init_table /*YYY*/) /*Process::execute*/;
   return_label6: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Process].i] = 1;
   tracehead = trace.prev;
@@ -125,7 +125,7 @@ void exec___Process___init_(val_t  self, val_t  param0, int* init_table) {
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Process].i]) return;
   variable[3] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[3],COLOR_exec___Process___execute))(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(0), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___Process___execute(variable[3])(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(0), init_table /*YYY*/) /*Process::execute*/;
   return_label7: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Process].i] = 1;
   tracehead = trace.prev;
@@ -145,29 +145,29 @@ void exec___Process___execute(val_t  self, val_t  param0, val_t  param1, val_t
   variable[6] = NEW_String_string___String___init(); /*new String*/
   variable[5] = variable[6];
   variable[6] =  TAG_Int(1);
-  ((string___String___append_t)CALL( variable[5] /*args*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*args*/,  variable[1] /*command*/) /*String::append*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*arguments*/ ==  NIT_NULL /*null*/) || (( variable[2] /*arguments*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*arguments*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*arguments*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*arguments*/,COLOR_kernel___Object_____eqeq))( variable[2] /*arguments*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  CALL_abstract_collection___IndexedCollection___append( variable[5] /*args*/)( variable[5] /*args*/,  variable[1] /*command*/) /*String::append*/;
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*arguments*/ ==  NIT_NULL /*null*/) || (( variable[2] /*arguments*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*arguments*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*arguments*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*arguments*/)( variable[2] /*arguments*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*arguments*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*arguments*/) /*AbstractArray::iterator*/;
+    variable[7] = CALL_abstract_collection___Collection___iterator( variable[2] /*arguments*/)( variable[2] /*arguments*/) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+      variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[8])) break; /*for*/
-      variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+      variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
       variable[9] = variable[8];
-      ((string___String___add_t)CALL( variable[5] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*args*/,  TAG_Char('\0')) /*String::add*/;
-      ((string___String___append_t)CALL( variable[5] /*args*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*args*/,  variable[9] /*a*/) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[5] /*args*/)( variable[5] /*args*/,  TAG_Char('\0')) /*String::add*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[5] /*args*/)( variable[5] /*args*/,  variable[9] /*a*/) /*String::append*/;
       continue_9: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
     }
     break_9: while(0);
-    variable[7] = ((array___AbstractArray___length_t)CALL( variable[2] /*arguments*/,COLOR_abstract_collection___Collection___length))( variable[2] /*arguments*/) /*AbstractArray::length*/;
+    variable[7] = CALL_abstract_collection___Collection___length( variable[2] /*arguments*/)( variable[2] /*arguments*/) /*AbstractArray::length*/;
     variable[6] = TAG_Int(UNTAG_Int(variable[6])+UNTAG_Int(variable[7])) /*l*/;
   }
   variable[7] = variable[0];
   variable[8] = variable[0];
-  variable[9] = ((string___String___to_cstring_t)CALL( variable[1] /*command*/,COLOR_string___String___to_cstring))( variable[1] /*command*/) /*String::to_cstring*/;
-  variable[10] = ((string___String___to_cstring_t)CALL( variable[5] /*args*/,COLOR_string___String___to_cstring))( variable[5] /*args*/) /*String::to_cstring*/;
-  variable[8] = ((exec___Process___basic_exec_execute_t)CALL(variable[8],COLOR_exec___Process___basic_exec_execute))(variable[8], variable[9], variable[10],  variable[6] /*l*/,  variable[3] /*pipeflags*/) /*Process::basic_exec_execute*/;
+  variable[9] = CALL_string___String___to_cstring( variable[1] /*command*/)( variable[1] /*command*/) /*String::to_cstring*/;
+  variable[10] = CALL_string___String___to_cstring( variable[5] /*args*/)( variable[5] /*args*/) /*String::to_cstring*/;
+  variable[8] = CALL_exec___Process___basic_exec_execute(variable[8])(variable[8], variable[9], variable[10],  variable[6] /*l*/,  variable[3] /*pipeflags*/) /*Process::basic_exec_execute*/;
   ATTR_exec___Process____data(variable[7]) /*Process::_data*/ = variable[8];
   return_label8: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Process].i] = 1;
@@ -192,7 +192,7 @@ void exec___IProcess___close(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___IProcess____in(variable[2]) /*IProcess::_in*/;
-  ((stream___FDStream___close_t)CALL(variable[2],COLOR_stream___IOS___close))(variable[2]) /*FDStream::close*/;
+  CALL_stream___IOS___close(variable[2])(variable[2]) /*FDStream::close*/;
   return_label10: while(false);
   tracehead = trace.prev;
   return;
@@ -206,7 +206,7 @@ val_t exec___IProcess___read_char(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___IProcess____in(variable[2]) /*IProcess::_in*/;
-  variable[2] = ((stream___FDIStream___read_char_t)CALL(variable[2],COLOR_stream___IStream___read_char))(variable[2]) /*FDIStream::read_char*/;
+  variable[2] = CALL_stream___IStream___read_char(variable[2])(variable[2]) /*FDIStream::read_char*/;
   variable[1] = variable[2];
   goto return_label11;
   return_label11: while(false);
@@ -222,7 +222,7 @@ val_t exec___IProcess___eof(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___IProcess____in(variable[2]) /*IProcess::_in*/;
-  variable[2] = ((stream___FDIStream___eof_t)CALL(variable[2],COLOR_stream___IStream___eof))(variable[2]) /*FDIStream::eof*/;
+  variable[2] = CALL_stream___IStream___eof(variable[2])(variable[2]) /*FDIStream::eof*/;
   variable[1] = variable[2];
   goto return_label12;
   return_label12: while(false);
@@ -242,11 +242,11 @@ void exec___IProcess___init(val_t  self, val_t  param0, val_t  param1, int* init
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IProcess].i]) return;
   variable[4] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[4],COLOR_exec___Process___execute))(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(2), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___Process___execute(variable[4])(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(2), init_table /*YYY*/) /*Process::execute*/;
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_exec___Process____data(variable[5]) /*Process::_data*/;
-  variable[5] = ((exec___NativeProcess___out_fd_t)CALL(variable[5],COLOR_exec___NativeProcess___out_fd))(variable[5]) /*NativeProcess::out_fd*/;
+  variable[5] = CALL_exec___NativeProcess___out_fd(variable[5])(variable[5]) /*NativeProcess::out_fd*/;
   variable[6] = NEW_FDIStream_stream___FDIStream___init(variable[5]); /*new FDIStream*/
   variable[5] = variable[6];
   ATTR_exec___IProcess____in(variable[4]) /*IProcess::_in*/ = variable[5];
@@ -265,11 +265,11 @@ void exec___IProcess___init_(val_t  self, val_t  param0, int* init_table) {
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IProcess].i]) return;
   variable[3] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[3],COLOR_exec___Process___execute))(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(2), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___Process___execute(variable[3])(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(2), init_table /*YYY*/) /*Process::execute*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_exec___Process____data(variable[4]) /*Process::_data*/;
-  variable[4] = ((exec___NativeProcess___out_fd_t)CALL(variable[4],COLOR_exec___NativeProcess___out_fd))(variable[4]) /*NativeProcess::out_fd*/;
+  variable[4] = CALL_exec___NativeProcess___out_fd(variable[4])(variable[4]) /*NativeProcess::out_fd*/;
   variable[5] = NEW_FDIStream_stream___FDIStream___init(variable[4]); /*new FDIStream*/
   variable[4] = variable[5];
   ATTR_exec___IProcess____in(variable[3]) /*IProcess::_in*/ = variable[4];
@@ -287,7 +287,7 @@ void exec___OProcess___close(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___OProcess____out(variable[2]) /*OProcess::_out*/;
-  ((stream___IOS___close_t)CALL(variable[2],COLOR_stream___IOS___close))(variable[2]) /*IOS::close*/;
+  CALL_stream___IOS___close(variable[2])(variable[2]) /*IOS::close*/;
   return_label15: while(false);
   tracehead = trace.prev;
   return;
@@ -302,7 +302,7 @@ void exec___OProcess___write(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_exec___OProcess____out(variable[3]) /*OProcess::_out*/;
-  ((stream___OStream___write_t)CALL(variable[3],COLOR_stream___OStream___write))(variable[3],  variable[1] /*s*/) /*OStream::write*/;
+  CALL_stream___OStream___write(variable[3])(variable[3],  variable[1] /*s*/) /*OStream::write*/;
   return_label16: while(false);
   tracehead = trace.prev;
   return;
@@ -316,7 +316,7 @@ val_t exec___OProcess___is_writable(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___OProcess____out(variable[2]) /*OProcess::_out*/;
-  variable[2] = ((stream___OStream___is_writable_t)CALL(variable[2],COLOR_stream___OStream___is_writable))(variable[2]) /*OStream::is_writable*/;
+  variable[2] = CALL_stream___OStream___is_writable(variable[2])(variable[2]) /*OStream::is_writable*/;
   variable[1] = variable[2];
   goto return_label17;
   return_label17: while(false);
@@ -336,11 +336,11 @@ void exec___OProcess___init(val_t  self, val_t  param0, val_t  param1, int* init
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OProcess].i]) return;
   variable[4] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[4],COLOR_exec___Process___execute))(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(1), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___Process___execute(variable[4])(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(1), init_table /*YYY*/) /*Process::execute*/;
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_exec___Process____data(variable[5]) /*Process::_data*/;
-  variable[5] = ((exec___NativeProcess___in_fd_t)CALL(variable[5],COLOR_exec___NativeProcess___in_fd))(variable[5]) /*NativeProcess::in_fd*/;
+  variable[5] = CALL_exec___NativeProcess___in_fd(variable[5])(variable[5]) /*NativeProcess::in_fd*/;
   variable[6] = NEW_FDOStream_stream___FDOStream___init(variable[5]); /*new FDOStream*/
   variable[5] = variable[6];
   ATTR_exec___OProcess____out(variable[4]) /*OProcess::_out*/ = variable[5];
@@ -359,11 +359,11 @@ void exec___OProcess___init_(val_t  self, val_t  param0, int* init_table) {
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OProcess].i]) return;
   variable[3] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[3],COLOR_exec___Process___execute))(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(1), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___Process___execute(variable[3])(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(1), init_table /*YYY*/) /*Process::execute*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_exec___Process____data(variable[4]) /*Process::_data*/;
-  variable[4] = ((exec___NativeProcess___in_fd_t)CALL(variable[4],COLOR_exec___NativeProcess___in_fd))(variable[4]) /*NativeProcess::in_fd*/;
+  variable[4] = CALL_exec___NativeProcess___in_fd(variable[4])(variable[4]) /*NativeProcess::in_fd*/;
   variable[5] = NEW_FDOStream_stream___FDOStream___init(variable[4]); /*new FDOStream*/
   variable[4] = variable[5];
   ATTR_exec___OProcess____out(variable[3]) /*OProcess::_out*/ = variable[4];
@@ -381,10 +381,10 @@ void exec___IOProcess___close(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___IProcess____in(variable[2]) /*IProcess::_in*/;
-  ((stream___FDStream___close_t)CALL(variable[2],COLOR_stream___IOS___close))(variable[2]) /*FDStream::close*/;
+  CALL_stream___IOS___close(variable[2])(variable[2]) /*FDStream::close*/;
   variable[2] = variable[0];
   variable[2] = ATTR_exec___OProcess____out(variable[2]) /*OProcess::_out*/;
-  ((stream___IOS___close_t)CALL(variable[2],COLOR_stream___IOS___close))(variable[2]) /*IOS::close*/;
+  CALL_stream___IOS___close(variable[2])(variable[2]) /*IOS::close*/;
   return_label20: while(false);
   tracehead = trace.prev;
   return;
@@ -402,20 +402,20 @@ void exec___IOProcess___init(val_t  self, val_t  param0, val_t  param1, int* ini
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IOProcess].i]) return;
   variable[4] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[4],COLOR_exec___Process___execute))(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(3), init_table /*YYY*/) /*Process::execute*/;
-  ((exec___IProcess___init_t)CALL(variable[0],COLOR_exec___IProcess___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*IProcess::init*/;
-  ((exec___OProcess___init_t)CALL(variable[0],COLOR_exec___OProcess___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*OProcess::init*/;
+  CALL_exec___Process___execute(variable[4])(variable[4],  variable[1] /*command*/,  variable[2] /*arguments*/,  TAG_Int(3), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___IProcess___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*IProcess::init*/;
+  CALL_exec___OProcess___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*OProcess::init*/;
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_exec___Process____data(variable[5]) /*Process::_data*/;
-  variable[5] = ((exec___NativeProcess___out_fd_t)CALL(variable[5],COLOR_exec___NativeProcess___out_fd))(variable[5]) /*NativeProcess::out_fd*/;
+  variable[5] = CALL_exec___NativeProcess___out_fd(variable[5])(variable[5]) /*NativeProcess::out_fd*/;
   variable[6] = NEW_FDIStream_stream___FDIStream___init(variable[5]); /*new FDIStream*/
   variable[5] = variable[6];
   ATTR_exec___IProcess____in(variable[4]) /*IProcess::_in*/ = variable[5];
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_exec___Process____data(variable[5]) /*Process::_data*/;
-  variable[5] = ((exec___NativeProcess___in_fd_t)CALL(variable[5],COLOR_exec___NativeProcess___in_fd))(variable[5]) /*NativeProcess::in_fd*/;
+  variable[5] = CALL_exec___NativeProcess___in_fd(variable[5])(variable[5]) /*NativeProcess::in_fd*/;
   variable[6] = NEW_FDOStream_stream___FDOStream___init(variable[5]); /*new FDOStream*/
   variable[5] = variable[6];
   ATTR_exec___OProcess____out(variable[4]) /*OProcess::_out*/ = variable[5];
@@ -434,20 +434,20 @@ void exec___IOProcess___init_(val_t  self, val_t  param0, int* init_table) {
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IOProcess].i]) return;
   variable[3] = variable[0];
-  ((exec___Process___execute_t)CALL(variable[3],COLOR_exec___Process___execute))(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(3), init_table /*YYY*/) /*Process::execute*/;
-  ((exec___IProcess___init__t)CALL(variable[0],COLOR_exec___IProcess___init_))(variable[0], variable[1], init_table /*YYY*/) /*IProcess::init_*/;
-  ((exec___OProcess___init__t)CALL(variable[0],COLOR_exec___OProcess___init_))(variable[0], variable[1], init_table /*YYY*/) /*OProcess::init_*/;
+  CALL_exec___Process___execute(variable[3])(variable[3],  variable[1] /*command*/,  NIT_NULL /*null*/,  TAG_Int(3), init_table /*YYY*/) /*Process::execute*/;
+  CALL_exec___IProcess___init_(variable[0])(variable[0], variable[1], init_table /*YYY*/) /*IProcess::init_*/;
+  CALL_exec___OProcess___init_(variable[0])(variable[0], variable[1], init_table /*YYY*/) /*OProcess::init_*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_exec___Process____data(variable[4]) /*Process::_data*/;
-  variable[4] = ((exec___NativeProcess___out_fd_t)CALL(variable[4],COLOR_exec___NativeProcess___out_fd))(variable[4]) /*NativeProcess::out_fd*/;
+  variable[4] = CALL_exec___NativeProcess___out_fd(variable[4])(variable[4]) /*NativeProcess::out_fd*/;
   variable[5] = NEW_FDIStream_stream___FDIStream___init(variable[4]); /*new FDIStream*/
   variable[4] = variable[5];
   ATTR_exec___IProcess____in(variable[3]) /*IProcess::_in*/ = variable[4];
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_exec___Process____data(variable[4]) /*Process::_data*/;
-  variable[4] = ((exec___NativeProcess___in_fd_t)CALL(variable[4],COLOR_exec___NativeProcess___in_fd))(variable[4]) /*NativeProcess::in_fd*/;
+  variable[4] = CALL_exec___NativeProcess___in_fd(variable[4])(variable[4]) /*NativeProcess::in_fd*/;
   variable[5] = NEW_FDOStream_stream___FDOStream___init(variable[4]); /*new FDOStream*/
   variable[4] = variable[5];
   ATTR_exec___OProcess____out(variable[3]) /*OProcess::_out*/ = variable[4];
@@ -464,8 +464,8 @@ val_t exec___Sys___system(val_t  self, val_t  param0) {
   trace.file = LOCATE_exec;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((string___String___to_cstring_t)CALL( variable[1] /*command*/,COLOR_string___String___to_cstring))( variable[1] /*command*/) /*String::to_cstring*/;
-  variable[3] = ((exec___NativeString___system_t)CALL(variable[3],COLOR_exec___NativeString___system))(variable[3]) /*NativeString::system*/;
+  variable[3] = CALL_string___String___to_cstring( variable[1] /*command*/)( variable[1] /*command*/) /*String::to_cstring*/;
+  variable[3] = CALL_exec___NativeString___system(variable[3])(variable[3]) /*NativeString::system*/;
   variable[2] = variable[3];
   goto return_label23;
   return_label23: while(false);
index 59a7a7d..4c5afde 100644 (file)
@@ -19,50 +19,50 @@ val_t BOX_NativeProcess(void * val);
 #define UNBOX_NativeProcess(x) (((struct TBOX_NativeProcess *)(VAL2OBJ(x)))->val)
 extern const char *LOCATE_exec;
 extern const int SFT_exec[];
-#define ID_Process SFT_exec[0]
-#define COLOR_Process SFT_exec[1]
-#define COLOR_exec___Process____data SFT_exec[2]
-#define INIT_TABLE_POS_Process SFT_exec[3]
-#define COLOR_exec___Process___id SFT_exec[4]
-#define COLOR_exec___Process___is_finished SFT_exec[5]
-#define COLOR_exec___Process___wait SFT_exec[6]
-#define COLOR_exec___Process___status SFT_exec[7]
-#define COLOR_exec___Process___kill SFT_exec[8]
-#define COLOR_exec___Process___term SFT_exec[9]
-#define COLOR_exec___Process___init SFT_exec[10]
-#define COLOR_exec___Process___init_ SFT_exec[11]
-#define COLOR_exec___Process___execute SFT_exec[12]
-#define COLOR_exec___Process___basic_exec_execute SFT_exec[13]
-#define ID_IProcess SFT_exec[14]
-#define COLOR_IProcess SFT_exec[15]
-#define COLOR_exec___IProcess____in SFT_exec[16]
-#define INIT_TABLE_POS_IProcess SFT_exec[17]
-#define COLOR_exec___IProcess___init SFT_exec[18]
-#define COLOR_exec___IProcess___init_ SFT_exec[19]
-#define ID_OProcess SFT_exec[20]
-#define COLOR_OProcess SFT_exec[21]
-#define COLOR_exec___OProcess____out SFT_exec[22]
-#define INIT_TABLE_POS_OProcess SFT_exec[23]
-#define COLOR_exec___OProcess___init SFT_exec[24]
-#define COLOR_exec___OProcess___init_ SFT_exec[25]
-#define ID_IOProcess SFT_exec[26]
-#define COLOR_IOProcess SFT_exec[27]
-#define INIT_TABLE_POS_IOProcess SFT_exec[28]
-#define COLOR_exec___IOProcess___init SFT_exec[29]
-#define COLOR_exec___IOProcess___init_ SFT_exec[30]
-#define COLOR_exec___Sys___system SFT_exec[31]
-#define COLOR_exec___NativeString___system SFT_exec[32]
-#define ID_NativeProcess SFT_exec[33]
-#define COLOR_NativeProcess SFT_exec[34]
-#define INIT_TABLE_POS_NativeProcess SFT_exec[35]
-#define COLOR_exec___NativeProcess___id SFT_exec[36]
-#define COLOR_exec___NativeProcess___is_finished SFT_exec[37]
-#define COLOR_exec___NativeProcess___status SFT_exec[38]
-#define COLOR_exec___NativeProcess___wait SFT_exec[39]
-#define COLOR_exec___NativeProcess___kill SFT_exec[40]
-#define COLOR_exec___NativeProcess___in_fd SFT_exec[41]
-#define COLOR_exec___NativeProcess___out_fd SFT_exec[42]
-#define COLOR_exec___NativeProcess___err_fd SFT_exec[43]
+#define ID_Process (SFT_exec[0])
+#define COLOR_Process (SFT_exec[1])
+#define ATTR_exec___Process____data(recv) ATTR(recv, (SFT_exec[2] + 0))
+#define INIT_TABLE_POS_Process (SFT_exec[3] + 0)
+#define CALL_exec___Process___id(recv) ((exec___Process___id_t)CALL((recv), (SFT_exec[3] + 1)))
+#define CALL_exec___Process___is_finished(recv) ((exec___Process___is_finished_t)CALL((recv), (SFT_exec[3] + 2)))
+#define CALL_exec___Process___wait(recv) ((exec___Process___wait_t)CALL((recv), (SFT_exec[3] + 3)))
+#define CALL_exec___Process___status(recv) ((exec___Process___status_t)CALL((recv), (SFT_exec[3] + 4)))
+#define CALL_exec___Process___kill(recv) ((exec___Process___kill_t)CALL((recv), (SFT_exec[3] + 5)))
+#define CALL_exec___Process___term(recv) ((exec___Process___term_t)CALL((recv), (SFT_exec[3] + 6)))
+#define CALL_exec___Process___init(recv) ((exec___Process___init_t)CALL((recv), (SFT_exec[3] + 7)))
+#define CALL_exec___Process___init_(recv) ((exec___Process___init__t)CALL((recv), (SFT_exec[3] + 8)))
+#define CALL_exec___Process___execute(recv) ((exec___Process___execute_t)CALL((recv), (SFT_exec[3] + 9)))
+#define CALL_exec___Process___basic_exec_execute(recv) ((exec___Process___basic_exec_execute_t)CALL((recv), (SFT_exec[3] + 10)))
+#define ID_IProcess (SFT_exec[4])
+#define COLOR_IProcess (SFT_exec[5])
+#define ATTR_exec___IProcess____in(recv) ATTR(recv, (SFT_exec[6] + 0))
+#define INIT_TABLE_POS_IProcess (SFT_exec[7] + 0)
+#define CALL_exec___IProcess___init(recv) ((exec___IProcess___init_t)CALL((recv), (SFT_exec[7] + 1)))
+#define CALL_exec___IProcess___init_(recv) ((exec___IProcess___init__t)CALL((recv), (SFT_exec[7] + 2)))
+#define ID_OProcess (SFT_exec[8])
+#define COLOR_OProcess (SFT_exec[9])
+#define ATTR_exec___OProcess____out(recv) ATTR(recv, (SFT_exec[10] + 0))
+#define INIT_TABLE_POS_OProcess (SFT_exec[11] + 0)
+#define CALL_exec___OProcess___init(recv) ((exec___OProcess___init_t)CALL((recv), (SFT_exec[11] + 1)))
+#define CALL_exec___OProcess___init_(recv) ((exec___OProcess___init__t)CALL((recv), (SFT_exec[11] + 2)))
+#define ID_IOProcess (SFT_exec[12])
+#define COLOR_IOProcess (SFT_exec[13])
+#define INIT_TABLE_POS_IOProcess (SFT_exec[14] + 0)
+#define CALL_exec___IOProcess___init(recv) ((exec___IOProcess___init_t)CALL((recv), (SFT_exec[14] + 1)))
+#define CALL_exec___IOProcess___init_(recv) ((exec___IOProcess___init__t)CALL((recv), (SFT_exec[14] + 2)))
+#define CALL_exec___Sys___system(recv) ((exec___Sys___system_t)CALL((recv), (SFT_exec[15] + 0)))
+#define CALL_exec___NativeString___system(recv) ((exec___NativeString___system_t)CALL((recv), (SFT_exec[16] + 0)))
+#define ID_NativeProcess (SFT_exec[17])
+#define COLOR_NativeProcess (SFT_exec[18])
+#define INIT_TABLE_POS_NativeProcess (SFT_exec[19] + 0)
+#define CALL_exec___NativeProcess___id(recv) ((exec___NativeProcess___id_t)CALL((recv), (SFT_exec[19] + 1)))
+#define CALL_exec___NativeProcess___is_finished(recv) ((exec___NativeProcess___is_finished_t)CALL((recv), (SFT_exec[19] + 2)))
+#define CALL_exec___NativeProcess___status(recv) ((exec___NativeProcess___status_t)CALL((recv), (SFT_exec[19] + 3)))
+#define CALL_exec___NativeProcess___wait(recv) ((exec___NativeProcess___wait_t)CALL((recv), (SFT_exec[19] + 4)))
+#define CALL_exec___NativeProcess___kill(recv) ((exec___NativeProcess___kill_t)CALL((recv), (SFT_exec[19] + 5)))
+#define CALL_exec___NativeProcess___in_fd(recv) ((exec___NativeProcess___in_fd_t)CALL((recv), (SFT_exec[19] + 6)))
+#define CALL_exec___NativeProcess___out_fd(recv) ((exec___NativeProcess___out_fd_t)CALL((recv), (SFT_exec[19] + 7)))
+#define CALL_exec___NativeProcess___err_fd(recv) ((exec___NativeProcess___err_fd_t)CALL((recv), (SFT_exec[19] + 8)))
 typedef val_t (* exec___Process___id_t)(val_t  self);
 val_t exec___Process___id(val_t  self);
 #define LOCATE_exec___Process___id "exec::Process::id"
@@ -93,7 +93,6 @@ typedef void (* exec___Process___execute_t)(val_t  self, val_t  param0, val_t  p
 void exec___Process___execute(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_exec___Process___execute "exec::Process::execute"
 val_t NEW_Process_exec___Process___execute(val_t p0, val_t p1, val_t p2);
-#define ATTR_exec___Process____data(recv) ATTR(recv, COLOR_exec___Process____data)
 typedef val_t (* exec___Process___basic_exec_execute_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
 val_t exec___Process___basic_exec_execute(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
 #define LOCATE_exec___Process___basic_exec_execute "exec::Process::basic_exec_execute"
@@ -106,7 +105,6 @@ val_t exec___IProcess___read_char(val_t  self);
 typedef val_t (* exec___IProcess___eof_t)(val_t  self);
 val_t exec___IProcess___eof(val_t  self);
 #define LOCATE_exec___IProcess___eof "exec::IProcess::(stream::IStream::eof)"
-#define ATTR_exec___IProcess____in(recv) ATTR(recv, COLOR_exec___IProcess____in)
 typedef void (* exec___IProcess___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
 void exec___IProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_exec___IProcess___init "exec::IProcess::init"
@@ -124,7 +122,6 @@ void exec___OProcess___write(val_t  self, val_t  param0);
 typedef val_t (* exec___OProcess___is_writable_t)(val_t  self);
 val_t exec___OProcess___is_writable(val_t  self);
 #define LOCATE_exec___OProcess___is_writable "exec::OProcess::(stream::OStream::is_writable)"
-#define ATTR_exec___OProcess____out(recv) ATTR(recv, COLOR_exec___OProcess____out)
 typedef void (* exec___OProcess___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
 void exec___OProcess___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_exec___OProcess___init "exec::OProcess::init"
index e4a00b4..7eb078b 100644 (file)
@@ -11,9 +11,9 @@ void file___Object___printn(val_t  self, val_t  param0) {
   if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___Object___printn, LOCATE_file, 26); nit_exit(1); } /*cast Array[Object]*/;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((file___Object___stdout_t)CALL(variable[3],COLOR_file___Object___stdout))(variable[3]) /*Object::stdout*/;
-  variable[4] = ((string___Collection___to_s_t)CALL( variable[1] /*objects*/,COLOR_string___Object___to_s))( variable[1] /*objects*/) /*Collection::to_s*/;
-  ((file___OFStream___write_t)CALL(variable[3],COLOR_stream___OStream___write))(variable[3], variable[4]) /*OFStream::write*/;
+  variable[3] = CALL_file___Object___stdout(variable[3])(variable[3]) /*Object::stdout*/;
+  variable[4] = CALL_string___Object___to_s( variable[1] /*objects*/)( variable[1] /*objects*/) /*Collection::to_s*/;
+  CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
   return_label0: while(false);
   tracehead = trace.prev;
   return;
@@ -26,17 +26,17 @@ void file___Object___print(val_t  self, val_t  param0) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*object*/ ==  NIT_NULL /*null*/) || (( variable[1] /*object*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*object*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*object*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*object*/,COLOR_kernel___Object_____eqeq))( variable[1] /*object*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*object*/ ==  NIT_NULL /*null*/) || (( variable[1] /*object*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*object*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*object*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*object*/)( variable[1] /*object*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((file___Object___stdout_t)CALL(variable[3],COLOR_file___Object___stdout))(variable[3]) /*Object::stdout*/;
-    variable[4] = ((string___Object___to_s_t)CALL( variable[1] /*object*/,COLOR_string___Object___to_s))( variable[1] /*object*/) /*Object::to_s*/;
-    ((file___OFStream___write_t)CALL(variable[3],COLOR_stream___OStream___write))(variable[3], variable[4]) /*OFStream::write*/;
+    variable[3] = CALL_file___Object___stdout(variable[3])(variable[3]) /*Object::stdout*/;
+    variable[4] = CALL_string___Object___to_s( variable[1] /*object*/)( variable[1] /*object*/) /*Object::to_s*/;
+    CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
   }
   variable[3] = variable[0];
-  variable[3] = ((file___Object___stdout_t)CALL(variable[3],COLOR_file___Object___stdout))(variable[3]) /*Object::stdout*/;
+  variable[3] = CALL_file___Object___stdout(variable[3])(variable[3]) /*Object::stdout*/;
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
-  ((file___OFStream___write_t)CALL(variable[3],COLOR_stream___OStream___write))(variable[3], variable[4]) /*OFStream::write*/;
+  CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
   return_label1: while(false);
   tracehead = trace.prev;
   return;
@@ -49,8 +49,8 @@ val_t file___Object___getc(val_t  self) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((file___Object___stdin_t)CALL(variable[2],COLOR_file___Object___stdin))(variable[2]) /*Object::stdin*/;
-  variable[2] = ((stream___BufferedIStream___read_char_t)CALL(variable[2],COLOR_stream___IStream___read_char))(variable[2]) /*BufferedIStream::read_char*/;
+  variable[2] = CALL_file___Object___stdin(variable[2])(variable[2]) /*Object::stdin*/;
+  variable[2] = CALL_stream___IStream___read_char(variable[2])(variable[2]) /*BufferedIStream::read_char*/;
   variable[2] = TAG_Char(UNTAG_Int(variable[2]));
   variable[1] = variable[2];
   goto return_label2;
@@ -66,8 +66,8 @@ val_t file___Object___gets(val_t  self) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((file___Object___stdin_t)CALL(variable[2],COLOR_file___Object___stdin))(variable[2]) /*Object::stdin*/;
-  variable[2] = ((stream___IStream___read_line_t)CALL(variable[2],COLOR_stream___IStream___read_line))(variable[2]) /*IStream::read_line*/;
+  variable[2] = CALL_file___Object___stdin(variable[2])(variable[2]) /*Object::stdin*/;
+  variable[2] = CALL_stream___IStream___read_line(variable[2])(variable[2]) /*IStream::read_line*/;
   variable[1] = variable[2];
   goto return_label3;
   return_label3: while(false);
@@ -152,7 +152,7 @@ val_t file___FStream___file_stat(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_file___FStream____file(variable[2]) /*FStream::_file*/;
-  variable[2] = ((file___NativeFile___file_stat_t)CALL(variable[2],COLOR_file___NativeFile___file_stat))(variable[2]) /*NativeFile::file_stat*/;
+  variable[2] = CALL_file___NativeFile___file_stat(variable[2])(variable[2]) /*NativeFile::file_stat*/;
   variable[1] = variable[2];
   goto return_label10;
   return_label10: while(false);
@@ -168,7 +168,7 @@ void file___IFStream___close(val_t  self) {
   variable[0] =  self;
   variable[3] = variable[0];
   variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
-  variable[3] = ((file___NativeFile___io_close_t)CALL(variable[3],COLOR_file___NativeFile___io_close))(variable[3]) /*NativeFile::io_close*/;
+  variable[3] = CALL_file___NativeFile___io_close(variable[3])(variable[3]) /*NativeFile::io_close*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   ATTR_file___IFStream____end_reached(variable[3]) /*IFStream::_end_reached*/ =  TAG_Bool(true);
@@ -191,7 +191,7 @@ void file___IFStream___fill_buffer(val_t  self) {
   variable[5] = variable[0];
   variable[5] = ATTR_stream___BufferedIStream____buffer(variable[5]) /*BufferedIStream::_buffer*/;
   variable[5] = ATTR_string___String____capacity(variable[5]) /*String::_capacity*/;
-  variable[3] = ((file___NativeFile___io_read_t)CALL(variable[3],COLOR_file___NativeFile___io_read))(variable[3], variable[4], variable[5]) /*NativeFile::io_read*/;
+  variable[3] = CALL_file___NativeFile___io_read(variable[3])(variable[3], variable[4], variable[5]) /*NativeFile::io_read*/;
   variable[2] = variable[3];
   variable[3] = TAG_Bool(UNTAG_Int( variable[2] /*nb*/)<=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[3])) { /*if*/
@@ -225,17 +225,17 @@ void file___IFStream___reopen(val_t  self) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((stream___BufferedIStream___eof_t)CALL(variable[2],COLOR_stream___IStream___eof))(variable[2]) /*BufferedIStream::eof*/;
+  variable[2] = CALL_stream___IStream___eof(variable[2])(variable[2]) /*BufferedIStream::eof*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { /*if*/
     variable[2] = variable[0];
-    ((file___IFStream___close_t)CALL(variable[2],COLOR_stream___IOS___close))(variable[2]) /*IFStream::close*/;
+    CALL_stream___IOS___close(variable[2])(variable[2]) /*IFStream::close*/;
   }
   variable[2] = variable[0];
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_file___FStream____path(variable[4]) /*FStream::_path*/;
-  variable[4] = ((string___String___to_cstring_t)CALL(variable[4],COLOR_string___String___to_cstring))(variable[4]) /*String::to_cstring*/;
-  variable[3] = ((file___NativeFileCapable___io_open_read_t)CALL(variable[3],COLOR_file___NativeFileCapable___io_open_read))(variable[3], variable[4]) /*NativeFileCapable::io_open_read*/;
+  variable[4] = CALL_string___String___to_cstring(variable[4])(variable[4]) /*String::to_cstring*/;
+  variable[3] = CALL_file___NativeFileCapable___io_open_read(variable[3])(variable[3], variable[4]) /*NativeFileCapable::io_open_read*/;
   ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
   variable[2] = variable[0];
   ATTR_file___IFStream____end_reached(variable[2]) /*IFStream::_end_reached*/ =  TAG_Bool(false);
@@ -243,7 +243,7 @@ void file___IFStream___reopen(val_t  self) {
   ATTR_stream___BufferedIStream____buffer_pos(variable[2]) /*BufferedIStream::_buffer_pos*/ =  TAG_Int(0);
   variable[2] = variable[0];
   variable[2] = ATTR_stream___BufferedIStream____buffer(variable[2]) /*BufferedIStream::_buffer*/;
-  ((array___AbstractArray___clear_t)CALL(variable[2],COLOR_abstract_collection___RemovableCollection___clear))(variable[2]) /*AbstractArray::clear*/;
+  CALL_abstract_collection___RemovableCollection___clear(variable[2])(variable[2]) /*AbstractArray::clear*/;
   return_label13: while(false);
   tracehead = trace.prev;
   return;
@@ -260,17 +260,17 @@ void file___IFStream___open(val_t  self, val_t  param0, int* init_table) {
   variable[3] = variable[0];
   ATTR_file___FStream____path(variable[3]) /*FStream::_path*/ =  variable[1] /*path*/;
   variable[3] = variable[0];
-  ((stream___BufferedIStream___prepare_buffer_t)CALL(variable[3],COLOR_stream___BufferedIStream___prepare_buffer))(variable[3],  TAG_Int(10)) /*BufferedIStream::prepare_buffer*/;
+  CALL_stream___BufferedIStream___prepare_buffer(variable[3])(variable[3],  TAG_Int(10)) /*BufferedIStream::prepare_buffer*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_file___FStream____path(variable[5]) /*FStream::_path*/;
-  variable[5] = ((string___String___to_cstring_t)CALL(variable[5],COLOR_string___String___to_cstring))(variable[5]) /*String::to_cstring*/;
-  variable[4] = ((file___NativeFileCapable___io_open_read_t)CALL(variable[4],COLOR_file___NativeFileCapable___io_open_read))(variable[4], variable[5]) /*NativeFileCapable::io_open_read*/;
+  variable[5] = CALL_string___String___to_cstring(variable[5])(variable[5]) /*String::to_cstring*/;
+  variable[4] = CALL_file___NativeFileCapable___io_open_read(variable[4])(variable[4], variable[5]) /*NativeFileCapable::io_open_read*/;
   ATTR_file___FStream____file(variable[3]) /*FStream::_file*/ = variable[4];
   variable[3] = variable[0];
   variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", " 'cant_open_file' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___IFStream___open, LOCATE_file, 110); nit_exit(1);}
   return_label14: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IFStream].i] = 1;
@@ -312,7 +312,7 @@ void file___OFStream___close(val_t  self) {
   variable[0] =  self;
   variable[3] = variable[0];
   variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
-  variable[3] = ((file___NativeFile___io_close_t)CALL(variable[3],COLOR_file___NativeFile___io_close))(variable[3]) /*NativeFile::io_close*/;
+  variable[3] = CALL_file___NativeFile___io_close(variable[3])(variable[3]) /*NativeFile::io_close*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   ATTR_file___OFStream____writable(variable[3]) /*OFStream::_writable*/ =  TAG_Bool(false);
@@ -332,9 +332,9 @@ void file___OFStream___write(val_t  self, val_t  param0) {
   variable[3] = ATTR_file___OFStream____writable(variable[3]) /*OFStream::_writable*/;
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___write, LOCATE_file, 125); nit_exit(1);}
   variable[3] = variable[0];
-  variable[4] = ((string___String___to_cstring_t)CALL( variable[1] /*s*/,COLOR_string___String___to_cstring))( variable[1] /*s*/) /*String::to_cstring*/;
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
-  ((file___OFStream___write_native_t)CALL(variable[3],COLOR_file___OFStream___write_native))(variable[3], variable[4], variable[5]) /*OFStream::write_native*/;
+  variable[4] = CALL_string___String___to_cstring( variable[1] /*s*/)( variable[1] /*s*/) /*String::to_cstring*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
+  CALL_file___OFStream___write_native(variable[3])(variable[3], variable[4], variable[5]) /*OFStream::write_native*/;
   return_label18: while(false);
   tracehead = trace.prev;
   return;
@@ -368,21 +368,21 @@ void file___OFStream___write_native(val_t  self, val_t  param0, val_t  param1) {
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___write_native, LOCATE_file, 143); nit_exit(1);}
   variable[5] = variable[0];
   variable[5] = ATTR_file___FStream____file(variable[5]) /*FStream::_file*/;
-  variable[5] = ((file___NativeFile___io_write_t)CALL(variable[5],COLOR_file___NativeFile___io_write))(variable[5],  variable[1] /*native*/,  variable[2] /*len*/) /*NativeFile::io_write*/;
+  variable[5] = CALL_file___NativeFile___io_write(variable[5])(variable[5],  variable[1] /*native*/,  variable[2] /*len*/) /*NativeFile::io_write*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(( variable[4] /*err*/)!=( variable[2] /*len*/));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Object]*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Problem in writing : "), TAG_Int(21)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[7]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[4] /*err*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[4] /*err*/) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[8]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[2] /*len*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[2] /*len*/) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[9]) /*AbstractArray::add*/;
-    ((file___Object___printn_t)CALL(variable[5],COLOR_file___Object___printn))(variable[5], variable[6]) /*Object::printn*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
+    CALL_file___Object___printn(variable[5])(variable[5], variable[6]) /*Object::printn*/;
   }
   return_label20: while(false);
   tracehead = trace.prev;
@@ -399,12 +399,12 @@ void file___OFStream___open(val_t  self, val_t  param0, int* init_table) {
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OFStream].i]) return;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[5] = ((string___String___to_cstring_t)CALL( variable[1] /*path*/,COLOR_string___String___to_cstring))( variable[1] /*path*/) /*String::to_cstring*/;
-  variable[4] = ((file___NativeFileCapable___io_open_write_t)CALL(variable[4],COLOR_file___NativeFileCapable___io_open_write))(variable[4], variable[5]) /*NativeFileCapable::io_open_write*/;
+  variable[5] = CALL_string___String___to_cstring( variable[1] /*path*/)( variable[1] /*path*/) /*String::to_cstring*/;
+  variable[4] = CALL_file___NativeFileCapable___io_open_write(variable[4])(variable[4], variable[5]) /*NativeFileCapable::io_open_write*/;
   ATTR_file___FStream____file(variable[3]) /*FStream::_file*/ = variable[4];
   variable[3] = variable[0];
   variable[3] = ATTR_file___FStream____file(variable[3]) /*FStream::_file*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", " 'cant_open_file' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_file___OFStream___open, LOCATE_file, 155); nit_exit(1);}
   variable[3] = variable[0];
   ATTR_file___FStream____path(variable[3]) /*FStream::_path*/ =  variable[1] /*path*/;
@@ -449,16 +449,16 @@ void file___Stdin___init(val_t  self, int* init_table) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stdin].i]) return;
-  ((file___IFStream___init_t)CALL(variable[0],COLOR_file___IFStream___init))(variable[0], init_table /*YYY*/) /*IFStream::init*/;
+  CALL_file___IFStream___init(variable[0])(variable[0], init_table /*YYY*/) /*IFStream::init*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((file___NativeFileCapable___native_stdin_t)CALL(variable[3],COLOR_file___NativeFileCapable___native_stdin))(variable[3]) /*NativeFileCapable::native_stdin*/;
+  variable[3] = CALL_file___NativeFileCapable___native_stdin(variable[3])(variable[3]) /*NativeFileCapable::native_stdin*/;
   ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
   variable[2] = variable[0];
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("/dev/stdin"), TAG_Int(10)); /*new String*/
   ATTR_file___FStream____path(variable[2]) /*FStream::_path*/ = variable[3];
   variable[2] = variable[0];
-  ((stream___BufferedIStream___prepare_buffer_t)CALL(variable[2],COLOR_stream___BufferedIStream___prepare_buffer))(variable[2],  TAG_Int(1)) /*BufferedIStream::prepare_buffer*/;
+  CALL_stream___BufferedIStream___prepare_buffer(variable[2])(variable[2],  TAG_Int(1)) /*BufferedIStream::prepare_buffer*/;
   return_label24: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stdin].i] = 1;
   tracehead = trace.prev;
@@ -472,10 +472,10 @@ void file___Stdout___init(val_t  self, int* init_table) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stdout].i]) return;
-  ((file___OFStream___init_t)CALL(variable[0],COLOR_file___OFStream___init))(variable[0], init_table /*YYY*/) /*OFStream::init*/;
+  CALL_file___OFStream___init(variable[0])(variable[0], init_table /*YYY*/) /*OFStream::init*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((file___NativeFileCapable___native_stdout_t)CALL(variable[3],COLOR_file___NativeFileCapable___native_stdout))(variable[3]) /*NativeFileCapable::native_stdout*/;
+  variable[3] = CALL_file___NativeFileCapable___native_stdout(variable[3])(variable[3]) /*NativeFileCapable::native_stdout*/;
   ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
   variable[2] = variable[0];
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("/dev/stdout"), TAG_Int(11)); /*new String*/
@@ -495,10 +495,10 @@ void file___Stderr___init(val_t  self, int* init_table) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Stderr].i]) return;
-  ((file___OFStream___init_t)CALL(variable[0],COLOR_file___OFStream___init))(variable[0], init_table /*YYY*/) /*OFStream::init*/;
+  CALL_file___OFStream___init(variable[0])(variable[0], init_table /*YYY*/) /*OFStream::init*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((file___NativeFileCapable___native_stderr_t)CALL(variable[3],COLOR_file___NativeFileCapable___native_stderr))(variable[3]) /*NativeFileCapable::native_stderr*/;
+  variable[3] = CALL_file___NativeFileCapable___native_stderr(variable[3])(variable[3]) /*NativeFileCapable::native_stderr*/;
   ATTR_file___FStream____file(variable[2]) /*FStream::_file*/ = variable[3];
   variable[2] = variable[0];
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("/dev/stderr"), TAG_Int(11)); /*new String*/
@@ -518,8 +518,8 @@ val_t file___String___file_exists(val_t  self) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___String___to_cstring_t)CALL(variable[2],COLOR_string___String___to_cstring))(variable[2]) /*String::to_cstring*/;
-  variable[2] = ((file___NativeString___file_exists_t)CALL(variable[2],COLOR_file___NativeString___file_exists))(variable[2]) /*NativeString::file_exists*/;
+  variable[2] = CALL_string___String___to_cstring(variable[2])(variable[2]) /*String::to_cstring*/;
+  variable[2] = CALL_file___NativeString___file_exists(variable[2])(variable[2]) /*NativeString::file_exists*/;
   variable[1] = variable[2];
   goto return_label27;
   return_label27: while(false);
@@ -534,8 +534,8 @@ val_t file___String___file_stat(val_t  self) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___String___to_cstring_t)CALL(variable[2],COLOR_string___String___to_cstring))(variable[2]) /*String::to_cstring*/;
-  variable[2] = ((file___NativeString___file_stat_t)CALL(variable[2],COLOR_file___NativeString___file_stat))(variable[2]) /*NativeString::file_stat*/;
+  variable[2] = CALL_string___String___to_cstring(variable[2])(variable[2]) /*String::to_cstring*/;
+  variable[2] = CALL_file___NativeString___file_stat(variable[2])(variable[2]) /*NativeString::file_stat*/;
   variable[1] = variable[2];
   goto return_label28;
   return_label28: while(false);
@@ -550,8 +550,8 @@ val_t file___String___file_delete(val_t  self) {
   trace.file = LOCATE_file;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___String___to_cstring_t)CALL(variable[2],COLOR_string___String___to_cstring))(variable[2]) /*String::to_cstring*/;
-  variable[2] = ((file___NativeString___file_delete_t)CALL(variable[2],COLOR_file___NativeString___file_delete))(variable[2]) /*NativeString::file_delete*/;
+  variable[2] = CALL_string___String___to_cstring(variable[2])(variable[2]) /*String::to_cstring*/;
+  variable[2] = CALL_file___NativeString___file_delete(variable[2])(variable[2]) /*NativeString::file_delete*/;
   variable[1] = variable[2];
   goto return_label29;
   return_label29: while(false);
@@ -567,14 +567,14 @@ val_t file___String___strip_extension(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((string___String___has_suffix_t)CALL(variable[3],COLOR_string___String___has_suffix))(variable[3],  variable[1] /*ext*/) /*String::has_suffix*/;
+  variable[3] = CALL_string___String___has_suffix(variable[3])(variable[3],  variable[1] /*ext*/) /*String::has_suffix*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = variable[0];
-    variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
-    variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*ext*/,COLOR_abstract_collection___Collection___length))( variable[1] /*ext*/) /*AbstractArray::length*/;
+    variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*ext*/)( variable[1] /*ext*/) /*AbstractArray::length*/;
     variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int(variable[5]));
-    variable[3] = ((string___String___substring_t)CALL(variable[3],COLOR_string___String___substring))(variable[3],  TAG_Int(0), variable[4]) /*String::substring*/;
+    variable[3] = CALL_string___String___substring(variable[3])(variable[3],  TAG_Int(0), variable[4]) /*String::substring*/;
     variable[2] = variable[3];
     goto return_label30;
   }
@@ -597,7 +597,7 @@ val_t file___String___basename(val_t  self, val_t  param0) {
   variable[5] = variable[0];
   variable[5] = ATTR_array___AbstractArray____length(variable[5]) /*AbstractArray::_length*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int( TAG_Int(1)));
-  variable[4] = ((array___AbstractArray___last_index_of_from_t)CALL(variable[4],COLOR_array___AbstractArray___last_index_of_from))(variable[4],  TAG_Char('/'), variable[5]) /*AbstractArray::last_index_of_from*/;
+  variable[4] = CALL_array___AbstractArray___last_index_of_from(variable[4])(variable[4],  TAG_Char('/'), variable[5]) /*AbstractArray::last_index_of_from*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
   variable[4] = variable[5];
@@ -605,10 +605,10 @@ val_t file___String___basename(val_t  self, val_t  param0) {
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[6] = TAG_Int(UNTAG_Int( variable[3] /*pos*/)+UNTAG_Int( TAG_Int(1)));
-    variable[5] = ((string___String___substring_from_t)CALL(variable[5],COLOR_string___String___substring_from))(variable[5], variable[6]) /*String::substring_from*/;
+    variable[5] = CALL_string___String___substring_from(variable[5])(variable[5], variable[6]) /*String::substring_from*/;
     variable[4] = variable[5] /*n=*/;
   }
-  variable[5] = ((file___String___strip_extension_t)CALL( variable[4] /*n*/,COLOR_file___String___strip_extension))( variable[4] /*n*/,  variable[1] /*ext*/) /*String::strip_extension*/;
+  variable[5] = CALL_file___String___strip_extension( variable[4] /*n*/)( variable[4] /*n*/,  variable[1] /*ext*/) /*String::strip_extension*/;
   variable[2] = variable[5];
   goto return_label31;
   return_label31: while(false);
@@ -626,12 +626,12 @@ val_t file___String___dirname(val_t  self) {
   variable[4] = variable[0];
   variable[4] = ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
-  variable[3] = ((array___AbstractArray___last_index_of_from_t)CALL(variable[3],COLOR_array___AbstractArray___last_index_of_from))(variable[3],  TAG_Char('/'), variable[4]) /*AbstractArray::last_index_of_from*/;
+  variable[3] = CALL_array___AbstractArray___last_index_of_from(variable[3])(variable[3],  TAG_Char('/'), variable[4]) /*AbstractArray::last_index_of_from*/;
   variable[2] = variable[3];
   variable[3] = TAG_Bool(UNTAG_Int( variable[2] /*pos*/)>=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((string___String___substring_t)CALL(variable[3],COLOR_string___String___substring))(variable[3],  TAG_Int(0),  variable[2] /*pos*/) /*String::substring*/;
+    variable[3] = CALL_string___String___substring(variable[3])(variable[3],  TAG_Int(0),  variable[2] /*pos*/) /*String::substring*/;
     variable[1] = variable[3];
     goto return_label32;
   } else { /*if*/
@@ -655,12 +655,12 @@ val_t file___String___file_path(val_t  self) {
   variable[2] = variable[3];
   variable[4] = variable[0];
   variable[5] = TAG_Int(UNTAG_Int( variable[2] /*l*/)-UNTAG_Int( TAG_Int(1)));
-  variable[4] = ((array___AbstractArray___last_index_of_from_t)CALL(variable[4],COLOR_array___AbstractArray___last_index_of_from))(variable[4],  TAG_Char('/'), variable[5]) /*AbstractArray::last_index_of_from*/;
+  variable[4] = CALL_array___AbstractArray___last_index_of_from(variable[4])(variable[4],  TAG_Char('/'), variable[5]) /*AbstractArray::last_index_of_from*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*pos*/)>=UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((string___String___substring_t)CALL(variable[4],COLOR_string___String___substring))(variable[4],  TAG_Int(0),  variable[3] /*pos*/) /*String::substring*/;
+    variable[4] = CALL_string___String___substring(variable[4])(variable[4],  TAG_Int(0),  variable[3] /*pos*/) /*String::substring*/;
     variable[1] = variable[4];
     goto return_label33;
   }
@@ -680,11 +680,11 @@ void file___String___mkdir(val_t  self) {
   variable[0] =  self;
   variable[3] = variable[0];
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
-  variable[3] = ((string_search___String___split_with_t)CALL(variable[3],COLOR_string_search___String___split_with))(variable[3], variable[4]) /*String::split_with*/;
+  variable[3] = CALL_string_search___String___split_with(variable[3])(variable[3], variable[4]) /*String::split_with*/;
   variable[2] = variable[3];
   variable[4] = NEW_String_string___String___init(); /*new String*/
   variable[3] = variable[4];
-  variable[4] = ((array___AbstractArray___is_empty_t)CALL( variable[2] /*dirs*/,COLOR_abstract_collection___Collection___is_empty))( variable[2] /*dirs*/) /*AbstractArray::is_empty*/;
+  variable[4] = CALL_abstract_collection___Collection___is_empty( variable[2] /*dirs*/)( variable[2] /*dirs*/) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     goto return_label34;
   }
@@ -706,26 +706,26 @@ void file___String___mkdir(val_t  self) {
   goto return_label35;
   return_label35: while(false);
   variable[4] = variable[6];
-  variable[4] = ((array___AbstractArray___is_empty_t)CALL(variable[4],COLOR_abstract_collection___Collection___is_empty))(variable[4]) /*AbstractArray::is_empty*/;
+  variable[4] = CALL_abstract_collection___Collection___is_empty(variable[4])(variable[4]) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
-    ((string___String___add_t)CALL( variable[3] /*path*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*path*/,  TAG_Char('/')) /*String::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*path*/)( variable[3] /*path*/,  TAG_Char('/')) /*String::add*/;
   }
-  variable[4] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*dirs*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*dirs*/) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[2] /*dirs*/)( variable[2] /*dirs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*d*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*d*/) /*AbstractArray::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[6] /*d*/)( variable[6] /*d*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
       goto continue_36;
     }
-    ((string___String___append_t)CALL( variable[3] /*path*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*path*/,  variable[6] /*d*/) /*String::append*/;
-    ((string___String___add_t)CALL( variable[3] /*path*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*path*/,  TAG_Char('/')) /*String::add*/;
-    variable[7] = ((string___String___to_cstring_t)CALL( variable[3] /*path*/,COLOR_string___String___to_cstring))( variable[3] /*path*/) /*String::to_cstring*/;
-    ((file___NativeString___file_mkdir_t)CALL(variable[7],COLOR_file___NativeString___file_mkdir))(variable[7]) /*NativeString::file_mkdir*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*path*/)( variable[3] /*path*/,  variable[6] /*d*/) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*path*/)( variable[3] /*path*/,  TAG_Char('/')) /*String::add*/;
+    variable[7] = CALL_string___String___to_cstring( variable[3] /*path*/)( variable[3] /*path*/) /*String::to_cstring*/;
+    CALL_file___NativeString___file_mkdir(variable[7])(variable[7]) /*NativeString::file_mkdir*/;
     continue_36: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_36: while(0);
   return_label34: while(false);
index 4721606..a70e02f 100644 (file)
@@ -31,83 +31,83 @@ val_t BOX_NativeFile(void * val);
 extern const classtable_elt_t VFT_NativeFileCapable[];
 extern const char *LOCATE_file;
 extern const int SFT_file[];
-#define COLOR_file___Object___printn SFT_file[0]
-#define COLOR_file___Object___print SFT_file[1]
-#define COLOR_file___Object___getc SFT_file[2]
-#define COLOR_file___Object___gets SFT_file[3]
-#define COLOR_file___Object___stdin SFT_file[4]
-#define COLOR_file___Object___stdout SFT_file[5]
-#define COLOR_file___Object___stderr SFT_file[6]
-#define ID_FStream SFT_file[7]
-#define COLOR_FStream SFT_file[8]
-#define COLOR_file___FStream____path SFT_file[9]
-#define COLOR_file___FStream____file SFT_file[10]
-#define INIT_TABLE_POS_FStream SFT_file[11]
-#define COLOR_file___FStream___path SFT_file[12]
-#define COLOR_file___FStream___file_stat SFT_file[13]
-#define ID_IFStream SFT_file[14]
-#define COLOR_IFStream SFT_file[15]
-#define COLOR_file___IFStream____end_reached SFT_file[16]
-#define INIT_TABLE_POS_IFStream SFT_file[17]
-#define COLOR_file___IFStream___reopen SFT_file[18]
-#define COLOR_file___IFStream___open SFT_file[19]
-#define COLOR_file___IFStream___init SFT_file[20]
-#define COLOR_file___IFStream___without_file SFT_file[21]
-#define ID_OFStream SFT_file[22]
-#define COLOR_OFStream SFT_file[23]
-#define COLOR_file___OFStream____writable SFT_file[24]
-#define INIT_TABLE_POS_OFStream SFT_file[25]
-#define COLOR_file___OFStream___write_native SFT_file[26]
-#define COLOR_file___OFStream___open SFT_file[27]
-#define COLOR_file___OFStream___init SFT_file[28]
-#define COLOR_file___OFStream___without_file SFT_file[29]
-#define ID_Stdin SFT_file[30]
-#define COLOR_Stdin SFT_file[31]
-#define INIT_TABLE_POS_Stdin SFT_file[32]
-#define COLOR_file___Stdin___init SFT_file[33]
-#define ID_Stdout SFT_file[34]
-#define COLOR_Stdout SFT_file[35]
-#define INIT_TABLE_POS_Stdout SFT_file[36]
-#define COLOR_file___Stdout___init SFT_file[37]
-#define ID_Stderr SFT_file[38]
-#define COLOR_Stderr SFT_file[39]
-#define INIT_TABLE_POS_Stderr SFT_file[40]
-#define COLOR_file___Stderr___init SFT_file[41]
-#define COLOR_file___String___file_exists SFT_file[42]
-#define COLOR_file___String___file_stat SFT_file[43]
-#define COLOR_file___String___file_delete SFT_file[44]
-#define COLOR_file___String___strip_extension SFT_file[45]
-#define COLOR_file___String___basename SFT_file[46]
-#define COLOR_file___String___dirname SFT_file[47]
-#define COLOR_file___String___file_path SFT_file[48]
-#define COLOR_file___String___mkdir SFT_file[49]
-#define COLOR_file___NativeString___file_exists SFT_file[50]
-#define COLOR_file___NativeString___file_stat SFT_file[51]
-#define COLOR_file___NativeString___file_mkdir SFT_file[52]
-#define COLOR_file___NativeString___file_delete SFT_file[53]
-#define ID_FileStat SFT_file[54]
-#define COLOR_FileStat SFT_file[55]
-#define INIT_TABLE_POS_FileStat SFT_file[56]
-#define COLOR_file___FileStat___mode SFT_file[57]
-#define COLOR_file___FileStat___atime SFT_file[58]
-#define COLOR_file___FileStat___ctime SFT_file[59]
-#define COLOR_file___FileStat___mtime SFT_file[60]
-#define COLOR_file___FileStat___size SFT_file[61]
-#define ID_NativeFile SFT_file[62]
-#define COLOR_NativeFile SFT_file[63]
-#define INIT_TABLE_POS_NativeFile SFT_file[64]
-#define COLOR_file___NativeFile___io_read SFT_file[65]
-#define COLOR_file___NativeFile___io_write SFT_file[66]
-#define COLOR_file___NativeFile___io_close SFT_file[67]
-#define COLOR_file___NativeFile___file_stat SFT_file[68]
-#define ID_NativeFileCapable SFT_file[69]
-#define COLOR_NativeFileCapable SFT_file[70]
-#define INIT_TABLE_POS_NativeFileCapable SFT_file[71]
-#define COLOR_file___NativeFileCapable___io_open_read SFT_file[72]
-#define COLOR_file___NativeFileCapable___io_open_write SFT_file[73]
-#define COLOR_file___NativeFileCapable___native_stdin SFT_file[74]
-#define COLOR_file___NativeFileCapable___native_stdout SFT_file[75]
-#define COLOR_file___NativeFileCapable___native_stderr SFT_file[76]
+#define CALL_file___Object___printn(recv) ((file___Object___printn_t)CALL((recv), (SFT_file[0] + 0)))
+#define CALL_file___Object___print(recv) ((file___Object___print_t)CALL((recv), (SFT_file[0] + 1)))
+#define CALL_file___Object___getc(recv) ((file___Object___getc_t)CALL((recv), (SFT_file[0] + 2)))
+#define CALL_file___Object___gets(recv) ((file___Object___gets_t)CALL((recv), (SFT_file[0] + 3)))
+#define CALL_file___Object___stdin(recv) ((file___Object___stdin_t)CALL((recv), (SFT_file[0] + 4)))
+#define CALL_file___Object___stdout(recv) ((file___Object___stdout_t)CALL((recv), (SFT_file[0] + 5)))
+#define CALL_file___Object___stderr(recv) ((file___Object___stderr_t)CALL((recv), (SFT_file[0] + 6)))
+#define ID_FStream (SFT_file[1])
+#define COLOR_FStream (SFT_file[2])
+#define ATTR_file___FStream____path(recv) ATTR(recv, (SFT_file[3] + 0))
+#define ATTR_file___FStream____file(recv) ATTR(recv, (SFT_file[3] + 1))
+#define INIT_TABLE_POS_FStream (SFT_file[4] + 0)
+#define CALL_file___FStream___path(recv) ((file___FStream___path_t)CALL((recv), (SFT_file[4] + 1)))
+#define CALL_file___FStream___file_stat(recv) ((file___FStream___file_stat_t)CALL((recv), (SFT_file[4] + 2)))
+#define ID_IFStream (SFT_file[5])
+#define COLOR_IFStream (SFT_file[6])
+#define ATTR_file___IFStream____end_reached(recv) ATTR(recv, (SFT_file[7] + 0))
+#define INIT_TABLE_POS_IFStream (SFT_file[8] + 0)
+#define CALL_file___IFStream___reopen(recv) ((file___IFStream___reopen_t)CALL((recv), (SFT_file[8] + 1)))
+#define CALL_file___IFStream___open(recv) ((file___IFStream___open_t)CALL((recv), (SFT_file[8] + 2)))
+#define CALL_file___IFStream___init(recv) ((file___IFStream___init_t)CALL((recv), (SFT_file[8] + 3)))
+#define CALL_file___IFStream___without_file(recv) ((file___IFStream___without_file_t)CALL((recv), (SFT_file[8] + 4)))
+#define ID_OFStream (SFT_file[9])
+#define COLOR_OFStream (SFT_file[10])
+#define ATTR_file___OFStream____writable(recv) ATTR(recv, (SFT_file[11] + 0))
+#define INIT_TABLE_POS_OFStream (SFT_file[12] + 0)
+#define CALL_file___OFStream___write_native(recv) ((file___OFStream___write_native_t)CALL((recv), (SFT_file[12] + 1)))
+#define CALL_file___OFStream___open(recv) ((file___OFStream___open_t)CALL((recv), (SFT_file[12] + 2)))
+#define CALL_file___OFStream___init(recv) ((file___OFStream___init_t)CALL((recv), (SFT_file[12] + 3)))
+#define CALL_file___OFStream___without_file(recv) ((file___OFStream___without_file_t)CALL((recv), (SFT_file[12] + 4)))
+#define ID_Stdin (SFT_file[13])
+#define COLOR_Stdin (SFT_file[14])
+#define INIT_TABLE_POS_Stdin (SFT_file[15] + 0)
+#define CALL_file___Stdin___init(recv) ((file___Stdin___init_t)CALL((recv), (SFT_file[15] + 1)))
+#define ID_Stdout (SFT_file[16])
+#define COLOR_Stdout (SFT_file[17])
+#define INIT_TABLE_POS_Stdout (SFT_file[18] + 0)
+#define CALL_file___Stdout___init(recv) ((file___Stdout___init_t)CALL((recv), (SFT_file[18] + 1)))
+#define ID_Stderr (SFT_file[19])
+#define COLOR_Stderr (SFT_file[20])
+#define INIT_TABLE_POS_Stderr (SFT_file[21] + 0)
+#define CALL_file___Stderr___init(recv) ((file___Stderr___init_t)CALL((recv), (SFT_file[21] + 1)))
+#define CALL_file___String___file_exists(recv) ((file___String___file_exists_t)CALL((recv), (SFT_file[22] + 0)))
+#define CALL_file___String___file_stat(recv) ((file___String___file_stat_t)CALL((recv), (SFT_file[22] + 1)))
+#define CALL_file___String___file_delete(recv) ((file___String___file_delete_t)CALL((recv), (SFT_file[22] + 2)))
+#define CALL_file___String___strip_extension(recv) ((file___String___strip_extension_t)CALL((recv), (SFT_file[22] + 3)))
+#define CALL_file___String___basename(recv) ((file___String___basename_t)CALL((recv), (SFT_file[22] + 4)))
+#define CALL_file___String___dirname(recv) ((file___String___dirname_t)CALL((recv), (SFT_file[22] + 5)))
+#define CALL_file___String___file_path(recv) ((file___String___file_path_t)CALL((recv), (SFT_file[22] + 6)))
+#define CALL_file___String___mkdir(recv) ((file___String___mkdir_t)CALL((recv), (SFT_file[22] + 7)))
+#define CALL_file___NativeString___file_exists(recv) ((file___NativeString___file_exists_t)CALL((recv), (SFT_file[23] + 0)))
+#define CALL_file___NativeString___file_stat(recv) ((file___NativeString___file_stat_t)CALL((recv), (SFT_file[23] + 1)))
+#define CALL_file___NativeString___file_mkdir(recv) ((file___NativeString___file_mkdir_t)CALL((recv), (SFT_file[23] + 2)))
+#define CALL_file___NativeString___file_delete(recv) ((file___NativeString___file_delete_t)CALL((recv), (SFT_file[23] + 3)))
+#define ID_FileStat (SFT_file[24])
+#define COLOR_FileStat (SFT_file[25])
+#define INIT_TABLE_POS_FileStat (SFT_file[26] + 0)
+#define CALL_file___FileStat___mode(recv) ((file___FileStat___mode_t)CALL((recv), (SFT_file[26] + 1)))
+#define CALL_file___FileStat___atime(recv) ((file___FileStat___atime_t)CALL((recv), (SFT_file[26] + 2)))
+#define CALL_file___FileStat___ctime(recv) ((file___FileStat___ctime_t)CALL((recv), (SFT_file[26] + 3)))
+#define CALL_file___FileStat___mtime(recv) ((file___FileStat___mtime_t)CALL((recv), (SFT_file[26] + 4)))
+#define CALL_file___FileStat___size(recv) ((file___FileStat___size_t)CALL((recv), (SFT_file[26] + 5)))
+#define ID_NativeFile (SFT_file[27])
+#define COLOR_NativeFile (SFT_file[28])
+#define INIT_TABLE_POS_NativeFile (SFT_file[29] + 0)
+#define CALL_file___NativeFile___io_read(recv) ((file___NativeFile___io_read_t)CALL((recv), (SFT_file[29] + 1)))
+#define CALL_file___NativeFile___io_write(recv) ((file___NativeFile___io_write_t)CALL((recv), (SFT_file[29] + 2)))
+#define CALL_file___NativeFile___io_close(recv) ((file___NativeFile___io_close_t)CALL((recv), (SFT_file[29] + 3)))
+#define CALL_file___NativeFile___file_stat(recv) ((file___NativeFile___file_stat_t)CALL((recv), (SFT_file[29] + 4)))
+#define ID_NativeFileCapable (SFT_file[30])
+#define COLOR_NativeFileCapable (SFT_file[31])
+#define INIT_TABLE_POS_NativeFileCapable (SFT_file[32] + 0)
+#define CALL_file___NativeFileCapable___io_open_read(recv) ((file___NativeFileCapable___io_open_read_t)CALL((recv), (SFT_file[32] + 1)))
+#define CALL_file___NativeFileCapable___io_open_write(recv) ((file___NativeFileCapable___io_open_write_t)CALL((recv), (SFT_file[32] + 2)))
+#define CALL_file___NativeFileCapable___native_stdin(recv) ((file___NativeFileCapable___native_stdin_t)CALL((recv), (SFT_file[32] + 3)))
+#define CALL_file___NativeFileCapable___native_stdout(recv) ((file___NativeFileCapable___native_stdout_t)CALL((recv), (SFT_file[32] + 4)))
+#define CALL_file___NativeFileCapable___native_stderr(recv) ((file___NativeFileCapable___native_stderr_t)CALL((recv), (SFT_file[32] + 5)))
 typedef void (* file___Object___printn_t)(val_t  self, val_t  param0);
 void file___Object___printn(val_t  self, val_t  param0);
 #define LOCATE_file___Object___printn "file::Object::printn"
@@ -130,11 +130,9 @@ typedef val_t (* file___Object___stderr_t)(val_t  self);
 val_t file___Object___stderr(val_t  self);
 #define LOCATE_file___Object___stderr "file::Object::stderr"
 val_t NEW_FStream_stream___IOS___init();
-#define ATTR_file___FStream____path(recv) ATTR(recv, COLOR_file___FStream____path)
 typedef val_t (* file___FStream___path_t)(val_t  self);
 val_t file___FStream___path(val_t  self);
 #define LOCATE_file___FStream___path "file::FStream::path"
-#define ATTR_file___FStream____file(recv) ATTR(recv, COLOR_file___FStream____file)
 typedef val_t (* file___FStream___file_stat_t)(val_t  self);
 val_t file___FStream___file_stat(val_t  self);
 #define LOCATE_file___FStream___file_stat "file::FStream::file_stat"
@@ -150,7 +148,6 @@ val_t file___IFStream___end_reached(val_t  self);
 typedef void (* file___IFStream___reopen_t)(val_t  self);
 void file___IFStream___reopen(val_t  self);
 #define LOCATE_file___IFStream___reopen "file::IFStream::reopen"
-#define ATTR_file___IFStream____end_reached(recv) ATTR(recv, COLOR_file___IFStream____end_reached)
 typedef void (* file___IFStream___open_t)(val_t  self, val_t  param0, int* init_table);
 void file___IFStream___open(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_file___IFStream___open "file::IFStream::open"
@@ -172,7 +169,6 @@ void file___OFStream___write(val_t  self, val_t  param0);
 typedef val_t (* file___OFStream___is_writable_t)(val_t  self);
 val_t file___OFStream___is_writable(val_t  self);
 #define LOCATE_file___OFStream___is_writable "file::OFStream::(stream::OStream::is_writable)"
-#define ATTR_file___OFStream____writable(recv) ATTR(recv, COLOR_file___OFStream____writable)
 typedef void (* file___OFStream___write_native_t)(val_t  self, val_t  param0, val_t  param1);
 void file___OFStream___write_native(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_file___OFStream___write_native "file::OFStream::write_native"
index 86f44fb..facc0b7 100644 (file)
@@ -9,26 +9,26 @@ val_t genericity___MMLocalClass___get_type(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_static_type___MMLocalClass____base_type_cache(variable[2]) /*MMLocalClass::_base_type_cache*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[3] = variable[2];
   if (UNTAG_Bool(variable[3])) { /* and */
     variable[3] = variable[0];
-    variable[3] = ((genericity___MMLocalClass___is_generic_t)CALL(variable[3],COLOR_genericity___MMLocalClass___is_generic))(variable[3]) /*MMLocalClass::is_generic*/;
+    variable[3] = CALL_genericity___MMLocalClass___is_generic(variable[3])(variable[3]) /*MMLocalClass::is_generic*/;
   }
   variable[2] = variable[3];
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[3] = variable[0];
     variable[4] = variable[0];
-    variable[4] = ((genericity___MMLocalClass___formals_types_t)CALL(variable[4],COLOR_genericity___MMLocalClass___formals_types))(variable[4]) /*MMLocalClass::formals_types*/;
-    variable[3] = ((genericity___MMLocalClass___get_instantiate_type_t)CALL(variable[3],COLOR_genericity___MMLocalClass___get_instantiate_type))(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
+    variable[4] = CALL_genericity___MMLocalClass___formals_types(variable[4])(variable[4]) /*MMLocalClass::formals_types*/;
+    variable[3] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[3])(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
     ATTR_static_type___MMLocalClass____base_type_cache(variable[2]) /*MMLocalClass::_base_type_cache*/ = variable[3];
     variable[2] = variable[0];
     variable[2] = ATTR_static_type___MMLocalClass____base_type_cache(variable[2]) /*MMLocalClass::_base_type_cache*/;
     variable[1] = variable[2];
     goto return_label0;
   } else { /*if*/
-    variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[0],COLOR_SUPER_genericity___MMLocalClass___get_type))(variable[0]) /*super MMLocalClass::get_type*/;
+    variable[2] = CALL_SUPER_genericity___MMLocalClass___get_type(variable[0])(variable[0]) /*super MMLocalClass::get_type*/;
     variable[1] = variable[2];
     goto return_label0;
   }
@@ -45,7 +45,7 @@ val_t genericity___MMLocalClass___get_formal(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((genericity___MMLocalClass___formals_types_t)CALL(variable[3],COLOR_genericity___MMLocalClass___formals_types))(variable[3]) /*MMLocalClass::formals_types*/;
+  variable[3] = CALL_genericity___MMLocalClass___formals_types(variable[3])(variable[3]) /*MMLocalClass::formals_types*/;
   variable[4] = variable[3];
   variable[5] =  variable[1] /*pos*/;
   variable[7] = TAG_Bool(UNTAG_Int( variable[5] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -78,19 +78,19 @@ void genericity___MMLocalClass___register_formal(val_t  self, val_t  param0) {
   trace.file = LOCATE_genericity;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((genericity___MMTypeFormalParameter___def_class_t)CALL( variable[1] /*f*/,COLOR_genericity___MMTypeFormalParameter___def_class))( variable[1] /*f*/) /*MMTypeFormalParameter::def_class*/;
+  variable[3] = CALL_genericity___MMTypeFormalParameter___def_class( variable[1] /*f*/)( variable[1] /*f*/) /*MMTypeFormalParameter::def_class*/;
   variable[4] = variable[0];
-  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[4]) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMLocalClass___register_formal, LOCATE_genericity, 35); nit_exit(1);}
-  variable[3] = ((genericity___MMTypeFormalParameter___position_t)CALL( variable[1] /*f*/,COLOR_genericity___MMTypeFormalParameter___position))( variable[1] /*f*/) /*MMTypeFormalParameter::position*/;
+  variable[3] = CALL_genericity___MMTypeFormalParameter___position( variable[1] /*f*/)( variable[1] /*f*/) /*MMTypeFormalParameter::position*/;
   variable[4] = variable[0];
   variable[4] = ATTR_genericity___MMLocalClass____formals_types(variable[4]) /*MMLocalClass::_formals_types*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = TAG_Bool((variable[3])==(variable[4]));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMLocalClass___register_formal, LOCATE_genericity, 36); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_genericity___MMLocalClass____formals_types(variable[3]) /*MMLocalClass::_formals_types*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*f*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*f*/) /*AbstractArray::add*/;
   return_label3: while(false);
   tracehead = trace.prev;
   return;
@@ -105,19 +105,19 @@ val_t genericity___MMLocalClass___get_instantiate_type(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_genericity___MMLocalClass____types(variable[3]) /*MMLocalClass::_types*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((genericity___MMTypeGeneric___params_equals_t)CALL( variable[5] /*g*/,COLOR_genericity___MMTypeGeneric___params_equals))( variable[5] /*g*/,  variable[1] /*t*/) /*MMTypeGeneric::params_equals*/;
+    variable[6] = CALL_genericity___MMTypeGeneric___params_equals( variable[5] /*g*/)( variable[5] /*g*/,  variable[1] /*t*/) /*MMTypeGeneric::params_equals*/;
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[2] =  variable[5] /*g*/;
       goto return_label4;
     }
     continue_5: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_5: while(0);
   variable[4] = variable[0];
@@ -126,7 +126,7 @@ val_t genericity___MMLocalClass___get_instantiate_type(val_t  self, val_t  param
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_genericity___MMLocalClass____types(variable[4]) /*MMLocalClass::_types*/;
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[3] /*g*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[3] /*g*/) /*AbstractArray::add*/;
   variable[2] =  variable[3] /*g*/;
   goto return_label4;
   return_label4: while(false);
@@ -142,51 +142,51 @@ val_t genericity___MMLocalClass___formals_types(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_genericity___MMLocalClass____formals_types(variable[2]) /*MMLocalClass::_formals_types*/;
-  variable[2] = ((array___AbstractArray___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*AbstractArray::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_MMConcreteClass, ID_MMConcreteClass)) /*cast MMConcreteClass*/;
     if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMLocalClass___formals_types, LOCATE_genericity, 62); nit_exit(1);}
     variable[2] = variable[0];
-    variable[2] = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___arity))(variable[2]) /*MMLocalClass::arity*/;
+    variable[2] = CALL_abstractmetamodel___MMLocalClass___arity(variable[2])(variable[2]) /*MMLocalClass::arity*/;
     variable[3] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[2]); /*new Range[Int]*/
     variable[2] = variable[3];
-    variable[2] = ((range___Range___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*Range::iterator*/;
+    variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[3] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*Iterator::is_ok*/;
+      variable[3] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[3])) break; /*for*/
-      variable[3] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
+      variable[3] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
       variable[4] = variable[3];
       variable[6] = variable[0];
-      variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___global))(variable[6]) /*MMLocalClass::global*/;
-      variable[6] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[6]) /*MMGlobalClass::intro*/;
-      variable[6] = ((genericity___MMLocalClass___get_formal_t)CALL(variable[6],COLOR_genericity___MMLocalClass___get_formal))(variable[6],  variable[4] /*i*/) /*MMLocalClass::get_formal*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[6])(variable[6]) /*MMLocalClass::global*/;
+      variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[6])(variable[6]) /*MMGlobalClass::intro*/;
+      variable[6] = CALL_genericity___MMLocalClass___get_formal(variable[6])(variable[6],  variable[4] /*i*/) /*MMLocalClass::get_formal*/;
       variable[5] = variable[6];
-      variable[7] = ((type_formal___MMTypeFormal___name_t)CALL( variable[5] /*oft*/,COLOR_type_formal___MMTypeFormal___name))( variable[5] /*oft*/) /*MMTypeFormal::name*/;
+      variable[7] = CALL_type_formal___MMTypeFormal___name( variable[5] /*oft*/)( variable[5] /*oft*/) /*MMTypeFormal::name*/;
       variable[8] = variable[0];
       variable[9] = NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(variable[7],  variable[4] /*i*/, variable[8]); /*new MMTypeFormalParameter*/
       variable[7] = variable[9];
       variable[6] = variable[7];
       variable[7] = variable[0];
-      ((genericity___MMLocalClass___register_formal_t)CALL(variable[7],COLOR_genericity___MMLocalClass___register_formal))(variable[7],  variable[6] /*ft*/) /*MMLocalClass::register_formal*/;
+      CALL_genericity___MMLocalClass___register_formal(variable[7])(variable[7],  variable[6] /*ft*/) /*MMLocalClass::register_formal*/;
       continue_7: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*Iterator::next*/;
     }
     break_7: while(0);
     variable[2] = variable[0];
-    variable[2] = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___arity))(variable[2]) /*MMLocalClass::arity*/;
+    variable[2] = CALL_abstractmetamodel___MMLocalClass___arity(variable[2])(variable[2]) /*MMLocalClass::arity*/;
     variable[3] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[2]); /*new Range[Int]*/
     variable[2] = variable[3];
-    variable[2] = ((range___Range___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*Range::iterator*/;
+    variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[3] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*Iterator::is_ok*/;
+      variable[3] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[3])) break; /*for*/
-      variable[3] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
+      variable[3] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
       variable[4] = variable[3];
       variable[6] = variable[0];
-      variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___global))(variable[6]) /*MMLocalClass::global*/;
-      variable[6] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[6]) /*MMGlobalClass::intro*/;
-      variable[6] = ((genericity___MMLocalClass___get_formal_t)CALL(variable[6],COLOR_genericity___MMLocalClass___get_formal))(variable[6],  variable[4] /*i*/) /*MMLocalClass::get_formal*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[6])(variable[6]) /*MMLocalClass::global*/;
+      variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[6])(variable[6]) /*MMGlobalClass::intro*/;
+      variable[6] = CALL_genericity___MMLocalClass___get_formal(variable[6])(variable[6],  variable[4] /*i*/) /*MMLocalClass::get_formal*/;
       variable[5] = variable[6];
       variable[7] = variable[0];
       variable[7] = ATTR_genericity___MMLocalClass____formals_types(variable[7]) /*MMLocalClass::_formals_types*/;
@@ -209,13 +209,13 @@ val_t genericity___MMLocalClass___formals_types(val_t  self) {
       return_label9: while(false);
       variable[7] = variable[10];
       variable[6] = variable[7];
-      variable[7] = ((type_formal___MMTypeFormal___bound_t)CALL( variable[5] /*oft*/,COLOR_type_formal___MMTypeFormal___bound))( variable[5] /*oft*/) /*MMTypeFormal::bound*/;
+      variable[7] = CALL_type_formal___MMTypeFormal___bound( variable[5] /*oft*/)( variable[5] /*oft*/) /*MMTypeFormal::bound*/;
       variable[8] = variable[0];
-      variable[8] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___module))(variable[8]) /*MMLocalClass::module*/;
-      variable[7] = ((static_type___MMType___for_module_t)CALL(variable[7],COLOR_static_type___MMType___for_module))(variable[7], variable[8]) /*MMType::for_module*/;
-      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL( variable[6] /*ft*/,COLOR_genericity___MMTypeFormalParameter___bound__eq))( variable[6] /*ft*/, variable[7]) /*MMTypeFormalParameter::bound=*/;
+      variable[8] = CALL_abstractmetamodel___MMLocalClass___module(variable[8])(variable[8]) /*MMLocalClass::module*/;
+      variable[7] = CALL_static_type___MMType___for_module(variable[7])(variable[7], variable[8]) /*MMType::for_module*/;
+      CALL_genericity___MMTypeFormalParameter___bound__eq( variable[6] /*ft*/)( variable[6] /*ft*/, variable[7]) /*MMTypeFormalParameter::bound=*/;
       continue_8: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*Iterator::next*/;
     }
     break_8: while(0);
   }
@@ -235,7 +235,7 @@ val_t genericity___MMLocalClass___is_generic(val_t  self) {
   trace.file = LOCATE_genericity;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___arity))(variable[2]) /*MMLocalClass::arity*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___arity(variable[2])(variable[2]) /*MMLocalClass::arity*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>UNTAG_Int( TAG_Int(0)));
   variable[1] = variable[2];
   goto return_label10;
@@ -264,7 +264,7 @@ val_t genericity___MMTypeFormal___is_generic(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_type_formal___MMTypeFormal____bound(variable[2]) /*MMTypeFormal::_bound*/;
-  variable[2] = ((genericity___MMType___is_generic_t)CALL(variable[2],COLOR_genericity___MMType___is_generic))(variable[2]) /*MMType::is_generic*/;
+  variable[2] = CALL_genericity___MMType___is_generic(variable[2])(variable[2]) /*MMType::is_generic*/;
   variable[1] = variable[2];
   goto return_label11;
   return_label11: while(false);
@@ -291,25 +291,26 @@ val_t genericity___MMTypeGeneric___to_s(val_t  self) {
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_genericity;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
-  variable[5] = ((genericity___MMTypeGeneric___to_s_t)CALL(variable[0],COLOR_SUPER_genericity___MMTypeGeneric___to_s))(variable[0]) /*super MMTypeGeneric::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
+  variable[5] = CALL_SUPER_genericity___MMTypeGeneric___to_s(variable[0])(variable[0]) /*super MMTypeGeneric::to_s*/;
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("["), TAG_Int(1)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
   variable[9] = ATTR_genericity___MMTypeGeneric____params(variable[9]) /*MMTypeGeneric::_params*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[9] = ((string___Collection___join_t)CALL(variable[9],COLOR_string___Collection___join))(variable[9], variable[10]) /*Collection::join*/;
+  variable[9] = CALL_string___Collection___join(variable[9])(variable[9], variable[10]) /*Collection::join*/;
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("]"), TAG_Int(1)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
   goto return_label13;
   return_label13: while(false);
@@ -324,20 +325,20 @@ val_t genericity___MMTypeGeneric___is_supertype(val_t  self, val_t  param0) {
   trace.file = LOCATE_genericity;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((static_type___MMType___local_class_t)CALL( variable[1] /*t*/,COLOR_static_type___MMType___local_class))( variable[1] /*t*/) /*MMType::local_class*/;
-  variable[3] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[3]) /*MMLocalClass::cshe*/;
+  variable[3] = CALL_static_type___MMType___local_class( variable[1] /*t*/)( variable[1] /*t*/) /*MMType::local_class*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[3])(variable[3]) /*MMLocalClass::cshe*/;
   variable[4] = variable[0];
   variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[4]) /*MMTypeClass::_local_class*/;
-  variable[3] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement_____leq))(variable[3], variable[4]) /*PartialOrderElement::<=*/;
+  variable[3] = CALL_partial_order___PartialOrderElement_____leq(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<=*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[4]) /*MMTypeClass::_local_class*/;
-    variable[4] = ((static_type___MMType___upcast_for_t)CALL( variable[1] /*t*/,COLOR_static_type___MMType___upcast_for))( variable[1] /*t*/, variable[4]) /*MMType::upcast_for*/;
+    variable[4] = CALL_static_type___MMType___upcast_for( variable[1] /*t*/)( variable[1] /*t*/, variable[4]) /*MMType::upcast_for*/;
     variable[3] = variable[4];
     variable[4] = TAG_Bool(( variable[3] /*u*/==NIT_NULL) || VAL_ISA( variable[3] /*u*/, COLOR_MMTypeGeneric, ID_MMTypeGeneric)) /*cast MMTypeGeneric*/;
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((genericity___MMTypeGeneric___is_subtype_t)CALL(variable[4],COLOR_genericity___MMTypeGeneric___is_subtype))(variable[4],  variable[3] /*u*/) /*MMTypeGeneric::is_subtype*/;
+      variable[4] = CALL_genericity___MMTypeGeneric___is_subtype(variable[4])(variable[4],  variable[3] /*u*/) /*MMTypeGeneric::is_subtype*/;
       variable[2] = variable[4];
       goto return_label14;
     }
@@ -359,33 +360,33 @@ val_t genericity___MMTypeGeneric___for_module(val_t  self, val_t  param0) {
   variable[4] = variable[0];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((static_type___MMTypeClass___module_t)CALL(variable[4],COLOR_static_type___MMType___module))(variable[4]) /*MMTypeClass::module*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*mod*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*mod*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*mod*/) /*Object::==*/)))))));
+  variable[4] = CALL_static_type___MMType___module(variable[4])(variable[4]) /*MMTypeClass::module*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*mod*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*mod*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*mod*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
     variable[4] = variable[5];
     variable[5] = variable[0];
     variable[5] = ATTR_genericity___MMTypeGeneric____params(variable[5]) /*MMTypeGeneric::_params*/;
-    variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
       variable[7] = variable[6];
-      variable[8] = ((static_type___MMType___for_module_t)CALL( variable[7] /*p*/,COLOR_static_type___MMType___for_module))( variable[7] /*p*/,  variable[1] /*mod*/) /*MMType::for_module*/;
-      ((array___AbstractArray___add_t)CALL( variable[4] /*parms*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*parms*/, variable[8]) /*AbstractArray::add*/;
+      variable[8] = CALL_static_type___MMType___for_module( variable[7] /*p*/)( variable[7] /*p*/,  variable[1] /*mod*/) /*MMType::for_module*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*parms*/)( variable[4] /*parms*/, variable[8]) /*AbstractArray::add*/;
       continue_16: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
     }
     break_16: while(0);
     variable[6] = variable[0];
     variable[6] = ATTR_static_type___MMTypeClass____local_class(variable[6]) /*MMTypeClass::_local_class*/;
-    variable[6] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___for_module))(variable[6],  variable[1] /*mod*/) /*MMLocalClass::for_module*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___for_module(variable[6])(variable[6],  variable[1] /*mod*/) /*MMLocalClass::for_module*/;
     variable[5] = variable[6];
-    variable[6] = ((genericity___MMLocalClass___get_instantiate_type_t)CALL( variable[5] /*b*/,COLOR_genericity___MMLocalClass___get_instantiate_type))( variable[5] /*b*/,  variable[4] /*parms*/) /*MMLocalClass::get_instantiate_type*/;
+    variable[6] = CALL_genericity___MMLocalClass___get_instantiate_type( variable[5] /*b*/)( variable[5] /*b*/,  variable[4] /*parms*/) /*MMLocalClass::get_instantiate_type*/;
     variable[3] = variable[6] /*t=*/;
   }
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeGeneric___for_module, LOCATE_genericity, 145); nit_exit(1);}
   variable[2] =  variable[3] /*t*/;
   goto return_label15;
@@ -405,21 +406,21 @@ val_t genericity___MMTypeGeneric___adapt_to(val_t  self, val_t  param0) {
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_genericity___MMTypeGeneric____params(variable[4]) /*MMTypeGeneric::_params*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((static_type___MMType___adapt_to_t)CALL( variable[6] /*i*/,COLOR_static_type___MMType___adapt_to))( variable[6] /*i*/,  variable[1] /*r*/) /*MMType::adapt_to*/;
-    ((array___AbstractArray___add_t)CALL( variable[3] /*rv*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*rv*/, variable[7]) /*AbstractArray::add*/;
+    variable[7] = CALL_static_type___MMType___adapt_to( variable[6] /*i*/)( variable[6] /*i*/,  variable[1] /*r*/) /*MMType::adapt_to*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*rv*/)( variable[3] /*rv*/, variable[7]) /*AbstractArray::add*/;
     continue_18: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_18: while(0);
   variable[5] = variable[0];
   variable[5] = ATTR_static_type___MMTypeClass____local_class(variable[5]) /*MMTypeClass::_local_class*/;
-  variable[5] = ((genericity___MMLocalClass___get_instantiate_type_t)CALL(variable[5],COLOR_genericity___MMLocalClass___get_instantiate_type))(variable[5],  variable[3] /*rv*/) /*MMLocalClass::get_instantiate_type*/;
+  variable[5] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[5])(variable[5],  variable[3] /*rv*/) /*MMLocalClass::get_instantiate_type*/;
   variable[4] = variable[5];
   variable[2] =  variable[4] /*l*/;
   goto return_label17;
@@ -435,13 +436,13 @@ val_t genericity___MMTypeGeneric___upcast_for(val_t  self, val_t  param0) {
   trace.file = LOCATE_genericity;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((genericity___MMTypeGeneric___upcast_for_t)CALL(variable[0],COLOR_SUPER_genericity___MMTypeGeneric___upcast_for))(variable[0], variable[1]) /*super MMTypeGeneric::upcast_for*/;
+  variable[4] = CALL_SUPER_genericity___MMTypeGeneric___upcast_for(variable[0])(variable[0], variable[1]) /*super MMTypeGeneric::upcast_for*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == variable[4]) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/,variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/, variable[4]) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ == variable[4]) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/,variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/, variable[4]) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((static_type___MMType___adapt_to_t)CALL( variable[3] /*t*/,COLOR_static_type___MMType___adapt_to))( variable[3] /*t*/, variable[4]) /*MMType::adapt_to*/;
+    variable[4] = CALL_static_type___MMType___adapt_to( variable[3] /*t*/)( variable[3] /*t*/, variable[4]) /*MMType::adapt_to*/;
     variable[3] = variable[4] /*t=*/;
   }
   variable[2] =  variable[3] /*t*/;
@@ -480,23 +481,23 @@ val_t genericity___MMTypeGeneric___params_equals(val_t  self, val_t  param0) {
   trace.file = LOCATE_genericity;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((array___AbstractArray___length_t)CALL( variable[1] /*t*/,COLOR_abstract_collection___Collection___length))( variable[1] /*t*/) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length( variable[1] /*t*/)( variable[1] /*t*/) /*AbstractArray::length*/;
   variable[4] = variable[0];
   variable[4] = ATTR_genericity___MMTypeGeneric____params(variable[4]) /*MMTypeGeneric::_params*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = TAG_Bool((variable[3])!=(variable[4]));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  TAG_Bool(false);
     goto return_label21;
   }
-  variable[3] = ((array___AbstractArray___length_t)CALL( variable[1] /*t*/,COLOR_abstract_collection___Collection___length))( variable[1] /*t*/) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length( variable[1] /*t*/)( variable[1] /*t*/) /*AbstractArray::length*/;
   variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[3]); /*new Range[Int]*/
   variable[3] = variable[4];
-  variable[3] = ((range___Range___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Range::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
     variable[6] = variable[0];
     variable[6] = ATTR_genericity___MMTypeGeneric____params(variable[6]) /*MMTypeGeneric::_params*/;
@@ -518,7 +519,7 @@ val_t genericity___MMTypeGeneric___params_equals(val_t  self, val_t  param0) {
     goto return_label23;
     return_label23: while(false);
     variable[6] = variable[9];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeGeneric___params_equals, LOCATE_genericity, 165); nit_exit(1);}
     variable[6] =  variable[1] /*t*/;
     variable[7] =  variable[5] /*i*/;
@@ -538,7 +539,7 @@ val_t genericity___MMTypeGeneric___params_equals(val_t  self, val_t  param0) {
     goto return_label24;
     return_label24: while(false);
     variable[6] = variable[8];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeGeneric___params_equals, LOCATE_genericity, 166); nit_exit(1);}
     variable[6] = variable[0];
     variable[6] = ATTR_genericity___MMTypeGeneric____params(variable[6]) /*MMTypeGeneric::_params*/;
@@ -578,13 +579,13 @@ val_t genericity___MMTypeGeneric___params_equals(val_t  self, val_t  param0) {
     goto return_label26;
     return_label26: while(false);
     variable[7] = variable[9];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], variable[7]) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label21;
     }
     continue_22: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_22: while(0);
   variable[2] =  TAG_Bool(true);
@@ -603,16 +604,16 @@ val_t genericity___MMTypeGeneric___is_subtype(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_genericity___MMTypeGeneric____params(variable[3]) /*MMTypeGeneric::_params*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[3]); /*new Range[Int]*/
   variable[3] = variable[4];
-  variable[3] = ((range___Range___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Range::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((genericity___MMTypeGeneric___params_t)CALL( variable[1] /*t*/,COLOR_genericity___MMTypeGeneric___params))( variable[1] /*t*/) /*MMTypeGeneric::params*/;
+    variable[6] = CALL_genericity___MMTypeGeneric___params( variable[1] /*t*/)( variable[1] /*t*/) /*MMTypeGeneric::params*/;
     variable[7] = variable[6];
     variable[8] =  variable[5] /*i*/;
     variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -651,13 +652,13 @@ val_t genericity___MMTypeGeneric___is_subtype(val_t  self, val_t  param0) {
     goto return_label30;
     return_label30: while(false);
     variable[7] = variable[10];
-    variable[6] = ((static_type___MMType_____l_t)CALL(variable[6],COLOR_static_type___MMType_____l))(variable[6], variable[7]) /*MMType::<*/;
+    variable[6] = CALL_static_type___MMType_____l(variable[6])(variable[6], variable[7]) /*MMType::<*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label27;
     }
     continue_28: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_28: while(0);
   variable[2] =  TAG_Bool(true);
@@ -676,7 +677,7 @@ void genericity___MMTypeGeneric___init(val_t  self, val_t  param0, val_t  param1
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMTypeGeneric].i]) return;
-  ((static_type___MMTypeClass___init_t)CALL(variable[0],COLOR_static_type___MMTypeClass___init))(variable[0],  variable[1] /*c*/, init_table /*YYY*/) /*MMTypeClass::init*/;
+  CALL_static_type___MMTypeClass___init(variable[0])(variable[0],  variable[1] /*c*/, init_table /*YYY*/) /*MMTypeClass::init*/;
   variable[4] = variable[0];
   ATTR_genericity___MMTypeGeneric____params(variable[4]) /*MMTypeGeneric::_params*/ =  variable[2] /*p*/;
   return_label31: while(false);
@@ -693,7 +694,7 @@ val_t genericity___MMTypeFormalParameter___module(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_genericity___MMTypeFormalParameter____def_class(variable[2]) /*MMTypeFormalParameter::_def_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___module))(variable[2]) /*MMLocalClass::module*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
   variable[1] = variable[2];
   goto return_label32;
   return_label32: while(false);
@@ -711,19 +712,19 @@ val_t genericity___MMTypeFormalParameter___for_module(val_t  self, val_t  param0
   variable[4] = variable[0];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((genericity___MMTypeFormalParameter___module_t)CALL(variable[4],COLOR_static_type___MMType___module))(variable[4]) /*MMTypeFormalParameter::module*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*mod*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*mod*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*mod*/) /*Object::==*/)))))));
+  variable[4] = CALL_static_type___MMType___module(variable[4])(variable[4]) /*MMTypeFormalParameter::module*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*mod*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*mod*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*mod*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_genericity___MMTypeFormalParameter____def_class(variable[4]) /*MMTypeFormalParameter::_def_class*/;
-    variable[4] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___global))(variable[4]) /*MMLocalClass::global*/;
-    variable[4] = ((abstractmetamodel___MMModule_____bra_t)CALL( variable[1] /*mod*/,COLOR_abstractmetamodel___MMModule_____bra))( variable[1] /*mod*/, variable[4]) /*MMModule::[]*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalClass___global(variable[4])(variable[4]) /*MMLocalClass::global*/;
+    variable[4] = CALL_abstractmetamodel___MMModule_____bra( variable[1] /*mod*/)( variable[1] /*mod*/, variable[4]) /*MMModule::[]*/;
     variable[5] = variable[0];
-    variable[5] = ((genericity___MMTypeFormalParameter___position_t)CALL(variable[5],COLOR_genericity___MMTypeFormalParameter___position))(variable[5]) /*MMTypeFormalParameter::position*/;
-    variable[4] = ((genericity___MMLocalClass___get_formal_t)CALL(variable[4],COLOR_genericity___MMLocalClass___get_formal))(variable[4], variable[5]) /*MMLocalClass::get_formal*/;
+    variable[5] = CALL_genericity___MMTypeFormalParameter___position(variable[5])(variable[5]) /*MMTypeFormalParameter::position*/;
+    variable[4] = CALL_genericity___MMLocalClass___get_formal(variable[4])(variable[4], variable[5]) /*MMLocalClass::get_formal*/;
     variable[3] = variable[4] /*t=*/;
   }
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeFormalParameter___for_module, LOCATE_genericity, 215); nit_exit(1);}
   variable[2] =  variable[3] /*t*/;
   goto return_label33;
@@ -739,17 +740,17 @@ val_t genericity___MMTypeFormalParameter___adapt_to(val_t  self, val_t  param0)
   trace.file = LOCATE_genericity;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((type_formal___MMType___direct_type_t)CALL( variable[1] /*r*/,COLOR_type_formal___MMType___direct_type))( variable[1] /*r*/) /*MMType::direct_type*/;
+  variable[3] = CALL_type_formal___MMType___direct_type( variable[1] /*r*/)( variable[1] /*r*/) /*MMType::direct_type*/;
   variable[1] = variable[3] /*r=*/;
   variable[4] = variable[0];
-  variable[4] = ((genericity___MMTypeFormalParameter___def_class_t)CALL(variable[4],COLOR_genericity___MMTypeFormalParameter___def_class))(variable[4]) /*MMTypeFormalParameter::def_class*/;
-  variable[4] = ((static_type___MMType___upcast_for_t)CALL( variable[1] /*r*/,COLOR_static_type___MMType___upcast_for))( variable[1] /*r*/, variable[4]) /*MMType::upcast_for*/;
+  variable[4] = CALL_genericity___MMTypeFormalParameter___def_class(variable[4])(variable[4]) /*MMTypeFormalParameter::def_class*/;
+  variable[4] = CALL_static_type___MMType___upcast_for( variable[1] /*r*/)( variable[1] /*r*/, variable[4]) /*MMType::upcast_for*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(( variable[3] /*old_r*/==NIT_NULL) || VAL_ISA( variable[3] /*old_r*/, COLOR_MMTypeGeneric, ID_MMTypeGeneric)) /*cast MMTypeGeneric*/;
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeFormalParameter___adapt_to, LOCATE_genericity, 235); nit_exit(1);}
-  variable[5] = ((genericity___MMTypeGeneric___params_t)CALL( variable[3] /*old_r*/,COLOR_genericity___MMTypeGeneric___params))( variable[3] /*old_r*/) /*MMTypeGeneric::params*/;
+  variable[5] = CALL_genericity___MMTypeGeneric___params( variable[3] /*old_r*/)( variable[3] /*old_r*/) /*MMTypeGeneric::params*/;
   variable[6] = variable[0];
-  variable[6] = ((genericity___MMTypeFormalParameter___position_t)CALL(variable[6],COLOR_genericity___MMTypeFormalParameter___position))(variable[6]) /*MMTypeFormalParameter::position*/;
+  variable[6] = CALL_genericity___MMTypeFormalParameter___position(variable[6])(variable[6]) /*MMTypeFormalParameter::position*/;
   variable[7] = variable[5];
   variable[8] = variable[6];
   variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -769,7 +770,7 @@ val_t genericity___MMTypeFormalParameter___adapt_to(val_t  self, val_t  param0)
   return_label35: while(false);
   variable[5] = variable[9];
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*reduct*/ ==  NIT_NULL /*null*/) || (( variable[4] /*reduct*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*reduct*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*reduct*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*reduct*/,COLOR_kernel___Object_____eqeq))( variable[4] /*reduct*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*reduct*/ ==  NIT_NULL /*null*/) || (( variable[4] /*reduct*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*reduct*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*reduct*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*reduct*/)( variable[4] /*reduct*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeFormalParameter___adapt_to, LOCATE_genericity, 237); nit_exit(1);}
   variable[2] =  variable[4] /*reduct*/;
   goto return_label34;
@@ -820,7 +821,7 @@ void genericity___MMTypeFormalParameter___bound__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_type_formal___MMTypeFormal____bound(variable[3]) /*MMTypeFormal::_bound*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeFormalParameter___bound__eq, LOCATE_genericity, 223); nit_exit(1);}
   variable[3] = variable[0];
   ATTR_type_formal___MMTypeFormal____bound(variable[3]) /*MMTypeFormal::_bound*/ =  variable[1] /*t*/;
@@ -841,7 +842,7 @@ void genericity___MMTypeFormalParameter___with_bound(val_t  self, val_t  param0,
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMTypeFormalParameter].i]) return;
   variable[6] = variable[0];
-  ((genericity___MMTypeFormalParameter___init_t)CALL(variable[6],COLOR_genericity___MMTypeFormalParameter___init))(variable[6],  variable[1] /*n*/,  variable[2] /*p*/,  variable[3] /*intro*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/;
+  CALL_genericity___MMTypeFormalParameter___init(variable[6])(variable[6],  variable[1] /*n*/,  variable[2] /*p*/,  variable[3] /*intro*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/;
   variable[6] = variable[0];
   ATTR_type_formal___MMTypeFormal____bound(variable[6]) /*MMTypeFormal::_bound*/ =  variable[4] /*b*/;
   return_label38: while(false);
@@ -860,9 +861,9 @@ void genericity___MMTypeFormalParameter___init(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMTypeFormalParameter].i]) return;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_genericity___MMTypeFormalParameter___init, LOCATE_genericity, 249); nit_exit(1);}
-  ((type_formal___MMTypeFormal___init_t)CALL(variable[0],COLOR_type_formal___MMTypeFormal___init))(variable[0],  variable[1] /*n*/,  NIT_NULL /*null*/, init_table /*YYY*/) /*MMTypeFormal::init*/;
+  CALL_type_formal___MMTypeFormal___init(variable[0])(variable[0],  variable[1] /*n*/,  NIT_NULL /*null*/, init_table /*YYY*/) /*MMTypeFormal::init*/;
   variable[5] = variable[0];
   ATTR_genericity___MMTypeFormalParameter____position(variable[5]) /*MMTypeFormalParameter::_position*/ =  variable[2] /*p*/;
   variable[5] = variable[0];
index 1893648..e0e1591 100644 (file)
@@ -9,35 +9,35 @@ extern const classtable_elt_t VFT_MMTypeGeneric[];
 extern const classtable_elt_t VFT_MMTypeFormalParameter[];
 extern const char *LOCATE_genericity;
 extern const int SFT_genericity[];
-#define COLOR_genericity___MMLocalClass____types SFT_genericity[0]
-#define COLOR_genericity___MMLocalClass____formals_types SFT_genericity[1]
-#define COLOR_genericity___MMLocalClass___get_formal SFT_genericity[2]
-#define COLOR_genericity___MMLocalClass___register_formal SFT_genericity[3]
-#define COLOR_genericity___MMLocalClass___get_instantiate_type SFT_genericity[4]
-#define COLOR_genericity___MMLocalClass___formals_types SFT_genericity[5]
-#define COLOR_SUPER_genericity___MMLocalClass___get_type SFT_genericity[6]
-#define COLOR_genericity___MMLocalClass___is_generic SFT_genericity[7]
-#define COLOR_genericity___MMType___is_generic SFT_genericity[8]
-#define ID_MMTypeGeneric SFT_genericity[9]
-#define COLOR_MMTypeGeneric SFT_genericity[10]
-#define COLOR_genericity___MMTypeGeneric____params SFT_genericity[11]
-#define INIT_TABLE_POS_MMTypeGeneric SFT_genericity[12]
-#define COLOR_genericity___MMTypeGeneric___params SFT_genericity[13]
-#define COLOR_SUPER_genericity___MMTypeGeneric___upcast_for SFT_genericity[14]
-#define COLOR_genericity___MMTypeGeneric___params_equals SFT_genericity[15]
-#define COLOR_SUPER_genericity___MMTypeGeneric___to_s SFT_genericity[16]
-#define COLOR_genericity___MMTypeGeneric___is_subtype SFT_genericity[17]
-#define COLOR_genericity___MMTypeGeneric___init SFT_genericity[18]
-#define ID_MMTypeFormalParameter SFT_genericity[19]
-#define COLOR_MMTypeFormalParameter SFT_genericity[20]
-#define COLOR_genericity___MMTypeFormalParameter____def_class SFT_genericity[21]
-#define COLOR_genericity___MMTypeFormalParameter____position SFT_genericity[22]
-#define INIT_TABLE_POS_MMTypeFormalParameter SFT_genericity[23]
-#define COLOR_genericity___MMTypeFormalParameter___def_class SFT_genericity[24]
-#define COLOR_genericity___MMTypeFormalParameter___position SFT_genericity[25]
-#define COLOR_genericity___MMTypeFormalParameter___bound__eq SFT_genericity[26]
-#define COLOR_genericity___MMTypeFormalParameter___with_bound SFT_genericity[27]
-#define COLOR_genericity___MMTypeFormalParameter___init SFT_genericity[28]
+#define ATTR_genericity___MMLocalClass____types(recv) ATTR(recv, (SFT_genericity[0] + 0))
+#define ATTR_genericity___MMLocalClass____formals_types(recv) ATTR(recv, (SFT_genericity[0] + 1))
+#define CALL_genericity___MMLocalClass___get_formal(recv) ((genericity___MMLocalClass___get_formal_t)CALL((recv), (SFT_genericity[1] + 0)))
+#define CALL_genericity___MMLocalClass___register_formal(recv) ((genericity___MMLocalClass___register_formal_t)CALL((recv), (SFT_genericity[1] + 1)))
+#define CALL_genericity___MMLocalClass___get_instantiate_type(recv) ((genericity___MMLocalClass___get_instantiate_type_t)CALL((recv), (SFT_genericity[1] + 2)))
+#define CALL_genericity___MMLocalClass___formals_types(recv) ((genericity___MMLocalClass___formals_types_t)CALL((recv), (SFT_genericity[1] + 3)))
+#define CALL_SUPER_genericity___MMLocalClass___get_type(recv) ((genericity___MMLocalClass___get_type_t)CALL((recv), (SFT_genericity[1] + 4)))
+#define CALL_genericity___MMLocalClass___is_generic(recv) ((genericity___MMLocalClass___is_generic_t)CALL((recv), (SFT_genericity[1] + 5)))
+#define CALL_genericity___MMType___is_generic(recv) ((genericity___MMType___is_generic_t)CALL((recv), (SFT_genericity[2] + 0)))
+#define ID_MMTypeGeneric (SFT_genericity[3])
+#define COLOR_MMTypeGeneric (SFT_genericity[4])
+#define ATTR_genericity___MMTypeGeneric____params(recv) ATTR(recv, (SFT_genericity[5] + 0))
+#define INIT_TABLE_POS_MMTypeGeneric (SFT_genericity[6] + 0)
+#define CALL_genericity___MMTypeGeneric___params(recv) ((genericity___MMTypeGeneric___params_t)CALL((recv), (SFT_genericity[6] + 1)))
+#define CALL_SUPER_genericity___MMTypeGeneric___upcast_for(recv) ((genericity___MMTypeGeneric___upcast_for_t)CALL((recv), (SFT_genericity[6] + 2)))
+#define CALL_genericity___MMTypeGeneric___params_equals(recv) ((genericity___MMTypeGeneric___params_equals_t)CALL((recv), (SFT_genericity[6] + 3)))
+#define CALL_SUPER_genericity___MMTypeGeneric___to_s(recv) ((genericity___MMTypeGeneric___to_s_t)CALL((recv), (SFT_genericity[6] + 4)))
+#define CALL_genericity___MMTypeGeneric___is_subtype(recv) ((genericity___MMTypeGeneric___is_subtype_t)CALL((recv), (SFT_genericity[6] + 5)))
+#define CALL_genericity___MMTypeGeneric___init(recv) ((genericity___MMTypeGeneric___init_t)CALL((recv), (SFT_genericity[6] + 6)))
+#define ID_MMTypeFormalParameter (SFT_genericity[7])
+#define COLOR_MMTypeFormalParameter (SFT_genericity[8])
+#define ATTR_genericity___MMTypeFormalParameter____def_class(recv) ATTR(recv, (SFT_genericity[9] + 0))
+#define ATTR_genericity___MMTypeFormalParameter____position(recv) ATTR(recv, (SFT_genericity[9] + 1))
+#define INIT_TABLE_POS_MMTypeFormalParameter (SFT_genericity[10] + 0)
+#define CALL_genericity___MMTypeFormalParameter___def_class(recv) ((genericity___MMTypeFormalParameter___def_class_t)CALL((recv), (SFT_genericity[10] + 1)))
+#define CALL_genericity___MMTypeFormalParameter___position(recv) ((genericity___MMTypeFormalParameter___position_t)CALL((recv), (SFT_genericity[10] + 2)))
+#define CALL_genericity___MMTypeFormalParameter___bound__eq(recv) ((genericity___MMTypeFormalParameter___bound__eq_t)CALL((recv), (SFT_genericity[10] + 3)))
+#define CALL_genericity___MMTypeFormalParameter___with_bound(recv) ((genericity___MMTypeFormalParameter___with_bound_t)CALL((recv), (SFT_genericity[10] + 4)))
+#define CALL_genericity___MMTypeFormalParameter___init(recv) ((genericity___MMTypeFormalParameter___init_t)CALL((recv), (SFT_genericity[10] + 5)))
 val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1);
 typedef val_t (* genericity___MMLocalClass___get_type_t)(val_t  self);
 val_t genericity___MMLocalClass___get_type(val_t  self);
@@ -48,11 +48,9 @@ val_t genericity___MMLocalClass___get_formal(val_t  self, val_t  param0);
 typedef void (* genericity___MMLocalClass___register_formal_t)(val_t  self, val_t  param0);
 void genericity___MMLocalClass___register_formal(val_t  self, val_t  param0);
 #define LOCATE_genericity___MMLocalClass___register_formal "genericity::MMLocalClass::register_formal"
-#define ATTR_genericity___MMLocalClass____types(recv) ATTR(recv, COLOR_genericity___MMLocalClass____types)
 typedef val_t (* genericity___MMLocalClass___get_instantiate_type_t)(val_t  self, val_t  param0);
 val_t genericity___MMLocalClass___get_instantiate_type(val_t  self, val_t  param0);
 #define LOCATE_genericity___MMLocalClass___get_instantiate_type "genericity::MMLocalClass::get_instantiate_type"
-#define ATTR_genericity___MMLocalClass____formals_types(recv) ATTR(recv, COLOR_genericity___MMLocalClass____formals_types)
 typedef val_t (* genericity___MMLocalClass___formals_types_t)(val_t  self);
 val_t genericity___MMLocalClass___formals_types(val_t  self);
 #define LOCATE_genericity___MMLocalClass___formals_types "genericity::MMLocalClass::formals_types"
@@ -89,7 +87,6 @@ val_t genericity___MMTypeGeneric___upcast_for(val_t  self, val_t  param0);
 typedef val_t (* genericity___MMTypeGeneric___is_generic_t)(val_t  self);
 val_t genericity___MMTypeGeneric___is_generic(val_t  self);
 #define LOCATE_genericity___MMTypeGeneric___is_generic "genericity::MMTypeGeneric::(genericity::MMType::is_generic)"
-#define ATTR_genericity___MMTypeGeneric____params(recv) ATTR(recv, COLOR_genericity___MMTypeGeneric____params)
 typedef val_t (* genericity___MMTypeGeneric___params_t)(val_t  self);
 val_t genericity___MMTypeGeneric___params(val_t  self);
 #define LOCATE_genericity___MMTypeGeneric___params "genericity::MMTypeGeneric::params"
@@ -115,11 +112,9 @@ val_t genericity___MMTypeFormalParameter___adapt_to(val_t  self, val_t  param0);
 typedef val_t (* genericity___MMTypeFormalParameter___upcast_for_t)(val_t  self, val_t  param0);
 val_t genericity___MMTypeFormalParameter___upcast_for(val_t  self, val_t  param0);
 #define LOCATE_genericity___MMTypeFormalParameter___upcast_for "genericity::MMTypeFormalParameter::(static_type::MMType::upcast_for)"
-#define ATTR_genericity___MMTypeFormalParameter____def_class(recv) ATTR(recv, COLOR_genericity___MMTypeFormalParameter____def_class)
 typedef val_t (* genericity___MMTypeFormalParameter___def_class_t)(val_t  self);
 val_t genericity___MMTypeFormalParameter___def_class(val_t  self);
 #define LOCATE_genericity___MMTypeFormalParameter___def_class "genericity::MMTypeFormalParameter::def_class"
-#define ATTR_genericity___MMTypeFormalParameter____position(recv) ATTR(recv, COLOR_genericity___MMTypeFormalParameter____position)
 typedef val_t (* genericity___MMTypeFormalParameter___position_t)(val_t  self);
 val_t genericity___MMTypeFormalParameter___position(val_t  self);
 #define LOCATE_genericity___MMTypeFormalParameter___position "genericity::MMTypeFormalParameter::position"
index 348a775..1daa46a 100644 (file)
@@ -127,18 +127,18 @@ val_t hash___HashCollection___index_at(val_t  self, val_t  param0) {
   variable[4] = variable[0];
   variable[4] = ATTR_hash___HashCollection____array(variable[4]) /*HashCollection::_array*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*k*/ ==  NIT_NULL /*null*/) || (( variable[1] /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*k*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))( variable[1] /*k*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*k*/ ==  NIT_NULL /*null*/) || (( variable[1] /*k*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*k*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*k*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*k*/)( variable[1] /*k*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___index_at, LOCATE_hash, 84); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_hash___HashCollection____last_accessed_key(variable[4]) /*HashCollection::_last_accessed_key*/;
-  variable[4] = TAG_Bool(( variable[1] /*k*/ == variable[4]) || (( variable[1] /*k*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*k*/,variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*k*/,COLOR_kernel___Object_____eqeq))( variable[1] /*k*/, variable[4]) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[1] /*k*/ == variable[4]) || (( variable[1] /*k*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*k*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*k*/,variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*k*/)( variable[1] /*k*/, variable[4]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_hash___HashCollection____last_accessed_index(variable[4]) /*HashCollection::_last_accessed_index*/;
     variable[2] = variable[4];
     goto return_label6;
   }
-  variable[5] = ((hash___Object___hash_t)CALL( variable[1] /*k*/,COLOR_hash___Object___hash))( variable[1] /*k*/) /*Object::hash*/;
+  variable[5] = CALL_hash___Object___hash( variable[1] /*k*/)( variable[1] /*k*/) /*Object::hash*/;
   variable[6] = variable[0];
   variable[6] = ATTR_hash___HashCollection____capacity(variable[6]) /*HashCollection::_capacity*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])%UNTAG_Int(variable[6]));
@@ -153,11 +153,11 @@ val_t hash___HashCollection___index_at(val_t  self, val_t  param0) {
     if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
     variable[7] = UNBOX_NativeArray( variable[3] /*arr*/)[UNTAG_Int( variable[5] /*cur*/)];
     variable[6] = variable[7];
-    variable[7] = TAG_Bool(( variable[6] /*c*/ ==  NIT_NULL /*null*/) || (( variable[6] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*c*/,COLOR_kernel___Object_____eqeq))( variable[6] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[7] = TAG_Bool(( variable[6] /*c*/ ==  NIT_NULL /*null*/) || (( variable[6] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*c*/)( variable[6] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     variable[8] = variable[7];
     if (!UNTAG_Bool(variable[8])) { /* or */
-      variable[8] = ((hash___HashNode___key_t)CALL( variable[6] /*c*/,COLOR_hash___HashNode___key))( variable[6] /*c*/) /*HashNode::key*/;
-      variable[8] = TAG_Bool((variable[8] ==  variable[1] /*k*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], variable[1] /*k*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  variable[1] /*k*/) /*Object::==*/)))));
+      variable[8] = CALL_hash___HashNode___key( variable[6] /*c*/)( variable[6] /*c*/) /*HashNode::key*/;
+      variable[8] = TAG_Bool((variable[8] ==  variable[1] /*k*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], variable[1] /*k*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  variable[1] /*k*/) /*Object::==*/)))));
     }
     variable[7] = variable[8];
     if (UNTAG_Bool(variable[7])) { /*if*/
@@ -197,25 +197,25 @@ void hash___HashCollection___store(val_t  self, val_t  param0, val_t  param1) {
   variable[2] =  param1;
   variable[4] = variable[0];
   variable[4] = ATTR_hash___HashCollection____first_item(variable[4]) /*HashCollection::_first_item*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     ATTR_hash___HashCollection____first_item(variable[4]) /*HashCollection::_first_item*/ =  variable[2] /*node*/;
   } else { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_hash___HashCollection____last_item(variable[4]) /*HashCollection::_last_item*/;
-    ((hash___HashNode___next_item__eq_t)CALL(variable[4],COLOR_hash___HashNode___next_item__eq))(variable[4],  variable[2] /*node*/) /*HashNode::next_item=*/;
+    CALL_hash___HashNode___next_item__eq(variable[4])(variable[4],  variable[2] /*node*/) /*HashNode::next_item=*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_hash___HashCollection____last_item(variable[4]) /*HashCollection::_last_item*/;
-  ((hash___HashNode___prev_item__eq_t)CALL( variable[2] /*node*/,COLOR_hash___HashNode___prev_item__eq))( variable[2] /*node*/, variable[4]) /*HashNode::prev_item=*/;
-  ((hash___HashNode___next_item__eq_t)CALL( variable[2] /*node*/,COLOR_hash___HashNode___next_item__eq))( variable[2] /*node*/,  NIT_NULL /*null*/) /*HashNode::next_item=*/;
+  CALL_hash___HashNode___prev_item__eq( variable[2] /*node*/)( variable[2] /*node*/, variable[4]) /*HashNode::prev_item=*/;
+  CALL_hash___HashNode___next_item__eq( variable[2] /*node*/)( variable[2] /*node*/,  NIT_NULL /*null*/) /*HashNode::next_item=*/;
   variable[4] = variable[0];
   ATTR_hash___HashCollection____last_item(variable[4]) /*HashCollection::_last_item*/ =  variable[2] /*node*/;
   variable[4] = variable[0];
   variable[4] = ATTR_hash___HashCollection____array(variable[4]) /*HashCollection::_array*/;
   variable[4] = UNBOX_NativeArray(variable[4])[UNTAG_Int( variable[1] /*index*/)];
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___store, LOCATE_hash, 122); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_hash___HashCollection____array(variable[4]) /*HashCollection::_array*/;
@@ -236,7 +236,7 @@ void hash___HashCollection___store(val_t  self, val_t  param0, val_t  param1) {
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[6] = TAG_Int(UNTAG_Int( variable[4] /*l*/)*UNTAG_Int( TAG_Int(2)));
-    ((hash___HashCollection___enlarge_t)CALL(variable[5],COLOR_hash___HashCollection___enlarge))(variable[5], variable[6]) /*HashCollection::enlarge*/;
+    CALL_hash___HashCollection___enlarge(variable[5])(variable[5], variable[6]) /*HashCollection::enlarge*/;
   }
   return_label8: while(false);
   tracehead = trace.prev;
@@ -263,22 +263,22 @@ void hash___HashCollection___remove_index(val_t  self, val_t  param0) {
   variable[4] = ATTR_hash___HashCollection____array(variable[4]) /*HashCollection::_array*/;
   variable[4] = UNBOX_NativeArray(variable[4])[UNTAG_Int( variable[1] /*i*/)];
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*node*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*node*/)( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", " 'has_couple' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index, LOCATE_hash, 136); nit_exit(1);}
-  variable[5] = ((hash___HashNode___prev_item_t)CALL( variable[3] /*node*/,COLOR_hash___HashNode___prev_item))( variable[3] /*node*/) /*HashNode::prev_item*/;
+  variable[5] = CALL_hash___HashNode___prev_item( variable[3] /*node*/)( variable[3] /*node*/) /*HashNode::prev_item*/;
   variable[4] = variable[5];
-  variable[6] = ((hash___HashNode___next_item_t)CALL( variable[3] /*node*/,COLOR_hash___HashNode___next_item))( variable[3] /*node*/) /*HashNode::next_item*/;
+  variable[6] = CALL_hash___HashNode___next_item( variable[3] /*node*/)( variable[3] /*node*/) /*HashNode::next_item*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*prev*/ ==  NIT_NULL /*null*/) || (( variable[4] /*prev*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*prev*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*prev*/,COLOR_kernel___Object_____eqeq))( variable[4] /*prev*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*prev*/ ==  NIT_NULL /*null*/) || (( variable[4] /*prev*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*prev*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*prev*/)( variable[4] /*prev*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    ((hash___HashNode___next_item__eq_t)CALL( variable[4] /*prev*/,COLOR_hash___HashNode___next_item__eq))( variable[4] /*prev*/,  variable[5] /*next*/) /*HashNode::next_item=*/;
+    CALL_hash___HashNode___next_item__eq( variable[4] /*prev*/)( variable[4] /*prev*/,  variable[5] /*next*/) /*HashNode::next_item=*/;
   } else { /*if*/
     variable[6] = variable[0];
     ATTR_hash___HashCollection____first_item(variable[6]) /*HashCollection::_first_item*/ =  variable[5] /*next*/;
   }
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*next*/ ==  NIT_NULL /*null*/) || (( variable[5] /*next*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*next*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*next*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*next*/,COLOR_kernel___Object_____eqeq))( variable[5] /*next*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*next*/ ==  NIT_NULL /*null*/) || (( variable[5] /*next*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*next*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*next*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*next*/)( variable[5] /*next*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    ((hash___HashNode___prev_item__eq_t)CALL( variable[5] /*next*/,COLOR_hash___HashNode___prev_item__eq))( variable[5] /*next*/,  variable[4] /*prev*/) /*HashNode::prev_item=*/;
+    CALL_hash___HashNode___prev_item__eq( variable[5] /*next*/)( variable[5] /*next*/,  variable[4] /*prev*/) /*HashNode::prev_item=*/;
   } else { /*if*/
     variable[6] = variable[0];
     ATTR_hash___HashCollection____last_item(variable[6]) /*HashCollection::_last_item*/ =  variable[4] /*prev*/;
@@ -302,13 +302,13 @@ void hash___HashCollection___remove_index(val_t  self, val_t  param0) {
     variable[7] = ATTR_hash___HashCollection____array(variable[7]) /*HashCollection::_array*/;
     variable[7] = UNBOX_NativeArray(variable[7])[UNTAG_Int( variable[1] /*i*/)];
     variable[6] = variable[7];
-    variable[7] = TAG_Bool(( variable[6] /*n*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[7] = TAG_Bool(( variable[6] /*n*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n*/)( variable[6] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
       goto return_label9;
     }
     variable[8] = variable[0];
-    variable[9] = ((hash___HashNode___key_t)CALL( variable[6] /*n*/,COLOR_hash___HashNode___key))( variable[6] /*n*/) /*HashNode::key*/;
-    variable[8] = ((hash___HashCollection___index_at_t)CALL(variable[8],COLOR_hash___HashCollection___index_at))(variable[8], variable[9]) /*HashCollection::index_at*/;
+    variable[9] = CALL_hash___HashNode___key( variable[6] /*n*/)( variable[6] /*n*/) /*HashNode::key*/;
+    variable[8] = CALL_hash___HashCollection___index_at(variable[8])(variable[8], variable[9]) /*HashCollection::index_at*/;
     variable[7] = variable[8];
     variable[8] = TAG_Bool(( variable[1] /*i*/)!=( variable[7] /*i2*/));
     if (UNTAG_Bool(variable[8])) { /*if*/
@@ -318,7 +318,7 @@ void hash___HashCollection___remove_index(val_t  self, val_t  param0) {
       variable[8] = variable[0];
       variable[8] = ATTR_hash___HashCollection____array(variable[8]) /*HashCollection::_array*/;
       variable[8] = UNBOX_NativeArray(variable[8])[UNTAG_Int( variable[7] /*i2*/)];
-      variable[8] = TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[8] = TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))));
       if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___remove_index, LOCATE_hash, 166); nit_exit(1);}
       variable[8] = variable[0];
       variable[8] = ATTR_hash___HashCollection____array(variable[8]) /*HashCollection::_array*/;
@@ -423,17 +423,17 @@ void hash___HashCollection___enlarge(val_t  self, val_t  param0) {
   variable[8] = ATTR_hash___HashCollection____first_item(variable[8]) /*HashCollection::_first_item*/;
   variable[7] = variable[8];
   while (true) { /*while*/
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*node*/ ==  NIT_NULL /*null*/) || (( variable[7] /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*node*/,COLOR_kernel___Object_____eqeq))( variable[7] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*node*/ ==  NIT_NULL /*null*/) || (( variable[7] /*node*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*node*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*node*/)( variable[7] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[8])) break; /* while*/
     variable[9] = variable[0];
-    variable[10] = ((hash___HashNode___key_t)CALL( variable[7] /*node*/,COLOR_hash___HashNode___key))( variable[7] /*node*/) /*HashNode::key*/;
-    variable[9] = ((hash___HashCollection___index_at_t)CALL(variable[9],COLOR_hash___HashCollection___index_at))(variable[9], variable[10]) /*HashCollection::index_at*/;
+    variable[10] = CALL_hash___HashNode___key( variable[7] /*node*/)( variable[7] /*node*/) /*HashNode::key*/;
+    variable[9] = CALL_hash___HashCollection___index_at(variable[9])(variable[9], variable[10]) /*HashCollection::index_at*/;
     variable[8] = variable[9];
     variable[9] = UNBOX_NativeArray( variable[6] /*new_array*/)[UNTAG_Int( variable[8] /*ind*/)];
-    variable[9] = TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[9] = TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))));
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashCollection___enlarge, LOCATE_hash, 213); nit_exit(1);}
     UNBOX_NativeArray( variable[6] /*new_array*/)[UNTAG_Int( variable[8] /*ind*/)]= variable[7] /*node*/;
-    variable[9] = ((hash___HashNode___next_item_t)CALL( variable[7] /*node*/,COLOR_hash___HashNode___next_item))( variable[7] /*node*/) /*HashNode::next_item*/;
+    variable[9] = CALL_hash___HashNode___next_item( variable[7] /*node*/)( variable[7] /*node*/) /*HashNode::next_item*/;
     variable[7] = variable[9] /*node=*/;
     continue_15: while(0);
   }
@@ -562,11 +562,11 @@ val_t hash___HashMap___has(val_t  self, val_t  param0) {
     variable[5] = ATTR_hash___HashCollection____array(variable[5]) /*HashCollection::_array*/;
     variable[5] = UNBOX_NativeArray(variable[5])[UNTAG_Int( variable[3] /*i*/)];
     variable[4] = variable[5];
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*c*/)( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[6] = variable[5];
     if (UNTAG_Bool(variable[6])) { /* and */
-      variable[6] = ((abstract_collection___Couple___second_t)CALL( variable[4] /*c*/,COLOR_abstract_collection___Couple___second))( variable[4] /*c*/) /*Couple::second*/;
-      variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
+      variable[6] = CALL_abstract_collection___Couple___second( variable[4] /*c*/)( variable[4] /*c*/) /*Couple::second*/;
+      variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
     }
     variable[5] = variable[6];
     if (UNTAG_Bool(variable[5])) { /*if*/
@@ -601,11 +601,11 @@ val_t hash___HashMap___has_only(val_t  self, val_t  param0) {
     variable[5] = ATTR_hash___HashCollection____array(variable[5]) /*HashCollection::_array*/;
     variable[5] = UNBOX_NativeArray(variable[5])[UNTAG_Int( variable[3] /*i*/)];
     variable[4] = variable[5];
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*c*/)( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[6] = variable[5];
     if (UNTAG_Bool(variable[6])) { /* and */
-      variable[6] = ((abstract_collection___Couple___second_t)CALL( variable[4] /*c*/,COLOR_abstract_collection___Couple___second))( variable[4] /*c*/) /*Couple::second*/;
-      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*item*/) /*Object::==*/)))))));
+      variable[6] = CALL_abstract_collection___Couple___second( variable[4] /*c*/)( variable[4] /*c*/) /*Couple::second*/;
+      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*item*/) /*Object::==*/)))))));
     }
     variable[5] = variable[6];
     if (UNTAG_Bool(variable[5])) { /*if*/
@@ -641,11 +641,11 @@ val_t hash___HashMap___count(val_t  self, val_t  param0) {
     variable[6] = ATTR_hash___HashCollection____array(variable[6]) /*HashCollection::_array*/;
     variable[6] = UNBOX_NativeArray(variable[6])[UNTAG_Int( variable[4] /*i*/)];
     variable[5] = variable[6];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*c*/ ==  NIT_NULL /*null*/) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*c*/ ==  NIT_NULL /*null*/) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[7] = variable[6];
     if (UNTAG_Bool(variable[7])) { /* and */
-      variable[7] = ((abstract_collection___Couple___second_t)CALL( variable[5] /*c*/,COLOR_abstract_collection___Couple___second))( variable[5] /*c*/) /*Couple::second*/;
-      variable[7] = TAG_Bool((variable[7] ==  variable[1] /*item*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*item*/) /*Object::==*/)))));
+      variable[7] = CALL_abstract_collection___Couple___second( variable[5] /*c*/)( variable[5] /*c*/) /*Couple::second*/;
+      variable[7] = TAG_Bool((variable[7] ==  variable[1] /*item*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*item*/) /*Object::==*/)))));
     }
     variable[6] = variable[7];
     if (UNTAG_Bool(variable[6])) { /*if*/
@@ -674,7 +674,7 @@ val_t hash___HashMap___first(val_t  self) {
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMap___first, LOCATE_hash, 236); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_hash___HashCollection____first_item(variable[2]) /*HashCollection::_first_item*/;
-  variable[2] = ((abstract_collection___Couple___second_t)CALL(variable[2],COLOR_abstract_collection___Couple___second))(variable[2]) /*Couple::second*/;
+  variable[2] = CALL_abstract_collection___Couple___second(variable[2])(variable[2]) /*Couple::second*/;
   variable[1] = variable[2];
   goto return_label24;
   return_label24: while(false);
@@ -689,7 +689,7 @@ void hash___HashMap___clear(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  ((hash___HashCollection___raz_t)CALL(variable[2],COLOR_hash___HashCollection___raz))(variable[2]) /*HashCollection::raz*/;
+  CALL_hash___HashCollection___raz(variable[2])(variable[2]) /*HashCollection::raz*/;
   return_label25: while(false);
   tracehead = trace.prev;
   return;
@@ -712,16 +712,16 @@ void hash___HashMap___remove(val_t  self, val_t  param0) {
     variable[5] = ATTR_hash___HashCollection____array(variable[5]) /*HashCollection::_array*/;
     variable[5] = UNBOX_NativeArray(variable[5])[UNTAG_Int( variable[3] /*i*/)];
     variable[4] = variable[5];
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*c*/)( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[6] = variable[5];
     if (UNTAG_Bool(variable[6])) { /* and */
-      variable[6] = ((abstract_collection___Couple___second_t)CALL( variable[4] /*c*/,COLOR_abstract_collection___Couple___second))( variable[4] /*c*/) /*Couple::second*/;
-      variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
+      variable[6] = CALL_abstract_collection___Couple___second( variable[4] /*c*/)( variable[4] /*c*/) /*Couple::second*/;
+      variable[6] = TAG_Bool((variable[6] ==  variable[1] /*item*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*item*/) /*Object::==*/)))));
     }
     variable[5] = variable[6];
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = variable[0];
-      ((hash___HashCollection___remove_index_t)CALL(variable[5],COLOR_hash___HashCollection___remove_index))(variable[5],  variable[3] /*i*/) /*HashCollection::remove_index*/;
+      CALL_hash___HashCollection___remove_index(variable[5])(variable[5],  variable[3] /*i*/) /*HashCollection::remove_index*/;
       goto return_label26;
     }
     variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
@@ -741,23 +741,23 @@ void hash___HashMap_____braeq(val_t  self, val_t  param0, val_t  param1) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*key*/ ==  NIT_NULL /*null*/) || (( variable[1] /*key*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*key*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*key*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*key*/,COLOR_kernel___Object_____eqeq))( variable[1] /*key*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*key*/ ==  NIT_NULL /*null*/) || (( variable[1] /*key*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*key*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*key*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*key*/)( variable[1] /*key*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMap_____braeq, LOCATE_hash, 278); nit_exit(1);}
   variable[5] = variable[0];
-  variable[5] = ((hash___HashCollection___index_at_t)CALL(variable[5],COLOR_hash___HashCollection___index_at))(variable[5],  variable[1] /*key*/) /*HashCollection::index_at*/;
+  variable[5] = CALL_hash___HashCollection___index_at(variable[5])(variable[5],  variable[1] /*key*/) /*HashCollection::index_at*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
   variable[6] = ATTR_hash___HashCollection____array(variable[6]) /*HashCollection::_array*/;
   variable[6] = UNBOX_NativeArray(variable[6])[UNTAG_Int( variable[4] /*i*/)];
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*c*/ ==  NIT_NULL /*null*/) || (( variable[5] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*c*/,COLOR_kernel___Object_____eqeq))( variable[5] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*c*/ ==  NIT_NULL /*null*/) || (( variable[5] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*c*/)( variable[5] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    ((abstract_collection___Couple___first__eq_t)CALL( variable[5] /*c*/,COLOR_abstract_collection___Couple___first__eq))( variable[5] /*c*/,  variable[1] /*key*/) /*Couple::first=*/;
-    ((abstract_collection___Couple___second__eq_t)CALL( variable[5] /*c*/,COLOR_abstract_collection___Couple___second__eq))( variable[5] /*c*/,  variable[2] /*v*/) /*Couple::second=*/;
+    CALL_abstract_collection___Couple___first__eq( variable[5] /*c*/)( variable[5] /*c*/,  variable[1] /*key*/) /*Couple::first=*/;
+    CALL_abstract_collection___Couple___second__eq( variable[5] /*c*/)( variable[5] /*c*/,  variable[2] /*v*/) /*Couple::second=*/;
   } else { /*if*/
     variable[6] = variable[0];
     variable[7] = NEW_HashMapNode_hash___HashMapNode___init( variable[1] /*key*/,  variable[2] /*v*/); /*new HashMapNode[K, V]*/
-    ((hash___HashCollection___store_t)CALL(variable[6],COLOR_hash___HashCollection___store))(variable[6],  variable[4] /*i*/, variable[7]) /*HashCollection::store*/;
+    CALL_hash___HashCollection___store(variable[6])(variable[6],  variable[4] /*i*/, variable[7]) /*HashCollection::store*/;
   }
   return_label28: while(false);
   tracehead = trace.prev;
@@ -773,8 +773,8 @@ void hash___HashMap___remove_at(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4],  variable[1] /*key*/) /*HashCollection::index_at*/;
-  ((hash___HashCollection___remove_index_t)CALL(variable[3],COLOR_hash___HashCollection___remove_index))(variable[3], variable[4]) /*HashCollection::remove_index*/;
+  variable[4] = CALL_hash___HashCollection___index_at(variable[4])(variable[4],  variable[1] /*key*/) /*HashCollection::index_at*/;
+  CALL_hash___HashCollection___remove_index(variable[3])(variable[3], variable[4]) /*HashCollection::remove_index*/;
   return_label29: while(false);
   tracehead = trace.prev;
   return;
@@ -790,7 +790,7 @@ val_t hash___HashMap___couple_at(val_t  self, val_t  param0) {
   variable[3] = variable[0];
   variable[3] = ATTR_hash___HashCollection____array(variable[3]) /*HashCollection::_array*/;
   variable[4] = variable[0];
-  variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4],  variable[1] /*key*/) /*HashCollection::index_at*/;
+  variable[4] = CALL_hash___HashCollection___index_at(variable[4])(variable[4],  variable[1] /*key*/) /*HashCollection::index_at*/;
   variable[3] = UNBOX_NativeArray(variable[3])[UNTAG_Int(variable[4])];
   variable[2] = variable[3];
   goto return_label30;
@@ -811,7 +811,7 @@ void hash___HashMap___init(val_t  self, int* init_table) {
   variable[2] = variable[0];
   ATTR_hash___HashCollection____length(variable[2]) /*HashCollection::_length*/ =  TAG_Int(0);
   variable[2] = variable[0];
-  ((hash___HashCollection___enlarge_t)CALL(variable[2],COLOR_hash___HashCollection___enlarge))(variable[2],  TAG_Int(0)) /*HashCollection::enlarge*/;
+  CALL_hash___HashCollection___enlarge(variable[2])(variable[2],  TAG_Int(0)) /*HashCollection::enlarge*/;
   return_label31: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_HashMap].i] = 1;
   tracehead = trace.prev;
@@ -825,7 +825,7 @@ val_t hash___HashMapNode___key(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstract_collection___Couple___first_t)CALL(variable[2],COLOR_abstract_collection___Couple___first))(variable[2]) /*Couple::first*/;
+  variable[2] = CALL_abstract_collection___Couple___first(variable[2])(variable[2]) /*Couple::first*/;
   variable[1] = variable[2];
   goto return_label32;
   return_label32: while(false);
@@ -842,11 +842,11 @@ void hash___HashMapNode___init(val_t  self, val_t  param0, val_t  param1, int* i
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_HashMapNode].i]) return;
-  ((abstract_collection___Couple___init_t)CALL(variable[0],COLOR_abstract_collection___Couple___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Couple::init*/;
+  CALL_abstract_collection___Couple___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Couple::init*/;
   variable[4] = variable[0];
-  ((abstract_collection___Couple___first__eq_t)CALL(variable[4],COLOR_abstract_collection___Couple___first__eq))(variable[4],  variable[1] /*k*/) /*Couple::first=*/;
+  CALL_abstract_collection___Couple___first__eq(variable[4])(variable[4],  variable[1] /*k*/) /*Couple::first=*/;
   variable[4] = variable[0];
-  ((abstract_collection___Couple___second__eq_t)CALL(variable[4],COLOR_abstract_collection___Couple___second__eq))(variable[4],  variable[2] /*v*/) /*Couple::second=*/;
+  CALL_abstract_collection___Couple___second__eq(variable[4])(variable[4],  variable[2] /*v*/) /*Couple::second=*/;
   return_label33: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_HashMapNode].i] = 1;
   tracehead = trace.prev;
@@ -860,11 +860,11 @@ val_t hash___HashMapIterator___item(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((hash___HashMapIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashMapIterator::is_ok*/;
+  variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*HashMapIterator::is_ok*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item, LOCATE_hash, 335); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/;
-  variable[2] = ((abstract_collection___Couple___second_t)CALL(variable[2],COLOR_abstract_collection___Couple___second))(variable[2]) /*Couple::second*/;
+  variable[2] = CALL_abstract_collection___Couple___second(variable[2])(variable[2]) /*Couple::second*/;
   variable[1] = variable[2];
   goto return_label34;
   return_label34: while(false);
@@ -879,12 +879,12 @@ void hash___HashMapIterator___next(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((hash___HashMapIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashMapIterator::is_ok*/;
+  variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*HashMapIterator::is_ok*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___next, LOCATE_hash, 353); nit_exit(1);}
   variable[2] = variable[0];
   variable[3] = variable[0];
   variable[3] = ATTR_hash___HashMapIterator____node(variable[3]) /*HashMapIterator::_node*/;
-  variable[3] = ((hash___HashNode___next_item_t)CALL(variable[3],COLOR_hash___HashNode___next_item))(variable[3]) /*HashNode::next_item*/;
+  variable[3] = CALL_hash___HashNode___next_item(variable[3])(variable[3]) /*HashNode::next_item*/;
   ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/ = variable[3];
   return_label35: while(false);
   tracehead = trace.prev;
@@ -899,7 +899,7 @@ val_t hash___HashMapIterator___is_ok(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[1] = variable[2];
   goto return_label36;
   return_label36: while(false);
@@ -914,11 +914,11 @@ val_t hash___HashMapIterator___key(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((hash___HashMapIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashMapIterator::is_ok*/;
+  variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*HashMapIterator::is_ok*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___key, LOCATE_hash, 347); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_hash___HashMapIterator____node(variable[2]) /*HashMapIterator::_node*/;
-  variable[2] = ((abstract_collection___Couple___first_t)CALL(variable[2],COLOR_abstract_collection___Couple___first))(variable[2]) /*Couple::first*/;
+  variable[2] = CALL_abstract_collection___Couple___first(variable[2])(variable[2]) /*Couple::first*/;
   variable[1] = variable[2];
   goto return_label37;
   return_label37: while(false);
@@ -934,11 +934,11 @@ void hash___HashMapIterator___item__eq(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((hash___HashMapIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*HashMapIterator::is_ok*/;
+  variable[3] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*HashMapIterator::is_ok*/;
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashMapIterator___item__eq, LOCATE_hash, 341); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_hash___HashMapIterator____node(variable[3]) /*HashMapIterator::_node*/;
-  ((abstract_collection___Couple___second__eq_t)CALL(variable[3],COLOR_abstract_collection___Couple___second__eq))(variable[3],  variable[1] /*value*/) /*Couple::second=*/;
+  CALL_abstract_collection___Couple___second__eq(variable[3])(variable[3],  variable[1] /*value*/) /*Couple::second=*/;
   return_label38: while(false);
   tracehead = trace.prev;
   return;
@@ -955,7 +955,7 @@ void hash___HashMapIterator___init(val_t  self, val_t  param0, int* init_table)
   variable[3] = variable[0];
   ATTR_hash___HashMapIterator____map(variable[3]) /*HashMapIterator::_map*/ =  variable[1] /*map*/;
   variable[3] = variable[0];
-  variable[4] = ((hash___HashCollection___first_item_t)CALL( variable[1] /*map*/,COLOR_hash___HashCollection___first_item))( variable[1] /*map*/) /*HashCollection::first_item*/;
+  variable[4] = CALL_hash___HashCollection___first_item( variable[1] /*map*/)( variable[1] /*map*/) /*HashCollection::first_item*/;
   ATTR_hash___HashMapIterator____node(variable[3]) /*HashMapIterator::_node*/ = variable[4];
   return_label39: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_HashMapIterator].i] = 1;
@@ -1005,9 +1005,9 @@ val_t hash___HashSet___has(val_t  self, val_t  param0) {
   variable[3] = variable[0];
   variable[3] = ATTR_hash___HashCollection____array(variable[3]) /*HashCollection::_array*/;
   variable[4] = variable[0];
-  variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4],  variable[1] /*item*/) /*HashCollection::index_at*/;
+  variable[4] = CALL_hash___HashCollection___index_at(variable[4])(variable[4],  variable[1] /*item*/) /*HashCollection::index_at*/;
   variable[3] = UNBOX_NativeArray(variable[3])[UNTAG_Int(variable[4])];
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[2] = variable[3];
   goto return_label42;
   return_label42: while(false);
@@ -1027,7 +1027,7 @@ val_t hash___HashSet___first(val_t  self) {
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSet___first, LOCATE_hash, 378); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_hash___HashCollection____first_item(variable[2]) /*HashCollection::_first_item*/;
-  variable[2] = ((hash___HashSetNode___key_t)CALL(variable[2],COLOR_hash___HashNode___key))(variable[2]) /*HashSetNode::key*/;
+  variable[2] = CALL_hash___HashNode___key(variable[2])(variable[2]) /*HashSetNode::key*/;
   variable[1] = variable[2];
   goto return_label43;
   return_label43: while(false);
@@ -1042,7 +1042,7 @@ void hash___HashSet___clear(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  ((hash___HashCollection___raz_t)CALL(variable[2],COLOR_hash___HashCollection___raz))(variable[2]) /*HashCollection::raz*/;
+  CALL_hash___HashCollection___raz(variable[2])(variable[2]) /*HashCollection::raz*/;
   return_label44: while(false);
   tracehead = trace.prev;
   return;
@@ -1057,8 +1057,8 @@ void hash___HashSet___remove(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4],  variable[1] /*item*/) /*HashCollection::index_at*/;
-  ((hash___HashCollection___remove_index_t)CALL(variable[3],COLOR_hash___HashCollection___remove_index))(variable[3], variable[4]) /*HashCollection::remove_index*/;
+  variable[4] = CALL_hash___HashCollection___index_at(variable[4])(variable[4],  variable[1] /*item*/) /*HashCollection::index_at*/;
+  CALL_hash___HashCollection___remove_index(variable[3])(variable[3], variable[4]) /*HashCollection::remove_index*/;
   return_label45: while(false);
   tracehead = trace.prev;
   return;
@@ -1072,19 +1072,19 @@ void hash___HashSet___add(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((hash___HashCollection___index_at_t)CALL(variable[4],COLOR_hash___HashCollection___index_at))(variable[4],  variable[1] /*item*/) /*HashCollection::index_at*/;
+  variable[4] = CALL_hash___HashCollection___index_at(variable[4])(variable[4],  variable[1] /*item*/) /*HashCollection::index_at*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
   variable[5] = ATTR_hash___HashCollection____array(variable[5]) /*HashCollection::_array*/;
   variable[5] = UNBOX_NativeArray(variable[5])[UNTAG_Int( variable[3] /*i*/)];
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*c*/,COLOR_kernel___Object_____eqeq))( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*c*/ ==  NIT_NULL /*null*/) || (( variable[4] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*c*/)( variable[4] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    ((hash___HashSetNode___key__eq_t)CALL( variable[4] /*c*/,COLOR_hash___HashSetNode___key__eq))( variable[4] /*c*/,  variable[1] /*item*/) /*HashSetNode::key=*/;
+    CALL_hash___HashSetNode___key__eq( variable[4] /*c*/)( variable[4] /*c*/,  variable[1] /*item*/) /*HashSetNode::key=*/;
   } else { /*if*/
     variable[5] = variable[0];
     variable[6] = NEW_HashSetNode_hash___HashSetNode___init( variable[1] /*item*/); /*new HashSetNode[E]*/
-    ((hash___HashCollection___store_t)CALL(variable[5],COLOR_hash___HashCollection___store))(variable[5],  variable[3] /*i*/, variable[6]) /*HashCollection::store*/;
+    CALL_hash___HashCollection___store(variable[5])(variable[5],  variable[3] /*i*/, variable[6]) /*HashCollection::store*/;
   }
   return_label46: while(false);
   tracehead = trace.prev;
@@ -1103,7 +1103,7 @@ void hash___HashSet___init(val_t  self, int* init_table) {
   variable[2] = variable[0];
   ATTR_hash___HashCollection____length(variable[2]) /*HashCollection::_length*/ =  TAG_Int(0);
   variable[2] = variable[0];
-  ((hash___HashCollection___enlarge_t)CALL(variable[2],COLOR_hash___HashCollection___enlarge))(variable[2],  TAG_Int(0)) /*HashCollection::enlarge*/;
+  CALL_hash___HashCollection___enlarge(variable[2])(variable[2],  TAG_Int(0)) /*HashCollection::enlarge*/;
   return_label47: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_HashSet].i] = 1;
   tracehead = trace.prev;
@@ -1152,11 +1152,11 @@ val_t hash___HashSetIterator___item(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((hash___HashSetIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashSetIterator::is_ok*/;
+  variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*HashSetIterator::is_ok*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___item, LOCATE_hash, 430); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_hash___HashSetIterator____node(variable[2]) /*HashSetIterator::_node*/;
-  variable[2] = ((hash___HashSetNode___key_t)CALL(variable[2],COLOR_hash___HashNode___key))(variable[2]) /*HashSetNode::key*/;
+  variable[2] = CALL_hash___HashNode___key(variable[2])(variable[2]) /*HashSetNode::key*/;
   variable[1] = variable[2];
   goto return_label49;
   return_label49: while(false);
@@ -1171,12 +1171,12 @@ void hash___HashSetIterator___next(val_t  self) {
   trace.file = LOCATE_hash;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((hash___HashSetIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*HashSetIterator::is_ok*/;
+  variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*HashSetIterator::is_ok*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_hash___HashSetIterator___next, LOCATE_hash, 436); nit_exit(1);}
   variable[2] = variable[0];
   variable[3] = variable[0];
   variable[3] = ATTR_hash___HashSetIterator____node(variable[3]) /*HashSetIterator::_node*/;
-  variable[3] = ((hash___HashNode___next_item_t)CALL(variable[3],COLOR_hash___HashNode___next_item))(variable[3]) /*HashNode::next_item*/;
+  variable[3] = CALL_hash___HashNode___next_item(variable[3])(variable[3]) /*HashNode::next_item*/;
   ATTR_hash___HashSetIterator____node(variable[2]) /*HashSetIterator::_node*/ = variable[3];
   return_label50: while(false);
   tracehead = trace.prev;
@@ -1191,7 +1191,7 @@ val_t hash___HashSetIterator___is_ok(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_hash___HashSetIterator____node(variable[2]) /*HashSetIterator::_node*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[1] = variable[2];
   goto return_label51;
   return_label51: while(false);
@@ -1210,7 +1210,7 @@ void hash___HashSetIterator___init(val_t  self, val_t  param0, int* init_table)
   variable[3] = variable[0];
   ATTR_hash___HashSetIterator____set(variable[3]) /*HashSetIterator::_set*/ =  variable[1] /*set*/;
   variable[3] = variable[0];
-  variable[4] = ((hash___HashCollection___first_item_t)CALL( variable[1] /*set*/,COLOR_hash___HashCollection___first_item))( variable[1] /*set*/) /*HashCollection::first_item*/;
+  variable[4] = CALL_hash___HashCollection___first_item( variable[1] /*set*/)( variable[1] /*set*/) /*HashCollection::first_item*/;
   ATTR_hash___HashSetIterator____node(variable[3]) /*HashSetIterator::_node*/ = variable[4];
   return_label52: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_HashSetIterator].i] = 1;
index da8cdeb..7afbe18 100644 (file)
@@ -21,65 +21,65 @@ extern const classtable_elt_t VFT_HashSetNode[];
 extern const classtable_elt_t VFT_HashSetIterator[];
 extern const char *LOCATE_hash;
 extern const int SFT_hash[];
-#define COLOR_hash___Object___hash SFT_hash[0]
-#define ID_HashCollection SFT_hash[1]
-#define COLOR_HashCollection SFT_hash[2]
-#define COLOR_hash___HashCollection____array SFT_hash[3]
-#define COLOR_hash___HashCollection____capacity SFT_hash[4]
-#define COLOR_hash___HashCollection____length SFT_hash[5]
-#define COLOR_hash___HashCollection____first_item SFT_hash[6]
-#define COLOR_hash___HashCollection____last_item SFT_hash[7]
-#define COLOR_hash___HashCollection____last_accessed_index SFT_hash[8]
-#define COLOR_hash___HashCollection____last_accessed_key SFT_hash[9]
-#define INIT_TABLE_POS_HashCollection SFT_hash[10]
-#define COLOR_hash___HashCollection___first_item SFT_hash[11]
-#define COLOR_hash___HashCollection___index_at SFT_hash[12]
-#define COLOR_hash___HashCollection___store SFT_hash[13]
-#define COLOR_hash___HashCollection___remove_index SFT_hash[14]
-#define COLOR_hash___HashCollection___raz SFT_hash[15]
-#define COLOR_hash___HashCollection___enlarge SFT_hash[16]
-#define COLOR_hash___HashCollection___init SFT_hash[17]
-#define ID_HashNode SFT_hash[18]
-#define COLOR_HashNode SFT_hash[19]
-#define COLOR_hash___HashNode____next_item SFT_hash[20]
-#define COLOR_hash___HashNode____prev_item SFT_hash[21]
-#define INIT_TABLE_POS_HashNode SFT_hash[22]
-#define COLOR_hash___HashNode___key SFT_hash[23]
-#define COLOR_hash___HashNode___next_item SFT_hash[24]
-#define COLOR_hash___HashNode___next_item__eq SFT_hash[25]
-#define COLOR_hash___HashNode___prev_item SFT_hash[26]
-#define COLOR_hash___HashNode___prev_item__eq SFT_hash[27]
-#define COLOR_hash___HashNode___init SFT_hash[28]
-#define ID_HashMap SFT_hash[29]
-#define COLOR_HashMap SFT_hash[30]
-#define INIT_TABLE_POS_HashMap SFT_hash[31]
-#define COLOR_hash___HashMap___init SFT_hash[32]
-#define ID_HashMapNode SFT_hash[33]
-#define COLOR_HashMapNode SFT_hash[34]
-#define INIT_TABLE_POS_HashMapNode SFT_hash[35]
-#define COLOR_hash___HashMapNode___init SFT_hash[36]
-#define ID_HashMapIterator SFT_hash[37]
-#define COLOR_HashMapIterator SFT_hash[38]
-#define COLOR_hash___HashMapIterator____map SFT_hash[39]
-#define COLOR_hash___HashMapIterator____node SFT_hash[40]
-#define INIT_TABLE_POS_HashMapIterator SFT_hash[41]
-#define COLOR_hash___HashMapIterator___init SFT_hash[42]
-#define ID_HashSet SFT_hash[43]
-#define COLOR_HashSet SFT_hash[44]
-#define INIT_TABLE_POS_HashSet SFT_hash[45]
-#define COLOR_hash___HashSet___init SFT_hash[46]
-#define ID_HashSetNode SFT_hash[47]
-#define COLOR_HashSetNode SFT_hash[48]
-#define COLOR_hash___HashSetNode____key SFT_hash[49]
-#define INIT_TABLE_POS_HashSetNode SFT_hash[50]
-#define COLOR_hash___HashSetNode___key__eq SFT_hash[51]
-#define COLOR_hash___HashSetNode___init SFT_hash[52]
-#define ID_HashSetIterator SFT_hash[53]
-#define COLOR_HashSetIterator SFT_hash[54]
-#define COLOR_hash___HashSetIterator____set SFT_hash[55]
-#define COLOR_hash___HashSetIterator____node SFT_hash[56]
-#define INIT_TABLE_POS_HashSetIterator SFT_hash[57]
-#define COLOR_hash___HashSetIterator___init SFT_hash[58]
+#define CALL_hash___Object___hash(recv) ((hash___Object___hash_t)CALL((recv), (SFT_hash[0] + 0)))
+#define ID_HashCollection (SFT_hash[1])
+#define COLOR_HashCollection (SFT_hash[2])
+#define ATTR_hash___HashCollection____array(recv) ATTR(recv, (SFT_hash[3] + 0))
+#define ATTR_hash___HashCollection____capacity(recv) ATTR(recv, (SFT_hash[3] + 1))
+#define ATTR_hash___HashCollection____length(recv) ATTR(recv, (SFT_hash[3] + 2))
+#define ATTR_hash___HashCollection____first_item(recv) ATTR(recv, (SFT_hash[3] + 3))
+#define ATTR_hash___HashCollection____last_item(recv) ATTR(recv, (SFT_hash[3] + 4))
+#define ATTR_hash___HashCollection____last_accessed_index(recv) ATTR(recv, (SFT_hash[3] + 5))
+#define ATTR_hash___HashCollection____last_accessed_key(recv) ATTR(recv, (SFT_hash[3] + 6))
+#define INIT_TABLE_POS_HashCollection (SFT_hash[4] + 0)
+#define CALL_hash___HashCollection___first_item(recv) ((hash___HashCollection___first_item_t)CALL((recv), (SFT_hash[4] + 1)))
+#define CALL_hash___HashCollection___index_at(recv) ((hash___HashCollection___index_at_t)CALL((recv), (SFT_hash[4] + 2)))
+#define CALL_hash___HashCollection___store(recv) ((hash___HashCollection___store_t)CALL((recv), (SFT_hash[4] + 3)))
+#define CALL_hash___HashCollection___remove_index(recv) ((hash___HashCollection___remove_index_t)CALL((recv), (SFT_hash[4] + 4)))
+#define CALL_hash___HashCollection___raz(recv) ((hash___HashCollection___raz_t)CALL((recv), (SFT_hash[4] + 5)))
+#define CALL_hash___HashCollection___enlarge(recv) ((hash___HashCollection___enlarge_t)CALL((recv), (SFT_hash[4] + 6)))
+#define CALL_hash___HashCollection___init(recv) ((hash___HashCollection___init_t)CALL((recv), (SFT_hash[4] + 7)))
+#define ID_HashNode (SFT_hash[5])
+#define COLOR_HashNode (SFT_hash[6])
+#define ATTR_hash___HashNode____next_item(recv) ATTR(recv, (SFT_hash[7] + 0))
+#define ATTR_hash___HashNode____prev_item(recv) ATTR(recv, (SFT_hash[7] + 1))
+#define INIT_TABLE_POS_HashNode (SFT_hash[8] + 0)
+#define CALL_hash___HashNode___key(recv) ((hash___HashNode___key_t)CALL((recv), (SFT_hash[8] + 1)))
+#define CALL_hash___HashNode___next_item(recv) ((hash___HashNode___next_item_t)CALL((recv), (SFT_hash[8] + 2)))
+#define CALL_hash___HashNode___next_item__eq(recv) ((hash___HashNode___next_item__eq_t)CALL((recv), (SFT_hash[8] + 3)))
+#define CALL_hash___HashNode___prev_item(recv) ((hash___HashNode___prev_item_t)CALL((recv), (SFT_hash[8] + 4)))
+#define CALL_hash___HashNode___prev_item__eq(recv) ((hash___HashNode___prev_item__eq_t)CALL((recv), (SFT_hash[8] + 5)))
+#define CALL_hash___HashNode___init(recv) ((hash___HashNode___init_t)CALL((recv), (SFT_hash[8] + 6)))
+#define ID_HashMap (SFT_hash[9])
+#define COLOR_HashMap (SFT_hash[10])
+#define INIT_TABLE_POS_HashMap (SFT_hash[11] + 0)
+#define CALL_hash___HashMap___init(recv) ((hash___HashMap___init_t)CALL((recv), (SFT_hash[11] + 1)))
+#define ID_HashMapNode (SFT_hash[12])
+#define COLOR_HashMapNode (SFT_hash[13])
+#define INIT_TABLE_POS_HashMapNode (SFT_hash[14] + 0)
+#define CALL_hash___HashMapNode___init(recv) ((hash___HashMapNode___init_t)CALL((recv), (SFT_hash[14] + 1)))
+#define ID_HashMapIterator (SFT_hash[15])
+#define COLOR_HashMapIterator (SFT_hash[16])
+#define ATTR_hash___HashMapIterator____map(recv) ATTR(recv, (SFT_hash[17] + 0))
+#define ATTR_hash___HashMapIterator____node(recv) ATTR(recv, (SFT_hash[17] + 1))
+#define INIT_TABLE_POS_HashMapIterator (SFT_hash[18] + 0)
+#define CALL_hash___HashMapIterator___init(recv) ((hash___HashMapIterator___init_t)CALL((recv), (SFT_hash[18] + 1)))
+#define ID_HashSet (SFT_hash[19])
+#define COLOR_HashSet (SFT_hash[20])
+#define INIT_TABLE_POS_HashSet (SFT_hash[21] + 0)
+#define CALL_hash___HashSet___init(recv) ((hash___HashSet___init_t)CALL((recv), (SFT_hash[21] + 1)))
+#define ID_HashSetNode (SFT_hash[22])
+#define COLOR_HashSetNode (SFT_hash[23])
+#define ATTR_hash___HashSetNode____key(recv) ATTR(recv, (SFT_hash[24] + 0))
+#define INIT_TABLE_POS_HashSetNode (SFT_hash[25] + 0)
+#define CALL_hash___HashSetNode___key__eq(recv) ((hash___HashSetNode___key__eq_t)CALL((recv), (SFT_hash[25] + 1)))
+#define CALL_hash___HashSetNode___init(recv) ((hash___HashSetNode___init_t)CALL((recv), (SFT_hash[25] + 2)))
+#define ID_HashSetIterator (SFT_hash[26])
+#define COLOR_HashSetIterator (SFT_hash[27])
+#define ATTR_hash___HashSetIterator____set(recv) ATTR(recv, (SFT_hash[28] + 0))
+#define ATTR_hash___HashSetIterator____node(recv) ATTR(recv, (SFT_hash[28] + 1))
+#define INIT_TABLE_POS_HashSetIterator (SFT_hash[29] + 0)
+#define CALL_hash___HashSetIterator___init(recv) ((hash___HashSetIterator___init_t)CALL((recv), (SFT_hash[29] + 1)))
 typedef val_t (* hash___Object___hash_t)(val_t  self);
 val_t hash___Object___hash(val_t  self);
 #define LOCATE_hash___Object___hash "hash::Object::hash"
@@ -104,16 +104,9 @@ val_t hash___Bool___hash(val_t  self);
 typedef val_t (* hash___HashCollection___length_t)(val_t  self);
 val_t hash___HashCollection___length(val_t  self);
 #define LOCATE_hash___HashCollection___length "hash::HashCollection::(abstract_collection::Collection::length)"
-#define ATTR_hash___HashCollection____array(recv) ATTR(recv, COLOR_hash___HashCollection____array)
-#define ATTR_hash___HashCollection____capacity(recv) ATTR(recv, COLOR_hash___HashCollection____capacity)
-#define ATTR_hash___HashCollection____length(recv) ATTR(recv, COLOR_hash___HashCollection____length)
-#define ATTR_hash___HashCollection____first_item(recv) ATTR(recv, COLOR_hash___HashCollection____first_item)
 typedef val_t (* hash___HashCollection___first_item_t)(val_t  self);
 val_t hash___HashCollection___first_item(val_t  self);
 #define LOCATE_hash___HashCollection___first_item "hash::HashCollection::first_item"
-#define ATTR_hash___HashCollection____last_item(recv) ATTR(recv, COLOR_hash___HashCollection____last_item)
-#define ATTR_hash___HashCollection____last_accessed_index(recv) ATTR(recv, COLOR_hash___HashCollection____last_accessed_index)
-#define ATTR_hash___HashCollection____last_accessed_key(recv) ATTR(recv, COLOR_hash___HashCollection____last_accessed_key)
 typedef val_t (* hash___HashCollection___index_at_t)(val_t  self, val_t  param0);
 val_t hash___HashCollection___index_at(val_t  self, val_t  param0);
 #define LOCATE_hash___HashCollection___index_at "hash::HashCollection::index_at"
@@ -136,14 +129,12 @@ val_t NEW_HashCollection_hash___HashCollection___init();
 typedef val_t (* hash___HashNode___key_t)(val_t  self);
 val_t hash___HashNode___key(val_t  self);
 #define LOCATE_hash___HashNode___key "hash::HashNode::key"
-#define ATTR_hash___HashNode____next_item(recv) ATTR(recv, COLOR_hash___HashNode____next_item)
 typedef val_t (* hash___HashNode___next_item_t)(val_t  self);
 val_t hash___HashNode___next_item(val_t  self);
 #define LOCATE_hash___HashNode___next_item "hash::HashNode::next_item"
 typedef void (* hash___HashNode___next_item__eq_t)(val_t  self, val_t  param0);
 void hash___HashNode___next_item__eq(val_t  self, val_t  param0);
 #define LOCATE_hash___HashNode___next_item__eq "hash::HashNode::next_item="
-#define ATTR_hash___HashNode____prev_item(recv) ATTR(recv, COLOR_hash___HashNode____prev_item)
 typedef val_t (* hash___HashNode___prev_item_t)(val_t  self);
 val_t hash___HashNode___prev_item(val_t  self);
 #define LOCATE_hash___HashNode___prev_item "hash::HashNode::prev_item"
@@ -213,8 +204,6 @@ val_t hash___HashMapIterator___key(val_t  self);
 typedef void (* hash___HashMapIterator___item__eq_t)(val_t  self, val_t  param0);
 void hash___HashMapIterator___item__eq(val_t  self, val_t  param0);
 #define LOCATE_hash___HashMapIterator___item__eq "hash::HashMapIterator::(abstract_collection::MapIterator::item=)"
-#define ATTR_hash___HashMapIterator____map(recv) ATTR(recv, COLOR_hash___HashMapIterator____map)
-#define ATTR_hash___HashMapIterator____node(recv) ATTR(recv, COLOR_hash___HashMapIterator____node)
 typedef void (* hash___HashMapIterator___init_t)(val_t  self, val_t  param0, int* init_table);
 void hash___HashMapIterator___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_hash___HashMapIterator___init "hash::HashMapIterator::init"
@@ -247,7 +236,6 @@ val_t NEW_HashSet_hash___HashSet___init();
 typedef val_t (* hash___HashSetNode___key_t)(val_t  self);
 val_t hash___HashSetNode___key(val_t  self);
 #define LOCATE_hash___HashSetNode___key "hash::HashSetNode::(hash::HashNode::key)"
-#define ATTR_hash___HashSetNode____key(recv) ATTR(recv, COLOR_hash___HashSetNode____key)
 typedef void (* hash___HashSetNode___key__eq_t)(val_t  self, val_t  param0);
 void hash___HashSetNode___key__eq(val_t  self, val_t  param0);
 #define LOCATE_hash___HashSetNode___key__eq "hash::HashSetNode::key="
@@ -264,8 +252,6 @@ void hash___HashSetIterator___next(val_t  self);
 typedef val_t (* hash___HashSetIterator___is_ok_t)(val_t  self);
 val_t hash___HashSetIterator___is_ok(val_t  self);
 #define LOCATE_hash___HashSetIterator___is_ok "hash::HashSetIterator::(abstract_collection::Iterator::is_ok)"
-#define ATTR_hash___HashSetIterator____set(recv) ATTR(recv, COLOR_hash___HashSetIterator____set)
-#define ATTR_hash___HashSetIterator____node(recv) ATTR(recv, COLOR_hash___HashSetIterator____node)
 typedef void (* hash___HashSetIterator___init_t)(val_t  self, val_t  param0, int* init_table);
 void hash___HashSetIterator___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_hash___HashSetIterator___init "hash::HashSetIterator::init"
index 576ab4c..95d0e9a 100644 (file)
@@ -12,13 +12,13 @@ val_t inheritance___MMModule___type_any(val_t  self) {
   if (once_bool_1) variable[4] = once_value_1;
   else {
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
-    variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/;
+    variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
     once_value_1 = variable[4];
     once_bool_1 = true;
   }
-  variable[3] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[3], variable[4]) /*MMModule::class_by_name*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___class_by_name(variable[3])(variable[3], variable[4]) /*MMModule::class_by_name*/;
   variable[2] = variable[3];
-  variable[3] = ((static_type___MMLocalClass___get_type_t)CALL( variable[2] /*c_name*/,COLOR_static_type___MMLocalClass___get_type))( variable[2] /*c_name*/) /*MMLocalClass::get_type*/;
+  variable[3] = CALL_static_type___MMLocalClass___get_type( variable[2] /*c_name*/)( variable[2] /*c_name*/) /*MMLocalClass::get_type*/;
   variable[1] = variable[3];
   goto return_label0;
   return_label0: while(false);
@@ -35,44 +35,44 @@ void inheritance___MMModule___import_global_classes(val_t  self) {
   variable[3] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMGlobalClass, HashSet[MMLocalClass]]*/
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___mhe))(variable[3]) /*MMModule::mhe*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[3])(variable[3]) /*MMModule::mhe*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMModule___import_global_classes, LOCATE_inheritance, 35); nit_exit(1);}
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMModule___mhe_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___mhe))(variable[3]) /*MMModule::mhe*/;
-  variable[3] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[3]) /*PartialOrderElement::direct_greaters*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___mhe(variable[3])(variable[3]) /*MMModule::mhe*/;
+  variable[3] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[3])(variable[3]) /*PartialOrderElement::direct_greaters*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((abstractmetamodel___MMModule___global_classes_t)CALL( variable[5] /*mod*/,COLOR_abstractmetamodel___MMModule___global_classes))( variable[5] /*mod*/) /*MMModule::global_classes*/;
-    variable[6] = ((array___AbstractArray___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*AbstractArray::iterator*/;
+    variable[6] = CALL_abstractmetamodel___MMModule___global_classes( variable[5] /*mod*/)( variable[5] /*mod*/) /*MMModule::global_classes*/;
+    variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+      variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[7])) break; /*for*/
-      variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+      variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
       variable[8] = variable[7];
       variable[9] = variable[0];
-      variable[9] = ((abstractmetamodel___MMModule___global_classes_t)CALL(variable[9],COLOR_abstractmetamodel___MMModule___global_classes))(variable[9]) /*MMModule::global_classes*/;
-      variable[9] = ((array___AbstractArray___has_t)CALL(variable[9],COLOR_abstract_collection___Collection___has))(variable[9],  variable[8] /*glob*/) /*AbstractArray::has*/;
+      variable[9] = CALL_abstractmetamodel___MMModule___global_classes(variable[9])(variable[9]) /*MMModule::global_classes*/;
+      variable[9] = CALL_abstract_collection___Collection___has(variable[9])(variable[9],  variable[8] /*glob*/) /*AbstractArray::has*/;
       if (UNTAG_Bool(variable[9])) { /*if*/
         goto continue_4;
       }
       variable[9] = variable[0];
       variable[9] = ATTR_abstractmetamodel___MMModule____global_classes(variable[9]) /*MMModule::_global_classes*/;
-      ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*glob*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*glob*/) /*AbstractArray::add*/;
       variable[9] = variable[0];
       variable[9] = ATTR_abstractmetamodel___MMModule____global_class_by_name(variable[9]) /*MMModule::_global_class_by_name*/;
-      variable[10] = ((abstractmetamodel___MMGlobalClass___name_t)CALL( variable[8] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___name))( variable[8] /*glob*/) /*MMGlobalClass::name*/;
-      ((abstract_collection___Map_____braeq_t)CALL(variable[9],COLOR_abstract_collection___Map_____braeq))(variable[9], variable[10],  variable[8] /*glob*/) /*Map::[]=*/;
+      variable[10] = CALL_abstractmetamodel___MMGlobalClass___name( variable[8] /*glob*/)( variable[8] /*glob*/) /*MMGlobalClass::name*/;
+      CALL_abstract_collection___Map_____braeq(variable[9])(variable[9], variable[10],  variable[8] /*glob*/) /*Map::[]=*/;
       continue_4: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
     }
     break_4: while(0);
     continue_3: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_3: while(0);
   return_label2: while(false);
@@ -88,15 +88,15 @@ void inheritance___MMModule___import_local_classes(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstractmetamodel___MMModule____global_classes(variable[2]) /*MMModule::_global_classes*/;
-  variable[2] = ((array___AbstractArray___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*AbstractArray::iterator*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[3] = ((array___ArrayIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*ArrayIterator::is_ok*/;
+    variable[3] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[3])) break; /*for*/
-    variable[3] = ((array___ArrayIterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*ArrayIterator::item*/;
+    variable[3] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*ArrayIterator::item*/;
     variable[4] = variable[3];
     variable[5] = variable[0];
-    variable[5] = ((abstractmetamodel___MMModule_____bra_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule_____bra))(variable[5],  variable[4] /*g*/) /*MMModule::[]*/;
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = CALL_abstractmetamodel___MMModule_____bra(variable[5])(variable[5],  variable[4] /*g*/) /*MMModule::[]*/;
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       goto continue_6;
     }
@@ -105,7 +105,7 @@ void inheritance___MMModule___import_local_classes(val_t  self) {
     variable[6] = variable[7];
     variable[5] = variable[6];
     continue_6: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*ArrayIterator::next*/;
   }
   break_6: while(0);
   return_label5: while(false);
@@ -120,19 +120,19 @@ val_t inheritance___MMLocalClass_____bra(val_t  self, val_t  param0) {
   trace.file = LOCATE_inheritance;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[0],COLOR_SUPER_inheritance___MMLocalClass_____bra))(variable[0],  variable[1] /*glob*/) /*super MMLocalClass::[]*/;
+  variable[4] = CALL_SUPER_inheritance___MMLocalClass_____bra(variable[0])(variable[0],  variable[1] /*glob*/) /*super MMLocalClass::[]*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[3] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[3] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[3] /*prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*prop*/)( variable[3] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
     variable[5] = ATTR_abstractmetamodel___MMLocalClass____global_properties(variable[5]) /*MMLocalClass::_global_properties*/;
-    variable[5] = ((abstract_collection___Collection___has_t)CALL(variable[5],COLOR_abstract_collection___Collection___has))(variable[5],  variable[1] /*glob*/) /*Collection::has*/;
+    variable[5] = CALL_abstract_collection___Collection___has(variable[5])(variable[5],  variable[1] /*glob*/) /*Collection::has*/;
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((inheritance___MMLocalClass___inherit_local_property_t)CALL(variable[4],COLOR_inheritance___MMLocalClass___inherit_local_property))(variable[4],  variable[1] /*glob*/) /*MMLocalClass::inherit_local_property*/;
+    variable[4] = CALL_inheritance___MMLocalClass___inherit_local_property(variable[4])(variable[4],  variable[1] /*glob*/) /*MMLocalClass::inherit_local_property*/;
     variable[3] = variable[4] /*prop=*/;
   }
   variable[2] =  variable[3] /*prop*/;
@@ -149,7 +149,7 @@ void inheritance___MMLocalClass___compute_super_classes(val_t  self) {
   trace.file = LOCATE_inheritance;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((inheritance___MMLocalClass___computed_super_classes_t)CALL(variable[2],COLOR_inheritance___MMLocalClass___computed_super_classes))(variable[2]) /*MMLocalClass::computed_super_classes*/;
+  variable[2] = CALL_inheritance___MMLocalClass___computed_super_classes(variable[2])(variable[2]) /*MMLocalClass::computed_super_classes*/;
   if (UNTAG_Bool(variable[2])) { /*if*/
     goto return_label8;
   } else { /*if*/
@@ -157,19 +157,20 @@ void inheritance___MMLocalClass___compute_super_classes(val_t  self) {
     variable[2] = ATTR_inheritance___MMLocalClass____computing_super(variable[2]) /*MMLocalClass::_computing_super*/;
     if (UNTAG_Bool(variable[2])) { /*if*/
       variable[2] = variable[0];
-      variable[2] = ((file___Object___stderr_t)CALL(variable[2],COLOR_file___Object___stderr))(variable[2]) /*Object::stderr*/;
-      variable[3] = NEW_String_string___String___init(); /*new String*/
+      variable[2] = CALL_file___Object___stderr(variable[2])(variable[2]) /*Object::stderr*/;
+      variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Fatal error: Inheritance loop for class "), TAG_Int(40)); /*new String*/
       variable[5] = variable[4];
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
       variable[6] = variable[0];
       variable[7] = variable[6];
-      variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-      ((file___OFStream___write_t)CALL(variable[2],COLOR_stream___OStream___write))(variable[2], variable[3]) /*OFStream::write*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+      variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+      CALL_stream___OStream___write(variable[2])(variable[2], variable[3]) /*OFStream::write*/;
       variable[2] = variable[0];
       exit(UNTAG_Int( TAG_Int(1)));
     }
@@ -179,29 +180,29 @@ void inheritance___MMLocalClass___compute_super_classes(val_t  self) {
   variable[3] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
   variable[2] = variable[3];
   variable[3] = variable[0];
-  ((inheritance___MMLocalClass___add_explicit_classes_t)CALL(variable[3],COLOR_inheritance___MMLocalClass___add_explicit_classes))(variable[3],  variable[2] /*supers*/) /*MMLocalClass::add_explicit_classes*/;
+  CALL_inheritance___MMLocalClass___add_explicit_classes(variable[3])(variable[3],  variable[2] /*supers*/) /*MMLocalClass::add_explicit_classes*/;
   variable[3] = variable[0];
-  ((inheritance___MMLocalClass___add_super_classes_t)CALL(variable[3],COLOR_inheritance___MMLocalClass___add_super_classes))(variable[3],  variable[2] /*supers*/) /*MMLocalClass::add_super_classes*/;
+  CALL_inheritance___MMLocalClass___add_super_classes(variable[3])(variable[3],  variable[2] /*supers*/) /*MMLocalClass::add_super_classes*/;
   variable[3] = variable[0];
-  ((inheritance___MMLocalClass___add_default_any_class_t)CALL(variable[3],COLOR_inheritance___MMLocalClass___add_default_any_class))(variable[3],  variable[2] /*supers*/) /*MMLocalClass::add_default_any_class*/;
+  CALL_inheritance___MMLocalClass___add_default_any_class(variable[3])(variable[3],  variable[2] /*supers*/) /*MMLocalClass::add_default_any_class*/;
   variable[3] = variable[0];
-  ((inheritance___MMLocalClass___compute_super_parents_t)CALL(variable[3],COLOR_inheritance___MMLocalClass___compute_super_parents))(variable[3],  variable[2] /*supers*/) /*MMLocalClass::compute_super_parents*/;
+  CALL_inheritance___MMLocalClass___compute_super_parents(variable[3])(variable[3],  variable[2] /*supers*/) /*MMLocalClass::compute_super_parents*/;
   variable[4] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMLocalClass]*/
   variable[3] = variable[4];
-  ((abstract_collection___SimpleCollection___add_all_t)CALL( variable[3] /*set*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable[3] /*set*/,  variable[2] /*supers*/) /*SimpleCollection::add_all*/;
-  variable[5] = ((array___Collection___to_a_t)CALL( variable[3] /*set*/,COLOR_array___Collection___to_a))( variable[3] /*set*/) /*Collection::to_a*/;
+  CALL_abstract_collection___SimpleCollection___add_all( variable[3] /*set*/)( variable[3] /*set*/,  variable[2] /*supers*/) /*SimpleCollection::add_all*/;
+  variable[5] = CALL_array___Collection___to_a( variable[3] /*set*/)( variable[3] /*set*/) /*Collection::to_a*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___module))(variable[5]) /*MMLocalClass::module*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___module(variable[5])(variable[5]) /*MMLocalClass::module*/;
   variable[6] = variable[0];
-  ((abstractmetamodel___MMModule___set_supers_class_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___set_supers_class))(variable[5], variable[6],  variable[4] /*u*/) /*MMModule::set_supers_class*/;
+  CALL_abstractmetamodel___MMModule___set_supers_class(variable[5])(variable[5], variable[6],  variable[4] /*u*/) /*MMModule::set_supers_class*/;
   variable[5] = variable[0];
   variable[5] = ATTR_abstractmetamodel___MMLocalClass____crhe(variable[5]) /*MMLocalClass::_crhe*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___compute_super_classes, LOCATE_inheritance, 85); nit_exit(1);}
   variable[5] = variable[0];
   variable[5] = ATTR_abstractmetamodel___MMLocalClass____cshe(variable[5]) /*MMLocalClass::_cshe*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___compute_super_classes, LOCATE_inheritance, 86); nit_exit(1);}
   variable[5] = variable[0];
   ATTR_inheritance___MMLocalClass____computing_super(variable[5]) /*MMLocalClass::_computing_super*/ =  TAG_Bool(false);
@@ -217,44 +218,44 @@ void inheritance___MMLocalClass___compute_ancestors(val_t  self) {
   trace.file = LOCATE_inheritance;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((inheritance___MMLocalClass___computed_super_classes_t)CALL(variable[2],COLOR_inheritance___MMLocalClass___computed_super_classes))(variable[2]) /*MMLocalClass::computed_super_classes*/;
+  variable[2] = CALL_inheritance___MMLocalClass___computed_super_classes(variable[2])(variable[2]) /*MMLocalClass::computed_super_classes*/;
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___compute_ancestors, LOCATE_inheritance, 93); nit_exit(1);}
   variable[2] = variable[0];
-  variable[2] = ((inheritance___MMLocalClass___computed_ancestors_t)CALL(variable[2],COLOR_inheritance___MMLocalClass___computed_ancestors))(variable[2]) /*MMLocalClass::computed_ancestors*/;
+  variable[2] = CALL_inheritance___MMLocalClass___computed_ancestors(variable[2])(variable[2]) /*MMLocalClass::computed_ancestors*/;
   if (UNTAG_Bool(variable[2])) { /*if*/
     goto return_label9;
   }
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((inheritance___MMLocalClass___build_ancestors_t)CALL(variable[4],COLOR_inheritance___MMLocalClass___build_ancestors))(variable[4]) /*MMLocalClass::build_ancestors*/;
-  variable[3] = ((inheritance___MMLocalClass___group_ancestors_t)CALL(variable[3],COLOR_inheritance___MMLocalClass___group_ancestors))(variable[3], variable[4]) /*MMLocalClass::group_ancestors*/;
+  variable[4] = CALL_inheritance___MMLocalClass___build_ancestors(variable[4])(variable[4]) /*MMLocalClass::build_ancestors*/;
+  variable[3] = CALL_inheritance___MMLocalClass___group_ancestors(variable[3])(variable[3], variable[4]) /*MMLocalClass::group_ancestors*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   variable[4] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMLocalClass, MMAncestor]*/
   ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/ = variable[4];
-  variable[3] = ((abstract_collection___Map___iterator_t)CALL( variable[2] /*ancestors*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*ancestors*/) /*Map::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[2] /*ancestors*/)( variable[2] /*ancestors*/) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((abstract_collection___Collection___length_t)CALL( variable[5] /*set*/,COLOR_abstract_collection___Collection___length))( variable[5] /*set*/) /*Collection::length*/;
+    variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*set*/)( variable[5] /*set*/) /*Collection::length*/;
     variable[6] = TAG_Bool((variable[6])==( TAG_Int(1)));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
-      variable[7] = ((abstract_collection___Collection___first_t)CALL( variable[5] /*set*/,COLOR_abstract_collection___Collection___first))( variable[5] /*set*/) /*Collection::first*/;
-      ((static_type___MMLocalClass___add_ancestor_t)CALL(variable[6],COLOR_static_type___MMLocalClass___add_ancestor))(variable[6], variable[7]) /*MMLocalClass::add_ancestor*/;
+      variable[7] = CALL_abstract_collection___Collection___first( variable[5] /*set*/)( variable[5] /*set*/) /*Collection::first*/;
+      CALL_static_type___MMLocalClass___add_ancestor(variable[6])(variable[6], variable[7]) /*MMLocalClass::add_ancestor*/;
     } else { /*if*/
       variable[7] = variable[0];
-      variable[7] = ((inheritance___MMLocalClass___merge_ancestors_t)CALL(variable[7],COLOR_inheritance___MMLocalClass___merge_ancestors))(variable[7],  variable[5] /*set*/) /*MMLocalClass::merge_ancestors*/;
+      variable[7] = CALL_inheritance___MMLocalClass___merge_ancestors(variable[7])(variable[7],  variable[5] /*set*/) /*MMLocalClass::merge_ancestors*/;
       variable[6] = variable[7];
       variable[7] = variable[0];
       variable[8] = variable[0];
-      variable[8] = ((inheritance___MMLocalClass___merge_ancestors_t)CALL(variable[8],COLOR_inheritance___MMLocalClass___merge_ancestors))(variable[8],  variable[5] /*set*/) /*MMLocalClass::merge_ancestors*/;
-      ((static_type___MMLocalClass___add_ancestor_t)CALL(variable[7],COLOR_static_type___MMLocalClass___add_ancestor))(variable[7], variable[8]) /*MMLocalClass::add_ancestor*/;
+      variable[8] = CALL_inheritance___MMLocalClass___merge_ancestors(variable[8])(variable[8],  variable[5] /*set*/) /*MMLocalClass::merge_ancestors*/;
+      CALL_static_type___MMLocalClass___add_ancestor(variable[7])(variable[7], variable[8]) /*MMLocalClass::add_ancestor*/;
     }
     continue_10: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_10: while(0);
   return_label9: while(false);
@@ -270,7 +271,7 @@ void inheritance___MMLocalClass___inherit_global_properties(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstractmetamodel___MMLocalClass____global_properties(variable[2]) /*MMLocalClass::_global_properties*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[2])) { /*if*/
     goto return_label11;
   }
@@ -290,48 +291,48 @@ void inheritance___MMLocalClass___inherit_global_properties(val_t  self) {
   variable[4] = ATTR_abstractmetamodel___MMLocalClass____global_properties(variable[4]) /*MMLocalClass::_global_properties*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___che_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___che))(variable[4]) /*MMLocalClass::che*/;
-  variable[4] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[4]) /*PartialOrderElement::direct_greaters*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___che(variable[4])(variable[4]) /*MMLocalClass::che*/;
+  variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[4])(variable[4]) /*PartialOrderElement::direct_greaters*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[6] /*c*/) /*MMLocalClass::global_properties*/;
-    variable[7] = ((abstract_collection___Collection___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*Collection::iterator*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::global_properties*/;
+    variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[8] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*Iterator::is_ok*/;
+      variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[8])) break; /*for*/
-      variable[8] = ((abstract_collection___Iterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*Iterator::item*/;
+      variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/;
       variable[9] = variable[8];
-      variable[10] = ((abstract_collection___Collection___has_t)CALL( variable[3] /*set*/,COLOR_abstract_collection___Collection___has))( variable[3] /*set*/,  variable[9] /*glob*/) /*Collection::has*/;
+      variable[10] = CALL_abstract_collection___Collection___has( variable[3] /*set*/)( variable[3] /*set*/,  variable[9] /*glob*/) /*Collection::has*/;
       if (UNTAG_Bool(variable[10])) { /*if*/
         goto continue_13;
       }
-      ((abstract_collection___SimpleCollection___add_t)CALL( variable[3] /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*set*/,  variable[9] /*glob*/) /*SimpleCollection::add*/;
-      variable[10] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable[9] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable[9] /*glob*/) /*MMGlobalProperty::is_init*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[3] /*set*/)( variable[3] /*set*/,  variable[9] /*glob*/) /*SimpleCollection::add*/;
+      variable[10] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[9] /*glob*/)( variable[9] /*glob*/) /*MMGlobalProperty::is_init*/;
       variable[11] = variable[10];
       if (UNTAG_Bool(variable[11])) { /* and */
-        variable[11] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[9] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[9] /*glob*/) /*MMGlobalProperty::intro*/;
-        variable[11] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[11],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[11]) /*MMLocalProperty::local_class*/;
-        variable[11] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[11],COLOR_abstractmetamodel___MMLocalClass___global))(variable[11]) /*MMLocalClass::global*/;
+        variable[11] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[9] /*glob*/)( variable[9] /*glob*/) /*MMGlobalProperty::intro*/;
+        variable[11] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[11])(variable[11]) /*MMLocalProperty::local_class*/;
+        variable[11] = CALL_abstractmetamodel___MMLocalClass___global(variable[11])(variable[11]) /*MMLocalClass::global*/;
         variable[12] = variable[0];
-        variable[12] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___global))(variable[12]) /*MMLocalClass::global*/;
-        variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[11] == variable[12]) || ((variable[11] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11],variable[12])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))(variable[11], variable[12]) /*Object::==*/)))))));
+        variable[12] = CALL_abstractmetamodel___MMLocalClass___global(variable[12])(variable[12]) /*MMLocalClass::global*/;
+        variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[11] == variable[12]) || ((variable[11] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[11])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11],variable[12])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[11])(variable[11], variable[12]) /*Object::==*/)))))));
       }
       variable[10] = variable[11];
       if (UNTAG_Bool(variable[10])) { /*if*/
         goto continue_13;
       }
       variable[10] = variable[0];
-      ((inheritance___MMLocalClass___make_visible_an_inherited_global_property_t)CALL(variable[10],COLOR_inheritance___MMLocalClass___make_visible_an_inherited_global_property))(variable[10],  variable[9] /*glob*/) /*MMLocalClass::make_visible_an_inherited_global_property*/;
+      CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(variable[10])(variable[10],  variable[9] /*glob*/) /*MMLocalClass::make_visible_an_inherited_global_property*/;
       continue_13: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/;
     }
     break_13: while(0);
     continue_12: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_12: while(0);
   return_label11: while(false);
@@ -349,20 +350,20 @@ void inheritance___MMLocalClass___make_visible_an_inherited_global_property(val_
   variable[4] = variable[0];
   variable[4] = ATTR_abstractmetamodel___MMLocalClass____properties_by_name(variable[4]) /*MMLocalClass::_properties_by_name*/;
   variable[3] = variable[4];
-  variable[5] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[1] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
-  variable[5] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[5]) /*MMLocalProperty::name*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___name(variable[5])(variable[5]) /*MMLocalProperty::name*/;
   variable[4] = variable[5];
   /*variable[5] is variable conf_set*/
-  variable[6] = ((abstract_collection___Map___has_key_t)CALL( variable[3] /*names*/,COLOR_abstract_collection___Map___has_key))( variable[3] /*names*/,  variable[4] /*gname*/) /*Map::has_key*/;
+  variable[6] = CALL_abstract_collection___Map___has_key( variable[3] /*names*/)( variable[3] /*names*/,  variable[4] /*gname*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL( variable[3] /*names*/,COLOR_abstract_collection___Map_____bra))( variable[3] /*names*/,  variable[4] /*gname*/) /*Map::[]*/;
+    variable[6] = CALL_abstract_collection___Map_____bra( variable[3] /*names*/)( variable[3] /*names*/,  variable[4] /*gname*/) /*Map::[]*/;
     variable[5] = variable[6] /*conf_set=*/;
   } else { /*if*/
     variable[6] = NEW_Array_array___Array___init(); /*new Array[MMGlobalProperty]*/
     variable[5] = variable[6] /*conf_set=*/;
-    ((abstract_collection___Map_____braeq_t)CALL( variable[3] /*names*/,COLOR_abstract_collection___Map_____braeq))( variable[3] /*names*/,  variable[4] /*gname*/,  variable[5] /*conf_set*/) /*Map::[]=*/;
+    CALL_abstract_collection___Map_____braeq( variable[3] /*names*/)( variable[3] /*names*/,  variable[4] /*gname*/,  variable[5] /*conf_set*/) /*Map::[]=*/;
   }
-  ((array___AbstractArray___add_t)CALL( variable[5] /*conf_set*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*conf_set*/,  variable[1] /*glob*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[5] /*conf_set*/)( variable[5] /*conf_set*/,  variable[1] /*glob*/) /*AbstractArray::add*/;
   return_label14: while(false);
   tracehead = trace.prev;
   return;
@@ -377,7 +378,7 @@ void inheritance___MMLocalClass___add_direct_parent(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_inheritance___MMLocalClass____direct_parents(variable[3]) /*MMLocalClass::_direct_parents*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*p*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*p*/) /*AbstractArray::add*/;
   return_label15: while(false);
   tracehead = trace.prev;
   return;
@@ -391,12 +392,12 @@ val_t inheritance___MMLocalClass___computed_super_classes(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_abstractmetamodel___MMLocalClass____crhe(variable[2]) /*MMLocalClass::_crhe*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[3] = variable[2];
   if (UNTAG_Bool(variable[3])) { /* and */
     variable[3] = variable[0];
     variable[3] = ATTR_abstractmetamodel___MMLocalClass____cshe(variable[3]) /*MMLocalClass::_cshe*/;
-    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   }
   variable[2] = variable[3];
   variable[1] = variable[2];
@@ -414,7 +415,7 @@ val_t inheritance___MMLocalClass___computed_ancestors(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_static_type___MMLocalClass____ancestors(variable[2]) /*MMLocalClass::_ancestors*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[1] = variable[2];
   goto return_label17;
   return_label17: while(false);
@@ -430,41 +431,41 @@ val_t inheritance___MMLocalClass___ancestor_for(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMLocalClass___ancestors_t)CALL(variable[3],COLOR_static_type___MMLocalClass___ancestors))(variable[3]) /*MMLocalClass::ancestors*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_static_type___MMLocalClass___ancestors(variable[3])(variable[3]) /*MMLocalClass::ancestors*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___ancestor_for, LOCATE_inheritance, 175); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*c*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*c*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*c*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*c*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label18;
   }
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___module))(variable[4]) /*MMLocalClass::module*/;
-  variable[4] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___for_module))( variable[1] /*c*/, variable[4]) /*MMLocalClass::for_module*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___module(variable[4])(variable[4]) /*MMLocalClass::module*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___for_module( variable[1] /*c*/)( variable[1] /*c*/, variable[4]) /*MMLocalClass::for_module*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[4]) /*MMLocalClass::cshe*/;
-  variable[4] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____leq))(variable[4],  variable[3] /*a*/) /*PartialOrderElement::<=*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/;
+  variable[4] = CALL_partial_order___PartialOrderElement_____leq(variable[4])(variable[4],  variable[3] /*a*/) /*PartialOrderElement::<=*/;
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___ancestor_for, LOCATE_inheritance, 181); nit_exit(1);}
   /*variable[4] is variable ra*/
   variable[5] = variable[0];
   variable[5] = ATTR_static_type___MMLocalClass____ancestors(variable[5]) /*MMLocalClass::_ancestors*/;
-  variable[5] = ((abstract_collection___Map___has_key_t)CALL(variable[5],COLOR_abstract_collection___Map___has_key))(variable[5],  variable[3] /*a*/) /*Map::has_key*/;
+  variable[5] = CALL_abstract_collection___Map___has_key(variable[5])(variable[5],  variable[3] /*a*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[5] = ATTR_static_type___MMLocalClass____ancestors(variable[5]) /*MMLocalClass::_ancestors*/;
-    variable[5] = ((abstract_collection___Map_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[3] /*a*/) /*Map::[]*/;
+    variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[3] /*a*/) /*Map::[]*/;
     variable[4] = variable[5] /*ra=*/;
   } else { /*if*/
-    variable[5] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[1] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[1] /*c*/) /*MMLocalClass::global*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalClass___global( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::global*/;
     variable[6] = variable[0];
     variable[6] = ATTR_abstractmetamodel___MMLocalClass____global(variable[6]) /*MMLocalClass::_global*/;
-    variable[5] = TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], variable[6]) /*Object::==*/)))));
+    variable[5] = TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], variable[6]) /*Object::==*/)))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = variable[0];
       variable[6] = NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init(variable[5],  variable[1] /*c*/); /*new MMRefineAncestor*/
@@ -472,8 +473,8 @@ val_t inheritance___MMLocalClass___ancestor_for(val_t  self, val_t  param0) {
       variable[4] = variable[5] /*ra=*/;
     } else { /*if*/
       variable[5] = variable[0];
-      variable[5] = ((static_type___MMLocalClass___get_type_t)CALL(variable[5],COLOR_static_type___MMLocalClass___get_type))(variable[5]) /*MMLocalClass::get_type*/;
-      variable[6] = ((static_type___MMLocalClass___get_type_t)CALL( variable[1] /*c*/,COLOR_static_type___MMLocalClass___get_type))( variable[1] /*c*/) /*MMLocalClass::get_type*/;
+      variable[5] = CALL_static_type___MMLocalClass___get_type(variable[5])(variable[5]) /*MMLocalClass::get_type*/;
+      variable[6] = CALL_static_type___MMLocalClass___get_type( variable[1] /*c*/)( variable[1] /*c*/) /*MMLocalClass::get_type*/;
       variable[7] = NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init(variable[5], variable[6]); /*new MMSpecAncestor*/
       variable[5] = variable[7];
       variable[4] = variable[5] /*ra=*/;
@@ -481,7 +482,7 @@ val_t inheritance___MMLocalClass___ancestor_for(val_t  self, val_t  param0) {
   }
   variable[5] = variable[0];
   variable[5] = ATTR_static_type___MMLocalClass____ancestors(variable[5]) /*MMLocalClass::_ancestors*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5],  variable[1] /*c*/,  variable[4] /*ra*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[5])(variable[5],  variable[1] /*c*/,  variable[4] /*ra*/) /*Map::[]=*/;
   variable[2] =  variable[4] /*ra*/;
   goto return_label18;
   return_label18: while(false);
@@ -497,34 +498,34 @@ void inheritance___MMLocalClass___add_default_any_class(val_t  self, val_t  para
   trace.file = LOCATE_inheritance;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((array___AbstractArray___is_empty_t)CALL( variable[1] /*supers*/,COLOR_abstract_collection___Collection___is_empty))( variable[1] /*supers*/) /*AbstractArray::is_empty*/;
+  variable[3] = CALL_abstract_collection___Collection___is_empty( variable[1] /*supers*/)( variable[1] /*supers*/) /*AbstractArray::is_empty*/;
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___name))(variable[4]) /*MMLocalClass::name*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalClass___name(variable[4])(variable[4]) /*MMLocalClass::name*/;
     if (once_bool_20) variable[5] = once_value_20;
     else {
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
-      variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
+      variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
       once_value_20 = variable[5];
       once_bool_20 = true;
     }
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], variable[5]) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[5]) /*Object::==*/)))))));
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___module))(variable[4]) /*MMLocalClass::module*/;
-    variable[4] = ((inheritance___MMModule___type_any_t)CALL(variable[4],COLOR_inheritance___MMModule___type_any))(variable[4]) /*MMModule::type_any*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalClass___module(variable[4])(variable[4]) /*MMLocalClass::module*/;
+    variable[4] = CALL_inheritance___MMModule___type_any(variable[4])(variable[4]) /*MMModule::type_any*/;
     variable[3] = variable[4];
-    variable[4] = ((static_type___MMType___local_class_t)CALL( variable[3] /*t_any*/,COLOR_static_type___MMType___local_class))( variable[3] /*t_any*/) /*MMType::local_class*/;
-    ((array___AbstractArray___add_t)CALL( variable[1] /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable[1] /*supers*/, variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_static_type___MMType___local_class( variable[3] /*t_any*/)( variable[3] /*t_any*/) /*MMType::local_class*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[1] /*supers*/)( variable[1] /*supers*/, variable[4]) /*AbstractArray::add*/;
     variable[5] = variable[0];
     variable[6] = NEW_MMDefaultAncestor_inheritance___MMDefaultAncestor___init(variable[5],  variable[3] /*t_any*/); /*new MMDefaultAncestor*/
     variable[5] = variable[6];
     variable[4] = variable[5];
     variable[5] = variable[0];
-    ((inheritance___MMLocalClass___add_direct_parent_t)CALL(variable[5],COLOR_inheritance___MMLocalClass___add_direct_parent))(variable[5],  variable[4] /*default*/) /*MMLocalClass::add_direct_parent*/;
+    CALL_inheritance___MMLocalClass___add_direct_parent(variable[5])(variable[5],  variable[4] /*default*/) /*MMLocalClass::add_direct_parent*/;
   }
   return_label19: while(false);
   tracehead = trace.prev;
@@ -540,41 +541,41 @@ void inheritance___MMLocalClass___add_super_classes(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____crhe(variable[3]) /*MMLocalClass::_crhe*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___add_super_classes, LOCATE_inheritance, 217); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____crhe(variable[3]) /*MMLocalClass::_crhe*/;
-  variable[3] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[3]) /*PartialOrderElement::direct_greaters*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[3])(variable[3]) /*PartialOrderElement::direct_greaters*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[5] /*ref*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[5] /*ref*/) /*MMLocalClass::cshe*/;
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[5] /*ref*/)( variable[5] /*ref*/) /*MMLocalClass::cshe*/;
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___add_super_classes, LOCATE_inheritance, 219); nit_exit(1);}
-    variable[6] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[5] /*ref*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[5] /*ref*/) /*MMLocalClass::cshe*/;
-    variable[6] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[6]) /*PartialOrderElement::direct_greaters*/;
-    variable[6] = ((array___AbstractArray___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*AbstractArray::iterator*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[5] /*ref*/)( variable[5] /*ref*/) /*MMLocalClass::cshe*/;
+    variable[6] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[6])(variable[6]) /*PartialOrderElement::direct_greaters*/;
+    variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+      variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[7])) break; /*for*/
-      variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+      variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
       variable[8] = variable[7];
       variable[10] = variable[0];
       variable[10] = ATTR_abstractmetamodel___MMLocalClass____module(variable[10]) /*MMLocalClass::_module*/;
-      variable[10] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL( variable[8] /*sup*/,COLOR_abstractmetamodel___MMLocalClass___for_module))( variable[8] /*sup*/, variable[10]) /*MMLocalClass::for_module*/;
+      variable[10] = CALL_abstractmetamodel___MMLocalClass___for_module( variable[8] /*sup*/)( variable[8] /*sup*/, variable[10]) /*MMLocalClass::for_module*/;
       variable[9] = variable[10];
-      variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*cla*/ ==  NIT_NULL /*null*/) || (( variable[9] /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*cla*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*cla*/,COLOR_kernel___Object_____eqeq))( variable[9] /*cla*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*cla*/ ==  NIT_NULL /*null*/) || (( variable[9] /*cla*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*cla*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*cla*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*cla*/)( variable[9] /*cla*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___add_super_classes, LOCATE_inheritance, 222); nit_exit(1);}
-      ((array___AbstractArray___add_t)CALL( variable[1] /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable[1] /*supers*/,  variable[9] /*cla*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[1] /*supers*/)( variable[1] /*supers*/,  variable[9] /*cla*/) /*AbstractArray::add*/;
       continue_23: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
     }
     break_23: while(0);
     continue_22: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_22: while(0);
   return_label21: while(false);
@@ -591,16 +592,16 @@ void inheritance___MMLocalClass___add_explicit_classes(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_inheritance___MMLocalClass____direct_parents(variable[3]) /*MMLocalClass::_direct_parents*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((static_type___MMAncestor___local_class_t)CALL( variable[5] /*p*/,COLOR_static_type___MMAncestor___local_class))( variable[5] /*p*/) /*MMAncestor::local_class*/;
-    ((array___AbstractArray___add_t)CALL( variable[1] /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable[1] /*supers*/, variable[6]) /*AbstractArray::add*/;
+    variable[6] = CALL_static_type___MMAncestor___local_class( variable[5] /*p*/)( variable[5] /*p*/) /*MMAncestor::local_class*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[1] /*supers*/)( variable[1] /*supers*/, variable[6]) /*AbstractArray::add*/;
     continue_25: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_25: while(0);
   return_label24: while(false);
@@ -615,17 +616,17 @@ void inheritance___MMLocalClass___compute_super_parents(val_t  self, val_t  para
   trace.file = LOCATE_inheritance;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*supers*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*supers*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*supers*/)( variable[1] /*supers*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*p*/ ==  NIT_NULL /*null*/) || (( variable[5] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*p*/,COLOR_kernel___Object_____eqeq))( variable[5] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*p*/ ==  NIT_NULL /*null*/) || (( variable[5] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*p*/)( variable[5] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___compute_super_parents, LOCATE_inheritance, 240); nit_exit(1);}
-    ((inheritance___MMLocalClass___compute_super_classes_t)CALL( variable[5] /*p*/,COLOR_inheritance___MMLocalClass___compute_super_classes))( variable[5] /*p*/) /*MMLocalClass::compute_super_classes*/;
+    CALL_inheritance___MMLocalClass___compute_super_classes( variable[5] /*p*/)( variable[5] /*p*/) /*MMLocalClass::compute_super_classes*/;
     continue_27: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_27: while(0);
   return_label26: while(false);
@@ -643,44 +644,44 @@ val_t inheritance___MMLocalClass___build_ancestors(val_t  self) {
   variable[2] = variable[3];
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____crhe(variable[3]) /*MMLocalClass::_crhe*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___build_ancestors, LOCATE_inheritance, 250); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____crhe(variable[3]) /*MMLocalClass::_crhe*/;
-  variable[3] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[3]) /*PartialOrderElement::direct_greaters*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[3])(variable[3]) /*PartialOrderElement::direct_greaters*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = variable[0];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*p*/ == variable[6]) || (( variable[5] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*p*/,variable[6])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*p*/,COLOR_kernel___Object_____eqeq))( variable[5] /*p*/, variable[6]) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*p*/ == variable[6]) || (( variable[5] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*p*/,variable[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*p*/)( variable[5] /*p*/, variable[6]) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___build_ancestors, LOCATE_inheritance, 252); nit_exit(1);}
     variable[7] = variable[0];
     variable[8] = NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init(variable[7],  variable[5] /*p*/); /*new MMRefineAncestor*/
     variable[7] = variable[8];
     variable[6] = variable[7];
-    ((inheritance___MMAncestor___add_in_t)CALL( variable[6] /*anc*/,COLOR_inheritance___MMAncestor___add_in))( variable[6] /*anc*/,  variable[2] /*all_ancestors*/) /*MMAncestor::add_in*/;
+    CALL_inheritance___MMAncestor___add_in( variable[6] /*anc*/)( variable[6] /*anc*/,  variable[2] /*all_ancestors*/) /*MMAncestor::add_in*/;
     continue_29: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_29: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_inheritance___MMLocalClass____direct_parents(variable[3]) /*MMLocalClass::_direct_parents*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((static_type___MMAncestor___local_class_t)CALL( variable[5] /*anc*/,COLOR_static_type___MMAncestor___local_class))( variable[5] /*anc*/) /*MMAncestor::local_class*/;
+    variable[6] = CALL_static_type___MMAncestor___local_class( variable[5] /*anc*/)( variable[5] /*anc*/) /*MMAncestor::local_class*/;
     variable[7] = variable[0];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], variable[7]) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___build_ancestors, LOCATE_inheritance, 257); nit_exit(1);}
-    ((inheritance___MMAncestor___add_in_t)CALL( variable[5] /*anc*/,COLOR_inheritance___MMAncestor___add_in))( variable[5] /*anc*/,  variable[2] /*all_ancestors*/) /*MMAncestor::add_in*/;
+    CALL_inheritance___MMAncestor___add_in( variable[5] /*anc*/)( variable[5] /*anc*/,  variable[2] /*all_ancestors*/) /*MMAncestor::add_in*/;
     continue_30: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_30: while(0);
   variable[1] =  variable[2] /*all_ancestors*/;
@@ -699,28 +700,28 @@ val_t inheritance___MMLocalClass___group_ancestors(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[MMLocalClass, Set[MMAncestor]]*/
   variable[3] = variable[4];
-  variable[4] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*all*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*all*/) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*all*/)( variable[1] /*all*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[8] = ((static_type___MMAncestor___local_class_t)CALL( variable[6] /*a*/,COLOR_static_type___MMAncestor___local_class))( variable[6] /*a*/) /*MMAncestor::local_class*/;
+    variable[8] = CALL_static_type___MMAncestor___local_class( variable[6] /*a*/)( variable[6] /*a*/) /*MMAncestor::local_class*/;
     variable[7] = variable[8];
     /*variable[8] is variable set*/
-    ((inheritance___MMLocalClass___compute_ancestors_t)CALL( variable[7] /*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors))( variable[7] /*c*/) /*MMLocalClass::compute_ancestors*/;
-    variable[9] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[3] /*map*/,COLOR_abstract_collection___Map___has_key))( variable[3] /*map*/,  variable[7] /*c*/) /*CoupleMap::has_key*/;
+    CALL_inheritance___MMLocalClass___compute_ancestors( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::compute_ancestors*/;
+    variable[9] = CALL_abstract_collection___Map___has_key( variable[3] /*map*/)( variable[3] /*map*/,  variable[7] /*c*/) /*CoupleMap::has_key*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
-      variable[9] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[3] /*map*/,COLOR_abstract_collection___Map_____bra))( variable[3] /*map*/,  variable[7] /*c*/) /*CoupleMap::[]*/;
+      variable[9] = CALL_abstract_collection___Map_____bra( variable[3] /*map*/)( variable[3] /*map*/,  variable[7] /*c*/) /*CoupleMap::[]*/;
       variable[8] = variable[9] /*set=*/;
     } else { /*if*/
       variable[9] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[MMAncestor]*/
       variable[8] = variable[9] /*set=*/;
-      ((hash___HashMap_____braeq_t)CALL( variable[3] /*map*/,COLOR_abstract_collection___Map_____braeq))( variable[3] /*map*/,  variable[7] /*c*/,  variable[8] /*set*/) /*HashMap::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[3] /*map*/)( variable[3] /*map*/,  variable[7] /*c*/,  variable[8] /*set*/) /*HashMap::[]=*/;
     }
-    ((abstract_collection___SimpleCollection___add_t)CALL( variable[8] /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*set*/,  variable[6] /*a*/) /*SimpleCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*set*/)( variable[8] /*set*/,  variable[6] /*a*/) /*SimpleCollection::add*/;
     continue_32: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_32: while(0);
   variable[2] =  variable[3] /*map*/;
@@ -741,94 +742,95 @@ val_t inheritance___MMLocalClass___merge_ancestors(val_t  self, val_t  param0) {
   variable[3] = variable[4];
   variable[5] = NEW_Array_array___Array___init(); /*new Array[MMAncestor]*/
   variable[4] = variable[5];
-  variable[5] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*set*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*set*/) /*Collection::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*set*/)( variable[1] /*set*/) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
-    variable[9] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*set*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*set*/) /*Collection::iterator*/;
+    variable[9] = CALL_abstract_collection___Collection___iterator( variable[1] /*set*/)( variable[1] /*set*/) /*Collection::iterator*/;
     variable[8] = variable[9];
     variable[9] =  TAG_Bool(true);
     while (true) { /*while*/
-      variable[10] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable[8] /*it*/) /*Iterator::is_ok*/;
+      variable[10] = CALL_abstract_collection___Iterator___is_ok( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::is_ok*/;
       variable[11] = variable[10];
       if (UNTAG_Bool(variable[11])) { /* and */
         variable[11] =  variable[9] /*search*/;
       }
       variable[10] = variable[11];
       if (!UNTAG_Bool(variable[10])) break; /* while*/
-      variable[11] = ((abstract_collection___Iterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*Iterator::item*/;
-      variable[11] = TAG_Bool(( variable[7] /*t*/ == variable[11]) || (( variable[7] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*t*/,variable[11])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*t*/,COLOR_kernel___Object_____eqeq))( variable[7] /*t*/, variable[11]) /*Object::==*/)))));
+      variable[11] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::item*/;
+      variable[11] = TAG_Bool(( variable[7] /*t*/ == variable[11]) || (( variable[7] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*t*/,variable[11])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*t*/)( variable[7] /*t*/, variable[11]) /*Object::==*/)))));
       variable[10] = variable[11];
-      variable[11] = ((abstract_collection___Iterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*Iterator::item*/;
-      variable[11] = ((hash___HashSet___has_t)CALL( variable[3] /*marks*/,COLOR_abstract_collection___Collection___has))( variable[3] /*marks*/, variable[11]) /*HashSet::has*/;
+      variable[11] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::item*/;
+      variable[11] = CALL_abstract_collection___Collection___has( variable[3] /*marks*/)( variable[3] /*marks*/, variable[11]) /*HashSet::has*/;
       variable[10] = variable[11] /*a=*/;
-      variable[11] = ((abstract_collection___Iterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*Iterator::item*/;
-      variable[11] = ((static_type___MMAncestor___stype_t)CALL(variable[11],COLOR_static_type___MMAncestor___stype))(variable[11]) /*MMAncestor::stype*/;
-      variable[12] = ((static_type___MMAncestor___stype_t)CALL( variable[7] /*t*/,COLOR_static_type___MMAncestor___stype))( variable[7] /*t*/) /*MMAncestor::stype*/;
-      variable[11] = ((static_type___MMType_____l_t)CALL(variable[11],COLOR_static_type___MMType_____l))(variable[11], variable[12]) /*MMType::<*/;
+      variable[11] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::item*/;
+      variable[11] = CALL_static_type___MMAncestor___stype(variable[11])(variable[11]) /*MMAncestor::stype*/;
+      variable[12] = CALL_static_type___MMAncestor___stype( variable[7] /*t*/)( variable[7] /*t*/) /*MMAncestor::stype*/;
+      variable[11] = CALL_static_type___MMType_____l(variable[11])(variable[11], variable[12]) /*MMType::<*/;
       variable[10] = variable[11] /*a=*/;
-      variable[11] = ((abstract_collection___Iterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*Iterator::item*/;
-      variable[11] = TAG_Bool(( variable[7] /*t*/ == variable[11]) || (( variable[7] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*t*/,variable[11])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*t*/,COLOR_kernel___Object_____eqeq))( variable[7] /*t*/, variable[11]) /*Object::==*/)))));
+      variable[11] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::item*/;
+      variable[11] = TAG_Bool(( variable[7] /*t*/ == variable[11]) || (( variable[7] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*t*/,variable[11])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*t*/)( variable[7] /*t*/, variable[11]) /*Object::==*/)))));
       variable[12] = variable[11];
       if (!UNTAG_Bool(variable[12])) { /* or */
-        variable[12] = ((abstract_collection___Iterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*Iterator::item*/;
-        variable[12] = ((hash___HashSet___has_t)CALL( variable[3] /*marks*/,COLOR_abstract_collection___Collection___has))( variable[3] /*marks*/, variable[12]) /*HashSet::has*/;
+        variable[12] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::item*/;
+        variable[12] = CALL_abstract_collection___Collection___has( variable[3] /*marks*/)( variable[3] /*marks*/, variable[12]) /*HashSet::has*/;
       }
       variable[11] = variable[12];
       variable[11] =  TAG_Bool(!UNTAG_Bool(variable[11]));
       if (UNTAG_Bool(variable[11])) { /* and */
-        variable[11] = ((abstract_collection___Iterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*Iterator::item*/;
-        variable[11] = ((static_type___MMAncestor___stype_t)CALL(variable[11],COLOR_static_type___MMAncestor___stype))(variable[11]) /*MMAncestor::stype*/;
-        variable[12] = ((static_type___MMAncestor___stype_t)CALL( variable[7] /*t*/,COLOR_static_type___MMAncestor___stype))( variable[7] /*t*/) /*MMAncestor::stype*/;
-        variable[11] = ((static_type___MMType_____l_t)CALL(variable[11],COLOR_static_type___MMType_____l))(variable[11], variable[12]) /*MMType::<*/;
+        variable[11] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::item*/;
+        variable[11] = CALL_static_type___MMAncestor___stype(variable[11])(variable[11]) /*MMAncestor::stype*/;
+        variable[12] = CALL_static_type___MMAncestor___stype( variable[7] /*t*/)( variable[7] /*t*/) /*MMAncestor::stype*/;
+        variable[11] = CALL_static_type___MMType_____l(variable[11])(variable[11], variable[12]) /*MMType::<*/;
       }
       if (UNTAG_Bool(variable[11])) { /*if*/
-        ((hash___HashSet___add_t)CALL( variable[3] /*marks*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*marks*/,  variable[7] /*t*/) /*HashSet::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[3] /*marks*/)( variable[3] /*marks*/,  variable[7] /*t*/) /*HashSet::add*/;
         variable[9] =  TAG_Bool(false) /*search=*/;
       }
-      ((abstract_collection___Iterator___next_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___next))( variable[8] /*it*/) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next( variable[8] /*it*/)( variable[8] /*it*/) /*Iterator::next*/;
       continue_35: while(0);
     }
     break_35: while(0);
-    variable[10] = ((hash___HashSet___has_t)CALL( variable[3] /*marks*/,COLOR_abstract_collection___Collection___has))( variable[3] /*marks*/,  variable[7] /*t*/) /*HashSet::has*/;
+    variable[10] = CALL_abstract_collection___Collection___has( variable[3] /*marks*/)( variable[3] /*marks*/,  variable[7] /*t*/) /*HashSet::has*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[10])))) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  variable[7] /*t*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[7] /*t*/) /*AbstractArray::add*/;
     }
     continue_34: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
   break_34: while(0);
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___Collection___length))( variable[4] /*res*/) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[4] /*res*/)( variable[4] /*res*/) /*AbstractArray::length*/;
   variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(1)));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((file___Object___stderr_t)CALL(variable[5],COLOR_file___Object___stderr))(variable[5]) /*Object::stderr*/;
-    variable[6] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = CALL_file___Object___stderr(variable[5])(variable[5]) /*Object::stderr*/;
+    variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Fatal error: Incompatibles ancestors for "), TAG_Int(41)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
     variable[9] = variable[0];
-    variable[9] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___name))(variable[9]) /*MMLocalClass::name*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___name(variable[9])(variable[9]) /*MMLocalClass::name*/;
     variable[10] = variable[9];
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-    variable[13] = ((string___Collection___join_t)CALL( variable[4] /*res*/,COLOR_string___Collection___join))( variable[4] /*res*/, variable[13]) /*Collection::join*/;
+    variable[13] = CALL_string___Collection___join( variable[4] /*res*/)( variable[4] /*res*/, variable[13]) /*Collection::join*/;
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
-    ((file___OFStream___write_t)CALL(variable[5],COLOR_stream___OStream___write))(variable[5], variable[6]) /*OFStream::write*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_stream___OStream___write(variable[5])(variable[5], variable[6]) /*OFStream::write*/;
     variable[5] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
   }
-  variable[5] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___Collection___first))( variable[4] /*res*/) /*IndexedCollection::first*/;
+  variable[5] = CALL_abstract_collection___Collection___first( variable[4] /*res*/)( variable[4] /*res*/) /*IndexedCollection::first*/;
   variable[2] = variable[5];
   goto return_label33;
   return_label33: while(false);
@@ -845,144 +847,148 @@ val_t inheritance___MMLocalClass___inherit_local_property(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[3]) /*MMLocalClass::_local_property_by_global*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*glob*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*glob*/) /*Map::has_key*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___inherit_local_property, LOCATE_inheritance, 323); nit_exit(1);}
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*glob*/ ==  NIT_NULL /*null*/) || (( variable[1] /*glob*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*glob*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*glob*/,COLOR_kernel___Object_____eqeq))( variable[1] /*glob*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*glob*/ ==  NIT_NULL /*null*/) || (( variable[1] /*glob*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*glob*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*glob*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*glob*/)( variable[1] /*glob*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMLocalClass___inherit_local_property, LOCATE_inheritance, 324); nit_exit(1);}
   /*variable[3] is variable impl*/
-  variable[5] = ((abstractmetamodel___MMGlobalProperty___property_hierarchy_t)CALL( variable[1] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___property_hierarchy))( variable[1] /*glob*/) /*MMGlobalProperty::property_hierarchy*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalProperty___property_hierarchy( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::property_hierarchy*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMLocalClass___che_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___che))(variable[6]) /*MMLocalClass::che*/;
-  variable[6] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[6],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[6]) /*PartialOrderElement::direct_greaters*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___che(variable[6])(variable[6]) /*MMLocalClass::che*/;
+  variable[6] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[6])(variable[6]) /*PartialOrderElement::direct_greaters*/;
   variable[5] = variable[6];
-  variable[6] = ((partial_order___PartialOrder___length_t)CALL( variable[4] /*ghier*/,COLOR_abstract_collection___Collection___length))( variable[4] /*ghier*/) /*PartialOrder::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length( variable[4] /*ghier*/)( variable[4] /*ghier*/) /*PartialOrder::length*/;
   variable[6] = TAG_Bool((variable[6])==( TAG_Int(1)));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[1] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
+    variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
     variable[3] = variable[6] /*impl=*/;
   } else { /*if*/
-    variable[6] = ((array___AbstractArray___length_t)CALL( variable[5] /*supers*/,COLOR_abstract_collection___Collection___length))( variable[5] /*supers*/) /*AbstractArray::length*/;
+    variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*supers*/)( variable[5] /*supers*/) /*AbstractArray::length*/;
     variable[6] = TAG_Bool((variable[6])==( TAG_Int(1)));
     if (UNTAG_Bool(variable[6])) { /*if*/
-      variable[6] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[5] /*supers*/,COLOR_abstract_collection___Collection___first))( variable[5] /*supers*/) /*IndexedCollection::first*/;
-      variable[6] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[6],  variable[1] /*glob*/) /*MMLocalClass::[]*/;
+      variable[6] = CALL_abstract_collection___Collection___first( variable[5] /*supers*/)( variable[5] /*supers*/) /*IndexedCollection::first*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[6])(variable[6],  variable[1] /*glob*/) /*MMLocalClass::[]*/;
       variable[3] = variable[6] /*impl=*/;
     } else { /*if*/
       variable[7] = NEW_ArraySet_array___ArraySet___init(); /*new ArraySet[MMLocalProperty]*/
       variable[6] = variable[7];
-      variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[5] /*supers*/,COLOR_abstract_collection___Collection___iterator))( variable[5] /*supers*/) /*AbstractArray::iterator*/;
+      variable[7] = CALL_abstract_collection___Collection___iterator( variable[5] /*supers*/)( variable[5] /*supers*/) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+        variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[8])) break; /*for*/
-        variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+        variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
         variable[9] = variable[8];
-        variable[11] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[9] /*sc*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[9] /*sc*/,  variable[1] /*glob*/) /*MMLocalClass::[]*/;
+        variable[11] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[9] /*sc*/)( variable[9] /*sc*/,  variable[1] /*glob*/) /*MMLocalClass::[]*/;
         variable[10] = variable[11];
-        variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*p*/ ==  NIT_NULL /*null*/) || (( variable[10] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*p*/,COLOR_kernel___Object_____eqeq))( variable[10] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*p*/ ==  NIT_NULL /*null*/) || (( variable[10] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*p*/)( variable[10] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
         if (UNTAG_Bool(variable[11])) { /*if*/
-          ((array___ArraySet___add_t)CALL( variable[6] /*impls*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*impls*/,  variable[10] /*p*/) /*ArraySet::add*/;
+          CALL_abstract_collection___SimpleCollection___add( variable[6] /*impls*/)( variable[6] /*impls*/,  variable[10] /*p*/) /*ArraySet::add*/;
         }
         continue_37: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
       }
       break_37: while(0);
-      variable[8] = ((partial_order___PartialOrder___select_smallests_t)CALL( variable[4] /*ghier*/,COLOR_partial_order___PartialOrder___select_smallests))( variable[4] /*ghier*/,  variable[6] /*impls*/) /*PartialOrder::select_smallests*/;
+      variable[8] = CALL_partial_order___PartialOrder___select_smallests( variable[4] /*ghier*/)( variable[4] /*ghier*/,  variable[6] /*impls*/) /*PartialOrder::select_smallests*/;
       variable[7] = variable[8];
-      variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*impls2*/,COLOR_abstract_collection___Collection___length))( variable[7] /*impls2*/) /*AbstractArray::length*/;
+      variable[8] = CALL_abstract_collection___Collection___length( variable[7] /*impls2*/)( variable[7] /*impls2*/) /*AbstractArray::length*/;
       variable[8] = TAG_Bool((variable[8])!=( TAG_Int(1)));
       if (UNTAG_Bool(variable[8])) { /*if*/
         variable[8] = variable[0];
-        variable[8] = ((file___Object___stderr_t)CALL(variable[8],COLOR_file___Object___stderr))(variable[8]) /*Object::stderr*/;
+        variable[8] = CALL_file___Object___stderr(variable[8])(variable[8]) /*Object::stderr*/;
         variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Fatal error: inherit_local_property error\n"), TAG_Int(42)); /*new String*/
-        ((file___OFStream___write_t)CALL(variable[8],COLOR_stream___OStream___write))(variable[8], variable[9]) /*OFStream::write*/;
+        CALL_stream___OStream___write(variable[8])(variable[8], variable[9]) /*OFStream::write*/;
         variable[8] = variable[0];
-        variable[9] = NEW_String_string___String___init(); /*new String*/
+        variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
         variable[10] = NEW_String_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
         variable[11] = variable[10];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
         variable[12] = variable[0];
-        variable[12] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___module))(variable[12]) /*MMLocalClass::module*/;
+        variable[12] = CALL_abstractmetamodel___MMLocalClass___module(variable[12])(variable[12]) /*MMLocalClass::module*/;
         variable[13] = variable[12];
-        variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+        variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
         variable[16] = variable[0];
         variable[17] = variable[16];
-        variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+        variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
         variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
-        variable[20] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[1] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
-        variable[20] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL(variable[20],COLOR_abstractmetamodel___MMLocalProperty___full_name))(variable[20]) /*MMLocalProperty::full_name*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+        variable[20] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::intro*/;
+        variable[20] = CALL_abstractmetamodel___MMLocalProperty___full_name(variable[20])(variable[20]) /*MMLocalProperty::full_name*/;
         variable[21] = variable[20];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[21]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
         variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[23] = variable[22];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[23]) /*String::append*/;
-        ((file___Object___print_t)CALL(variable[8],COLOR_file___Object___print))(variable[8], variable[9]) /*Object::print*/;
-        variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[7] /*impls2*/,COLOR_abstract_collection___Collection___iterator))( variable[7] /*impls2*/) /*AbstractArray::iterator*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[23]) /*AbstractArray::add*/;
+        variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+        CALL_file___Object___print(variable[8])(variable[8], variable[9]) /*Object::print*/;
+        variable[8] = CALL_abstract_collection___Collection___iterator( variable[7] /*impls2*/)( variable[7] /*impls2*/) /*AbstractArray::iterator*/;
         while (true) { /*for*/
-          variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
+          variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
           if (!UNTAG_Bool(variable[9])) break; /*for*/
-          variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
+          variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
           variable[10] = variable[9];
           variable[11] = variable[0];
-          variable[12] = NEW_String_string___String___init(); /*new String*/
+          variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[13] = NEW_String_string___String___with_native(BOX_NativeString("   "), TAG_Int(3)); /*new String*/
           variable[14] = variable[13];
-          ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
-          variable[15] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable[10] /*i*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable[10] /*i*/) /*MMLocalProperty::full_name*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
+          variable[15] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[10] /*i*/)( variable[10] /*i*/) /*MMLocalProperty::full_name*/;
           variable[16] = variable[15];
-          ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[16]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
           variable[17] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
           variable[18] = variable[17];
-          ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/;
-          ((file___Object___print_t)CALL(variable[11],COLOR_file___Object___print))(variable[11], variable[12]) /*Object::print*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
+          variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+          CALL_file___Object___print(variable[11])(variable[11], variable[12]) /*Object::print*/;
           continue_38: while(0);
-          ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
+          CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
         }
         break_38: while(0);
         variable[8] = variable[0];
-        variable[9] = NEW_String_string___String___init(); /*new String*/
+        variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[10] = NEW_String_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
         variable[11] = variable[10];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-        variable[12] = ((abstractmetamodel___MMGlobalProperty___property_hierarchy_t)CALL( variable[1] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___property_hierarchy))( variable[1] /*glob*/) /*MMGlobalProperty::property_hierarchy*/;
-        variable[12] = ((partial_order___PartialOrder___first_t)CALL(variable[12],COLOR_abstract_collection___Collection___first))(variable[12]) /*PartialOrder::first*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+        variable[12] = CALL_abstractmetamodel___MMGlobalProperty___property_hierarchy( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::property_hierarchy*/;
+        variable[12] = CALL_abstract_collection___Collection___first(variable[12])(variable[12]) /*PartialOrder::first*/;
         variable[13] = variable[12];
-        variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+        variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-        ((file___Object___print_t)CALL(variable[8],COLOR_file___Object___print))(variable[8], variable[9]) /*Object::print*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+        variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+        CALL_file___Object___print(variable[8])(variable[8], variable[9]) /*Object::print*/;
         variable[8] = variable[0];
-        variable[9] = NEW_String_string___String___init(); /*new String*/
+        variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[10] = NEW_String_string___String___with_native(BOX_NativeString("------- "), TAG_Int(8)); /*new String*/
         variable[11] = variable[10];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-        variable[12] = ((abstractmetamodel___MMGlobalProperty___property_hierarchy_t)CALL( variable[1] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___property_hierarchy))( variable[1] /*glob*/) /*MMGlobalProperty::property_hierarchy*/;
-        variable[12] = ((partial_order___PartialOrder___to_dot_t)CALL(variable[12],COLOR_partial_order___PartialOrder___to_dot))(variable[12]) /*PartialOrder::to_dot*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+        variable[12] = CALL_abstractmetamodel___MMGlobalProperty___property_hierarchy( variable[1] /*glob*/)( variable[1] /*glob*/) /*MMGlobalProperty::property_hierarchy*/;
+        variable[12] = CALL_partial_order___PartialOrder___to_dot(variable[12])(variable[12]) /*PartialOrder::to_dot*/;
         variable[13] = variable[12];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-        ((file___Object___print_t)CALL(variable[8],COLOR_file___Object___print))(variable[8], variable[9]) /*Object::print*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+        variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+        CALL_file___Object___print(variable[8])(variable[8], variable[9]) /*Object::print*/;
         variable[8] = variable[0];
         exit(UNTAG_Int( TAG_Int(1)));
       }
-      variable[8] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[7] /*impls2*/,COLOR_abstract_collection___Collection___first))( variable[7] /*impls2*/) /*IndexedCollection::first*/;
+      variable[8] = CALL_abstract_collection___Collection___first( variable[7] /*impls2*/)( variable[7] /*impls2*/) /*IndexedCollection::first*/;
       variable[3] = variable[8] /*impl=*/;
     }
   }
   variable[6] = variable[0];
   variable[6] = ATTR_abstractmetamodel___MMLocalClass____local_property_by_global(variable[6]) /*MMLocalClass::_local_property_by_global*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[6],COLOR_abstract_collection___Map_____braeq))(variable[6],  variable[1] /*glob*/,  variable[3] /*impl*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[6])(variable[6],  variable[1] /*glob*/,  variable[3] /*impl*/) /*Map::[]=*/;
   variable[2] =  variable[3] /*impl*/;
   goto return_label36;
   return_label36: while(false);
@@ -998,32 +1004,32 @@ void inheritance___MMLocalProperty___inherit_global(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((abstractmetamodel___MMLocalProperty___set_global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalProperty___set_global))(variable[3],  variable[1] /*g*/) /*MMLocalProperty::set_global*/;
+  CALL_abstractmetamodel___MMLocalProperty___set_global(variable[3])(variable[3],  variable[1] /*g*/) /*MMLocalProperty::set_global*/;
   variable[4] = NEW_Array_array___Array___init(); /*new Array[MMLocalProperty]*/
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[4]) /*MMLocalProperty::local_class*/;
-  variable[4] = ((abstractmetamodel___MMLocalClass___che_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___che))(variable[4]) /*MMLocalClass::che*/;
-  variable[4] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[4]) /*PartialOrderElement::direct_greaters*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[4])(variable[4]) /*MMLocalProperty::local_class*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___che(variable[4])(variable[4]) /*MMLocalClass::che*/;
+  variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[4])(variable[4]) /*PartialOrderElement::direct_greaters*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[8] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[6] /*sc*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[6] /*sc*/,  variable[1] /*g*/) /*MMLocalClass::[]*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[6] /*sc*/)( variable[6] /*sc*/,  variable[1] /*g*/) /*MMLocalClass::[]*/;
     variable[7] = variable[8];
-    variable[8] = TAG_Bool(( variable[7] /*p*/ ==  NIT_NULL /*null*/) || (( variable[7] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*p*/,COLOR_kernel___Object_____eqeq))( variable[7] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[8] = TAG_Bool(( variable[7] /*p*/ ==  NIT_NULL /*null*/) || (( variable[7] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*p*/)( variable[7] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[8])) { /*if*/
       goto continue_40;
     }
-    ((array___AbstractArray___add_t)CALL( variable[3] /*impls*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*impls*/,  variable[7] /*p*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*impls*/)( variable[3] /*impls*/,  variable[7] /*p*/) /*AbstractArray::add*/;
     continue_40: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_40: while(0);
   variable[4] = variable[0];
-  ((abstractmetamodel___MMGlobalProperty___add_local_property_t)CALL( variable[1] /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___add_local_property))( variable[1] /*g*/, variable[4],  variable[3] /*impls*/) /*MMGlobalProperty::add_local_property*/;
+  CALL_abstractmetamodel___MMGlobalProperty___add_local_property( variable[1] /*g*/)( variable[1] /*g*/, variable[4],  variable[3] /*impls*/) /*MMGlobalProperty::add_local_property*/;
   return_label39: while(false);
   tracehead = trace.prev;
   return;
@@ -1037,88 +1043,88 @@ void inheritance___MMAncestor___add_in(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMAncestor___stype_t)CALL(variable[3],COLOR_static_type___MMAncestor___stype))(variable[3]) /*MMAncestor::stype*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_static_type___MMAncestor___stype(variable[3])(variable[3]) /*MMAncestor::stype*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", " 'ancestor' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMAncestor___add_in, LOCATE_inheritance, 392); nit_exit(1);}
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMAncestor___stype_t)CALL(variable[3],COLOR_static_type___MMAncestor___stype))(variable[3]) /*MMAncestor::stype*/;
-  variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_static_type___MMAncestor___stype(variable[3])(variable[3]) /*MMAncestor::stype*/;
+  variable[3] = CALL_static_type___MMType___local_class(variable[3])(variable[3]) /*MMType::local_class*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", " 'local_class' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMAncestor___add_in, LOCATE_inheritance, 393); nit_exit(1);}
   variable[3] = variable[0];
-  ((array___AbstractArray___add_t)CALL( variable[1] /*tab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[1] /*tab*/, variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[1] /*tab*/)( variable[1] /*tab*/, variable[3]) /*AbstractArray::add*/;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMAncestor___stype_t)CALL(variable[3],COLOR_static_type___MMAncestor___stype))(variable[3]) /*MMAncestor::stype*/;
-  variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
-  ((inheritance___MMLocalClass___compute_ancestors_t)CALL(variable[3],COLOR_inheritance___MMLocalClass___compute_ancestors))(variable[3]) /*MMLocalClass::compute_ancestors*/;
+  variable[3] = CALL_static_type___MMAncestor___stype(variable[3])(variable[3]) /*MMAncestor::stype*/;
+  variable[3] = CALL_static_type___MMType___local_class(variable[3])(variable[3]) /*MMType::local_class*/;
+  CALL_inheritance___MMLocalClass___compute_ancestors(variable[3])(variable[3]) /*MMLocalClass::compute_ancestors*/;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMAncestor___stype_t)CALL(variable[3],COLOR_static_type___MMAncestor___stype))(variable[3]) /*MMAncestor::stype*/;
-  variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
-  variable[3] = ((static_type___MMLocalClass___ancestors_t)CALL(variable[3],COLOR_static_type___MMLocalClass___ancestors))(variable[3]) /*MMLocalClass::ancestors*/;
-  variable[3] = ((abstract_collection___Map___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Map::iterator*/;
+  variable[3] = CALL_static_type___MMAncestor___stype(variable[3])(variable[3]) /*MMAncestor::stype*/;
+  variable[3] = CALL_static_type___MMType___local_class(variable[3])(variable[3]) /*MMType::local_class*/;
+  variable[3] = CALL_static_type___MMLocalClass___ancestors(variable[3])(variable[3]) /*MMLocalClass::ancestors*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[7] = ((static_type___MMAncestor___stype_t)CALL( variable[5] /*anc*/,COLOR_static_type___MMAncestor___stype))( variable[5] /*anc*/) /*MMAncestor::stype*/;
+    variable[7] = CALL_static_type___MMAncestor___stype( variable[5] /*anc*/)( variable[5] /*anc*/) /*MMAncestor::stype*/;
     variable[8] = variable[0];
-    variable[8] = ((static_type___MMAncestor___stype_t)CALL(variable[8],COLOR_static_type___MMAncestor___stype))(variable[8]) /*MMAncestor::stype*/;
-    variable[8] = ((static_type___MMType___module_t)CALL(variable[8],COLOR_static_type___MMType___module))(variable[8]) /*MMType::module*/;
-    variable[7] = ((static_type___MMType___for_module_t)CALL(variable[7],COLOR_static_type___MMType___for_module))(variable[7], variable[8]) /*MMType::for_module*/;
+    variable[8] = CALL_static_type___MMAncestor___stype(variable[8])(variable[8]) /*MMAncestor::stype*/;
+    variable[8] = CALL_static_type___MMType___module(variable[8])(variable[8]) /*MMType::module*/;
+    variable[7] = CALL_static_type___MMType___for_module(variable[7])(variable[7], variable[8]) /*MMType::for_module*/;
     variable[6] = variable[7];
     variable[8] = variable[0];
-    variable[8] = ((static_type___MMAncestor___stype_t)CALL(variable[8],COLOR_static_type___MMAncestor___stype))(variable[8]) /*MMAncestor::stype*/;
-    variable[8] = ((static_type___MMType___adapt_to_t)CALL( variable[6] /*aaa*/,COLOR_static_type___MMType___adapt_to))( variable[6] /*aaa*/, variable[8]) /*MMType::adapt_to*/;
+    variable[8] = CALL_static_type___MMAncestor___stype(variable[8])(variable[8]) /*MMAncestor::stype*/;
+    variable[8] = CALL_static_type___MMType___adapt_to( variable[6] /*aaa*/)( variable[6] /*aaa*/, variable[8]) /*MMType::adapt_to*/;
     variable[9] = variable[0];
-    variable[9] = ((static_type___MMAncestor___inheriter_t)CALL(variable[9],COLOR_static_type___MMAncestor___inheriter))(variable[9]) /*MMAncestor::inheriter*/;
-    variable[9] = ((static_type___MMType___module_t)CALL(variable[9],COLOR_static_type___MMType___module))(variable[9]) /*MMType::module*/;
-    variable[8] = ((static_type___MMType___for_module_t)CALL(variable[8],COLOR_static_type___MMType___for_module))(variable[8], variable[9]) /*MMType::for_module*/;
+    variable[9] = CALL_static_type___MMAncestor___inheriter(variable[9])(variable[9]) /*MMAncestor::inheriter*/;
+    variable[9] = CALL_static_type___MMType___module(variable[9])(variable[9]) /*MMType::module*/;
+    variable[8] = CALL_static_type___MMType___for_module(variable[8])(variable[8], variable[9]) /*MMType::for_module*/;
     variable[7] = variable[8];
-    variable[8] = ((static_type___MMType___local_class_t)CALL( variable[7] /*a*/,COLOR_static_type___MMType___local_class))( variable[7] /*a*/) /*MMType::local_class*/;
+    variable[8] = CALL_static_type___MMType___local_class( variable[7] /*a*/)( variable[7] /*a*/) /*MMType::local_class*/;
     variable[9] = variable[0];
-    variable[9] = ((static_type___MMAncestor___inheriter_t)CALL(variable[9],COLOR_static_type___MMAncestor___inheriter))(variable[9]) /*MMAncestor::inheriter*/;
-    variable[9] = ((static_type___MMType___local_class_t)CALL(variable[9],COLOR_static_type___MMType___local_class))(variable[9]) /*MMType::local_class*/;
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8], variable[9]) /*Object::==*/)))))));
+    variable[9] = CALL_static_type___MMAncestor___inheriter(variable[9])(variable[9]) /*MMAncestor::inheriter*/;
+    variable[9] = CALL_static_type___MMType___local_class(variable[9])(variable[9]) /*MMType::local_class*/;
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] == variable[9]) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8],variable[9])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8], variable[9]) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[9] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*tab*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*tab*/) /*AbstractArray::iterator*/;
+      variable[9] = CALL_abstract_collection___Collection___iterator( variable[1] /*tab*/)( variable[1] /*tab*/) /*AbstractArray::iterator*/;
       variable[8] = variable[9];
       variable[9] =  TAG_Bool(true);
       while (true) { /*while*/
-        variable[10] = ((array___ArrayIterator___is_ok_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable[8] /*it*/) /*ArrayIterator::is_ok*/;
+        variable[10] = CALL_abstract_collection___Iterator___is_ok( variable[8] /*it*/)( variable[8] /*it*/) /*ArrayIterator::is_ok*/;
         variable[11] = variable[10];
         if (UNTAG_Bool(variable[11])) { /* and */
           variable[11] =  variable[9] /*b*/;
         }
         variable[10] = variable[11];
         if (!UNTAG_Bool(variable[10])) break; /* while*/
-        variable[10] = ((array___ArrayIterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*ArrayIterator::item*/;
-        variable[10] = ((static_type___MMAncestor___inheriter_t)CALL(variable[10],COLOR_static_type___MMAncestor___inheriter))(variable[10]) /*MMAncestor::inheriter*/;
+        variable[10] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*ArrayIterator::item*/;
+        variable[10] = CALL_static_type___MMAncestor___inheriter(variable[10])(variable[10]) /*MMAncestor::inheriter*/;
         variable[11] = variable[0];
-        variable[11] = ((static_type___MMAncestor___inheriter_t)CALL(variable[11],COLOR_static_type___MMAncestor___inheriter))(variable[11]) /*MMAncestor::inheriter*/;
-        variable[10] = TAG_Bool((variable[10] == variable[11]) || ((variable[10] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10],variable[11])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))(variable[10], variable[11]) /*Object::==*/)))));
+        variable[11] = CALL_static_type___MMAncestor___inheriter(variable[11])(variable[11]) /*MMAncestor::inheriter*/;
+        variable[10] = TAG_Bool((variable[10] == variable[11]) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10],variable[11])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10], variable[11]) /*Object::==*/)))));
         variable[11] = variable[10];
         if (UNTAG_Bool(variable[11])) { /* and */
-          variable[11] = ((array___ArrayIterator___item_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[8] /*it*/) /*ArrayIterator::item*/;
-          variable[11] = ((static_type___MMAncestor___stype_t)CALL(variable[11],COLOR_static_type___MMAncestor___stype))(variable[11]) /*MMAncestor::stype*/;
-          variable[11] = TAG_Bool((variable[11] ==  variable[7] /*a*/) || ((variable[11] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[7] /*a*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[11],COLOR_kernel___Object_____eqeq))(variable[11],  variable[7] /*a*/) /*Object::==*/)))));
+          variable[11] = CALL_abstract_collection___Iterator___item( variable[8] /*it*/)( variable[8] /*it*/) /*ArrayIterator::item*/;
+          variable[11] = CALL_static_type___MMAncestor___stype(variable[11])(variable[11]) /*MMAncestor::stype*/;
+          variable[11] = TAG_Bool((variable[11] ==  variable[7] /*a*/) || ((variable[11] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[11])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[11], variable[7] /*a*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[11])(variable[11],  variable[7] /*a*/) /*Object::==*/)))));
         }
         variable[10] = variable[11];
         variable[9] =  TAG_Bool(!UNTAG_Bool(variable[10])) /*b=*/;
-        ((array___ArrayIterator___next_t)CALL( variable[8] /*it*/,COLOR_abstract_collection___Iterator___next))( variable[8] /*it*/) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next( variable[8] /*it*/)( variable[8] /*it*/) /*ArrayIterator::next*/;
         continue_43: while(0);
       }
       break_43: while(0);
       if (UNTAG_Bool( variable[9] /*b*/)) { /*if*/
         variable[10] = variable[0];
-        variable[10] = ((static_type___MMAncestor___inheriter_t)CALL(variable[10],COLOR_static_type___MMAncestor___inheriter))(variable[10]) /*MMAncestor::inheriter*/;
+        variable[10] = CALL_static_type___MMAncestor___inheriter(variable[10])(variable[10]) /*MMAncestor::inheriter*/;
         variable[11] = NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init(variable[10],  variable[7] /*a*/); /*new MMSpecAncestor*/
         variable[10] = variable[11];
-        ((array___AbstractArray___add_t)CALL( variable[1] /*tab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[1] /*tab*/, variable[10]) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[1] /*tab*/)( variable[1] /*tab*/, variable[10]) /*AbstractArray::add*/;
       }
     }
     continue_42: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_42: while(0);
   return_label41: while(false);
@@ -1135,15 +1141,15 @@ void inheritance___MMImplicitLocalClass___init(val_t  self, val_t  param0, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMImplicitLocalClass].i]) return;
-  variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable[2] /*g*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable[2] /*g*/) /*MMGlobalClass::intro*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[2] /*g*/)( variable[2] /*g*/) /*MMGlobalClass::intro*/;
   variable[4] = variable[5];
-  variable[5] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[4] /*cla*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[4] /*cla*/) /*MMLocalClass::name*/;
-  variable[6] = ((abstractmetamodel___MMLocalClass___arity_t)CALL( variable[4] /*cla*/,COLOR_abstractmetamodel___MMLocalClass___arity))( variable[4] /*cla*/) /*MMLocalClass::arity*/;
-  ((abstractmetamodel___MMLocalClass___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMLocalClass___init))(variable[0], variable[5], variable[6], init_table /*YYY*/) /*MMLocalClass::init*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___name( variable[4] /*cla*/)( variable[4] /*cla*/) /*MMLocalClass::name*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___arity( variable[4] /*cla*/)( variable[4] /*cla*/) /*MMLocalClass::arity*/;
+  CALL_abstractmetamodel___MMLocalClass___init(variable[0])(variable[0], variable[5], variable[6], init_table /*YYY*/) /*MMLocalClass::init*/;
   variable[5] = variable[0];
-  ((abstractmetamodel___MMModule___add_local_class_t)CALL( variable[1] /*mod*/,COLOR_abstractmetamodel___MMModule___add_local_class))( variable[1] /*mod*/, variable[5]) /*MMModule::add_local_class*/;
+  CALL_abstractmetamodel___MMModule___add_local_class( variable[1] /*mod*/)( variable[1] /*mod*/, variable[5]) /*MMModule::add_local_class*/;
   variable[5] = variable[0];
-  ((abstractmetamodel___MMLocalClass___set_global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___set_global))(variable[5],  variable[2] /*g*/) /*MMLocalClass::set_global*/;
+  CALL_abstractmetamodel___MMLocalClass___set_global(variable[5])(variable[5],  variable[2] /*g*/) /*MMLocalClass::set_global*/;
   return_label44: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMImplicitLocalClass].i] = 1;
   tracehead = trace.prev;
@@ -1171,13 +1177,13 @@ void inheritance___MMRefineAncestor___init(val_t  self, val_t  param0, val_t  pa
   variable[4] = variable[0];
   ATTR_inheritance___MMRefineAncestor____local_class(variable[4]) /*MMRefineAncestor::_local_class*/ =  variable[2] /*a*/;
   variable[4] = variable[0];
-  variable[5] = ((static_type___MMLocalClass___get_type_t)CALL( variable[1] /*b*/,COLOR_static_type___MMLocalClass___get_type))( variable[1] /*b*/) /*MMLocalClass::get_type*/;
-  ((static_type___MMAncestor___inheriter__eq_t)CALL(variable[4],COLOR_static_type___MMAncestor___inheriter__eq))(variable[4], variable[5]) /*MMAncestor::inheriter=*/;
+  variable[5] = CALL_static_type___MMLocalClass___get_type( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::get_type*/;
+  CALL_static_type___MMAncestor___inheriter__eq(variable[4])(variable[4], variable[5]) /*MMAncestor::inheriter=*/;
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_inheritance___MMRefineAncestor____local_class(variable[5]) /*MMRefineAncestor::_local_class*/;
-  variable[5] = ((static_type___MMLocalClass___get_type_t)CALL(variable[5],COLOR_static_type___MMLocalClass___get_type))(variable[5]) /*MMLocalClass::get_type*/;
-  ((static_type___MMAncestor___stype__eq_t)CALL(variable[4],COLOR_static_type___MMAncestor___stype__eq))(variable[4], variable[5]) /*MMAncestor::stype=*/;
+  variable[5] = CALL_static_type___MMLocalClass___get_type(variable[5])(variable[5]) /*MMLocalClass::get_type*/;
+  CALL_static_type___MMAncestor___stype__eq(variable[4])(variable[4], variable[5]) /*MMAncestor::stype=*/;
   return_label45: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMRefineAncestor].i] = 1;
   tracehead = trace.prev;
@@ -1191,8 +1197,8 @@ val_t inheritance___MMSpecAncestor___local_class(val_t  self) {
   trace.file = LOCATE_inheritance;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((static_type___MMAncestor___stype_t)CALL(variable[2],COLOR_static_type___MMAncestor___stype))(variable[2]) /*MMAncestor::stype*/;
-  variable[2] = ((static_type___MMType___local_class_t)CALL(variable[2],COLOR_static_type___MMType___local_class))(variable[2]) /*MMType::local_class*/;
+  variable[2] = CALL_static_type___MMAncestor___stype(variable[2])(variable[2]) /*MMAncestor::stype*/;
+  variable[2] = CALL_static_type___MMType___local_class(variable[2])(variable[2]) /*MMType::local_class*/;
   variable[1] = variable[2];
   goto return_label46;
   return_label46: while(false);
@@ -1226,8 +1232,8 @@ val_t inheritance___MMDefaultAncestor___local_class(val_t  self) {
   trace.file = LOCATE_inheritance;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((static_type___MMAncestor___stype_t)CALL(variable[2],COLOR_static_type___MMAncestor___stype))(variable[2]) /*MMAncestor::stype*/;
-  variable[2] = ((static_type___MMType___local_class_t)CALL(variable[2],COLOR_static_type___MMType___local_class))(variable[2]) /*MMType::local_class*/;
+  variable[2] = CALL_static_type___MMAncestor___stype(variable[2])(variable[2]) /*MMAncestor::stype*/;
+  variable[2] = CALL_static_type___MMType___local_class(variable[2])(variable[2]) /*MMType::local_class*/;
   variable[1] = variable[2];
   goto return_label48;
   return_label48: while(false);
@@ -1244,18 +1250,18 @@ void inheritance___MMDefaultAncestor___init(val_t  self, val_t  param0, val_t  p
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMDefaultAncestor].i]) return;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*b*/ ==  NIT_NULL /*null*/) || (( variable[1] /*b*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*b*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*b*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*b*/,COLOR_kernel___Object_____eqeq))( variable[1] /*b*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*b*/ ==  NIT_NULL /*null*/) || (( variable[1] /*b*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*b*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*b*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*b*/)( variable[1] /*b*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMDefaultAncestor___init, LOCATE_inheritance, 458); nit_exit(1);}
-  variable[4] = ((abstractmetamodel___MMLocalClass___module_t)CALL( variable[1] /*b*/,COLOR_abstractmetamodel___MMLocalClass___module))( variable[1] /*b*/) /*MMLocalClass::module*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___module( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::module*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMDefaultAncestor___init, LOCATE_inheritance, 459); nit_exit(1);}
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*anc*/ ==  NIT_NULL /*null*/) || (( variable[2] /*anc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*anc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*anc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*anc*/,COLOR_kernel___Object_____eqeq))( variable[2] /*anc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*anc*/ ==  NIT_NULL /*null*/) || (( variable[2] /*anc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*anc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*anc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*anc*/)( variable[2] /*anc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_inheritance___MMDefaultAncestor___init, LOCATE_inheritance, 460); nit_exit(1);}
   variable[4] = variable[0];
-  variable[5] = ((static_type___MMLocalClass___get_type_t)CALL( variable[1] /*b*/,COLOR_static_type___MMLocalClass___get_type))( variable[1] /*b*/) /*MMLocalClass::get_type*/;
-  ((static_type___MMAncestor___inheriter__eq_t)CALL(variable[4],COLOR_static_type___MMAncestor___inheriter__eq))(variable[4], variable[5]) /*MMAncestor::inheriter=*/;
+  variable[5] = CALL_static_type___MMLocalClass___get_type( variable[1] /*b*/)( variable[1] /*b*/) /*MMLocalClass::get_type*/;
+  CALL_static_type___MMAncestor___inheriter__eq(variable[4])(variable[4], variable[5]) /*MMAncestor::inheriter=*/;
   variable[4] = variable[0];
-  ((static_type___MMAncestor___stype__eq_t)CALL(variable[4],COLOR_static_type___MMAncestor___stype__eq))(variable[4],  variable[2] /*anc*/) /*MMAncestor::stype=*/;
+  CALL_static_type___MMAncestor___stype__eq(variable[4])(variable[4],  variable[2] /*anc*/) /*MMAncestor::stype=*/;
   return_label49: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMDefaultAncestor].i] = 1;
   tracehead = trace.prev;
index a808789..992f194 100644 (file)
@@ -13,47 +13,47 @@ extern const classtable_elt_t VFT_MMSpecAncestor[];
 extern const classtable_elt_t VFT_MMDefaultAncestor[];
 extern const char *LOCATE_inheritance;
 extern const int SFT_inheritance[];
-#define COLOR_inheritance___MMModule___type_any SFT_inheritance[0]
-#define COLOR_inheritance___MMModule___import_global_classes SFT_inheritance[1]
-#define COLOR_inheritance___MMModule___import_local_classes SFT_inheritance[2]
-#define COLOR_inheritance___MMLocalClass____direct_parents SFT_inheritance[3]
-#define COLOR_inheritance___MMLocalClass____computing_super SFT_inheritance[4]
-#define COLOR_inheritance___MMLocalClass___compute_super_classes SFT_inheritance[5]
-#define COLOR_inheritance___MMLocalClass___compute_ancestors SFT_inheritance[6]
-#define COLOR_inheritance___MMLocalClass___inherit_global_properties SFT_inheritance[7]
-#define COLOR_inheritance___MMLocalClass___make_visible_an_inherited_global_property SFT_inheritance[8]
-#define COLOR_inheritance___MMLocalClass___add_direct_parent SFT_inheritance[9]
-#define COLOR_inheritance___MMLocalClass___computed_super_classes SFT_inheritance[10]
-#define COLOR_inheritance___MMLocalClass___computed_ancestors SFT_inheritance[11]
-#define COLOR_inheritance___MMLocalClass___ancestor_for SFT_inheritance[12]
-#define COLOR_SUPER_inheritance___MMLocalClass_____bra SFT_inheritance[13]
-#define COLOR_inheritance___MMLocalClass___add_default_any_class SFT_inheritance[14]
-#define COLOR_inheritance___MMLocalClass___add_super_classes SFT_inheritance[15]
-#define COLOR_inheritance___MMLocalClass___add_explicit_classes SFT_inheritance[16]
-#define COLOR_inheritance___MMLocalClass___compute_super_parents SFT_inheritance[17]
-#define COLOR_inheritance___MMLocalClass___build_ancestors SFT_inheritance[18]
-#define COLOR_inheritance___MMLocalClass___group_ancestors SFT_inheritance[19]
-#define COLOR_inheritance___MMLocalClass___merge_ancestors SFT_inheritance[20]
-#define COLOR_inheritance___MMLocalClass___inherit_local_property SFT_inheritance[21]
-#define COLOR_inheritance___MMLocalProperty___inherit_global SFT_inheritance[22]
-#define COLOR_inheritance___MMAncestor___add_in SFT_inheritance[23]
-#define ID_MMImplicitLocalClass SFT_inheritance[24]
-#define COLOR_MMImplicitLocalClass SFT_inheritance[25]
-#define INIT_TABLE_POS_MMImplicitLocalClass SFT_inheritance[26]
-#define COLOR_inheritance___MMImplicitLocalClass___init SFT_inheritance[27]
-#define ID_MMRefineAncestor SFT_inheritance[28]
-#define COLOR_MMRefineAncestor SFT_inheritance[29]
-#define COLOR_inheritance___MMRefineAncestor____local_class SFT_inheritance[30]
-#define INIT_TABLE_POS_MMRefineAncestor SFT_inheritance[31]
-#define COLOR_inheritance___MMRefineAncestor___init SFT_inheritance[32]
-#define ID_MMSpecAncestor SFT_inheritance[33]
-#define COLOR_MMSpecAncestor SFT_inheritance[34]
-#define INIT_TABLE_POS_MMSpecAncestor SFT_inheritance[35]
-#define COLOR_inheritance___MMSpecAncestor___init SFT_inheritance[36]
-#define ID_MMDefaultAncestor SFT_inheritance[37]
-#define COLOR_MMDefaultAncestor SFT_inheritance[38]
-#define INIT_TABLE_POS_MMDefaultAncestor SFT_inheritance[39]
-#define COLOR_inheritance___MMDefaultAncestor___init SFT_inheritance[40]
+#define CALL_inheritance___MMModule___type_any(recv) ((inheritance___MMModule___type_any_t)CALL((recv), (SFT_inheritance[0] + 0)))
+#define CALL_inheritance___MMModule___import_global_classes(recv) ((inheritance___MMModule___import_global_classes_t)CALL((recv), (SFT_inheritance[0] + 1)))
+#define CALL_inheritance___MMModule___import_local_classes(recv) ((inheritance___MMModule___import_local_classes_t)CALL((recv), (SFT_inheritance[0] + 2)))
+#define ATTR_inheritance___MMLocalClass____direct_parents(recv) ATTR(recv, (SFT_inheritance[1] + 0))
+#define ATTR_inheritance___MMLocalClass____computing_super(recv) ATTR(recv, (SFT_inheritance[1] + 1))
+#define CALL_inheritance___MMLocalClass___compute_super_classes(recv) ((inheritance___MMLocalClass___compute_super_classes_t)CALL((recv), (SFT_inheritance[2] + 0)))
+#define CALL_inheritance___MMLocalClass___compute_ancestors(recv) ((inheritance___MMLocalClass___compute_ancestors_t)CALL((recv), (SFT_inheritance[2] + 1)))
+#define CALL_inheritance___MMLocalClass___inherit_global_properties(recv) ((inheritance___MMLocalClass___inherit_global_properties_t)CALL((recv), (SFT_inheritance[2] + 2)))
+#define CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(recv) ((inheritance___MMLocalClass___make_visible_an_inherited_global_property_t)CALL((recv), (SFT_inheritance[2] + 3)))
+#define CALL_inheritance___MMLocalClass___add_direct_parent(recv) ((inheritance___MMLocalClass___add_direct_parent_t)CALL((recv), (SFT_inheritance[2] + 4)))
+#define CALL_inheritance___MMLocalClass___computed_super_classes(recv) ((inheritance___MMLocalClass___computed_super_classes_t)CALL((recv), (SFT_inheritance[2] + 5)))
+#define CALL_inheritance___MMLocalClass___computed_ancestors(recv) ((inheritance___MMLocalClass___computed_ancestors_t)CALL((recv), (SFT_inheritance[2] + 6)))
+#define CALL_inheritance___MMLocalClass___ancestor_for(recv) ((inheritance___MMLocalClass___ancestor_for_t)CALL((recv), (SFT_inheritance[2] + 7)))
+#define CALL_SUPER_inheritance___MMLocalClass_____bra(recv) ((inheritance___MMLocalClass_____bra_t)CALL((recv), (SFT_inheritance[2] + 8)))
+#define CALL_inheritance___MMLocalClass___add_default_any_class(recv) ((inheritance___MMLocalClass___add_default_any_class_t)CALL((recv), (SFT_inheritance[2] + 9)))
+#define CALL_inheritance___MMLocalClass___add_super_classes(recv) ((inheritance___MMLocalClass___add_super_classes_t)CALL((recv), (SFT_inheritance[2] + 10)))
+#define CALL_inheritance___MMLocalClass___add_explicit_classes(recv) ((inheritance___MMLocalClass___add_explicit_classes_t)CALL((recv), (SFT_inheritance[2] + 11)))
+#define CALL_inheritance___MMLocalClass___compute_super_parents(recv) ((inheritance___MMLocalClass___compute_super_parents_t)CALL((recv), (SFT_inheritance[2] + 12)))
+#define CALL_inheritance___MMLocalClass___build_ancestors(recv) ((inheritance___MMLocalClass___build_ancestors_t)CALL((recv), (SFT_inheritance[2] + 13)))
+#define CALL_inheritance___MMLocalClass___group_ancestors(recv) ((inheritance___MMLocalClass___group_ancestors_t)CALL((recv), (SFT_inheritance[2] + 14)))
+#define CALL_inheritance___MMLocalClass___merge_ancestors(recv) ((inheritance___MMLocalClass___merge_ancestors_t)CALL((recv), (SFT_inheritance[2] + 15)))
+#define CALL_inheritance___MMLocalClass___inherit_local_property(recv) ((inheritance___MMLocalClass___inherit_local_property_t)CALL((recv), (SFT_inheritance[2] + 16)))
+#define CALL_inheritance___MMLocalProperty___inherit_global(recv) ((inheritance___MMLocalProperty___inherit_global_t)CALL((recv), (SFT_inheritance[3] + 0)))
+#define CALL_inheritance___MMAncestor___add_in(recv) ((inheritance___MMAncestor___add_in_t)CALL((recv), (SFT_inheritance[4] + 0)))
+#define ID_MMImplicitLocalClass (SFT_inheritance[5])
+#define COLOR_MMImplicitLocalClass (SFT_inheritance[6])
+#define INIT_TABLE_POS_MMImplicitLocalClass (SFT_inheritance[7] + 0)
+#define CALL_inheritance___MMImplicitLocalClass___init(recv) ((inheritance___MMImplicitLocalClass___init_t)CALL((recv), (SFT_inheritance[7] + 1)))
+#define ID_MMRefineAncestor (SFT_inheritance[8])
+#define COLOR_MMRefineAncestor (SFT_inheritance[9])
+#define ATTR_inheritance___MMRefineAncestor____local_class(recv) ATTR(recv, (SFT_inheritance[10] + 0))
+#define INIT_TABLE_POS_MMRefineAncestor (SFT_inheritance[11] + 0)
+#define CALL_inheritance___MMRefineAncestor___init(recv) ((inheritance___MMRefineAncestor___init_t)CALL((recv), (SFT_inheritance[11] + 1)))
+#define ID_MMSpecAncestor (SFT_inheritance[12])
+#define COLOR_MMSpecAncestor (SFT_inheritance[13])
+#define INIT_TABLE_POS_MMSpecAncestor (SFT_inheritance[14] + 0)
+#define CALL_inheritance___MMSpecAncestor___init(recv) ((inheritance___MMSpecAncestor___init_t)CALL((recv), (SFT_inheritance[14] + 1)))
+#define ID_MMDefaultAncestor (SFT_inheritance[15])
+#define COLOR_MMDefaultAncestor (SFT_inheritance[16])
+#define INIT_TABLE_POS_MMDefaultAncestor (SFT_inheritance[17] + 0)
+#define CALL_inheritance___MMDefaultAncestor___init(recv) ((inheritance___MMDefaultAncestor___init_t)CALL((recv), (SFT_inheritance[17] + 1)))
 val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2);
 typedef val_t (* inheritance___MMModule___type_any_t)(val_t  self);
 val_t inheritance___MMModule___type_any(val_t  self);
@@ -68,8 +68,6 @@ val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p
 typedef val_t (* inheritance___MMLocalClass_____bra_t)(val_t  self, val_t  param0);
 val_t inheritance___MMLocalClass_____bra(val_t  self, val_t  param0);
 #define LOCATE_inheritance___MMLocalClass_____bra "inheritance::MMLocalClass::(abstractmetamodel::MMLocalClass::[])"
-#define ATTR_inheritance___MMLocalClass____direct_parents(recv) ATTR(recv, COLOR_inheritance___MMLocalClass____direct_parents)
-#define ATTR_inheritance___MMLocalClass____computing_super(recv) ATTR(recv, COLOR_inheritance___MMLocalClass____computing_super)
 typedef void (* inheritance___MMLocalClass___compute_super_classes_t)(val_t  self);
 void inheritance___MMLocalClass___compute_super_classes(val_t  self);
 #define LOCATE_inheritance___MMLocalClass___compute_super_classes "inheritance::MMLocalClass::compute_super_classes"
@@ -133,7 +131,6 @@ val_t NEW_MMImplicitLocalClass_inheritance___MMImplicitLocalClass___init(val_t p
 typedef val_t (* inheritance___MMRefineAncestor___local_class_t)(val_t  self);
 val_t inheritance___MMRefineAncestor___local_class(val_t  self);
 #define LOCATE_inheritance___MMRefineAncestor___local_class "inheritance::MMRefineAncestor::(static_type::MMAncestor::local_class)"
-#define ATTR_inheritance___MMRefineAncestor____local_class(recv) ATTR(recv, COLOR_inheritance___MMRefineAncestor____local_class)
 typedef void (* inheritance___MMRefineAncestor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
 void inheritance___MMRefineAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_inheritance___MMRefineAncestor___init "inheritance::MMRefineAncestor::init"
index 25e158d..5035671 100644 (file)
@@ -43,7 +43,7 @@ val_t kernel___Object_____neq(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*other*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*other*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*other*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*other*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*other*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*other*/) /*Object::==*/)))));
   variable[2] =  TAG_Bool(!UNTAG_Bool(variable[3]));
   goto return_label1;
   return_label1: while(false);
@@ -126,7 +126,7 @@ val_t kernel___Comparable_____leq(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((kernel___Comparable_____l_t)CALL( variable[1] /*other*/,COLOR_kernel___Comparable_____l))( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
+  variable[3] = CALL_kernel___Comparable_____l( variable[1] /*other*/)( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
   variable[2] =  TAG_Bool(!UNTAG_Bool(variable[3]));
   goto return_label4;
   return_label4: while(false);
@@ -142,7 +142,7 @@ val_t kernel___Comparable_____geq(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((kernel___Comparable_____l_t)CALL(variable[3],COLOR_kernel___Comparable_____l))(variable[3],  variable[1] /*other*/) /*Comparable::<*/;
+  variable[3] = CALL_kernel___Comparable_____l(variable[3])(variable[3],  variable[1] /*other*/) /*Comparable::<*/;
   variable[2] =  TAG_Bool(!UNTAG_Bool(variable[3]));
   goto return_label5;
   return_label5: while(false);
@@ -158,7 +158,7 @@ val_t kernel___Comparable_____g(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((kernel___Comparable_____l_t)CALL( variable[1] /*other*/,COLOR_kernel___Comparable_____l))( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
+  variable[3] = CALL_kernel___Comparable_____l( variable[1] /*other*/)( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
   variable[2] = variable[3];
   goto return_label6;
   return_label6: while(false);
@@ -174,14 +174,14 @@ val_t kernel___Comparable_____leqg(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((kernel___Comparable_____l_t)CALL(variable[3],COLOR_kernel___Comparable_____l))(variable[3],  variable[1] /*other*/) /*Comparable::<*/;
+  variable[3] = CALL_kernel___Comparable_____l(variable[3])(variable[3],  variable[1] /*other*/) /*Comparable::<*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
     variable[2] = variable[3];
     goto return_label7;
   } else { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((kernel___Comparable_____l_t)CALL( variable[1] /*other*/,COLOR_kernel___Comparable_____l))( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
+    variable[3] = CALL_kernel___Comparable_____l( variable[1] /*other*/)( variable[1] /*other*/, variable[3]) /*Comparable::<*/;
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[2] =  TAG_Int(1);
       goto return_label7;
@@ -204,11 +204,11 @@ val_t kernel___Comparable___is_between(val_t  self, val_t  param0, val_t  param1
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((kernel___Comparable_____leq_t)CALL( variable[1] /*c*/,COLOR_kernel___Comparable_____leq))( variable[1] /*c*/, variable[4]) /*Comparable::<=*/;
+  variable[4] = CALL_kernel___Comparable_____leq( variable[1] /*c*/)( variable[1] /*c*/, variable[4]) /*Comparable::<=*/;
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[5] = ((kernel___Comparable_____leq_t)CALL(variable[5],COLOR_kernel___Comparable_____leq))(variable[5],  variable[2] /*d*/) /*Comparable::<=*/;
+    variable[5] = CALL_kernel___Comparable_____leq(variable[5])(variable[5],  variable[2] /*d*/) /*Comparable::<=*/;
   }
   variable[4] = variable[5];
   variable[3] = variable[4];
@@ -226,7 +226,7 @@ val_t kernel___Comparable___max(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((kernel___Comparable_____l_t)CALL(variable[3],COLOR_kernel___Comparable_____l))(variable[3],  variable[1] /*other*/) /*Comparable::<*/;
+  variable[3] = CALL_kernel___Comparable_____l(variable[3])(variable[3],  variable[1] /*other*/) /*Comparable::<*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  variable[1] /*other*/;
     goto return_label9;
@@ -248,7 +248,7 @@ val_t kernel___Comparable___min(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((kernel___Comparable_____l_t)CALL( variable[1] /*c*/,COLOR_kernel___Comparable_____l))( variable[1] /*c*/, variable[3]) /*Comparable::<*/;
+  variable[3] = CALL_kernel___Comparable_____l( variable[1] /*c*/)( variable[1] /*c*/, variable[3]) /*Comparable::<*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  variable[1] /*c*/;
     goto return_label10;
@@ -269,7 +269,7 @@ val_t kernel___Discrete___succ(val_t  self) {
   trace.file = LOCATE_kernel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((kernel___Discrete_____plus_t)CALL(variable[2],COLOR_kernel___Discrete_____plus))(variable[2],  TAG_Int(1)) /*Discrete::+*/;
+  variable[2] = CALL_kernel___Discrete_____plus(variable[2])(variable[2],  TAG_Int(1)) /*Discrete::+*/;
   variable[1] = variable[2];
   goto return_label11;
   return_label11: while(false);
@@ -284,7 +284,7 @@ val_t kernel___Discrete___prec(val_t  self) {
   trace.file = LOCATE_kernel;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((kernel___Discrete_____minus_t)CALL(variable[2],COLOR_kernel___Discrete_____minus))(variable[2],  TAG_Int(1)) /*Discrete::-*/;
+  variable[2] = CALL_kernel___Discrete_____minus(variable[2])(variable[2],  TAG_Int(1)) /*Discrete::-*/;
   variable[1] = variable[2];
   goto return_label12;
   return_label12: while(false);
@@ -326,14 +326,14 @@ val_t kernel___Discrete___distance(val_t  self, val_t  param0) {
   /*variable[3] is variable cursor*/
   /*variable[4] is variable stop*/
   variable[5] = variable[0];
-  variable[5] = ((kernel___Comparable_____l_t)CALL(variable[5],COLOR_kernel___Comparable_____l))(variable[5],  variable[1] /*d*/) /*Comparable::<*/;
+  variable[5] = CALL_kernel___Comparable_____l(variable[5])(variable[5],  variable[1] /*d*/) /*Comparable::<*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[3] = variable[5] /*cursor=*/;
     variable[4] =  variable[1] /*d*/ /*stop=*/;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((kernel___Comparable_____g_t)CALL(variable[5],COLOR_kernel___Comparable_____g))(variable[5],  variable[1] /*d*/) /*Comparable::>*/;
+    variable[5] = CALL_kernel___Comparable_____g(variable[5])(variable[5],  variable[1] /*d*/) /*Comparable::>*/;
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[3] =  variable[1] /*d*/ /*cursor=*/;
       variable[5] = variable[0];
@@ -345,9 +345,9 @@ val_t kernel___Discrete___distance(val_t  self, val_t  param0) {
   }
   variable[5] =  TAG_Int(0);
   while (true) { /*while*/
-    variable[6] = ((kernel___Comparable_____l_t)CALL( variable[3] /*cursor*/,COLOR_kernel___Comparable_____l))( variable[3] /*cursor*/,  variable[4] /*stop*/) /*Comparable::<*/;
+    variable[6] = CALL_kernel___Comparable_____l( variable[3] /*cursor*/)( variable[3] /*cursor*/,  variable[4] /*stop*/) /*Comparable::<*/;
     if (!UNTAG_Bool(variable[6])) break; /* while*/
-    variable[6] = ((kernel___Discrete___succ_t)CALL( variable[3] /*cursor*/,COLOR_kernel___Discrete___succ))( variable[3] /*cursor*/) /*Discrete::succ*/;
+    variable[6] = CALL_kernel___Discrete___succ( variable[3] /*cursor*/)( variable[3] /*cursor*/) /*Discrete::succ*/;
     variable[3] = variable[6] /*cursor=*/;
     variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*nb*/;
     continue_14: while(0);
@@ -1059,7 +1059,7 @@ val_t kernel___Char___to_i(val_t  self) {
       goto return_label24;
     } else { /*if*/
       variable[2] = variable[0];
-      variable[2] = ((kernel___Char___to_lower_t)CALL(variable[2],COLOR_kernel___Char___to_lower))(variable[2]) /*Char::to_lower*/;
+      variable[2] = CALL_kernel___Char___to_lower(variable[2])(variable[2]) /*Char::to_lower*/;
       variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2]));
       variable[3] = TAG_Int((unsigned char)UNTAG_Char( TAG_Char('a')));
       variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(10)));
@@ -1099,7 +1099,7 @@ val_t kernel___Char___to_lower(val_t  self) {
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2]));
-    variable[3] = ((kernel___Char___distance_t)CALL( TAG_Char('a'),COLOR_kernel___Discrete___distance))( TAG_Char('a'),  TAG_Char('A')) /*Char::distance*/;
+    variable[3] = CALL_kernel___Discrete___distance( TAG_Char('a'))( TAG_Char('a'),  TAG_Char('A')) /*Char::distance*/;
     variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int(variable[3]));
     variable[2] = TAG_Char(UNTAG_Int(variable[2]));
     variable[1] = variable[2];
@@ -1131,7 +1131,7 @@ val_t kernel___Char___to_upper(val_t  self) {
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[2] = TAG_Int((unsigned char)UNTAG_Char(variable[2]));
-    variable[3] = ((kernel___Char___distance_t)CALL( TAG_Char('a'),COLOR_kernel___Discrete___distance))( TAG_Char('a'),  TAG_Char('A')) /*Char::distance*/;
+    variable[3] = CALL_kernel___Discrete___distance( TAG_Char('a'))( TAG_Char('a'),  TAG_Char('A')) /*Char::distance*/;
     variable[2] = TAG_Int(UNTAG_Int(variable[2])-UNTAG_Int(variable[3]));
     variable[2] = TAG_Char(UNTAG_Int(variable[2]));
     variable[1] = variable[2];
index 9cfdfb7..a122d5d 100644 (file)
@@ -28,79 +28,79 @@ val_t BOX_Pointer(void * val);
 #define UNBOX_Pointer(x) (((struct TBOX_Pointer *)(VAL2OBJ(x)))->val)
 extern const char *LOCATE_kernel;
 extern const int SFT_kernel[];
-#define ID_Object SFT_kernel[0]
-#define COLOR_Object SFT_kernel[1]
-#define INIT_TABLE_POS_Object SFT_kernel[2]
-#define COLOR_kernel___Object___object_id SFT_kernel[3]
-#define COLOR_kernel___Object___is_same_type SFT_kernel[4]
-#define COLOR_kernel___Object_____eqeq SFT_kernel[5]
-#define COLOR_kernel___Object_____neq SFT_kernel[6]
-#define COLOR_kernel___Object___output SFT_kernel[7]
-#define COLOR_kernel___Object___exit SFT_kernel[8]
-#define COLOR_kernel___Object___sys SFT_kernel[9]
-#define ID_Sys SFT_kernel[10]
-#define COLOR_Sys SFT_kernel[11]
-#define INIT_TABLE_POS_Sys SFT_kernel[12]
-#define COLOR_kernel___Sys___main SFT_kernel[13]
-#define COLOR_kernel___Sys___init SFT_kernel[14]
-#define ID_Comparable SFT_kernel[15]
-#define COLOR_Comparable SFT_kernel[16]
-#define INIT_TABLE_POS_Comparable SFT_kernel[17]
-#define COLOR_kernel___Comparable_____l SFT_kernel[18]
-#define COLOR_kernel___Comparable_____leq SFT_kernel[19]
-#define COLOR_kernel___Comparable_____geq SFT_kernel[20]
-#define COLOR_kernel___Comparable_____g SFT_kernel[21]
-#define COLOR_kernel___Comparable_____leqg SFT_kernel[22]
-#define COLOR_kernel___Comparable___is_between SFT_kernel[23]
-#define COLOR_kernel___Comparable___max SFT_kernel[24]
-#define COLOR_kernel___Comparable___min SFT_kernel[25]
-#define ID_Discrete SFT_kernel[26]
-#define COLOR_Discrete SFT_kernel[27]
-#define INIT_TABLE_POS_Discrete SFT_kernel[28]
-#define COLOR_kernel___Discrete___succ SFT_kernel[29]
-#define COLOR_kernel___Discrete___prec SFT_kernel[30]
-#define COLOR_kernel___Discrete_____plus SFT_kernel[31]
-#define COLOR_kernel___Discrete_____minus SFT_kernel[32]
-#define COLOR_kernel___Discrete___distance SFT_kernel[33]
-#define ID_Bool SFT_kernel[34]
-#define COLOR_Bool SFT_kernel[35]
-#define INIT_TABLE_POS_Bool SFT_kernel[36]
-#define ID_Float SFT_kernel[37]
-#define COLOR_Float SFT_kernel[38]
-#define INIT_TABLE_POS_Float SFT_kernel[39]
-#define COLOR_kernel___Float_____leq SFT_kernel[40]
-#define COLOR_kernel___Float_____l SFT_kernel[41]
-#define COLOR_kernel___Float_____geq SFT_kernel[42]
-#define COLOR_kernel___Float_____g SFT_kernel[43]
-#define COLOR_kernel___Float_____plus SFT_kernel[44]
-#define COLOR_kernel___Float___unary__minus SFT_kernel[45]
-#define COLOR_kernel___Float_____minus SFT_kernel[46]
-#define COLOR_kernel___Float_____star SFT_kernel[47]
-#define COLOR_kernel___Float_____slash SFT_kernel[48]
-#define COLOR_kernel___Float___to_i SFT_kernel[49]
-#define ID_Int SFT_kernel[50]
-#define COLOR_Int SFT_kernel[51]
-#define INIT_TABLE_POS_Int SFT_kernel[52]
-#define COLOR_kernel___Int___unary__minus SFT_kernel[53]
-#define COLOR_kernel___Int_____star SFT_kernel[54]
-#define COLOR_kernel___Int_____slash SFT_kernel[55]
-#define COLOR_kernel___Int_____percent SFT_kernel[56]
-#define COLOR_kernel___Int___lshift SFT_kernel[57]
-#define COLOR_kernel___Int___rshift SFT_kernel[58]
-#define COLOR_kernel___Int___to_f SFT_kernel[59]
-#define COLOR_kernel___Int___ascii SFT_kernel[60]
-#define COLOR_kernel___Int___digit_count SFT_kernel[61]
-#define COLOR_kernel___Int___to_c SFT_kernel[62]
-#define ID_Char SFT_kernel[63]
-#define COLOR_Char SFT_kernel[64]
-#define INIT_TABLE_POS_Char SFT_kernel[65]
-#define COLOR_kernel___Char___to_i SFT_kernel[66]
-#define COLOR_kernel___Char___ascii SFT_kernel[67]
-#define COLOR_kernel___Char___to_lower SFT_kernel[68]
-#define COLOR_kernel___Char___to_upper SFT_kernel[69]
-#define ID_Pointer SFT_kernel[70]
-#define COLOR_Pointer SFT_kernel[71]
-#define INIT_TABLE_POS_Pointer SFT_kernel[72]
+#define ID_Object (SFT_kernel[0])
+#define COLOR_Object (SFT_kernel[1])
+#define INIT_TABLE_POS_Object (SFT_kernel[2] + 0)
+#define CALL_kernel___Object___object_id(recv) ((kernel___Object___object_id_t)CALL((recv), (SFT_kernel[2] + 1)))
+#define CALL_kernel___Object___is_same_type(recv) ((kernel___Object___is_same_type_t)CALL((recv), (SFT_kernel[2] + 2)))
+#define CALL_kernel___Object_____eqeq(recv) ((kernel___Object_____eqeq_t)CALL((recv), (SFT_kernel[2] + 3)))
+#define CALL_kernel___Object_____neq(recv) ((kernel___Object_____neq_t)CALL((recv), (SFT_kernel[2] + 4)))
+#define CALL_kernel___Object___output(recv) ((kernel___Object___output_t)CALL((recv), (SFT_kernel[2] + 5)))
+#define CALL_kernel___Object___exit(recv) ((kernel___Object___exit_t)CALL((recv), (SFT_kernel[2] + 6)))
+#define CALL_kernel___Object___sys(recv) ((kernel___Object___sys_t)CALL((recv), (SFT_kernel[2] + 7)))
+#define ID_Sys (SFT_kernel[3])
+#define COLOR_Sys (SFT_kernel[4])
+#define INIT_TABLE_POS_Sys (SFT_kernel[5] + 0)
+#define CALL_kernel___Sys___main(recv) ((kernel___Sys___main_t)CALL((recv), (SFT_kernel[5] + 1)))
+#define CALL_kernel___Sys___init(recv) ((kernel___Sys___init_t)CALL((recv), (SFT_kernel[5] + 2)))
+#define ID_Comparable (SFT_kernel[6])
+#define COLOR_Comparable (SFT_kernel[7])
+#define INIT_TABLE_POS_Comparable (SFT_kernel[8] + 0)
+#define CALL_kernel___Comparable_____l(recv) ((kernel___Comparable_____l_t)CALL((recv), (SFT_kernel[8] + 1)))
+#define CALL_kernel___Comparable_____leq(recv) ((kernel___Comparable_____leq_t)CALL((recv), (SFT_kernel[8] + 2)))
+#define CALL_kernel___Comparable_____geq(recv) ((kernel___Comparable_____geq_t)CALL((recv), (SFT_kernel[8] + 3)))
+#define CALL_kernel___Comparable_____g(recv) ((kernel___Comparable_____g_t)CALL((recv), (SFT_kernel[8] + 4)))
+#define CALL_kernel___Comparable_____leqg(recv) ((kernel___Comparable_____leqg_t)CALL((recv), (SFT_kernel[8] + 5)))
+#define CALL_kernel___Comparable___is_between(recv) ((kernel___Comparable___is_between_t)CALL((recv), (SFT_kernel[8] + 6)))
+#define CALL_kernel___Comparable___max(recv) ((kernel___Comparable___max_t)CALL((recv), (SFT_kernel[8] + 7)))
+#define CALL_kernel___Comparable___min(recv) ((kernel___Comparable___min_t)CALL((recv), (SFT_kernel[8] + 8)))
+#define ID_Discrete (SFT_kernel[9])
+#define COLOR_Discrete (SFT_kernel[10])
+#define INIT_TABLE_POS_Discrete (SFT_kernel[11] + 0)
+#define CALL_kernel___Discrete___succ(recv) ((kernel___Discrete___succ_t)CALL((recv), (SFT_kernel[11] + 1)))
+#define CALL_kernel___Discrete___prec(recv) ((kernel___Discrete___prec_t)CALL((recv), (SFT_kernel[11] + 2)))
+#define CALL_kernel___Discrete_____plus(recv) ((kernel___Discrete_____plus_t)CALL((recv), (SFT_kernel[11] + 3)))
+#define CALL_kernel___Discrete_____minus(recv) ((kernel___Discrete_____minus_t)CALL((recv), (SFT_kernel[11] + 4)))
+#define CALL_kernel___Discrete___distance(recv) ((kernel___Discrete___distance_t)CALL((recv), (SFT_kernel[11] + 5)))
+#define ID_Bool (SFT_kernel[12])
+#define COLOR_Bool (SFT_kernel[13])
+#define INIT_TABLE_POS_Bool (SFT_kernel[14] + 0)
+#define ID_Float (SFT_kernel[15])
+#define COLOR_Float (SFT_kernel[16])
+#define INIT_TABLE_POS_Float (SFT_kernel[17] + 0)
+#define CALL_kernel___Float_____leq(recv) ((kernel___Float_____leq_t)CALL((recv), (SFT_kernel[17] + 1)))
+#define CALL_kernel___Float_____l(recv) ((kernel___Float_____l_t)CALL((recv), (SFT_kernel[17] + 2)))
+#define CALL_kernel___Float_____geq(recv) ((kernel___Float_____geq_t)CALL((recv), (SFT_kernel[17] + 3)))
+#define CALL_kernel___Float_____g(recv) ((kernel___Float_____g_t)CALL((recv), (SFT_kernel[17] + 4)))
+#define CALL_kernel___Float_____plus(recv) ((kernel___Float_____plus_t)CALL((recv), (SFT_kernel[17] + 5)))
+#define CALL_kernel___Float___unary__minus(recv) ((kernel___Float___unary__minus_t)CALL((recv), (SFT_kernel[17] + 6)))
+#define CALL_kernel___Float_____minus(recv) ((kernel___Float_____minus_t)CALL((recv), (SFT_kernel[17] + 7)))
+#define CALL_kernel___Float_____star(recv) ((kernel___Float_____star_t)CALL((recv), (SFT_kernel[17] + 8)))
+#define CALL_kernel___Float_____slash(recv) ((kernel___Float_____slash_t)CALL((recv), (SFT_kernel[17] + 9)))
+#define CALL_kernel___Float___to_i(recv) ((kernel___Float___to_i_t)CALL((recv), (SFT_kernel[17] + 10)))
+#define ID_Int (SFT_kernel[18])
+#define COLOR_Int (SFT_kernel[19])
+#define INIT_TABLE_POS_Int (SFT_kernel[20] + 0)
+#define CALL_kernel___Int___unary__minus(recv) ((kernel___Int___unary__minus_t)CALL((recv), (SFT_kernel[20] + 1)))
+#define CALL_kernel___Int_____star(recv) ((kernel___Int_____star_t)CALL((recv), (SFT_kernel[20] + 2)))
+#define CALL_kernel___Int_____slash(recv) ((kernel___Int_____slash_t)CALL((recv), (SFT_kernel[20] + 3)))
+#define CALL_kernel___Int_____percent(recv) ((kernel___Int_____percent_t)CALL((recv), (SFT_kernel[20] + 4)))
+#define CALL_kernel___Int___lshift(recv) ((kernel___Int___lshift_t)CALL((recv), (SFT_kernel[20] + 5)))
+#define CALL_kernel___Int___rshift(recv) ((kernel___Int___rshift_t)CALL((recv), (SFT_kernel[20] + 6)))
+#define CALL_kernel___Int___to_f(recv) ((kernel___Int___to_f_t)CALL((recv), (SFT_kernel[20] + 7)))
+#define CALL_kernel___Int___ascii(recv) ((kernel___Int___ascii_t)CALL((recv), (SFT_kernel[20] + 8)))
+#define CALL_kernel___Int___digit_count(recv) ((kernel___Int___digit_count_t)CALL((recv), (SFT_kernel[20] + 9)))
+#define CALL_kernel___Int___to_c(recv) ((kernel___Int___to_c_t)CALL((recv), (SFT_kernel[20] + 10)))
+#define ID_Char (SFT_kernel[21])
+#define COLOR_Char (SFT_kernel[22])
+#define INIT_TABLE_POS_Char (SFT_kernel[23] + 0)
+#define CALL_kernel___Char___to_i(recv) ((kernel___Char___to_i_t)CALL((recv), (SFT_kernel[23] + 1)))
+#define CALL_kernel___Char___ascii(recv) ((kernel___Char___ascii_t)CALL((recv), (SFT_kernel[23] + 2)))
+#define CALL_kernel___Char___to_lower(recv) ((kernel___Char___to_lower_t)CALL((recv), (SFT_kernel[23] + 3)))
+#define CALL_kernel___Char___to_upper(recv) ((kernel___Char___to_upper_t)CALL((recv), (SFT_kernel[23] + 4)))
+#define ID_Pointer (SFT_kernel[24])
+#define COLOR_Pointer (SFT_kernel[25])
+#define INIT_TABLE_POS_Pointer (SFT_kernel[26] + 0)
 typedef val_t (* kernel___Object___object_id_t)(val_t  self);
 val_t kernel___Object___object_id(val_t  self);
 #define LOCATE_kernel___Object___object_id "kernel::Object::object_id"
index 9a9b198..b2434e4 100644 (file)
@@ -7,17 +7,18 @@ val_t lexer___Token___to_s(val_t  self) {
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_lexer;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("'"), TAG_Int(1)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
   variable[5] = ATTR_lexer___Token____text(variable[5]) /*Token::_text*/;
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("'"), TAG_Int(1)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
   goto return_label0;
   return_label0: while(false);
@@ -3776,7 +3777,7 @@ void lexer___PError___init_error(val_t  self, val_t  param0, val_t  param1, val_
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PError].i]) return;
   variable[6] = variable[0];
-  ((lexer___EOF___init_t)CALL(variable[6],COLOR_lexer___EOF___init))(variable[6],  variable[1] /*fname*/,  variable[2] /*line*/,  variable[3] /*pos*/, init_table /*YYY*/) /*EOF::init*/;
+  CALL_lexer___EOF___init(variable[6])(variable[6],  variable[1] /*fname*/,  variable[2] /*line*/,  variable[3] /*pos*/, init_table /*YYY*/) /*EOF::init*/;
   variable[6] = variable[0];
   ATTR_lexer___PError____message(variable[6]) /*PError::_message*/ =  variable[4] /*message*/;
   return_label243: while(false);
@@ -3830,9 +3831,9 @@ void lexer___Lexer___init(val_t  self, val_t  param0, val_t  param1, int* init_t
   variable[5] = NEW_String_string___String___init(); /*new String*/
   ATTR_lexer___Lexer____stream_buf(variable[4]) /*Lexer::_stream_buf*/ = variable[5];
   variable[4] = variable[0];
-  ((lexer___Lexer___build_goto_table_t)CALL(variable[4],COLOR_lexer___Lexer___build_goto_table))(variable[4]) /*Lexer::build_goto_table*/;
+  CALL_lexer___Lexer___build_goto_table(variable[4])(variable[4]) /*Lexer::build_goto_table*/;
   variable[4] = variable[0];
-  ((lexer___Lexer___build_accept_table_t)CALL(variable[4],COLOR_lexer___Lexer___build_accept_table))(variable[4]) /*Lexer::build_accept_table*/;
+  CALL_lexer___Lexer___build_accept_table(variable[4])(variable[4]) /*Lexer::build_accept_table*/;
   return_label245: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Lexer].i] = 1;
   tracehead = trace.prev;
@@ -3848,11 +3849,11 @@ val_t lexer___Lexer___peek(val_t  self) {
   while (true) { /*while*/
     variable[2] = variable[0];
     variable[2] = ATTR_lexer___Lexer____token(variable[2]) /*Lexer::_token*/;
-    variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
     if (!UNTAG_Bool(variable[2])) break; /* while*/
     variable[2] = variable[0];
     variable[3] = variable[0];
-    variable[3] = ((lexer___Lexer___get_token_t)CALL(variable[3],COLOR_lexer___Lexer___get_token))(variable[3]) /*Lexer::get_token*/;
+    variable[3] = CALL_lexer___Lexer___get_token(variable[3])(variable[3]) /*Lexer::get_token*/;
     ATTR_lexer___Lexer____token(variable[2]) /*Lexer::_token*/ = variable[3];
     continue_247: while(0);
   }
@@ -3876,10 +3877,10 @@ val_t lexer___Lexer___next(val_t  self) {
   variable[3] = ATTR_lexer___Lexer____token(variable[3]) /*Lexer::_token*/;
   variable[2] = variable[3];
   while (true) { /*while*/
-    variable[3] = TAG_Bool(( variable[2] /*result*/ ==  NIT_NULL /*null*/) || (( variable[2] /*result*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*result*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*result*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*result*/,COLOR_kernel___Object_____eqeq))( variable[2] /*result*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[3] = TAG_Bool(( variable[2] /*result*/ ==  NIT_NULL /*null*/) || (( variable[2] /*result*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*result*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*result*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*result*/)( variable[2] /*result*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (!UNTAG_Bool(variable[3])) break; /* while*/
     variable[3] = variable[0];
-    variable[3] = ((lexer___Lexer___get_token_t)CALL(variable[3],COLOR_lexer___Lexer___get_token))(variable[3]) /*Lexer::get_token*/;
+    variable[3] = CALL_lexer___Lexer___get_token(variable[3])(variable[3]) /*Lexer::get_token*/;
     variable[2] = variable[3] /*result=*/;
     continue_249: while(0);
   }
@@ -3964,11 +3965,11 @@ val_t lexer___Lexer___get_token(val_t  self) {
   variable[11] = variable[12];
   variable[12] = variable[0];
   variable[12] = ATTR_lexer___Lexer____text(variable[12]) /*Lexer::_text*/;
-  ((array___AbstractArray___clear_t)CALL(variable[12],COLOR_abstract_collection___RemovableCollection___clear))(variable[12]) /*AbstractArray::clear*/;
+  CALL_abstract_collection___RemovableCollection___clear(variable[12])(variable[12]) /*AbstractArray::clear*/;
   while (true) { /*while*/
     if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
     variable[13] = variable[0];
-    variable[13] = ((lexer___Lexer___get_char_t)CALL(variable[13],COLOR_lexer___Lexer___get_char))(variable[13]) /*Lexer::get_char*/;
+    variable[13] = CALL_lexer___Lexer___get_char(variable[13])(variable[13]) /*Lexer::get_char*/;
     variable[12] = variable[13];
     variable[13] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
     variable[13] = TAG_Bool(( variable[12] /*c*/)!=(variable[13]));
@@ -4014,7 +4015,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
       variable[13] = variable[0];
       variable[13] = ATTR_lexer___Lexer____text(variable[13]) /*Lexer::_text*/;
       variable[14] = TAG_Char(UNTAG_Int( variable[12] /*c*/));
-      ((string___String___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13], variable[14]) /*String::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*String::add*/;
       variable[13] =  TAG_Bool(true);
       while (true) { /*while*/
         variable[14] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
@@ -4055,7 +4056,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         variable[16] = variable[18];
         variable[15] = variable[16];
         variable[16] =  TAG_Int(0);
-        variable[18] = ((array___AbstractArray___length_t)CALL( variable[15] /*tmp1*/,COLOR_abstract_collection___Collection___length))( variable[15] /*tmp1*/) /*AbstractArray::length*/;
+        variable[18] = CALL_abstract_collection___Collection___length( variable[15] /*tmp1*/)( variable[15] /*tmp1*/) /*AbstractArray::length*/;
         variable[18] = TAG_Int(UNTAG_Int(variable[18])-UNTAG_Int( TAG_Int(1)));
         variable[17] = variable[18];
         while (true) { /*while*/
@@ -4208,7 +4209,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         variable[6] = variable[13] /*accept_token=*/;
         variable[13] = variable[0];
         variable[13] = ATTR_lexer___Lexer____text(variable[13]) /*Lexer::_text*/;
-        variable[13] = ((array___AbstractArray___length_t)CALL(variable[13],COLOR_abstract_collection___Collection___length))(variable[13]) /*AbstractArray::length*/;
+        variable[13] = CALL_abstract_collection___Collection___length(variable[13])(variable[13]) /*AbstractArray::length*/;
         variable[7] = variable[13] /*accept_length=*/;
         variable[13] = variable[0];
         variable[13] = ATTR_lexer___Lexer____pos(variable[13]) /*Lexer::_pos*/;
@@ -4224,7 +4225,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         variable[13] = TAG_Bool(( variable[6] /*accept_token*/)==( TAG_Int(0)));
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[13] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[13],COLOR_lexer___Lexer___push_back))(variable[13],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[13])(variable[13],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[13] = variable[0];
           ATTR_lexer___Lexer____pos(variable[13]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[13] = variable[0];
@@ -4236,7 +4237,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -4246,7 +4247,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -4258,7 +4259,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -4268,7 +4269,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -4286,7 +4287,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4304,7 +4305,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4322,7 +4323,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4340,7 +4341,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4358,7 +4359,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4376,7 +4377,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4394,7 +4395,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4412,7 +4413,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4430,7 +4431,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4448,7 +4449,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4466,7 +4467,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4484,7 +4485,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4502,7 +4503,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4520,7 +4521,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4538,7 +4539,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4556,7 +4557,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4574,7 +4575,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4592,7 +4593,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4610,7 +4611,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4628,7 +4629,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4646,7 +4647,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4664,7 +4665,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4682,7 +4683,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4700,7 +4701,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4718,7 +4719,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4736,7 +4737,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4754,7 +4755,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4772,7 +4773,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4790,7 +4791,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4808,7 +4809,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4826,7 +4827,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4844,7 +4845,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4862,7 +4863,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4880,7 +4881,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4898,7 +4899,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4916,7 +4917,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4934,7 +4935,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4952,7 +4953,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4970,7 +4971,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -4988,7 +4989,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5006,7 +5007,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5024,7 +5025,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5042,7 +5043,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5060,7 +5061,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5078,7 +5079,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5096,7 +5097,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5114,7 +5115,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5132,7 +5133,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5150,7 +5151,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5168,7 +5169,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5186,7 +5187,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5204,7 +5205,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5222,7 +5223,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5240,7 +5241,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5258,7 +5259,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5276,7 +5277,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5294,7 +5295,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5312,7 +5313,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5330,7 +5331,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5348,7 +5349,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5366,7 +5367,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5384,7 +5385,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5402,7 +5403,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5420,7 +5421,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5438,7 +5439,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5456,7 +5457,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5474,7 +5475,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5492,7 +5493,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5510,7 +5511,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5528,7 +5529,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5546,7 +5547,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5564,7 +5565,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[14] = variable[17];
           variable[13] = variable[14];
           variable[14] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[14],COLOR_lexer___Lexer___push_back))(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[14])(variable[14],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[14] = variable[0];
           ATTR_lexer___Lexer____pos(variable[14]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[14] = variable[0];
@@ -5576,7 +5577,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5586,7 +5587,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5598,7 +5599,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5608,7 +5609,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5620,7 +5621,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5630,7 +5631,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5642,7 +5643,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5652,7 +5653,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5664,7 +5665,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5674,7 +5675,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5686,7 +5687,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5696,7 +5697,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5708,7 +5709,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5718,7 +5719,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5730,7 +5731,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5740,7 +5741,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5752,7 +5753,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5762,7 +5763,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5774,7 +5775,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____text(variable[14]) /*Lexer::_text*/;
-          variable[14] = ((string___String___substring_t)CALL(variable[14],COLOR_string___String___substring))(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
+          variable[14] = CALL_string___String___substring(variable[14])(variable[14],  TAG_Int(0),  variable[7] /*accept_length*/) /*String::substring*/;
           variable[13] = variable[14];
           variable[15] = variable[0];
           variable[15] = ATTR_lexer___Lexer____filename(variable[15]) /*Lexer::_filename*/;
@@ -5784,7 +5785,7 @@ val_t lexer___Lexer___get_token(val_t  self) {
           variable[15] = variable[18];
           variable[14] = variable[15];
           variable[15] = variable[0];
-          ((lexer___Lexer___push_back_t)CALL(variable[15],COLOR_lexer___Lexer___push_back))(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
+          CALL_lexer___Lexer___push_back(variable[15])(variable[15],  variable[7] /*accept_length*/) /*Lexer::push_back*/;
           variable[15] = variable[0];
           ATTR_lexer___Lexer____pos(variable[15]) /*Lexer::_pos*/ =  variable[8] /*accept_pos*/;
           variable[15] = variable[0];
@@ -5795,24 +5796,25 @@ val_t lexer___Lexer___get_token(val_t  self) {
       } else { /*if*/
         variable[13] = variable[0];
         variable[13] = ATTR_lexer___Lexer____text(variable[13]) /*Lexer::_text*/;
-        variable[13] = ((array___AbstractArray___length_t)CALL(variable[13],COLOR_abstract_collection___Collection___length))(variable[13]) /*AbstractArray::length*/;
+        variable[13] = CALL_abstract_collection___Collection___length(variable[13])(variable[13]) /*AbstractArray::length*/;
         variable[13] = TAG_Bool(UNTAG_Int(variable[13])>UNTAG_Int( TAG_Int(0)));
         if (UNTAG_Bool(variable[13])) { /*if*/
           variable[14] = variable[0];
           variable[14] = ATTR_lexer___Lexer____filename(variable[14]) /*Lexer::_filename*/;
           variable[15] = TAG_Int(UNTAG_Int( variable[4] /*start_line*/)+UNTAG_Int( TAG_Int(1)));
           variable[16] = TAG_Int(UNTAG_Int( variable[3] /*start_pos*/)+UNTAG_Int( TAG_Int(1)));
-          variable[17] = NEW_String_string___String___init(); /*new String*/
+          variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Unknown token: "), TAG_Int(15)); /*new String*/
           variable[19] = variable[18];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[19]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[19]) /*AbstractArray::add*/;
           variable[20] = variable[0];
           variable[20] = ATTR_lexer___Lexer____text(variable[20]) /*Lexer::_text*/;
           variable[21] = variable[20];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[21]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[21]) /*AbstractArray::add*/;
           variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
           variable[23] = variable[22];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[23]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[23]) /*AbstractArray::add*/;
+          variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
           variable[18] = NEW_PError_lexer___PError___init_error(variable[14], variable[15], variable[16], variable[17]); /*new PError*/
           variable[14] = variable[18];
           variable[13] = variable[14];
@@ -5864,7 +5866,7 @@ val_t lexer___Lexer___get_char(val_t  self) {
     variable[5] = ATTR_lexer___Lexer____stream_buf(variable[5]) /*Lexer::_stream_buf*/;
     variable[6] = variable[0];
     variable[6] = ATTR_lexer___Lexer____stream_pos(variable[6]) /*Lexer::_stream_pos*/;
-    variable[5] = ((string___String_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5], variable[6]) /*String::[]*/;
+    variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5], variable[6]) /*String::[]*/;
     variable[4] = variable[5];
     variable[5] = variable[0];
     variable[6] = TAG_Int(UNTAG_Int( variable[3] /*sp*/)-UNTAG_Int( TAG_Int(1)));
@@ -5874,7 +5876,7 @@ val_t lexer___Lexer___get_char(val_t  self) {
   } else { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_lexer___Lexer____stream(variable[4]) /*Lexer::_stream*/;
-    variable[4] = ((stream___IStream___read_char_t)CALL(variable[4],COLOR_stream___IStream___read_char))(variable[4]) /*IStream::read_char*/;
+    variable[4] = CALL_stream___IStream___read_char(variable[4])(variable[4]) /*IStream::read_char*/;
     variable[2] = variable[4] /*result=*/;
   }
   variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
@@ -5899,7 +5901,7 @@ void lexer___Lexer___push_back(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_lexer___Lexer____text(variable[4]) /*Lexer::_text*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = variable[4];
   variable[5] = TAG_Int(UNTAG_Int( variable[3] /*length*/)-UNTAG_Int( TAG_Int(1)));
   variable[4] = variable[5];
@@ -5919,8 +5921,8 @@ void lexer___Lexer___push_back(val_t  self, val_t  param0) {
     variable[6] = ATTR_lexer___Lexer____stream_pos(variable[6]) /*Lexer::_stream_pos*/;
     variable[7] = variable[0];
     variable[7] = ATTR_lexer___Lexer____text(variable[7]) /*Lexer::_text*/;
-    variable[7] = ((string___String_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[4] /*i*/) /*String::[]*/;
-    ((string___String_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5], variable[6], variable[7]) /*String::[]=*/;
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[4] /*i*/) /*String::[]*/;
+    CALL_abstract_collection___Map_____braeq(variable[5])(variable[5], variable[6], variable[7]) /*String::[]=*/;
     variable[5] = TAG_Int(UNTAG_Int( variable[4] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[4] = variable[5] /*i=*/;
     continue_265: while(0);
@@ -5945,4096 +5947,4096 @@ void lexer___Lexer___build_goto_table(val_t  self) {
     variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(256)); /*new Array[Array[Array[Int]]]*/
     variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(48)); /*new Array[Array[Int]]*/
     variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[6]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[9]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[10]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(6)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(6)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(7)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[12]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(7)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(8)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[13]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(8)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(41)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(41)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(41)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(41)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[18]) /*AbstractArray::add*/;
     variable[19] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(45)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(45)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[20]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(45)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(45)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[20]) /*AbstractArray::add*/;
     variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[21]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[21]) /*AbstractArray::add*/;
     variable[22] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(47)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(47)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(17)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[22]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(47)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(47)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(17)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[22]) /*AbstractArray::add*/;
     variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[23]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[23]) /*AbstractArray::add*/;
     variable[24] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[24]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[24]) /*AbstractArray::add*/;
     variable[25] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[25]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[25]) /*AbstractArray::add*/;
     variable[26] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[26]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[26]) /*AbstractArray::add*/;
     variable[27] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[27]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[27]) /*AbstractArray::add*/;
     variable[28] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[28]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[28]) /*AbstractArray::add*/;
     variable[29] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(24)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[29]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(24)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[29]) /*AbstractArray::add*/;
     variable[30] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(25)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[30]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(25)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[30]) /*AbstractArray::add*/;
     variable[31] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[31]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[31]) /*AbstractArray::add*/;
     variable[32] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(27)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[32]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(27)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[32]) /*AbstractArray::add*/;
     variable[33] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[33]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[33]) /*AbstractArray::add*/;
     variable[34] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[34]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[34]) /*AbstractArray::add*/;
     variable[35] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(30)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(30)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[35]) /*AbstractArray::add*/;
     variable[36] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(36)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(36)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(41)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(41)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[48]) /*AbstractArray::add*/;
     variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[50]) /*AbstractArray::add*/;
     variable[51] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[51]) /*AbstractArray::add*/;
     variable[52] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[52]) /*AbstractArray::add*/;
     variable[53] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(125)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(125)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(45)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[53]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(125)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(125)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(45)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
     variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
     variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[8]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] = variable[0];
-    variable[7] = ((lexer___Lexer___nil_array_t)CALL(variable[7],COLOR_lexer___Lexer___nil_array))(variable[7]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/;
+    variable[7] = CALL_lexer___Lexer___nil_array(variable[7])(variable[7]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(32)) /*AbstractArray::add*/;
     variable[11] = TAG_Int(-UNTAG_Int( TAG_Int(3)));
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10], variable[11]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9], variable[10]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[9]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(47)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10], variable[11]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[10]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(47)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Array[Int]]*/
     variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[12]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[13]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(49)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(49)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[18]) /*AbstractArray::add*/;
     variable[19] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(123)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(123)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(123)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(123)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(124)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[20]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(124)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[20]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(52)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12], variable[13]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(52)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(52)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(52)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(54)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(54)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(52)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12], variable[17]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[12]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(52)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[12]) /*AbstractArray::add*/;
     variable[13] = variable[0];
-    variable[13] = ((lexer___Lexer___nil_array_t)CALL(variable[13],COLOR_lexer___Lexer___nil_array))(variable[13]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[13]) /*AbstractArray::add*/;
+    variable[13] = CALL_lexer___Lexer___nil_array(variable[13])(variable[13]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(56)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(56)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[18]) /*AbstractArray::add*/;
     variable[19] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[19]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[14]) /*AbstractArray::add*/;
     variable[15] = variable[0];
-    variable[15] = ((lexer___Lexer___nil_array_t)CALL(variable[15],COLOR_lexer___Lexer___nil_array))(variable[15]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[15]) /*AbstractArray::add*/;
+    variable[15] = CALL_lexer___Lexer___nil_array(variable[15])(variable[15]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[15]) /*AbstractArray::add*/;
     variable[16] = variable[0];
-    variable[16] = ((lexer___Lexer___nil_array_t)CALL(variable[16],COLOR_lexer___Lexer___nil_array))(variable[16]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[16]) /*AbstractArray::add*/;
+    variable[16] = CALL_lexer___Lexer___nil_array(variable[16])(variable[16]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[16]) /*AbstractArray::add*/;
     variable[17] = variable[0];
-    variable[17] = ((lexer___Lexer___nil_array_t)CALL(variable[17],COLOR_lexer___Lexer___nil_array))(variable[17]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[17]) /*AbstractArray::add*/;
+    variable[17] = CALL_lexer___Lexer___nil_array(variable[17])(variable[17]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[19] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18], variable[19]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[18]) /*AbstractArray::add*/;
     variable[19] = variable[0];
-    variable[19] = ((lexer___Lexer___nil_array_t)CALL(variable[19],COLOR_lexer___Lexer___nil_array))(variable[19]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[19]) /*AbstractArray::add*/;
+    variable[19] = CALL_lexer___Lexer___nil_array(variable[19])(variable[19]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20], variable[21]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[20]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[20]) /*AbstractArray::add*/;
     variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
     variable[22] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(59)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21], variable[22]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(59)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[22]) /*AbstractArray::add*/;
     variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21], variable[23]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[21]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[23]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[21]) /*AbstractArray::add*/;
     variable[22] = variable[0];
-    variable[22] = ((lexer___Lexer___nil_array_t)CALL(variable[22],COLOR_lexer___Lexer___nil_array))(variable[22]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[22]) /*AbstractArray::add*/;
+    variable[22] = CALL_lexer___Lexer___nil_array(variable[22])(variable[22]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[22]) /*AbstractArray::add*/;
     variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
     variable[24] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[24]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
     variable[25] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[25]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[23]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[23]) /*AbstractArray::add*/;
     variable[24] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[25] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24], variable[25]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[24]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24], variable[25]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[24]) /*AbstractArray::add*/;
     variable[25] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[26] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(63)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25], variable[26]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[25]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(63)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], variable[26]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[25]) /*AbstractArray::add*/;
     variable[26] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[27] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(64)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26], variable[27]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[26]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(64)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26], variable[27]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[26]) /*AbstractArray::add*/;
     variable[27] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[28] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27], variable[28]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[27]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27], variable[28]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[27]) /*AbstractArray::add*/;
     variable[28] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[29] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(66)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28], variable[29]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(66)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28], variable[29]) /*AbstractArray::add*/;
     variable[30] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28], variable[30]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28], variable[30]) /*AbstractArray::add*/;
     variable[31] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(68)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28], variable[31]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(68)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28], variable[31]) /*AbstractArray::add*/;
     variable[32] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(69)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28], variable[32]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[28]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(69)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28], variable[32]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[28]) /*AbstractArray::add*/;
     variable[29] = variable[0];
-    variable[29] = ((lexer___Lexer___nil_array_t)CALL(variable[29],COLOR_lexer___Lexer___nil_array))(variable[29]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[29]) /*AbstractArray::add*/;
+    variable[29] = CALL_lexer___Lexer___nil_array(variable[29])(variable[29]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[29]) /*AbstractArray::add*/;
     variable[30] = variable[0];
-    variable[30] = ((lexer___Lexer___nil_array_t)CALL(variable[30],COLOR_lexer___Lexer___nil_array))(variable[30]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[30]) /*AbstractArray::add*/;
+    variable[30] = CALL_lexer___Lexer___nil_array(variable[30])(variable[30]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[30]) /*AbstractArray::add*/;
     variable[31] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[32] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31], variable[32]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[31]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31], variable[32]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[31]) /*AbstractArray::add*/;
     variable[32] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[Array[Int]]*/
     variable[33] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[33]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[33]) /*AbstractArray::add*/;
     variable[34] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[34]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[34]) /*AbstractArray::add*/;
     variable[35] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(73)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(73)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[35]) /*AbstractArray::add*/;
     variable[36] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(78)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(78)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[43]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[32]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[32]) /*AbstractArray::add*/;
     variable[33] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[34] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[35] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[35]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33], variable[34]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33], variable[34]) /*AbstractArray::add*/;
     variable[35] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33], variable[35]) /*AbstractArray::add*/;
     variable[36] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33], variable[37]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[33]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[33]) /*AbstractArray::add*/;
     variable[34] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Array[Int]]*/
     variable[35] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[36] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35], variable[36]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[35]) /*AbstractArray::add*/;
     variable[36] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(81)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(81)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[40]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[34]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[34]) /*AbstractArray::add*/;
     variable[35] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[36] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[37] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[37]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35], variable[39]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[35]) /*AbstractArray::add*/;
     variable[36] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[38] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[38]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(83)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(83)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(85)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(85)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(121)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[43]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(121)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[39] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38], variable[39]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(86)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(86)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(87)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(87)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[42]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Array[Int]]*/
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[40] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[40]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38], variable[40]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Array[Int]]*/
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[41] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40], variable[41]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(88)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(88)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(89)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(89)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[48]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[42] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[42]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40], variable[44]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[43] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[43]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(94)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(94)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[48]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Array[Int]]*/
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[44] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[44]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(96)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(96)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[48]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[45] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44], variable[45]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[48]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[46] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[46]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44], variable[47]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[47] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[47]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[48]) /*AbstractArray::add*/;
     variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[50]) /*AbstractArray::add*/;
     variable[51] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[51]) /*AbstractArray::add*/;
     variable[52] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[52]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Array[Int]]*/
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[48] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47], variable[48]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[48]) /*AbstractArray::add*/;
     variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[50]) /*AbstractArray::add*/;
     variable[51] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[51]) /*AbstractArray::add*/;
     variable[52] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[52]) /*AbstractArray::add*/;
     variable[53] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(121)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(121)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(121)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(121)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[53]) /*AbstractArray::add*/;
     variable[54] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[54]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[54]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(109)) /*AbstractArray::add*/;
     variable[49] = TAG_Int(-UNTAG_Int( TAG_Int(39)));
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48], variable[49]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47], variable[48]) /*AbstractArray::add*/;
     variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47], variable[50]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[50] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[50]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48], variable[50]) /*AbstractArray::add*/;
     variable[51] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48], variable[51]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[48]) /*AbstractArray::add*/;
     variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Array[Int]]*/
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(103)) /*AbstractArray::add*/;
     variable[51] = TAG_Int(-UNTAG_Int( TAG_Int(43)));
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[51]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[50]) /*AbstractArray::add*/;
     variable[51] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[51]) /*AbstractArray::add*/;
     variable[52] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[52]) /*AbstractArray::add*/;
     variable[53] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[53]) /*AbstractArray::add*/;
     variable[54] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[54]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[54]) /*AbstractArray::add*/;
     variable[55] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[55]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[55]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Array[Int]]*/
     variable[51] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[51]) /*AbstractArray::add*/;
     variable[52] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[52]) /*AbstractArray::add*/;
     variable[53] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[53]) /*AbstractArray::add*/;
     variable[54] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[54]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[54]) /*AbstractArray::add*/;
     variable[55] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[55]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[55]) /*AbstractArray::add*/;
     variable[56] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[56]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[56]) /*AbstractArray::add*/;
     variable[57] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[57]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[57]) /*AbstractArray::add*/;
     variable[58] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(123)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(123)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[58]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(123)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(123)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[58]) /*AbstractArray::add*/;
     variable[59] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(124)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[59]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(124)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[59]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[50]) /*AbstractArray::add*/;
     variable[51] = variable[0];
-    variable[51] = ((lexer___Lexer___nil_array_t)CALL(variable[51],COLOR_lexer___Lexer___nil_array))(variable[51]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[51]) /*AbstractArray::add*/;
+    variable[51] = CALL_lexer___Lexer___nil_array(variable[51])(variable[51]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[51]) /*AbstractArray::add*/;
     variable[52] = variable[0];
-    variable[52] = ((lexer___Lexer___nil_array_t)CALL(variable[52],COLOR_lexer___Lexer___nil_array))(variable[52]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[52]) /*AbstractArray::add*/;
+    variable[52] = CALL_lexer___Lexer___nil_array(variable[52])(variable[52]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[52]) /*AbstractArray::add*/;
     variable[53] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[54] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(255)) /*AbstractArray::add*/;
     variable[55] = TAG_Int(-UNTAG_Int( TAG_Int(8)));
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54], variable[55]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53], variable[54]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54], variable[55]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53], variable[54]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[53]) /*AbstractArray::add*/;
     variable[54] = variable[0];
-    variable[54] = ((lexer___Lexer___nil_array_t)CALL(variable[54],COLOR_lexer___Lexer___nil_array))(variable[54]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[54]) /*AbstractArray::add*/;
+    variable[54] = CALL_lexer___Lexer___nil_array(variable[54])(variable[54]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[54]) /*AbstractArray::add*/;
     variable[55] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[56] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55], variable[56]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55], variable[56]) /*AbstractArray::add*/;
     variable[57] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55], variable[57]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55], variable[57]) /*AbstractArray::add*/;
     variable[58] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55], variable[58]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[55]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55], variable[58]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[55]) /*AbstractArray::add*/;
     variable[56] = variable[0];
-    variable[56] = ((lexer___Lexer___nil_array_t)CALL(variable[56],COLOR_lexer___Lexer___nil_array))(variable[56]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[56]) /*AbstractArray::add*/;
+    variable[56] = CALL_lexer___Lexer___nil_array(variable[56])(variable[56]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[56]) /*AbstractArray::add*/;
     variable[57] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[58] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(255)) /*AbstractArray::add*/;
     variable[59] = TAG_Int(-UNTAG_Int( TAG_Int(9)));
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58], variable[59]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57], variable[58]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[57]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58], variable[59]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57], variable[58]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[57]) /*AbstractArray::add*/;
     variable[58] = variable[0];
-    variable[58] = ((lexer___Lexer___nil_array_t)CALL(variable[58],COLOR_lexer___Lexer___nil_array))(variable[58]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[58]) /*AbstractArray::add*/;
+    variable[58] = CALL_lexer___Lexer___nil_array(variable[58])(variable[58]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[58]) /*AbstractArray::add*/;
     variable[59] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[60] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[60],COLOR_abstract_collection___SimpleCollection___add))(variable[60],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[60],COLOR_abstract_collection___SimpleCollection___add))(variable[60],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[60],COLOR_abstract_collection___SimpleCollection___add))(variable[60],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59], variable[60]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[59]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[60])(variable[60],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[60])(variable[60],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[60])(variable[60],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59], variable[60]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[59]) /*AbstractArray::add*/;
     variable[60] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[61] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[61],COLOR_abstract_collection___SimpleCollection___add))(variable[61],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[61],COLOR_abstract_collection___SimpleCollection___add))(variable[61],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[61])(variable[61],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[61])(variable[61],  TAG_Int(255)) /*AbstractArray::add*/;
     variable[62] = TAG_Int(-UNTAG_Int( TAG_Int(11)));
-    ((array___AbstractArray___add_t)CALL(variable[61],COLOR_abstract_collection___SimpleCollection___add))(variable[61], variable[62]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[60],COLOR_abstract_collection___SimpleCollection___add))(variable[60], variable[61]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[60]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[61])(variable[61], variable[62]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[60])(variable[60], variable[61]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[60]) /*AbstractArray::add*/;
     variable[61] = variable[0];
-    variable[61] = ((lexer___Lexer___nil_array_t)CALL(variable[61],COLOR_lexer___Lexer___nil_array))(variable[61]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[61]) /*AbstractArray::add*/;
+    variable[61] = CALL_lexer___Lexer___nil_array(variable[61])(variable[61]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[61]) /*AbstractArray::add*/;
     variable[62] = variable[0];
-    variable[62] = ((lexer___Lexer___nil_array_t)CALL(variable[62],COLOR_lexer___Lexer___nil_array))(variable[62]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[62]) /*AbstractArray::add*/;
+    variable[62] = CALL_lexer___Lexer___nil_array(variable[62])(variable[62]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[62]) /*AbstractArray::add*/;
     variable[63] = variable[0];
-    variable[63] = ((lexer___Lexer___nil_array_t)CALL(variable[63],COLOR_lexer___Lexer___nil_array))(variable[63]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[63]) /*AbstractArray::add*/;
+    variable[63] = CALL_lexer___Lexer___nil_array(variable[63])(variable[63]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[63]) /*AbstractArray::add*/;
     variable[64] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[65] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[64],COLOR_abstract_collection___SimpleCollection___add))(variable[64], variable[65]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[64]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[64])(variable[64], variable[65]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[64]) /*AbstractArray::add*/;
     variable[65] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[66] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65], variable[66]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[65]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65], variable[66]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[65]) /*AbstractArray::add*/;
     variable[66] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[67] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66], variable[67]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[66]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66], variable[67]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[66]) /*AbstractArray::add*/;
     variable[67] = variable[0];
-    variable[67] = ((lexer___Lexer___nil_array_t)CALL(variable[67],COLOR_lexer___Lexer___nil_array))(variable[67]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[67]) /*AbstractArray::add*/;
+    variable[67] = CALL_lexer___Lexer___nil_array(variable[67])(variable[67]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[67]) /*AbstractArray::add*/;
     variable[68] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[69] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[69],COLOR_abstract_collection___SimpleCollection___add))(variable[69],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[69],COLOR_abstract_collection___SimpleCollection___add))(variable[69],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[69],COLOR_abstract_collection___SimpleCollection___add))(variable[69],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68], variable[69]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[68]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[69])(variable[69],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[69])(variable[69],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[69])(variable[69],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68], variable[69]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[68]) /*AbstractArray::add*/;
     variable[69] = variable[0];
-    variable[69] = ((lexer___Lexer___nil_array_t)CALL(variable[69],COLOR_lexer___Lexer___nil_array))(variable[69]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[69]) /*AbstractArray::add*/;
+    variable[69] = CALL_lexer___Lexer___nil_array(variable[69])(variable[69]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[69]) /*AbstractArray::add*/;
     variable[70] = variable[0];
-    variable[70] = ((lexer___Lexer___nil_array_t)CALL(variable[70],COLOR_lexer___Lexer___nil_array))(variable[70]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[70]) /*AbstractArray::add*/;
+    variable[70] = CALL_lexer___Lexer___nil_array(variable[70])(variable[70]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[70]) /*AbstractArray::add*/;
     variable[71] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[72] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[73] = TAG_Int(-UNTAG_Int( TAG_Int(25)));
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72], variable[73]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[71],COLOR_abstract_collection___SimpleCollection___add))(variable[71], variable[72]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[71]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72], variable[73]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[71])(variable[71], variable[72]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[71]) /*AbstractArray::add*/;
     variable[72] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[73] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[74] = TAG_Int(-UNTAG_Int( TAG_Int(25)));
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73], variable[74]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72], variable[73]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[72]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73], variable[74]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72], variable[73]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[72]) /*AbstractArray::add*/;
     variable[73] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[74] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[75] = TAG_Int(-UNTAG_Int( TAG_Int(25)));
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74], variable[75]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73], variable[74]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[73]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74], variable[75]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73], variable[74]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[73]) /*AbstractArray::add*/;
     variable[74] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[75] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[76] = TAG_Int(-UNTAG_Int( TAG_Int(25)));
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75], variable[76]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74], variable[75]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[74]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75], variable[76]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74], variable[75]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[74]) /*AbstractArray::add*/;
     variable[75] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[76] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[76],COLOR_abstract_collection___SimpleCollection___add))(variable[76],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[76],COLOR_abstract_collection___SimpleCollection___add))(variable[76],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[76],COLOR_abstract_collection___SimpleCollection___add))(variable[76],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75], variable[76]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[76])(variable[76],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[76])(variable[76],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[76])(variable[76],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75], variable[76]) /*AbstractArray::add*/;
     variable[77] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(121)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75], variable[77]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(121)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75], variable[77]) /*AbstractArray::add*/;
     variable[78] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75], variable[78]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75], variable[78]) /*AbstractArray::add*/;
     variable[79] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(123)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75], variable[79]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[75]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(123)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75], variable[79]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[75]) /*AbstractArray::add*/;
     variable[76] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[77] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[78] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77], variable[78]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[76],COLOR_abstract_collection___SimpleCollection___add))(variable[76], variable[77]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[76]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77], variable[78]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[76])(variable[76], variable[77]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[76]) /*AbstractArray::add*/;
     variable[77] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[78] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[79] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78], variable[79]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77], variable[78]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[77]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78], variable[79]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77], variable[78]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[77]) /*AbstractArray::add*/;
     variable[78] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[79] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[80] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79], variable[80]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78], variable[79]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[78]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79], variable[80]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78], variable[79]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[78]) /*AbstractArray::add*/;
     variable[79] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[80] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[81] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80], variable[81]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79], variable[80]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[79]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80], variable[81]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79], variable[80]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[79]) /*AbstractArray::add*/;
     variable[80] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[81] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(110)) /*AbstractArray::add*/;
     variable[82] = TAG_Int(-UNTAG_Int( TAG_Int(32)));
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81], variable[82]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80], variable[81]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81], variable[82]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80], variable[81]) /*AbstractArray::add*/;
     variable[82] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82],  TAG_Int(124)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80], variable[82]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82],  TAG_Int(124)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80], variable[82]) /*AbstractArray::add*/;
     variable[83] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80], variable[83]) /*AbstractArray::add*/;
     variable[84] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(125)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(125)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80], variable[84]) /*AbstractArray::add*/;
     variable[85] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80], variable[85]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[80]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[80]) /*AbstractArray::add*/;
     variable[81] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[82] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[83] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82], variable[83]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81], variable[82]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81], variable[82]) /*AbstractArray::add*/;
     variable[83] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81], variable[83]) /*AbstractArray::add*/;
     variable[84] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(126)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(126)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81], variable[84]) /*AbstractArray::add*/;
     variable[85] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81], variable[85]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[81]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[81]) /*AbstractArray::add*/;
     variable[82] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[83] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[84] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83], variable[84]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82], variable[83]) /*AbstractArray::add*/;
     variable[84] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82], variable[84]) /*AbstractArray::add*/;
     variable[85] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82], variable[85]) /*AbstractArray::add*/;
     variable[86] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82], variable[86]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[82]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[82]) /*AbstractArray::add*/;
     variable[83] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[84] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[85] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84], variable[85]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83], variable[84]) /*AbstractArray::add*/;
     variable[85] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83], variable[85]) /*AbstractArray::add*/;
     variable[86] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83], variable[86]) /*AbstractArray::add*/;
     variable[87] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83], variable[87]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[83]) /*AbstractArray::add*/;
     variable[84] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[85] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[86] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85], variable[86]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84], variable[85]) /*AbstractArray::add*/;
     variable[86] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(129)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(129)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84], variable[86]) /*AbstractArray::add*/;
     variable[87] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84], variable[87]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[84]) /*AbstractArray::add*/;
     variable[85] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[86] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[87] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86], variable[87]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85], variable[86]) /*AbstractArray::add*/;
     variable[87] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(130)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(130)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85], variable[87]) /*AbstractArray::add*/;
     variable[88] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85], variable[88]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[85]) /*AbstractArray::add*/;
     variable[86] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[87] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(109)) /*AbstractArray::add*/;
     variable[88] = TAG_Int(-UNTAG_Int( TAG_Int(39)));
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87], variable[88]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86], variable[87]) /*AbstractArray::add*/;
     variable[88] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86], variable[88]) /*AbstractArray::add*/;
     variable[89] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86], variable[89]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86], variable[89]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[86]) /*AbstractArray::add*/;
     variable[87] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[88] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[89] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88], variable[89]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87], variable[88]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88], variable[89]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[87]) /*AbstractArray::add*/;
     variable[88] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[89] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(114)) /*AbstractArray::add*/;
     variable[90] = TAG_Int(-UNTAG_Int( TAG_Int(79)));
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89], variable[90]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88], variable[89]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89], variable[90]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88], variable[89]) /*AbstractArray::add*/;
     variable[90] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88], variable[90]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88], variable[90]) /*AbstractArray::add*/;
     variable[91] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88], variable[91]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[88]) /*AbstractArray::add*/;
     variable[89] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[90] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(99)) /*AbstractArray::add*/;
     variable[91] = TAG_Int(-UNTAG_Int( TAG_Int(78)));
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90], variable[91]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89], variable[90]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89], variable[90]) /*AbstractArray::add*/;
     variable[91] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(133)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(133)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89], variable[91]) /*AbstractArray::add*/;
     variable[92] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89], variable[92]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[89]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[89]) /*AbstractArray::add*/;
     variable[90] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[91] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[92] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91], variable[92]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90], variable[91]) /*AbstractArray::add*/;
     variable[92] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90], variable[92]) /*AbstractArray::add*/;
     variable[93] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90], variable[93]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[90]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[90]) /*AbstractArray::add*/;
     variable[91] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[92] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[93] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92], variable[93]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91], variable[92]) /*AbstractArray::add*/;
     variable[93] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91], variable[93]) /*AbstractArray::add*/;
     variable[94] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91], variable[94]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[91]) /*AbstractArray::add*/;
     variable[92] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[93] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[94] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93], variable[94]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92], variable[93]) /*AbstractArray::add*/;
     variable[94] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92], variable[94]) /*AbstractArray::add*/;
     variable[95] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92], variable[95]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92], variable[95]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[92]) /*AbstractArray::add*/;
     variable[93] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[94] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[95] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94], variable[95]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93], variable[94]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94], variable[95]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[93]) /*AbstractArray::add*/;
     variable[94] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[95] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[96] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[96]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94], variable[95]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[96]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94], variable[95]) /*AbstractArray::add*/;
     variable[96] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94], variable[96]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94], variable[96]) /*AbstractArray::add*/;
     variable[97] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(137)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(137)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94], variable[97]) /*AbstractArray::add*/;
     variable[98] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94], variable[98]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[94]) /*AbstractArray::add*/;
     variable[95] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Array[Int]]*/
     variable[96] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[97] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96], variable[97]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[96]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[96]) /*AbstractArray::add*/;
     variable[97] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[97]) /*AbstractArray::add*/;
     variable[98] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(138)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(138)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[98]) /*AbstractArray::add*/;
     variable[99] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[99]) /*AbstractArray::add*/;
     variable[100] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(139)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(139)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[100]) /*AbstractArray::add*/;
     variable[101] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[101]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[95]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[95]) /*AbstractArray::add*/;
     variable[96] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[97] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[98] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97], variable[98]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96], variable[97]) /*AbstractArray::add*/;
     variable[98] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96], variable[98]) /*AbstractArray::add*/;
     variable[99] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96], variable[99]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[96]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[96]) /*AbstractArray::add*/;
     variable[97] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[98] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[99] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98], variable[99]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97], variable[98]) /*AbstractArray::add*/;
     variable[99] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(141)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(141)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97], variable[99]) /*AbstractArray::add*/;
     variable[100] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97], variable[100]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[97]) /*AbstractArray::add*/;
     variable[98] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[99] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[100] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99], variable[100]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98], variable[99]) /*AbstractArray::add*/;
     variable[100] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98], variable[100]) /*AbstractArray::add*/;
     variable[101] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(142)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(142)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98], variable[101]) /*AbstractArray::add*/;
     variable[102] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98], variable[102]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[98]) /*AbstractArray::add*/;
     variable[99] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[100] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[101] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100], variable[101]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99], variable[100]) /*AbstractArray::add*/;
     variable[101] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99], variable[101]) /*AbstractArray::add*/;
     variable[102] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99], variable[102]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[99]) /*AbstractArray::add*/;
     variable[100] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[101] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[102] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101], variable[102]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100], variable[101]) /*AbstractArray::add*/;
     variable[102] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(144)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(144)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100], variable[102]) /*AbstractArray::add*/;
     variable[103] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100], variable[103]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[100]) /*AbstractArray::add*/;
     variable[101] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[102] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[103] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102], variable[103]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101], variable[102]) /*AbstractArray::add*/;
     variable[103] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101], variable[103]) /*AbstractArray::add*/;
     variable[104] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104],  TAG_Int(145)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104],  TAG_Int(145)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101], variable[104]) /*AbstractArray::add*/;
     variable[105] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101], variable[105]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[101]) /*AbstractArray::add*/;
     variable[102] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[103] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[104] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103], variable[104]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102], variable[103]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[102]) /*AbstractArray::add*/;
     variable[103] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[104] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104],  TAG_Int(98)) /*AbstractArray::add*/;
     variable[105] = TAG_Int(-UNTAG_Int( TAG_Int(98)));
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104], variable[105]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103], variable[104]) /*AbstractArray::add*/;
     variable[105] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(146)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(146)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103], variable[105]) /*AbstractArray::add*/;
     variable[106] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103], variable[106]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[103]) /*AbstractArray::add*/;
     variable[104] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[105] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(104)) /*AbstractArray::add*/;
     variable[106] = TAG_Int(-UNTAG_Int( TAG_Int(92)));
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[106]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104], variable[105]) /*AbstractArray::add*/;
     variable[106] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(147)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(147)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104], variable[106]) /*AbstractArray::add*/;
     variable[107] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104], variable[107]) /*AbstractArray::add*/;
     variable[108] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(148)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(148)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104], variable[108]) /*AbstractArray::add*/;
     variable[109] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104], variable[109]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[104]) /*AbstractArray::add*/;
     variable[105] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[Array[Int]]*/
     variable[106] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[107] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106], variable[107]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[106]) /*AbstractArray::add*/;
     variable[107] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(149)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(149)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[107]) /*AbstractArray::add*/;
     variable[108] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[108]) /*AbstractArray::add*/;
     variable[109] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[109]) /*AbstractArray::add*/;
     variable[110] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[110]) /*AbstractArray::add*/;
     variable[111] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(151)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(151)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[111]) /*AbstractArray::add*/;
     variable[112] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[112]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[105]) /*AbstractArray::add*/;
     variable[106] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[107] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[108] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107], variable[108]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106], variable[107]) /*AbstractArray::add*/;
     variable[108] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106], variable[108]) /*AbstractArray::add*/;
     variable[109] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106], variable[109]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[106]) /*AbstractArray::add*/;
     variable[107] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[108] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[109] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108], variable[109]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107], variable[108]) /*AbstractArray::add*/;
     variable[109] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107], variable[109]) /*AbstractArray::add*/;
     variable[110] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107], variable[110]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[107]) /*AbstractArray::add*/;
     variable[108] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[109] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(111)) /*AbstractArray::add*/;
     variable[110] = TAG_Int(-UNTAG_Int( TAG_Int(91)));
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109], variable[110]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108], variable[109]) /*AbstractArray::add*/;
     variable[110] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(154)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(154)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108], variable[110]) /*AbstractArray::add*/;
     variable[111] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108], variable[111]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[108]) /*AbstractArray::add*/;
     variable[109] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[110] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[111] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110], variable[111]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109], variable[110]) /*AbstractArray::add*/;
     variable[111] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(155)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(155)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109], variable[111]) /*AbstractArray::add*/;
     variable[112] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109], variable[112]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[109]) /*AbstractArray::add*/;
     variable[110] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[111] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[112] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111], variable[112]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110], variable[111]) /*AbstractArray::add*/;
     variable[112] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110], variable[112]) /*AbstractArray::add*/;
     variable[113] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110], variable[113]) /*AbstractArray::add*/;
     variable[114] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110], variable[114]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[110]) /*AbstractArray::add*/;
     variable[111] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[112] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112],  TAG_Int(111)) /*AbstractArray::add*/;
     variable[113] = TAG_Int(-UNTAG_Int( TAG_Int(91)));
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112], variable[113]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111], variable[112]) /*AbstractArray::add*/;
     variable[113] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(157)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(157)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111], variable[113]) /*AbstractArray::add*/;
     variable[114] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111], variable[114]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[111]) /*AbstractArray::add*/;
     variable[112] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[113] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113],  TAG_Int(104)) /*AbstractArray::add*/;
     variable[114] = TAG_Int(-UNTAG_Int( TAG_Int(92)));
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113], variable[114]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112], variable[113]) /*AbstractArray::add*/;
     variable[114] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112], variable[114]) /*AbstractArray::add*/;
     variable[115] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112], variable[115]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[112]) /*AbstractArray::add*/;
     variable[113] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[114] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[115] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114], variable[115]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113], variable[114]) /*AbstractArray::add*/;
     variable[115] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113], variable[115]) /*AbstractArray::add*/;
     variable[116] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113], variable[116]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[113]) /*AbstractArray::add*/;
     variable[114] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[115] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115],  TAG_Int(104)) /*AbstractArray::add*/;
     variable[116] = TAG_Int(-UNTAG_Int( TAG_Int(92)));
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115], variable[116]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114], variable[115]) /*AbstractArray::add*/;
     variable[116] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(160)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(160)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114], variable[116]) /*AbstractArray::add*/;
     variable[117] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114], variable[117]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[114]) /*AbstractArray::add*/;
     variable[115] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[116] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[117] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116], variable[117]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115], variable[116]) /*AbstractArray::add*/;
     variable[117] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(161)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(161)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115], variable[117]) /*AbstractArray::add*/;
     variable[118] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115], variable[118]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[115]) /*AbstractArray::add*/;
     variable[116] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[117] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117],  TAG_Int(104)) /*AbstractArray::add*/;
     variable[118] = TAG_Int(-UNTAG_Int( TAG_Int(92)));
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117], variable[118]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116], variable[117]) /*AbstractArray::add*/;
     variable[118] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116], variable[118]) /*AbstractArray::add*/;
     variable[119] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116], variable[119]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116], variable[119]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[116]) /*AbstractArray::add*/;
     variable[117] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[118] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118],  TAG_Int(255)) /*AbstractArray::add*/;
     variable[119] = TAG_Int(-UNTAG_Int( TAG_Int(47)));
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118], variable[119]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117], variable[118]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118], variable[119]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[117]) /*AbstractArray::add*/;
     variable[118] = variable[0];
-    variable[118] = ((lexer___Lexer___nil_array_t)CALL(variable[118],COLOR_lexer___Lexer___nil_array))(variable[118]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[118]) /*AbstractArray::add*/;
+    variable[118] = CALL_lexer___Lexer___nil_array(variable[118])(variable[118]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[118]) /*AbstractArray::add*/;
     variable[119] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[120] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[120],COLOR_abstract_collection___SimpleCollection___add))(variable[120],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[120],COLOR_abstract_collection___SimpleCollection___add))(variable[120],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[120],COLOR_abstract_collection___SimpleCollection___add))(variable[120],  TAG_Int(163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119], variable[120]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[120])(variable[120],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[120])(variable[120],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[120])(variable[120],  TAG_Int(163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119], variable[120]) /*AbstractArray::add*/;
     variable[121] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[121],COLOR_abstract_collection___SimpleCollection___add))(variable[121],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[121],COLOR_abstract_collection___SimpleCollection___add))(variable[121],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[121],COLOR_abstract_collection___SimpleCollection___add))(variable[121],  TAG_Int(163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119], variable[121]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[121])(variable[121],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[121])(variable[121],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[121])(variable[121],  TAG_Int(163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119], variable[121]) /*AbstractArray::add*/;
     variable[122] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122],  TAG_Int(163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119], variable[122]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[119]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122],  TAG_Int(163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119], variable[122]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[119]) /*AbstractArray::add*/;
     variable[120] = variable[0];
-    variable[120] = ((lexer___Lexer___nil_array_t)CALL(variable[120],COLOR_lexer___Lexer___nil_array))(variable[120]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[120]) /*AbstractArray::add*/;
+    variable[120] = CALL_lexer___Lexer___nil_array(variable[120])(variable[120]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[120]) /*AbstractArray::add*/;
     variable[121] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[122] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122],  TAG_Int(255)) /*AbstractArray::add*/;
     variable[123] = TAG_Int(-UNTAG_Int( TAG_Int(8)));
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122], variable[123]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[121],COLOR_abstract_collection___SimpleCollection___add))(variable[121], variable[122]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[121]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122], variable[123]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[121])(variable[121], variable[122]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[121]) /*AbstractArray::add*/;
     variable[122] = variable[0];
-    variable[122] = ((lexer___Lexer___nil_array_t)CALL(variable[122],COLOR_lexer___Lexer___nil_array))(variable[122]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[122]) /*AbstractArray::add*/;
+    variable[122] = CALL_lexer___Lexer___nil_array(variable[122])(variable[122]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[122]) /*AbstractArray::add*/;
     variable[123] = variable[0];
-    variable[123] = ((lexer___Lexer___nil_array_t)CALL(variable[123],COLOR_lexer___Lexer___nil_array))(variable[123]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[123]) /*AbstractArray::add*/;
+    variable[123] = CALL_lexer___Lexer___nil_array(variable[123])(variable[123]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[123]) /*AbstractArray::add*/;
     variable[124] = variable[0];
-    variable[124] = ((lexer___Lexer___nil_array_t)CALL(variable[124],COLOR_lexer___Lexer___nil_array))(variable[124]) /*Lexer::nil_array*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[124]) /*AbstractArray::add*/;
+    variable[124] = CALL_lexer___Lexer___nil_array(variable[124])(variable[124]) /*Lexer::nil_array*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[124]) /*AbstractArray::add*/;
     variable[125] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[126] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[127] = TAG_Int(-UNTAG_Int( TAG_Int(72)));
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126], variable[127]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[125],COLOR_abstract_collection___SimpleCollection___add))(variable[125], variable[126]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[125]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126], variable[127]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[125])(variable[125], variable[126]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[125]) /*AbstractArray::add*/;
     variable[126] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[127] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[128] = TAG_Int(-UNTAG_Int( TAG_Int(72)));
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127], variable[128]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126], variable[127]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[126]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127], variable[128]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126], variable[127]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[126]) /*AbstractArray::add*/;
     variable[127] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[128] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[129] = TAG_Int(-UNTAG_Int( TAG_Int(72)));
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128], variable[129]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127], variable[128]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[127]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128], variable[129]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127], variable[128]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[127]) /*AbstractArray::add*/;
     variable[128] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[129] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[130] = TAG_Int(-UNTAG_Int( TAG_Int(72)));
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129], variable[130]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128], variable[129]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[128]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129], variable[130]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128], variable[129]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[128]) /*AbstractArray::add*/;
     variable[129] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[130] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[131] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130], variable[131]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129], variable[130]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130], variable[131]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129], variable[130]) /*AbstractArray::add*/;
     variable[131] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129], variable[131]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129], variable[131]) /*AbstractArray::add*/;
     variable[132] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129], variable[132]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[129]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[129]) /*AbstractArray::add*/;
     variable[130] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[131] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[132] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131], variable[132]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130], variable[131]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130], variable[131]) /*AbstractArray::add*/;
     variable[132] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130], variable[132]) /*AbstractArray::add*/;
     variable[133] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130], variable[133]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[130]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130], variable[133]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[130]) /*AbstractArray::add*/;
     variable[131] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[132] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[133] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132], variable[133]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131], variable[132]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[131]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132], variable[133]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[131]) /*AbstractArray::add*/;
     variable[132] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[133] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[134] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133], variable[134]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132], variable[133]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133], variable[134]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132], variable[133]) /*AbstractArray::add*/;
     variable[134] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132], variable[134]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132], variable[134]) /*AbstractArray::add*/;
     variable[135] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132], variable[135]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[132]) /*AbstractArray::add*/;
     variable[133] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[134] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[135] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134], variable[135]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133], variable[134]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133], variable[134]) /*AbstractArray::add*/;
     variable[135] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133], variable[135]) /*AbstractArray::add*/;
     variable[136] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133], variable[136]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[133]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[133]) /*AbstractArray::add*/;
     variable[134] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[135] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[136] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135], variable[136]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134], variable[135]) /*AbstractArray::add*/;
     variable[136] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(168)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(168)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134], variable[136]) /*AbstractArray::add*/;
     variable[137] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134], variable[137]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[134]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[134]) /*AbstractArray::add*/;
     variable[135] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[136] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(114)) /*AbstractArray::add*/;
     variable[137] = TAG_Int(-UNTAG_Int( TAG_Int(79)));
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136], variable[137]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135], variable[136]) /*AbstractArray::add*/;
     variable[137] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(169)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(169)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135], variable[137]) /*AbstractArray::add*/;
     variable[138] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135], variable[138]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[135]) /*AbstractArray::add*/;
     variable[136] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[137] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[138] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137], variable[138]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136], variable[137]) /*AbstractArray::add*/;
     variable[138] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136], variable[138]) /*AbstractArray::add*/;
     variable[139] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136], variable[139]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[136]) /*AbstractArray::add*/;
     variable[137] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[138] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[139] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138], variable[139]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137], variable[138]) /*AbstractArray::add*/;
     variable[139] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(171)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(171)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137], variable[139]) /*AbstractArray::add*/;
     variable[140] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137], variable[140]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137], variable[140]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[137]) /*AbstractArray::add*/;
     variable[138] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[139] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[140] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139], variable[140]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138], variable[139]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139], variable[140]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[138]) /*AbstractArray::add*/;
     variable[139] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[140] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[141] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140], variable[141]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139], variable[140]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140], variable[141]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139], variable[140]) /*AbstractArray::add*/;
     variable[141] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[141],COLOR_abstract_collection___SimpleCollection___add))(variable[141],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[141],COLOR_abstract_collection___SimpleCollection___add))(variable[141],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[141],COLOR_abstract_collection___SimpleCollection___add))(variable[141],  TAG_Int(172)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139], variable[141]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[141])(variable[141],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[141])(variable[141],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[141])(variable[141],  TAG_Int(172)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139], variable[141]) /*AbstractArray::add*/;
     variable[142] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139], variable[142]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139], variable[142]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[139]) /*AbstractArray::add*/;
     variable[140] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[141] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[141],COLOR_abstract_collection___SimpleCollection___add))(variable[141],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[141],COLOR_abstract_collection___SimpleCollection___add))(variable[141],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[141])(variable[141],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[141])(variable[141],  TAG_Int(114)) /*AbstractArray::add*/;
     variable[142] = TAG_Int(-UNTAG_Int( TAG_Int(79)));
-    ((array___AbstractArray___add_t)CALL(variable[141],COLOR_abstract_collection___SimpleCollection___add))(variable[141], variable[142]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140], variable[141]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[141])(variable[141], variable[142]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140], variable[141]) /*AbstractArray::add*/;
     variable[142] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140], variable[142]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140], variable[142]) /*AbstractArray::add*/;
     variable[143] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140], variable[143]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[140]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140], variable[143]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[140]) /*AbstractArray::add*/;
     variable[141] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[142] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[143] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142], variable[143]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[141],COLOR_abstract_collection___SimpleCollection___add))(variable[141], variable[142]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[141]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142], variable[143]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[141])(variable[141], variable[142]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[141]) /*AbstractArray::add*/;
     variable[142] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[143] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143],  TAG_Int(110)) /*AbstractArray::add*/;
     variable[144] = TAG_Int(-UNTAG_Int( TAG_Int(32)));
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143], variable[144]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142], variable[143]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143], variable[144]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142], variable[143]) /*AbstractArray::add*/;
     variable[144] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144],  TAG_Int(174)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142], variable[144]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144],  TAG_Int(174)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142], variable[144]) /*AbstractArray::add*/;
     variable[145] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[142],COLOR_abstract_collection___SimpleCollection___add))(variable[142], variable[145]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[142]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[142])(variable[142], variable[145]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[142]) /*AbstractArray::add*/;
     variable[143] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[144] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[145] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144], variable[145]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143], variable[144]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144], variable[145]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143], variable[144]) /*AbstractArray::add*/;
     variable[145] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(175)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143], variable[145]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(175)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143], variable[145]) /*AbstractArray::add*/;
     variable[146] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[143],COLOR_abstract_collection___SimpleCollection___add))(variable[143], variable[146]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[143]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[143])(variable[143], variable[146]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[143]) /*AbstractArray::add*/;
     variable[144] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[145] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[146] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145], variable[146]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144], variable[145]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145], variable[146]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144], variable[145]) /*AbstractArray::add*/;
     variable[146] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(176)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144], variable[146]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(176)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144], variable[146]) /*AbstractArray::add*/;
     variable[147] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[147],COLOR_abstract_collection___SimpleCollection___add))(variable[147],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[147],COLOR_abstract_collection___SimpleCollection___add))(variable[147],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[147],COLOR_abstract_collection___SimpleCollection___add))(variable[147],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144], variable[147]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[147])(variable[147],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[147])(variable[147],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[147])(variable[147],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144], variable[147]) /*AbstractArray::add*/;
     variable[148] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144], variable[148]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144], variable[148]) /*AbstractArray::add*/;
     variable[149] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[144],COLOR_abstract_collection___SimpleCollection___add))(variable[144], variable[149]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[144]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[144])(variable[144], variable[149]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[144]) /*AbstractArray::add*/;
     variable[145] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[146] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[147] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146], variable[147]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[145],COLOR_abstract_collection___SimpleCollection___add))(variable[145], variable[146]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[145]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146], variable[147]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[145])(variable[145], variable[146]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[145]) /*AbstractArray::add*/;
     variable[146] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[147] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[147],COLOR_abstract_collection___SimpleCollection___add))(variable[147],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[147],COLOR_abstract_collection___SimpleCollection___add))(variable[147],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[147])(variable[147],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[147])(variable[147],  TAG_Int(103)) /*AbstractArray::add*/;
     variable[148] = TAG_Int(-UNTAG_Int( TAG_Int(43)));
-    ((array___AbstractArray___add_t)CALL(variable[147],COLOR_abstract_collection___SimpleCollection___add))(variable[147], variable[148]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146], variable[147]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[147])(variable[147], variable[148]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146], variable[147]) /*AbstractArray::add*/;
     variable[148] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(178)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146], variable[148]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(178)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146], variable[148]) /*AbstractArray::add*/;
     variable[149] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[146],COLOR_abstract_collection___SimpleCollection___add))(variable[146], variable[149]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[146]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[146])(variable[146], variable[149]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[146]) /*AbstractArray::add*/;
     variable[147] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[148] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[149] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148], variable[149]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[147],COLOR_abstract_collection___SimpleCollection___add))(variable[147], variable[148]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[147]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148], variable[149]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[147])(variable[147], variable[148]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[147]) /*AbstractArray::add*/;
     variable[148] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[149] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[150] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149], variable[150]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[148],COLOR_abstract_collection___SimpleCollection___add))(variable[148], variable[149]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[148]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149], variable[150]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[148])(variable[148], variable[149]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[148]) /*AbstractArray::add*/;
     variable[149] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[150] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[150],COLOR_abstract_collection___SimpleCollection___add))(variable[150],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[150],COLOR_abstract_collection___SimpleCollection___add))(variable[150],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[150])(variable[150],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[150])(variable[150],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[151] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[150],COLOR_abstract_collection___SimpleCollection___add))(variable[150], variable[151]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149], variable[150]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[150])(variable[150], variable[151]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149], variable[150]) /*AbstractArray::add*/;
     variable[151] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151],  TAG_Int(179)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149], variable[151]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151],  TAG_Int(179)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149], variable[151]) /*AbstractArray::add*/;
     variable[152] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[149],COLOR_abstract_collection___SimpleCollection___add))(variable[149], variable[152]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[149]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[149])(variable[149], variable[152]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[149]) /*AbstractArray::add*/;
     variable[150] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[151] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[152] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151], variable[152]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[150],COLOR_abstract_collection___SimpleCollection___add))(variable[150], variable[151]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151], variable[152]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[150])(variable[150], variable[151]) /*AbstractArray::add*/;
     variable[152] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(180)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[150],COLOR_abstract_collection___SimpleCollection___add))(variable[150], variable[152]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(180)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[150])(variable[150], variable[152]) /*AbstractArray::add*/;
     variable[153] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[150],COLOR_abstract_collection___SimpleCollection___add))(variable[150], variable[153]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[150]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[150])(variable[150], variable[153]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[150]) /*AbstractArray::add*/;
     variable[151] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[152] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[153] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152], variable[153]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151], variable[152]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152], variable[153]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151], variable[152]) /*AbstractArray::add*/;
     variable[153] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151], variable[153]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151], variable[153]) /*AbstractArray::add*/;
     variable[154] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151], variable[154]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151], variable[154]) /*AbstractArray::add*/;
     variable[155] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[151],COLOR_abstract_collection___SimpleCollection___add))(variable[151], variable[155]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[151]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[151])(variable[151], variable[155]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[151]) /*AbstractArray::add*/;
     variable[152] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[153] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[154] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153], variable[154]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152], variable[153]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153], variable[154]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152], variable[153]) /*AbstractArray::add*/;
     variable[154] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152], variable[154]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152], variable[154]) /*AbstractArray::add*/;
     variable[155] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(182)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152], variable[155]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(182)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152], variable[155]) /*AbstractArray::add*/;
     variable[156] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[152],COLOR_abstract_collection___SimpleCollection___add))(variable[152], variable[156]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[152]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[152])(variable[152], variable[156]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[152]) /*AbstractArray::add*/;
     variable[153] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[154] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[155] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154], variable[155]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153], variable[154]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154], variable[155]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153], variable[154]) /*AbstractArray::add*/;
     variable[155] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153], variable[155]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153], variable[155]) /*AbstractArray::add*/;
     variable[156] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[153],COLOR_abstract_collection___SimpleCollection___add))(variable[153], variable[156]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[153]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[153])(variable[153], variable[156]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[153]) /*AbstractArray::add*/;
     variable[154] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[155] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155],  TAG_Int(99)) /*AbstractArray::add*/;
     variable[156] = TAG_Int(-UNTAG_Int( TAG_Int(78)));
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155], variable[156]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154], variable[155]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155], variable[156]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154], variable[155]) /*AbstractArray::add*/;
     variable[156] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(184)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154], variable[156]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(184)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154], variable[156]) /*AbstractArray::add*/;
     variable[157] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[154],COLOR_abstract_collection___SimpleCollection___add))(variable[154], variable[157]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[154]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[154])(variable[154], variable[157]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[154]) /*AbstractArray::add*/;
     variable[155] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[156] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[157] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156], variable[157]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155], variable[156]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156], variable[157]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155], variable[156]) /*AbstractArray::add*/;
     variable[157] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(185)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155], variable[157]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(185)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155], variable[157]) /*AbstractArray::add*/;
     variable[158] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[155],COLOR_abstract_collection___SimpleCollection___add))(variable[155], variable[158]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[155]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[155])(variable[155], variable[158]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[155]) /*AbstractArray::add*/;
     variable[156] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[157] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157],  TAG_Int(116)) /*AbstractArray::add*/;
     variable[158] = TAG_Int(-UNTAG_Int( TAG_Int(107)));
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157], variable[158]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156], variable[157]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157], variable[158]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156], variable[157]) /*AbstractArray::add*/;
     variable[158] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(186)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156], variable[158]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(186)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156], variable[158]) /*AbstractArray::add*/;
     variable[159] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[156],COLOR_abstract_collection___SimpleCollection___add))(variable[156], variable[159]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[156]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[156])(variable[156], variable[159]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[156]) /*AbstractArray::add*/;
     variable[157] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[158] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158],  TAG_Int(101)) /*AbstractArray::add*/;
     variable[159] = TAG_Int(-UNTAG_Int( TAG_Int(36)));
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158], variable[159]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157], variable[158]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158], variable[159]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157], variable[158]) /*AbstractArray::add*/;
     variable[159] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(187)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157], variable[159]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(187)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157], variable[159]) /*AbstractArray::add*/;
     variable[160] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[157],COLOR_abstract_collection___SimpleCollection___add))(variable[157], variable[160]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[157]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[157])(variable[157], variable[160]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[157]) /*AbstractArray::add*/;
     variable[158] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[159] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159],  TAG_Int(98)) /*AbstractArray::add*/;
     variable[160] = TAG_Int(-UNTAG_Int( TAG_Int(98)));
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159], variable[160]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158], variable[159]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159], variable[160]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158], variable[159]) /*AbstractArray::add*/;
     variable[160] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(188)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158], variable[160]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(188)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158], variable[160]) /*AbstractArray::add*/;
     variable[161] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[158],COLOR_abstract_collection___SimpleCollection___add))(variable[158], variable[161]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[158]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[158])(variable[158], variable[161]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[158]) /*AbstractArray::add*/;
     variable[159] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[160] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[161] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160], variable[161]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159], variable[160]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160], variable[161]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159], variable[160]) /*AbstractArray::add*/;
     variable[161] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(189)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159], variable[161]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(189)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159], variable[161]) /*AbstractArray::add*/;
     variable[162] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[159],COLOR_abstract_collection___SimpleCollection___add))(variable[159], variable[162]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[159]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[159])(variable[159], variable[162]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[159]) /*AbstractArray::add*/;
     variable[160] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[161] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161],  TAG_Int(109)) /*AbstractArray::add*/;
     variable[162] = TAG_Int(-UNTAG_Int( TAG_Int(39)));
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161], variable[162]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160], variable[161]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161], variable[162]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160], variable[161]) /*AbstractArray::add*/;
     variable[162] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(190)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160], variable[162]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(190)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160], variable[162]) /*AbstractArray::add*/;
     variable[163] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[160],COLOR_abstract_collection___SimpleCollection___add))(variable[160], variable[163]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[160]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[160])(variable[160], variable[163]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[160]) /*AbstractArray::add*/;
     variable[161] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[162] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[163] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162], variable[163]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161], variable[162]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162], variable[163]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161], variable[162]) /*AbstractArray::add*/;
     variable[163] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(191)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161], variable[163]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(191)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161], variable[163]) /*AbstractArray::add*/;
     variable[164] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[161],COLOR_abstract_collection___SimpleCollection___add))(variable[161], variable[164]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[161]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[161])(variable[161], variable[164]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[161]) /*AbstractArray::add*/;
     variable[162] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[163] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[164] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163], variable[164]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162], variable[163]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163], variable[164]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162], variable[163]) /*AbstractArray::add*/;
     variable[164] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(192)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162], variable[164]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(192)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162], variable[164]) /*AbstractArray::add*/;
     variable[165] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[162],COLOR_abstract_collection___SimpleCollection___add))(variable[162], variable[165]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[162]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[162])(variable[162], variable[165]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[162]) /*AbstractArray::add*/;
     variable[163] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[164] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164],  TAG_Int(117)) /*AbstractArray::add*/;
     variable[165] = TAG_Int(-UNTAG_Int( TAG_Int(149)));
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164], variable[165]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163], variable[164]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164], variable[165]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163], variable[164]) /*AbstractArray::add*/;
     variable[165] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(193)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163], variable[165]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(193)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163], variable[165]) /*AbstractArray::add*/;
     variable[166] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[163],COLOR_abstract_collection___SimpleCollection___add))(variable[163], variable[166]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[163]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[163])(variable[163], variable[166]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[163]) /*AbstractArray::add*/;
     variable[164] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[165] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[166] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165], variable[166]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[164],COLOR_abstract_collection___SimpleCollection___add))(variable[164], variable[165]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[164]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165], variable[166]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[164])(variable[164], variable[165]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[164]) /*AbstractArray::add*/;
     variable[165] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[166] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[167] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166], variable[167]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165], variable[166]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166], variable[167]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165], variable[166]) /*AbstractArray::add*/;
     variable[167] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167],  TAG_Int(194)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165], variable[167]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167],  TAG_Int(194)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165], variable[167]) /*AbstractArray::add*/;
     variable[168] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[165],COLOR_abstract_collection___SimpleCollection___add))(variable[165], variable[168]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[165]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[165])(variable[165], variable[168]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[165]) /*AbstractArray::add*/;
     variable[166] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[167] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167],  TAG_Int(103)) /*AbstractArray::add*/;
     variable[168] = TAG_Int(-UNTAG_Int( TAG_Int(43)));
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167], variable[168]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166], variable[167]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167], variable[168]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166], variable[167]) /*AbstractArray::add*/;
     variable[168] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(195)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166], variable[168]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(195)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166], variable[168]) /*AbstractArray::add*/;
     variable[169] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[166],COLOR_abstract_collection___SimpleCollection___add))(variable[166], variable[169]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[166]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[166])(variable[166], variable[169]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[166]) /*AbstractArray::add*/;
     variable[167] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[168] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[169] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168], variable[169]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167], variable[168]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168], variable[169]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167], variable[168]) /*AbstractArray::add*/;
     variable[169] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(196)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167], variable[169]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(196)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167], variable[169]) /*AbstractArray::add*/;
     variable[170] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[167],COLOR_abstract_collection___SimpleCollection___add))(variable[167], variable[170]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[167]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[167])(variable[167], variable[170]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[167]) /*AbstractArray::add*/;
     variable[168] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[169] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169],  TAG_Int(255)) /*AbstractArray::add*/;
     variable[170] = TAG_Int(-UNTAG_Int( TAG_Int(47)));
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169], variable[170]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[168],COLOR_abstract_collection___SimpleCollection___add))(variable[168], variable[169]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[168]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169], variable[170]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[168])(variable[168], variable[169]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[168]) /*AbstractArray::add*/;
     variable[169] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[170] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[171] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170], variable[171]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169], variable[170]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170], variable[171]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169], variable[170]) /*AbstractArray::add*/;
     variable[171] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171],  TAG_Int(197)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169], variable[171]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171],  TAG_Int(197)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169], variable[171]) /*AbstractArray::add*/;
     variable[172] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[169],COLOR_abstract_collection___SimpleCollection___add))(variable[169], variable[172]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[169]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[169])(variable[169], variable[172]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[169]) /*AbstractArray::add*/;
     variable[170] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[171] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[172] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171], variable[172]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170], variable[171]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171], variable[172]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170], variable[171]) /*AbstractArray::add*/;
     variable[172] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(198)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170], variable[172]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(198)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170], variable[172]) /*AbstractArray::add*/;
     variable[173] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[170],COLOR_abstract_collection___SimpleCollection___add))(variable[170], variable[173]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[170]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[170])(variable[170], variable[173]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[170]) /*AbstractArray::add*/;
     variable[171] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[172] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[173] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172], variable[173]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171], variable[172]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172], variable[173]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171], variable[172]) /*AbstractArray::add*/;
     variable[173] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(199)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171], variable[173]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(199)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171], variable[173]) /*AbstractArray::add*/;
     variable[174] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[171],COLOR_abstract_collection___SimpleCollection___add))(variable[171], variable[174]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[171]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[171])(variable[171], variable[174]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[171]) /*AbstractArray::add*/;
     variable[172] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[173] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[174] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173], variable[174]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[172],COLOR_abstract_collection___SimpleCollection___add))(variable[172], variable[173]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[172]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173], variable[174]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[172])(variable[172], variable[173]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[172]) /*AbstractArray::add*/;
     variable[173] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[174] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174],  TAG_Int(106)) /*AbstractArray::add*/;
     variable[175] = TAG_Int(-UNTAG_Int( TAG_Int(148)));
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174], variable[175]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173], variable[174]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174], variable[175]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173], variable[174]) /*AbstractArray::add*/;
     variable[175] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175],  TAG_Int(200)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173], variable[175]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175],  TAG_Int(200)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173], variable[175]) /*AbstractArray::add*/;
     variable[176] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[173],COLOR_abstract_collection___SimpleCollection___add))(variable[173], variable[176]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[173]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[173])(variable[173], variable[176]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[173]) /*AbstractArray::add*/;
     variable[174] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[175] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175],  TAG_Int(114)) /*AbstractArray::add*/;
     variable[176] = TAG_Int(-UNTAG_Int( TAG_Int(79)));
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175], variable[176]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174], variable[175]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175], variable[176]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174], variable[175]) /*AbstractArray::add*/;
     variable[176] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(201)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174], variable[176]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(201)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174], variable[176]) /*AbstractArray::add*/;
     variable[177] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[174],COLOR_abstract_collection___SimpleCollection___add))(variable[174], variable[177]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[174]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[174])(variable[174], variable[177]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[174]) /*AbstractArray::add*/;
     variable[175] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[176] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176],  TAG_Int(104)) /*AbstractArray::add*/;
     variable[177] = TAG_Int(-UNTAG_Int( TAG_Int(92)));
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176], variable[177]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175], variable[176]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176], variable[177]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175], variable[176]) /*AbstractArray::add*/;
     variable[177] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(202)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175], variable[177]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(202)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175], variable[177]) /*AbstractArray::add*/;
     variable[178] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[175],COLOR_abstract_collection___SimpleCollection___add))(variable[175], variable[178]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[175]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[175])(variable[175], variable[178]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[175]) /*AbstractArray::add*/;
     variable[176] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[177] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[178] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177], variable[178]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[176],COLOR_abstract_collection___SimpleCollection___add))(variable[176], variable[177]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[176]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177], variable[178]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[176])(variable[176], variable[177]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[176]) /*AbstractArray::add*/;
     variable[177] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[178] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[179] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178], variable[179]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177], variable[178]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178], variable[179]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177], variable[178]) /*AbstractArray::add*/;
     variable[179] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179],  TAG_Int(203)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177], variable[179]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179],  TAG_Int(203)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177], variable[179]) /*AbstractArray::add*/;
     variable[180] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[177],COLOR_abstract_collection___SimpleCollection___add))(variable[177], variable[180]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[177]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[177])(variable[177], variable[180]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[177]) /*AbstractArray::add*/;
     variable[178] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[179] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[180] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179], variable[180]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178], variable[179]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179], variable[180]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178], variable[179]) /*AbstractArray::add*/;
     variable[180] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(204)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178], variable[180]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(204)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178], variable[180]) /*AbstractArray::add*/;
     variable[181] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[178],COLOR_abstract_collection___SimpleCollection___add))(variable[178], variable[181]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[178]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[178])(variable[178], variable[181]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[178]) /*AbstractArray::add*/;
     variable[179] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[180] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[181] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180], variable[181]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179], variable[180]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180], variable[181]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179], variable[180]) /*AbstractArray::add*/;
     variable[181] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(205)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179], variable[181]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(205)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179], variable[181]) /*AbstractArray::add*/;
     variable[182] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[179],COLOR_abstract_collection___SimpleCollection___add))(variable[179], variable[182]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[179]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[179])(variable[179], variable[182]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[179]) /*AbstractArray::add*/;
     variable[180] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[181] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[182] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181], variable[182]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[180],COLOR_abstract_collection___SimpleCollection___add))(variable[180], variable[181]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[180]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181], variable[182]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[180])(variable[180], variable[181]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[180]) /*AbstractArray::add*/;
     variable[181] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[182] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[183] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182], variable[183]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181], variable[182]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182], variable[183]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181], variable[182]) /*AbstractArray::add*/;
     variable[183] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[183],COLOR_abstract_collection___SimpleCollection___add))(variable[183],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[183],COLOR_abstract_collection___SimpleCollection___add))(variable[183],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[183],COLOR_abstract_collection___SimpleCollection___add))(variable[183],  TAG_Int(206)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181], variable[183]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[183])(variable[183],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[183])(variable[183],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[183])(variable[183],  TAG_Int(206)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181], variable[183]) /*AbstractArray::add*/;
     variable[184] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[181],COLOR_abstract_collection___SimpleCollection___add))(variable[181], variable[184]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[181]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[181])(variable[181], variable[184]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[181]) /*AbstractArray::add*/;
     variable[182] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[183] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[183],COLOR_abstract_collection___SimpleCollection___add))(variable[183],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[183],COLOR_abstract_collection___SimpleCollection___add))(variable[183],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[183])(variable[183],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[183])(variable[183],  TAG_Int(116)) /*AbstractArray::add*/;
     variable[184] = TAG_Int(-UNTAG_Int( TAG_Int(107)));
-    ((array___AbstractArray___add_t)CALL(variable[183],COLOR_abstract_collection___SimpleCollection___add))(variable[183], variable[184]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182], variable[183]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[183])(variable[183], variable[184]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182], variable[183]) /*AbstractArray::add*/;
     variable[184] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(207)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182], variable[184]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(207)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182], variable[184]) /*AbstractArray::add*/;
     variable[185] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[185],COLOR_abstract_collection___SimpleCollection___add))(variable[185],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[185],COLOR_abstract_collection___SimpleCollection___add))(variable[185],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[185],COLOR_abstract_collection___SimpleCollection___add))(variable[185],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[182],COLOR_abstract_collection___SimpleCollection___add))(variable[182], variable[185]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[182]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[185])(variable[185],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[185])(variable[185],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[185])(variable[185],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[182])(variable[182], variable[185]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[182]) /*AbstractArray::add*/;
     variable[183] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[184] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[185] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184], variable[185]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[183],COLOR_abstract_collection___SimpleCollection___add))(variable[183], variable[184]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[183]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184], variable[185]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[183])(variable[183], variable[184]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[183]) /*AbstractArray::add*/;
     variable[184] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[185] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[185],COLOR_abstract_collection___SimpleCollection___add))(variable[185],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[185],COLOR_abstract_collection___SimpleCollection___add))(variable[185],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[185])(variable[185],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[185])(variable[185],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[186] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[185],COLOR_abstract_collection___SimpleCollection___add))(variable[185], variable[186]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[184],COLOR_abstract_collection___SimpleCollection___add))(variable[184], variable[185]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[184]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[185])(variable[185], variable[186]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[184])(variable[184], variable[185]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[184]) /*AbstractArray::add*/;
     variable[185] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[186] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[186],COLOR_abstract_collection___SimpleCollection___add))(variable[186],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[186],COLOR_abstract_collection___SimpleCollection___add))(variable[186],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[186])(variable[186],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[186])(variable[186],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[187] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[186],COLOR_abstract_collection___SimpleCollection___add))(variable[186], variable[187]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[185],COLOR_abstract_collection___SimpleCollection___add))(variable[185], variable[186]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[185]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[186])(variable[186], variable[187]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[185])(variable[185], variable[186]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[185]) /*AbstractArray::add*/;
     variable[186] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[187] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[187],COLOR_abstract_collection___SimpleCollection___add))(variable[187],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[187],COLOR_abstract_collection___SimpleCollection___add))(variable[187],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[187])(variable[187],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[187])(variable[187],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[188] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[187],COLOR_abstract_collection___SimpleCollection___add))(variable[187], variable[188]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[186],COLOR_abstract_collection___SimpleCollection___add))(variable[186], variable[187]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[187])(variable[187], variable[188]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[186])(variable[186], variable[187]) /*AbstractArray::add*/;
     variable[188] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188],  TAG_Int(208)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[186],COLOR_abstract_collection___SimpleCollection___add))(variable[186], variable[188]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188],  TAG_Int(208)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[186])(variable[186], variable[188]) /*AbstractArray::add*/;
     variable[189] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[186],COLOR_abstract_collection___SimpleCollection___add))(variable[186], variable[189]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[186]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[186])(variable[186], variable[189]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[186]) /*AbstractArray::add*/;
     variable[187] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[188] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[189] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188], variable[189]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[187],COLOR_abstract_collection___SimpleCollection___add))(variable[187], variable[188]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188], variable[189]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[187])(variable[187], variable[188]) /*AbstractArray::add*/;
     variable[189] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(209)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[187],COLOR_abstract_collection___SimpleCollection___add))(variable[187], variable[189]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(209)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[187])(variable[187], variable[189]) /*AbstractArray::add*/;
     variable[190] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[187],COLOR_abstract_collection___SimpleCollection___add))(variable[187], variable[190]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[187]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[187])(variable[187], variable[190]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[187]) /*AbstractArray::add*/;
     variable[188] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[189] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[190] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189], variable[190]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188], variable[189]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189], variable[190]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188], variable[189]) /*AbstractArray::add*/;
     variable[190] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(210)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188], variable[190]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(210)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188], variable[190]) /*AbstractArray::add*/;
     variable[191] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[188],COLOR_abstract_collection___SimpleCollection___add))(variable[188], variable[191]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[188]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[188])(variable[188], variable[191]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[188]) /*AbstractArray::add*/;
     variable[189] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[190] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[191] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190], variable[191]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189], variable[190]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190], variable[191]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189], variable[190]) /*AbstractArray::add*/;
     variable[191] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(211)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189], variable[191]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(211)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189], variable[191]) /*AbstractArray::add*/;
     variable[192] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[189],COLOR_abstract_collection___SimpleCollection___add))(variable[189], variable[192]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[189]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[189])(variable[189], variable[192]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[189]) /*AbstractArray::add*/;
     variable[190] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[191] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191],  TAG_Int(101)) /*AbstractArray::add*/;
     variable[192] = TAG_Int(-UNTAG_Int( TAG_Int(36)));
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191], variable[192]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190], variable[191]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191], variable[192]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190], variable[191]) /*AbstractArray::add*/;
     variable[192] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(212)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190], variable[192]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(212)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190], variable[192]) /*AbstractArray::add*/;
     variable[193] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[190],COLOR_abstract_collection___SimpleCollection___add))(variable[190], variable[193]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[190]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[190])(variable[190], variable[193]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[190]) /*AbstractArray::add*/;
     variable[191] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[192] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[193] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192], variable[193]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191], variable[192]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192], variable[193]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191], variable[192]) /*AbstractArray::add*/;
     variable[193] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(213)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191], variable[193]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(213)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191], variable[193]) /*AbstractArray::add*/;
     variable[194] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[191],COLOR_abstract_collection___SimpleCollection___add))(variable[191], variable[194]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[191]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[191])(variable[191], variable[194]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[191]) /*AbstractArray::add*/;
     variable[192] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[193] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[194] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193], variable[194]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[192],COLOR_abstract_collection___SimpleCollection___add))(variable[192], variable[193]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[192]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193], variable[194]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[192])(variable[192], variable[193]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[192]) /*AbstractArray::add*/;
     variable[193] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[194] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194],  TAG_Int(104)) /*AbstractArray::add*/;
     variable[195] = TAG_Int(-UNTAG_Int( TAG_Int(92)));
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194], variable[195]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193], variable[194]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194], variable[195]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193], variable[194]) /*AbstractArray::add*/;
     variable[195] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[195],COLOR_abstract_collection___SimpleCollection___add))(variable[195],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[195],COLOR_abstract_collection___SimpleCollection___add))(variable[195],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[195],COLOR_abstract_collection___SimpleCollection___add))(variable[195],  TAG_Int(214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193], variable[195]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[195])(variable[195],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[195])(variable[195],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[195])(variable[195],  TAG_Int(214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193], variable[195]) /*AbstractArray::add*/;
     variable[196] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[193],COLOR_abstract_collection___SimpleCollection___add))(variable[193], variable[196]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[193]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[193])(variable[193], variable[196]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[193]) /*AbstractArray::add*/;
     variable[194] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[195] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[195],COLOR_abstract_collection___SimpleCollection___add))(variable[195],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[195],COLOR_abstract_collection___SimpleCollection___add))(variable[195],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[195])(variable[195],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[195])(variable[195],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[196] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[195],COLOR_abstract_collection___SimpleCollection___add))(variable[195], variable[196]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194], variable[195]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[195])(variable[195], variable[196]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194], variable[195]) /*AbstractArray::add*/;
     variable[196] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(215)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194], variable[196]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(215)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194], variable[196]) /*AbstractArray::add*/;
     variable[197] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[197],COLOR_abstract_collection___SimpleCollection___add))(variable[197],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[197],COLOR_abstract_collection___SimpleCollection___add))(variable[197],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[197],COLOR_abstract_collection___SimpleCollection___add))(variable[197],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[194],COLOR_abstract_collection___SimpleCollection___add))(variable[194], variable[197]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[194]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[197])(variable[197],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[197])(variable[197],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[197])(variable[197],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[194])(variable[194], variable[197]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[194]) /*AbstractArray::add*/;
     variable[195] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[196] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[197] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196], variable[197]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[195],COLOR_abstract_collection___SimpleCollection___add))(variable[195], variable[196]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[195]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196], variable[197]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[195])(variable[195], variable[196]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[195]) /*AbstractArray::add*/;
     variable[196] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[197] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[197],COLOR_abstract_collection___SimpleCollection___add))(variable[197],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[197],COLOR_abstract_collection___SimpleCollection___add))(variable[197],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[197])(variable[197],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[197])(variable[197],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[198] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[197],COLOR_abstract_collection___SimpleCollection___add))(variable[197], variable[198]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[196],COLOR_abstract_collection___SimpleCollection___add))(variable[196], variable[197]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[196]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[197])(variable[197], variable[198]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[196])(variable[196], variable[197]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[196]) /*AbstractArray::add*/;
     variable[197] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[198] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[198],COLOR_abstract_collection___SimpleCollection___add))(variable[198],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[198],COLOR_abstract_collection___SimpleCollection___add))(variable[198],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[198])(variable[198],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[198])(variable[198],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[199] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[198],COLOR_abstract_collection___SimpleCollection___add))(variable[198], variable[199]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[197],COLOR_abstract_collection___SimpleCollection___add))(variable[197], variable[198]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[197]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[198])(variable[198], variable[199]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[197])(variable[197], variable[198]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[197]) /*AbstractArray::add*/;
     variable[198] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[199] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[199],COLOR_abstract_collection___SimpleCollection___add))(variable[199],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[199],COLOR_abstract_collection___SimpleCollection___add))(variable[199],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[199])(variable[199],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[199])(variable[199],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[200] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[199],COLOR_abstract_collection___SimpleCollection___add))(variable[199], variable[200]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[198],COLOR_abstract_collection___SimpleCollection___add))(variable[198], variable[199]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[199])(variable[199], variable[200]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[198])(variable[198], variable[199]) /*AbstractArray::add*/;
     variable[200] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[200],COLOR_abstract_collection___SimpleCollection___add))(variable[200],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[200],COLOR_abstract_collection___SimpleCollection___add))(variable[200],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[200],COLOR_abstract_collection___SimpleCollection___add))(variable[200],  TAG_Int(216)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[198],COLOR_abstract_collection___SimpleCollection___add))(variable[198], variable[200]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[200])(variable[200],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[200])(variable[200],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[200])(variable[200],  TAG_Int(216)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[198])(variable[198], variable[200]) /*AbstractArray::add*/;
     variable[201] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[198],COLOR_abstract_collection___SimpleCollection___add))(variable[198], variable[201]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[198]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[198])(variable[198], variable[201]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[198]) /*AbstractArray::add*/;
     variable[199] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[200] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[200],COLOR_abstract_collection___SimpleCollection___add))(variable[200],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[200],COLOR_abstract_collection___SimpleCollection___add))(variable[200],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[200])(variable[200],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[200])(variable[200],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[201] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[200],COLOR_abstract_collection___SimpleCollection___add))(variable[200], variable[201]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[199],COLOR_abstract_collection___SimpleCollection___add))(variable[199], variable[200]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[200])(variable[200], variable[201]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[199])(variable[199], variable[200]) /*AbstractArray::add*/;
     variable[201] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(217)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[199],COLOR_abstract_collection___SimpleCollection___add))(variable[199], variable[201]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(217)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[199])(variable[199], variable[201]) /*AbstractArray::add*/;
     variable[202] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[202],COLOR_abstract_collection___SimpleCollection___add))(variable[202],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[202],COLOR_abstract_collection___SimpleCollection___add))(variable[202],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[202],COLOR_abstract_collection___SimpleCollection___add))(variable[202],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[199],COLOR_abstract_collection___SimpleCollection___add))(variable[199], variable[202]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[199]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[202])(variable[202],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[202])(variable[202],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[202])(variable[202],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[199])(variable[199], variable[202]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[199]) /*AbstractArray::add*/;
     variable[200] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[201] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[202] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201], variable[202]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[200],COLOR_abstract_collection___SimpleCollection___add))(variable[200], variable[201]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[200]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201], variable[202]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[200])(variable[200], variable[201]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[200]) /*AbstractArray::add*/;
     variable[201] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[202] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[202],COLOR_abstract_collection___SimpleCollection___add))(variable[202],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[202],COLOR_abstract_collection___SimpleCollection___add))(variable[202],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[202])(variable[202],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[202])(variable[202],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[203] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[202],COLOR_abstract_collection___SimpleCollection___add))(variable[202], variable[203]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201], variable[202]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[202])(variable[202], variable[203]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201], variable[202]) /*AbstractArray::add*/;
     variable[203] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203],  TAG_Int(218)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201], variable[203]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203],  TAG_Int(218)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201], variable[203]) /*AbstractArray::add*/;
     variable[204] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[201],COLOR_abstract_collection___SimpleCollection___add))(variable[201], variable[204]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[201]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[201])(variable[201], variable[204]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[201]) /*AbstractArray::add*/;
     variable[202] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[203] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[204] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203], variable[204]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[202],COLOR_abstract_collection___SimpleCollection___add))(variable[202], variable[203]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[202]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203], variable[204]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[202])(variable[202], variable[203]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[202]) /*AbstractArray::add*/;
     variable[203] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[204] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[205] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204], variable[205]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203], variable[204]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204], variable[205]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203], variable[204]) /*AbstractArray::add*/;
     variable[205] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[205],COLOR_abstract_collection___SimpleCollection___add))(variable[205],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[205],COLOR_abstract_collection___SimpleCollection___add))(variable[205],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[205],COLOR_abstract_collection___SimpleCollection___add))(variable[205],  TAG_Int(219)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203], variable[205]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[205])(variable[205],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[205])(variable[205],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[205])(variable[205],  TAG_Int(219)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203], variable[205]) /*AbstractArray::add*/;
     variable[206] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[203],COLOR_abstract_collection___SimpleCollection___add))(variable[203], variable[206]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[203]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[203])(variable[203], variable[206]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[203]) /*AbstractArray::add*/;
     variable[204] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[205] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[205],COLOR_abstract_collection___SimpleCollection___add))(variable[205],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[205],COLOR_abstract_collection___SimpleCollection___add))(variable[205],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[205])(variable[205],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[205])(variable[205],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[206] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[205],COLOR_abstract_collection___SimpleCollection___add))(variable[205], variable[206]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204], variable[205]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[205])(variable[205], variable[206]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204], variable[205]) /*AbstractArray::add*/;
     variable[206] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(220)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204], variable[206]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(220)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204], variable[206]) /*AbstractArray::add*/;
     variable[207] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[204],COLOR_abstract_collection___SimpleCollection___add))(variable[204], variable[207]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[204]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[204])(variable[204], variable[207]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[204]) /*AbstractArray::add*/;
     variable[205] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[206] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[207] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206], variable[207]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[205],COLOR_abstract_collection___SimpleCollection___add))(variable[205], variable[206]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[205]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206], variable[207]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[205])(variable[205], variable[206]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[205]) /*AbstractArray::add*/;
     variable[206] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[207] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[208] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207], variable[208]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[206],COLOR_abstract_collection___SimpleCollection___add))(variable[206], variable[207]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[206]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207], variable[208]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[206])(variable[206], variable[207]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[206]) /*AbstractArray::add*/;
     variable[207] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[208] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[208],COLOR_abstract_collection___SimpleCollection___add))(variable[208],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[208],COLOR_abstract_collection___SimpleCollection___add))(variable[208],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[208])(variable[208],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[208])(variable[208],  TAG_Int(109)) /*AbstractArray::add*/;
     variable[209] = TAG_Int(-UNTAG_Int( TAG_Int(39)));
-    ((array___AbstractArray___add_t)CALL(variable[208],COLOR_abstract_collection___SimpleCollection___add))(variable[208], variable[209]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207], variable[208]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[208])(variable[208], variable[209]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207], variable[208]) /*AbstractArray::add*/;
     variable[209] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[209],COLOR_abstract_collection___SimpleCollection___add))(variable[209],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[209],COLOR_abstract_collection___SimpleCollection___add))(variable[209],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[209],COLOR_abstract_collection___SimpleCollection___add))(variable[209],  TAG_Int(221)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207], variable[209]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[209])(variable[209],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[209])(variable[209],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[209])(variable[209],  TAG_Int(221)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207], variable[209]) /*AbstractArray::add*/;
     variable[210] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[207],COLOR_abstract_collection___SimpleCollection___add))(variable[207], variable[210]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[207]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[207])(variable[207], variable[210]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[207]) /*AbstractArray::add*/;
     variable[208] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[209] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[209],COLOR_abstract_collection___SimpleCollection___add))(variable[209],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[209],COLOR_abstract_collection___SimpleCollection___add))(variable[209],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[209])(variable[209],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[209])(variable[209],  TAG_Int(109)) /*AbstractArray::add*/;
     variable[210] = TAG_Int(-UNTAG_Int( TAG_Int(39)));
-    ((array___AbstractArray___add_t)CALL(variable[209],COLOR_abstract_collection___SimpleCollection___add))(variable[209], variable[210]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[208],COLOR_abstract_collection___SimpleCollection___add))(variable[208], variable[209]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[209])(variable[209], variable[210]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[208])(variable[208], variable[209]) /*AbstractArray::add*/;
     variable[210] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(222)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[208],COLOR_abstract_collection___SimpleCollection___add))(variable[208], variable[210]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(222)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[208])(variable[208], variable[210]) /*AbstractArray::add*/;
     variable[211] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[208],COLOR_abstract_collection___SimpleCollection___add))(variable[208], variable[211]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[208]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[208])(variable[208], variable[211]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[208]) /*AbstractArray::add*/;
     variable[209] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[210] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[211] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210], variable[211]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[209],COLOR_abstract_collection___SimpleCollection___add))(variable[209], variable[210]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[209]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210], variable[211]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[209])(variable[209], variable[210]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[209]) /*AbstractArray::add*/;
     variable[210] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[211] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[212] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211], variable[212]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210], variable[211]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211], variable[212]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210], variable[211]) /*AbstractArray::add*/;
     variable[212] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212],  TAG_Int(223)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210], variable[212]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212],  TAG_Int(223)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210], variable[212]) /*AbstractArray::add*/;
     variable[213] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[210],COLOR_abstract_collection___SimpleCollection___add))(variable[210], variable[213]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[210]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[210])(variable[210], variable[213]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[210]) /*AbstractArray::add*/;
     variable[211] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[Array[Int]]*/
     variable[212] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212],  TAG_Int(101)) /*AbstractArray::add*/;
     variable[213] = TAG_Int(-UNTAG_Int( TAG_Int(36)));
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212], variable[213]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211], variable[212]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212], variable[213]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211], variable[212]) /*AbstractArray::add*/;
     variable[213] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(224)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211], variable[213]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(224)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211], variable[213]) /*AbstractArray::add*/;
     variable[214] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211], variable[214]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211], variable[214]) /*AbstractArray::add*/;
     variable[215] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(225)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211], variable[215]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(225)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211], variable[215]) /*AbstractArray::add*/;
     variable[216] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[211],COLOR_abstract_collection___SimpleCollection___add))(variable[211], variable[216]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[211]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[211])(variable[211], variable[216]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[211]) /*AbstractArray::add*/;
     variable[212] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[213] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213],  TAG_Int(99)) /*AbstractArray::add*/;
     variable[214] = TAG_Int(-UNTAG_Int( TAG_Int(78)));
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213], variable[214]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212], variable[213]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213], variable[214]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212], variable[213]) /*AbstractArray::add*/;
     variable[214] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212], variable[214]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212], variable[214]) /*AbstractArray::add*/;
     variable[215] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[212],COLOR_abstract_collection___SimpleCollection___add))(variable[212], variable[215]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[212]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[212])(variable[212], variable[215]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[212]) /*AbstractArray::add*/;
     variable[213] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Array[Int]]*/
     variable[214] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[215] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214], variable[215]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213], variable[214]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214], variable[215]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213], variable[214]) /*AbstractArray::add*/;
     variable[215] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213], variable[215]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213], variable[215]) /*AbstractArray::add*/;
     variable[216] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(227)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213], variable[216]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(227)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213], variable[216]) /*AbstractArray::add*/;
     variable[217] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[213],COLOR_abstract_collection___SimpleCollection___add))(variable[213], variable[217]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[213]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[213])(variable[213], variable[217]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[213]) /*AbstractArray::add*/;
     variable[214] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[215] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[216] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215], variable[216]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214], variable[215]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215], variable[216]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214], variable[215]) /*AbstractArray::add*/;
     variable[216] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(228)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214], variable[216]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(228)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214], variable[216]) /*AbstractArray::add*/;
     variable[217] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[214],COLOR_abstract_collection___SimpleCollection___add))(variable[214], variable[217]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[214]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[214])(variable[214], variable[217]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[214]) /*AbstractArray::add*/;
     variable[215] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[216] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216],  TAG_Int(98)) /*AbstractArray::add*/;
     variable[217] = TAG_Int(-UNTAG_Int( TAG_Int(98)));
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216], variable[217]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215], variable[216]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216], variable[217]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215], variable[216]) /*AbstractArray::add*/;
     variable[217] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(229)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215], variable[217]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(229)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215], variable[217]) /*AbstractArray::add*/;
     variable[218] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[215],COLOR_abstract_collection___SimpleCollection___add))(variable[215], variable[218]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[215]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[215])(variable[215], variable[218]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[215]) /*AbstractArray::add*/;
     variable[216] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[217] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217],  TAG_Int(97)) /*AbstractArray::add*/;
     variable[218] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217], variable[218]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216], variable[217]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217], variable[218]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216], variable[217]) /*AbstractArray::add*/;
     variable[218] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(230)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216], variable[218]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(230)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216], variable[218]) /*AbstractArray::add*/;
     variable[219] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[216],COLOR_abstract_collection___SimpleCollection___add))(variable[216], variable[219]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[216]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[216])(variable[216], variable[219]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[216]) /*AbstractArray::add*/;
     variable[217] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[218] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[219] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218], variable[219]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[217],COLOR_abstract_collection___SimpleCollection___add))(variable[217], variable[218]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[217]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218], variable[219]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[217])(variable[217], variable[218]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[217]) /*AbstractArray::add*/;
     variable[218] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[219] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219],  TAG_Int(109)) /*AbstractArray::add*/;
     variable[220] = TAG_Int(-UNTAG_Int( TAG_Int(39)));
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219], variable[220]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218], variable[219]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219], variable[220]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218], variable[219]) /*AbstractArray::add*/;
     variable[220] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[220],COLOR_abstract_collection___SimpleCollection___add))(variable[220],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[220],COLOR_abstract_collection___SimpleCollection___add))(variable[220],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[220],COLOR_abstract_collection___SimpleCollection___add))(variable[220],  TAG_Int(231)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218], variable[220]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[220])(variable[220],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[220])(variable[220],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[220])(variable[220],  TAG_Int(231)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218], variable[220]) /*AbstractArray::add*/;
     variable[221] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[218],COLOR_abstract_collection___SimpleCollection___add))(variable[218], variable[221]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[218]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[218])(variable[218], variable[221]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[218]) /*AbstractArray::add*/;
     variable[219] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[220] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[220],COLOR_abstract_collection___SimpleCollection___add))(variable[220],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[220],COLOR_abstract_collection___SimpleCollection___add))(variable[220],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[220])(variable[220],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[220])(variable[220],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[221] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[220],COLOR_abstract_collection___SimpleCollection___add))(variable[220], variable[221]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219], variable[220]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[220])(variable[220], variable[221]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219], variable[220]) /*AbstractArray::add*/;
     variable[221] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(232)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219], variable[221]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(232)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219], variable[221]) /*AbstractArray::add*/;
     variable[222] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[222],COLOR_abstract_collection___SimpleCollection___add))(variable[222],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[222],COLOR_abstract_collection___SimpleCollection___add))(variable[222],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[222],COLOR_abstract_collection___SimpleCollection___add))(variable[222],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[219],COLOR_abstract_collection___SimpleCollection___add))(variable[219], variable[222]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[219]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[222])(variable[222],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[222])(variable[222],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[222])(variable[222],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[219])(variable[219], variable[222]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[219]) /*AbstractArray::add*/;
     variable[220] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[221] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[222] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221], variable[222]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[220],COLOR_abstract_collection___SimpleCollection___add))(variable[220], variable[221]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[220]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221], variable[222]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[220])(variable[220], variable[221]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[220]) /*AbstractArray::add*/;
     variable[221] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[222] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[222],COLOR_abstract_collection___SimpleCollection___add))(variable[222],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[222],COLOR_abstract_collection___SimpleCollection___add))(variable[222],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[222])(variable[222],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[222])(variable[222],  TAG_Int(113)) /*AbstractArray::add*/;
     variable[223] = TAG_Int(-UNTAG_Int( TAG_Int(30)));
-    ((array___AbstractArray___add_t)CALL(variable[222],COLOR_abstract_collection___SimpleCollection___add))(variable[222], variable[223]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221], variable[222]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[222])(variable[222], variable[223]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221], variable[222]) /*AbstractArray::add*/;
     variable[223] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223],  TAG_Int(233)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221], variable[223]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223],  TAG_Int(233)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221], variable[223]) /*AbstractArray::add*/;
     variable[224] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[221],COLOR_abstract_collection___SimpleCollection___add))(variable[221], variable[224]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[221]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[221])(variable[221], variable[224]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[221]) /*AbstractArray::add*/;
     variable[222] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[223] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[224] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223], variable[224]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[222],COLOR_abstract_collection___SimpleCollection___add))(variable[222], variable[223]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[222]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223], variable[224]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[222])(variable[222], variable[223]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[222]) /*AbstractArray::add*/;
     variable[223] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[224] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224],  TAG_Int(97)) /*AbstractArray::add*/;
     variable[225] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224], variable[225]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223], variable[224]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224], variable[225]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223], variable[224]) /*AbstractArray::add*/;
     variable[225] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[225],COLOR_abstract_collection___SimpleCollection___add))(variable[225],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[225],COLOR_abstract_collection___SimpleCollection___add))(variable[225],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[225],COLOR_abstract_collection___SimpleCollection___add))(variable[225],  TAG_Int(234)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223], variable[225]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[225])(variable[225],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[225])(variable[225],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[225])(variable[225],  TAG_Int(234)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223], variable[225]) /*AbstractArray::add*/;
     variable[226] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[223],COLOR_abstract_collection___SimpleCollection___add))(variable[223], variable[226]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[223]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[223])(variable[223], variable[226]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[223]) /*AbstractArray::add*/;
     variable[224] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[225] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[225],COLOR_abstract_collection___SimpleCollection___add))(variable[225],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[225],COLOR_abstract_collection___SimpleCollection___add))(variable[225],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[225])(variable[225],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[225])(variable[225],  TAG_Int(98)) /*AbstractArray::add*/;
     variable[226] = TAG_Int(-UNTAG_Int( TAG_Int(98)));
-    ((array___AbstractArray___add_t)CALL(variable[225],COLOR_abstract_collection___SimpleCollection___add))(variable[225], variable[226]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224], variable[225]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[225])(variable[225], variable[226]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224], variable[225]) /*AbstractArray::add*/;
     variable[226] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(235)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224], variable[226]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(235)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224], variable[226]) /*AbstractArray::add*/;
     variable[227] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[227],COLOR_abstract_collection___SimpleCollection___add))(variable[227],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[227],COLOR_abstract_collection___SimpleCollection___add))(variable[227],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[227],COLOR_abstract_collection___SimpleCollection___add))(variable[227],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[224],COLOR_abstract_collection___SimpleCollection___add))(variable[224], variable[227]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[224]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[227])(variable[227],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[227])(variable[227],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[227])(variable[227],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[224])(variable[224], variable[227]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[224]) /*AbstractArray::add*/;
     variable[225] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[226] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[227] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226], variable[227]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[225],COLOR_abstract_collection___SimpleCollection___add))(variable[225], variable[226]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[225]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226], variable[227]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[225])(variable[225], variable[226]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[225]) /*AbstractArray::add*/;
     variable[226] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[227] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[227],COLOR_abstract_collection___SimpleCollection___add))(variable[227],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[227],COLOR_abstract_collection___SimpleCollection___add))(variable[227],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[227])(variable[227],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[227])(variable[227],  TAG_Int(116)) /*AbstractArray::add*/;
     variable[228] = TAG_Int(-UNTAG_Int( TAG_Int(107)));
-    ((array___AbstractArray___add_t)CALL(variable[227],COLOR_abstract_collection___SimpleCollection___add))(variable[227], variable[228]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226], variable[227]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[227])(variable[227], variable[228]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226], variable[227]) /*AbstractArray::add*/;
     variable[228] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[228],COLOR_abstract_collection___SimpleCollection___add))(variable[228],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[228],COLOR_abstract_collection___SimpleCollection___add))(variable[228],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[228],COLOR_abstract_collection___SimpleCollection___add))(variable[228],  TAG_Int(236)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226], variable[228]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[228])(variable[228],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[228])(variable[228],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[228])(variable[228],  TAG_Int(236)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226], variable[228]) /*AbstractArray::add*/;
     variable[229] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[226],COLOR_abstract_collection___SimpleCollection___add))(variable[226], variable[229]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[226]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[226])(variable[226], variable[229]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[226]) /*AbstractArray::add*/;
     variable[227] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[228] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[228],COLOR_abstract_collection___SimpleCollection___add))(variable[228],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[228],COLOR_abstract_collection___SimpleCollection___add))(variable[228],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[228])(variable[228],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[228])(variable[228],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[229] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[228],COLOR_abstract_collection___SimpleCollection___add))(variable[228], variable[229]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[227],COLOR_abstract_collection___SimpleCollection___add))(variable[227], variable[228]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[227]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[228])(variable[228], variable[229]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[227])(variable[227], variable[228]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[227]) /*AbstractArray::add*/;
     variable[228] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[229] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[230] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229], variable[230]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[228],COLOR_abstract_collection___SimpleCollection___add))(variable[228], variable[229]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[228]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229], variable[230]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[228])(variable[228], variable[229]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[228]) /*AbstractArray::add*/;
     variable[229] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[230] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[230],COLOR_abstract_collection___SimpleCollection___add))(variable[230],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[230],COLOR_abstract_collection___SimpleCollection___add))(variable[230],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[230])(variable[230],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[230])(variable[230],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[231] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[230],COLOR_abstract_collection___SimpleCollection___add))(variable[230], variable[231]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229], variable[230]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[230])(variable[230], variable[231]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229], variable[230]) /*AbstractArray::add*/;
     variable[231] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231],  TAG_Int(237)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229], variable[231]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231],  TAG_Int(237)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229], variable[231]) /*AbstractArray::add*/;
     variable[232] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[229],COLOR_abstract_collection___SimpleCollection___add))(variable[229], variable[232]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[229]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[229])(variable[229], variable[232]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[229]) /*AbstractArray::add*/;
     variable[230] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[231] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[232] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231], variable[232]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[230],COLOR_abstract_collection___SimpleCollection___add))(variable[230], variable[231]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[230]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231], variable[232]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[230])(variable[230], variable[231]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[230]) /*AbstractArray::add*/;
     variable[231] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[232] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[233] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232], variable[233]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231], variable[232]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232], variable[233]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231], variable[232]) /*AbstractArray::add*/;
     variable[233] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233],  TAG_Int(238)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231], variable[233]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233],  TAG_Int(238)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231], variable[233]) /*AbstractArray::add*/;
     variable[234] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[231],COLOR_abstract_collection___SimpleCollection___add))(variable[231], variable[234]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[231]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[231])(variable[231], variable[234]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[231]) /*AbstractArray::add*/;
     variable[232] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[233] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[234] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233], variable[234]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232], variable[233]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233], variable[234]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232], variable[233]) /*AbstractArray::add*/;
     variable[234] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(239)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232], variable[234]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(239)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232], variable[234]) /*AbstractArray::add*/;
     variable[235] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[232],COLOR_abstract_collection___SimpleCollection___add))(variable[232], variable[235]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[232]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[232])(variable[232], variable[235]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[232]) /*AbstractArray::add*/;
     variable[233] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[234] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[235] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234], variable[235]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233], variable[234]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234], variable[235]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233], variable[234]) /*AbstractArray::add*/;
     variable[235] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(240)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233], variable[235]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(240)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233], variable[235]) /*AbstractArray::add*/;
     variable[236] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[233],COLOR_abstract_collection___SimpleCollection___add))(variable[233], variable[236]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[233]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[233])(variable[233], variable[236]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[233]) /*AbstractArray::add*/;
     variable[234] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[235] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[236] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235], variable[236]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234], variable[235]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235], variable[236]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234], variable[235]) /*AbstractArray::add*/;
     variable[236] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(241)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234], variable[236]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(241)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234], variable[236]) /*AbstractArray::add*/;
     variable[237] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[234],COLOR_abstract_collection___SimpleCollection___add))(variable[234], variable[237]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[234]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[234])(variable[234], variable[237]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[234]) /*AbstractArray::add*/;
     variable[235] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[236] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[237] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236], variable[237]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235], variable[236]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236], variable[237]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235], variable[236]) /*AbstractArray::add*/;
     variable[237] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(242)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235], variable[237]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(242)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235], variable[237]) /*AbstractArray::add*/;
     variable[238] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[235],COLOR_abstract_collection___SimpleCollection___add))(variable[235], variable[238]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[235]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[235])(variable[235], variable[238]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[235]) /*AbstractArray::add*/;
     variable[236] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[237] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[238] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237], variable[238]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[236],COLOR_abstract_collection___SimpleCollection___add))(variable[236], variable[237]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[236]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237], variable[238]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[236])(variable[236], variable[237]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[236]) /*AbstractArray::add*/;
     variable[237] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[238] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[239] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238], variable[239]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237], variable[238]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238], variable[239]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237], variable[238]) /*AbstractArray::add*/;
     variable[239] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239],  TAG_Int(243)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237], variable[239]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239],  TAG_Int(243)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237], variable[239]) /*AbstractArray::add*/;
     variable[240] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[237],COLOR_abstract_collection___SimpleCollection___add))(variable[237], variable[240]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[237]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[237])(variable[237], variable[240]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[237]) /*AbstractArray::add*/;
     variable[238] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[239] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239],  TAG_Int(114)) /*AbstractArray::add*/;
     variable[240] = TAG_Int(-UNTAG_Int( TAG_Int(79)));
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239], variable[240]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238], variable[239]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239], variable[240]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238], variable[239]) /*AbstractArray::add*/;
     variable[240] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(244)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238], variable[240]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(244)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238], variable[240]) /*AbstractArray::add*/;
     variable[241] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[238],COLOR_abstract_collection___SimpleCollection___add))(variable[238], variable[241]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[238]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[238])(variable[238], variable[241]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[238]) /*AbstractArray::add*/;
     variable[239] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[240] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[241] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240], variable[241]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239], variable[240]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240], variable[241]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239], variable[240]) /*AbstractArray::add*/;
     variable[241] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(245)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239], variable[241]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(245)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239], variable[241]) /*AbstractArray::add*/;
     variable[242] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[239],COLOR_abstract_collection___SimpleCollection___add))(variable[239], variable[242]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[239]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[239])(variable[239], variable[242]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[239]) /*AbstractArray::add*/;
     variable[240] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[241] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241],  TAG_Int(115)) /*AbstractArray::add*/;
     variable[242] = TAG_Int(-UNTAG_Int( TAG_Int(80)));
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241], variable[242]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240], variable[241]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241], variable[242]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240], variable[241]) /*AbstractArray::add*/;
     variable[242] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(246)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240], variable[242]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(246)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240], variable[242]) /*AbstractArray::add*/;
     variable[243] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[240],COLOR_abstract_collection___SimpleCollection___add))(variable[240], variable[243]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[240]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[240])(variable[240], variable[243]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[240]) /*AbstractArray::add*/;
     variable[241] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[242] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[243] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242], variable[243]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241], variable[242]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242], variable[243]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241], variable[242]) /*AbstractArray::add*/;
     variable[243] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(247)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241], variable[243]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(247)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241], variable[243]) /*AbstractArray::add*/;
     variable[244] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[241],COLOR_abstract_collection___SimpleCollection___add))(variable[241], variable[244]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[241]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[241])(variable[241], variable[244]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[241]) /*AbstractArray::add*/;
     variable[242] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[243] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243],  TAG_Int(98)) /*AbstractArray::add*/;
     variable[244] = TAG_Int(-UNTAG_Int( TAG_Int(98)));
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243], variable[244]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242], variable[243]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243], variable[244]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242], variable[243]) /*AbstractArray::add*/;
     variable[244] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(248)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242], variable[244]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(248)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242], variable[244]) /*AbstractArray::add*/;
     variable[245] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[245],COLOR_abstract_collection___SimpleCollection___add))(variable[245],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[245],COLOR_abstract_collection___SimpleCollection___add))(variable[245],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[245],COLOR_abstract_collection___SimpleCollection___add))(variable[245],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[242],COLOR_abstract_collection___SimpleCollection___add))(variable[242], variable[245]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[242]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[245])(variable[245],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[245])(variable[245],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[245])(variable[245],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[242])(variable[242], variable[245]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[242]) /*AbstractArray::add*/;
     variable[243] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[244] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[245] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244], variable[245]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[243],COLOR_abstract_collection___SimpleCollection___add))(variable[243], variable[244]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[243]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244], variable[245]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[243])(variable[243], variable[244]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[243]) /*AbstractArray::add*/;
     variable[244] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[245] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[245],COLOR_abstract_collection___SimpleCollection___add))(variable[245],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[245],COLOR_abstract_collection___SimpleCollection___add))(variable[245],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[245])(variable[245],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[245])(variable[245],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[246] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[245],COLOR_abstract_collection___SimpleCollection___add))(variable[245], variable[246]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[244],COLOR_abstract_collection___SimpleCollection___add))(variable[244], variable[245]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[244]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[245])(variable[245], variable[246]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[244])(variable[244], variable[245]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[244]) /*AbstractArray::add*/;
     variable[245] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[246] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[246],COLOR_abstract_collection___SimpleCollection___add))(variable[246],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[246],COLOR_abstract_collection___SimpleCollection___add))(variable[246],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[246])(variable[246],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[246])(variable[246],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[247] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[246],COLOR_abstract_collection___SimpleCollection___add))(variable[246], variable[247]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[245],COLOR_abstract_collection___SimpleCollection___add))(variable[245], variable[246]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[245]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[246])(variable[246], variable[247]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[245])(variable[245], variable[246]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[245]) /*AbstractArray::add*/;
     variable[246] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[247] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[247],COLOR_abstract_collection___SimpleCollection___add))(variable[247],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[247],COLOR_abstract_collection___SimpleCollection___add))(variable[247],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[247])(variable[247],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[247])(variable[247],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[248] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[247],COLOR_abstract_collection___SimpleCollection___add))(variable[247], variable[248]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[246],COLOR_abstract_collection___SimpleCollection___add))(variable[246], variable[247]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[247])(variable[247], variable[248]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[246])(variable[246], variable[247]) /*AbstractArray::add*/;
     variable[248] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[248],COLOR_abstract_collection___SimpleCollection___add))(variable[248],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[248],COLOR_abstract_collection___SimpleCollection___add))(variable[248],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[248],COLOR_abstract_collection___SimpleCollection___add))(variable[248],  TAG_Int(249)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[246],COLOR_abstract_collection___SimpleCollection___add))(variable[246], variable[248]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[248])(variable[248],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[248])(variable[248],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[248])(variable[248],  TAG_Int(249)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[246])(variable[246], variable[248]) /*AbstractArray::add*/;
     variable[249] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[246],COLOR_abstract_collection___SimpleCollection___add))(variable[246], variable[249]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[246]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[246])(variable[246], variable[249]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[246]) /*AbstractArray::add*/;
     variable[247] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[248] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[248],COLOR_abstract_collection___SimpleCollection___add))(variable[248],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[248],COLOR_abstract_collection___SimpleCollection___add))(variable[248],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[248])(variable[248],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[248])(variable[248],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[249] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[248],COLOR_abstract_collection___SimpleCollection___add))(variable[248], variable[249]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[247],COLOR_abstract_collection___SimpleCollection___add))(variable[247], variable[248]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[248])(variable[248], variable[249]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[247])(variable[247], variable[248]) /*AbstractArray::add*/;
     variable[249] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(250)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[247],COLOR_abstract_collection___SimpleCollection___add))(variable[247], variable[249]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(250)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[247])(variable[247], variable[249]) /*AbstractArray::add*/;
     variable[250] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[247],COLOR_abstract_collection___SimpleCollection___add))(variable[247], variable[250]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[247]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[247])(variable[247], variable[250]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[247]) /*AbstractArray::add*/;
     variable[248] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[249] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[250] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249], variable[250]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[248],COLOR_abstract_collection___SimpleCollection___add))(variable[248], variable[249]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[248]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249], variable[250]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[248])(variable[248], variable[249]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[248]) /*AbstractArray::add*/;
     variable[249] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[250] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250],  TAG_Int(95)) /*AbstractArray::add*/;
     variable[251] = TAG_Int(-UNTAG_Int( TAG_Int(29)));
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250], variable[251]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249], variable[250]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250], variable[251]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249], variable[250]) /*AbstractArray::add*/;
     variable[251] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[251],COLOR_abstract_collection___SimpleCollection___add))(variable[251],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[251],COLOR_abstract_collection___SimpleCollection___add))(variable[251],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[251],COLOR_abstract_collection___SimpleCollection___add))(variable[251],  TAG_Int(251)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249], variable[251]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[251])(variable[251],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[251])(variable[251],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[251])(variable[251],  TAG_Int(251)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249], variable[251]) /*AbstractArray::add*/;
     variable[252] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[249],COLOR_abstract_collection___SimpleCollection___add))(variable[249], variable[252]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[249]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[249])(variable[249], variable[252]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[249]) /*AbstractArray::add*/;
     variable[250] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[251] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[251],COLOR_abstract_collection___SimpleCollection___add))(variable[251],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[251],COLOR_abstract_collection___SimpleCollection___add))(variable[251],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[251])(variable[251],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[251])(variable[251],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[252] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[251],COLOR_abstract_collection___SimpleCollection___add))(variable[251], variable[252]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250], variable[251]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[251])(variable[251], variable[252]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250], variable[251]) /*AbstractArray::add*/;
     variable[252] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(252)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250], variable[252]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(252)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250], variable[252]) /*AbstractArray::add*/;
     variable[253] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[250],COLOR_abstract_collection___SimpleCollection___add))(variable[250], variable[253]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[250]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[250])(variable[250], variable[253]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[250]) /*AbstractArray::add*/;
     variable[251] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[252] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[253] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252], variable[253]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[251],COLOR_abstract_collection___SimpleCollection___add))(variable[251], variable[252]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[251]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252], variable[253]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[251])(variable[251], variable[252]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[251]) /*AbstractArray::add*/;
     variable[252] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[253] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[254] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253], variable[254]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[252],COLOR_abstract_collection___SimpleCollection___add))(variable[252], variable[253]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[252]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253], variable[254]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[252])(variable[252], variable[253]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[252]) /*AbstractArray::add*/;
     variable[253] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[254] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[254],COLOR_abstract_collection___SimpleCollection___add))(variable[254],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[254],COLOR_abstract_collection___SimpleCollection___add))(variable[254],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[254])(variable[254],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[254])(variable[254],  TAG_Int(100)) /*AbstractArray::add*/;
     variable[255] = TAG_Int(-UNTAG_Int( TAG_Int(37)));
-    ((array___AbstractArray___add_t)CALL(variable[254],COLOR_abstract_collection___SimpleCollection___add))(variable[254], variable[255]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253], variable[254]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[254])(variable[254], variable[255]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253], variable[254]) /*AbstractArray::add*/;
     variable[255] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[255],COLOR_abstract_collection___SimpleCollection___add))(variable[255],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[255],COLOR_abstract_collection___SimpleCollection___add))(variable[255],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[255],COLOR_abstract_collection___SimpleCollection___add))(variable[255],  TAG_Int(253)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253], variable[255]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[255])(variable[255],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[255])(variable[255],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[255])(variable[255],  TAG_Int(253)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253], variable[255]) /*AbstractArray::add*/;
     variable[256] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[253],COLOR_abstract_collection___SimpleCollection___add))(variable[253], variable[256]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[253]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[253])(variable[253], variable[256]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[253]) /*AbstractArray::add*/;
     variable[254] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[255] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[255],COLOR_abstract_collection___SimpleCollection___add))(variable[255],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[255],COLOR_abstract_collection___SimpleCollection___add))(variable[255],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[255])(variable[255],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[255])(variable[255],  TAG_Int(99)) /*AbstractArray::add*/;
     variable[256] = TAG_Int(-UNTAG_Int( TAG_Int(78)));
-    ((array___AbstractArray___add_t)CALL(variable[255],COLOR_abstract_collection___SimpleCollection___add))(variable[255], variable[256]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[254],COLOR_abstract_collection___SimpleCollection___add))(variable[254], variable[255]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[255])(variable[255], variable[256]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[254])(variable[254], variable[255]) /*AbstractArray::add*/;
     variable[256] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(254)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[254],COLOR_abstract_collection___SimpleCollection___add))(variable[254], variable[256]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(254)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[254])(variable[254], variable[256]) /*AbstractArray::add*/;
     variable[257] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[257],COLOR_abstract_collection___SimpleCollection___add))(variable[257],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[257],COLOR_abstract_collection___SimpleCollection___add))(variable[257],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[257],COLOR_abstract_collection___SimpleCollection___add))(variable[257],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[254],COLOR_abstract_collection___SimpleCollection___add))(variable[254], variable[257]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[254]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[257])(variable[257],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[257])(variable[257],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[257])(variable[257],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[254])(variable[254], variable[257]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[254]) /*AbstractArray::add*/;
     variable[255] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[256] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[257] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256], variable[257]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[255],COLOR_abstract_collection___SimpleCollection___add))(variable[255], variable[256]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[255]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256], variable[257]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[255])(variable[255], variable[256]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[255]) /*AbstractArray::add*/;
     variable[256] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Array[Int]]*/
     variable[257] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[257],COLOR_abstract_collection___SimpleCollection___add))(variable[257],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[257],COLOR_abstract_collection___SimpleCollection___add))(variable[257],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[257])(variable[257],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[257])(variable[257],  TAG_Int(107)) /*AbstractArray::add*/;
     variable[258] = TAG_Int(-UNTAG_Int( TAG_Int(31)));
-    ((array___AbstractArray___add_t)CALL(variable[257],COLOR_abstract_collection___SimpleCollection___add))(variable[257], variable[258]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256], variable[257]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[257])(variable[257], variable[258]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256], variable[257]) /*AbstractArray::add*/;
     variable[258] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[258],COLOR_abstract_collection___SimpleCollection___add))(variable[258],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[258],COLOR_abstract_collection___SimpleCollection___add))(variable[258],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[258],COLOR_abstract_collection___SimpleCollection___add))(variable[258],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256], variable[258]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[258])(variable[258],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[258])(variable[258],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[258])(variable[258],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256], variable[258]) /*AbstractArray::add*/;
     variable[259] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[259],COLOR_abstract_collection___SimpleCollection___add))(variable[259],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[259],COLOR_abstract_collection___SimpleCollection___add))(variable[259],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[259],COLOR_abstract_collection___SimpleCollection___add))(variable[259],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[256],COLOR_abstract_collection___SimpleCollection___add))(variable[256], variable[259]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[256]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[259])(variable[259],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[259])(variable[259],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[259])(variable[259],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[256])(variable[256], variable[259]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[256]) /*AbstractArray::add*/;
     variable[257] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[258] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[258],COLOR_abstract_collection___SimpleCollection___add))(variable[258],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[258],COLOR_abstract_collection___SimpleCollection___add))(variable[258],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[258])(variable[258],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[258])(variable[258],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[259] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[258],COLOR_abstract_collection___SimpleCollection___add))(variable[258], variable[259]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[257],COLOR_abstract_collection___SimpleCollection___add))(variable[257], variable[258]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[257]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[258])(variable[258], variable[259]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[257])(variable[257], variable[258]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[257]) /*AbstractArray::add*/;
     variable[258] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[259] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[259],COLOR_abstract_collection___SimpleCollection___add))(variable[259],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[259],COLOR_abstract_collection___SimpleCollection___add))(variable[259],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[259])(variable[259],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[259])(variable[259],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[260] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[259],COLOR_abstract_collection___SimpleCollection___add))(variable[259], variable[260]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[258],COLOR_abstract_collection___SimpleCollection___add))(variable[258], variable[259]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[258]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[259])(variable[259], variable[260]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[258])(variable[258], variable[259]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[258]) /*AbstractArray::add*/;
     variable[259] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[260] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[260],COLOR_abstract_collection___SimpleCollection___add))(variable[260],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[260],COLOR_abstract_collection___SimpleCollection___add))(variable[260],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[260])(variable[260],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[260])(variable[260],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[261] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[260],COLOR_abstract_collection___SimpleCollection___add))(variable[260], variable[261]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[259],COLOR_abstract_collection___SimpleCollection___add))(variable[259], variable[260]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[259]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[260])(variable[260], variable[261]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[259])(variable[259], variable[260]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[259]) /*AbstractArray::add*/;
     variable[260] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[261] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[261],COLOR_abstract_collection___SimpleCollection___add))(variable[261],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[261],COLOR_abstract_collection___SimpleCollection___add))(variable[261],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[261])(variable[261],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[261])(variable[261],  TAG_Int(122)) /*AbstractArray::add*/;
     variable[262] = TAG_Int(-UNTAG_Int( TAG_Int(35)));
-    ((array___AbstractArray___add_t)CALL(variable[261],COLOR_abstract_collection___SimpleCollection___add))(variable[261], variable[262]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[260],COLOR_abstract_collection___SimpleCollection___add))(variable[260], variable[261]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[260]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[261])(variable[261], variable[262]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[260])(variable[260], variable[261]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[260]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
     once_value_267 = variable[3];
     once_bool_267 = true;
   }
@@ -10077,278 +10079,278 @@ void lexer___Lexer___build_accept_table(val_t  self) {
     variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[Array[Int]]*/
     variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(256)); /*new Array[Int]*/
     variable[5] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(0)) /*AbstractArray::add*/;
     variable[6] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[6]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
     variable[8] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[8]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(67)) /*AbstractArray::add*/;
     variable[9] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[9]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(63)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(54)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(64)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(66)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(78)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(52)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(63)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(54)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(64)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(66)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(78)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(52)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(53)) /*AbstractArray::add*/;
     variable[10] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[10]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
     variable[11] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[11]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(69)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(69)) /*AbstractArray::add*/;
     variable[12] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[12]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(81)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[12]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(81)) /*AbstractArray::add*/;
     variable[13] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[13]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(82)) /*AbstractArray::add*/;
     variable[14] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[14]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(2)) /*AbstractArray::add*/;
     variable[15] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[15]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(59)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(59)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(79)) /*AbstractArray::add*/;
     variable[16] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[16]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(56)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(68)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(73)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(17)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(56)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(68)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(73)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(17)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
     variable[17] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[17]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(84)) /*AbstractArray::add*/;
     variable[18] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[18]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(83)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(83)) /*AbstractArray::add*/;
     variable[19] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[19]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(30)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(41)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(30)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(41)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
     variable[20] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[20]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(47)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(27)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(45)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(49)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(25)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(24)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(6)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(36)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(7)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(8)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[20]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(47)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(27)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(45)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(49)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(25)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(24)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(6)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(36)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(7)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(8)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
     once_value_271 = variable[3];
     once_bool_271 = true;
   }
index 4139093..9973d54 100644 (file)
 extern const classtable_elt_t VFT_Lexer[];
 extern const char *LOCATE_lexer;
 extern const int SFT_lexer[];
-#define COLOR_lexer___Token____text SFT_lexer[0]
-#define COLOR_lexer___Token____filename SFT_lexer[1]
-#define COLOR_lexer___Token____line SFT_lexer[2]
-#define COLOR_lexer___Token____pos SFT_lexer[3]
-#define COLOR_lexer___Token___text SFT_lexer[4]
-#define COLOR_lexer___Token___text__eq SFT_lexer[5]
-#define COLOR_lexer___Token___filename SFT_lexer[6]
-#define COLOR_lexer___Token___line SFT_lexer[7]
-#define COLOR_lexer___Token___pos SFT_lexer[8]
-#define COLOR_lexer___Token___parser_index SFT_lexer[9]
-#define COLOR_lexer___TEol___init_tk SFT_lexer[10]
-#define COLOR_lexer___TComment___init_tk SFT_lexer[11]
-#define COLOR_lexer___TKwpackage___init_tk SFT_lexer[12]
-#define COLOR_lexer___TKwimport___init_tk SFT_lexer[13]
-#define COLOR_lexer___TKwclass___init_tk SFT_lexer[14]
-#define COLOR_lexer___TKwabstract___init_tk SFT_lexer[15]
-#define COLOR_lexer___TKwinterface___init_tk SFT_lexer[16]
-#define COLOR_lexer___TKwuniversal___init_tk SFT_lexer[17]
-#define COLOR_lexer___TKwspecial___init_tk SFT_lexer[18]
-#define COLOR_lexer___TKwend___init_tk SFT_lexer[19]
-#define COLOR_lexer___TKwmeth___init_tk SFT_lexer[20]
-#define COLOR_lexer___TKwtype___init_tk SFT_lexer[21]
-#define COLOR_lexer___TKwattr___init_tk SFT_lexer[22]
-#define COLOR_lexer___TKwinit___init_tk SFT_lexer[23]
-#define COLOR_lexer___TKwredef___init_tk SFT_lexer[24]
-#define COLOR_lexer___TKwis___init_tk SFT_lexer[25]
-#define COLOR_lexer___TKwdo___init_tk SFT_lexer[26]
-#define COLOR_lexer___TKwreadable___init_tk SFT_lexer[27]
-#define COLOR_lexer___TKwwritable___init_tk SFT_lexer[28]
-#define COLOR_lexer___TKwvar___init_tk SFT_lexer[29]
-#define COLOR_lexer___TKwintern___init_tk SFT_lexer[30]
-#define COLOR_lexer___TKwextern___init_tk SFT_lexer[31]
-#define COLOR_lexer___TKwprotected___init_tk SFT_lexer[32]
-#define COLOR_lexer___TKwprivate___init_tk SFT_lexer[33]
-#define COLOR_lexer___TKwintrude___init_tk SFT_lexer[34]
-#define COLOR_lexer___TKwif___init_tk SFT_lexer[35]
-#define COLOR_lexer___TKwthen___init_tk SFT_lexer[36]
-#define COLOR_lexer___TKwelse___init_tk SFT_lexer[37]
-#define COLOR_lexer___TKwwhile___init_tk SFT_lexer[38]
-#define COLOR_lexer___TKwfor___init_tk SFT_lexer[39]
-#define COLOR_lexer___TKwin___init_tk SFT_lexer[40]
-#define COLOR_lexer___TKwand___init_tk SFT_lexer[41]
-#define COLOR_lexer___TKwor___init_tk SFT_lexer[42]
-#define COLOR_lexer___TKwnot___init_tk SFT_lexer[43]
-#define COLOR_lexer___TKwreturn___init_tk SFT_lexer[44]
-#define COLOR_lexer___TKwcontinue___init_tk SFT_lexer[45]
-#define COLOR_lexer___TKwbreak___init_tk SFT_lexer[46]
-#define COLOR_lexer___TKwabort___init_tk SFT_lexer[47]
-#define COLOR_lexer___TKwassert___init_tk SFT_lexer[48]
-#define COLOR_lexer___TKwnew___init_tk SFT_lexer[49]
-#define COLOR_lexer___TKwisa___init_tk SFT_lexer[50]
-#define COLOR_lexer___TKwonce___init_tk SFT_lexer[51]
-#define COLOR_lexer___TKwsuper___init_tk SFT_lexer[52]
-#define COLOR_lexer___TKwself___init_tk SFT_lexer[53]
-#define COLOR_lexer___TKwtrue___init_tk SFT_lexer[54]
-#define COLOR_lexer___TKwfalse___init_tk SFT_lexer[55]
-#define COLOR_lexer___TKwnull___init_tk SFT_lexer[56]
-#define COLOR_lexer___TKwas___init_tk SFT_lexer[57]
-#define COLOR_lexer___TKwwith___init_tk SFT_lexer[58]
-#define COLOR_lexer___TOpar___init_tk SFT_lexer[59]
-#define COLOR_lexer___TCpar___init_tk SFT_lexer[60]
-#define COLOR_lexer___TObra___init_tk SFT_lexer[61]
-#define COLOR_lexer___TCbra___init_tk SFT_lexer[62]
-#define COLOR_lexer___TComma___init_tk SFT_lexer[63]
-#define COLOR_lexer___TColumn___init_tk SFT_lexer[64]
-#define COLOR_lexer___TQuad___init_tk SFT_lexer[65]
-#define COLOR_lexer___TAssign___init_tk SFT_lexer[66]
-#define COLOR_lexer___TPluseq___init_tk SFT_lexer[67]
-#define COLOR_lexer___TMinuseq___init_tk SFT_lexer[68]
-#define COLOR_lexer___TDotdotdot___init_tk SFT_lexer[69]
-#define COLOR_lexer___TDotdot___init_tk SFT_lexer[70]
-#define COLOR_lexer___TDot___init_tk SFT_lexer[71]
-#define COLOR_lexer___TPlus___init_tk SFT_lexer[72]
-#define COLOR_lexer___TMinus___init_tk SFT_lexer[73]
-#define COLOR_lexer___TStar___init_tk SFT_lexer[74]
-#define COLOR_lexer___TSlash___init_tk SFT_lexer[75]
-#define COLOR_lexer___TPercent___init_tk SFT_lexer[76]
-#define COLOR_lexer___TEq___init_tk SFT_lexer[77]
-#define COLOR_lexer___TNe___init_tk SFT_lexer[78]
-#define COLOR_lexer___TLt___init_tk SFT_lexer[79]
-#define COLOR_lexer___TLe___init_tk SFT_lexer[80]
-#define COLOR_lexer___TGt___init_tk SFT_lexer[81]
-#define COLOR_lexer___TGe___init_tk SFT_lexer[82]
-#define COLOR_lexer___TStarship___init_tk SFT_lexer[83]
-#define COLOR_lexer___TClassid___init_tk SFT_lexer[84]
-#define COLOR_lexer___TId___init_tk SFT_lexer[85]
-#define COLOR_lexer___TAttrid___init_tk SFT_lexer[86]
-#define COLOR_lexer___TNumber___init_tk SFT_lexer[87]
-#define COLOR_lexer___TFloat___init_tk SFT_lexer[88]
-#define COLOR_lexer___TChar___init_tk SFT_lexer[89]
-#define COLOR_lexer___TString___init_tk SFT_lexer[90]
-#define COLOR_lexer___TStartString___init_tk SFT_lexer[91]
-#define COLOR_lexer___TMidString___init_tk SFT_lexer[92]
-#define COLOR_lexer___TEndString___init_tk SFT_lexer[93]
-#define COLOR_lexer___EOF___init SFT_lexer[94]
-#define COLOR_lexer___PError____message SFT_lexer[95]
-#define COLOR_lexer___PError___message SFT_lexer[96]
-#define COLOR_lexer___PError___message__eq SFT_lexer[97]
-#define COLOR_lexer___PError___init_error SFT_lexer[98]
-#define ID_Lexer SFT_lexer[99]
-#define COLOR_Lexer SFT_lexer[100]
-#define COLOR_lexer___Lexer____token SFT_lexer[101]
-#define COLOR_lexer___Lexer____state SFT_lexer[102]
-#define COLOR_lexer___Lexer____filename SFT_lexer[103]
-#define COLOR_lexer___Lexer____stream SFT_lexer[104]
-#define COLOR_lexer___Lexer____stream_buf SFT_lexer[105]
-#define COLOR_lexer___Lexer____stream_pos SFT_lexer[106]
-#define COLOR_lexer___Lexer____line SFT_lexer[107]
-#define COLOR_lexer___Lexer____pos SFT_lexer[108]
-#define COLOR_lexer___Lexer____cr SFT_lexer[109]
-#define COLOR_lexer___Lexer____eof SFT_lexer[110]
-#define COLOR_lexer___Lexer____text SFT_lexer[111]
-#define COLOR_lexer___Lexer____goto_table SFT_lexer[112]
-#define COLOR_lexer___Lexer____accept_table SFT_lexer[113]
-#define INIT_TABLE_POS_Lexer SFT_lexer[114]
-#define COLOR_lexer___Lexer___filename SFT_lexer[115]
-#define COLOR_lexer___Lexer___state_initial SFT_lexer[116]
-#define COLOR_lexer___Lexer___init SFT_lexer[117]
-#define COLOR_lexer___Lexer___peek SFT_lexer[118]
-#define COLOR_lexer___Lexer___next SFT_lexer[119]
-#define COLOR_lexer___Lexer___get_token SFT_lexer[120]
-#define COLOR_lexer___Lexer___get_char SFT_lexer[121]
-#define COLOR_lexer___Lexer___push_back SFT_lexer[122]
-#define COLOR_lexer___Lexer___build_goto_table SFT_lexer[123]
-#define COLOR_lexer___Lexer___nil_array SFT_lexer[124]
-#define COLOR_lexer___Lexer___build_accept_table SFT_lexer[125]
+#define ATTR_lexer___Token____text(recv) ATTR(recv, (SFT_lexer[0] + 0))
+#define ATTR_lexer___Token____filename(recv) ATTR(recv, (SFT_lexer[0] + 1))
+#define ATTR_lexer___Token____line(recv) ATTR(recv, (SFT_lexer[0] + 2))
+#define ATTR_lexer___Token____pos(recv) ATTR(recv, (SFT_lexer[0] + 3))
+#define CALL_lexer___Token___text(recv) ((lexer___Token___text_t)CALL((recv), (SFT_lexer[1] + 0)))
+#define CALL_lexer___Token___text__eq(recv) ((lexer___Token___text__eq_t)CALL((recv), (SFT_lexer[1] + 1)))
+#define CALL_lexer___Token___filename(recv) ((lexer___Token___filename_t)CALL((recv), (SFT_lexer[1] + 2)))
+#define CALL_lexer___Token___line(recv) ((lexer___Token___line_t)CALL((recv), (SFT_lexer[1] + 3)))
+#define CALL_lexer___Token___pos(recv) ((lexer___Token___pos_t)CALL((recv), (SFT_lexer[1] + 4)))
+#define CALL_lexer___Token___parser_index(recv) ((lexer___Token___parser_index_t)CALL((recv), (SFT_lexer[1] + 5)))
+#define CALL_lexer___TEol___init_tk(recv) ((lexer___TEol___init_tk_t)CALL((recv), (SFT_lexer[2] + 0)))
+#define CALL_lexer___TComment___init_tk(recv) ((lexer___TComment___init_tk_t)CALL((recv), (SFT_lexer[3] + 0)))
+#define CALL_lexer___TKwpackage___init_tk(recv) ((lexer___TKwpackage___init_tk_t)CALL((recv), (SFT_lexer[4] + 0)))
+#define CALL_lexer___TKwimport___init_tk(recv) ((lexer___TKwimport___init_tk_t)CALL((recv), (SFT_lexer[5] + 0)))
+#define CALL_lexer___TKwclass___init_tk(recv) ((lexer___TKwclass___init_tk_t)CALL((recv), (SFT_lexer[6] + 0)))
+#define CALL_lexer___TKwabstract___init_tk(recv) ((lexer___TKwabstract___init_tk_t)CALL((recv), (SFT_lexer[7] + 0)))
+#define CALL_lexer___TKwinterface___init_tk(recv) ((lexer___TKwinterface___init_tk_t)CALL((recv), (SFT_lexer[8] + 0)))
+#define CALL_lexer___TKwuniversal___init_tk(recv) ((lexer___TKwuniversal___init_tk_t)CALL((recv), (SFT_lexer[9] + 0)))
+#define CALL_lexer___TKwspecial___init_tk(recv) ((lexer___TKwspecial___init_tk_t)CALL((recv), (SFT_lexer[10] + 0)))
+#define CALL_lexer___TKwend___init_tk(recv) ((lexer___TKwend___init_tk_t)CALL((recv), (SFT_lexer[11] + 0)))
+#define CALL_lexer___TKwmeth___init_tk(recv) ((lexer___TKwmeth___init_tk_t)CALL((recv), (SFT_lexer[12] + 0)))
+#define CALL_lexer___TKwtype___init_tk(recv) ((lexer___TKwtype___init_tk_t)CALL((recv), (SFT_lexer[13] + 0)))
+#define CALL_lexer___TKwattr___init_tk(recv) ((lexer___TKwattr___init_tk_t)CALL((recv), (SFT_lexer[14] + 0)))
+#define CALL_lexer___TKwinit___init_tk(recv) ((lexer___TKwinit___init_tk_t)CALL((recv), (SFT_lexer[15] + 0)))
+#define CALL_lexer___TKwredef___init_tk(recv) ((lexer___TKwredef___init_tk_t)CALL((recv), (SFT_lexer[16] + 0)))
+#define CALL_lexer___TKwis___init_tk(recv) ((lexer___TKwis___init_tk_t)CALL((recv), (SFT_lexer[17] + 0)))
+#define CALL_lexer___TKwdo___init_tk(recv) ((lexer___TKwdo___init_tk_t)CALL((recv), (SFT_lexer[18] + 0)))
+#define CALL_lexer___TKwreadable___init_tk(recv) ((lexer___TKwreadable___init_tk_t)CALL((recv), (SFT_lexer[19] + 0)))
+#define CALL_lexer___TKwwritable___init_tk(recv) ((lexer___TKwwritable___init_tk_t)CALL((recv), (SFT_lexer[20] + 0)))
+#define CALL_lexer___TKwvar___init_tk(recv) ((lexer___TKwvar___init_tk_t)CALL((recv), (SFT_lexer[21] + 0)))
+#define CALL_lexer___TKwintern___init_tk(recv) ((lexer___TKwintern___init_tk_t)CALL((recv), (SFT_lexer[22] + 0)))
+#define CALL_lexer___TKwextern___init_tk(recv) ((lexer___TKwextern___init_tk_t)CALL((recv), (SFT_lexer[23] + 0)))
+#define CALL_lexer___TKwprotected___init_tk(recv) ((lexer___TKwprotected___init_tk_t)CALL((recv), (SFT_lexer[24] + 0)))
+#define CALL_lexer___TKwprivate___init_tk(recv) ((lexer___TKwprivate___init_tk_t)CALL((recv), (SFT_lexer[25] + 0)))
+#define CALL_lexer___TKwintrude___init_tk(recv) ((lexer___TKwintrude___init_tk_t)CALL((recv), (SFT_lexer[26] + 0)))
+#define CALL_lexer___TKwif___init_tk(recv) ((lexer___TKwif___init_tk_t)CALL((recv), (SFT_lexer[27] + 0)))
+#define CALL_lexer___TKwthen___init_tk(recv) ((lexer___TKwthen___init_tk_t)CALL((recv), (SFT_lexer[28] + 0)))
+#define CALL_lexer___TKwelse___init_tk(recv) ((lexer___TKwelse___init_tk_t)CALL((recv), (SFT_lexer[29] + 0)))
+#define CALL_lexer___TKwwhile___init_tk(recv) ((lexer___TKwwhile___init_tk_t)CALL((recv), (SFT_lexer[30] + 0)))
+#define CALL_lexer___TKwfor___init_tk(recv) ((lexer___TKwfor___init_tk_t)CALL((recv), (SFT_lexer[31] + 0)))
+#define CALL_lexer___TKwin___init_tk(recv) ((lexer___TKwin___init_tk_t)CALL((recv), (SFT_lexer[32] + 0)))
+#define CALL_lexer___TKwand___init_tk(recv) ((lexer___TKwand___init_tk_t)CALL((recv), (SFT_lexer[33] + 0)))
+#define CALL_lexer___TKwor___init_tk(recv) ((lexer___TKwor___init_tk_t)CALL((recv), (SFT_lexer[34] + 0)))
+#define CALL_lexer___TKwnot___init_tk(recv) ((lexer___TKwnot___init_tk_t)CALL((recv), (SFT_lexer[35] + 0)))
+#define CALL_lexer___TKwreturn___init_tk(recv) ((lexer___TKwreturn___init_tk_t)CALL((recv), (SFT_lexer[36] + 0)))
+#define CALL_lexer___TKwcontinue___init_tk(recv) ((lexer___TKwcontinue___init_tk_t)CALL((recv), (SFT_lexer[37] + 0)))
+#define CALL_lexer___TKwbreak___init_tk(recv) ((lexer___TKwbreak___init_tk_t)CALL((recv), (SFT_lexer[38] + 0)))
+#define CALL_lexer___TKwabort___init_tk(recv) ((lexer___TKwabort___init_tk_t)CALL((recv), (SFT_lexer[39] + 0)))
+#define CALL_lexer___TKwassert___init_tk(recv) ((lexer___TKwassert___init_tk_t)CALL((recv), (SFT_lexer[40] + 0)))
+#define CALL_lexer___TKwnew___init_tk(recv) ((lexer___TKwnew___init_tk_t)CALL((recv), (SFT_lexer[41] + 0)))
+#define CALL_lexer___TKwisa___init_tk(recv) ((lexer___TKwisa___init_tk_t)CALL((recv), (SFT_lexer[42] + 0)))
+#define CALL_lexer___TKwonce___init_tk(recv) ((lexer___TKwonce___init_tk_t)CALL((recv), (SFT_lexer[43] + 0)))
+#define CALL_lexer___TKwsuper___init_tk(recv) ((lexer___TKwsuper___init_tk_t)CALL((recv), (SFT_lexer[44] + 0)))
+#define CALL_lexer___TKwself___init_tk(recv) ((lexer___TKwself___init_tk_t)CALL((recv), (SFT_lexer[45] + 0)))
+#define CALL_lexer___TKwtrue___init_tk(recv) ((lexer___TKwtrue___init_tk_t)CALL((recv), (SFT_lexer[46] + 0)))
+#define CALL_lexer___TKwfalse___init_tk(recv) ((lexer___TKwfalse___init_tk_t)CALL((recv), (SFT_lexer[47] + 0)))
+#define CALL_lexer___TKwnull___init_tk(recv) ((lexer___TKwnull___init_tk_t)CALL((recv), (SFT_lexer[48] + 0)))
+#define CALL_lexer___TKwas___init_tk(recv) ((lexer___TKwas___init_tk_t)CALL((recv), (SFT_lexer[49] + 0)))
+#define CALL_lexer___TKwwith___init_tk(recv) ((lexer___TKwwith___init_tk_t)CALL((recv), (SFT_lexer[50] + 0)))
+#define CALL_lexer___TOpar___init_tk(recv) ((lexer___TOpar___init_tk_t)CALL((recv), (SFT_lexer[51] + 0)))
+#define CALL_lexer___TCpar___init_tk(recv) ((lexer___TCpar___init_tk_t)CALL((recv), (SFT_lexer[52] + 0)))
+#define CALL_lexer___TObra___init_tk(recv) ((lexer___TObra___init_tk_t)CALL((recv), (SFT_lexer[53] + 0)))
+#define CALL_lexer___TCbra___init_tk(recv) ((lexer___TCbra___init_tk_t)CALL((recv), (SFT_lexer[54] + 0)))
+#define CALL_lexer___TComma___init_tk(recv) ((lexer___TComma___init_tk_t)CALL((recv), (SFT_lexer[55] + 0)))
+#define CALL_lexer___TColumn___init_tk(recv) ((lexer___TColumn___init_tk_t)CALL((recv), (SFT_lexer[56] + 0)))
+#define CALL_lexer___TQuad___init_tk(recv) ((lexer___TQuad___init_tk_t)CALL((recv), (SFT_lexer[57] + 0)))
+#define CALL_lexer___TAssign___init_tk(recv) ((lexer___TAssign___init_tk_t)CALL((recv), (SFT_lexer[58] + 0)))
+#define CALL_lexer___TPluseq___init_tk(recv) ((lexer___TPluseq___init_tk_t)CALL((recv), (SFT_lexer[59] + 0)))
+#define CALL_lexer___TMinuseq___init_tk(recv) ((lexer___TMinuseq___init_tk_t)CALL((recv), (SFT_lexer[60] + 0)))
+#define CALL_lexer___TDotdotdot___init_tk(recv) ((lexer___TDotdotdot___init_tk_t)CALL((recv), (SFT_lexer[61] + 0)))
+#define CALL_lexer___TDotdot___init_tk(recv) ((lexer___TDotdot___init_tk_t)CALL((recv), (SFT_lexer[62] + 0)))
+#define CALL_lexer___TDot___init_tk(recv) ((lexer___TDot___init_tk_t)CALL((recv), (SFT_lexer[63] + 0)))
+#define CALL_lexer___TPlus___init_tk(recv) ((lexer___TPlus___init_tk_t)CALL((recv), (SFT_lexer[64] + 0)))
+#define CALL_lexer___TMinus___init_tk(recv) ((lexer___TMinus___init_tk_t)CALL((recv), (SFT_lexer[65] + 0)))
+#define CALL_lexer___TStar___init_tk(recv) ((lexer___TStar___init_tk_t)CALL((recv), (SFT_lexer[66] + 0)))
+#define CALL_lexer___TSlash___init_tk(recv) ((lexer___TSlash___init_tk_t)CALL((recv), (SFT_lexer[67] + 0)))
+#define CALL_lexer___TPercent___init_tk(recv) ((lexer___TPercent___init_tk_t)CALL((recv), (SFT_lexer[68] + 0)))
+#define CALL_lexer___TEq___init_tk(recv) ((lexer___TEq___init_tk_t)CALL((recv), (SFT_lexer[69] + 0)))
+#define CALL_lexer___TNe___init_tk(recv) ((lexer___TNe___init_tk_t)CALL((recv), (SFT_lexer[70] + 0)))
+#define CALL_lexer___TLt___init_tk(recv) ((lexer___TLt___init_tk_t)CALL((recv), (SFT_lexer[71] + 0)))
+#define CALL_lexer___TLe___init_tk(recv) ((lexer___TLe___init_tk_t)CALL((recv), (SFT_lexer[72] + 0)))
+#define CALL_lexer___TGt___init_tk(recv) ((lexer___TGt___init_tk_t)CALL((recv), (SFT_lexer[73] + 0)))
+#define CALL_lexer___TGe___init_tk(recv) ((lexer___TGe___init_tk_t)CALL((recv), (SFT_lexer[74] + 0)))
+#define CALL_lexer___TStarship___init_tk(recv) ((lexer___TStarship___init_tk_t)CALL((recv), (SFT_lexer[75] + 0)))
+#define CALL_lexer___TClassid___init_tk(recv) ((lexer___TClassid___init_tk_t)CALL((recv), (SFT_lexer[76] + 0)))
+#define CALL_lexer___TId___init_tk(recv) ((lexer___TId___init_tk_t)CALL((recv), (SFT_lexer[77] + 0)))
+#define CALL_lexer___TAttrid___init_tk(recv) ((lexer___TAttrid___init_tk_t)CALL((recv), (SFT_lexer[78] + 0)))
+#define CALL_lexer___TNumber___init_tk(recv) ((lexer___TNumber___init_tk_t)CALL((recv), (SFT_lexer[79] + 0)))
+#define CALL_lexer___TFloat___init_tk(recv) ((lexer___TFloat___init_tk_t)CALL((recv), (SFT_lexer[80] + 0)))
+#define CALL_lexer___TChar___init_tk(recv) ((lexer___TChar___init_tk_t)CALL((recv), (SFT_lexer[81] + 0)))
+#define CALL_lexer___TString___init_tk(recv) ((lexer___TString___init_tk_t)CALL((recv), (SFT_lexer[82] + 0)))
+#define CALL_lexer___TStartString___init_tk(recv) ((lexer___TStartString___init_tk_t)CALL((recv), (SFT_lexer[83] + 0)))
+#define CALL_lexer___TMidString___init_tk(recv) ((lexer___TMidString___init_tk_t)CALL((recv), (SFT_lexer[84] + 0)))
+#define CALL_lexer___TEndString___init_tk(recv) ((lexer___TEndString___init_tk_t)CALL((recv), (SFT_lexer[85] + 0)))
+#define CALL_lexer___EOF___init(recv) ((lexer___EOF___init_t)CALL((recv), (SFT_lexer[86] + 0)))
+#define ATTR_lexer___PError____message(recv) ATTR(recv, (SFT_lexer[87] + 0))
+#define CALL_lexer___PError___message(recv) ((lexer___PError___message_t)CALL((recv), (SFT_lexer[88] + 0)))
+#define CALL_lexer___PError___message__eq(recv) ((lexer___PError___message__eq_t)CALL((recv), (SFT_lexer[88] + 1)))
+#define CALL_lexer___PError___init_error(recv) ((lexer___PError___init_error_t)CALL((recv), (SFT_lexer[88] + 2)))
+#define ID_Lexer (SFT_lexer[89])
+#define COLOR_Lexer (SFT_lexer[90])
+#define ATTR_lexer___Lexer____token(recv) ATTR(recv, (SFT_lexer[91] + 0))
+#define ATTR_lexer___Lexer____state(recv) ATTR(recv, (SFT_lexer[91] + 1))
+#define ATTR_lexer___Lexer____filename(recv) ATTR(recv, (SFT_lexer[91] + 2))
+#define ATTR_lexer___Lexer____stream(recv) ATTR(recv, (SFT_lexer[91] + 3))
+#define ATTR_lexer___Lexer____stream_buf(recv) ATTR(recv, (SFT_lexer[91] + 4))
+#define ATTR_lexer___Lexer____stream_pos(recv) ATTR(recv, (SFT_lexer[91] + 5))
+#define ATTR_lexer___Lexer____line(recv) ATTR(recv, (SFT_lexer[91] + 6))
+#define ATTR_lexer___Lexer____pos(recv) ATTR(recv, (SFT_lexer[91] + 7))
+#define ATTR_lexer___Lexer____cr(recv) ATTR(recv, (SFT_lexer[91] + 8))
+#define ATTR_lexer___Lexer____eof(recv) ATTR(recv, (SFT_lexer[91] + 9))
+#define ATTR_lexer___Lexer____text(recv) ATTR(recv, (SFT_lexer[91] + 10))
+#define ATTR_lexer___Lexer____goto_table(recv) ATTR(recv, (SFT_lexer[91] + 11))
+#define ATTR_lexer___Lexer____accept_table(recv) ATTR(recv, (SFT_lexer[91] + 12))
+#define INIT_TABLE_POS_Lexer (SFT_lexer[92] + 0)
+#define CALL_lexer___Lexer___filename(recv) ((lexer___Lexer___filename_t)CALL((recv), (SFT_lexer[92] + 1)))
+#define CALL_lexer___Lexer___state_initial(recv) ((lexer___Lexer___state_initial_t)CALL((recv), (SFT_lexer[92] + 2)))
+#define CALL_lexer___Lexer___init(recv) ((lexer___Lexer___init_t)CALL((recv), (SFT_lexer[92] + 3)))
+#define CALL_lexer___Lexer___peek(recv) ((lexer___Lexer___peek_t)CALL((recv), (SFT_lexer[92] + 4)))
+#define CALL_lexer___Lexer___next(recv) ((lexer___Lexer___next_t)CALL((recv), (SFT_lexer[92] + 5)))
+#define CALL_lexer___Lexer___get_token(recv) ((lexer___Lexer___get_token_t)CALL((recv), (SFT_lexer[92] + 6)))
+#define CALL_lexer___Lexer___get_char(recv) ((lexer___Lexer___get_char_t)CALL((recv), (SFT_lexer[92] + 7)))
+#define CALL_lexer___Lexer___push_back(recv) ((lexer___Lexer___push_back_t)CALL((recv), (SFT_lexer[92] + 8)))
+#define CALL_lexer___Lexer___build_goto_table(recv) ((lexer___Lexer___build_goto_table_t)CALL((recv), (SFT_lexer[92] + 9)))
+#define CALL_lexer___Lexer___nil_array(recv) ((lexer___Lexer___nil_array_t)CALL((recv), (SFT_lexer[92] + 10)))
+#define CALL_lexer___Lexer___build_accept_table(recv) ((lexer___Lexer___build_accept_table_t)CALL((recv), (SFT_lexer[92] + 11)))
 typedef val_t (* lexer___Token___to_s_t)(val_t  self);
 val_t lexer___Token___to_s(val_t  self);
 #define LOCATE_lexer___Token___to_s "lexer::Token::(string::Object::to_s)"
 val_t NEW_Token_parser_nodes___PNode___init();
-#define ATTR_lexer___Token____text(recv) ATTR(recv, COLOR_lexer___Token____text)
 typedef val_t (* lexer___Token___text_t)(val_t  self);
 val_t lexer___Token___text(val_t  self);
 #define LOCATE_lexer___Token___text "lexer::Token::text"
 typedef void (* lexer___Token___text__eq_t)(val_t  self, val_t  param0);
 void lexer___Token___text__eq(val_t  self, val_t  param0);
 #define LOCATE_lexer___Token___text__eq "lexer::Token::text="
-#define ATTR_lexer___Token____filename(recv) ATTR(recv, COLOR_lexer___Token____filename)
 typedef val_t (* lexer___Token___filename_t)(val_t  self);
 val_t lexer___Token___filename(val_t  self);
 #define LOCATE_lexer___Token___filename "lexer::Token::filename"
-#define ATTR_lexer___Token____line(recv) ATTR(recv, COLOR_lexer___Token____line)
 typedef val_t (* lexer___Token___line_t)(val_t  self);
 val_t lexer___Token___line(val_t  self);
 #define LOCATE_lexer___Token___line "lexer::Token::line"
-#define ATTR_lexer___Token____pos(recv) ATTR(recv, COLOR_lexer___Token____pos)
 typedef val_t (* lexer___Token___pos_t)(val_t  self);
 val_t lexer___Token___pos(val_t  self);
 #define LOCATE_lexer___Token___pos "lexer::Token::pos"
@@ -840,7 +836,6 @@ void lexer___EOF___init(val_t  self, val_t  param0, val_t  param1, val_t  param2
 #define LOCATE_lexer___EOF___init "lexer::EOF::init"
 val_t NEW_EOF_lexer___EOF___init(val_t p0, val_t p1, val_t p2);
 val_t NEW_PError_parser_nodes___PError___noinit();
-#define ATTR_lexer___PError____message(recv) ATTR(recv, COLOR_lexer___PError____message)
 typedef val_t (* lexer___PError___message_t)(val_t  self);
 val_t lexer___PError___message(val_t  self);
 #define LOCATE_lexer___PError___message "lexer::PError::message"
@@ -851,20 +846,9 @@ typedef void (* lexer___PError___init_error_t)(val_t  self, val_t  param0, val_t
 void lexer___PError___init_error(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
 #define LOCATE_lexer___PError___init_error "lexer::PError::init_error"
 val_t NEW_PError_lexer___PError___init_error(val_t p0, val_t p1, val_t p2, val_t p3);
-#define ATTR_lexer___Lexer____token(recv) ATTR(recv, COLOR_lexer___Lexer____token)
-#define ATTR_lexer___Lexer____state(recv) ATTR(recv, COLOR_lexer___Lexer____state)
-#define ATTR_lexer___Lexer____filename(recv) ATTR(recv, COLOR_lexer___Lexer____filename)
 typedef val_t (* lexer___Lexer___filename_t)(val_t  self);
 val_t lexer___Lexer___filename(val_t  self);
 #define LOCATE_lexer___Lexer___filename "lexer::Lexer::filename"
-#define ATTR_lexer___Lexer____stream(recv) ATTR(recv, COLOR_lexer___Lexer____stream)
-#define ATTR_lexer___Lexer____stream_buf(recv) ATTR(recv, COLOR_lexer___Lexer____stream_buf)
-#define ATTR_lexer___Lexer____stream_pos(recv) ATTR(recv, COLOR_lexer___Lexer____stream_pos)
-#define ATTR_lexer___Lexer____line(recv) ATTR(recv, COLOR_lexer___Lexer____line)
-#define ATTR_lexer___Lexer____pos(recv) ATTR(recv, COLOR_lexer___Lexer____pos)
-#define ATTR_lexer___Lexer____cr(recv) ATTR(recv, COLOR_lexer___Lexer____cr)
-#define ATTR_lexer___Lexer____eof(recv) ATTR(recv, COLOR_lexer___Lexer____eof)
-#define ATTR_lexer___Lexer____text(recv) ATTR(recv, COLOR_lexer___Lexer____text)
 typedef val_t (* lexer___Lexer___state_initial_t)(val_t  self);
 val_t lexer___Lexer___state_initial(val_t  self);
 #define LOCATE_lexer___Lexer___state_initial "lexer::Lexer::state_initial"
@@ -887,14 +871,12 @@ val_t lexer___Lexer___get_char(val_t  self);
 typedef void (* lexer___Lexer___push_back_t)(val_t  self, val_t  param0);
 void lexer___Lexer___push_back(val_t  self, val_t  param0);
 #define LOCATE_lexer___Lexer___push_back "lexer::Lexer::push_back"
-#define ATTR_lexer___Lexer____goto_table(recv) ATTR(recv, COLOR_lexer___Lexer____goto_table)
 typedef void (* lexer___Lexer___build_goto_table_t)(val_t  self);
 void lexer___Lexer___build_goto_table(val_t  self);
 #define LOCATE_lexer___Lexer___build_goto_table "lexer::Lexer::build_goto_table"
 typedef val_t (* lexer___Lexer___nil_array_t)(val_t  self);
 val_t lexer___Lexer___nil_array(val_t  self);
 #define LOCATE_lexer___Lexer___nil_array "lexer::Lexer::nil_array"
-#define ATTR_lexer___Lexer____accept_table(recv) ATTR(recv, COLOR_lexer___Lexer____accept_table)
 typedef void (* lexer___Lexer___build_accept_table_t)(val_t  self);
 void lexer___Lexer___build_accept_table(val_t  self);
 #define LOCATE_lexer___Lexer___build_accept_table "lexer::Lexer::build_accept_table"
index f137903..0e767ae 100644 (file)
@@ -26,7 +26,7 @@ val_t list___List___is_empty(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_list___List____head(variable[2]) /*List::_head*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[1] = variable[2];
   goto return_label1;
   return_label1: while(false);
@@ -45,10 +45,10 @@ val_t list___List___length(val_t  self) {
   variable[4] = ATTR_list___List____head(variable[4]) /*List::_head*/;
   variable[3] = variable[4];
   while (true) { /*while*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int( TAG_Int(1))) /*l*/;
-    variable[4] = ((list___ListNode___next_t)CALL( variable[3] /*t*/,COLOR_list___ListNode___next))( variable[3] /*t*/) /*ListNode::next*/;
+    variable[4] = CALL_list___ListNode___next( variable[3] /*t*/)( variable[3] /*t*/) /*ListNode::next*/;
     variable[3] = variable[4] /*t=*/;
     continue_3: while(0);
   }
@@ -70,8 +70,8 @@ val_t list___List___has(val_t  self, val_t  param0) {
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_list___List____head(variable[4]) /*List::_head*/;
-  variable[3] = ((list___List___search_node_after_t)CALL(variable[3],COLOR_list___List___search_node_after))(variable[3],  variable[1] /*e*/, variable[4]) /*List::search_node_after*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_list___List___search_node_after(variable[3])(variable[3],  variable[1] /*e*/, variable[4]) /*List::search_node_after*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[2] = variable[3];
   goto return_label4;
   return_label4: while(false);
@@ -90,15 +90,15 @@ val_t list___List___has_only(val_t  self, val_t  param0) {
   variable[4] = ATTR_list___List____head(variable[4]) /*List::_head*/;
   variable[3] = variable[4];
   while (true) { /*while*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*node*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*node*/)( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
-    variable[4] = ((abstract_collection___Container___item_t)CALL( variable[3] /*node*/,COLOR_abstract_collection___Container___item))( variable[3] /*node*/) /*Container::item*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*e*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*e*/) /*Object::==*/)))))));
+    variable[4] = CALL_abstract_collection___Container___item( variable[3] /*node*/)( variable[3] /*node*/) /*Container::item*/;
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*e*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*e*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label5;
     }
-    variable[4] = ((list___ListNode___next_t)CALL( variable[3] /*node*/,COLOR_list___ListNode___next))( variable[3] /*node*/) /*ListNode::next*/;
+    variable[4] = CALL_list___ListNode___next( variable[3] /*node*/)( variable[3] /*node*/) /*ListNode::next*/;
     variable[3] = variable[4] /*node=*/;
     continue_6: while(0);
   }
@@ -122,14 +122,14 @@ val_t list___List___count(val_t  self, val_t  param0) {
   variable[5] = ATTR_list___List____head(variable[5]) /*List::_head*/;
   variable[4] = variable[5];
   while (true) { /*while*/
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*node*/ ==  NIT_NULL /*null*/) || (( variable[4] /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*node*/,COLOR_kernel___Object_____eqeq))( variable[4] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*node*/ ==  NIT_NULL /*null*/) || (( variable[4] /*node*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*node*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*node*/)( variable[4] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
-    variable[5] = ((abstract_collection___Container___item_t)CALL( variable[4] /*node*/,COLOR_abstract_collection___Container___item))( variable[4] /*node*/) /*Container::item*/;
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  variable[1] /*e*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  variable[1] /*e*/) /*Object::==*/)))))));
+    variable[5] = CALL_abstract_collection___Container___item( variable[4] /*node*/)( variable[4] /*node*/) /*Container::item*/;
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  variable[1] /*e*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], variable[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  variable[1] /*e*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*nb*/;
     }
-    variable[5] = ((list___ListNode___next_t)CALL( variable[4] /*node*/,COLOR_list___ListNode___next))( variable[4] /*node*/) /*ListNode::next*/;
+    variable[5] = CALL_list___ListNode___next( variable[4] /*node*/)( variable[4] /*node*/) /*ListNode::next*/;
     variable[4] = variable[5] /*node=*/;
     continue_8: while(0);
   }
@@ -149,7 +149,7 @@ val_t list___List___first(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_list___List____head(variable[2]) /*List::_head*/;
-  variable[2] = ((abstract_collection___Container___item_t)CALL(variable[2],COLOR_abstract_collection___Container___item))(variable[2]) /*Container::item*/;
+  variable[2] = CALL_abstract_collection___Container___item(variable[2])(variable[2]) /*Container::item*/;
   variable[1] = variable[2];
   goto return_label9;
   return_label9: while(false);
@@ -182,12 +182,12 @@ void list___List___remove(val_t  self, val_t  param0) {
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_list___List____head(variable[5]) /*List::_head*/;
-  variable[4] = ((list___List___search_node_after_t)CALL(variable[4],COLOR_list___List___search_node_after))(variable[4],  variable[1] /*e*/, variable[5]) /*List::search_node_after*/;
+  variable[4] = CALL_list___List___search_node_after(variable[4])(variable[4],  variable[1] /*e*/, variable[5]) /*List::search_node_after*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*node*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*node*/)( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((list___List___remove_node_t)CALL(variable[4],COLOR_list___List___remove_node))(variable[4],  variable[3] /*node*/) /*List::remove_node*/;
+    CALL_list___List___remove_node(variable[4])(variable[4],  variable[3] /*node*/) /*List::remove_node*/;
   }
   return_label11: while(false);
   tracehead = trace.prev;
@@ -202,8 +202,8 @@ val_t list___List_____bra(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((list___List___get_node_t)CALL(variable[3],COLOR_list___List___get_node))(variable[3],  variable[1] /*index*/) /*List::get_node*/;
-  variable[3] = ((abstract_collection___Container___item_t)CALL(variable[3],COLOR_abstract_collection___Container___item))(variable[3]) /*Container::item*/;
+  variable[3] = CALL_list___List___get_node(variable[3])(variable[3],  variable[1] /*index*/) /*List::get_node*/;
+  variable[3] = CALL_abstract_collection___Container___item(variable[3])(variable[3]) /*Container::item*/;
   variable[2] = variable[3];
   goto return_label12;
   return_label12: while(false);
@@ -220,8 +220,8 @@ void list___List_____braeq(val_t  self, val_t  param0, val_t  param1) {
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((list___List___get_node_t)CALL(variable[4],COLOR_list___List___get_node))(variable[4],  variable[1] /*index*/) /*List::get_node*/;
-  ((abstract_collection___Container___item__eq_t)CALL(variable[4],COLOR_abstract_collection___Container___item__eq))(variable[4],  variable[2] /*item*/) /*Container::item=*/;
+  variable[4] = CALL_list___List___get_node(variable[4])(variable[4],  variable[1] /*index*/) /*List::get_node*/;
+  CALL_abstract_collection___Container___item__eq(variable[4])(variable[4],  variable[2] /*item*/) /*Container::item=*/;
   return_label13: while(false);
   tracehead = trace.prev;
   return;
@@ -235,8 +235,8 @@ val_t list___List___has_key(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((list___List___get_node_t)CALL(variable[3],COLOR_list___List___get_node))(variable[3],  variable[1] /*index*/) /*List::get_node*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_list___List___get_node(variable[3])(variable[3],  variable[1] /*index*/) /*List::get_node*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[2] = variable[3];
   goto return_label14;
   return_label14: while(false);
@@ -252,12 +252,12 @@ void list___List___remove_at(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((list___List___get_node_t)CALL(variable[4],COLOR_list___List___get_node))(variable[4],  variable[1] /*i*/) /*List::get_node*/;
+  variable[4] = CALL_list___List___get_node(variable[4])(variable[4],  variable[1] /*i*/) /*List::get_node*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*node*/,COLOR_kernel___Object_____eqeq))( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*node*/ ==  NIT_NULL /*null*/) || (( variable[3] /*node*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*node*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*node*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*node*/)( variable[3] /*node*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((list___List___remove_node_t)CALL(variable[4],COLOR_list___List___remove_node))(variable[4],  variable[3] /*node*/) /*List::remove_node*/;
+    CALL_list___List___remove_node(variable[4])(variable[4],  variable[3] /*node*/) /*List::remove_node*/;
   }
   return_label15: while(false);
   tracehead = trace.prev;
@@ -273,7 +273,7 @@ void list___List___first__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_list___List____head(variable[3]) /*List::_head*/;
-  ((abstract_collection___Container___item__eq_t)CALL(variable[3],COLOR_abstract_collection___Container___item__eq))(variable[3],  variable[1] /*e*/) /*Container::item=*/;
+  CALL_abstract_collection___Container___item__eq(variable[3])(variable[3],  variable[1] /*e*/) /*Container::item=*/;
   return_label16: while(false);
   tracehead = trace.prev;
   return;
@@ -287,7 +287,7 @@ val_t list___List___last(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_list___List____tail(variable[2]) /*List::_tail*/;
-  variable[2] = ((abstract_collection___Container___item_t)CALL(variable[2],COLOR_abstract_collection___Container___item))(variable[2]) /*Container::item*/;
+  variable[2] = CALL_abstract_collection___Container___item(variable[2])(variable[2]) /*Container::item*/;
   variable[1] = variable[2];
   goto return_label17;
   return_label17: while(false);
@@ -304,7 +304,7 @@ void list___List___last__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_list___List____tail(variable[3]) /*List::_tail*/;
-  ((abstract_collection___Container___item__eq_t)CALL(variable[3],COLOR_abstract_collection___Container___item__eq))(variable[3],  variable[1] /*e*/) /*Container::item=*/;
+  CALL_abstract_collection___Container___item__eq(variable[3])(variable[3],  variable[1] /*e*/) /*Container::item=*/;
   return_label18: while(false);
   tracehead = trace.prev;
   return;
@@ -321,17 +321,17 @@ void list___List___push(val_t  self, val_t  param0) {
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_list___List____tail(variable[4]) /*List::_tail*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     ATTR_list___List____head(variable[4]) /*List::_head*/ =  variable[3] /*node*/;
   } else { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_list___List____tail(variable[4]) /*List::_tail*/;
-    ((list___ListNode___next__eq_t)CALL(variable[4],COLOR_list___ListNode___next__eq))(variable[4],  variable[3] /*node*/) /*ListNode::next=*/;
+    CALL_list___ListNode___next__eq(variable[4])(variable[4],  variable[3] /*node*/) /*ListNode::next=*/;
     variable[4] = variable[0];
     variable[4] = ATTR_list___List____tail(variable[4]) /*List::_tail*/;
-    ((list___ListNode___prev__eq_t)CALL( variable[3] /*node*/,COLOR_list___ListNode___prev__eq))( variable[3] /*node*/, variable[4]) /*ListNode::prev=*/;
+    CALL_list___ListNode___prev__eq( variable[3] /*node*/)( variable[3] /*node*/, variable[4]) /*ListNode::prev=*/;
   }
   variable[4] = variable[0];
   ATTR_list___List____tail(variable[4]) /*List::_tail*/ =  variable[3] /*node*/;
@@ -350,21 +350,21 @@ val_t list___List___pop(val_t  self) {
   variable[3] = ATTR_list___List____tail(variable[3]) /*List::_tail*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[4] = ((list___ListNode___prev_t)CALL( variable[2] /*node*/,COLOR_list___ListNode___prev))( variable[2] /*node*/) /*ListNode::prev*/;
+  variable[4] = CALL_list___ListNode___prev( variable[2] /*node*/)( variable[2] /*node*/) /*ListNode::prev*/;
   ATTR_list___List____tail(variable[3]) /*List::_tail*/ = variable[4];
-  ((list___ListNode___prev__eq_t)CALL( variable[2] /*node*/,COLOR_list___ListNode___prev__eq))( variable[2] /*node*/,  NIT_NULL /*null*/) /*ListNode::prev=*/;
+  CALL_list___ListNode___prev__eq( variable[2] /*node*/)( variable[2] /*node*/,  NIT_NULL /*null*/) /*ListNode::prev=*/;
   variable[3] = variable[0];
   variable[3] = ATTR_list___List____tail(variable[3]) /*List::_tail*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     ATTR_list___List____head(variable[3]) /*List::_head*/ =  NIT_NULL /*null*/;
   } else { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_list___List____tail(variable[3]) /*List::_tail*/;
-    ((list___ListNode___next__eq_t)CALL(variable[3],COLOR_list___ListNode___next__eq))(variable[3],  NIT_NULL /*null*/) /*ListNode::next=*/;
+    CALL_list___ListNode___next__eq(variable[3])(variable[3],  NIT_NULL /*null*/) /*ListNode::next=*/;
   }
-  variable[3] = ((abstract_collection___Container___item_t)CALL( variable[2] /*node*/,COLOR_abstract_collection___Container___item))( variable[2] /*node*/) /*Container::item*/;
+  variable[3] = CALL_abstract_collection___Container___item( variable[2] /*node*/)( variable[2] /*node*/) /*Container::item*/;
   variable[1] = variable[3];
   goto return_label20;
   return_label20: while(false);
@@ -383,17 +383,17 @@ void list___List___unshift(val_t  self, val_t  param0) {
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_list___List____head(variable[4]) /*List::_head*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     ATTR_list___List____tail(variable[4]) /*List::_tail*/ =  variable[3] /*node*/;
   } else { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_list___List____head(variable[4]) /*List::_head*/;
-    ((list___ListNode___next__eq_t)CALL( variable[3] /*node*/,COLOR_list___ListNode___next__eq))( variable[3] /*node*/, variable[4]) /*ListNode::next=*/;
+    CALL_list___ListNode___next__eq( variable[3] /*node*/)( variable[3] /*node*/, variable[4]) /*ListNode::next=*/;
     variable[4] = variable[0];
     variable[4] = ATTR_list___List____head(variable[4]) /*List::_head*/;
-    ((list___ListNode___prev__eq_t)CALL(variable[4],COLOR_list___ListNode___prev__eq))(variable[4],  variable[3] /*node*/) /*ListNode::prev=*/;
+    CALL_list___ListNode___prev__eq(variable[4])(variable[4],  variable[3] /*node*/) /*ListNode::prev=*/;
   }
   variable[4] = variable[0];
   ATTR_list___List____head(variable[4]) /*List::_head*/ =  variable[3] /*node*/;
@@ -412,21 +412,21 @@ val_t list___List___shift(val_t  self) {
   variable[3] = ATTR_list___List____head(variable[3]) /*List::_head*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[4] = ((list___ListNode___next_t)CALL( variable[2] /*node*/,COLOR_list___ListNode___next))( variable[2] /*node*/) /*ListNode::next*/;
+  variable[4] = CALL_list___ListNode___next( variable[2] /*node*/)( variable[2] /*node*/) /*ListNode::next*/;
   ATTR_list___List____head(variable[3]) /*List::_head*/ = variable[4];
-  ((list___ListNode___next__eq_t)CALL( variable[2] /*node*/,COLOR_list___ListNode___next__eq))( variable[2] /*node*/,  NIT_NULL /*null*/) /*ListNode::next=*/;
+  CALL_list___ListNode___next__eq( variable[2] /*node*/)( variable[2] /*node*/,  NIT_NULL /*null*/) /*ListNode::next=*/;
   variable[3] = variable[0];
   variable[3] = ATTR_list___List____head(variable[3]) /*List::_head*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     ATTR_list___List____tail(variable[3]) /*List::_tail*/ =  NIT_NULL /*null*/;
   } else { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_list___List____head(variable[3]) /*List::_head*/;
-    ((list___ListNode___prev__eq_t)CALL(variable[3],COLOR_list___ListNode___prev__eq))(variable[3],  NIT_NULL /*null*/) /*ListNode::prev=*/;
+    CALL_list___ListNode___prev__eq(variable[3])(variable[3],  NIT_NULL /*null*/) /*ListNode::prev=*/;
   }
-  variable[3] = ((abstract_collection___Container___item_t)CALL( variable[2] /*node*/,COLOR_abstract_collection___Container___item))( variable[2] /*node*/) /*Container::item*/;
+  variable[3] = CALL_abstract_collection___Container___item( variable[2] /*node*/)( variable[2] /*node*/) /*Container::item*/;
   variable[1] = variable[3];
   goto return_label22;
   return_label22: while(false);
@@ -443,31 +443,31 @@ void list___List___link(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_list___List____tail(variable[3]) /*List::_tail*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = ATTR_list___List____head( variable[1] /*l*/) /*List::_head*/;
     ATTR_list___List____head(variable[3]) /*List::_head*/ = variable[4];
   } else { /*if*/
     variable[3] = ATTR_list___List____head( variable[1] /*l*/) /*List::_head*/;
-    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[3] = variable[0];
       variable[3] = ATTR_list___List____tail(variable[3]) /*List::_tail*/;
       variable[4] = ATTR_list___List____head( variable[1] /*l*/) /*List::_head*/;
-      ((list___ListNode___next__eq_t)CALL(variable[3],COLOR_list___ListNode___next__eq))(variable[3], variable[4]) /*ListNode::next=*/;
+      CALL_list___ListNode___next__eq(variable[3])(variable[3], variable[4]) /*ListNode::next=*/;
       variable[3] = variable[0];
       variable[3] = ATTR_list___List____tail(variable[3]) /*List::_tail*/;
-      variable[3] = ((list___ListNode___next_t)CALL(variable[3],COLOR_list___ListNode___next))(variable[3]) /*ListNode::next*/;
+      variable[3] = CALL_list___ListNode___next(variable[3])(variable[3]) /*ListNode::next*/;
       variable[4] = variable[0];
       variable[4] = ATTR_list___List____tail(variable[4]) /*List::_tail*/;
-      ((list___ListNode___prev__eq_t)CALL(variable[3],COLOR_list___ListNode___prev__eq))(variable[3], variable[4]) /*ListNode::prev=*/;
+      CALL_list___ListNode___prev__eq(variable[3])(variable[3], variable[4]) /*ListNode::prev=*/;
     }
   }
   variable[3] = variable[0];
   variable[4] = ATTR_list___List____tail( variable[1] /*l*/) /*List::_tail*/;
   ATTR_list___List____tail(variable[3]) /*List::_tail*/ = variable[4];
-  ((list___List___clear_t)CALL( variable[1] /*l*/,COLOR_abstract_collection___RemovableCollection___clear))( variable[1] /*l*/) /*List::clear*/;
+  CALL_abstract_collection___RemovableCollection___clear( variable[1] /*l*/)( variable[1] /*l*/) /*List::clear*/;
   return_label23: while(false);
   tracehead = trace.prev;
   return;
@@ -495,7 +495,7 @@ void list___List___from(val_t  self, val_t  param0, int* init_table) {
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_List].i]) return;
   variable[3] = variable[0];
-  ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3],  variable[1] /*coll*/) /*IndexedCollection::append*/;
+  CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3],  variable[1] /*coll*/) /*IndexedCollection::append*/;
   return_label25: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_List].i] = 1;
   tracehead = trace.prev;
@@ -518,14 +518,14 @@ val_t list___List___get_node(val_t  self, val_t  param0) {
     goto return_label26;
   }
   while (true) { /*while*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n*/)( variable[3] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[5] = variable[4];
     if (UNTAG_Bool(variable[5])) { /* and */
       variable[5] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)>UNTAG_Int( TAG_Int(0)));
     }
     variable[4] = variable[5];
     if (!UNTAG_Bool(variable[4])) break; /* while*/
-    variable[4] = ((list___ListNode___next_t)CALL( variable[3] /*n*/,COLOR_list___ListNode___next))( variable[3] /*n*/) /*ListNode::next*/;
+    variable[4] = CALL_list___ListNode___next( variable[3] /*n*/)( variable[3] /*n*/) /*ListNode::next*/;
     variable[3] = variable[4] /*n=*/;
     variable[1] = TAG_Int(UNTAG_Int(variable[1])-UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_27: while(0);
@@ -548,15 +548,15 @@ val_t list___List___search_node_after(val_t  self, val_t  param0, val_t  param1)
   variable[2] =  param1;
   variable[4] =  variable[2] /*after*/;
   while (true) { /*while*/
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n*/)( variable[4] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[6] = variable[5];
     if (UNTAG_Bool(variable[6])) { /* and */
-      variable[6] = ((abstract_collection___Container___item_t)CALL( variable[4] /*n*/,COLOR_abstract_collection___Container___item))( variable[4] /*n*/) /*Container::item*/;
-      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*e*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*e*/) /*Object::==*/)))))));
+      variable[6] = CALL_abstract_collection___Container___item( variable[4] /*n*/)( variable[4] /*n*/) /*Container::item*/;
+      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[1] /*e*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*e*/) /*Object::==*/)))))));
     }
     variable[5] = variable[6];
     if (!UNTAG_Bool(variable[5])) break; /* while*/
-    variable[5] = ((list___ListNode___next_t)CALL( variable[4] /*n*/,COLOR_list___ListNode___next))( variable[4] /*n*/) /*ListNode::next*/;
+    variable[5] = CALL_list___ListNode___next( variable[4] /*n*/)( variable[4] /*n*/) /*ListNode::next*/;
     variable[4] = variable[5] /*n=*/;
     continue_29: while(0);
   }
@@ -575,37 +575,37 @@ void list___List___remove_node(val_t  self, val_t  param0) {
   trace.file = LOCATE_list;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((list___ListNode___prev_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___prev))( variable[1] /*node*/) /*ListNode::prev*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_list___ListNode___prev( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::prev*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[4] = ((list___ListNode___next_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___next))( variable[1] /*node*/) /*ListNode::next*/;
+    variable[4] = CALL_list___ListNode___next( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::next*/;
     ATTR_list___List____head(variable[3]) /*List::_head*/ = variable[4];
-    variable[3] = ((list___ListNode___next_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___next))( variable[1] /*node*/) /*ListNode::next*/;
-    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[3] = CALL_list___ListNode___next( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::next*/;
+    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[3] = variable[0];
       ATTR_list___List____tail(variable[3]) /*List::_tail*/ =  NIT_NULL /*null*/;
     } else { /*if*/
-      variable[3] = ((list___ListNode___next_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___next))( variable[1] /*node*/) /*ListNode::next*/;
-      ((list___ListNode___prev__eq_t)CALL(variable[3],COLOR_list___ListNode___prev__eq))(variable[3],  NIT_NULL /*null*/) /*ListNode::prev=*/;
+      variable[3] = CALL_list___ListNode___next( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::next*/;
+      CALL_list___ListNode___prev__eq(variable[3])(variable[3],  NIT_NULL /*null*/) /*ListNode::prev=*/;
     }
   } else { /*if*/
-    variable[3] = ((list___ListNode___next_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___next))( variable[1] /*node*/) /*ListNode::next*/;
-    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[3] = CALL_list___ListNode___next( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::next*/;
+    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[3] = variable[0];
-      variable[4] = ((list___ListNode___prev_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___prev))( variable[1] /*node*/) /*ListNode::prev*/;
+      variable[4] = CALL_list___ListNode___prev( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::prev*/;
       ATTR_list___List____tail(variable[3]) /*List::_tail*/ = variable[4];
-      variable[3] = ((list___ListNode___prev_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___prev))( variable[1] /*node*/) /*ListNode::prev*/;
-      ((list___ListNode___next__eq_t)CALL(variable[3],COLOR_list___ListNode___next__eq))(variable[3],  NIT_NULL /*null*/) /*ListNode::next=*/;
+      variable[3] = CALL_list___ListNode___prev( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::prev*/;
+      CALL_list___ListNode___next__eq(variable[3])(variable[3],  NIT_NULL /*null*/) /*ListNode::next=*/;
     } else { /*if*/
-      variable[3] = ((list___ListNode___prev_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___prev))( variable[1] /*node*/) /*ListNode::prev*/;
-      variable[4] = ((list___ListNode___next_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___next))( variable[1] /*node*/) /*ListNode::next*/;
-      ((list___ListNode___next__eq_t)CALL(variable[3],COLOR_list___ListNode___next__eq))(variable[3], variable[4]) /*ListNode::next=*/;
-      variable[3] = ((list___ListNode___next_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___next))( variable[1] /*node*/) /*ListNode::next*/;
-      variable[4] = ((list___ListNode___prev_t)CALL( variable[1] /*node*/,COLOR_list___ListNode___prev))( variable[1] /*node*/) /*ListNode::prev*/;
-      ((list___ListNode___prev__eq_t)CALL(variable[3],COLOR_list___ListNode___prev__eq))(variable[3], variable[4]) /*ListNode::prev=*/;
+      variable[3] = CALL_list___ListNode___prev( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::prev*/;
+      variable[4] = CALL_list___ListNode___next( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::next*/;
+      CALL_list___ListNode___next__eq(variable[3])(variable[3], variable[4]) /*ListNode::next=*/;
+      variable[3] = CALL_list___ListNode___next( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::next*/;
+      variable[4] = CALL_list___ListNode___prev( variable[1] /*node*/)( variable[1] /*node*/) /*ListNode::prev*/;
+      CALL_list___ListNode___prev__eq(variable[3])(variable[3], variable[4]) /*ListNode::prev=*/;
     }
   }
   return_label30: while(false);
@@ -623,18 +623,18 @@ void list___List___insert_before(val_t  self, val_t  param0, val_t  param1) {
   variable[2] =  param1;
   variable[5] = NEW_ListNode_list___ListNode___init( variable[1] /*element*/); /*new ListNode[E]*/
   variable[4] = variable[5];
-  variable[6] = ((list___ListNode___prev_t)CALL( variable[2] /*node*/,COLOR_list___ListNode___prev))( variable[2] /*node*/) /*ListNode::prev*/;
+  variable[6] = CALL_list___ListNode___prev( variable[2] /*node*/)( variable[2] /*node*/) /*ListNode::prev*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(( variable[5] /*prev*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prev*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prev*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prev*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prev*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[6] = TAG_Bool(( variable[5] /*prev*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prev*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*prev*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prev*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*prev*/)( variable[5] /*prev*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
     ATTR_list___List____head(variable[6]) /*List::_head*/ =  variable[4] /*nnode*/;
   } else { /*if*/
-    ((list___ListNode___next__eq_t)CALL( variable[5] /*prev*/,COLOR_list___ListNode___next__eq))( variable[5] /*prev*/,  variable[4] /*nnode*/) /*ListNode::next=*/;
+    CALL_list___ListNode___next__eq( variable[5] /*prev*/)( variable[5] /*prev*/,  variable[4] /*nnode*/) /*ListNode::next=*/;
   }
-  ((list___ListNode___prev__eq_t)CALL( variable[4] /*nnode*/,COLOR_list___ListNode___prev__eq))( variable[4] /*nnode*/,  variable[5] /*prev*/) /*ListNode::prev=*/;
-  ((list___ListNode___next__eq_t)CALL( variable[4] /*nnode*/,COLOR_list___ListNode___next__eq))( variable[4] /*nnode*/,  variable[2] /*node*/) /*ListNode::next=*/;
-  ((list___ListNode___prev__eq_t)CALL( variable[2] /*node*/,COLOR_list___ListNode___prev__eq))( variable[2] /*node*/,  variable[4] /*nnode*/) /*ListNode::prev=*/;
+  CALL_list___ListNode___prev__eq( variable[4] /*nnode*/)( variable[4] /*nnode*/,  variable[5] /*prev*/) /*ListNode::prev=*/;
+  CALL_list___ListNode___next__eq( variable[4] /*nnode*/)( variable[4] /*nnode*/,  variable[2] /*node*/) /*ListNode::next=*/;
+  CALL_list___ListNode___prev__eq( variable[2] /*node*/)( variable[2] /*node*/,  variable[4] /*nnode*/) /*ListNode::prev=*/;
   return_label31: while(false);
   tracehead = trace.prev;
   return;
@@ -648,7 +648,7 @@ val_t list___ListIterator___item(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_list___ListIterator____node(variable[2]) /*ListIterator::_node*/;
-  variable[2] = ((abstract_collection___Container___item_t)CALL(variable[2],COLOR_abstract_collection___Container___item))(variable[2]) /*Container::item*/;
+  variable[2] = CALL_abstract_collection___Container___item(variable[2])(variable[2]) /*Container::item*/;
   variable[1] = variable[2];
   goto return_label32;
   return_label32: while(false);
@@ -665,7 +665,7 @@ void list___ListIterator___next(val_t  self) {
   variable[2] = variable[0];
   variable[3] = variable[0];
   variable[3] = ATTR_list___ListIterator____node(variable[3]) /*ListIterator::_node*/;
-  variable[3] = ((list___ListNode___next_t)CALL(variable[3],COLOR_list___ListNode___next))(variable[3]) /*ListNode::next*/;
+  variable[3] = CALL_list___ListNode___next(variable[3])(variable[3]) /*ListNode::next*/;
   ATTR_list___ListIterator____node(variable[2]) /*ListIterator::_node*/ = variable[3];
   variable[2] = variable[0];
   ATTR_list___ListIterator____index(variable[2]) /*ListIterator::_index*/ = TAG_Int(UNTAG_Int(ATTR_list___ListIterator____index(variable[2]) /*ListIterator::_index*/)+UNTAG_Int( TAG_Int(1)));
@@ -682,7 +682,7 @@ val_t list___ListIterator___is_ok(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_list___ListIterator____node(variable[2]) /*ListIterator::_node*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[1] =  TAG_Bool(!UNTAG_Bool(variable[2]));
   goto return_label34;
   return_label34: while(false);
@@ -699,7 +699,7 @@ void list___ListIterator___item__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_list___ListIterator____node(variable[3]) /*ListIterator::_node*/;
-  ((abstract_collection___Container___item__eq_t)CALL(variable[3],COLOR_abstract_collection___Container___item__eq))(variable[3],  variable[1] /*e*/) /*Container::item=*/;
+  CALL_abstract_collection___Container___item__eq(variable[3])(variable[3],  variable[1] /*e*/) /*Container::item=*/;
   return_label35: while(false);
   tracehead = trace.prev;
   return;
@@ -740,9 +740,9 @@ void list___ListNode___init(val_t  self, val_t  param0, int* init_table) {
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ListNode].i]) return;
-  ((abstract_collection___Container___init_t)CALL(variable[0],COLOR_abstract_collection___Container___init))(variable[0], variable[1], init_table /*YYY*/) /*Container::init*/;
+  CALL_abstract_collection___Container___init(variable[0])(variable[0], variable[1], init_table /*YYY*/) /*Container::init*/;
   variable[3] = variable[0];
-  ((abstract_collection___Container___item__eq_t)CALL(variable[3],COLOR_abstract_collection___Container___item__eq))(variable[3],  variable[1] /*i*/) /*Container::item=*/;
+  CALL_abstract_collection___Container___item__eq(variable[3])(variable[3],  variable[1] /*i*/) /*Container::item=*/;
   return_label37: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ListNode].i] = 1;
   tracehead = trace.prev;
index 321af8a..a5f0181 100644 (file)
@@ -11,34 +11,34 @@ extern const classtable_elt_t VFT_ListIterator[];
 extern const classtable_elt_t VFT_ListNode[];
 extern const char *LOCATE_list;
 extern const int SFT_list[];
-#define ID_List SFT_list[0]
-#define COLOR_List SFT_list[1]
-#define COLOR_list___List____head SFT_list[2]
-#define COLOR_list___List____tail SFT_list[3]
-#define INIT_TABLE_POS_List SFT_list[4]
-#define COLOR_list___List___link SFT_list[5]
-#define COLOR_list___List___init SFT_list[6]
-#define COLOR_list___List___from SFT_list[7]
-#define COLOR_list___List___get_node SFT_list[8]
-#define COLOR_list___List___search_node_after SFT_list[9]
-#define COLOR_list___List___remove_node SFT_list[10]
-#define COLOR_list___List___insert_before SFT_list[11]
-#define ID_ListIterator SFT_list[12]
-#define COLOR_ListIterator SFT_list[13]
-#define COLOR_list___ListIterator____node SFT_list[14]
-#define COLOR_list___ListIterator____index SFT_list[15]
-#define INIT_TABLE_POS_ListIterator SFT_list[16]
-#define COLOR_list___ListIterator___init SFT_list[17]
-#define ID_ListNode SFT_list[18]
-#define COLOR_ListNode SFT_list[19]
-#define COLOR_list___ListNode____next SFT_list[20]
-#define COLOR_list___ListNode____prev SFT_list[21]
-#define INIT_TABLE_POS_ListNode SFT_list[22]
-#define COLOR_list___ListNode___init SFT_list[23]
-#define COLOR_list___ListNode___next SFT_list[24]
-#define COLOR_list___ListNode___next__eq SFT_list[25]
-#define COLOR_list___ListNode___prev SFT_list[26]
-#define COLOR_list___ListNode___prev__eq SFT_list[27]
+#define ID_List (SFT_list[0])
+#define COLOR_List (SFT_list[1])
+#define ATTR_list___List____head(recv) ATTR(recv, (SFT_list[2] + 0))
+#define ATTR_list___List____tail(recv) ATTR(recv, (SFT_list[2] + 1))
+#define INIT_TABLE_POS_List (SFT_list[3] + 0)
+#define CALL_list___List___link(recv) ((list___List___link_t)CALL((recv), (SFT_list[3] + 1)))
+#define CALL_list___List___init(recv) ((list___List___init_t)CALL((recv), (SFT_list[3] + 2)))
+#define CALL_list___List___from(recv) ((list___List___from_t)CALL((recv), (SFT_list[3] + 3)))
+#define CALL_list___List___get_node(recv) ((list___List___get_node_t)CALL((recv), (SFT_list[3] + 4)))
+#define CALL_list___List___search_node_after(recv) ((list___List___search_node_after_t)CALL((recv), (SFT_list[3] + 5)))
+#define CALL_list___List___remove_node(recv) ((list___List___remove_node_t)CALL((recv), (SFT_list[3] + 6)))
+#define CALL_list___List___insert_before(recv) ((list___List___insert_before_t)CALL((recv), (SFT_list[3] + 7)))
+#define ID_ListIterator (SFT_list[4])
+#define COLOR_ListIterator (SFT_list[5])
+#define ATTR_list___ListIterator____node(recv) ATTR(recv, (SFT_list[6] + 0))
+#define ATTR_list___ListIterator____index(recv) ATTR(recv, (SFT_list[6] + 1))
+#define INIT_TABLE_POS_ListIterator (SFT_list[7] + 0)
+#define CALL_list___ListIterator___init(recv) ((list___ListIterator___init_t)CALL((recv), (SFT_list[7] + 1)))
+#define ID_ListNode (SFT_list[8])
+#define COLOR_ListNode (SFT_list[9])
+#define ATTR_list___ListNode____next(recv) ATTR(recv, (SFT_list[10] + 0))
+#define ATTR_list___ListNode____prev(recv) ATTR(recv, (SFT_list[10] + 1))
+#define INIT_TABLE_POS_ListNode (SFT_list[11] + 0)
+#define CALL_list___ListNode___init(recv) ((list___ListNode___init_t)CALL((recv), (SFT_list[11] + 1)))
+#define CALL_list___ListNode___next(recv) ((list___ListNode___next_t)CALL((recv), (SFT_list[11] + 2)))
+#define CALL_list___ListNode___next__eq(recv) ((list___ListNode___next__eq_t)CALL((recv), (SFT_list[11] + 3)))
+#define CALL_list___ListNode___prev(recv) ((list___ListNode___prev_t)CALL((recv), (SFT_list[11] + 4)))
+#define CALL_list___ListNode___prev__eq(recv) ((list___ListNode___prev__eq_t)CALL((recv), (SFT_list[11] + 5)))
 typedef val_t (* list___List___iterator_t)(val_t  self);
 val_t list___List___iterator(val_t  self);
 #define LOCATE_list___List___iterator "list::List::(abstract_collection::Collection::iterator)"
@@ -110,8 +110,6 @@ typedef void (* list___List___from_t)(val_t  self, val_t  param0, int* init_tabl
 void list___List___from(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_list___List___from "list::List::from"
 val_t NEW_List_list___List___from(val_t p0);
-#define ATTR_list___List____head(recv) ATTR(recv, COLOR_list___List____head)
-#define ATTR_list___List____tail(recv) ATTR(recv, COLOR_list___List____tail)
 typedef val_t (* list___List___get_node_t)(val_t  self, val_t  param0);
 val_t list___List___get_node(val_t  self, val_t  param0);
 #define LOCATE_list___List___get_node "list::List::get_node"
@@ -143,20 +141,16 @@ typedef void (* list___ListIterator___init_t)(val_t  self, val_t  param0, int* i
 void list___ListIterator___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_list___ListIterator___init "list::ListIterator::init"
 val_t NEW_ListIterator_list___ListIterator___init(val_t p0);
-#define ATTR_list___ListIterator____node(recv) ATTR(recv, COLOR_list___ListIterator____node)
-#define ATTR_list___ListIterator____index(recv) ATTR(recv, COLOR_list___ListIterator____index)
 typedef void (* list___ListNode___init_t)(val_t  self, val_t  param0, int* init_table);
 void list___ListNode___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_list___ListNode___init "list::ListNode::init"
 val_t NEW_ListNode_list___ListNode___init(val_t p0);
-#define ATTR_list___ListNode____next(recv) ATTR(recv, COLOR_list___ListNode____next)
 typedef val_t (* list___ListNode___next_t)(val_t  self);
 val_t list___ListNode___next(val_t  self);
 #define LOCATE_list___ListNode___next "list::ListNode::next"
 typedef void (* list___ListNode___next__eq_t)(val_t  self, val_t  param0);
 void list___ListNode___next__eq(val_t  self, val_t  param0);
 #define LOCATE_list___ListNode___next__eq "list::ListNode::next="
-#define ATTR_list___ListNode____prev(recv) ATTR(recv, COLOR_list___ListNode____prev)
 typedef val_t (* list___ListNode___prev_t)(val_t  self);
 val_t list___ListNode___prev(val_t  self);
 #define LOCATE_list___ListNode___prev "list::ListNode::prev"
index 03d9073..87efb76 100644 (file)
@@ -6,22 +6,22 @@
 #include <math_nit.h>
 extern const char *LOCATE_math;
 extern const int SFT_math[];
-#define COLOR_math___Int___rand SFT_math[0]
-#define COLOR_math___Float___sqrt SFT_math[1]
-#define COLOR_math___Float___cos SFT_math[2]
-#define COLOR_math___Float___sin SFT_math[3]
-#define COLOR_math___Float___tan SFT_math[4]
-#define COLOR_math___Float___acos SFT_math[5]
-#define COLOR_math___Float___asin SFT_math[6]
-#define COLOR_math___Float___atan SFT_math[7]
-#define COLOR_math___Float___pow SFT_math[8]
-#define COLOR_math___Float___log SFT_math[9]
-#define COLOR_math___Float___exp SFT_math[10]
-#define COLOR_math___Float___rand SFT_math[11]
-#define COLOR_math___Object___atan2 SFT_math[12]
-#define COLOR_math___Object___pi SFT_math[13]
-#define COLOR_math___Object___srand_from SFT_math[14]
-#define COLOR_math___Object___srand SFT_math[15]
+#define CALL_math___Int___rand(recv) ((math___Int___rand_t)CALL((recv), (SFT_math[0] + 0)))
+#define CALL_math___Float___sqrt(recv) ((math___Float___sqrt_t)CALL((recv), (SFT_math[1] + 0)))
+#define CALL_math___Float___cos(recv) ((math___Float___cos_t)CALL((recv), (SFT_math[1] + 1)))
+#define CALL_math___Float___sin(recv) ((math___Float___sin_t)CALL((recv), (SFT_math[1] + 2)))
+#define CALL_math___Float___tan(recv) ((math___Float___tan_t)CALL((recv), (SFT_math[1] + 3)))
+#define CALL_math___Float___acos(recv) ((math___Float___acos_t)CALL((recv), (SFT_math[1] + 4)))
+#define CALL_math___Float___asin(recv) ((math___Float___asin_t)CALL((recv), (SFT_math[1] + 5)))
+#define CALL_math___Float___atan(recv) ((math___Float___atan_t)CALL((recv), (SFT_math[1] + 6)))
+#define CALL_math___Float___pow(recv) ((math___Float___pow_t)CALL((recv), (SFT_math[1] + 7)))
+#define CALL_math___Float___log(recv) ((math___Float___log_t)CALL((recv), (SFT_math[1] + 8)))
+#define CALL_math___Float___exp(recv) ((math___Float___exp_t)CALL((recv), (SFT_math[1] + 9)))
+#define CALL_math___Float___rand(recv) ((math___Float___rand_t)CALL((recv), (SFT_math[1] + 10)))
+#define CALL_math___Object___atan2(recv) ((math___Object___atan2_t)CALL((recv), (SFT_math[2] + 0)))
+#define CALL_math___Object___pi(recv) ((math___Object___pi_t)CALL((recv), (SFT_math[2] + 1)))
+#define CALL_math___Object___srand_from(recv) ((math___Object___srand_from_t)CALL((recv), (SFT_math[2] + 2)))
+#define CALL_math___Object___srand(recv) ((math___Object___srand_t)CALL((recv), (SFT_math[2] + 3)))
 typedef val_t (* math___Int___rand_t)(val_t  self);
 val_t math___Int___rand(val_t  self);
 #define LOCATE_math___Int___rand "math::Int::rand"
index ba767ca..0a62eb2 100644 (file)
@@ -9,11 +9,11 @@ val_t mmbuilder___CSHSorter___compare(val_t  self, val_t  param0, val_t  param1)
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[1] /*a*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[1] /*a*/) /*MMLocalClass::cshe*/;
-  variable[4] = ((partial_order___PartialOrderElement___rank_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___rank))(variable[4]) /*PartialOrderElement::rank*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[2] /*b*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[2] /*b*/) /*MMLocalClass::cshe*/;
-  variable[5] = ((partial_order___PartialOrderElement___rank_t)CALL(variable[5],COLOR_partial_order___PartialOrderElement___rank))(variable[5]) /*PartialOrderElement::rank*/;
-  variable[4] = ((kernel___Int_____leqg_t)CALL(variable[4],COLOR_kernel___Comparable_____leqg))(variable[4], variable[5]) /*Int::<=>*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[1] /*a*/)( variable[1] /*a*/) /*MMLocalClass::cshe*/;
+  variable[4] = CALL_partial_order___PartialOrderElement___rank(variable[4])(variable[4]) /*PartialOrderElement::rank*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[2] /*b*/)( variable[2] /*b*/) /*MMLocalClass::cshe*/;
+  variable[5] = CALL_partial_order___PartialOrderElement___rank(variable[5])(variable[5]) /*PartialOrderElement::rank*/;
+  variable[4] = CALL_kernel___Comparable_____leqg(variable[4])(variable[4], variable[5]) /*Int::<=>*/;
   variable[3] = variable[4];
   goto return_label0;
   return_label0: while(false);
@@ -43,62 +43,62 @@ void mmbuilder___MMSrcModule___do_mmbuilder(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((inheritance___MMModule___import_global_classes_t)CALL(variable[3],COLOR_inheritance___MMModule___import_global_classes))(variable[3]) /*MMModule::import_global_classes*/;
+  CALL_inheritance___MMModule___import_global_classes(variable[3])(variable[3]) /*MMModule::import_global_classes*/;
   variable[4] = variable[0];
   variable[5] = NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init( variable[1] /*tc*/, variable[4]); /*new ClassBuilderVisitor*/
   variable[4] = variable[5];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMSrcModule___node_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___node))(variable[4]) /*MMSrcModule::node*/;
-  ((mmbuilder___ClassBuilderVisitor___visit_t)CALL( variable[3] /*mmbv*/,COLOR_parser_prod___Visitor___visit))( variable[3] /*mmbv*/, variable[4]) /*ClassBuilderVisitor::visit*/;
-  variable[4] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  variable[4] = CALL_syntax_base___MMSrcModule___node(variable[4])(variable[4]) /*MMSrcModule::node*/;
+  CALL_parser_prod___Visitor___visit( variable[3] /*mmbv*/)( variable[3] /*mmbv*/, variable[4]) /*ClassBuilderVisitor::visit*/;
+  variable[4] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[4] = TAG_Bool(UNTAG_Int(variable[4])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
   }
   variable[4] = variable[0];
-  ((inheritance___MMModule___import_local_classes_t)CALL(variable[4],COLOR_inheritance___MMModule___import_local_classes))(variable[4]) /*MMModule::import_local_classes*/;
+  CALL_inheritance___MMModule___import_local_classes(variable[4])(variable[4]) /*MMModule::import_local_classes*/;
   variable[5] = variable[0];
   variable[6] = NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuilderVisitor___init( variable[1] /*tc*/, variable[5]); /*new ClassSpecializationBuilderVisitor*/
   variable[5] = variable[6];
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___MMSrcModule___node_t)CALL(variable[5],COLOR_syntax_base___MMSrcModule___node))(variable[5]) /*MMSrcModule::node*/;
-  ((mmbuilder___ClassSpecializationBuilderVisitor___visit_t)CALL( variable[4] /*mmbv1*/,COLOR_parser_prod___Visitor___visit))( variable[4] /*mmbv1*/, variable[5]) /*ClassSpecializationBuilderVisitor::visit*/;
-  variable[5] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  variable[5] = CALL_syntax_base___MMSrcModule___node(variable[5])(variable[5]) /*MMSrcModule::node*/;
+  CALL_parser_prod___Visitor___visit( variable[4] /*mmbv1*/)( variable[4] /*mmbv1*/, variable[5]) /*ClassSpecializationBuilderVisitor::visit*/;
+  variable[5] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
   }
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMModule___local_classes_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule___local_classes))(variable[5]) /*MMModule::local_classes*/;
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstractmetamodel___MMModule___local_classes(variable[5])(variable[5]) /*MMModule::local_classes*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = variable[0];
-    variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[7] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[7] /*c*/) /*MMLocalClass::global*/;
-    variable[9] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[9],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[9]) /*MMGlobalClass::intro*/;
-    variable[9] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___module))(variable[9]) /*MMLocalClass::module*/;
-    variable[8] = ((abstractmetamodel___MMModule___visibility_for_t)CALL(variable[8],COLOR_abstractmetamodel___MMModule___visibility_for))(variable[8], variable[9]) /*MMModule::visibility_for*/;
-    variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[7] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[7] /*c*/) /*MMLocalClass::global*/;
-    variable[9] = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL(variable[9],COLOR_abstractmetamodel___MMGlobalClass___visibility_level))(variable[9]) /*MMGlobalClass::visibility_level*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::global*/;
+    variable[9] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[9])(variable[9]) /*MMGlobalClass::intro*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___module(variable[9])(variable[9]) /*MMLocalClass::module*/;
+    variable[8] = CALL_abstractmetamodel___MMModule___visibility_for(variable[8])(variable[8], variable[9]) /*MMModule::visibility_for*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::global*/;
+    variable[9] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[9])(variable[9]) /*MMGlobalClass::visibility_level*/;
     variable[8] = TAG_Bool(UNTAG_Int(variable[8])<UNTAG_Int(variable[9]));
     if (UNTAG_Bool(variable[8])) { /*if*/
       goto continue_3;
     }
-    ((inheritance___MMLocalClass___compute_super_classes_t)CALL( variable[7] /*c*/,COLOR_inheritance___MMLocalClass___compute_super_classes))( variable[7] /*c*/) /*MMLocalClass::compute_super_classes*/;
+    CALL_inheritance___MMLocalClass___compute_super_classes( variable[7] /*c*/)( variable[7] /*c*/) /*MMLocalClass::compute_super_classes*/;
     continue_3: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_3: while(0);
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMModule___class_specialization_hierarchy_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___class_specialization_hierarchy))(variable[6]) /*MMModule::class_specialization_hierarchy*/;
-  variable[6] = ((array___Collection___to_a_t)CALL(variable[6],COLOR_array___Collection___to_a))(variable[6]) /*Collection::to_a*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___class_specialization_hierarchy(variable[6])(variable[6]) /*MMModule::class_specialization_hierarchy*/;
+  variable[6] = CALL_array___Collection___to_a(variable[6])(variable[6]) /*Collection::to_a*/;
   variable[5] = variable[6];
   if (once_bool_4) variable[7] = once_value_4;
   else {
@@ -107,24 +107,24 @@ void mmbuilder___MMSrcModule___do_mmbuilder(val_t  self, val_t  param0) {
     once_bool_4 = true;
   }
   variable[6] = variable[7];
-  ((sorter___AbstractSorter___sort_t)CALL( variable[6] /*sorter*/,COLOR_sorter___AbstractSorter___sort))( variable[6] /*sorter*/,  variable[5] /*classes*/) /*AbstractSorter::sort*/;
+  CALL_sorter___AbstractSorter___sort( variable[6] /*sorter*/)( variable[6] /*sorter*/,  variable[5] /*classes*/) /*AbstractSorter::sort*/;
   variable[8] = variable[0];
   variable[9] = NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init( variable[1] /*tc*/, variable[8]); /*new ClassAncestorBuilder*/
   variable[8] = variable[9];
   variable[7] = variable[8];
-  variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[5] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[5] /*classes*/) /*AbstractArray::iterator*/;
+  variable[8] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
+    variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[9])) break; /*for*/
-    variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
+    variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
     variable[10] = variable[9];
-    ((mmbuilder___MMLocalClass___accept_class_visitor_t)CALL( variable[10] /*c*/,COLOR_mmbuilder___MMLocalClass___accept_class_visitor))( variable[10] /*c*/,  variable[7] /*mmbv1b*/) /*MMLocalClass::accept_class_visitor*/;
-    ((inheritance___MMLocalClass___compute_ancestors_t)CALL( variable[10] /*c*/,COLOR_inheritance___MMLocalClass___compute_ancestors))( variable[10] /*c*/) /*MMLocalClass::compute_ancestors*/;
+    CALL_mmbuilder___MMLocalClass___accept_class_visitor( variable[10] /*c*/)( variable[10] /*c*/,  variable[7] /*mmbv1b*/) /*MMLocalClass::accept_class_visitor*/;
+    CALL_inheritance___MMLocalClass___compute_ancestors( variable[10] /*c*/)( variable[10] /*c*/) /*MMLocalClass::compute_ancestors*/;
     continue_5: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
   }
   break_5: while(0);
-  variable[8] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  variable[8] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[8] = TAG_Bool(UNTAG_Int(variable[8])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
@@ -134,18 +134,18 @@ void mmbuilder___MMSrcModule___do_mmbuilder(val_t  self, val_t  param0) {
   variable[10] = NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init( variable[1] /*tc*/, variable[9]); /*new ClassVerifierVisitor*/
   variable[9] = variable[10];
   variable[8] = variable[9];
-  variable[9] = ((array___AbstractArray___iterator_t)CALL( variable[5] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[5] /*classes*/) /*AbstractArray::iterator*/;
+  variable[9] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[10] = ((array___ArrayIterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*ArrayIterator::is_ok*/;
+    variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[10])) break; /*for*/
-    variable[10] = ((array___ArrayIterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*ArrayIterator::item*/;
+    variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/;
     variable[11] = variable[10];
-    ((mmbuilder___MMLocalClass___accept_class_visitor_t)CALL( variable[11] /*c*/,COLOR_mmbuilder___MMLocalClass___accept_class_visitor))( variable[11] /*c*/,  variable[8] /*mmbv1b*/) /*MMLocalClass::accept_class_visitor*/;
+    CALL_mmbuilder___MMLocalClass___accept_class_visitor( variable[11] /*c*/)( variable[11] /*c*/,  variable[8] /*mmbv1b*/) /*MMLocalClass::accept_class_visitor*/;
     continue_6: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/;
   }
   break_6: while(0);
-  variable[9] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  variable[9] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
@@ -155,44 +155,44 @@ void mmbuilder___MMSrcModule___do_mmbuilder(val_t  self, val_t  param0) {
   variable[11] = NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init( variable[1] /*tc*/, variable[10]); /*new PropertyBuilderVisitor*/
   variable[10] = variable[11];
   variable[9] = variable[10];
-  variable[10] = ((array___AbstractArray___iterator_t)CALL( variable[5] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[5] /*classes*/) /*AbstractArray::iterator*/;
+  variable[10] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+    variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[11])) break; /*for*/
-    variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
     variable[12] = variable[11];
-    ((inheritance___MMLocalClass___inherit_global_properties_t)CALL( variable[12] /*c*/,COLOR_inheritance___MMLocalClass___inherit_global_properties))( variable[12] /*c*/) /*MMLocalClass::inherit_global_properties*/;
-    ((mmbuilder___MMLocalClass___accept_class_visitor_t)CALL( variable[12] /*c*/,COLOR_mmbuilder___MMLocalClass___accept_class_visitor))( variable[12] /*c*/,  variable[9] /*mmbv2*/) /*MMLocalClass::accept_class_visitor*/;
+    CALL_inheritance___MMLocalClass___inherit_global_properties( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::inherit_global_properties*/;
+    CALL_mmbuilder___MMLocalClass___accept_class_visitor( variable[12] /*c*/)( variable[12] /*c*/,  variable[9] /*mmbv2*/) /*MMLocalClass::accept_class_visitor*/;
     variable[13] = TAG_Bool(( variable[12] /*c*/==NIT_NULL) || VAL_ISA( variable[12] /*c*/, COLOR_MMSrcLocalClass, ID_MMSrcLocalClass)) /*cast MMSrcLocalClass*/;
     variable[14] = variable[13];
     if (UNTAG_Bool(variable[14])) { /* and */
-      variable[14] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[12] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[12] /*c*/) /*MMLocalClass::global*/;
-      variable[14] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[14],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[14]) /*MMGlobalClass::intro*/;
-      variable[14] = TAG_Bool((variable[14] ==  variable[12] /*c*/) || ((variable[14] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[14],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[14], variable[12] /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[14],COLOR_kernel___Object_____eqeq))(variable[14],  variable[12] /*c*/) /*Object::==*/)))));
+      variable[14] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/;
+      variable[14] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[14])(variable[14]) /*MMGlobalClass::intro*/;
+      variable[14] = TAG_Bool((variable[14] ==  variable[12] /*c*/) || ((variable[14] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[14])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[14], variable[12] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[14])(variable[14],  variable[12] /*c*/) /*Object::==*/)))));
     }
     variable[13] = variable[14];
     variable[14] = variable[13];
     if (UNTAG_Bool(variable[14])) { /* and */
-      variable[14] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[12] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[12] /*c*/) /*MMLocalClass::global*/;
-      variable[14] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL(variable[14],COLOR_abstractmetamodel___MMGlobalClass___is_universal))(variable[14]) /*MMGlobalClass::is_universal*/;
+      variable[14] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/;
+      variable[14] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable[14])(variable[14]) /*MMGlobalClass::is_universal*/;
       variable[14] =  TAG_Bool(!UNTAG_Bool(variable[14]));
     }
     variable[13] = variable[14];
     variable[14] = variable[13];
     if (UNTAG_Bool(variable[14])) { /* and */
-      variable[14] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[12] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[12] /*c*/) /*MMLocalClass::global*/;
-      variable[14] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL(variable[14],COLOR_abstractmetamodel___MMGlobalClass___is_interface))(variable[14]) /*MMGlobalClass::is_interface*/;
+      variable[14] = CALL_abstractmetamodel___MMLocalClass___global( variable[12] /*c*/)( variable[12] /*c*/) /*MMLocalClass::global*/;
+      variable[14] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable[14])(variable[14]) /*MMGlobalClass::is_interface*/;
       variable[14] =  TAG_Bool(!UNTAG_Bool(variable[14]));
     }
     variable[13] = variable[14];
     if (UNTAG_Bool(variable[13])) { /*if*/
-      ((mmbuilder___MMSrcLocalClass___process_default_constructors_t)CALL( variable[12] /*c*/,COLOR_mmbuilder___MMSrcLocalClass___process_default_constructors))( variable[12] /*c*/,  variable[9] /*mmbv2*/) /*MMSrcLocalClass::process_default_constructors*/;
+      CALL_mmbuilder___MMSrcLocalClass___process_default_constructors( variable[12] /*c*/)( variable[12] /*c*/,  variable[9] /*mmbv2*/) /*MMSrcLocalClass::process_default_constructors*/;
     }
     continue_7: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
   }
   break_7: while(0);
-  variable[10] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  variable[10] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[10] = TAG_Bool(UNTAG_Int(variable[10])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[10])) { /*if*/
     variable[10] = variable[0];
@@ -202,50 +202,50 @@ void mmbuilder___MMSrcModule___do_mmbuilder(val_t  self, val_t  param0) {
   variable[12] = NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init( variable[1] /*tc*/, variable[11]); /*new PropertyVerifierVisitor*/
   variable[11] = variable[12];
   variable[10] = variable[11];
-  variable[11] = ((array___AbstractArray___iterator_t)CALL( variable[5] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[5] /*classes*/) /*AbstractArray::iterator*/;
+  variable[11] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/;
+    variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[12])) break; /*for*/
-    variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/;
+    variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
     variable[13] = variable[12];
-    ((mmbuilder___MMLocalClass___accept_properties_visitor_t)CALL( variable[13] /*c*/,COLOR_mmbuilder___MMLocalClass___accept_properties_visitor))( variable[13] /*c*/,  variable[10] /*mmbv3*/) /*MMLocalClass::accept_properties_visitor*/;
+    CALL_mmbuilder___MMLocalClass___accept_properties_visitor( variable[13] /*c*/)( variable[13] /*c*/,  variable[10] /*mmbv3*/) /*MMLocalClass::accept_properties_visitor*/;
     continue_8: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
   }
   break_8: while(0);
-  variable[11] = ((array___AbstractArray___iterator_t)CALL( variable[5] /*classes*/,COLOR_abstract_collection___Collection___iterator))( variable[5] /*classes*/) /*AbstractArray::iterator*/;
+  variable[11] = CALL_abstract_collection___Collection___iterator( variable[5] /*classes*/)( variable[5] /*classes*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/;
+    variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[12])) break; /*for*/
-    variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/;
+    variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
     variable[13] = variable[12];
-    variable[14] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[13] /*c*/) /*MMLocalClass::global_properties*/;
-    variable[14] = ((abstract_collection___Collection___iterator_t)CALL(variable[14],COLOR_abstract_collection___Collection___iterator))(variable[14]) /*Collection::iterator*/;
+    variable[14] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[13] /*c*/)( variable[13] /*c*/) /*MMLocalClass::global_properties*/;
+    variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[15] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*Iterator::is_ok*/;
+      variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[15])) break; /*for*/
-      variable[15] = ((abstract_collection___Iterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*Iterator::item*/;
+      variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*Iterator::item*/;
       variable[16] = variable[15];
       variable[17] = variable[0];
-      variable[18] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[16] /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[16] /*g*/) /*MMGlobalProperty::intro*/;
-      variable[18] = ((abstractmetamodel___MMLocalProperty___module_t)CALL(variable[18],COLOR_abstractmetamodel___MMLocalProperty___module))(variable[18]) /*MMLocalProperty::module*/;
-      variable[17] = ((abstractmetamodel___MMModule___visibility_for_t)CALL(variable[17],COLOR_abstractmetamodel___MMModule___visibility_for))(variable[17], variable[18]) /*MMModule::visibility_for*/;
-      variable[18] = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL( variable[16] /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))( variable[16] /*g*/) /*MMGlobalProperty::visibility_level*/;
+      variable[18] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[16] /*g*/)( variable[16] /*g*/) /*MMGlobalProperty::intro*/;
+      variable[18] = CALL_abstractmetamodel___MMLocalProperty___module(variable[18])(variable[18]) /*MMLocalProperty::module*/;
+      variable[17] = CALL_abstractmetamodel___MMModule___visibility_for(variable[17])(variable[17], variable[18]) /*MMModule::visibility_for*/;
+      variable[18] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level( variable[16] /*g*/)( variable[16] /*g*/) /*MMGlobalProperty::visibility_level*/;
       variable[17] = TAG_Bool(UNTAG_Int(variable[17])<UNTAG_Int(variable[18]));
       if (UNTAG_Bool(variable[17])) { /*if*/
         goto continue_10;
       }
-      variable[18] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[13] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[13] /*c*/,  variable[16] /*g*/) /*MMLocalClass::[]*/;
+      variable[18] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[13] /*c*/)( variable[13] /*c*/,  variable[16] /*g*/) /*MMLocalClass::[]*/;
       variable[17] = variable[18];
       continue_10: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*Iterator::next*/;
     }
     break_10: while(0);
     continue_9: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
   }
   break_9: while(0);
-  variable[11] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  variable[11] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[11] = TAG_Bool(UNTAG_Int(variable[11])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
@@ -288,16 +288,16 @@ void mmbuilder___MMSrcLocalClass___accept_class_visitor(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___MMSrcLocalClass___nodes_t)CALL(variable[3],COLOR_syntax_base___MMSrcLocalClass___nodes))(variable[3]) /*MMSrcLocalClass::nodes*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_syntax_base___MMSrcLocalClass___nodes(variable[3])(variable[3]) /*MMSrcLocalClass::nodes*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_14: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_14: while(0);
   return_label13: while(false);
@@ -313,29 +313,29 @@ void mmbuilder___MMSrcLocalClass___accept_properties_visitor(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___MMSrcLocalClass___nodes_t)CALL(variable[3],COLOR_syntax_base___MMSrcLocalClass___nodes))(variable[3]) /*MMSrcLocalClass::nodes*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_syntax_base___MMSrcLocalClass___nodes(variable[3])(variable[3]) /*MMSrcLocalClass::nodes*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_16: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_16: while(0);
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL(variable[3],COLOR_syntax_base___MMSrcLocalClass___src_local_properties))(variable[3]) /*MMSrcLocalClass::src_local_properties*/;
-  variable[3] = ((abstract_collection___Map___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Map::iterator*/;
+  variable[3] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[3])(variable[3]) /*MMSrcLocalClass::src_local_properties*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    ((mmbuilder___MMLocalProperty___accept_property_visitor_t)CALL( variable[5] /*p*/,COLOR_mmbuilder___MMLocalProperty___accept_property_visitor))( variable[5] /*p*/,  variable[1] /*v*/) /*MMLocalProperty::accept_property_visitor*/;
+    CALL_mmbuilder___MMLocalProperty___accept_property_visitor( variable[5] /*p*/)( variable[5] /*p*/,  variable[1] /*v*/) /*MMLocalProperty::accept_property_visitor*/;
     continue_17: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_17: while(0);
   return_label15: while(false);
@@ -352,25 +352,25 @@ void mmbuilder___MMSrcLocalClass___process_default_constructors(val_t  self, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___global_properties))(variable[3]) /*MMLocalClass::global_properties*/;
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___global_properties(variable[3])(variable[3]) /*MMLocalClass::global_properties*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable[5] /*gp*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable[5] /*gp*/) /*MMGlobalProperty::is_init*/;
+    variable[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[5] /*gp*/)( variable[5] /*gp*/) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool(variable[6])) { /*if*/
-      variable[6] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL( variable[5] /*gp*/,COLOR_abstractmetamodel___MMGlobalProperty___intro))( variable[5] /*gp*/) /*MMGlobalProperty::intro*/;
-      variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
+      variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro( variable[5] /*gp*/)( variable[5] /*gp*/) /*MMGlobalProperty::intro*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[6])(variable[6]) /*MMLocalProperty::local_class*/;
       variable[7] = variable[0];
-      variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6], variable[7]) /*Object::==*/)))));
+      variable[6] = TAG_Bool((variable[6] == variable[7]) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6],variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6], variable[7]) /*Object::==*/)))));
       if (UNTAG_Bool(variable[6])) { /*if*/
         goto return_label18;
       }
     }
     continue_19: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_19: while(0);
   variable[4] = NEW_ArraySet_array___ArraySet___init(); /*new ArraySet[MMLocalProperty]*/
@@ -378,191 +378,192 @@ void mmbuilder___MMSrcLocalClass___process_default_constructors(val_t  self, val
   variable[5] = NEW_ArraySet_array___ArraySet___init(); /*new ArraySet[MMGlobalProperty]*/
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMLocalClass___che_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___che))(variable[5]) /*MMLocalClass::che*/;
-  variable[5] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[5],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[5]) /*PartialOrderElement::direct_greaters*/;
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___che(variable[5])(variable[5]) /*MMLocalClass::che*/;
+  variable[5] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[5])(variable[5]) /*PartialOrderElement::direct_greaters*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[7] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[7] /*sc*/) /*MMLocalClass::global*/;
-    variable[8] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalClass___is_universal))(variable[8]) /*MMGlobalClass::is_universal*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*sc*/)( variable[7] /*sc*/) /*MMLocalClass::global*/;
+    variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable[8])(variable[8]) /*MMGlobalClass::is_universal*/;
     variable[9] = variable[8];
     if (!UNTAG_Bool(variable[9])) { /* or */
-      variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[7] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[7] /*sc*/) /*MMLocalClass::global*/;
-      variable[9] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL(variable[9],COLOR_abstractmetamodel___MMGlobalClass___is_interface))(variable[9]) /*MMGlobalClass::is_interface*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*sc*/)( variable[7] /*sc*/) /*MMLocalClass::global*/;
+      variable[9] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable[9])(variable[9]) /*MMGlobalClass::is_interface*/;
     }
     variable[8] = variable[9];
     if (UNTAG_Bool(variable[8])) { /*if*/
       goto continue_20;
     }
-    variable[8] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[7] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[7] /*sc*/) /*MMLocalClass::global_properties*/;
-    variable[8] = ((abstract_collection___Collection___iterator_t)CALL(variable[8],COLOR_abstract_collection___Collection___iterator))(variable[8]) /*Collection::iterator*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[7] /*sc*/)( variable[7] /*sc*/) /*MMLocalClass::global_properties*/;
+    variable[8] = CALL_abstract_collection___Collection___iterator(variable[8])(variable[8]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[9] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*Iterator::is_ok*/;
+      variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[9])) break; /*for*/
-      variable[9] = ((abstract_collection___Iterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*Iterator::item*/;
+      variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*Iterator::item*/;
       variable[10] = variable[9];
-      variable[11] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable[10] /*gp*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable[10] /*gp*/) /*MMGlobalProperty::is_init*/;
+      variable[11] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[10] /*gp*/)( variable[10] /*gp*/) /*MMGlobalProperty::is_init*/;
       if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[11])))) { /*if*/
         goto continue_21;
       }
-      ((array___ArraySet___add_t)CALL( variable[4] /*super_constructors*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*super_constructors*/,  variable[10] /*gp*/) /*ArraySet::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/,  variable[10] /*gp*/) /*ArraySet::add*/;
       continue_21: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*Iterator::next*/;
     }
     break_21: while(0);
     if (once_bool_22) variable[9] = once_value_22;
     else {
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-      variable[9] = ((symbol___String___to_symbol_t)CALL(variable[9],COLOR_symbol___String___to_symbol))(variable[9]) /*String::to_symbol*/;
+      variable[9] = CALL_symbol___String___to_symbol(variable[9])(variable[9]) /*String::to_symbol*/;
       once_value_22 = variable[9];
       once_bool_22 = true;
     }
-    variable[9] = ((abstractmetamodel___MMLocalClass___get_property_by_name_t)CALL( variable[7] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___get_property_by_name))( variable[7] /*sc*/, variable[9]) /*MMLocalClass::get_property_by_name*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name( variable[7] /*sc*/)( variable[7] /*sc*/, variable[9]) /*MMLocalClass::get_property_by_name*/;
     variable[8] = variable[9];
-    variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[8] /*gp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*gp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*gp*/,COLOR_kernel___Object_____eqeq))( variable[8] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[8] /*gp*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*gp*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*gp*/)( variable[8] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[9] = variable[0];
-      variable[9] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[9],  variable[8] /*gp*/) /*MMLocalClass::[]*/;
-      ((array___ArraySet___add_t)CALL( variable[3] /*super_inits*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*super_inits*/, variable[9]) /*ArraySet::add*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[9])(variable[9],  variable[8] /*gp*/) /*MMLocalClass::[]*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[3] /*super_inits*/)( variable[3] /*super_inits*/, variable[9]) /*ArraySet::add*/;
     }
     continue_20: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_20: while(0);
   variable[6] = NEW_Array_array___Array___init(); /*new Array[MMSrcAttribute]*/
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL(variable[6],COLOR_syntax_base___MMSrcLocalClass___src_local_properties))(variable[6]) /*MMSrcLocalClass::src_local_properties*/;
-  variable[6] = ((abstract_collection___Map___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Map::iterator*/;
+  variable[6] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[6])(variable[6]) /*MMSrcLocalClass::src_local_properties*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*a*/==NIT_NULL) || VAL_ISA( variable[8] /*a*/, COLOR_MMSrcAttribute, ID_MMSrcAttribute)) /*cast MMSrcAttribute*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
-      variable[10] = ((syntax_base___MMSrcAttribute___node_t)CALL( variable[8] /*a*/,COLOR_syntax_base___MMLocalProperty___node))( variable[8] /*a*/) /*MMSrcAttribute::node*/;
+      variable[10] = CALL_syntax_base___MMLocalProperty___node( variable[8] /*a*/)( variable[8] /*a*/) /*MMSrcAttribute::node*/;
       variable[9] = variable[10];
       variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_AAttrPropdef, ID_AAttrPropdef)) /*cast AAttrPropdef*/;
       if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmbuilder___MMSrcLocalClass___process_default_constructors, LOCATE_mmbuilder, 187); nit_exit(1);}
-      variable[10] = ((parser_nodes___AAttrPropdef___n_expr_t)CALL( variable[9] /*n*/,COLOR_parser_nodes___AAttrPropdef___n_expr))( variable[9] /*n*/) /*AAttrPropdef::n_expr*/;
-      variable[10] = TAG_Bool((variable[10] ==  NIT_NULL /*null*/) || ((variable[10] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))(variable[10],  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[10] = CALL_parser_nodes___AAttrPropdef___n_expr( variable[9] /*n*/)( variable[9] /*n*/) /*AAttrPropdef::n_expr*/;
+      variable[10] = TAG_Bool((variable[10] ==  NIT_NULL /*null*/) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10],  NIT_NULL /*null*/) /*Object::==*/)))));
       if (UNTAG_Bool(variable[10])) { /*if*/
-        ((array___AbstractArray___add_t)CALL( variable[5] /*unassigned_attributes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*unassigned_attributes*/,  variable[8] /*a*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[5] /*unassigned_attributes*/)( variable[5] /*unassigned_attributes*/,  variable[8] /*a*/) /*AbstractArray::add*/;
       }
     }
     continue_23: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
   break_23: while(0);
-  variable[6] = ((array___ArraySet___is_empty_t)CALL( variable[4] /*super_constructors*/,COLOR_abstract_collection___Collection___is_empty))( variable[4] /*super_constructors*/) /*ArraySet::is_empty*/;
+  variable[6] = CALL_abstract_collection___Collection___is_empty( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/) /*ArraySet::is_empty*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
     variable[7] = NEW_Array_array___Array___init(); /*new Array[MMLocalClass]*/
     variable[6] = variable[7];
-    variable[7] = ((array___ArraySet___iterator_t)CALL( variable[4] /*super_constructors*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*super_constructors*/) /*ArraySet::iterator*/;
+    variable[7] = CALL_abstract_collection___Collection___iterator( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/) /*ArraySet::iterator*/;
     while (true) { /*for*/
-      variable[8] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*Iterator::is_ok*/;
+      variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[8])) break; /*for*/
-      variable[8] = ((abstract_collection___Iterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*Iterator::item*/;
+      variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*Iterator::item*/;
       variable[9] = variable[8];
-      variable[11] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL( variable[9] /*gp*/,COLOR_abstractmetamodel___MMGlobalProperty___local_class))( variable[9] /*gp*/) /*MMGlobalProperty::local_class*/;
+      variable[11] = CALL_abstractmetamodel___MMGlobalProperty___local_class( variable[9] /*gp*/)( variable[9] /*gp*/) /*MMGlobalProperty::local_class*/;
       variable[10] = variable[11];
-      variable[11] = ((array___AbstractArray___has_t)CALL( variable[6] /*supers*/,COLOR_abstract_collection___Collection___has))( variable[6] /*supers*/,  variable[10] /*sc*/) /*AbstractArray::has*/;
+      variable[11] = CALL_abstract_collection___Collection___has( variable[6] /*supers*/)( variable[6] /*supers*/,  variable[10] /*sc*/) /*AbstractArray::has*/;
       if (UNTAG_Bool(variable[11])) { /*if*/
         goto continue_24;
       }
-      variable[11] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[10] /*sc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[10] /*sc*/) /*MMLocalClass::global*/;
-      variable[11] = ((abstractmetamodel___MMGlobalClass___is_mixin_t)CALL(variable[11],COLOR_abstractmetamodel___MMGlobalClass___is_mixin))(variable[11]) /*MMGlobalClass::is_mixin*/;
+      variable[11] = CALL_abstractmetamodel___MMLocalClass___global( variable[10] /*sc*/)( variable[10] /*sc*/) /*MMLocalClass::global*/;
+      variable[11] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable[11])(variable[11]) /*MMGlobalClass::is_mixin*/;
       if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[11])))) { /*if*/
-        ((array___AbstractArray___add_t)CALL( variable[6] /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*supers*/,  variable[10] /*sc*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[6] /*supers*/)( variable[6] /*supers*/,  variable[10] /*sc*/) /*AbstractArray::add*/;
       }
       continue_24: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*Iterator::next*/;
     }
     break_24: while(0);
     variable[7] = variable[0];
-    variable[7] = ((abstractmetamodel___MMLocalClass___che_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___che))(variable[7]) /*MMLocalClass::che*/;
-    variable[7] = ((partial_order___PartialOrderElement___order_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___order))(variable[7]) /*PartialOrderElement::order*/;
-    variable[7] = ((partial_order___PartialOrder___select_smallests_t)CALL(variable[7],COLOR_partial_order___PartialOrder___select_smallests))(variable[7],  variable[6] /*supers*/) /*PartialOrder::select_smallests*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___che(variable[7])(variable[7]) /*MMLocalClass::che*/;
+    variable[7] = CALL_partial_order___PartialOrderElement___order(variable[7])(variable[7]) /*PartialOrderElement::order*/;
+    variable[7] = CALL_partial_order___PartialOrder___select_smallests(variable[7])(variable[7],  variable[6] /*supers*/) /*PartialOrder::select_smallests*/;
     variable[6] = variable[7] /*supers=*/;
     variable[7] =  NIT_NULL /*null*/;
-    variable[8] = ((array___AbstractArray___length_t)CALL( variable[6] /*supers*/,COLOR_abstract_collection___Collection___length))( variable[6] /*supers*/) /*AbstractArray::length*/;
+    variable[8] = CALL_abstract_collection___Collection___length( variable[6] /*supers*/)( variable[6] /*supers*/) /*AbstractArray::length*/;
     variable[8] = TAG_Bool(UNTAG_Int(variable[8])>UNTAG_Int( TAG_Int(1)));
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[8] = variable[0];
-      variable[8] = ((syntax_base___MMSrcLocalClass___nodes_t)CALL(variable[8],COLOR_syntax_base___MMSrcLocalClass___nodes))(variable[8]) /*MMSrcLocalClass::nodes*/;
-      variable[8] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[8],COLOR_abstract_collection___Collection___first))(variable[8]) /*IndexedCollection::first*/;
-      variable[9] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = CALL_syntax_base___MMSrcLocalClass___nodes(variable[8])(variable[8]) /*MMSrcLocalClass::nodes*/;
+      variable[8] = CALL_abstract_collection___Collection___first(variable[8])(variable[8]) /*IndexedCollection::first*/;
+      variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Explicit constructor required in "), TAG_Int(40)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
       variable[12] = variable[0];
       variable[13] = variable[12];
-      variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+      variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" since multiple inheritance of constructor is forbiden. Conflicting classes are "), TAG_Int(80)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-      variable[16] = ((string___Collection___join_t)CALL( variable[6] /*supers*/,COLOR_string___Collection___join))( variable[6] /*supers*/, variable[16]) /*Collection::join*/;
+      variable[16] = CALL_string___Collection___join( variable[6] /*supers*/)( variable[6] /*supers*/, variable[16]) /*Collection::join*/;
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString(". Costructors are "), TAG_Int(18)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
       variable[20] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-      variable[20] = ((string___Collection___join_t)CALL( variable[4] /*super_constructors*/,COLOR_string___Collection___join))( variable[4] /*super_constructors*/, variable[20]) /*Collection::join*/;
+      variable[20] = CALL_string___Collection___join( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/, variable[20]) /*Collection::join*/;
       variable[21] = variable[20];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[21]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
       variable[22] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[23] = variable[22];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[23]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[23]) /*AbstractArray::add*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
       goto return_label18;
     } else { /*if*/
-      variable[8] = ((array___AbstractArray___length_t)CALL( variable[6] /*supers*/,COLOR_abstract_collection___Collection___length))( variable[6] /*supers*/) /*AbstractArray::length*/;
+      variable[8] = CALL_abstract_collection___Collection___length( variable[6] /*supers*/)( variable[6] /*supers*/) /*AbstractArray::length*/;
       variable[8] = TAG_Bool((variable[8])==( TAG_Int(1)));
       if (UNTAG_Bool(variable[8])) { /*if*/
-        variable[8] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[6] /*supers*/,COLOR_abstract_collection___Collection___first))( variable[6] /*supers*/) /*IndexedCollection::first*/;
+        variable[8] = CALL_abstract_collection___Collection___first( variable[6] /*supers*/)( variable[6] /*supers*/) /*IndexedCollection::first*/;
         variable[7] = variable[8] /*superclass=*/;
       }
     }
-    variable[8] = ((array___ArraySet___iterator_t)CALL( variable[4] /*super_constructors*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*super_constructors*/) /*ArraySet::iterator*/;
+    variable[8] = CALL_abstract_collection___Collection___iterator( variable[4] /*super_constructors*/)( variable[4] /*super_constructors*/) /*ArraySet::iterator*/;
     while (true) { /*for*/
-      variable[9] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*Iterator::is_ok*/;
+      variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[9])) break; /*for*/
-      variable[9] = ((abstract_collection___Iterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*Iterator::item*/;
+      variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*Iterator::item*/;
       variable[10] = variable[9];
-      variable[11] = TAG_Bool(( variable[7] /*superclass*/ ==  NIT_NULL /*null*/) || (( variable[7] /*superclass*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*superclass*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*superclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*superclass*/,COLOR_kernel___Object_____eqeq))( variable[7] /*superclass*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[11] = TAG_Bool(( variable[7] /*superclass*/ ==  NIT_NULL /*null*/) || (( variable[7] /*superclass*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*superclass*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*superclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*superclass*/)( variable[7] /*superclass*/,  NIT_NULL /*null*/) /*Object::==*/)))));
       variable[12] = variable[11];
       if (!UNTAG_Bool(variable[12])) { /* or */
-        variable[12] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL( variable[10] /*gp*/,COLOR_abstractmetamodel___MMGlobalProperty___local_class))( variable[10] /*gp*/) /*MMGlobalProperty::local_class*/;
-        variable[12] = TAG_Bool((variable[12] ==  variable[7] /*superclass*/) || ((variable[12] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[12],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[12], variable[7] /*superclass*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[12],COLOR_kernel___Object_____eqeq))(variable[12],  variable[7] /*superclass*/) /*Object::==*/)))));
+        variable[12] = CALL_abstractmetamodel___MMGlobalProperty___local_class( variable[10] /*gp*/)( variable[10] /*gp*/) /*MMGlobalProperty::local_class*/;
+        variable[12] = TAG_Bool((variable[12] ==  variable[7] /*superclass*/) || ((variable[12] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[12])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[12], variable[7] /*superclass*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[12])(variable[12],  variable[7] /*superclass*/) /*Object::==*/)))));
       }
       variable[11] = variable[12];
       if (UNTAG_Bool(variable[11])) { /*if*/
         variable[11] = variable[0];
-        ((inheritance___MMLocalClass___make_visible_an_inherited_global_property_t)CALL(variable[11],COLOR_inheritance___MMLocalClass___make_visible_an_inherited_global_property))(variable[11],  variable[10] /*gp*/) /*MMLocalClass::make_visible_an_inherited_global_property*/;
+        CALL_inheritance___MMLocalClass___make_visible_an_inherited_global_property(variable[11])(variable[11],  variable[10] /*gp*/) /*MMLocalClass::make_visible_an_inherited_global_property*/;
       }
       continue_25: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*Iterator::next*/;
     }
     break_25: while(0);
     variable[8] = variable[0];
-    variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___global))(variable[8]) /*MMLocalClass::global*/;
-    variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[7] /*superclass*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[7] /*superclass*/) /*MMLocalClass::global*/;
-    ((abstractmetamodel___MMGlobalClass___mixin_of__eq_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalClass___mixin_of__eq))(variable[8], variable[9]) /*MMGlobalClass::mixin_of=*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/;
+    variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[7] /*superclass*/)( variable[7] /*superclass*/) /*MMLocalClass::global*/;
+    CALL_abstractmetamodel___MMGlobalClass___mixin_of__eq(variable[8])(variable[8], variable[9]) /*MMGlobalClass::mixin_of=*/;
   } else { /*if*/
     variable[7] = variable[0];
-    variable[8] = ((array___Collection___to_a_t)CALL( variable[3] /*super_inits*/,COLOR_array___Collection___to_a))( variable[3] /*super_inits*/) /*Collection::to_a*/;
+    variable[8] = CALL_array___Collection___to_a( variable[3] /*super_inits*/)( variable[3] /*super_inits*/) /*Collection::to_a*/;
     variable[9] = NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(variable[7],  variable[5] /*unassigned_attributes*/, variable[8]); /*new MMImplicitInit*/
     variable[7] = variable[9];
     variable[6] = variable[7];
     variable[7] = variable[0];
-    ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable[7],COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable[7],  variable[1] /*v*/,  variable[6] /*p*/) /*MMSrcLocalClass::add_src_local_property*/;
+    CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[7])(variable[7],  variable[1] /*v*/,  variable[6] /*p*/) /*MMSrcLocalClass::add_src_local_property*/;
   }
   return_label18: while(false);
   tracehead = trace.prev;
@@ -577,85 +578,87 @@ void mmbuilder___MMSrcLocalClass___add_src_local_property(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[2] /*prop*/) /*MMLocalProperty::name*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::name*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL(variable[5],COLOR_syntax_base___MMSrcLocalClass___src_local_properties))(variable[5]) /*MMSrcLocalClass::src_local_properties*/;
-  variable[5] = ((abstract_collection___Map___has_key_t)CALL(variable[5],COLOR_abstract_collection___Map___has_key))(variable[5],  variable[4] /*pname*/) /*Map::has_key*/;
+  variable[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[5])(variable[5]) /*MMSrcLocalClass::src_local_properties*/;
+  variable[5] = CALL_abstract_collection___Map___has_key(variable[5])(variable[5],  variable[4] /*pname*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[5] = ((syntax_base___MMLocalProperty___node_t)CALL( variable[2] /*prop*/,COLOR_syntax_base___MMLocalProperty___node))( variable[2] /*prop*/) /*MMLocalProperty::node*/;
-    variable[6] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = CALL_syntax_base___MMLocalProperty___node( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::node*/;
+    variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: A property "), TAG_Int(18)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
     variable[9] =  variable[4] /*pname*/;
-    variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is already defined in class "), TAG_Int(29)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
     variable[12] = variable[0];
-    variable[12] = ((abstractmetamodel___MMLocalClass___name_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___name))(variable[12]) /*MMLocalClass::name*/;
+    variable[12] = CALL_abstractmetamodel___MMLocalClass___name(variable[12])(variable[12]) /*MMLocalClass::name*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
     goto return_label26;
   }
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL(variable[5],COLOR_syntax_base___MMSrcLocalClass___src_local_properties))(variable[5]) /*MMSrcLocalClass::src_local_properties*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5],  variable[4] /*pname*/,  variable[2] /*prop*/) /*Map::[]=*/;
+  variable[5] = CALL_syntax_base___MMSrcLocalClass___src_local_properties(variable[5])(variable[5]) /*MMSrcLocalClass::src_local_properties*/;
+  CALL_abstract_collection___Map_____braeq(variable[5])(variable[5],  variable[4] /*pname*/,  variable[2] /*prop*/) /*Map::[]=*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMLocalClass___has_global_property_by_name_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name))(variable[5],  variable[4] /*pname*/) /*MMLocalClass::has_global_property_by_name*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name(variable[5])(variable[5],  variable[4] /*pname*/) /*MMLocalClass::has_global_property_by_name*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((abstractmetamodel___MMLocalClass___properties_by_name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___properties_by_name))(variable[6]) /*MMLocalClass::properties_by_name*/;
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[4] /*pname*/) /*Map::[]*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalClass___properties_by_name(variable[6])(variable[6]) /*MMLocalClass::properties_by_name*/;
+    variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[4] /*pname*/) /*Map::[]*/;
     variable[5] = variable[6];
-    variable[6] = ((array___AbstractArray___length_t)CALL( variable[5] /*globs*/,COLOR_abstract_collection___Collection___length))( variable[5] /*globs*/) /*AbstractArray::length*/;
+    variable[6] = CALL_abstract_collection___Collection___length( variable[5] /*globs*/)( variable[5] /*globs*/) /*AbstractArray::length*/;
     variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(1)));
     if (UNTAG_Bool(variable[6])) { /*if*/
-      variable[6] = ((syntax_base___MMLocalProperty___node_t)CALL( variable[2] /*prop*/,COLOR_syntax_base___MMLocalProperty___node))( variable[2] /*prop*/) /*MMLocalProperty::node*/;
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[6] = CALL_syntax_base___MMLocalProperty___node( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::node*/;
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Name error: "), TAG_Int(12)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] = variable[0];
       variable[11] = variable[10];
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" inherits "), TAG_Int(10)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-      variable[14] = ((array___AbstractArray___length_t)CALL( variable[5] /*globs*/,COLOR_abstract_collection___Collection___length))( variable[5] /*globs*/) /*AbstractArray::length*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+      variable[14] = CALL_abstract_collection___Collection___length( variable[5] /*globs*/)( variable[5] /*globs*/) /*AbstractArray::length*/;
       variable[15] = variable[14];
-      variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
+      variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" global properties named "), TAG_Int(25)); /*new String*/
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
       variable[18] =  variable[4] /*pname*/;
-      variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[18]) /*String::append*/;
+      variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[18]) /*AbstractArray::add*/;
       variable[19] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[20] = variable[19];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[20]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[20]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
     }
-    variable[7] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[5] /*globs*/,COLOR_abstract_collection___Collection___first))( variable[5] /*globs*/) /*IndexedCollection::first*/;
+    variable[7] = CALL_abstract_collection___Collection___first( variable[5] /*globs*/)( variable[5] /*globs*/) /*IndexedCollection::first*/;
     variable[6] = variable[7];
-    ((inheritance___MMLocalProperty___inherit_global_t)CALL( variable[2] /*prop*/,COLOR_inheritance___MMLocalProperty___inherit_global))( variable[2] /*prop*/,  variable[6] /*g*/) /*MMLocalProperty::inherit_global*/;
+    CALL_inheritance___MMLocalProperty___inherit_global( variable[2] /*prop*/)( variable[2] /*prop*/,  variable[6] /*g*/) /*MMLocalProperty::inherit_global*/;
   }
-  variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*prop*/) /*MMLocalProperty::global*/;
-  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/;
+  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    ((abstractmetamodel___MMLocalProperty___new_global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___new_global))( variable[2] /*prop*/) /*MMLocalProperty::new_global*/;
-    variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*prop*/) /*MMLocalProperty::global*/;
-    variable[6] = ((syntax_base___MMLocalProperty___is_init_t)CALL( variable[2] /*prop*/,COLOR_syntax_base___MMLocalProperty___is_init))( variable[2] /*prop*/) /*MMLocalProperty::is_init*/;
-    ((abstractmetamodel___MMGlobalProperty___is_init__eq_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___is_init__eq))(variable[5], variable[6]) /*MMGlobalProperty::is_init=*/;
+    CALL_abstractmetamodel___MMLocalProperty___new_global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::new_global*/;
+    variable[5] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/;
+    variable[6] = CALL_syntax_base___MMLocalProperty___is_init( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::is_init*/;
+    CALL_abstractmetamodel___MMGlobalProperty___is_init__eq(variable[5])(variable[5], variable[6]) /*MMGlobalProperty::is_init=*/;
   }
   return_label26: while(false);
   tracehead = trace.prev;
@@ -683,99 +686,100 @@ void mmbuilder___MMImplicitInit___accept_property_visitor(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMImplicitInit___super_inits_t)CALL(variable[4],COLOR_syntax_base___MMImplicitInit___super_inits))(variable[4]) /*MMImplicitInit::super_inits*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_syntax_base___MMImplicitInit___super_inits(variable[4])(variable[4]) /*MMImplicitInit::super_inits*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((static_type___MMLocalProperty___signature_t)CALL( variable[6] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[6] /*p*/) /*MMLocalProperty::signature*/;
-    variable[7] = ((static_type___MMSignature___arity_t)CALL(variable[7],COLOR_static_type___MMSignature___arity))(variable[7]) /*MMSignature::arity*/;
+    variable[7] = CALL_static_type___MMLocalProperty___signature( variable[6] /*p*/)( variable[6] /*p*/) /*MMLocalProperty::signature*/;
+    variable[7] = CALL_static_type___MMSignature___arity(variable[7])(variable[7]) /*MMSignature::arity*/;
     variable[7] = TAG_Bool(UNTAG_Int(variable[7])>UNTAG_Int( TAG_Int(0)));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(( variable[3] /*base*/ ==  NIT_NULL /*null*/) || (( variable[3] /*base*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*base*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*base*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*base*/,COLOR_kernel___Object_____eqeq))( variable[3] /*base*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[7] = TAG_Bool(( variable[3] /*base*/ ==  NIT_NULL /*null*/) || (( variable[3] /*base*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*base*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*base*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*base*/)( variable[3] /*base*/,  NIT_NULL /*null*/) /*Object::==*/)))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[3] =  variable[6] /*p*/ /*base=*/;
       } else { /*if*/
-        variable[7] = NEW_String_string___String___init(); /*new String*/
+        variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: explicit constructor needed in "), TAG_Int(38)); /*new String*/
         variable[9] = variable[8];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
         variable[10] = variable[0];
-        variable[10] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[10],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[10]) /*MMLocalProperty::local_class*/;
+        variable[10] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[10])(variable[10]) /*MMLocalProperty::local_class*/;
         variable[11] = variable[10];
-        variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+        variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
         variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" since both super-constructor "), TAG_Int(30)); /*new String*/
         variable[13] = variable[12];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-        variable[14] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable[3] /*base*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable[3] /*base*/) /*MMLocalProperty::full_name*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+        variable[14] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[3] /*base*/)( variable[3] /*base*/) /*MMLocalProperty::full_name*/;
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
         variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)); /*new String*/
         variable[17] = variable[16];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
-        variable[18] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable[6] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable[6] /*p*/) /*MMLocalProperty::full_name*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
+        variable[18] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[6] /*p*/)( variable[6] /*p*/) /*MMLocalProperty::full_name*/;
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[19]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[19]) /*AbstractArray::add*/;
         variable[20] = NEW_String_string___String___with_native(BOX_NativeString(" have paramters"), TAG_Int(15)); /*new String*/
         variable[21] = variable[20];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[21]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/,  NIT_NULL /*null*/, variable[7]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[21]) /*AbstractArray::add*/;
+        variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/, variable[7]) /*AbsSyntaxVisitor::error*/;
         goto return_label28;
       }
     }
     continue_29: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_29: while(0);
   variable[4] = variable[0];
   ATTR_mmbuilder___MMImplicitInit____super_init(variable[4]) /*MMImplicitInit::_super_init*/ =  variable[3] /*base*/;
   variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*base*/ ==  NIT_NULL /*null*/) || (( variable[3] /*base*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*base*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*base*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*base*/,COLOR_kernel___Object_____eqeq))( variable[3] /*base*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*base*/ ==  NIT_NULL /*null*/) || (( variable[3] /*base*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*base*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*base*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*base*/)( variable[3] /*base*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[6] = ((static_type___MMLocalProperty___signature_t)CALL( variable[3] /*base*/,COLOR_static_type___MMLocalProperty___signature))( variable[3] /*base*/) /*MMLocalProperty::signature*/;
+    variable[6] = CALL_static_type___MMLocalProperty___signature( variable[3] /*base*/)( variable[3] /*base*/) /*MMLocalProperty::signature*/;
     variable[5] = variable[6];
-    variable[6] = ((static_type___MMSignature___arity_t)CALL( variable[5] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[5] /*sig*/) /*MMSignature::arity*/;
+    variable[6] = CALL_static_type___MMSignature___arity( variable[5] /*sig*/)( variable[5] /*sig*/) /*MMSignature::arity*/;
     variable[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]); /*new Range[Int]*/
     variable[6] = variable[7];
-    variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
+    variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+      variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[7])) break; /*for*/
-      variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+      variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
       variable[8] = variable[7];
-      variable[9] = ((static_type___MMSignature_____bra_t)CALL( variable[5] /*sig*/,COLOR_static_type___MMSignature_____bra))( variable[5] /*sig*/,  variable[8] /*i*/) /*MMSignature::[]*/;
-      ((array___AbstractArray___add_t)CALL( variable[4] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*params*/, variable[9]) /*AbstractArray::add*/;
+      variable[9] = CALL_static_type___MMSignature_____bra( variable[5] /*sig*/)( variable[5] /*sig*/,  variable[8] /*i*/) /*MMSignature::[]*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[9]) /*AbstractArray::add*/;
       continue_30: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
     }
     break_30: while(0);
   }
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___MMImplicitInit___unassigned_attributes_t)CALL(variable[5],COLOR_syntax_base___MMImplicitInit___unassigned_attributes))(variable[5]) /*MMImplicitInit::unassigned_attributes*/;
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_syntax_base___MMImplicitInit___unassigned_attributes(variable[5])(variable[5]) /*MMImplicitInit::unassigned_attributes*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[8] = ((static_type___MMLocalProperty___signature_t)CALL( variable[7] /*a*/,COLOR_static_type___MMLocalProperty___signature))( variable[7] /*a*/) /*MMLocalProperty::signature*/;
-    variable[8] = ((static_type___MMSignature___return_type_t)CALL(variable[8],COLOR_static_type___MMSignature___return_type))(variable[8]) /*MMSignature::return_type*/;
-    ((array___AbstractArray___add_t)CALL( variable[4] /*params*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*params*/, variable[8]) /*AbstractArray::add*/;
+    variable[8] = CALL_static_type___MMLocalProperty___signature( variable[7] /*a*/)( variable[7] /*a*/) /*MMLocalProperty::signature*/;
+    variable[8] = CALL_static_type___MMSignature___return_type(variable[8])(variable[8]) /*MMSignature::return_type*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*params*/)( variable[4] /*params*/, variable[8]) /*AbstractArray::add*/;
     continue_31: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_31: while(0);
   variable[5] = variable[0];
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
-  variable[6] = ((genericity___MMLocalClass___get_type_t)CALL(variable[6],COLOR_static_type___MMLocalClass___get_type))(variable[6]) /*MMLocalClass::get_type*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[6])(variable[6]) /*MMLocalProperty::local_class*/;
+  variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/;
   variable[7] = NEW_MMSignature_static_type___MMSignature___init( variable[4] /*params*/,  NIT_NULL /*null*/, variable[6]); /*new MMSignature*/
   variable[6] = variable[7];
-  ((static_type___MMLocalProperty___signature__eq_t)CALL(variable[5],COLOR_static_type___MMLocalProperty___signature__eq))(variable[5], variable[6]) /*MMLocalProperty::signature=*/;
+  CALL_static_type___MMLocalProperty___signature__eq(variable[5])(variable[5], variable[6]) /*MMLocalProperty::signature=*/;
   return_label28: while(false);
   tracehead = trace.prev;
   return;
@@ -835,7 +839,7 @@ void mmbuilder___ClassBuilderVisitor___visit(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((mmbuilder___PNode___accept_class_builder_t)CALL( variable[1] /*n*/,COLOR_mmbuilder___PNode___accept_class_builder))( variable[1] /*n*/, variable[3]) /*PNode::accept_class_builder*/;
+  CALL_mmbuilder___PNode___accept_class_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_builder*/;
   return_label33: while(false);
   tracehead = trace.prev;
   return;
@@ -888,7 +892,7 @@ void mmbuilder___ClassBuilderVisitor___init(val_t  self, val_t  param0, val_t  p
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassBuilderVisitor].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   return_label34: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassBuilderVisitor].i] = 1;
   tracehead = trace.prev;
@@ -903,7 +907,7 @@ void mmbuilder___ClassSpecializationBuilderVisitor___visit(val_t  self, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((mmbuilder___PNode___accept_class_specialization_builder_t)CALL( variable[1] /*n*/,COLOR_mmbuilder___PNode___accept_class_specialization_builder))( variable[1] /*n*/, variable[3]) /*PNode::accept_class_specialization_builder*/;
+  CALL_mmbuilder___PNode___accept_class_specialization_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_specialization_builder*/;
   return_label35: while(false);
   tracehead = trace.prev;
   return;
@@ -918,7 +922,7 @@ void mmbuilder___ClassSpecializationBuilderVisitor___init(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   return_label36: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassSpecializationBuilderVisitor].i] = 1;
   tracehead = trace.prev;
@@ -933,7 +937,7 @@ void mmbuilder___ClassAncestorBuilder___visit(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((mmbuilder___PNode___accept_class_ancestor_builder_t)CALL( variable[1] /*n*/,COLOR_mmbuilder___PNode___accept_class_ancestor_builder))( variable[1] /*n*/, variable[3]) /*PNode::accept_class_ancestor_builder*/;
+  CALL_mmbuilder___PNode___accept_class_ancestor_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_ancestor_builder*/;
   return_label37: while(false);
   tracehead = trace.prev;
   return;
@@ -948,7 +952,7 @@ void mmbuilder___ClassAncestorBuilder___init(val_t  self, val_t  param0, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassAncestorBuilder].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   return_label38: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassAncestorBuilder].i] = 1;
   tracehead = trace.prev;
@@ -963,7 +967,7 @@ void mmbuilder___ClassVerifierVisitor___visit(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((mmbuilder___PNode___accept_class_verifier_t)CALL( variable[1] /*n*/,COLOR_mmbuilder___PNode___accept_class_verifier))( variable[1] /*n*/, variable[3]) /*PNode::accept_class_verifier*/;
+  CALL_mmbuilder___PNode___accept_class_verifier( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_class_verifier*/;
   return_label39: while(false);
   tracehead = trace.prev;
   return;
@@ -978,7 +982,7 @@ void mmbuilder___ClassVerifierVisitor___init(val_t  self, val_t  param0, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassVerifierVisitor].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   return_label40: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClassVerifierVisitor].i] = 1;
   tracehead = trace.prev;
@@ -993,7 +997,7 @@ void mmbuilder___PropertyBuilderVisitor___visit(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((mmbuilder___PNode___accept_property_builder_t)CALL( variable[1] /*n*/,COLOR_mmbuilder___PNode___accept_property_builder))( variable[1] /*n*/, variable[3]) /*PNode::accept_property_builder*/;
+  CALL_mmbuilder___PNode___accept_property_builder( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_property_builder*/;
   return_label41: while(false);
   tracehead = trace.prev;
   return;
@@ -1008,7 +1012,7 @@ void mmbuilder___PropertyBuilderVisitor___init(val_t  self, val_t  param0, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   return_label42: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyBuilderVisitor].i] = 1;
   tracehead = trace.prev;
@@ -1023,7 +1027,7 @@ void mmbuilder___PropertyVerifierVisitor___visit(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((mmbuilder___PNode___accept_property_verifier_t)CALL( variable[1] /*n*/,COLOR_mmbuilder___PNode___accept_property_verifier))( variable[1] /*n*/, variable[3]) /*PNode::accept_property_verifier*/;
+  CALL_mmbuilder___PNode___accept_property_verifier( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_property_verifier*/;
   return_label43: while(false);
   tracehead = trace.prev;
   return;
@@ -1057,7 +1061,7 @@ void mmbuilder___PropertyVerifierVisitor___init(val_t  self, val_t  param0, val_
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PropertyVerifierVisitor].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   variable[4] = variable[0];
   variable[5] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); /*new SignatureBuilder*/
   ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(variable[4]) /*PropertyVerifierVisitor::_signature_builder*/ = variable[5];
@@ -1179,7 +1183,7 @@ void mmbuilder___PNode___accept_class_builder(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   return_label45: while(false);
   tracehead = trace.prev;
   return;
@@ -1193,7 +1197,7 @@ void mmbuilder___PNode___accept_class_specialization_builder(val_t  self, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   return_label46: while(false);
   tracehead = trace.prev;
   return;
@@ -1207,7 +1211,7 @@ void mmbuilder___PNode___accept_class_ancestor_builder(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   return_label47: while(false);
   tracehead = trace.prev;
   return;
@@ -1221,7 +1225,7 @@ void mmbuilder___PNode___accept_class_verifier(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   return_label48: while(false);
   tracehead = trace.prev;
   return;
@@ -1235,7 +1239,7 @@ void mmbuilder___PNode___accept_property_builder(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   return_label49: while(false);
   tracehead = trace.prev;
   return;
@@ -1249,7 +1253,7 @@ void mmbuilder___PNode___accept_property_verifier(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   return_label50: while(false);
   tracehead = trace.prev;
   return;
@@ -1270,72 +1274,73 @@ void mmbuilder___AModule___import_super_modules(val_t  self, val_t  param0, val_
   variable[5] = variable[6];
   variable[6] =  NIT_NULL /*null*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___AModule___n_imports_t)CALL(variable[7],COLOR_parser_nodes___AModule___n_imports))(variable[7]) /*AModule::n_imports*/;
-  variable[7] = ((list___List___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*List::iterator*/;
+  variable[7] = CALL_parser_nodes___AModule___n_imports(variable[7])(variable[7]) /*AModule::n_imports*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((list___ListIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ListIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((list___ListIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ListIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ListIterator::item*/;
     variable[9] = variable[8];
-    variable[11] = ((mmbuilder___PImport___module_name_t)CALL( variable[9] /*i*/,COLOR_mmbuilder___PImport___module_name))( variable[9] /*i*/) /*PImport::module_name*/;
+    variable[11] = CALL_mmbuilder___PImport___module_name( variable[9] /*i*/)( variable[9] /*i*/) /*PImport::module_name*/;
     variable[10] = variable[11];
-    variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*n*/ ==  NIT_NULL /*null*/) || (( variable[10] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*n*/,COLOR_kernel___Object_____eqeq))( variable[10] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*n*/ ==  NIT_NULL /*null*/) || (( variable[10] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*n*/)( variable[10] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[11])) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable[4] /*module_names_to_import*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*module_names_to_import*/,  variable[10] /*n*/) /*AbstractArray::add*/;
-      variable[11] = ((mmbuilder___PImport___visibility_level_t)CALL( variable[9] /*i*/,COLOR_mmbuilder___PImport___visibility_level))( variable[9] /*i*/) /*PImport::visibility_level*/;
-      ((hash___HashMap_____braeq_t)CALL( variable[5] /*module_visibility*/,COLOR_abstract_collection___Map_____braeq))( variable[5] /*module_visibility*/,  variable[10] /*n*/, variable[11]) /*HashMap::[]=*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/,  variable[10] /*n*/) /*AbstractArray::add*/;
+      variable[11] = CALL_mmbuilder___PImport___visibility_level( variable[9] /*i*/)( variable[9] /*i*/) /*PImport::visibility_level*/;
+      CALL_abstract_collection___Map_____braeq( variable[5] /*module_visibility*/)( variable[5] /*module_visibility*/,  variable[10] /*n*/, variable[11]) /*HashMap::[]=*/;
     } else { /*if*/
       variable[6] =  variable[9] /*i*/ /*no_import=*/;
     }
     continue_52: while(0);
-    ((list___ListIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ListIterator::next*/;
   }
   break_52: while(0);
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*no_import*/ ==  NIT_NULL /*null*/) || (( variable[6] /*no_import*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*no_import*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*no_import*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*no_import*/,COLOR_kernel___Object_____eqeq))( variable[6] /*no_import*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*no_import*/ ==  NIT_NULL /*null*/) || (( variable[6] /*no_import*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*no_import*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*no_import*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*no_import*/)( variable[6] /*no_import*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((array___AbstractArray___is_empty_t)CALL( variable[4] /*module_names_to_import*/,COLOR_abstract_collection___Collection___is_empty))( variable[4] /*module_names_to_import*/) /*AbstractArray::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
-      variable[10] = ((parser_prod___Prod___locate_t)CALL( variable[6] /*no_import*/,COLOR_parser_prod___PNode___locate))( variable[6] /*no_import*/) /*Prod::locate*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+      variable[10] = CALL_parser_prod___PNode___locate( variable[6] /*no_import*/)( variable[6] /*no_import*/) /*Prod::locate*/;
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(": Error: Top modules cannot import other modules."), TAG_Int(49)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-      ((mmloader___ToolContext___error_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error))( variable[1] /*tc*/, variable[7]) /*ToolContext::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_mmloader___ToolContext___error( variable[1] /*tc*/)( variable[1] /*tc*/, variable[7]) /*ToolContext::error*/;
     }
   } else { /*if*/
-    variable[7] = ((array___AbstractArray___is_empty_t)CALL( variable[4] /*module_names_to_import*/,COLOR_abstract_collection___Collection___is_empty))( variable[4] /*module_names_to_import*/) /*AbstractArray::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
       if (once_bool_53) variable[8] = once_value_53;
       else {
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("standard"), TAG_Int(8)); /*new String*/
-        variable[8] = ((symbol___String___to_symbol_t)CALL(variable[8],COLOR_symbol___String___to_symbol))(variable[8]) /*String::to_symbol*/;
+        variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
         once_value_53 = variable[8];
         once_bool_53 = true;
       }
       variable[7] = variable[8];
-      ((array___AbstractArray___add_t)CALL( variable[4] /*module_names_to_import*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*module_names_to_import*/,  variable[7] /*stdname*/) /*AbstractArray::add*/;
-      ((hash___HashMap_____braeq_t)CALL( variable[5] /*module_visibility*/,COLOR_abstract_collection___Map_____braeq))( variable[5] /*module_visibility*/,  variable[7] /*stdname*/,  TAG_Int(1)) /*HashMap::[]=*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/,  variable[7] /*stdname*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___Map_____braeq( variable[5] /*module_visibility*/)( variable[5] /*module_visibility*/,  variable[7] /*stdname*/,  TAG_Int(1)) /*HashMap::[]=*/;
     }
   }
-  ((mmloader___MMModule___import_supers_modules_t)CALL( variable[2] /*mod*/,COLOR_mmloader___MMModule___import_supers_modules))( variable[2] /*mod*/,  variable[4] /*module_names_to_import*/) /*MMModule::import_supers_modules*/;
-  variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*module_names_to_import*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*module_names_to_import*/) /*AbstractArray::iterator*/;
+  CALL_mmloader___MMModule___import_supers_modules( variable[2] /*mod*/)( variable[2] /*mod*/,  variable[4] /*module_names_to_import*/) /*MMModule::import_supers_modules*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator( variable[4] /*module_names_to_import*/)( variable[4] /*module_names_to_import*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
-    variable[11] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[5] /*module_visibility*/,COLOR_abstract_collection___Map_____bra))( variable[5] /*module_visibility*/,  variable[9] /*mname*/) /*CoupleMap::[]*/;
+    variable[11] = CALL_abstract_collection___Map_____bra( variable[5] /*module_visibility*/)( variable[5] /*module_visibility*/,  variable[9] /*mname*/) /*CoupleMap::[]*/;
     variable[10] = variable[11];
-    variable[12] = ((mmloader___ToolContext___get_module_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___get_module))( variable[1] /*tc*/,  variable[9] /*mname*/,  variable[2] /*mod*/) /*ToolContext::get_module*/;
+    variable[12] = CALL_mmloader___ToolContext___get_module( variable[1] /*tc*/)( variable[1] /*tc*/,  variable[9] /*mname*/,  variable[2] /*mod*/) /*ToolContext::get_module*/;
     variable[11] = variable[12];
-    ((abstractmetamodel___MMModule___add_super_module_t)CALL( variable[2] /*mod*/,COLOR_abstractmetamodel___MMModule___add_super_module))( variable[2] /*mod*/,  variable[11] /*m*/,  variable[10] /*level*/) /*MMModule::add_super_module*/;
+    CALL_abstractmetamodel___MMModule___add_super_module( variable[2] /*mod*/)( variable[2] /*mod*/,  variable[11] /*m*/,  variable[10] /*level*/) /*MMModule::add_super_module*/;
     continue_54: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
   break_54: while(0);
   return_label51: while(false);
@@ -1351,36 +1356,37 @@ void mmbuilder___APackagedecl___accept_class_builder(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___APackagedecl___n_id_t)CALL(variable[3],COLOR_parser_nodes___APackagedecl___n_id))(variable[3]) /*APackagedecl::n_id*/;
-  variable[3] = ((syntax_base___Token___to_symbol_t)CALL(variable[3],COLOR_syntax_base___Token___to_symbol))(variable[3]) /*Token::to_symbol*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-  variable[4] = ((abstractmetamodel___MMModule___name_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___name))(variable[4]) /*MMModule::name*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[4]) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___APackagedecl___n_id(variable[3])(variable[3]) /*APackagedecl::n_id*/;
+  variable[3] = CALL_syntax_base___Token___to_symbol(variable[3])(variable[3]) /*Token::to_symbol*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  variable[4] = CALL_abstractmetamodel___MMModule___name(variable[4])(variable[4]) /*MMModule::name*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((parser_nodes___APackagedecl___n_id_t)CALL(variable[3],COLOR_parser_nodes___APackagedecl___n_id))(variable[3]) /*APackagedecl::n_id*/;
-    variable[4] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = CALL_parser_nodes___APackagedecl___n_id(variable[3])(variable[3]) /*APackagedecl::n_id*/;
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Package name missmatch between "), TAG_Int(38)); /*new String*/
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
-    variable[7] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-    variable[7] = ((abstractmetamodel___MMModule___name_t)CALL(variable[7],COLOR_abstractmetamodel___MMModule___name))(variable[7]) /*MMModule::name*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
+    variable[7] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+    variable[7] = CALL_abstractmetamodel___MMModule___name(variable[7])(variable[7]) /*MMModule::name*/;
     variable[8] = variable[7];
-    variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" and "), TAG_Int(5)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
     variable[11] = variable[0];
-    variable[11] = ((parser_nodes___APackagedecl___n_id_t)CALL(variable[11],COLOR_parser_nodes___APackagedecl___n_id))(variable[11]) /*APackagedecl::n_id*/;
-    variable[11] = ((syntax_base___Token___to_symbol_t)CALL(variable[11],COLOR_syntax_base___Token___to_symbol))(variable[11]) /*Token::to_symbol*/;
+    variable[11] = CALL_parser_nodes___APackagedecl___n_id(variable[11])(variable[11]) /*APackagedecl::n_id*/;
+    variable[11] = CALL_syntax_base___Token___to_symbol(variable[11])(variable[11]) /*Token::to_symbol*/;
     variable[12] = variable[11];
-    variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[12]) /*String::append*/;
+    variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[14]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[14]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
   }
   return_label55: while(false);
   tracehead = trace.prev;
@@ -1418,8 +1424,8 @@ val_t mmbuilder___AImport___module_name(val_t  self) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AImport___n_id_t)CALL(variable[2],COLOR_parser_nodes___AImport___n_id))(variable[2]) /*AImport::n_id*/;
-  variable[2] = ((syntax_base___Token___to_symbol_t)CALL(variable[2],COLOR_syntax_base___Token___to_symbol))(variable[2]) /*Token::to_symbol*/;
+  variable[2] = CALL_parser_nodes___AImport___n_id(variable[2])(variable[2]) /*AImport::n_id*/;
+  variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/;
   variable[1] = variable[2];
   goto return_label56;
   return_label56: while(false);
@@ -1434,8 +1440,8 @@ val_t mmbuilder___AImport___visibility_level(val_t  self) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AImport___n_visibility_t)CALL(variable[2],COLOR_parser_nodes___AImport___n_visibility))(variable[2]) /*AImport::n_visibility*/;
-  variable[2] = ((mmbuilder___PVisibility___level_t)CALL(variable[2],COLOR_mmbuilder___PVisibility___level))(variable[2]) /*PVisibility::level*/;
+  variable[2] = CALL_parser_nodes___AImport___n_visibility(variable[2])(variable[2]) /*AImport::n_visibility*/;
+  variable[2] = CALL_mmbuilder___PVisibility___level(variable[2])(variable[2]) /*PVisibility::level*/;
   variable[1] = variable[2];
   goto return_label57;
   return_label57: while(false);
@@ -1529,9 +1535,9 @@ void mmbuilder___PClassdef___accept_abs_syntax_visitor(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_mmbuilder___PClassdef____local_class(variable[3]) /*PClassdef::_local_class*/;
-  ((syntax_base___AbsSyntaxVisitor___local_class__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class__eq))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_class=*/;
-  ((mmbuilder___PClassdef___accept_abs_syntax_visitor_t)CALL(variable[0],COLOR_SUPER_mmbuilder___PClassdef___accept_abs_syntax_visitor))(variable[0], variable[1]) /*super PClassdef::accept_abs_syntax_visitor*/;
-  ((syntax_base___AbsSyntaxVisitor___local_class__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class__eq))( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_class=*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_class__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_class=*/;
+  CALL_SUPER_mmbuilder___PClassdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super PClassdef::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_class__eq( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_class=*/;
   return_label63: while(false);
   tracehead = trace.prev;
   return;
@@ -1554,87 +1560,88 @@ void mmbuilder___PClassdef___accept_class_builder(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   /*variable[3] is variable local_class*/
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
   variable[4] = variable[5];
-  variable[6] = ((syntax_base___MMSrcModule___src_local_classes_t)CALL( variable[4] /*mod*/,COLOR_syntax_base___MMSrcModule___src_local_classes))( variable[4] /*mod*/) /*MMSrcModule::src_local_classes*/;
+  variable[6] = CALL_syntax_base___MMSrcModule___src_local_classes( variable[4] /*mod*/)( variable[4] /*mod*/) /*MMSrcModule::src_local_classes*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((mmbuilder___PClassdef___name_t)CALL(variable[6],COLOR_mmbuilder___PClassdef___name))(variable[6]) /*PClassdef::name*/;
-  variable[6] = ((abstract_collection___Map___has_key_t)CALL( variable[5] /*local_classes*/,COLOR_abstract_collection___Map___has_key))( variable[5] /*local_classes*/, variable[6]) /*Map::has_key*/;
+  variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/;
+  variable[6] = CALL_abstract_collection___Map___has_key( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6]) /*Map::has_key*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((mmbuilder___PClassdef___name_t)CALL(variable[6],COLOR_mmbuilder___PClassdef___name))(variable[6]) /*PClassdef::name*/;
-    variable[6] = ((abstract_collection___Map_____bra_t)CALL( variable[5] /*local_classes*/,COLOR_abstract_collection___Map_____bra))( variable[5] /*local_classes*/, variable[6]) /*Map::[]*/;
+    variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/;
+    variable[6] = CALL_abstract_collection___Map_____bra( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6]) /*Map::[]*/;
     variable[3] = variable[6] /*local_class=*/;
     variable[6] = variable[0];
     variable[6] = TAG_Bool((variable[6]==NIT_NULL) || VAL_ISA(variable[6], COLOR_AClassdef, ID_AClassdef)) /*cast AClassdef*/;
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: A class "), TAG_Int(15)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] = variable[0];
-      variable[10] = ((mmbuilder___AClassdef___name_t)CALL(variable[10],COLOR_mmbuilder___PClassdef___name))(variable[10]) /*AClassdef::name*/;
+      variable[10] = CALL_mmbuilder___PClassdef___name(variable[10])(variable[10]) /*AClassdef::name*/;
       variable[11] = variable[10];
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is already defined at line "), TAG_Int(28)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-      variable[14] = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable[3] /*local_class*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/;
-      variable[14] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[14],COLOR_abstract_collection___Collection___first))(variable[14]) /*IndexedCollection::first*/;
-      variable[14] = ((parser_prod___Prod___first_token_t)CALL(variable[14],COLOR_parser_prod___Prod___first_token))(variable[14]) /*Prod::first_token*/;
-      variable[14] = ((lexer___Token___line_t)CALL(variable[14],COLOR_lexer___Token___line))(variable[14]) /*Token::line*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+      variable[14] = CALL_syntax_base___MMSrcLocalClass___nodes( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/;
+      variable[14] = CALL_abstract_collection___Collection___first(variable[14])(variable[14]) /*IndexedCollection::first*/;
+      variable[14] = CALL_parser_prod___Prod___first_token(variable[14])(variable[14]) /*Prod::first_token*/;
+      variable[14] = CALL_lexer___Token___line(variable[14])(variable[14]) /*Token::line*/;
       variable[15] = variable[14];
-      variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
+      variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
       goto return_label64;
     }
-    variable[6] = ((syntax_base___MMSrcLocalClass___nodes_t)CALL( variable[3] /*local_class*/,COLOR_syntax_base___MMSrcLocalClass___nodes))( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/;
+    variable[6] = CALL_syntax_base___MMSrcLocalClass___nodes( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMSrcLocalClass::nodes*/;
     variable[7] = variable[0];
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
   } else { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((mmbuilder___PClassdef___name_t)CALL(variable[6],COLOR_mmbuilder___PClassdef___name))(variable[6]) /*PClassdef::name*/;
+    variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/;
     variable[7] = variable[0];
     variable[8] = variable[0];
-    variable[8] = ((mmbuilder___PClassdef___arity_t)CALL(variable[8],COLOR_mmbuilder___PClassdef___arity))(variable[8]) /*PClassdef::arity*/;
+    variable[8] = CALL_mmbuilder___PClassdef___arity(variable[8])(variable[8]) /*PClassdef::arity*/;
     variable[9] = NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(variable[6], variable[7], variable[8]); /*new MMSrcLocalClass*/
     variable[6] = variable[9];
     variable[3] = variable[6] /*local_class=*/;
-    ((abstractmetamodel___MMModule___add_local_class_t)CALL( variable[4] /*mod*/,COLOR_abstractmetamodel___MMModule___add_local_class))( variable[4] /*mod*/,  variable[3] /*local_class*/) /*MMModule::add_local_class*/;
+    CALL_abstractmetamodel___MMModule___add_local_class( variable[4] /*mod*/)( variable[4] /*mod*/,  variable[3] /*local_class*/) /*MMModule::add_local_class*/;
     variable[6] = variable[0];
-    variable[6] = ((mmbuilder___PClassdef___name_t)CALL(variable[6],COLOR_mmbuilder___PClassdef___name))(variable[6]) /*PClassdef::name*/;
-    ((abstract_collection___Map_____braeq_t)CALL( variable[5] /*local_classes*/,COLOR_abstract_collection___Map_____braeq))( variable[5] /*local_classes*/, variable[6],  variable[3] /*local_class*/) /*Map::[]=*/;
+    variable[6] = CALL_mmbuilder___PClassdef___name(variable[6])(variable[6]) /*PClassdef::name*/;
+    CALL_abstract_collection___Map_____braeq( variable[5] /*local_classes*/)( variable[5] /*local_classes*/, variable[6],  variable[3] /*local_class*/) /*Map::[]=*/;
     variable[7] = variable[0];
-    variable[7] = ((mmbuilder___PClassdef___name_t)CALL(variable[7],COLOR_mmbuilder___PClassdef___name))(variable[7]) /*PClassdef::name*/;
-    variable[7] = ((abstractmetamodel___MMModule___global_class_named_t)CALL( variable[4] /*mod*/,COLOR_abstractmetamodel___MMModule___global_class_named))( variable[4] /*mod*/, variable[7]) /*MMModule::global_class_named*/;
+    variable[7] = CALL_mmbuilder___PClassdef___name(variable[7])(variable[7]) /*PClassdef::name*/;
+    variable[7] = CALL_abstractmetamodel___MMModule___global_class_named( variable[4] /*mod*/)( variable[4] /*mod*/, variable[7]) /*MMModule::global_class_named*/;
     variable[6] = variable[7];
-    variable[7] = TAG_Bool(( variable[6] /*g*/ ==  NIT_NULL /*null*/) || (( variable[6] /*g*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*g*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*g*/,COLOR_kernel___Object_____eqeq))( variable[6] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[7] = TAG_Bool(( variable[6] /*g*/ ==  NIT_NULL /*null*/) || (( variable[6] /*g*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*g*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*g*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*g*/)( variable[6] /*g*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      ((abstractmetamodel___MMLocalClass___new_global_t)CALL( variable[3] /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___new_global))( variable[3] /*local_class*/) /*MMLocalClass::new_global*/;
-      variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[3] /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[3] /*local_class*/) /*MMLocalClass::global*/;
+      CALL_abstractmetamodel___MMLocalClass___new_global( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMLocalClass::new_global*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[3] /*local_class*/)( variable[3] /*local_class*/) /*MMLocalClass::global*/;
       variable[6] = variable[7] /*g=*/;
     } else { /*if*/
-      ((abstractmetamodel___MMLocalClass___set_global_t)CALL( variable[3] /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___set_global))( variable[3] /*local_class*/,  variable[6] /*g*/) /*MMLocalClass::set_global*/;
+      CALL_abstractmetamodel___MMLocalClass___set_global( variable[3] /*local_class*/)( variable[3] /*local_class*/,  variable[6] /*g*/) /*MMLocalClass::set_global*/;
     }
   }
   variable[6] = variable[0];
   ATTR_mmbuilder___PClassdef____local_class(variable[6]) /*PClassdef::_local_class*/ =  variable[3] /*local_class*/;
-  ((mmbuilder___ClassBuilderVisitor___local_class_arity__eq_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity__eq))( variable[1] /*v*/,  TAG_Int(0)) /*ClassBuilderVisitor::local_class_arity=*/;
+  CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq( variable[1] /*v*/)( variable[1] /*v*/,  TAG_Int(0)) /*ClassBuilderVisitor::local_class_arity=*/;
   variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, MMTypeFormalParameter]*/
-  ((mmbuilder___ClassBuilderVisitor___formals__eq_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals__eq))( variable[1] /*v*/, variable[6]) /*ClassBuilderVisitor::formals=*/;
-  ((mmbuilder___PClassdef___accept_class_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___PClassdef___accept_class_builder))(variable[0], variable[1]) /*super PClassdef::accept_class_builder*/;
+  CALL_mmbuilder___ClassBuilderVisitor___formals__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*ClassBuilderVisitor::formals=*/;
+  CALL_SUPER_mmbuilder___PClassdef___accept_class_builder(variable[0])(variable[0], variable[1]) /*super PClassdef::accept_class_builder*/;
   variable[6] = variable[0];
   variable[6] = ATTR_mmbuilder___PClassdef____local_class(variable[6]) /*PClassdef::_local_class*/;
-  variable[7] = ((mmbuilder___ClassBuilderVisitor___formals_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals))( variable[1] /*v*/) /*ClassBuilderVisitor::formals*/;
-  ((syntax_base___MMSrcLocalClass___formal_dict__eq_t)CALL(variable[6],COLOR_syntax_base___MMSrcLocalClass___formal_dict__eq))(variable[6], variable[7]) /*MMSrcLocalClass::formal_dict=*/;
-  ((mmbuilder___ClassBuilderVisitor___formals__eq_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals__eq))( variable[1] /*v*/,  NIT_NULL /*null*/) /*ClassBuilderVisitor::formals=*/;
+  variable[7] = CALL_mmbuilder___ClassBuilderVisitor___formals( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::formals*/;
+  CALL_syntax_base___MMSrcLocalClass___formal_dict__eq(variable[6])(variable[6], variable[7]) /*MMSrcLocalClass::formal_dict=*/;
+  CALL_mmbuilder___ClassBuilderVisitor___formals__eq( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/) /*ClassBuilderVisitor::formals=*/;
   return_label64: while(false);
   tracehead = trace.prev;
   return;
@@ -1763,280 +1770,288 @@ void mmbuilder___AClassdef___accept_class_verifier(val_t  self, val_t  param0) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___AClassdef___accept_class_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AClassdef___accept_class_verifier))(variable[0], variable[1]) /*super AClassdef::accept_class_verifier*/;
+  CALL_SUPER_mmbuilder___AClassdef___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super AClassdef::accept_class_verifier*/;
   variable[4] = variable[0];
   variable[4] = ATTR_mmbuilder___PClassdef____local_class(variable[4]) /*PClassdef::_local_class*/;
-  variable[4] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___global))(variable[4]) /*MMLocalClass::global*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___global(variable[4])(variable[4]) /*MMLocalClass::global*/;
   variable[3] = variable[4];
-  variable[4] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable[3] /*glob*/) /*MMGlobalClass::intro*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/;
   variable[5] = variable[0];
   variable[5] = ATTR_mmbuilder___PClassdef____local_class(variable[5]) /*PClassdef::_local_class*/;
-  variable[4] = TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], variable[5]) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[5]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((mmbuilder___AClassdef___visibility_level_t)CALL(variable[4],COLOR_mmbuilder___PClassdef___visibility_level))(variable[4]) /*AClassdef::visibility_level*/;
-    ((abstractmetamodel___MMGlobalClass___visibility_level__eq_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___visibility_level__eq))( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::visibility_level=*/;
+    variable[4] = CALL_mmbuilder___PClassdef___visibility_level(variable[4])(variable[4]) /*AClassdef::visibility_level*/;
+    CALL_abstractmetamodel___MMGlobalClass___visibility_level__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::visibility_level=*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AClassdef___n_classkind_t)CALL(variable[4],COLOR_parser_nodes___AClassdef___n_classkind))(variable[4]) /*AClassdef::n_classkind*/;
-    variable[4] = ((mmbuilder___PClasskind___is_interface_t)CALL(variable[4],COLOR_mmbuilder___PClasskind___is_interface))(variable[4]) /*PClasskind::is_interface*/;
-    ((abstractmetamodel___MMGlobalClass___is_interface__eq_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface__eq))( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_interface=*/;
+    variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/;
+    variable[4] = CALL_mmbuilder___PClasskind___is_interface(variable[4])(variable[4]) /*PClasskind::is_interface*/;
+    CALL_abstractmetamodel___MMGlobalClass___is_interface__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_interface=*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AClassdef___n_classkind_t)CALL(variable[4],COLOR_parser_nodes___AClassdef___n_classkind))(variable[4]) /*AClassdef::n_classkind*/;
-    variable[4] = ((mmbuilder___PClasskind___is_abstract_t)CALL(variable[4],COLOR_mmbuilder___PClasskind___is_abstract))(variable[4]) /*PClasskind::is_abstract*/;
-    ((abstractmetamodel___MMGlobalClass___is_abstract__eq_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_abstract__eq))( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_abstract=*/;
+    variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/;
+    variable[4] = CALL_mmbuilder___PClasskind___is_abstract(variable[4])(variable[4]) /*PClasskind::is_abstract*/;
+    CALL_abstractmetamodel___MMGlobalClass___is_abstract__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_abstract=*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AClassdef___n_classkind_t)CALL(variable[4],COLOR_parser_nodes___AClassdef___n_classkind))(variable[4]) /*AClassdef::n_classkind*/;
-    variable[4] = ((mmbuilder___PClasskind___is_universal_t)CALL(variable[4],COLOR_mmbuilder___PClasskind___is_universal))(variable[4]) /*PClasskind::is_universal*/;
-    ((abstractmetamodel___MMGlobalClass___is_universal__eq_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal__eq))( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_universal=*/;
+    variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/;
+    variable[4] = CALL_mmbuilder___PClasskind___is_universal(variable[4])(variable[4]) /*PClasskind::is_universal*/;
+    CALL_abstractmetamodel___MMGlobalClass___is_universal__eq( variable[3] /*glob*/)( variable[3] /*glob*/, variable[4]) /*MMGlobalClass::is_universal=*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AClassdef___n_kwredef_t)CALL(variable[4],COLOR_parser_nodes___AClassdef___n_kwredef))(variable[4]) /*AClassdef::n_kwredef*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = CALL_parser_nodes___AClassdef___n_kwredef(variable[4])(variable[4]) /*AClassdef::n_kwredef*/;
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      variable[5] = NEW_String_string___String___init(); /*new String*/
+      variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: No class "), TAG_Int(22)); /*new String*/
       variable[7] = variable[6];
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
       variable[8] = variable[0];
-      variable[8] = ((mmbuilder___AClassdef___name_t)CALL(variable[8],COLOR_mmbuilder___PClassdef___name))(variable[8]) /*AClassdef::name*/;
+      variable[8] = CALL_mmbuilder___PClassdef___name(variable[8])(variable[8]) /*AClassdef::name*/;
       variable[9] = variable[8];
-      variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is imported. Remove the redef keyword to define a new class."), TAG_Int(61)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+      variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     }
     variable[4] = variable[0];
     variable[4] = ATTR_mmbuilder___PClassdef____local_class(variable[4]) /*PClassdef::_local_class*/;
-    variable[4] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[4]) /*MMLocalClass::cshe*/;
-    variable[4] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[4]) /*PartialOrderElement::direct_greaters*/;
-    variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[4])(variable[4]) /*MMLocalClass::cshe*/;
+    variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[4])(variable[4]) /*PartialOrderElement::direct_greaters*/;
+    variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+      variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[5])) break; /*for*/
-      variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+      variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
       variable[6] = variable[5];
-      variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[6] /*c*/) /*MMLocalClass::global*/;
+      variable[8] = CALL_abstractmetamodel___MMLocalClass___global( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::global*/;
       variable[7] = variable[8];
-      variable[8] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/;
+      variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/;
       if (UNTAG_Bool(variable[8])) { /*if*/
-        variable[8] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable[7] /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/;
+        variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/;
         if (UNTAG_Bool(variable[8])) { /*if*/
           variable[8] = variable[0];
-          variable[9] = NEW_String_string___String___init(); /*new String*/
+          variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
           variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)); /*new String*/
           variable[11] = variable[10];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
           variable[12] = variable[0];
-          variable[12] = ((mmbuilder___AClassdef___name_t)CALL(variable[12],COLOR_mmbuilder___PClassdef___name))(variable[12]) /*AClassdef::name*/;
+          variable[12] = CALL_mmbuilder___PClassdef___name(variable[12])(variable[12]) /*AClassdef::name*/;
           variable[13] = variable[12];
-          variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+          variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
           variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)); /*new String*/
           variable[15] = variable[14];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-          variable[16] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[6] /*c*/) /*MMLocalClass::name*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+          variable[16] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/;
           variable[17] = variable[16];
-          variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+          variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
           variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
           variable[19] = variable[18];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+          variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
         } else { /*if*/
-          variable[8] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable[7] /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable[7] /*cg*/) /*MMGlobalClass::is_interface*/;
+          variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_interface*/;
           if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
             variable[8] = variable[0];
-            variable[9] = NEW_String_string___String___init(); /*new String*/
+            variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
             variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Interface "), TAG_Int(25)); /*new String*/
             variable[11] = variable[10];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
             variable[12] = variable[0];
-            variable[12] = ((mmbuilder___AClassdef___name_t)CALL(variable[12],COLOR_mmbuilder___PClassdef___name))(variable[12]) /*AClassdef::name*/;
+            variable[12] = CALL_mmbuilder___PClassdef___name(variable[12])(variable[12]) /*AClassdef::name*/;
             variable[13] = variable[12];
-            variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+            variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
             variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise class "), TAG_Int(25)); /*new String*/
             variable[15] = variable[14];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-            variable[16] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[6] /*c*/) /*MMLocalClass::name*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+            variable[16] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/;
             variable[17] = variable[16];
-            variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+            variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
             variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
             variable[19] = variable[18];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
-            ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+            variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+            CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
           }
         }
       } else { /*if*/
-        variable[8] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable[3] /*glob*/) /*MMGlobalClass::is_universal*/;
+        variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_universal*/;
         if (UNTAG_Bool(variable[8])) { /*if*/
-          variable[8] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable[7] /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable[7] /*cg*/) /*MMGlobalClass::is_interface*/;
+          variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_interface*/;
           variable[8] =  TAG_Bool(!UNTAG_Bool(variable[8]));
           if (UNTAG_Bool(variable[8])) { /* and */
-            variable[8] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable[7] /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/;
+            variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/;
             variable[8] =  TAG_Bool(!UNTAG_Bool(variable[8]));
           }
           if (UNTAG_Bool(variable[8])) { /*if*/
             variable[8] = variable[0];
-            variable[9] = NEW_String_string___String___init(); /*new String*/
+            variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
             variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Universal class "), TAG_Int(31)); /*new String*/
             variable[11] = variable[10];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
             variable[12] = variable[0];
-            variable[12] = ((mmbuilder___AClassdef___name_t)CALL(variable[12],COLOR_mmbuilder___PClassdef___name))(variable[12]) /*AClassdef::name*/;
+            variable[12] = CALL_mmbuilder___PClassdef___name(variable[12])(variable[12]) /*AClassdef::name*/;
             variable[13] = variable[12];
-            variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+            variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
             variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise class "), TAG_Int(25)); /*new String*/
             variable[15] = variable[14];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-            variable[16] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[6] /*c*/) /*MMLocalClass::name*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+            variable[16] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/;
             variable[17] = variable[16];
-            variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+            variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
             variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
             variable[19] = variable[18];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
-            ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+            variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+            CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
           }
         } else { /*if*/
-          variable[8] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable[7] /*cg*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/;
+          variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*cg*/)( variable[7] /*cg*/) /*MMGlobalClass::is_universal*/;
           if (UNTAG_Bool(variable[8])) { /*if*/
             variable[8] = variable[0];
-            variable[9] = NEW_String_string___String___init(); /*new String*/
+            variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
             variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Special error: Class "), TAG_Int(21)); /*new String*/
             variable[11] = variable[10];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
             variable[12] = variable[0];
-            variable[12] = ((mmbuilder___AClassdef___name_t)CALL(variable[12],COLOR_mmbuilder___PClassdef___name))(variable[12]) /*AClassdef::name*/;
+            variable[12] = CALL_mmbuilder___PClassdef___name(variable[12])(variable[12]) /*AClassdef::name*/;
             variable[13] = variable[12];
-            variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+            variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
             variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" try to specialise universal class "), TAG_Int(35)); /*new String*/
             variable[15] = variable[14];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
-            variable[16] = ((abstractmetamodel___MMLocalClass___name_t)CALL( variable[6] /*c*/,COLOR_abstractmetamodel___MMLocalClass___name))( variable[6] /*c*/) /*MMLocalClass::name*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
+            variable[16] = CALL_abstractmetamodel___MMLocalClass___name( variable[6] /*c*/)( variable[6] /*c*/) /*MMLocalClass::name*/;
             variable[17] = variable[16];
-            variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[17]) /*String::append*/;
+            variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[17]) /*AbstractArray::add*/;
             variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
             variable[19] = variable[18];
-            ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
-            ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
+            variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+            CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
           }
         }
       }
       continue_74: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
     }
     break_74: while(0);
     goto return_label73;
   }
   variable[4] = variable[0];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-  ((syntax_base___MMGlobalClass___check_visibility_t)CALL( variable[3] /*glob*/,COLOR_syntax_base___MMGlobalClass___check_visibility))( variable[3] /*glob*/,  variable[1] /*v*/, variable[4], variable[5]) /*MMGlobalClass::check_visibility*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  CALL_syntax_base___MMGlobalClass___check_visibility( variable[3] /*glob*/)( variable[3] /*glob*/,  variable[1] /*v*/, variable[4], variable[5]) /*MMGlobalClass::check_visibility*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AClassdef___n_kwredef_t)CALL(variable[4],COLOR_parser_nodes___AClassdef___n_kwredef))(variable[4]) /*AClassdef::n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = CALL_parser_nodes___AClassdef___n_kwredef(variable[4])(variable[4]) /*AClassdef::n_kwredef*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] = variable[0];
-    variable[8] = ((mmbuilder___AClassdef___name_t)CALL(variable[8],COLOR_mmbuilder___PClassdef___name))(variable[8]) /*AClassdef::name*/;
+    variable[8] = CALL_mmbuilder___PClassdef___name(variable[8])(variable[8]) /*AClassdef::name*/;
     variable[9] = variable[8];
-    variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is an imported class. Add the redef keyword to refine it."), TAG_Int(58)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     goto return_label73;
   }
-  variable[4] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable[3] /*glob*/) /*MMGlobalClass::intro*/;
-  variable[4] = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___arity))(variable[4]) /*MMLocalClass::arity*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___arity(variable[4])(variable[4]) /*MMLocalClass::arity*/;
   variable[5] = variable[0];
   variable[5] = ATTR_mmbuilder___PClassdef____local_class(variable[5]) /*PClassdef::_local_class*/;
-  variable[5] = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___arity))(variable[5]) /*MMLocalClass::arity*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___arity(variable[5])(variable[5]) /*MMLocalClass::arity*/;
   variable[4] = TAG_Bool((variable[4])!=(variable[5]));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Formal parameter arity missmatch; got "), TAG_Int(51)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] = variable[0];
     variable[8] = ATTR_mmbuilder___PClassdef____local_class(variable[8]) /*PClassdef::_local_class*/;
-    variable[8] = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___arity))(variable[8]) /*MMLocalClass::arity*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___arity(variable[8])(variable[8]) /*MMLocalClass::arity*/;
     variable[9] = variable[8];
-    variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-    variable[12] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___intro))( variable[3] /*glob*/) /*MMGlobalClass::intro*/;
-    variable[12] = ((abstractmetamodel___MMLocalClass___arity_t)CALL(variable[12],COLOR_abstractmetamodel___MMLocalClass___arity))(variable[12]) /*MMLocalClass::arity*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[12] = CALL_abstractmetamodel___MMGlobalClass___intro( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::intro*/;
+    variable[12] = CALL_abstractmetamodel___MMLocalClass___arity(variable[12])(variable[12]) /*MMLocalClass::arity*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
   }
-  variable[4] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_interface*/;
   variable[4] =  TAG_Bool(!UNTAG_Bool(variable[4]));
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AClassdef___n_classkind_t)CALL(variable[4],COLOR_parser_nodes___AClassdef___n_classkind))(variable[4]) /*AClassdef::n_classkind*/;
-    variable[4] = ((mmbuilder___PClasskind___is_interface_t)CALL(variable[4],COLOR_mmbuilder___PClasskind___is_interface))(variable[4]) /*PClasskind::is_interface*/;
+    variable[4] = CALL_parser_nodes___AClassdef___n_classkind(variable[4])(variable[4]) /*AClassdef::n_classkind*/;
+    variable[4] = CALL_mmbuilder___PClasskind___is_interface(variable[4])(variable[4]) /*PClasskind::is_interface*/;
   }
   variable[5] = variable[4];
   if (!UNTAG_Bool(variable[5])) { /* or */
-    variable[5] = ((abstractmetamodel___MMGlobalClass___is_abstract_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_abstract))( variable[3] /*glob*/) /*MMGlobalClass::is_abstract*/;
+    variable[5] = CALL_abstractmetamodel___MMGlobalClass___is_abstract( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_abstract*/;
     variable[5] =  TAG_Bool(!UNTAG_Bool(variable[5]));
   }
   variable[4] = variable[5];
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AClassdef___n_classkind_t)CALL(variable[5],COLOR_parser_nodes___AClassdef___n_classkind))(variable[5]) /*AClassdef::n_classkind*/;
-    variable[5] = ((mmbuilder___PClasskind___is_abstract_t)CALL(variable[5],COLOR_mmbuilder___PClasskind___is_abstract))(variable[5]) /*PClasskind::is_abstract*/;
+    variable[5] = CALL_parser_nodes___AClassdef___n_classkind(variable[5])(variable[5]) /*AClassdef::n_classkind*/;
+    variable[5] = CALL_mmbuilder___PClasskind___is_abstract(variable[5])(variable[5]) /*PClasskind::is_abstract*/;
   }
   variable[4] = variable[5];
   variable[5] = variable[4];
   if (!UNTAG_Bool(variable[5])) { /* or */
-    variable[5] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable[3] /*glob*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable[3] /*glob*/) /*MMGlobalClass::is_universal*/;
+    variable[5] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[3] /*glob*/)( variable[3] /*glob*/) /*MMGlobalClass::is_universal*/;
     variable[5] =  TAG_Bool(!UNTAG_Bool(variable[5]));
   }
   variable[4] = variable[5];
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AClassdef___n_classkind_t)CALL(variable[5],COLOR_parser_nodes___AClassdef___n_classkind))(variable[5]) /*AClassdef::n_classkind*/;
-    variable[5] = ((mmbuilder___PClasskind___is_universal_t)CALL(variable[5],COLOR_mmbuilder___PClasskind___is_universal))(variable[5]) /*PClasskind::is_universal*/;
+    variable[5] = CALL_parser_nodes___AClassdef___n_classkind(variable[5])(variable[5]) /*AClassdef::n_classkind*/;
+    variable[5] = CALL_mmbuilder___PClasskind___is_universal(variable[5])(variable[5]) /*PClasskind::is_universal*/;
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: cannot change kind of class "), TAG_Int(41)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] = variable[0];
-    variable[8] = ((mmbuilder___AClassdef___name_t)CALL(variable[8],COLOR_mmbuilder___PClassdef___name))(variable[8]) /*AClassdef::name*/;
+    variable[8] = CALL_mmbuilder___PClassdef___name(variable[8])(variable[8]) /*AClassdef::name*/;
     variable[9] = variable[8];
-    variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
   }
   return_label73: while(false);
   tracehead = trace.prev;
@@ -2050,8 +2065,8 @@ val_t mmbuilder___AClassdef___name(val_t  self) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AClassdef___n_id_t)CALL(variable[2],COLOR_parser_nodes___AClassdef___n_id))(variable[2]) /*AClassdef::n_id*/;
-  variable[2] = ((syntax_base___Token___to_symbol_t)CALL(variable[2],COLOR_syntax_base___Token___to_symbol))(variable[2]) /*Token::to_symbol*/;
+  variable[2] = CALL_parser_nodes___AClassdef___n_id(variable[2])(variable[2]) /*AClassdef::n_id*/;
+  variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/;
   variable[1] = variable[2];
   goto return_label75;
   return_label75: while(false);
@@ -2066,8 +2081,8 @@ val_t mmbuilder___AClassdef___arity(val_t  self) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AClassdef___n_formaldefs_t)CALL(variable[2],COLOR_parser_nodes___AClassdef___n_formaldefs))(variable[2]) /*AClassdef::n_formaldefs*/;
-  variable[2] = ((list___List___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*List::length*/;
+  variable[2] = CALL_parser_nodes___AClassdef___n_formaldefs(variable[2])(variable[2]) /*AClassdef::n_formaldefs*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*List::length*/;
   variable[1] = variable[2];
   goto return_label76;
   return_label76: while(false);
@@ -2082,8 +2097,8 @@ val_t mmbuilder___AClassdef___visibility_level(val_t  self) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AClassdef___n_visibility_t)CALL(variable[2],COLOR_parser_nodes___AClassdef___n_visibility))(variable[2]) /*AClassdef::n_visibility*/;
-  variable[2] = ((mmbuilder___PVisibility___level_t)CALL(variable[2],COLOR_mmbuilder___PVisibility___level))(variable[2]) /*PVisibility::level*/;
+  variable[2] = CALL_parser_nodes___AClassdef___n_visibility(variable[2])(variable[2]) /*AClassdef::n_visibility*/;
+  variable[2] = CALL_mmbuilder___PVisibility___level(variable[2])(variable[2]) /*PVisibility::level*/;
   variable[1] = variable[2];
   goto return_label77;
   return_label77: while(false);
@@ -2101,7 +2116,7 @@ val_t mmbuilder___AMainClassdef___name(val_t  self) {
   if (once_bool_79) variable[2] = once_value_79;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("Sys"), TAG_Int(3)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
     once_value_79 = variable[2];
     once_bool_79 = true;
   }
@@ -2122,7 +2137,7 @@ val_t mmbuilder___ATopClassdef___name(val_t  self) {
   if (once_bool_81) variable[2] = once_value_81;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
     once_value_81 = variable[2];
     once_bool_81 = true;
   }
@@ -2153,7 +2168,7 @@ void mmbuilder___MMSrcTypeFormalParameter___init(val_t  self, val_t  param0, val
   variable[3] =  param2;
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeFormalParameter].i]) return;
-  ((genericity___MMTypeFormalParameter___init_t)CALL(variable[0],COLOR_genericity___MMTypeFormalParameter___init))(variable[0],  variable[1] /*name*/,  variable[2] /*pos*/,  variable[3] /*local_class*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/;
+  CALL_genericity___MMTypeFormalParameter___init(variable[0])(variable[0],  variable[1] /*name*/,  variable[2] /*pos*/,  variable[3] /*local_class*/, init_table /*YYY*/) /*MMTypeFormalParameter::init*/;
   variable[6] = variable[0];
   ATTR_mmbuilder___MMSrcTypeFormalParameter____node(variable[6]) /*MMSrcTypeFormalParameter::_node*/ =  variable[4] /*n*/;
   return_label82: while(false);
@@ -2170,25 +2185,25 @@ void mmbuilder___AFormaldef___accept_class_builder(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AFormaldef___n_id_t)CALL(variable[4],COLOR_parser_nodes___AFormaldef___n_id))(variable[4]) /*AFormaldef::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___AFormaldef___n_id(variable[4])(variable[4]) /*AFormaldef::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[3] = variable[4];
-  variable[5] = ((mmbuilder___ClassBuilderVisitor___local_class_arity_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity))( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/;
-  variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[5] = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/;
+  variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
   variable[7] = variable[0];
   variable[8] = NEW_MMSrcTypeFormalParameter_mmbuilder___MMSrcTypeFormalParameter___init( variable[3] /*name*/, variable[5], variable[6], variable[7]); /*new MMSrcTypeFormalParameter*/
   variable[5] = variable[8];
   variable[4] = variable[5];
   variable[5] = variable[0];
   ATTR_mmbuilder___AFormaldef____formal(variable[5]) /*AFormaldef::_formal*/ =  variable[4] /*formal_type*/;
-  variable[5] = ((mmbuilder___ClassBuilderVisitor___local_class_arity_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity))( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/;
+  variable[5] = CALL_mmbuilder___ClassBuilderVisitor___local_class_arity( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::local_class_arity*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1)));
-  ((mmbuilder___ClassBuilderVisitor___local_class_arity__eq_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity__eq))( variable[1] /*v*/, variable[5]) /*ClassBuilderVisitor::local_class_arity=*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  ((genericity___MMLocalClass___register_formal_t)CALL(variable[5],COLOR_genericity___MMLocalClass___register_formal))(variable[5],  variable[4] /*formal_type*/) /*MMLocalClass::register_formal*/;
-  variable[5] = ((mmbuilder___ClassBuilderVisitor___formals_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___ClassBuilderVisitor___formals))( variable[1] /*v*/) /*ClassBuilderVisitor::formals*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5],  variable[3] /*name*/,  variable[4] /*formal_type*/) /*Map::[]=*/;
-  ((mmbuilder___AFormaldef___accept_class_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AFormaldef___accept_class_builder))(variable[0], variable[1]) /*super AFormaldef::accept_class_builder*/;
+  CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[5]) /*ClassBuilderVisitor::local_class_arity=*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  CALL_genericity___MMLocalClass___register_formal(variable[5])(variable[5],  variable[4] /*formal_type*/) /*MMLocalClass::register_formal*/;
+  variable[5] = CALL_mmbuilder___ClassBuilderVisitor___formals( variable[1] /*v*/)( variable[1] /*v*/) /*ClassBuilderVisitor::formals*/;
+  CALL_abstract_collection___Map_____braeq(variable[5])(variable[5],  variable[3] /*name*/,  variable[4] /*formal_type*/) /*Map::[]=*/;
+  CALL_SUPER_mmbuilder___AFormaldef___accept_class_builder(variable[0])(variable[0], variable[1]) /*super AFormaldef::accept_class_builder*/;
   return_label83: while(false);
   tracehead = trace.prev;
   return;
@@ -2201,86 +2216,87 @@ void mmbuilder___AFormaldef___accept_class_verifier(val_t  self, val_t  param0)
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___AFormaldef___accept_class_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AFormaldef___accept_class_verifier))(variable[0], variable[1]) /*super AFormaldef::accept_class_verifier*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super AFormaldef::accept_class_verifier*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
   variable[3] = variable[4];
-  variable[5] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[3] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[3] /*c*/) /*MMLocalClass::global*/;
-  variable[5] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[5]) /*MMGlobalClass::intro*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___global( variable[3] /*c*/)( variable[3] /*c*/) /*MMLocalClass::global*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[5])(variable[5]) /*MMGlobalClass::intro*/;
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(( variable[3] /*c*/ ==  variable[4] /*o*/) || (( variable[3] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, variable[4] /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))( variable[3] /*c*/,  variable[4] /*o*/) /*Object::==*/)))));
+  variable[5] = TAG_Bool(( variable[3] /*c*/ ==  variable[4] /*o*/) || (( variable[3] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, variable[4] /*o*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*c*/)( variable[3] /*c*/,  variable[4] /*o*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AFormaldef___n_type_t)CALL(variable[5],COLOR_parser_nodes___AFormaldef___n_type))(variable[5]) /*AFormaldef::n_type*/;
-    variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[5] = CALL_parser_nodes___AFormaldef___n_type(variable[5])(variable[5]) /*AFormaldef::n_type*/;
+    variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = variable[0];
       variable[5] = ATTR_mmbuilder___AFormaldef____formal(variable[5]) /*AFormaldef::_formal*/;
-      variable[6] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-      variable[6] = ((inheritance___MMModule___type_any_t)CALL(variable[6],COLOR_inheritance___MMModule___type_any))(variable[6]) /*MMModule::type_any*/;
-      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable[5],COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable[5], variable[6]) /*MMTypeFormalParameter::bound=*/;
+      variable[6] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+      variable[6] = CALL_inheritance___MMModule___type_any(variable[6])(variable[6]) /*MMModule::type_any*/;
+      CALL_genericity___MMTypeFormalParameter___bound__eq(variable[5])(variable[5], variable[6]) /*MMTypeFormalParameter::bound=*/;
     } else { /*if*/
       variable[5] = variable[0];
       variable[5] = ATTR_mmbuilder___AFormaldef____formal(variable[5]) /*AFormaldef::_formal*/;
       variable[6] = variable[0];
-      variable[6] = ((parser_nodes___AFormaldef___n_type_t)CALL(variable[6],COLOR_parser_nodes___AFormaldef___n_type))(variable[6]) /*AFormaldef::n_type*/;
-      variable[6] = ((syntax_base___PType___get_stype_t)CALL(variable[6],COLOR_syntax_base___PType___get_stype))(variable[6],  variable[1] /*v*/) /*PType::get_stype*/;
-      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable[5],COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable[5], variable[6]) /*MMTypeFormalParameter::bound=*/;
+      variable[6] = CALL_parser_nodes___AFormaldef___n_type(variable[6])(variable[6]) /*AFormaldef::n_type*/;
+      variable[6] = CALL_syntax_base___PType___get_stype(variable[6])(variable[6],  variable[1] /*v*/) /*PType::get_stype*/;
+      CALL_genericity___MMTypeFormalParameter___bound__eq(variable[5])(variable[5], variable[6]) /*MMTypeFormalParameter::bound=*/;
     }
   } else { /*if*/
     variable[6] = variable[0];
     variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/;
-    variable[6] = ((genericity___MMTypeFormalParameter___position_t)CALL(variable[6],COLOR_genericity___MMTypeFormalParameter___position))(variable[6]) /*MMTypeFormalParameter::position*/;
-    variable[6] = ((genericity___MMLocalClass___get_formal_t)CALL( variable[4] /*o*/,COLOR_genericity___MMLocalClass___get_formal))( variable[4] /*o*/, variable[6]) /*MMLocalClass::get_formal*/;
-    variable[6] = ((type_formal___MMTypeFormal___bound_t)CALL(variable[6],COLOR_type_formal___MMTypeFormal___bound))(variable[6]) /*MMTypeFormal::bound*/;
-    variable[7] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-    variable[6] = ((static_type___MMType___for_module_t)CALL(variable[6],COLOR_static_type___MMType___for_module))(variable[6], variable[7]) /*MMType::for_module*/;
+    variable[6] = CALL_genericity___MMTypeFormalParameter___position(variable[6])(variable[6]) /*MMTypeFormalParameter::position*/;
+    variable[6] = CALL_genericity___MMLocalClass___get_formal( variable[4] /*o*/)( variable[4] /*o*/, variable[6]) /*MMLocalClass::get_formal*/;
+    variable[6] = CALL_type_formal___MMTypeFormal___bound(variable[6])(variable[6]) /*MMTypeFormal::bound*/;
+    variable[7] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+    variable[6] = CALL_static_type___MMType___for_module(variable[6])(variable[6], variable[7]) /*MMType::for_module*/;
     variable[5] = variable[6];
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AFormaldef___n_type_t)CALL(variable[6],COLOR_parser_nodes___AFormaldef___n_type))(variable[6]) /*AFormaldef::n_type*/;
-    variable[6] = TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[6] = CALL_parser_nodes___AFormaldef___n_type(variable[6])(variable[6]) /*AFormaldef::n_type*/;
+    variable[6] = TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
       variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/;
-      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable[6],COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable[6],  variable[5] /*ob*/) /*MMTypeFormalParameter::bound=*/;
+      CALL_genericity___MMTypeFormalParameter___bound__eq(variable[6])(variable[6],  variable[5] /*ob*/) /*MMTypeFormalParameter::bound=*/;
     } else { /*if*/
       variable[6] = variable[0];
       variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/;
       variable[7] = variable[0];
-      variable[7] = ((parser_nodes___AFormaldef___n_type_t)CALL(variable[7],COLOR_parser_nodes___AFormaldef___n_type))(variable[7]) /*AFormaldef::n_type*/;
-      variable[7] = ((syntax_base___PType___get_stype_t)CALL(variable[7],COLOR_syntax_base___PType___get_stype))(variable[7],  variable[1] /*v*/) /*PType::get_stype*/;
-      ((genericity___MMTypeFormalParameter___bound__eq_t)CALL(variable[6],COLOR_genericity___MMTypeFormalParameter___bound__eq))(variable[6], variable[7]) /*MMTypeFormalParameter::bound=*/;
+      variable[7] = CALL_parser_nodes___AFormaldef___n_type(variable[7])(variable[7]) /*AFormaldef::n_type*/;
+      variable[7] = CALL_syntax_base___PType___get_stype(variable[7])(variable[7],  variable[1] /*v*/) /*PType::get_stype*/;
+      CALL_genericity___MMTypeFormalParameter___bound__eq(variable[6])(variable[6], variable[7]) /*MMTypeFormalParameter::bound=*/;
       variable[6] = variable[0];
       variable[6] = ATTR_mmbuilder___AFormaldef____formal(variable[6]) /*AFormaldef::_formal*/;
-      variable[6] = ((type_formal___MMTypeFormal___bound_t)CALL(variable[6],COLOR_type_formal___MMTypeFormal___bound))(variable[6]) /*MMTypeFormal::bound*/;
-      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[5] /*ob*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[5] /*ob*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[5] /*ob*/) /*Object::==*/)))))));
+      variable[6] = CALL_type_formal___MMTypeFormal___bound(variable[6])(variable[6]) /*MMTypeFormal::bound*/;
+      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  variable[5] /*ob*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[5] /*ob*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[5] /*ob*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[6])) { /*if*/
         variable[6] = variable[0];
-        variable[7] = NEW_String_string___String___init(); /*new String*/
+        variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Cannot change formal parameter type of class "), TAG_Int(58)); /*new String*/
         variable[9] = variable[8];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
         variable[10] =  variable[3] /*c*/;
-        variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+        variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
         variable[11] = NEW_String_string___String___with_native(BOX_NativeString("; got "), TAG_Int(6)); /*new String*/
         variable[12] = variable[11];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
         variable[13] = variable[0];
         variable[13] = ATTR_mmbuilder___AFormaldef____formal(variable[13]) /*AFormaldef::_formal*/;
-        variable[13] = ((type_formal___MMTypeFormal___bound_t)CALL(variable[13],COLOR_type_formal___MMTypeFormal___bound))(variable[13]) /*MMTypeFormal::bound*/;
+        variable[13] = CALL_type_formal___MMTypeFormal___bound(variable[13])(variable[13]) /*MMTypeFormal::bound*/;
         variable[14] = variable[13];
-        variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[14]) /*String::append*/;
+        variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/;
         variable[15] = NEW_String_string___String___with_native(BOX_NativeString(", expected "), TAG_Int(11)); /*new String*/
         variable[16] = variable[15];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[16]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
         variable[17] =  variable[5] /*ob*/;
-        variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[17]) /*String::append*/;
+        variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[17]) /*AbstractArray::add*/;
         variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[19]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[19]) /*AbstractArray::add*/;
+        variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
       }
     }
   }
@@ -2296,10 +2312,10 @@ void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t  self,
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___ASuperclass___accept_class_specialization_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder))(variable[0], variable[1]) /*super ASuperclass::accept_class_specialization_builder*/;
+  CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_specialization_builder*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ASuperclass___n_type_t)CALL(variable[4],COLOR_parser_nodes___ASuperclass___n_type))(variable[4]) /*ASuperclass::n_type*/;
-  variable[4] = ((syntax_base___PType___get_local_class_t)CALL(variable[4],COLOR_syntax_base___PType___get_local_class))(variable[4],  variable[1] /*v*/) /*PType::get_local_class*/;
+  variable[4] = CALL_parser_nodes___ASuperclass___n_type(variable[4])(variable[4]) /*ASuperclass::n_type*/;
+  variable[4] = CALL_syntax_base___PType___get_local_class(variable[4])(variable[4],  variable[1] /*v*/) /*PType::get_local_class*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
   variable[6] = NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(variable[5],  variable[3] /*c*/); /*new MMSrcAncestor*/
@@ -2307,8 +2323,8 @@ void mmbuilder___ASuperclass___accept_class_specialization_builder(val_t  self,
   variable[4] = variable[5];
   variable[5] = variable[0];
   ATTR_mmbuilder___ASuperclass____ancestor(variable[5]) /*ASuperclass::_ancestor*/ =  variable[4] /*ancestor*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  ((inheritance___MMLocalClass___add_direct_parent_t)CALL(variable[5],COLOR_inheritance___MMLocalClass___add_direct_parent))(variable[5],  variable[4] /*ancestor*/) /*MMLocalClass::add_direct_parent*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  CALL_inheritance___MMLocalClass___add_direct_parent(variable[5])(variable[5],  variable[4] /*ancestor*/) /*MMLocalClass::add_direct_parent*/;
   return_label85: while(false);
   tracehead = trace.prev;
   return;
@@ -2321,18 +2337,18 @@ void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t  self, val_t
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___ASuperclass___accept_class_ancestor_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder))(variable[0], variable[1]) /*super ASuperclass::accept_class_ancestor_builder*/;
+  CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_ancestor_builder*/;
   variable[3] = variable[0];
   variable[3] = ATTR_mmbuilder___ASuperclass____ancestor(variable[3]) /*ASuperclass::_ancestor*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ASuperclass___n_type_t)CALL(variable[4],COLOR_parser_nodes___ASuperclass___n_type))(variable[4]) /*ASuperclass::n_type*/;
-  variable[4] = ((syntax_base___PType___get_unchecked_stype_t)CALL(variable[4],COLOR_syntax_base___PType___get_unchecked_stype))(variable[4],  variable[1] /*v*/) /*PType::get_unchecked_stype*/;
-  ((static_type___MMAncestor___stype__eq_t)CALL(variable[3],COLOR_static_type___MMAncestor___stype__eq))(variable[3], variable[4]) /*MMAncestor::stype=*/;
+  variable[4] = CALL_parser_nodes___ASuperclass___n_type(variable[4])(variable[4]) /*ASuperclass::n_type*/;
+  variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[4])(variable[4],  variable[1] /*v*/) /*PType::get_unchecked_stype*/;
+  CALL_static_type___MMAncestor___stype__eq(variable[3])(variable[3], variable[4]) /*MMAncestor::stype=*/;
   variable[3] = variable[0];
   variable[3] = ATTR_mmbuilder___ASuperclass____ancestor(variable[3]) /*ASuperclass::_ancestor*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  variable[4] = ((genericity___MMLocalClass___get_type_t)CALL(variable[4],COLOR_static_type___MMLocalClass___get_type))(variable[4]) /*MMLocalClass::get_type*/;
-  ((static_type___MMAncestor___inheriter__eq_t)CALL(variable[3],COLOR_static_type___MMAncestor___inheriter__eq))(variable[3], variable[4]) /*MMAncestor::inheriter=*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[4] = CALL_static_type___MMLocalClass___get_type(variable[4])(variable[4]) /*MMLocalClass::get_type*/;
+  CALL_static_type___MMAncestor___inheriter__eq(variable[3])(variable[3], variable[4]) /*MMAncestor::inheriter=*/;
   return_label86: while(false);
   tracehead = trace.prev;
   return;
@@ -2345,10 +2361,10 @@ void mmbuilder___ASuperclass___accept_class_verifier(val_t  self, val_t  param0)
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___ASuperclass___accept_class_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___ASuperclass___accept_class_verifier))(variable[0], variable[1]) /*super ASuperclass::accept_class_verifier*/;
+  CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(variable[0])(variable[0], variable[1]) /*super ASuperclass::accept_class_verifier*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ASuperclass___n_type_t)CALL(variable[3],COLOR_parser_nodes___ASuperclass___n_type))(variable[3]) /*ASuperclass::n_type*/;
-  ((syntax_base___PType___check_conform_t)CALL(variable[3],COLOR_syntax_base___PType___check_conform))(variable[3],  variable[1] /*v*/) /*PType::check_conform*/;
+  variable[3] = CALL_parser_nodes___ASuperclass___n_type(variable[3])(variable[3]) /*ASuperclass::n_type*/;
+  CALL_syntax_base___PType___check_conform(variable[3])(variable[3],  variable[1] /*v*/) /*PType::check_conform*/;
   return_label87: while(false);
   tracehead = trace.prev;
   return;
@@ -2373,15 +2389,15 @@ void mmbuilder___PPropdef___process_and_check(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   variable[3] =  param2;
   variable[4] =  param3;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*prop*/) /*MMLocalProperty::global*/;
-  variable[6] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[6]) /*MMGlobalProperty::intro*/;
-  variable[6] = TAG_Bool((variable[6] ==  variable[2] /*prop*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[2] /*prop*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[2] /*prop*/) /*Object::==*/)))));
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[6])(variable[6]) /*MMGlobalProperty::intro*/;
+  variable[6] = TAG_Bool((variable[6] ==  variable[2] /*prop*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], variable[2] /*prop*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[2] /*prop*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((mmbuilder___PPropdef___do_and_check_intro_t)CALL(variable[6],COLOR_mmbuilder___PPropdef___do_and_check_intro))(variable[6],  variable[1] /*v*/,  variable[2] /*prop*/,  variable[3] /*has_redef*/,  variable[4] /*visibility_level*/) /*PPropdef::do_and_check_intro*/;
+    CALL_mmbuilder___PPropdef___do_and_check_intro(variable[6])(variable[6],  variable[1] /*v*/,  variable[2] /*prop*/,  variable[3] /*has_redef*/,  variable[4] /*visibility_level*/) /*PPropdef::do_and_check_intro*/;
   } else { /*if*/
     variable[6] = variable[0];
-    ((mmbuilder___PPropdef___do_and_check_redef_t)CALL(variable[6],COLOR_mmbuilder___PPropdef___do_and_check_redef))(variable[6],  variable[1] /*v*/,  variable[2] /*prop*/,  variable[3] /*has_redef*/,  variable[4] /*visibility_level*/) /*PPropdef::do_and_check_redef*/;
+    CALL_mmbuilder___PPropdef___do_and_check_redef(variable[6])(variable[6],  variable[1] /*v*/,  variable[2] /*prop*/,  variable[3] /*has_redef*/,  variable[4] /*visibility_level*/) /*PPropdef::do_and_check_redef*/;
   }
   return_label88: while(false);
   tracehead = trace.prev;
@@ -2398,188 +2414,193 @@ void mmbuilder___PPropdef___do_and_check_intro(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   variable[3] =  param2;
   variable[4] =  param3;
-  variable[7] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*prop*/) /*MMLocalProperty::global*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/;
   variable[6] = variable[7];
-  variable[8] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
-  variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___global))(variable[8]) /*MMLocalClass::global*/;
+  variable[8] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+  variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/;
   variable[7] = variable[8];
-  variable[8] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  variable[8] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___global))(variable[8]) /*MMLocalClass::global*/;
-  variable[8] = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalClass___visibility_level))(variable[8]) /*MMGlobalClass::visibility_level*/;
+  variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[8] = CALL_abstractmetamodel___MMLocalClass___global(variable[8])(variable[8]) /*MMLocalClass::global*/;
+  variable[8] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[8])(variable[8]) /*MMGlobalClass::visibility_level*/;
   variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(3)));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[4] =  TAG_Int(3) /*visibility_level=*/;
   }
-  ((abstractmetamodel___MMGlobalProperty___visibility_level__eq_t)CALL( variable[6] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level__eq))( variable[6] /*glob*/,  variable[4] /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/;
+  CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq( variable[6] /*glob*/)( variable[6] /*glob*/,  variable[4] /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/;
   if (UNTAG_Bool( variable[3] /*has_redef*/)) { /*if*/
     variable[8] = variable[0];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: No property "), TAG_Int(19)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-    variable[12] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+    variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[2] /*prop*/;
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" is inherited. Remove the redef keyword to define a new property."), TAG_Int(65)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
   }
-  variable[8] = ((abstractmetamodel___MMGlobalProperty___is_attribute_t)CALL( variable[6] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_attribute))( variable[6] /*glob*/) /*MMGlobalProperty::is_attribute*/;
+  variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_attribute( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_attribute*/;
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable[7] /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/;
+    variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[8] = variable[0];
-      variable[9] = NEW_String_string___String___init(); /*new String*/
+      variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
       variable[12] =  variable[2] /*prop*/;
-      variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+      variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the interface "), TAG_Int(18)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-      variable[15] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+      variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
       variable[16] = variable[15];
-      variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+      variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
       variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
-      variable[8] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable[7] /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/;
+      variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/;
       if (UNTAG_Bool(variable[8])) { /*if*/
         variable[8] = variable[0];
-        variable[9] = NEW_String_string___String___init(); /*new String*/
+        variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
         variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define attribute "), TAG_Int(35)); /*new String*/
         variable[11] = variable[10];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
         variable[12] =  variable[2] /*prop*/;
-        variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+        variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
         variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the universal class "), TAG_Int(24)); /*new String*/
         variable[14] = variable[13];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-        variable[15] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+        variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
         variable[16] = variable[15];
-        variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+        variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
         variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
         variable[18] = variable[17];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+        variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
       }
     }
   } else { /*if*/
-    variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable[6] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/;
+    variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[8] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL( variable[7] /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_interface))( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/;
+      variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_interface( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_interface*/;
       if (UNTAG_Bool(variable[8])) { /*if*/
         variable[8] = variable[0];
-        variable[9] = NEW_String_string___String___init(); /*new String*/
+        variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
         variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)); /*new String*/
         variable[11] = variable[10];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
         variable[12] =  variable[2] /*prop*/;
-        variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+        variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
         variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the class "), TAG_Int(14)); /*new String*/
         variable[14] = variable[13];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-        variable[15] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+        variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
         variable[16] = variable[15];
-        variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+        variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
         variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
         variable[18] = variable[17];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+        variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
       } else { /*if*/
-        variable[8] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL( variable[7] /*gbc*/,COLOR_abstractmetamodel___MMGlobalClass___is_universal))( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/;
+        variable[8] = CALL_abstractmetamodel___MMGlobalClass___is_universal( variable[7] /*gbc*/)( variable[7] /*gbc*/) /*MMGlobalClass::is_universal*/;
         if (UNTAG_Bool(variable[8])) { /*if*/
           variable[8] = variable[0];
-          variable[9] = NEW_String_string___String___init(); /*new String*/
+          variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
           variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attempt to define a constructor "), TAG_Int(39)); /*new String*/
           variable[11] = variable[10];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
           variable[12] =  variable[2] /*prop*/;
-          variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+          variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
           variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" in the universal "), TAG_Int(18)); /*new String*/
           variable[14] = variable[13];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-          variable[15] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+          variable[15] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
           variable[16] = variable[15];
-          variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+          variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
           variable[17] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
           variable[18] = variable[17];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+          variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
         }
       }
     }
   }
-  variable[8] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
-  variable[8] = TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
+  variable[8] = TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable[6] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/;
+    variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[6] /*glob*/)( variable[6] /*glob*/) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[9] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
-      variable[10] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[2] /*prop*/) /*MMLocalProperty::name*/;
-      variable[9] = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable[9], variable[10]) /*MMLocalClass::super_methods_named*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+      variable[10] = CALL_abstractmetamodel___MMLocalProperty___name( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::name*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable[9])(variable[9], variable[10]) /*MMLocalClass::super_methods_named*/;
       variable[8] = variable[9];
       variable[9] = variable[0];
-      ((mmbuilder___PPropdef___inherit_signature_t)CALL(variable[9],COLOR_mmbuilder___PPropdef___inherit_signature))(variable[9],  variable[1] /*v*/,  variable[2] /*prop*/,  variable[8] /*supers*/) /*PPropdef::inherit_signature*/;
+      CALL_mmbuilder___PPropdef___inherit_signature(variable[9])(variable[9],  variable[1] /*v*/,  variable[2] /*prop*/,  variable[8] /*supers*/) /*PPropdef::inherit_signature*/;
     }
-    variable[8] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[8] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[8])) { /*if*/
     } else { /*if*/
-      variable[8] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[8] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[8],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[8]) /*SignatureBuilder::untyped_params*/;
-      variable[8] = ((array___AbstractArray___is_empty_t)CALL(variable[8],COLOR_abstract_collection___Collection___is_empty))(variable[8]) /*AbstractArray::is_empty*/;
+      variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[8] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[8])(variable[8]) /*SignatureBuilder::untyped_params*/;
+      variable[8] = CALL_abstract_collection___Collection___is_empty(variable[8])(variable[8]) /*AbstractArray::is_empty*/;
       if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
-        variable[8] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-        variable[8] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[8],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[8]) /*SignatureBuilder::untyped_params*/;
-        variable[8] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[8],COLOR_abstract_collection___Collection___first))(variable[8]) /*IndexedCollection::first*/;
+        variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+        variable[8] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[8])(variable[8]) /*SignatureBuilder::untyped_params*/;
+        variable[8] = CALL_abstract_collection___Collection___first(variable[8])(variable[8]) /*IndexedCollection::first*/;
         variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Untyped parameter."), TAG_Int(25)); /*new String*/
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
       } else { /*if*/
         variable[8] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
-        variable[9] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-        variable[9] = ((genericity___MMLocalClass___get_type_t)CALL(variable[9],COLOR_static_type___MMLocalClass___get_type))(variable[9]) /*MMLocalClass::get_type*/;
+        variable[9] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+        variable[9] = CALL_static_type___MMLocalClass___get_type(variable[9])(variable[9]) /*MMLocalClass::get_type*/;
         variable[10] = NEW_MMSignature_static_type___MMSignature___init(variable[8],  NIT_NULL /*null*/, variable[9]); /*new MMSignature*/
         variable[8] = variable[10];
-        ((static_type___MMLocalProperty___signature__eq_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable[2] /*prop*/, variable[8]) /*MMLocalProperty::signature=*/;
-        variable[8] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-        variable[8] = ((mmbuilder___SignatureBuilder___closure_decls_t)CALL(variable[8],COLOR_mmbuilder___SignatureBuilder___closure_decls))(variable[8]) /*SignatureBuilder::closure_decls*/;
-        variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+        CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[8]) /*MMLocalProperty::signature=*/;
+        variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+        variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[8])(variable[8]) /*SignatureBuilder::closure_decls*/;
+        variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
         if (UNTAG_Bool(variable[8])) { /*if*/
-          variable[8] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-          variable[8] = ((mmbuilder___SignatureBuilder___closure_decls_t)CALL(variable[8],COLOR_mmbuilder___SignatureBuilder___closure_decls))(variable[8]) /*SignatureBuilder::closure_decls*/;
-          variable[8] = ((array___AbstractArray___iterator_t)CALL(variable[8],COLOR_abstract_collection___Collection___iterator))(variable[8]) /*AbstractArray::iterator*/;
+          variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+          variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[8])(variable[8]) /*SignatureBuilder::closure_decls*/;
+          variable[8] = CALL_abstract_collection___Collection___iterator(variable[8])(variable[8]) /*AbstractArray::iterator*/;
           while (true) { /*for*/
-            variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
+            variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
             if (!UNTAG_Bool(variable[9])) break; /*for*/
-            variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
+            variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
             variable[10] = variable[9];
-            variable[11] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
-            variable[11] = ((static_type___MMSignature___closures_t)CALL(variable[11],COLOR_static_type___MMSignature___closures))(variable[11]) /*MMSignature::closures*/;
-            variable[12] = ((mmbuilder___AClosureDecl___variable_t)CALL( variable[10] /*clos*/,COLOR_syntax_base___PClosureDecl___variable))( variable[10] /*clos*/) /*AClosureDecl::variable*/;
-            variable[12] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[12],COLOR_syntax_base___ClosureVariable___closure))(variable[12]) /*ClosureVariable::closure*/;
-            ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[12]) /*AbstractArray::add*/;
+            variable[11] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
+            variable[11] = CALL_static_type___MMSignature___closures(variable[11])(variable[11]) /*MMSignature::closures*/;
+            variable[12] = CALL_syntax_base___PClosureDecl___variable( variable[10] /*clos*/)( variable[10] /*clos*/) /*AClosureDecl::variable*/;
+            variable[12] = CALL_syntax_base___ClosureVariable___closure(variable[12])(variable[12]) /*ClosureVariable::closure*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
             continue_90: while(0);
-            ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
+            CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
           }
           break_90: while(0);
         }
@@ -2600,59 +2621,59 @@ void mmbuilder___PPropdef___inherit_signature(val_t  self, val_t  param0, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[6] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
+  variable[6] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
   variable[5] = variable[6];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*supers*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*supers*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[3] /*supers*/)( variable[3] /*supers*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
-    variable[10] = ((static_type___MMLocalProperty___signature_t)CALL( variable[8] /*ip*/,COLOR_static_type___MMLocalProperty___signature))( variable[8] /*ip*/) /*MMLocalProperty::signature*/;
-    variable[11] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-    variable[11] = ((genericity___MMLocalClass___get_type_t)CALL(variable[11],COLOR_static_type___MMLocalClass___get_type))(variable[11]) /*MMLocalClass::get_type*/;
-    variable[10] = ((vararg___MMSignature___adaptation_to_t)CALL(variable[10],COLOR_static_type___MMSignature___adaptation_to))(variable[10], variable[11]) /*MMSignature::adaptation_to*/;
+    variable[10] = CALL_static_type___MMLocalProperty___signature( variable[8] /*ip*/)( variable[8] /*ip*/) /*MMLocalProperty::signature*/;
+    variable[11] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[11] = CALL_static_type___MMLocalClass___get_type(variable[11])(variable[11]) /*MMLocalClass::get_type*/;
+    variable[10] = CALL_static_type___MMSignature___adaptation_to(variable[10])(variable[10], variable[11]) /*MMSignature::adaptation_to*/;
     variable[9] = variable[10];
-    variable[10] = TAG_Bool(( variable[5] /*s*/ ==  NIT_NULL /*null*/) || (( variable[5] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*s*/,COLOR_kernel___Object_____eqeq))( variable[5] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[10] = TAG_Bool(( variable[5] /*s*/ ==  NIT_NULL /*null*/) || (( variable[5] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*s*/)( variable[5] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[10])) { /*if*/
-      variable[10] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[10] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[10],COLOR_mmbuilder___SignatureBuilder___params))(variable[10]) /*SignatureBuilder::params*/;
-      variable[10] = ((array___AbstractArray___length_t)CALL(variable[10],COLOR_abstract_collection___Collection___length))(variable[10]) /*AbstractArray::length*/;
-      variable[11] = ((static_type___MMSignature___arity_t)CALL( variable[9] /*isig*/,COLOR_static_type___MMSignature___arity))( variable[9] /*isig*/) /*MMSignature::arity*/;
+      variable[10] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[10] = CALL_mmbuilder___SignatureBuilder___params(variable[10])(variable[10]) /*SignatureBuilder::params*/;
+      variable[10] = CALL_abstract_collection___Collection___length(variable[10])(variable[10]) /*AbstractArray::length*/;
+      variable[11] = CALL_static_type___MMSignature___arity( variable[9] /*isig*/)( variable[9] /*isig*/) /*MMSignature::arity*/;
       variable[10] = TAG_Bool((variable[10])!=(variable[11]));
       if (UNTAG_Bool(variable[10])) { /*if*/
         goto return_label91;
       }
-      variable[10] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[10] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[10],COLOR_mmbuilder___SignatureBuilder___params))(variable[10]) /*SignatureBuilder::params*/;
-      variable[10] = ((array___AbstractArray___iterator_t)CALL(variable[10],COLOR_abstract_collection___Collection___iterator))(variable[10]) /*AbstractArray::iterator*/;
+      variable[10] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[10] = CALL_mmbuilder___SignatureBuilder___params(variable[10])(variable[10]) /*SignatureBuilder::params*/;
+      variable[10] = CALL_abstract_collection___Collection___iterator(variable[10])(variable[10]) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+        variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[11])) break; /*for*/
-        variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+        variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
         variable[12] = variable[11];
-        variable[14] = ((mmbuilder___PParam___position_t)CALL( variable[12] /*p*/,COLOR_syntax_base___PParam___position))( variable[12] /*p*/) /*PParam::position*/;
-        variable[14] = ((static_type___MMSignature_____bra_t)CALL( variable[9] /*isig*/,COLOR_static_type___MMSignature_____bra))( variable[9] /*isig*/, variable[14]) /*MMSignature::[]*/;
+        variable[14] = CALL_syntax_base___PParam___position( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::position*/;
+        variable[14] = CALL_static_type___MMSignature_____bra( variable[9] /*isig*/)( variable[9] /*isig*/, variable[14]) /*MMSignature::[]*/;
         variable[13] = variable[14];
-        ((mmbuilder___PParam___stype__eq_t)CALL( variable[12] /*p*/,COLOR_mmbuilder___PParam___stype__eq))( variable[12] /*p*/,  variable[13] /*t*/) /*PParam::stype=*/;
-        variable[14] = ((mmbuilder___PParam___position_t)CALL( variable[12] /*p*/,COLOR_syntax_base___PParam___position))( variable[12] /*p*/) /*PParam::position*/;
-        variable[15] = ((vararg___MMSignature___vararg_rank_t)CALL( variable[9] /*isig*/,COLOR_vararg___MMSignature___vararg_rank))( variable[9] /*isig*/) /*MMSignature::vararg_rank*/;
+        CALL_mmbuilder___PParam___stype__eq( variable[12] /*p*/)( variable[12] /*p*/,  variable[13] /*t*/) /*PParam::stype=*/;
+        variable[14] = CALL_syntax_base___PParam___position( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::position*/;
+        variable[15] = CALL_vararg___MMSignature___vararg_rank( variable[9] /*isig*/)( variable[9] /*isig*/) /*MMSignature::vararg_rank*/;
         variable[14] = TAG_Bool((variable[14])==(variable[15]));
         if (UNTAG_Bool(variable[14])) { /*if*/
-          variable[14] = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable[1] /*v*/,  variable[13] /*t*/) /*AbsSyntaxVisitor::type_array*/;
+          variable[14] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/,  variable[13] /*t*/) /*AbsSyntaxVisitor::type_array*/;
           variable[13] = variable[14] /*t=*/;
         }
-        variable[14] = ((mmbuilder___PParam___variable_t)CALL( variable[12] /*p*/,COLOR_syntax_base___PParam___variable))( variable[12] /*p*/) /*PParam::variable*/;
-        ((syntax_base___Variable___stype__eq_t)CALL(variable[14],COLOR_syntax_base___Variable___stype__eq))(variable[14],  variable[13] /*t*/) /*Variable::stype=*/;
+        variable[14] = CALL_syntax_base___PParam___variable( variable[12] /*p*/)( variable[12] /*p*/) /*PParam::variable*/;
+        CALL_syntax_base___Variable___stype__eq(variable[14])(variable[14],  variable[13] /*t*/) /*Variable::stype=*/;
         continue_93: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
       }
       break_93: while(0);
       variable[5] =  variable[9] /*isig*/ /*s=*/;
-      ((static_type___MMLocalProperty___signature__eq_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable[2] /*prop*/,  variable[5] /*s*/) /*MMLocalProperty::signature=*/;
+      CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/,  variable[5] /*s*/) /*MMLocalProperty::signature=*/;
     }
     continue_92: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_92: while(0);
   return_label91: while(false);
@@ -2673,31 +2694,32 @@ void mmbuilder___PPropdef___do_and_check_redef(val_t  self, val_t  param0, val_t
   variable[7] = variable[0];
   variable[7] = TAG_Bool((variable[7]==NIT_NULL) || VAL_ISA(variable[7], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
   variable[6] = variable[7];
-  variable[8] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*prop*/) /*MMLocalProperty::global*/;
+  variable[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/;
   variable[7] = variable[8];
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable[3] /*has_redef*/)))) { /*if*/
     variable[8] = variable[0];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-    variable[12] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+    variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[2] /*prop*/;
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" is an inherited property. To redefine it, add the redef keyword."), TAG_Int(65)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
     goto return_label94;
   }
-  variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable[7] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/;
+  variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/;
   variable[9] = variable[8];
   if (UNTAG_Bool(variable[9])) { /* and */
     variable[9] =  TAG_Bool(!UNTAG_Bool( variable[6] /*is_init*/));
@@ -2705,408 +2727,416 @@ void mmbuilder___PPropdef___do_and_check_redef(val_t  self, val_t  param0, val_t
   variable[8] = variable[9];
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: A method "), TAG_Int(22)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-    variable[12] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+    variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
     variable[16] =  variable[2] /*prop*/;
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" cannot redefine a constructor."), TAG_Int(31)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
   } else { /*if*/
-    variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL( variable[7] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init))( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/;
+    variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::is_init*/;
     variable[8] =  TAG_Bool(!UNTAG_Bool(variable[8]));
     if (UNTAG_Bool(variable[8])) { /* and */
       variable[8] =  variable[6] /*is_init*/;
     }
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[8] = variable[0];
-      variable[9] = NEW_String_string___String___init(); /*new String*/
+      variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: A constructor "), TAG_Int(27)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-      variable[12] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+      variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
       variable[13] = variable[12];
-      variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+      variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
       variable[16] =  variable[2] /*prop*/;
-      variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+      variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
       variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" cannot redefine a method."), TAG_Int(26)); /*new String*/
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
     }
   }
-  variable[9] = ((static_type___MMLocalProperty___signature_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
+  variable[9] = CALL_static_type___MMLocalProperty___signature( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::signature*/;
   variable[8] = variable[9];
-  variable[9] = ((abstractmetamodel___MMLocalProperty___prhe_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___prhe))( variable[2] /*prop*/) /*MMLocalProperty::prhe*/;
-  variable[9] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[9],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[9]) /*PartialOrderElement::direct_greaters*/;
-  variable[9] = ((array___AbstractArray___iterator_t)CALL(variable[9],COLOR_abstract_collection___Collection___iterator))(variable[9]) /*AbstractArray::iterator*/;
+  variable[9] = CALL_abstractmetamodel___MMLocalProperty___prhe( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::prhe*/;
+  variable[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[9])(variable[9]) /*PartialOrderElement::direct_greaters*/;
+  variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[10] = ((array___ArrayIterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*ArrayIterator::is_ok*/;
+    variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[10])) break; /*for*/
-    variable[10] = ((array___ArrayIterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*ArrayIterator::item*/;
+    variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/;
     variable[11] = variable[10];
-    variable[13] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[11] /*i*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[11] /*i*/) /*MMLocalProperty::local_class*/;
-    variable[14] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*prop*/) /*MMLocalProperty::global*/;
-    variable[13] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[13], variable[14]) /*MMLocalClass::[]*/;
+    variable[13] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[11] /*i*/)( variable[11] /*i*/) /*MMLocalProperty::local_class*/;
+    variable[14] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/;
+    variable[13] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[13])(variable[13], variable[14]) /*MMLocalClass::[]*/;
     variable[12] = variable[13];
-    variable[14] = ((static_type___MMLocalProperty___signature_t)CALL( variable[11] /*i*/,COLOR_static_type___MMLocalProperty___signature))( variable[11] /*i*/) /*MMLocalProperty::signature*/;
-    variable[15] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-    variable[15] = ((genericity___MMLocalClass___get_type_t)CALL(variable[15],COLOR_static_type___MMLocalClass___get_type))(variable[15]) /*MMLocalClass::get_type*/;
-    variable[14] = ((vararg___MMSignature___adaptation_to_t)CALL(variable[14],COLOR_static_type___MMSignature___adaptation_to))(variable[14], variable[15]) /*MMSignature::adaptation_to*/;
+    variable[14] = CALL_static_type___MMLocalProperty___signature( variable[11] /*i*/)( variable[11] /*i*/) /*MMLocalProperty::signature*/;
+    variable[15] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[15] = CALL_static_type___MMLocalClass___get_type(variable[15])(variable[15]) /*MMLocalClass::get_type*/;
+    variable[14] = CALL_static_type___MMSignature___adaptation_to(variable[14])(variable[14], variable[15]) /*MMSignature::adaptation_to*/;
     variable[13] = variable[14];
-    variable[14] = TAG_Bool(( variable[8] /*s*/ ==  NIT_NULL /*null*/) || (( variable[8] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*s*/,COLOR_kernel___Object_____eqeq))( variable[8] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[14] = TAG_Bool(( variable[8] /*s*/ ==  NIT_NULL /*null*/) || (( variable[8] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*s*/)( variable[8] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[14])) { /*if*/
-      variable[14] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[14] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[14],COLOR_mmbuilder___SignatureBuilder___params))(variable[14]) /*SignatureBuilder::params*/;
-      variable[14] = ((array___AbstractArray___length_t)CALL(variable[14],COLOR_abstract_collection___Collection___length))(variable[14]) /*AbstractArray::length*/;
-      variable[15] = ((static_type___MMSignature___arity_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature___arity))( variable[13] /*isig*/) /*MMSignature::arity*/;
+      variable[14] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[14] = CALL_mmbuilder___SignatureBuilder___params(variable[14])(variable[14]) /*SignatureBuilder::params*/;
+      variable[14] = CALL_abstract_collection___Collection___length(variable[14])(variable[14]) /*AbstractArray::length*/;
+      variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/;
       variable[14] = TAG_Bool((variable[14])!=(variable[15]));
       if (UNTAG_Bool(variable[14])) { /*if*/
         variable[14] = variable[0];
-        variable[15] = NEW_String_string___String___init(); /*new String*/
+        variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/
         variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
         variable[17] = variable[16];
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[17]) /*String::append*/;
-        variable[18] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[17]) /*AbstractArray::add*/;
+        variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
         variable[19] = variable[18];
-        variable[19] = ((string___String___to_s_t)CALL(variable[19],COLOR_string___Object___to_s))(variable[19]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[19]) /*String::append*/;
+        variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[19]) /*AbstractArray::add*/;
         variable[20] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
         variable[21] = variable[20];
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[21]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[21]) /*AbstractArray::add*/;
         variable[22] =  variable[2] /*prop*/;
-        variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[22]) /*String::append*/;
+        variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[22]) /*AbstractArray::add*/;
         variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)); /*new String*/
         variable[24] = variable[23];
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[24]) /*String::append*/;
-        variable[25] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[12] /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[24]) /*AbstractArray::add*/;
+        variable[25] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
         variable[26] = variable[25];
-        variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[26]) /*String::append*/;
+        variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[26]) /*AbstractArray::add*/;
         variable[27] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
         variable[28] = variable[27];
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[28]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[28]) /*AbstractArray::add*/;
         variable[29] =  variable[12] /*ip*/;
-        variable[29] = ((string___String___to_s_t)CALL(variable[29],COLOR_string___Object___to_s))(variable[29]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[29]) /*String::append*/;
+        variable[29] = CALL_string___Object___to_s(variable[29])(variable[29]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[29]) /*AbstractArray::add*/;
         variable[30] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)); /*new String*/
         variable[31] = variable[30];
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[31]) /*String::append*/;
-        variable[32] = ((static_type___MMSignature___arity_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature___arity))( variable[13] /*isig*/) /*MMSignature::arity*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[31]) /*AbstractArray::add*/;
+        variable[32] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/;
         variable[33] = variable[32];
-        variable[33] = ((string___String___to_s_t)CALL(variable[33],COLOR_string___Object___to_s))(variable[33]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[33]) /*String::append*/;
+        variable[33] = CALL_string___Object___to_s(variable[33])(variable[33]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[33]) /*AbstractArray::add*/;
         variable[34] = NEW_String_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)); /*new String*/
         variable[35] = variable[34];
-        ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[35]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[14], variable[15]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[35]) /*AbstractArray::add*/;
+        variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[14], variable[15]) /*AbsSyntaxVisitor::error*/;
         goto return_label94;
       }
-      variable[14] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[14] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[14],COLOR_mmbuilder___SignatureBuilder___params))(variable[14]) /*SignatureBuilder::params*/;
-      variable[14] = ((array___AbstractArray___iterator_t)CALL(variable[14],COLOR_abstract_collection___Collection___iterator))(variable[14]) /*AbstractArray::iterator*/;
+      variable[14] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[14] = CALL_mmbuilder___SignatureBuilder___params(variable[14])(variable[14]) /*SignatureBuilder::params*/;
+      variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[15] = ((array___ArrayIterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*ArrayIterator::is_ok*/;
+        variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[15])) break; /*for*/
-        variable[15] = ((array___ArrayIterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*ArrayIterator::item*/;
+        variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*ArrayIterator::item*/;
         variable[16] = variable[15];
-        variable[18] = ((mmbuilder___PParam___position_t)CALL( variable[16] /*p*/,COLOR_syntax_base___PParam___position))( variable[16] /*p*/) /*PParam::position*/;
-        variable[18] = ((static_type___MMSignature_____bra_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature_____bra))( variable[13] /*isig*/, variable[18]) /*MMSignature::[]*/;
+        variable[18] = CALL_syntax_base___PParam___position( variable[16] /*p*/)( variable[16] /*p*/) /*PParam::position*/;
+        variable[18] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/, variable[18]) /*MMSignature::[]*/;
         variable[17] = variable[18];
-        ((mmbuilder___PParam___stype__eq_t)CALL( variable[16] /*p*/,COLOR_mmbuilder___PParam___stype__eq))( variable[16] /*p*/,  variable[17] /*t*/) /*PParam::stype=*/;
-        variable[18] = ((mmbuilder___PParam___position_t)CALL( variable[16] /*p*/,COLOR_syntax_base___PParam___position))( variable[16] /*p*/) /*PParam::position*/;
-        variable[19] = ((vararg___MMSignature___vararg_rank_t)CALL( variable[13] /*isig*/,COLOR_vararg___MMSignature___vararg_rank))( variable[13] /*isig*/) /*MMSignature::vararg_rank*/;
+        CALL_mmbuilder___PParam___stype__eq( variable[16] /*p*/)( variable[16] /*p*/,  variable[17] /*t*/) /*PParam::stype=*/;
+        variable[18] = CALL_syntax_base___PParam___position( variable[16] /*p*/)( variable[16] /*p*/) /*PParam::position*/;
+        variable[19] = CALL_vararg___MMSignature___vararg_rank( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::vararg_rank*/;
         variable[18] = TAG_Bool((variable[18])==(variable[19]));
         if (UNTAG_Bool(variable[18])) { /*if*/
-          variable[18] = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable[1] /*v*/,  variable[17] /*t*/) /*AbsSyntaxVisitor::type_array*/;
+          variable[18] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/,  variable[17] /*t*/) /*AbsSyntaxVisitor::type_array*/;
           variable[17] = variable[18] /*t=*/;
         }
-        variable[18] = ((mmbuilder___PParam___variable_t)CALL( variable[16] /*p*/,COLOR_syntax_base___PParam___variable))( variable[16] /*p*/) /*PParam::variable*/;
-        ((syntax_base___Variable___stype__eq_t)CALL(variable[18],COLOR_syntax_base___Variable___stype__eq))(variable[18],  variable[17] /*t*/) /*Variable::stype=*/;
+        variable[18] = CALL_syntax_base___PParam___variable( variable[16] /*p*/)( variable[16] /*p*/) /*PParam::variable*/;
+        CALL_syntax_base___Variable___stype__eq(variable[18])(variable[18],  variable[17] /*t*/) /*Variable::stype=*/;
         continue_96: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*ArrayIterator::next*/;
       }
       break_96: while(0);
       variable[8] =  variable[13] /*isig*/ /*s=*/;
-      ((static_type___MMLocalProperty___signature__eq_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable[2] /*prop*/,  variable[8] /*s*/) /*MMLocalProperty::signature=*/;
+      CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/,  variable[8] /*s*/) /*MMLocalProperty::signature=*/;
     }
-    variable[14] = ((static_type___MMSignature___arity_t)CALL( variable[8] /*s*/,COLOR_static_type___MMSignature___arity))( variable[8] /*s*/) /*MMSignature::arity*/;
-    variable[15] = ((static_type___MMSignature___arity_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature___arity))( variable[13] /*isig*/) /*MMSignature::arity*/;
+    variable[14] = CALL_static_type___MMSignature___arity( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::arity*/;
+    variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/;
     variable[14] = TAG_Bool((variable[14])!=(variable[15]));
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[14] = variable[0];
-      variable[15] = NEW_String_string___String___init(); /*new String*/
+      variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(11)); /*new Array[String]*/
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[17]) /*String::append*/;
-      variable[18] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[17]) /*AbstractArray::add*/;
+      variable[18] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
       variable[19] = variable[18];
-      variable[19] = ((string___String___to_s_t)CALL(variable[19],COLOR_string___Object___to_s))(variable[19]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[19]) /*String::append*/;
+      variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[19]) /*AbstractArray::add*/;
       variable[20] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[21] = variable[20];
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[21]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[21]) /*AbstractArray::add*/;
       variable[22] =  variable[2] /*prop*/;
-      variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[22]) /*String::append*/;
+      variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[22]) /*AbstractArray::add*/;
       variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" redefines "), TAG_Int(11)); /*new String*/
       variable[24] = variable[23];
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[24]) /*String::append*/;
-      variable[25] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[12] /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[24]) /*AbstractArray::add*/;
+      variable[25] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
       variable[26] = variable[25];
-      variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[26]) /*String::append*/;
+      variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[26]) /*AbstractArray::add*/;
       variable[27] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[28] = variable[27];
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[28]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[28]) /*AbstractArray::add*/;
       variable[29] =  variable[12] /*ip*/;
-      variable[29] = ((string___String___to_s_t)CALL(variable[29],COLOR_string___Object___to_s))(variable[29]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[29]) /*String::append*/;
+      variable[29] = CALL_string___Object___to_s(variable[29])(variable[29]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[29]) /*AbstractArray::add*/;
       variable[30] = NEW_String_string___String___with_native(BOX_NativeString(" with "), TAG_Int(6)); /*new String*/
       variable[31] = variable[30];
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[31]) /*String::append*/;
-      variable[32] = ((static_type___MMSignature___arity_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature___arity))( variable[13] /*isig*/) /*MMSignature::arity*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[31]) /*AbstractArray::add*/;
+      variable[32] = CALL_static_type___MMSignature___arity( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::arity*/;
       variable[33] = variable[32];
-      variable[33] = ((string___String___to_s_t)CALL(variable[33],COLOR_string___Object___to_s))(variable[33]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[33]) /*String::append*/;
+      variable[33] = CALL_string___Object___to_s(variable[33])(variable[33]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[33]) /*AbstractArray::add*/;
       variable[34] = NEW_String_string___String___with_native(BOX_NativeString(" parameter(s)."), TAG_Int(14)); /*new String*/
       variable[35] = variable[34];
-      ((string___String___append_t)CALL(variable[15],COLOR_abstract_collection___IndexedCollection___append))(variable[15], variable[35]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[14], variable[15]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[35]) /*AbstractArray::add*/;
+      variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[14], variable[15]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
-      variable[14] = ((static_type___MMSignature___arity_t)CALL( variable[8] /*s*/,COLOR_static_type___MMSignature___arity))( variable[8] /*s*/) /*MMSignature::arity*/;
+      variable[14] = CALL_static_type___MMSignature___arity( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::arity*/;
       variable[15] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[14]); /*new Range[Int]*/
       variable[14] = variable[15];
-      variable[14] = ((range___Range___iterator_t)CALL(variable[14],COLOR_abstract_collection___Collection___iterator))(variable[14]) /*Range::iterator*/;
+      variable[14] = CALL_abstract_collection___Collection___iterator(variable[14])(variable[14]) /*Range::iterator*/;
       while (true) { /*for*/
-        variable[15] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[14],COLOR_abstract_collection___Iterator___is_ok))(variable[14]) /*Iterator::is_ok*/;
+        variable[15] = CALL_abstract_collection___Iterator___is_ok(variable[14])(variable[14]) /*Iterator::is_ok*/;
         if (!UNTAG_Bool(variable[15])) break; /*for*/
-        variable[15] = ((abstract_collection___Iterator___item_t)CALL(variable[14],COLOR_abstract_collection___Iterator___item))(variable[14]) /*Iterator::item*/;
+        variable[15] = CALL_abstract_collection___Iterator___item(variable[14])(variable[14]) /*Iterator::item*/;
         variable[16] = variable[15];
-        variable[17] = ((static_type___MMSignature_____bra_t)CALL( variable[8] /*s*/,COLOR_static_type___MMSignature_____bra))( variable[8] /*s*/,  variable[16] /*i*/) /*MMSignature::[]*/;
-        variable[18] = ((static_type___MMSignature_____bra_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature_____bra))( variable[13] /*isig*/,  variable[16] /*i*/) /*MMSignature::[]*/;
-        variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] == variable[18]) || ((variable[17] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[17],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17],variable[18])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[17],COLOR_kernel___Object_____eqeq))(variable[17], variable[18]) /*Object::==*/)))))));
+        variable[17] = CALL_static_type___MMSignature_____bra( variable[8] /*s*/)( variable[8] /*s*/,  variable[16] /*i*/) /*MMSignature::[]*/;
+        variable[18] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/,  variable[16] /*i*/) /*MMSignature::[]*/;
+        variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[17] == variable[18]) || ((variable[17] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[17])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[17],variable[18])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[17])(variable[17], variable[18]) /*Object::==*/)))))));
         if (UNTAG_Bool(variable[17])) { /*if*/
           variable[17] = variable[0];
-          variable[18] = NEW_String_string___String___init(); /*new String*/
+          variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(13)); /*new Array[String]*/
           variable[19] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Expected "), TAG_Int(22)); /*new String*/
           variable[20] = variable[19];
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[20]) /*String::append*/;
-          variable[21] = ((static_type___MMSignature_____bra_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature_____bra))( variable[13] /*isig*/,  variable[16] /*i*/) /*MMSignature::[]*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[20]) /*AbstractArray::add*/;
+          variable[21] = CALL_static_type___MMSignature_____bra( variable[13] /*isig*/)( variable[13] /*isig*/,  variable[16] /*i*/) /*MMSignature::[]*/;
           variable[22] = variable[21];
-          variable[22] = ((string___String___to_s_t)CALL(variable[22],COLOR_string___Object___to_s))(variable[22]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[22]) /*String::append*/;
+          variable[22] = CALL_string___Object___to_s(variable[22])(variable[22]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[22]) /*AbstractArray::add*/;
           variable[23] = NEW_String_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)); /*new String*/
           variable[24] = variable[23];
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[24]) /*String::append*/;
-          variable[25] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[12] /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[24]) /*AbstractArray::add*/;
+          variable[25] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
           variable[26] = variable[25];
-          variable[26] = ((string___String___to_s_t)CALL(variable[26],COLOR_string___Object___to_s))(variable[26]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[26]) /*String::append*/;
+          variable[26] = CALL_string___Object___to_s(variable[26])(variable[26]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[26]) /*AbstractArray::add*/;
           variable[27] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
           variable[28] = variable[27];
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[28]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[28]) /*AbstractArray::add*/;
           variable[29] =  variable[12] /*ip*/;
-          variable[29] = ((string___String___to_s_t)CALL(variable[29],COLOR_string___Object___to_s))(variable[29]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[29]) /*String::append*/;
+          variable[29] = CALL_string___Object___to_s(variable[29])(variable[29]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[29]) /*AbstractArray::add*/;
           variable[30] = NEW_String_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)); /*new String*/
           variable[31] = variable[30];
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[31]) /*String::append*/;
-          variable[32] = ((static_type___MMSignature_____bra_t)CALL( variable[8] /*s*/,COLOR_static_type___MMSignature_____bra))( variable[8] /*s*/,  variable[16] /*i*/) /*MMSignature::[]*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[31]) /*AbstractArray::add*/;
+          variable[32] = CALL_static_type___MMSignature_____bra( variable[8] /*s*/)( variable[8] /*s*/,  variable[16] /*i*/) /*MMSignature::[]*/;
           variable[33] = variable[32];
-          variable[33] = ((string___String___to_s_t)CALL(variable[33],COLOR_string___Object___to_s))(variable[33]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[33]) /*String::append*/;
+          variable[33] = CALL_string___Object___to_s(variable[33])(variable[33]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[33]) /*AbstractArray::add*/;
           variable[34] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
           variable[35] = variable[34];
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[35]) /*String::append*/;
-          variable[36] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[35]) /*AbstractArray::add*/;
+          variable[36] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
           variable[37] = variable[36];
-          variable[37] = ((string___String___to_s_t)CALL(variable[37],COLOR_string___Object___to_s))(variable[37]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[37]) /*String::append*/;
+          variable[37] = CALL_string___Object___to_s(variable[37])(variable[37]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[37]) /*AbstractArray::add*/;
           variable[38] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
           variable[39] = variable[38];
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[39]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[39]) /*AbstractArray::add*/;
           variable[40] =  variable[2] /*prop*/;
-          variable[40] = ((string___String___to_s_t)CALL(variable[40],COLOR_string___Object___to_s))(variable[40]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[40]) /*String::append*/;
+          variable[40] = CALL_string___Object___to_s(variable[40])(variable[40]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[40]) /*AbstractArray::add*/;
           variable[41] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
           variable[42] = variable[41];
-          ((string___String___append_t)CALL(variable[18],COLOR_abstract_collection___IndexedCollection___append))(variable[18], variable[42]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[17], variable[18]) /*AbsSyntaxVisitor::error*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[42]) /*AbstractArray::add*/;
+          variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[17], variable[18]) /*AbsSyntaxVisitor::error*/;
         }
         continue_97: while(0);
-        ((abstract_collection___Iterator___next_t)CALL(variable[14],COLOR_abstract_collection___Iterator___next))(variable[14]) /*Iterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[14])(variable[14]) /*Iterator::next*/;
       }
       break_97: while(0);
     }
-    variable[15] = ((static_type___MMSignature___return_type_t)CALL( variable[8] /*s*/,COLOR_static_type___MMSignature___return_type))( variable[8] /*s*/) /*MMSignature::return_type*/;
+    variable[15] = CALL_static_type___MMSignature___return_type( variable[8] /*s*/)( variable[8] /*s*/) /*MMSignature::return_type*/;
     variable[14] = variable[15];
-    variable[16] = ((static_type___MMSignature___return_type_t)CALL( variable[13] /*isig*/,COLOR_static_type___MMSignature___return_type))( variable[13] /*isig*/) /*MMSignature::return_type*/;
+    variable[16] = CALL_static_type___MMSignature___return_type( variable[13] /*isig*/)( variable[13] /*isig*/) /*MMSignature::return_type*/;
     variable[15] = variable[16];
-    variable[16] = TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[16] = TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*srt*/)( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     variable[17] = variable[16];
     if (UNTAG_Bool(variable[17])) { /* and */
-      variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     }
     variable[16] = variable[17];
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[16] = variable[0];
-      variable[17] = NEW_String_string___String___init(); /*new String*/
+      variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: The procedure "), TAG_Int(27)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[19]) /*String::append*/;
-      variable[20] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[19]) /*AbstractArray::add*/;
+      variable[20] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
       variable[21] = variable[20];
-      variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[21]) /*String::append*/;
+      variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[21]) /*AbstractArray::add*/;
       variable[22] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[23] = variable[22];
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[23]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[23]) /*AbstractArray::add*/;
       variable[24] =  variable[2] /*prop*/;
-      variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[24]) /*String::append*/;
+      variable[24] = CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[24]) /*AbstractArray::add*/;
       variable[25] = NEW_String_string___String___with_native(BOX_NativeString(" redefines the function "), TAG_Int(24)); /*new String*/
       variable[26] = variable[25];
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[26]) /*String::append*/;
-      variable[27] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[12] /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[26]) /*AbstractArray::add*/;
+      variable[27] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
       variable[28] = variable[27];
-      variable[28] = ((string___String___to_s_t)CALL(variable[28],COLOR_string___Object___to_s))(variable[28]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[28]) /*String::append*/;
+      variable[28] = CALL_string___Object___to_s(variable[28])(variable[28]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[28]) /*AbstractArray::add*/;
       variable[29] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
       variable[30] = variable[29];
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[30]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[30]) /*AbstractArray::add*/;
       variable[31] =  variable[12] /*ip*/;
-      variable[31] = ((string___String___to_s_t)CALL(variable[31],COLOR_string___Object___to_s))(variable[31]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[31]) /*String::append*/;
+      variable[31] = CALL_string___Object___to_s(variable[31])(variable[31]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[31]) /*AbstractArray::add*/;
       variable[32] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[33] = variable[32];
-      ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[33]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[33]) /*AbstractArray::add*/;
+      variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
-      variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*srt*/)( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       variable[17] = variable[16];
       if (UNTAG_Bool(variable[17])) { /* and */
-        variable[17] = TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+        variable[17] = TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))));
       }
       variable[16] = variable[17];
       if (UNTAG_Bool(variable[16])) { /*if*/
         variable[16] = variable[0];
-        variable[17] = NEW_String_string___String___init(); /*new String*/
+        variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[String]*/
         variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: The function "), TAG_Int(26)); /*new String*/
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[19]) /*String::append*/;
-        variable[20] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[19]) /*AbstractArray::add*/;
+        variable[20] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
         variable[21] = variable[20];
-        variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[21]) /*String::append*/;
+        variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[21]) /*AbstractArray::add*/;
         variable[22] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
         variable[23] = variable[22];
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[23]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[23]) /*AbstractArray::add*/;
         variable[24] =  variable[2] /*prop*/;
-        variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[24]) /*String::append*/;
+        variable[24] = CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[24]) /*AbstractArray::add*/;
         variable[25] = NEW_String_string___String___with_native(BOX_NativeString(" redefines the procedure "), TAG_Int(25)); /*new String*/
         variable[26] = variable[25];
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[26]) /*String::append*/;
-        variable[27] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[12] /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[26]) /*AbstractArray::add*/;
+        variable[27] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
         variable[28] = variable[27];
-        variable[28] = ((string___String___to_s_t)CALL(variable[28],COLOR_string___Object___to_s))(variable[28]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[28]) /*String::append*/;
+        variable[28] = CALL_string___Object___to_s(variable[28])(variable[28]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[28]) /*AbstractArray::add*/;
         variable[29] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
         variable[30] = variable[29];
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[30]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[30]) /*AbstractArray::add*/;
         variable[31] =  variable[12] /*ip*/;
-        variable[31] = ((string___String___to_s_t)CALL(variable[31],COLOR_string___Object___to_s))(variable[31]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[31]) /*String::append*/;
+        variable[31] = CALL_string___Object___to_s(variable[31])(variable[31]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[31]) /*AbstractArray::add*/;
         variable[32] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
         variable[33] = variable[32];
-        ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[33]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[33]) /*AbstractArray::add*/;
+        variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::error*/;
       } else { /*if*/
-        variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*srt*/)( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
         variable[17] = variable[16];
         if (UNTAG_Bool(variable[17])) { /* and */
-          variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+          variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
         }
         variable[16] = variable[17];
         variable[17] = variable[16];
         if (UNTAG_Bool(variable[17])) { /* and */
-          variable[17] = ((static_type___MMType_____l_t)CALL( variable[14] /*srt*/,COLOR_static_type___MMType_____l))( variable[14] /*srt*/,  variable[15] /*isrt*/) /*MMType::<*/;
+          variable[17] = CALL_static_type___MMType_____l( variable[14] /*srt*/)( variable[14] /*srt*/,  variable[15] /*isrt*/) /*MMType::<*/;
           variable[17] =  TAG_Bool(!UNTAG_Bool(variable[17]));
         }
         variable[16] = variable[17];
         if (UNTAG_Bool(variable[16])) { /*if*/
           variable[16] = variable[0];
-          variable[17] = NEW_String_string___String___init(); /*new String*/
+          variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(13)); /*new Array[String]*/
           variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: Expected "), TAG_Int(22)); /*new String*/
           variable[19] = variable[18];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[19]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[19]) /*AbstractArray::add*/;
           variable[20] =  variable[15] /*isrt*/;
-          variable[20] = ((string___String___to_s_t)CALL(variable[20],COLOR_string___Object___to_s))(variable[20]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[20]) /*String::append*/;
+          variable[20] = CALL_string___Object___to_s(variable[20])(variable[20]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[20]) /*AbstractArray::add*/;
           variable[21] = NEW_String_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)); /*new String*/
           variable[22] = variable[21];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[22]) /*String::append*/;
-          variable[23] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[12] /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[22]) /*AbstractArray::add*/;
+          variable[23] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
           variable[24] = variable[23];
-          variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[24]) /*String::append*/;
+          variable[24] = CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[24]) /*AbstractArray::add*/;
           variable[25] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
           variable[26] = variable[25];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[26]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[26]) /*AbstractArray::add*/;
           variable[27] =  variable[12] /*ip*/;
-          variable[27] = ((string___String___to_s_t)CALL(variable[27],COLOR_string___Object___to_s))(variable[27]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[27]) /*String::append*/;
+          variable[27] = CALL_string___Object___to_s(variable[27])(variable[27]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[27]) /*AbstractArray::add*/;
           variable[28] = NEW_String_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)); /*new String*/
           variable[29] = variable[28];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[29]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[29]) /*AbstractArray::add*/;
           variable[30] =  variable[14] /*srt*/;
-          variable[30] = ((string___String___to_s_t)CALL(variable[30],COLOR_string___Object___to_s))(variable[30]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[30]) /*String::append*/;
+          variable[30] = CALL_string___Object___to_s(variable[30])(variable[30]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[30]) /*AbstractArray::add*/;
           variable[31] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
           variable[32] = variable[31];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[32]) /*String::append*/;
-          variable[33] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[32]) /*AbstractArray::add*/;
+          variable[33] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
           variable[34] = variable[33];
-          variable[34] = ((string___String___to_s_t)CALL(variable[34],COLOR_string___Object___to_s))(variable[34]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[34]) /*String::append*/;
+          variable[34] = CALL_string___Object___to_s(variable[34])(variable[34]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[34]) /*AbstractArray::add*/;
           variable[35] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
           variable[36] = variable[35];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[36]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[36]) /*AbstractArray::add*/;
           variable[37] =  variable[2] /*prop*/;
-          variable[37] = ((string___String___to_s_t)CALL(variable[37],COLOR_string___Object___to_s))(variable[37]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[37]) /*String::append*/;
+          variable[37] = CALL_string___Object___to_s(variable[37])(variable[37]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[37]) /*AbstractArray::add*/;
           variable[38] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
           variable[39] = variable[38];
-          ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[39]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::error*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[39]) /*AbstractArray::add*/;
+          variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::error*/;
         } else { /*if*/
-          variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+          variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  NIT_NULL /*null*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*srt*/)( variable[14] /*srt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
           variable[17] = variable[16];
           if (UNTAG_Bool(variable[17])) { /* and */
-            variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*isrt*/,COLOR_kernel___Object_____eqeq))( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+            variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*isrt*/ ==  NIT_NULL /*null*/) || (( variable[15] /*isrt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*isrt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*isrt*/)( variable[15] /*isrt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
           }
           variable[16] = variable[17];
           variable[17] = variable[16];
           if (UNTAG_Bool(variable[17])) { /* and */
-            variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  variable[15] /*isrt*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, variable[15] /*isrt*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*srt*/,COLOR_kernel___Object_____eqeq))( variable[14] /*srt*/,  variable[15] /*isrt*/) /*Object::==*/)))))));
+            variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*srt*/ ==  variable[15] /*isrt*/) || (( variable[14] /*srt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*srt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*srt*/, variable[15] /*isrt*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*srt*/)( variable[14] /*srt*/,  variable[15] /*isrt*/) /*Object::==*/)))))));
           }
           variable[16] = variable[17];
           variable[17] = variable[16];
@@ -3116,88 +3146,90 @@ void mmbuilder___PPropdef___do_and_check_redef(val_t  self, val_t  param0, val_t
           variable[16] = variable[17];
           if (UNTAG_Bool(variable[16])) { /*if*/
             variable[16] = variable[0];
-            variable[17] = NEW_String_string___String___init(); /*new String*/
+            variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(13)); /*new Array[String]*/
             variable[18] = NEW_String_string___String___with_native(BOX_NativeString("Redef warning: Expected "), TAG_Int(24)); /*new String*/
             variable[19] = variable[18];
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[19]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[19]) /*AbstractArray::add*/;
             variable[20] =  variable[15] /*isrt*/;
-            variable[20] = ((string___String___to_s_t)CALL(variable[20],COLOR_string___Object___to_s))(variable[20]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[20]) /*String::append*/;
+            variable[20] = CALL_string___Object___to_s(variable[20])(variable[20]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[20]) /*AbstractArray::add*/;
             variable[21] = NEW_String_string___String___with_native(BOX_NativeString(" (as in "), TAG_Int(8)); /*new String*/
             variable[22] = variable[21];
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[22]) /*String::append*/;
-            variable[23] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[12] /*ip*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[22]) /*AbstractArray::add*/;
+            variable[23] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[12] /*ip*/)( variable[12] /*ip*/) /*MMLocalProperty::local_class*/;
             variable[24] = variable[23];
-            variable[24] = ((string___String___to_s_t)CALL(variable[24],COLOR_string___Object___to_s))(variable[24]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[24]) /*String::append*/;
+            variable[24] = CALL_string___Object___to_s(variable[24])(variable[24]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[24]) /*AbstractArray::add*/;
             variable[25] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
             variable[26] = variable[25];
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[26]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[26]) /*AbstractArray::add*/;
             variable[27] =  variable[12] /*ip*/;
-            variable[27] = ((string___String___to_s_t)CALL(variable[27],COLOR_string___Object___to_s))(variable[27]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[27]) /*String::append*/;
+            variable[27] = CALL_string___Object___to_s(variable[27])(variable[27]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[27]) /*AbstractArray::add*/;
             variable[28] = NEW_String_string___String___with_native(BOX_NativeString("), got "), TAG_Int(7)); /*new String*/
             variable[29] = variable[28];
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[29]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[29]) /*AbstractArray::add*/;
             variable[30] =  variable[14] /*srt*/;
-            variable[30] = ((string___String___to_s_t)CALL(variable[30],COLOR_string___Object___to_s))(variable[30]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[30]) /*String::append*/;
+            variable[30] = CALL_string___Object___to_s(variable[30])(variable[30]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[30]) /*AbstractArray::add*/;
             variable[31] = NEW_String_string___String___with_native(BOX_NativeString(" in "), TAG_Int(4)); /*new String*/
             variable[32] = variable[31];
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[32]) /*String::append*/;
-            variable[33] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[32]) /*AbstractArray::add*/;
+            variable[33] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
             variable[34] = variable[33];
-            variable[34] = ((string___String___to_s_t)CALL(variable[34],COLOR_string___Object___to_s))(variable[34]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[34]) /*String::append*/;
+            variable[34] = CALL_string___Object___to_s(variable[34])(variable[34]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[34]) /*AbstractArray::add*/;
             variable[35] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
             variable[36] = variable[35];
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[36]) /*String::append*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[36]) /*AbstractArray::add*/;
             variable[37] =  variable[2] /*prop*/;
-            variable[37] = ((string___String___to_s_t)CALL(variable[37],COLOR_string___Object___to_s))(variable[37]) /*String::to_s*/;
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[37]) /*String::append*/;
+            variable[37] = CALL_string___Object___to_s(variable[37])(variable[37]) /*Object::to_s*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[37]) /*AbstractArray::add*/;
             variable[38] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
             variable[39] = variable[38];
-            ((string___String___append_t)CALL(variable[17],COLOR_abstract_collection___IndexedCollection___append))(variable[17], variable[39]) /*String::append*/;
-            ((syntax_base___AbsSyntaxVisitor___warning_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___warning))( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::warning*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[39]) /*AbstractArray::add*/;
+            variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+            CALL_syntax_base___AbsSyntaxVisitor___warning( variable[1] /*v*/)( variable[1] /*v*/, variable[16], variable[17]) /*AbsSyntaxVisitor::warning*/;
           }
         }
       }
     }
     continue_95: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/;
   }
   break_95: while(0);
   variable[9] = TAG_Bool(( variable[4] /*visibility_level*/)!=( TAG_Int(1)));
   variable[10] = variable[9];
   if (UNTAG_Bool(variable[10])) { /* and */
-    variable[10] = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL( variable[7] /*glob*/,COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))( variable[7] /*glob*/) /*MMGlobalProperty::visibility_level*/;
+    variable[10] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level( variable[7] /*glob*/)( variable[7] /*glob*/) /*MMGlobalProperty::visibility_level*/;
     variable[10] = TAG_Bool((variable[10])!=( variable[4] /*visibility_level*/));
   }
   variable[9] = variable[10];
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    variable[10] = NEW_String_string___String___init(); /*new String*/
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Redef error: "), TAG_Int(13)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
-    variable[13] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
+    variable[13] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::local_class*/;
     variable[14] = variable[13];
-    variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[2] /*prop*/;
-    variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+    variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" redefinition cannot change visibility."), TAG_Int(39)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
   }
   variable[9] = variable[0];
-  variable[10] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-  ((syntax_base___MMGlobalProperty___check_visibility_t)CALL( variable[7] /*glob*/,COLOR_syntax_base___MMGlobalProperty___check_visibility))( variable[7] /*glob*/,  variable[1] /*v*/, variable[9], variable[10],  TAG_Bool(true)) /*MMGlobalProperty::check_visibility*/;
+  variable[10] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  CALL_syntax_base___MMGlobalProperty___check_visibility( variable[7] /*glob*/)( variable[7] /*glob*/,  variable[1] /*v*/, variable[9], variable[10],  TAG_Bool(true)) /*MMGlobalProperty::check_visibility*/;
   return_label94: while(false);
   tracehead = trace.prev;
   return;
@@ -3211,10 +3243,10 @@ void mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((mmbuilder___AAttrPropdef___prop_t)CALL(variable[3],COLOR_syntax_base___AAttrPropdef___prop))(variable[3]) /*AAttrPropdef::prop*/;
-  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/;
-  ((mmbuilder___AAttrPropdef___accept_abs_syntax_visitor_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor))(variable[0], variable[1]) /*super AAttrPropdef::accept_abs_syntax_visitor*/;
-  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
+  variable[3] = CALL_syntax_base___AAttrPropdef___prop(variable[3])(variable[3]) /*AAttrPropdef::prop*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/;
+  CALL_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super AAttrPropdef::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
   return_label98: while(false);
   tracehead = trace.prev;
   return;
@@ -3254,63 +3286,63 @@ void mmbuilder___AAttrPropdef___accept_property_builder(val_t  self, val_t  para
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___AAttrPropdef___accept_property_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_builder))(variable[0], variable[1]) /*super AAttrPropdef::accept_property_builder*/;
+  CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_builder(variable[0])(variable[0], variable[1]) /*super AAttrPropdef::accept_property_builder*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAttrPropdef___n_id_t)CALL(variable[4],COLOR_parser_nodes___AAttrPropdef___n_id))(variable[4]) /*AAttrPropdef::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___AAttrPropdef___n_id(variable[4])(variable[4]) /*AAttrPropdef::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[3] = variable[4];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
   variable[6] = variable[0];
   variable[7] = NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init( variable[3] /*name*/, variable[5], variable[6]); /*new MMSrcAttribute*/
   variable[5] = variable[7];
   variable[4] = variable[5];
   variable[5] = variable[0];
   ATTR_mmbuilder___AAttrPropdef____prop(variable[5]) /*AAttrPropdef::_prop*/ =  variable[4] /*prop*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable[5],COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable[5],  variable[1] /*v*/,  variable[4] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[5])(variable[5],  variable[1] /*v*/,  variable[4] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AAttrPropdef___n_readable_t)CALL(variable[5],COLOR_parser_nodes___AAttrPropdef___n_readable))(variable[5]) /*AAttrPropdef::n_readable*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = CALL_parser_nodes___AAttrPropdef___n_readable(variable[5])(variable[5]) /*AAttrPropdef::n_readable*/;
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AAttrPropdef___n_id_t)CALL(variable[5],COLOR_parser_nodes___AAttrPropdef___n_id))(variable[5]) /*AAttrPropdef::n_id*/;
-    variable[5] = ((lexer___Token___text_t)CALL(variable[5],COLOR_lexer___Token___text))(variable[5]) /*Token::text*/;
-    variable[5] = ((string___String___substring_from_t)CALL(variable[5],COLOR_string___String___substring_from))(variable[5],  TAG_Int(1)) /*String::substring_from*/;
-    variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
+    variable[5] = CALL_parser_nodes___AAttrPropdef___n_id(variable[5])(variable[5]) /*AAttrPropdef::n_id*/;
+    variable[5] = CALL_lexer___Token___text(variable[5])(variable[5]) /*Token::text*/;
+    variable[5] = CALL_string___String___substring_from(variable[5])(variable[5],  TAG_Int(1)) /*String::substring_from*/;
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
     variable[3] = variable[5] /*name=*/;
     variable[5] = variable[0];
-    variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
     variable[7] = variable[0];
     variable[8] = NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___init( variable[3] /*name*/, variable[6], variable[7]); /*new MMReadImplementationMethod*/
     variable[6] = variable[8];
     ATTR_mmbuilder___AAttrPropdef____readmethod(variable[5]) /*AAttrPropdef::_readmethod*/ = variable[6];
-    variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
     variable[6] = variable[0];
     variable[6] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[6]) /*AAttrPropdef::_readmethod*/;
-    ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable[5],COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable[5],  variable[1] /*v*/, variable[6]) /*MMSrcLocalClass::add_src_local_property*/;
+    CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[5])(variable[5],  variable[1] /*v*/, variable[6]) /*MMSrcLocalClass::add_src_local_property*/;
   }
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AAttrPropdef___n_writable_t)CALL(variable[5],COLOR_parser_nodes___AAttrPropdef___n_writable))(variable[5]) /*AAttrPropdef::n_writable*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = CALL_parser_nodes___AAttrPropdef___n_writable(variable[5])(variable[5]) /*AAttrPropdef::n_writable*/;
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AAttrPropdef___n_id_t)CALL(variable[5],COLOR_parser_nodes___AAttrPropdef___n_id))(variable[5]) /*AAttrPropdef::n_id*/;
-    variable[5] = ((lexer___Token___text_t)CALL(variable[5],COLOR_lexer___Token___text))(variable[5]) /*Token::text*/;
-    variable[5] = ((string___String___substring_from_t)CALL(variable[5],COLOR_string___String___substring_from))(variable[5],  TAG_Int(1)) /*String::substring_from*/;
+    variable[5] = CALL_parser_nodes___AAttrPropdef___n_id(variable[5])(variable[5]) /*AAttrPropdef::n_id*/;
+    variable[5] = CALL_lexer___Token___text(variable[5])(variable[5]) /*Token::text*/;
+    variable[5] = CALL_string___String___substring_from(variable[5])(variable[5],  TAG_Int(1)) /*String::substring_from*/;
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
-    variable[5] = ((string___String_____plus_t)CALL(variable[5],COLOR_string___String_____plus))(variable[5], variable[6]) /*String::+*/;
-    variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
+    variable[5] = CALL_string___String_____plus(variable[5])(variable[5], variable[6]) /*String::+*/;
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
     variable[3] = variable[5] /*name=*/;
     variable[5] = variable[0];
-    variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
     variable[7] = variable[0];
     variable[8] = NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod___init( variable[3] /*name*/, variable[6], variable[7]); /*new MMWriteImplementationMethod*/
     variable[6] = variable[8];
     ATTR_mmbuilder___AAttrPropdef____writemethod(variable[5]) /*AAttrPropdef::_writemethod*/ = variable[6];
-    variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
     variable[6] = variable[0];
     variable[6] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[6]) /*AAttrPropdef::_writemethod*/;
-    ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable[5],COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable[5],  variable[1] /*v*/, variable[6]) /*MMSrcLocalClass::add_src_local_property*/;
+    CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[5])(variable[5],  variable[1] /*v*/, variable[6]) /*MMSrcLocalClass::add_src_local_property*/;
   }
   return_label99: while(false);
   tracehead = trace.prev;
@@ -3324,111 +3356,112 @@ void mmbuilder___AAttrPropdef___accept_property_verifier(val_t  self, val_t  par
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___AAttrPropdef___accept_property_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier))(variable[0], variable[1]) /*super AAttrPropdef::accept_property_verifier*/;
+  CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super AAttrPropdef::accept_property_verifier*/;
   /*variable[3] is variable t*/
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAttrPropdef___n_type_t)CALL(variable[4],COLOR_parser_nodes___AAttrPropdef___n_type))(variable[4]) /*AAttrPropdef::n_type*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AAttrPropdef___n_type(variable[4])(variable[4]) /*AAttrPropdef::n_type*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AAttrPropdef___n_type_t)CALL(variable[4],COLOR_parser_nodes___AAttrPropdef___n_type))(variable[4]) /*AAttrPropdef::n_type*/;
-    variable[4] = ((syntax_base___PType___get_stype_t)CALL(variable[4],COLOR_syntax_base___PType___get_stype))(variable[4],  variable[1] /*v*/) /*PType::get_stype*/;
+    variable[4] = CALL_parser_nodes___AAttrPropdef___n_type(variable[4])(variable[4]) /*AAttrPropdef::n_type*/;
+    variable[4] = CALL_syntax_base___PType___get_stype(variable[4])(variable[4],  variable[1] /*v*/) /*PType::get_stype*/;
     variable[3] = variable[4] /*t=*/;
   } else { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Not yet implemented: Attribute definition "), TAG_Int(42)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] = variable[0];
     variable[8] = ATTR_mmbuilder___AAttrPropdef____prop(variable[8]) /*AAttrPropdef::_prop*/;
-    variable[8] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[8]) /*MMLocalProperty::local_class*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[8])(variable[8]) /*MMLocalProperty::local_class*/;
     variable[9] = variable[8];
-    variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
     variable[12] = variable[0];
     variable[12] = ATTR_mmbuilder___AAttrPropdef____prop(variable[12]) /*AAttrPropdef::_prop*/;
     variable[13] = variable[12];
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" requires an explicit type."), TAG_Int(27)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[15]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     goto return_label100;
   }
   variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
-  variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  variable[6] = ((genericity___MMLocalClass___get_type_t)CALL(variable[6],COLOR_static_type___MMLocalClass___get_type))(variable[6]) /*MMLocalClass::get_type*/;
+  variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/;
   variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[5],  variable[3] /*t*/, variable[6]); /*new MMSignature*/
   variable[5] = variable[7];
   variable[4] = variable[5];
   variable[5] = variable[0];
   variable[5] = ATTR_mmbuilder___AAttrPropdef____prop(variable[5]) /*AAttrPropdef::_prop*/;
-  ((static_type___MMLocalProperty___signature__eq_t)CALL(variable[5],COLOR_static_type___MMLocalProperty___signature__eq))(variable[5],  variable[4] /*signature*/) /*MMLocalProperty::signature=*/;
+  CALL_static_type___MMLocalProperty___signature__eq(variable[5])(variable[5],  variable[4] /*signature*/) /*MMLocalProperty::signature=*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AAttrPropdef___n_visibility_t)CALL(variable[6],COLOR_parser_nodes___AAttrPropdef___n_visibility))(variable[6]) /*AAttrPropdef::n_visibility*/;
-  variable[6] = ((mmbuilder___PVisibility___level_t)CALL(variable[6],COLOR_mmbuilder___PVisibility___level))(variable[6]) /*PVisibility::level*/;
+  variable[6] = CALL_parser_nodes___AAttrPropdef___n_visibility(variable[6])(variable[6]) /*AAttrPropdef::n_visibility*/;
+  variable[6] = CALL_mmbuilder___PVisibility___level(variable[6])(variable[6]) /*PVisibility::level*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
   variable[7] = variable[0];
   variable[7] = ATTR_mmbuilder___AAttrPropdef____prop(variable[7]) /*AAttrPropdef::_prop*/;
   variable[8] = variable[0];
-  variable[8] = ((parser_nodes___AAttrPropdef___n_kwredef_t)CALL(variable[8],COLOR_parser_nodes___AAttrPropdef___n_kwredef))(variable[8]) /*AAttrPropdef::n_kwredef*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
-  ((mmbuilder___PPropdef___process_and_check_t)CALL(variable[6],COLOR_mmbuilder___PPropdef___process_and_check))(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/;
+  variable[8] = CALL_parser_nodes___AAttrPropdef___n_kwredef(variable[8])(variable[8]) /*AAttrPropdef::n_kwredef*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  CALL_mmbuilder___PPropdef___process_and_check(variable[6])(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AAttrPropdef___n_readable_t)CALL(variable[6],COLOR_parser_nodes___AAttrPropdef___n_readable))(variable[6]) /*AAttrPropdef::n_readable*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = CALL_parser_nodes___AAttrPropdef___n_readable(variable[6])(variable[6]) /*AAttrPropdef::n_readable*/;
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
     variable[6] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[6]) /*AAttrPropdef::_readmethod*/;
-    ((static_type___MMLocalProperty___signature__eq_t)CALL(variable[6],COLOR_static_type___MMLocalProperty___signature__eq))(variable[6],  variable[4] /*signature*/) /*MMLocalProperty::signature=*/;
+    CALL_static_type___MMLocalProperty___signature__eq(variable[6])(variable[6],  variable[4] /*signature*/) /*MMLocalProperty::signature=*/;
     variable[6] = variable[0];
     variable[7] = variable[0];
     variable[7] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[7]) /*AAttrPropdef::_readmethod*/;
     variable[8] = variable[0];
-    variable[8] = ((parser_nodes___AAttrPropdef___n_readable_t)CALL(variable[8],COLOR_parser_nodes___AAttrPropdef___n_readable))(variable[8]) /*AAttrPropdef::n_readable*/;
-    variable[8] = ((parser_nodes___PAble___n_kwredef_t)CALL(variable[8],COLOR_parser_nodes___PAble___n_kwredef))(variable[8]) /*PAble::n_kwredef*/;
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
-    ((mmbuilder___PPropdef___process_and_check_t)CALL(variable[6],COLOR_mmbuilder___PPropdef___process_and_check))(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/;
+    variable[8] = CALL_parser_nodes___AAttrPropdef___n_readable(variable[8])(variable[8]) /*AAttrPropdef::n_readable*/;
+    variable[8] = CALL_parser_nodes___PAble___n_kwredef(variable[8])(variable[8]) /*PAble::n_kwredef*/;
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    CALL_mmbuilder___PPropdef___process_and_check(variable[6])(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/;
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AAttrPropdef___n_type_t)CALL(variable[6],COLOR_parser_nodes___AAttrPropdef___n_type))(variable[6]) /*AAttrPropdef::n_type*/;
+    variable[6] = CALL_parser_nodes___AAttrPropdef___n_type(variable[6])(variable[6]) /*AAttrPropdef::n_type*/;
     variable[7] = variable[0];
     variable[7] = ATTR_mmbuilder___AAttrPropdef____readmethod(variable[7]) /*AAttrPropdef::_readmethod*/;
-    ((mmbuilder___PType___check_visibility_t)CALL(variable[6],COLOR_mmbuilder___PType___check_visibility))(variable[6],  variable[1] /*v*/, variable[7]) /*PType::check_visibility*/;
+    CALL_mmbuilder___PType___check_visibility(variable[6])(variable[6],  variable[1] /*v*/, variable[7]) /*PType::check_visibility*/;
   }
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AAttrPropdef___n_writable_t)CALL(variable[6],COLOR_parser_nodes___AAttrPropdef___n_writable))(variable[6]) /*AAttrPropdef::n_writable*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = CALL_parser_nodes___AAttrPropdef___n_writable(variable[6])(variable[6]) /*AAttrPropdef::n_writable*/;
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
     variable[6] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[6]) /*AAttrPropdef::_writemethod*/;
     variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[3] /*t*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[3] /*t*/) /*AbstractArray::add*/;
     variable[8] = NEW_Array_array___Array___with_items(variable[7]); /*new Array[MMType]*/
     variable[7] = variable[8];
-    variable[8] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-    variable[8] = ((genericity___MMLocalClass___get_type_t)CALL(variable[8],COLOR_static_type___MMLocalClass___get_type))(variable[8]) /*MMLocalClass::get_type*/;
+    variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[8] = CALL_static_type___MMLocalClass___get_type(variable[8])(variable[8]) /*MMLocalClass::get_type*/;
     variable[9] = NEW_MMSignature_static_type___MMSignature___init(variable[7],  NIT_NULL /*null*/, variable[8]); /*new MMSignature*/
     variable[7] = variable[9];
-    ((static_type___MMLocalProperty___signature__eq_t)CALL(variable[6],COLOR_static_type___MMLocalProperty___signature__eq))(variable[6], variable[7]) /*MMLocalProperty::signature=*/;
+    CALL_static_type___MMLocalProperty___signature__eq(variable[6])(variable[6], variable[7]) /*MMLocalProperty::signature=*/;
     variable[6] = variable[0];
     variable[7] = variable[0];
     variable[7] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[7]) /*AAttrPropdef::_writemethod*/;
     variable[8] = variable[0];
-    variable[8] = ((parser_nodes___AAttrPropdef___n_writable_t)CALL(variable[8],COLOR_parser_nodes___AAttrPropdef___n_writable))(variable[8]) /*AAttrPropdef::n_writable*/;
-    variable[8] = ((parser_nodes___PAble___n_kwredef_t)CALL(variable[8],COLOR_parser_nodes___PAble___n_kwredef))(variable[8]) /*PAble::n_kwredef*/;
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
-    ((mmbuilder___PPropdef___process_and_check_t)CALL(variable[6],COLOR_mmbuilder___PPropdef___process_and_check))(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/;
+    variable[8] = CALL_parser_nodes___AAttrPropdef___n_writable(variable[8])(variable[8]) /*AAttrPropdef::n_writable*/;
+    variable[8] = CALL_parser_nodes___PAble___n_kwredef(variable[8])(variable[8]) /*PAble::n_kwredef*/;
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    CALL_mmbuilder___PPropdef___process_and_check(variable[6])(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[5] /*visibility_level*/) /*PPropdef::process_and_check*/;
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AAttrPropdef___n_type_t)CALL(variable[6],COLOR_parser_nodes___AAttrPropdef___n_type))(variable[6]) /*AAttrPropdef::n_type*/;
+    variable[6] = CALL_parser_nodes___AAttrPropdef___n_type(variable[6])(variable[6]) /*AAttrPropdef::n_type*/;
     variable[7] = variable[0];
     variable[7] = ATTR_mmbuilder___AAttrPropdef____writemethod(variable[7]) /*AAttrPropdef::_writemethod*/;
-    ((mmbuilder___PType___check_visibility_t)CALL(variable[6],COLOR_mmbuilder___PType___check_visibility))(variable[6],  variable[1] /*v*/, variable[7]) /*PType::check_visibility*/;
+    CALL_mmbuilder___PType___check_visibility(variable[6])(variable[6],  variable[1] /*v*/, variable[7]) /*PType::check_visibility*/;
   }
   return_label100: while(false);
   tracehead = trace.prev;
@@ -3443,10 +3476,10 @@ void mmbuilder___AMethPropdef___accept_abs_syntax_visitor(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((mmbuilder___AMethPropdef___method_t)CALL(variable[3],COLOR_syntax_base___AMethPropdef___method))(variable[3]) /*AMethPropdef::method*/;
-  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/;
-  ((mmbuilder___AMethPropdef___accept_abs_syntax_visitor_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor))(variable[0], variable[1]) /*super AMethPropdef::accept_abs_syntax_visitor*/;
-  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
+  variable[3] = CALL_syntax_base___AMethPropdef___method(variable[3])(variable[3]) /*AMethPropdef::method*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/;
+  CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
   return_label101: while(false);
   tracehead = trace.prev;
   return;
@@ -3472,10 +3505,10 @@ void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  para
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___AMethPropdef___accept_property_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_builder))(variable[0], variable[1]) /*super AMethPropdef::accept_property_builder*/;
+  CALL_SUPER_mmbuilder___AMethPropdef___accept_property_builder(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_property_builder*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AMethPropdef___n_methid_t)CALL(variable[3],COLOR_parser_nodes___AMethPropdef___n_methid))(variable[3]) /*AMethPropdef::n_methid*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_parser_nodes___AMethPropdef___n_methid(variable[3])(variable[3]) /*AMethPropdef::n_methid*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = TAG_Bool((variable[3]==NIT_NULL) || VAL_ISA(variable[3], COLOR_AConcreteInitPropdef, ID_AConcreteInitPropdef)) /*cast AConcreteInitPropdef*/;
@@ -3484,7 +3517,7 @@ void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  para
       if (once_bool_103) variable[4] = once_value_103;
       else {
         variable[4] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-        variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/;
+        variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
         once_value_103 = variable[4];
         once_bool_103 = true;
       }
@@ -3494,7 +3527,7 @@ void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  para
       if (once_bool_104) variable[4] = once_value_104;
       else {
         variable[4] = NEW_String_string___String___with_native(BOX_NativeString("main"), TAG_Int(4)); /*new String*/
-        variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/;
+        variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
         once_value_104 = variable[4];
         once_bool_104 = true;
       }
@@ -3503,29 +3536,29 @@ void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  para
   } else { /*if*/
     variable[3] = variable[0];
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AMethPropdef___n_methid_t)CALL(variable[4],COLOR_parser_nodes___AMethPropdef___n_methid))(variable[4]) /*AMethPropdef::n_methid*/;
-    variable[4] = ((mmbuilder___PMethid___name_t)CALL(variable[4],COLOR_mmbuilder___PMethid___name))(variable[4]) /*PMethid::name*/;
+    variable[4] = CALL_parser_nodes___AMethPropdef___n_methid(variable[4])(variable[4]) /*AMethPropdef::n_methid*/;
+    variable[4] = CALL_mmbuilder___PMethid___name(variable[4])(variable[4]) /*PMethid::name*/;
     ATTR_mmbuilder___AMethPropdef____name(variable[3]) /*AMethPropdef::_name*/ = variable[4];
     variable[3] = variable[0];
-    variable[3] = ((parser_nodes___AMethPropdef___n_methid_t)CALL(variable[3],COLOR_parser_nodes___AMethPropdef___n_methid))(variable[3]) /*AMethPropdef::n_methid*/;
-    variable[3] = ((mmbuilder___PMethid___name_t)CALL(variable[3],COLOR_mmbuilder___PMethid___name))(variable[3]) /*PMethid::name*/;
+    variable[3] = CALL_parser_nodes___AMethPropdef___n_methid(variable[3])(variable[3]) /*AMethPropdef::n_methid*/;
+    variable[3] = CALL_mmbuilder___PMethid___name(variable[3])(variable[3]) /*PMethid::name*/;
     if (once_bool_105) variable[4] = once_value_105;
     else {
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-      variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/;
+      variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
       once_value_105 = variable[4];
       once_bool_105 = true;
     }
-    variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[4]) /*Object::==*/)))));
+    variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((parser_nodes___AMethPropdef___n_signature_t)CALL(variable[4],COLOR_parser_nodes___AMethPropdef___n_signature))(variable[4]) /*AMethPropdef::n_signature*/;
+      variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[4])(variable[4]) /*AMethPropdef::n_signature*/;
       variable[3] = variable[4];
       variable[4] = TAG_Bool(( variable[3] /*ns*/==NIT_NULL) || VAL_ISA( variable[3] /*ns*/, COLOR_ASignature, ID_ASignature)) /*cast ASignature*/;
       variable[5] = variable[4];
       if (UNTAG_Bool(variable[5])) { /* and */
-        variable[5] = ((parser_nodes___ASignature___n_params_t)CALL( variable[3] /*ns*/,COLOR_parser_nodes___ASignature___n_params))( variable[3] /*ns*/) /*ASignature::n_params*/;
-        variable[5] = ((list___List___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*List::length*/;
+        variable[5] = CALL_parser_nodes___ASignature___n_params( variable[3] /*ns*/)( variable[3] /*ns*/) /*ASignature::n_params*/;
+        variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*List::length*/;
         variable[5] = TAG_Bool((variable[5])==( TAG_Int(0)));
       }
       variable[4] = variable[5];
@@ -3534,7 +3567,7 @@ void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  para
         if (once_bool_106) variable[5] = once_value_106;
         else {
           variable[5] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
-          variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
+          variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
           once_value_106 = variable[5];
           once_bool_106 = true;
         }
@@ -3544,15 +3577,15 @@ void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_mmbuilder___AMethPropdef____name(variable[4]) /*AMethPropdef::_name*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
   variable[6] = variable[0];
   variable[7] = NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(variable[4], variable[5], variable[6]); /*new MMMethSrcMethod*/
   variable[4] = variable[7];
   variable[3] = variable[4];
   variable[4] = variable[0];
   ATTR_mmbuilder___AMethPropdef____method(variable[4]) /*AMethPropdef::_method*/ =  variable[3] /*prop*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable[4],COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable[4],  variable[1] /*v*/,  variable[3] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
   return_label102: while(false);
   tracehead = trace.prev;
   return;
@@ -3566,53 +3599,53 @@ void mmbuilder___AMethPropdef___accept_property_verifier(val_t  self, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); /*new SignatureBuilder*/
-  ((mmbuilder___PropertyVerifierVisitor___signature_builder__eq_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder__eq))( variable[1] /*v*/, variable[3]) /*PropertyVerifierVisitor::signature_builder=*/;
-  ((mmbuilder___AMethPropdef___accept_property_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_verifier))(variable[0], variable[1]) /*super AMethPropdef::accept_property_verifier*/;
-  variable[3] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-  variable[3] = ((mmbuilder___SignatureBuilder___signature_t)CALL(variable[3],COLOR_mmbuilder___SignatureBuilder___signature))(variable[3]) /*SignatureBuilder::signature*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*PropertyVerifierVisitor::signature_builder=*/;
+  CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_property_verifier*/;
+  variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+  variable[3] = CALL_mmbuilder___SignatureBuilder___signature(variable[3])(variable[3]) /*SignatureBuilder::signature*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
   } else { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_mmbuilder___AMethPropdef____method(variable[3]) /*AMethPropdef::_method*/;
-    variable[4] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-    variable[4] = ((mmbuilder___SignatureBuilder___signature_t)CALL(variable[4],COLOR_mmbuilder___SignatureBuilder___signature))(variable[4]) /*SignatureBuilder::signature*/;
-    ((static_type___MMLocalProperty___signature__eq_t)CALL(variable[3],COLOR_static_type___MMLocalProperty___signature__eq))(variable[3], variable[4]) /*MMLocalProperty::signature=*/;
+    variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+    variable[4] = CALL_mmbuilder___SignatureBuilder___signature(variable[4])(variable[4]) /*SignatureBuilder::signature*/;
+    CALL_static_type___MMLocalProperty___signature__eq(variable[3])(variable[3], variable[4]) /*MMLocalProperty::signature=*/;
   }
   variable[3] =  TAG_Int(1);
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AMethPropdef___n_visibility_t)CALL(variable[4],COLOR_parser_nodes___AMethPropdef___n_visibility))(variable[4]) /*AMethPropdef::n_visibility*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AMethPropdef___n_visibility(variable[4])(variable[4]) /*AMethPropdef::n_visibility*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AMethPropdef___n_visibility_t)CALL(variable[5],COLOR_parser_nodes___AMethPropdef___n_visibility))(variable[5]) /*AMethPropdef::n_visibility*/;
-    variable[5] = ((mmbuilder___PVisibility___level_t)CALL(variable[5],COLOR_mmbuilder___PVisibility___level))(variable[5]) /*PVisibility::level*/;
+    variable[5] = CALL_parser_nodes___AMethPropdef___n_visibility(variable[5])(variable[5]) /*AMethPropdef::n_visibility*/;
+    variable[5] = CALL_mmbuilder___PVisibility___level(variable[5])(variable[5]) /*PVisibility::level*/;
     variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(1)));
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AMethPropdef___n_visibility_t)CALL(variable[4],COLOR_parser_nodes___AMethPropdef___n_visibility))(variable[4]) /*AMethPropdef::n_visibility*/;
-    variable[4] = ((mmbuilder___PVisibility___level_t)CALL(variable[4],COLOR_mmbuilder___PVisibility___level))(variable[4]) /*PVisibility::level*/;
+    variable[4] = CALL_parser_nodes___AMethPropdef___n_visibility(variable[4])(variable[4]) /*AMethPropdef::n_visibility*/;
+    variable[4] = CALL_mmbuilder___PVisibility___level(variable[4])(variable[4]) /*PVisibility::level*/;
     variable[3] = variable[4] /*visibility_level=*/;
   }
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_mmbuilder___AMethPropdef____method(variable[5]) /*AMethPropdef::_method*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AMethPropdef___n_kwredef_t)CALL(variable[6],COLOR_parser_nodes___AMethPropdef___n_kwredef))(variable[6]) /*AMethPropdef::n_kwredef*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
-  ((mmbuilder___PPropdef___process_and_check_t)CALL(variable[4],COLOR_mmbuilder___PPropdef___process_and_check))(variable[4],  variable[1] /*v*/, variable[5], variable[6],  variable[3] /*visibility_level*/) /*PPropdef::process_and_check*/;
+  variable[6] = CALL_parser_nodes___AMethPropdef___n_kwredef(variable[6])(variable[6]) /*AMethPropdef::n_kwredef*/;
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  CALL_mmbuilder___PPropdef___process_and_check(variable[4])(variable[4],  variable[1] /*v*/, variable[5], variable[6],  variable[3] /*visibility_level*/) /*PPropdef::process_and_check*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AMethPropdef___n_signature_t)CALL(variable[4],COLOR_parser_nodes___AMethPropdef___n_signature))(variable[4]) /*AMethPropdef::n_signature*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[4])(variable[4]) /*AMethPropdef::n_signature*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AMethPropdef___n_signature_t)CALL(variable[4],COLOR_parser_nodes___AMethPropdef___n_signature))(variable[4]) /*AMethPropdef::n_signature*/;
+    variable[4] = CALL_parser_nodes___AMethPropdef___n_signature(variable[4])(variable[4]) /*AMethPropdef::n_signature*/;
     variable[5] = variable[0];
     variable[5] = ATTR_mmbuilder___AMethPropdef____method(variable[5]) /*AMethPropdef::_method*/;
-    ((mmbuilder___PSignature___check_visibility_t)CALL(variable[4],COLOR_mmbuilder___PSignature___check_visibility))(variable[4],  variable[1] /*v*/, variable[5]) /*PSignature::check_visibility*/;
+    CALL_mmbuilder___PSignature___check_visibility(variable[4])(variable[4],  variable[1] /*v*/, variable[5]) /*PSignature::check_visibility*/;
   }
   return_label107: while(false);
   tracehead = trace.prev;
@@ -3638,14 +3671,14 @@ void mmbuilder___AMainMethPropdef___process_and_check(val_t  self, val_t  param0
   variable[2] =  param1;
   variable[3] =  param2;
   variable[4] =  param3;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*prop*/) /*MMLocalProperty::global*/;
-  ((abstractmetamodel___MMGlobalProperty___visibility_level__eq_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___visibility_level__eq))(variable[6],  variable[4] /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*prop*/)( variable[2] /*prop*/) /*MMLocalProperty::global*/;
+  CALL_abstractmetamodel___MMGlobalProperty___visibility_level__eq(variable[6])(variable[6],  variable[4] /*visibility_level*/) /*MMGlobalProperty::visibility_level=*/;
   variable[6] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
-  variable[7] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  variable[7] = ((genericity___MMLocalClass___get_type_t)CALL(variable[7],COLOR_static_type___MMLocalClass___get_type))(variable[7]) /*MMLocalClass::get_type*/;
+  variable[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[7] = CALL_static_type___MMLocalClass___get_type(variable[7])(variable[7]) /*MMLocalClass::get_type*/;
   variable[8] = NEW_MMSignature_static_type___MMSignature___init(variable[6],  NIT_NULL /*null*/, variable[7]); /*new MMSignature*/
   variable[6] = variable[8];
-  ((static_type___MMLocalProperty___signature__eq_t)CALL( variable[2] /*prop*/,COLOR_static_type___MMLocalProperty___signature__eq))( variable[2] /*prop*/, variable[6]) /*MMLocalProperty::signature=*/;
+  CALL_static_type___MMLocalProperty___signature__eq( variable[2] /*prop*/)( variable[2] /*prop*/, variable[6]) /*MMLocalProperty::signature=*/;
   return_label108: while(false);
   tracehead = trace.prev;
   return;
@@ -3659,10 +3692,10 @@ void mmbuilder___ATypePropdef___accept_abs_syntax_visitor(val_t  self, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((mmbuilder___ATypePropdef___prop_t)CALL(variable[3],COLOR_syntax_base___ATypePropdef___prop))(variable[3]) /*ATypePropdef::prop*/;
-  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/;
-  ((mmbuilder___ATypePropdef___accept_abs_syntax_visitor_t)CALL(variable[0],COLOR_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor))(variable[0], variable[1]) /*super ATypePropdef::accept_abs_syntax_visitor*/;
-  ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq))( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
+  variable[3] = CALL_syntax_base___ATypePropdef___prop(variable[3])(variable[3]) /*ATypePropdef::prop*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::local_property=*/;
+  CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___AbsSyntaxVisitor___local_property__eq( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/) /*AbsSyntaxVisitor::local_property=*/;
   return_label109: while(false);
   tracehead = trace.prev;
   return;
@@ -3684,20 +3717,20 @@ void mmbuilder___ATypePropdef___accept_property_builder(val_t  self, val_t  para
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___ATypePropdef___accept_property_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_builder))(variable[0], variable[1]) /*super ATypePropdef::accept_property_builder*/;
+  CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_property_builder*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ATypePropdef___n_id_t)CALL(variable[4],COLOR_parser_nodes___ATypePropdef___n_id))(variable[4]) /*ATypePropdef::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___ATypePropdef___n_id(variable[4])(variable[4]) /*ATypePropdef::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[3] = variable[4];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
   variable[6] = variable[0];
   variable[7] = NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init( variable[3] /*name*/, variable[5], variable[6]); /*new MMSrcTypeProperty*/
   variable[5] = variable[7];
   variable[4] = variable[5];
   variable[5] = variable[0];
   ATTR_mmbuilder___ATypePropdef____prop(variable[5]) /*ATypePropdef::_prop*/ =  variable[4] /*prop*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL(variable[5],COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property))(variable[5],  variable[1] /*v*/,  variable[4] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(variable[5])(variable[5],  variable[1] /*v*/,  variable[4] /*prop*/) /*MMSrcLocalClass::add_src_local_property*/;
   return_label110: while(false);
   tracehead = trace.prev;
   return;
@@ -3710,30 +3743,30 @@ void mmbuilder___ATypePropdef___accept_property_verifier(val_t  self, val_t  par
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___ATypePropdef___accept_property_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_verifier))(variable[0], variable[1]) /*super ATypePropdef::accept_property_verifier*/;
+  CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super ATypePropdef::accept_property_verifier*/;
   variable[4] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ATypePropdef___n_type_t)CALL(variable[5],COLOR_parser_nodes___ATypePropdef___n_type))(variable[5]) /*ATypePropdef::n_type*/;
-  variable[5] = ((syntax_base___PType___get_stype_t)CALL(variable[5],COLOR_syntax_base___PType___get_stype))(variable[5],  variable[1] /*v*/) /*PType::get_stype*/;
-  variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  variable[6] = ((genericity___MMLocalClass___get_type_t)CALL(variable[6],COLOR_static_type___MMLocalClass___get_type))(variable[6]) /*MMLocalClass::get_type*/;
+  variable[5] = CALL_parser_nodes___ATypePropdef___n_type(variable[5])(variable[5]) /*ATypePropdef::n_type*/;
+  variable[5] = CALL_syntax_base___PType___get_stype(variable[5])(variable[5],  variable[1] /*v*/) /*PType::get_stype*/;
+  variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/;
   variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[4], variable[5], variable[6]); /*new MMSignature*/
   variable[4] = variable[7];
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_mmbuilder___ATypePropdef____prop(variable[4]) /*ATypePropdef::_prop*/;
-  ((static_type___MMLocalProperty___signature__eq_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature__eq))(variable[4],  variable[3] /*signature*/) /*MMLocalProperty::signature=*/;
+  CALL_static_type___MMLocalProperty___signature__eq(variable[4])(variable[4],  variable[3] /*signature*/) /*MMLocalProperty::signature=*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ATypePropdef___n_visibility_t)CALL(variable[5],COLOR_parser_nodes___ATypePropdef___n_visibility))(variable[5]) /*ATypePropdef::n_visibility*/;
-  variable[5] = ((mmbuilder___PVisibility___level_t)CALL(variable[5],COLOR_mmbuilder___PVisibility___level))(variable[5]) /*PVisibility::level*/;
+  variable[5] = CALL_parser_nodes___ATypePropdef___n_visibility(variable[5])(variable[5]) /*ATypePropdef::n_visibility*/;
+  variable[5] = CALL_mmbuilder___PVisibility___level(variable[5])(variable[5]) /*PVisibility::level*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
   variable[6] = variable[0];
   variable[6] = ATTR_mmbuilder___ATypePropdef____prop(variable[6]) /*ATypePropdef::_prop*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___ATypePropdef___n_kwredef_t)CALL(variable[7],COLOR_parser_nodes___ATypePropdef___n_kwredef))(variable[7]) /*ATypePropdef::n_kwredef*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
-  ((mmbuilder___PPropdef___process_and_check_t)CALL(variable[5],COLOR_mmbuilder___PPropdef___process_and_check))(variable[5],  variable[1] /*v*/, variable[6], variable[7],  variable[4] /*visibility_level*/) /*PPropdef::process_and_check*/;
+  variable[7] = CALL_parser_nodes___ATypePropdef___n_kwredef(variable[7])(variable[7]) /*ATypePropdef::n_kwredef*/;
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  CALL_mmbuilder___PPropdef___process_and_check(variable[5])(variable[5],  variable[1] /*v*/, variable[6], variable[7],  variable[4] /*visibility_level*/) /*PPropdef::process_and_check*/;
   return_label111: while(false);
   tracehead = trace.prev;
   return;
@@ -3750,11 +3783,11 @@ void mmbuilder___MethidAccumulator___visit(val_t  self, val_t  param0) {
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_mmbuilder___MethidAccumulator____name(variable[3]) /*MethidAccumulator::_name*/;
-    variable[4] = ((lexer___Token___text_t)CALL( variable[1] /*n*/,COLOR_lexer___Token___text))( variable[1] /*n*/) /*Token::text*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*String::append*/;
+    variable[4] = CALL_lexer___Token___text( variable[1] /*n*/)( variable[1] /*n*/) /*Token::text*/;
+    CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*String::append*/;
   } else { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___visit_all_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___visit_all))( variable[1] /*n*/, variable[3]) /*PNode::visit_all*/;
+    CALL_parser_prod___PNode___visit_all( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::visit_all*/;
   }
   return_label112: while(false);
   tracehead = trace.prev;
@@ -3796,12 +3829,12 @@ void mmbuilder___PMethid___accept_property_builder(val_t  self, val_t  param0) {
   variable[4] = NEW_MethidAccumulator_mmbuilder___MethidAccumulator___init(); /*new MethidAccumulator*/
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((mmbuilder___MethidAccumulator___visit_t)CALL( variable[3] /*accumulator*/,COLOR_parser_prod___Visitor___visit))( variable[3] /*accumulator*/, variable[4]) /*MethidAccumulator::visit*/;
+  CALL_parser_prod___Visitor___visit( variable[3] /*accumulator*/)( variable[3] /*accumulator*/, variable[4]) /*MethidAccumulator::visit*/;
   variable[4] = variable[0];
-  variable[5] = ((mmbuilder___MethidAccumulator___name_t)CALL( variable[3] /*accumulator*/,COLOR_mmbuilder___MethidAccumulator___name))( variable[3] /*accumulator*/) /*MethidAccumulator::name*/;
-  variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
+  variable[5] = CALL_mmbuilder___MethidAccumulator___name( variable[3] /*accumulator*/)( variable[3] /*accumulator*/) /*MethidAccumulator::name*/;
+  variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
   ATTR_mmbuilder___PMethid____name(variable[4]) /*PMethid::_name*/ = variable[5];
-  ((mmbuilder___PMethid___accept_property_builder_t)CALL(variable[0],COLOR_SUPER_mmbuilder___PMethid___accept_property_builder))(variable[0], variable[1]) /*super PMethid::accept_property_builder*/;
+  CALL_SUPER_mmbuilder___PMethid___accept_property_builder(variable[0])(variable[0], variable[1]) /*super PMethid::accept_property_builder*/;
   return_label114: while(false);
   tracehead = trace.prev;
   return;
@@ -3835,102 +3868,102 @@ void mmbuilder___ASignature___accept_property_verifier(val_t  self, val_t  param
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___ASignature___accept_property_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___ASignature___accept_property_verifier))(variable[0], variable[1]) /*super ASignature::accept_property_verifier*/;
-  variable[3] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-  variable[3] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[3],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[3]) /*SignatureBuilder::untyped_params*/;
-  variable[3] = ((array___AbstractArray___is_empty_t)CALL(variable[3],COLOR_abstract_collection___Collection___is_empty))(variable[3]) /*AbstractArray::is_empty*/;
+  CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super ASignature::accept_property_verifier*/;
+  variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+  variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/;
+  variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
-    variable[3] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-    variable[3] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[3],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[3]) /*SignatureBuilder::untyped_params*/;
-    variable[3] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[3],COLOR_abstract_collection___Collection___first))(variable[3]) /*IndexedCollection::first*/;
-    variable[4] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-    variable[4] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[4],COLOR_mmbuilder___SignatureBuilder___params))(variable[4]) /*SignatureBuilder::params*/;
-    variable[4] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[4],COLOR_abstract_collection___Collection___first))(variable[4]) /*IndexedCollection::first*/;
-    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[4]) /*Object::==*/)))))));
+    variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+    variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/;
+    variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*IndexedCollection::first*/;
+    variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+    variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/;
+    variable[4] = CALL_abstract_collection___Collection___first(variable[4])(variable[4]) /*IndexedCollection::first*/;
+    variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))))));
     variable[4] = variable[3];
     if (!UNTAG_Bool(variable[4])) { /* or */
       variable[4] = variable[0];
-      variable[4] = ((parser_nodes___ASignature___n_type_t)CALL(variable[4],COLOR_parser_nodes___ASignature___n_type))(variable[4]) /*ASignature::n_type*/;
-      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[4] = CALL_parser_nodes___ASignature___n_type(variable[4])(variable[4]) /*ASignature::n_type*/;
+      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
     }
     variable[3] = variable[4];
     if (UNTAG_Bool(variable[3])) { /*if*/
-      variable[3] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[3] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[3],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[3]) /*SignatureBuilder::untyped_params*/;
-      variable[3] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[3],COLOR_abstract_collection___Collection___first))(variable[3]) /*IndexedCollection::first*/;
+      variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/;
+      variable[3] = CALL_abstract_collection___Collection___first(variable[3])(variable[3]) /*IndexedCollection::first*/;
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Syntax error: untyped parameter."), TAG_Int(32)); /*new String*/
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
       goto return_label115;
     }
   } else { /*if*/
-    variable[3] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-    variable[3] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[3],COLOR_mmbuilder___SignatureBuilder___params))(variable[3]) /*SignatureBuilder::params*/;
-    variable[3] = ((array___AbstractArray___is_empty_t)CALL(variable[3],COLOR_abstract_collection___Collection___is_empty))(variable[3]) /*AbstractArray::is_empty*/;
+    variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+    variable[3] = CALL_mmbuilder___SignatureBuilder___params(variable[3])(variable[3]) /*SignatureBuilder::params*/;
+    variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*AbstractArray::is_empty*/;
     variable[3] =  TAG_Bool(!UNTAG_Bool(variable[3]));
     if (!UNTAG_Bool(variable[3])) { /* or */
       variable[3] = variable[0];
-      variable[3] = ((parser_nodes___ASignature___n_type_t)CALL(variable[3],COLOR_parser_nodes___ASignature___n_type))(variable[3]) /*ASignature::n_type*/;
-      variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[3] = CALL_parser_nodes___ASignature___n_type(variable[3])(variable[3]) /*ASignature::n_type*/;
+      variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
     }
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[4] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
       variable[3] = variable[4];
-      variable[4] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[4] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[4],COLOR_mmbuilder___SignatureBuilder___params))(variable[4]) /*SignatureBuilder::params*/;
-      variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+      variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/;
+      variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+        variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[5])) break; /*for*/
-        variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+        variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
         variable[6] = variable[5];
-        variable[7] = ((mmbuilder___PParam___stype_t)CALL( variable[6] /*p*/,COLOR_mmbuilder___PParam___stype))( variable[6] /*p*/) /*PParam::stype*/;
-        ((array___AbstractArray___add_t)CALL( variable[3] /*pars*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*pars*/, variable[7]) /*AbstractArray::add*/;
+        variable[7] = CALL_mmbuilder___PParam___stype( variable[6] /*p*/)( variable[6] /*p*/) /*PParam::stype*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[3] /*pars*/)( variable[3] /*pars*/, variable[7]) /*AbstractArray::add*/;
         continue_116: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
       }
       break_116: while(0);
       variable[4] =  NIT_NULL /*null*/;
       variable[5] = variable[0];
-      variable[5] = ((parser_nodes___ASignature___n_type_t)CALL(variable[5],COLOR_parser_nodes___ASignature___n_type))(variable[5]) /*ASignature::n_type*/;
-      variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[5] = CALL_parser_nodes___ASignature___n_type(variable[5])(variable[5]) /*ASignature::n_type*/;
+      variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[5])) { /*if*/
         variable[5] = variable[0];
-        variable[5] = ((parser_nodes___ASignature___n_type_t)CALL(variable[5],COLOR_parser_nodes___ASignature___n_type))(variable[5]) /*ASignature::n_type*/;
-        variable[5] = ((syntax_base___PType___get_stype_t)CALL(variable[5],COLOR_syntax_base___PType___get_stype))(variable[5],  variable[1] /*v*/) /*PType::get_stype*/;
+        variable[5] = CALL_parser_nodes___ASignature___n_type(variable[5])(variable[5]) /*ASignature::n_type*/;
+        variable[5] = CALL_syntax_base___PType___get_stype(variable[5])(variable[5],  variable[1] /*v*/) /*PType::get_stype*/;
         variable[4] = variable[5] /*ret=*/;
       }
-      variable[5] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-      variable[6] = ((genericity___MMLocalClass___get_type_t)CALL(variable[6],COLOR_static_type___MMLocalClass___get_type))(variable[6]) /*MMLocalClass::get_type*/;
+      variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+      variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/;
       variable[7] = NEW_MMSignature_static_type___MMSignature___init( variable[3] /*pars*/,  variable[4] /*ret*/, variable[6]); /*new MMSignature*/
       variable[6] = variable[7];
-      ((mmbuilder___SignatureBuilder___signature__eq_t)CALL(variable[5],COLOR_mmbuilder___SignatureBuilder___signature__eq))(variable[5], variable[6]) /*SignatureBuilder::signature=*/;
-      variable[5] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[5] = ((mmbuilder___SignatureBuilder___vararg_rank_t)CALL(variable[5],COLOR_mmbuilder___SignatureBuilder___vararg_rank))(variable[5]) /*SignatureBuilder::vararg_rank*/;
+      CALL_mmbuilder___SignatureBuilder___signature__eq(variable[5])(variable[5], variable[6]) /*SignatureBuilder::signature=*/;
+      variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[5] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[5])(variable[5]) /*SignatureBuilder::vararg_rank*/;
       variable[5] = TAG_Bool(UNTAG_Int(variable[5])>=UNTAG_Int( TAG_Int(0)));
       if (UNTAG_Bool(variable[5])) { /*if*/
-        variable[5] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-        variable[5] = ((mmbuilder___SignatureBuilder___signature_t)CALL(variable[5],COLOR_mmbuilder___SignatureBuilder___signature))(variable[5]) /*SignatureBuilder::signature*/;
-        variable[6] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-        variable[6] = ((mmbuilder___SignatureBuilder___vararg_rank_t)CALL(variable[6],COLOR_mmbuilder___SignatureBuilder___vararg_rank))(variable[6]) /*SignatureBuilder::vararg_rank*/;
-        ((vararg___MMSignature___vararg_rank__eq_t)CALL(variable[5],COLOR_vararg___MMSignature___vararg_rank__eq))(variable[5], variable[6]) /*MMSignature::vararg_rank=*/;
+        variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+        variable[5] = CALL_mmbuilder___SignatureBuilder___signature(variable[5])(variable[5]) /*SignatureBuilder::signature*/;
+        variable[6] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+        variable[6] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[6])(variable[6]) /*SignatureBuilder::vararg_rank*/;
+        CALL_vararg___MMSignature___vararg_rank__eq(variable[5])(variable[5], variable[6]) /*MMSignature::vararg_rank=*/;
       }
-      variable[5] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-      variable[5] = ((mmbuilder___SignatureBuilder___closure_decls_t)CALL(variable[5],COLOR_mmbuilder___SignatureBuilder___closure_decls))(variable[5]) /*SignatureBuilder::closure_decls*/;
-      variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+      variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+      variable[5] = CALL_mmbuilder___SignatureBuilder___closure_decls(variable[5])(variable[5]) /*SignatureBuilder::closure_decls*/;
+      variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+        variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[6])) break; /*for*/
-        variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+        variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
         variable[7] = variable[6];
-        variable[8] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-        variable[8] = ((mmbuilder___SignatureBuilder___signature_t)CALL(variable[8],COLOR_mmbuilder___SignatureBuilder___signature))(variable[8]) /*SignatureBuilder::signature*/;
-        variable[8] = ((static_type___MMSignature___closures_t)CALL(variable[8],COLOR_static_type___MMSignature___closures))(variable[8]) /*MMSignature::closures*/;
-        variable[9] = ((mmbuilder___AClosureDecl___variable_t)CALL( variable[7] /*clos*/,COLOR_syntax_base___PClosureDecl___variable))( variable[7] /*clos*/) /*AClosureDecl::variable*/;
-        variable[9] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[9],COLOR_syntax_base___ClosureVariable___closure))(variable[9]) /*ClosureVariable::closure*/;
-        ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
+        variable[8] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+        variable[8] = CALL_mmbuilder___SignatureBuilder___signature(variable[8])(variable[8]) /*SignatureBuilder::signature*/;
+        variable[8] = CALL_static_type___MMSignature___closures(variable[8])(variable[8]) /*MMSignature::closures*/;
+        variable[9] = CALL_syntax_base___PClosureDecl___variable( variable[7] /*clos*/)( variable[7] /*clos*/) /*AClosureDecl::variable*/;
+        variable[9] = CALL_syntax_base___ClosureVariable___closure(variable[9])(variable[9]) /*ClosureVariable::closure*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
         continue_117: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
       }
       break_117: while(0);
     }
@@ -3948,37 +3981,37 @@ void mmbuilder___ASignature___check_visibility(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*p*/) /*MMLocalProperty::global*/;
-  variable[4] = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))(variable[4]) /*MMGlobalProperty::visibility_level*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*p*/)( variable[2] /*p*/) /*MMLocalProperty::global*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[4])(variable[4]) /*MMGlobalProperty::visibility_level*/;
   variable[4] = TAG_Bool(UNTAG_Int(variable[4])>=UNTAG_Int( TAG_Int(3)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     goto return_label118;
   }
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ASignature___n_params_t)CALL(variable[4],COLOR_parser_nodes___ASignature___n_params))(variable[4]) /*ASignature::n_params*/;
-  variable[4] = ((list___List___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*List::iterator*/;
+  variable[4] = CALL_parser_nodes___ASignature___n_params(variable[4])(variable[4]) /*ASignature::n_params*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((list___ListIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ListIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((list___ListIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ListIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((parser_nodes___PParam___n_type_t)CALL( variable[6] /*n*/,COLOR_parser_nodes___PParam___n_type))( variable[6] /*n*/) /*PParam::n_type*/;
-    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[7] = CALL_parser_nodes___PParam___n_type( variable[6] /*n*/)( variable[6] /*n*/) /*PParam::n_type*/;
+    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = ((parser_nodes___PParam___n_type_t)CALL( variable[6] /*n*/,COLOR_parser_nodes___PParam___n_type))( variable[6] /*n*/) /*PParam::n_type*/;
-      ((mmbuilder___PType___check_visibility_t)CALL(variable[7],COLOR_mmbuilder___PType___check_visibility))(variable[7],  variable[1] /*v*/,  variable[2] /*p*/) /*PType::check_visibility*/;
+      variable[7] = CALL_parser_nodes___PParam___n_type( variable[6] /*n*/)( variable[6] /*n*/) /*PParam::n_type*/;
+      CALL_mmbuilder___PType___check_visibility(variable[7])(variable[7],  variable[1] /*v*/,  variable[2] /*p*/) /*PType::check_visibility*/;
     }
     continue_119: while(0);
-    ((list___ListIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/;
   }
   break_119: while(0);
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ASignature___n_type_t)CALL(variable[4],COLOR_parser_nodes___ASignature___n_type))(variable[4]) /*ASignature::n_type*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___ASignature___n_type(variable[4])(variable[4]) /*ASignature::n_type*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___ASignature___n_type_t)CALL(variable[4],COLOR_parser_nodes___ASignature___n_type))(variable[4]) /*ASignature::n_type*/;
-    ((mmbuilder___PType___check_visibility_t)CALL(variable[4],COLOR_mmbuilder___PType___check_visibility))(variable[4],  variable[1] /*v*/,  variable[2] /*p*/) /*PType::check_visibility*/;
+    variable[4] = CALL_parser_nodes___ASignature___n_type(variable[4])(variable[4]) /*ASignature::n_type*/;
+    CALL_mmbuilder___PType___check_visibility(variable[4])(variable[4],  variable[1] /*v*/,  variable[2] /*p*/) /*PType::check_visibility*/;
   }
   return_label118: while(false);
   tracehead = trace.prev;
@@ -4010,73 +4043,73 @@ void mmbuilder___PParam___accept_property_verifier(val_t  self, val_t  param0) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  ((mmbuilder___PParam___accept_property_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___PParam___accept_property_verifier))(variable[0], variable[1]) /*super PParam::accept_property_verifier*/;
+  CALL_SUPER_mmbuilder___PParam___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super PParam::accept_property_verifier*/;
   variable[3] = variable[0];
-  variable[4] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-  variable[4] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[4],COLOR_mmbuilder___SignatureBuilder___params))(variable[4]) /*SignatureBuilder::params*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+  variable[4] = CALL_mmbuilder___SignatureBuilder___params(variable[4])(variable[4]) /*SignatureBuilder::params*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   ATTR_mmbuilder___PParam____position(variable[3]) /*PParam::_position*/ = variable[4];
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___PParam___n_id_t)CALL(variable[4],COLOR_parser_nodes___PParam___n_id))(variable[4]) /*PParam::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___PParam___n_id(variable[4])(variable[4]) /*PParam::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[5] = variable[0];
   variable[6] = NEW_ParamVariable_syntax_base___ParamVariable___init(variable[4], variable[5]); /*new ParamVariable*/
   variable[4] = variable[6];
   ATTR_mmbuilder___PParam____variable(variable[3]) /*PParam::_variable*/ = variable[4];
-  variable[3] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-  variable[3] = ((mmbuilder___SignatureBuilder___params_t)CALL(variable[3],COLOR_mmbuilder___SignatureBuilder___params))(variable[3]) /*SignatureBuilder::params*/;
+  variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+  variable[3] = CALL_mmbuilder___SignatureBuilder___params(variable[3])(variable[3]) /*SignatureBuilder::params*/;
   variable[4] = variable[0];
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
-  variable[3] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-  variable[3] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[3],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[3]) /*SignatureBuilder::untyped_params*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
+  variable[3] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+  variable[3] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[3])(variable[3]) /*SignatureBuilder::untyped_params*/;
   variable[4] = variable[0];
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___PParam___n_type_t)CALL(variable[3],COLOR_parser_nodes___PParam___n_type))(variable[3]) /*PParam::n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___PParam___n_type(variable[3])(variable[3]) /*PParam::n_type*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___PParam___n_type_t)CALL(variable[4],COLOR_parser_nodes___PParam___n_type))(variable[4]) /*PParam::n_type*/;
-    variable[4] = ((syntax_base___PType___get_stype_t)CALL(variable[4],COLOR_syntax_base___PType___get_stype))(variable[4],  variable[1] /*v*/) /*PType::get_stype*/;
+    variable[4] = CALL_parser_nodes___PParam___n_type(variable[4])(variable[4]) /*PParam::n_type*/;
+    variable[4] = CALL_syntax_base___PType___get_stype(variable[4])(variable[4],  variable[1] /*v*/) /*PType::get_stype*/;
     variable[3] = variable[4];
-    variable[4] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-    variable[4] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[4],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[4]) /*SignatureBuilder::untyped_params*/;
-    variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+    variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+    variable[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[4])(variable[4]) /*SignatureBuilder::untyped_params*/;
+    variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+      variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[5])) break; /*for*/
-      variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+      variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
       variable[6] = variable[5];
-      ((mmbuilder___PParam___stype__eq_t)CALL( variable[6] /*p*/,COLOR_mmbuilder___PParam___stype__eq))( variable[6] /*p*/,  variable[3] /*stype*/) /*PParam::stype=*/;
+      CALL_mmbuilder___PParam___stype__eq( variable[6] /*p*/)( variable[6] /*p*/,  variable[3] /*stype*/) /*PParam::stype=*/;
       variable[7] = variable[0];
-      variable[7] = ((mmbuilder___PParam___is_vararg_t)CALL(variable[7],COLOR_mmbuilder___PParam___is_vararg))(variable[7]) /*PParam::is_vararg*/;
+      variable[7] = CALL_mmbuilder___PParam___is_vararg(variable[7])(variable[7]) /*PParam::is_vararg*/;
       if (UNTAG_Bool(variable[7])) { /*if*/
-        variable[7] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-        variable[7] = ((mmbuilder___SignatureBuilder___vararg_rank_t)CALL(variable[7],COLOR_mmbuilder___SignatureBuilder___vararg_rank))(variable[7]) /*SignatureBuilder::vararg_rank*/;
+        variable[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+        variable[7] = CALL_mmbuilder___SignatureBuilder___vararg_rank(variable[7])(variable[7]) /*SignatureBuilder::vararg_rank*/;
         variable[8] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
         variable[7] = TAG_Bool((variable[7])==(variable[8]));
         if (UNTAG_Bool(variable[7])) { /*if*/
-          variable[7] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-          variable[8] = ((mmbuilder___PParam___position_t)CALL( variable[6] /*p*/,COLOR_syntax_base___PParam___position))( variable[6] /*p*/) /*PParam::position*/;
-          ((mmbuilder___SignatureBuilder___vararg_rank__eq_t)CALL(variable[7],COLOR_mmbuilder___SignatureBuilder___vararg_rank__eq))(variable[7], variable[8]) /*SignatureBuilder::vararg_rank=*/;
+          variable[7] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+          variable[8] = CALL_syntax_base___PParam___position( variable[6] /*p*/)( variable[6] /*p*/) /*PParam::position*/;
+          CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(variable[7])(variable[7], variable[8]) /*SignatureBuilder::vararg_rank=*/;
         } else { /*if*/
           variable[7] = variable[0];
           variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: A vararg parameter is already defined."), TAG_Int(45)); /*new String*/
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
         }
-        variable[7] = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable[1] /*v*/,  variable[3] /*stype*/) /*AbsSyntaxVisitor::type_array*/;
+        variable[7] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*stype*/) /*AbsSyntaxVisitor::type_array*/;
         variable[3] = variable[7] /*stype=*/;
       }
-      variable[7] = ((mmbuilder___PParam___variable_t)CALL( variable[6] /*p*/,COLOR_syntax_base___PParam___variable))( variable[6] /*p*/) /*PParam::variable*/;
-      ((syntax_base___Variable___stype__eq_t)CALL(variable[7],COLOR_syntax_base___Variable___stype__eq))(variable[7],  variable[3] /*stype*/) /*Variable::stype=*/;
+      variable[7] = CALL_syntax_base___PParam___variable( variable[6] /*p*/)( variable[6] /*p*/) /*PParam::variable*/;
+      CALL_syntax_base___Variable___stype__eq(variable[7])(variable[7],  variable[3] /*stype*/) /*Variable::stype=*/;
       continue_121: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
     }
     break_121: while(0);
-    variable[4] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-    variable[4] = ((mmbuilder___SignatureBuilder___untyped_params_t)CALL(variable[4],COLOR_mmbuilder___SignatureBuilder___untyped_params))(variable[4]) /*SignatureBuilder::untyped_params*/;
-    ((array___AbstractArray___clear_t)CALL(variable[4],COLOR_abstract_collection___RemovableCollection___clear))(variable[4]) /*AbstractArray::clear*/;
+    variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+    variable[4] = CALL_mmbuilder___SignatureBuilder___untyped_params(variable[4])(variable[4]) /*SignatureBuilder::untyped_params*/;
+    CALL_abstract_collection___RemovableCollection___clear(variable[4])(variable[4]) /*AbstractArray::clear*/;
   }
   return_label120: while(false);
   tracehead = trace.prev;
@@ -4121,8 +4154,8 @@ val_t mmbuilder___AParam___is_vararg(val_t  self) {
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AParam___n_dotdotdot_t)CALL(variable[2],COLOR_parser_nodes___AParam___n_dotdotdot))(variable[2]) /*AParam::n_dotdotdot*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = CALL_parser_nodes___AParam___n_dotdotdot(variable[2])(variable[2]) /*AParam::n_dotdotdot*/;
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[1] = variable[2];
   goto return_label122;
   return_label122: while(false);
@@ -4146,36 +4179,36 @@ void mmbuilder___AClosureDecl___accept_property_verifier(val_t  self, val_t  par
   trace.file = LOCATE_mmbuilder;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+  variable[4] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
   variable[3] = variable[4];
   variable[4] = NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init(); /*new SignatureBuilder*/
-  ((mmbuilder___PropertyVerifierVisitor___signature_builder__eq_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder__eq))( variable[1] /*v*/, variable[4]) /*PropertyVerifierVisitor::signature_builder=*/;
-  ((mmbuilder___AClosureDecl___accept_property_verifier_t)CALL(variable[0],COLOR_SUPER_mmbuilder___AClosureDecl___accept_property_verifier))(variable[0], variable[1]) /*super AClosureDecl::accept_property_verifier*/;
-  variable[5] = ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder))( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
-  variable[5] = ((mmbuilder___SignatureBuilder___signature_t)CALL(variable[5],COLOR_mmbuilder___SignatureBuilder___signature))(variable[5]) /*SignatureBuilder::signature*/;
+  CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*PropertyVerifierVisitor::signature_builder=*/;
+  CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(variable[0])(variable[0], variable[1]) /*super AClosureDecl::accept_property_verifier*/;
+  variable[5] = CALL_mmbuilder___PropertyVerifierVisitor___signature_builder( variable[1] /*v*/)( variable[1] /*v*/) /*PropertyVerifierVisitor::signature_builder*/;
+  variable[5] = CALL_mmbuilder___SignatureBuilder___signature(variable[5])(variable[5]) /*SignatureBuilder::signature*/;
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(( variable[4] /*sig*/ ==  NIT_NULL /*null*/) || (( variable[4] /*sig*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*sig*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*sig*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*sig*/,COLOR_kernel___Object_____eqeq))( variable[4] /*sig*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = TAG_Bool(( variable[4] /*sig*/ ==  NIT_NULL /*null*/) || (( variable[4] /*sig*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*sig*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*sig*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*sig*/)( variable[4] /*sig*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
-    variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-    variable[6] = ((genericity___MMLocalClass___get_type_t)CALL(variable[6],COLOR_static_type___MMLocalClass___get_type))(variable[6]) /*MMLocalClass::get_type*/;
+    variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+    variable[6] = CALL_static_type___MMLocalClass___get_type(variable[6])(variable[6]) /*MMLocalClass::get_type*/;
     variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[5],  NIT_NULL /*null*/, variable[6]); /*new MMSignature*/
     variable[5] = variable[7];
     variable[4] = variable[5] /*sig=*/;
   }
-  variable[5] = ((static_type___MMSignature___return_type_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___return_type))( variable[4] /*sig*/) /*MMSignature::return_type*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = CALL_static_type___MMSignature___return_type( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::return_type*/;
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[6] = variable[5];
   if (UNTAG_Bool(variable[6])) { /* and */
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AClosureDecl___n_kwbreak_t)CALL(variable[6],COLOR_parser_nodes___AClosureDecl___n_kwbreak))(variable[6]) /*AClosureDecl::n_kwbreak*/;
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = CALL_parser_nodes___AClosureDecl___n_kwbreak(variable[6])(variable[6]) /*AClosureDecl::n_kwbreak*/;
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
   }
   variable[5] = variable[6];
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Syntax Error: A break bloc cannot have a return value."), TAG_Int(54)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
   }
   variable[6] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
   variable[7] = NEW_MMSignature_static_type___MMSignature___init(variable[6],  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new MMSignature*/
@@ -4183,25 +4216,25 @@ void mmbuilder___AClosureDecl___accept_property_verifier(val_t  self, val_t  par
   variable[5] = variable[6];
   variable[7] = NEW_MMClosure_static_type___MMClosure___init( variable[5] /*finalize_sig*/,  TAG_Bool(false),  TAG_Bool(true)); /*new MMClosure*/
   variable[6] = variable[7];
-  variable[7] = ((static_type___MMSignature___closures_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___closures))( variable[4] /*sig*/) /*MMSignature::closures*/;
-  ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[6] /*finalizer_clos*/) /*AbstractArray::add*/;
+  variable[7] = CALL_static_type___MMSignature___closures( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::closures*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[6] /*finalizer_clos*/) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((parser_nodes___AClosureDecl___n_kwbreak_t)CALL(variable[8],COLOR_parser_nodes___AClosureDecl___n_kwbreak))(variable[8]) /*AClosureDecl::n_kwbreak*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[8],COLOR_kernel___Object_____eqeq))(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = CALL_parser_nodes___AClosureDecl___n_kwbreak(variable[8])(variable[8]) /*AClosureDecl::n_kwbreak*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[8] ==  NIT_NULL /*null*/) || ((variable[8] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[8])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[8], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[8])(variable[8],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[9] = variable[0];
-  variable[9] = ((parser_nodes___AClosureDecl___n_expr_t)CALL(variable[9],COLOR_parser_nodes___AClosureDecl___n_expr))(variable[9]) /*AClosureDecl::n_expr*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[9],COLOR_kernel___Object_____eqeq))(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = CALL_parser_nodes___AClosureDecl___n_expr(variable[9])(variable[9]) /*AClosureDecl::n_expr*/;
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[9] ==  NIT_NULL /*null*/) || ((variable[9] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[9])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[9], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[9])(variable[9],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[10] = NEW_MMClosure_static_type___MMClosure___init( variable[4] /*sig*/, variable[8], variable[9]); /*new MMClosure*/
   variable[8] = variable[10];
   variable[7] = variable[8];
-  ((mmbuilder___PropertyVerifierVisitor___signature_builder__eq_t)CALL( variable[1] /*v*/,COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder__eq))( variable[1] /*v*/,  variable[3] /*old_signature_builder*/) /*PropertyVerifierVisitor::signature_builder=*/;
-  variable[8] = ((mmbuilder___SignatureBuilder___closure_decls_t)CALL( variable[3] /*old_signature_builder*/,COLOR_mmbuilder___SignatureBuilder___closure_decls))( variable[3] /*old_signature_builder*/) /*SignatureBuilder::closure_decls*/;
+  CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_signature_builder*/) /*PropertyVerifierVisitor::signature_builder=*/;
+  variable[8] = CALL_mmbuilder___SignatureBuilder___closure_decls( variable[3] /*old_signature_builder*/)( variable[3] /*old_signature_builder*/) /*SignatureBuilder::closure_decls*/;
   variable[9] = variable[0];
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
   variable[8] = variable[0];
   variable[9] = variable[0];
-  variable[9] = ((parser_nodes___AClosureDecl___n_id_t)CALL(variable[9],COLOR_parser_nodes___AClosureDecl___n_id))(variable[9]) /*AClosureDecl::n_id*/;
-  variable[9] = ((syntax_base___Token___to_symbol_t)CALL(variable[9],COLOR_syntax_base___Token___to_symbol))(variable[9]) /*Token::to_symbol*/;
+  variable[9] = CALL_parser_nodes___AClosureDecl___n_id(variable[9])(variable[9]) /*AClosureDecl::n_id*/;
+  variable[9] = CALL_syntax_base___Token___to_symbol(variable[9])(variable[9]) /*Token::to_symbol*/;
   variable[10] = variable[0];
   variable[11] = NEW_ClosureVariable_syntax_base___ClosureVariable___init(variable[9], variable[10],  variable[7] /*clos*/); /*new ClosureVariable*/
   variable[9] = variable[11];
@@ -4231,59 +4264,60 @@ void mmbuilder___AType___check_visibility(val_t  self, val_t  param0, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*p*/) /*MMLocalProperty::global*/;
-  variable[4] = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))(variable[4]) /*MMGlobalProperty::visibility_level*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*p*/)( variable[2] /*p*/) /*MMLocalProperty::global*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[4])(variable[4]) /*MMGlobalProperty::visibility_level*/;
   variable[4] = TAG_Bool(UNTAG_Int(variable[4])>=UNTAG_Int( TAG_Int(3)));
   if (UNTAG_Bool(variable[4])) { /*if*/
     goto return_label124;
   }
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AType___get_stype_t)CALL(variable[5],COLOR_syntax_base___PType___get_stype))(variable[5],  variable[1] /*v*/) /*AType::get_stype*/;
+  variable[5] = CALL_syntax_base___PType___get_stype(variable[5])(variable[5],  variable[1] /*v*/) /*AType::get_stype*/;
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*t*/)( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     goto return_label124;
   }
-  variable[6] = ((static_type___MMType___local_class_t)CALL( variable[4] /*t*/,COLOR_static_type___MMType___local_class))( variable[4] /*t*/) /*MMType::local_class*/;
+  variable[6] = CALL_static_type___MMType___local_class( variable[4] /*t*/)( variable[4] /*t*/) /*MMType::local_class*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(( variable[5] /*bc*/ ==  NIT_NULL /*null*/) || (( variable[5] /*bc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*bc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*bc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*bc*/,COLOR_kernel___Object_____eqeq))( variable[5] /*bc*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[6] = TAG_Bool(( variable[5] /*bc*/ ==  NIT_NULL /*null*/) || (( variable[5] /*bc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*bc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*bc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*bc*/)( variable[5] /*bc*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     goto return_label124;
   }
-  variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[5] /*bc*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[5] /*bc*/) /*MMLocalClass::global*/;
-  variable[6] = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalClass___visibility_level))(variable[6]) /*MMGlobalClass::visibility_level*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___global( variable[5] /*bc*/)( variable[5] /*bc*/) /*MMLocalClass::global*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[6])(variable[6]) /*MMGlobalClass::visibility_level*/;
   variable[6] = TAG_Bool(UNTAG_Int(variable[6])>=UNTAG_Int( TAG_Int(3)));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Access error: Class "), TAG_Int(20)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[5] /*bc*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is private and cannot be used in the signature of the non-private property "), TAG_Int(76)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
     variable[13] =  variable[2] /*p*/;
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
   }
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AType___n_types_t)CALL(variable[6],COLOR_parser_nodes___AType___n_types))(variable[6]) /*AType::n_types*/;
-  variable[6] = ((list___List___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*List::iterator*/;
+  variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((list___ListIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ListIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((list___ListIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ListIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ListIterator::item*/;
     variable[8] = variable[7];
-    ((mmbuilder___PType___check_visibility_t)CALL( variable[8] /*n*/,COLOR_mmbuilder___PType___check_visibility))( variable[8] /*n*/,  variable[1] /*v*/,  variable[2] /*p*/) /*PType::check_visibility*/;
+    CALL_mmbuilder___PType___check_visibility( variable[8] /*n*/)( variable[8] /*n*/,  variable[1] /*v*/,  variable[2] /*p*/) /*PType::check_visibility*/;
     continue_125: while(0);
-    ((list___ListIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ListIterator::next*/;
   }
   break_125: while(0);
   return_label124: while(false);
index 2f63a40..6b2b017 100644 (file)
@@ -27,152 +27,152 @@ extern const classtable_elt_t VFT_MMSrcTypeFormalParameter[];
 extern const classtable_elt_t VFT_MethidAccumulator[];
 extern const char *LOCATE_mmbuilder;
 extern const int SFT_mmbuilder[];
-#define ID_CSHSorter SFT_mmbuilder[0]
-#define COLOR_CSHSorter SFT_mmbuilder[1]
-#define INIT_TABLE_POS_CSHSorter SFT_mmbuilder[2]
-#define COLOR_mmbuilder___CSHSorter___init SFT_mmbuilder[3]
-#define COLOR_mmbuilder___MMSrcModule___do_mmbuilder SFT_mmbuilder[4]
-#define COLOR_mmbuilder___MMLocalClass___accept_class_visitor SFT_mmbuilder[5]
-#define COLOR_mmbuilder___MMLocalClass___accept_properties_visitor SFT_mmbuilder[6]
-#define COLOR_mmbuilder___MMSrcLocalClass___process_default_constructors SFT_mmbuilder[7]
-#define COLOR_mmbuilder___MMSrcLocalClass___add_src_local_property SFT_mmbuilder[8]
-#define COLOR_mmbuilder___MMLocalProperty___accept_property_visitor SFT_mmbuilder[9]
-#define COLOR_mmbuilder___MMImplicitInit____super_init SFT_mmbuilder[10]
-#define COLOR_mmbuilder___MMImplicitInit___super_init SFT_mmbuilder[11]
-#define ID_MMSrcAncestor SFT_mmbuilder[12]
-#define COLOR_MMSrcAncestor SFT_mmbuilder[13]
-#define COLOR_mmbuilder___MMSrcAncestor____node SFT_mmbuilder[14]
-#define COLOR_mmbuilder___MMSrcAncestor____local_class SFT_mmbuilder[15]
-#define INIT_TABLE_POS_MMSrcAncestor SFT_mmbuilder[16]
-#define COLOR_mmbuilder___MMSrcAncestor___node SFT_mmbuilder[17]
-#define COLOR_mmbuilder___MMSrcAncestor___init SFT_mmbuilder[18]
-#define ID_ClassBuilderVisitor SFT_mmbuilder[19]
-#define COLOR_ClassBuilderVisitor SFT_mmbuilder[20]
-#define COLOR_mmbuilder___ClassBuilderVisitor____local_class_arity SFT_mmbuilder[21]
-#define COLOR_mmbuilder___ClassBuilderVisitor____formals SFT_mmbuilder[22]
-#define INIT_TABLE_POS_ClassBuilderVisitor SFT_mmbuilder[23]
-#define COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity SFT_mmbuilder[24]
-#define COLOR_mmbuilder___ClassBuilderVisitor___local_class_arity__eq SFT_mmbuilder[25]
-#define COLOR_mmbuilder___ClassBuilderVisitor___formals SFT_mmbuilder[26]
-#define COLOR_mmbuilder___ClassBuilderVisitor___formals__eq SFT_mmbuilder[27]
-#define COLOR_mmbuilder___ClassBuilderVisitor___init SFT_mmbuilder[28]
-#define ID_ClassSpecializationBuilderVisitor SFT_mmbuilder[29]
-#define COLOR_ClassSpecializationBuilderVisitor SFT_mmbuilder[30]
-#define INIT_TABLE_POS_ClassSpecializationBuilderVisitor SFT_mmbuilder[31]
-#define COLOR_mmbuilder___ClassSpecializationBuilderVisitor___init SFT_mmbuilder[32]
-#define ID_ClassAncestorBuilder SFT_mmbuilder[33]
-#define COLOR_ClassAncestorBuilder SFT_mmbuilder[34]
-#define INIT_TABLE_POS_ClassAncestorBuilder SFT_mmbuilder[35]
-#define COLOR_mmbuilder___ClassAncestorBuilder___init SFT_mmbuilder[36]
-#define ID_ClassVerifierVisitor SFT_mmbuilder[37]
-#define COLOR_ClassVerifierVisitor SFT_mmbuilder[38]
-#define INIT_TABLE_POS_ClassVerifierVisitor SFT_mmbuilder[39]
-#define COLOR_mmbuilder___ClassVerifierVisitor___init SFT_mmbuilder[40]
-#define ID_PropertyBuilderVisitor SFT_mmbuilder[41]
-#define COLOR_PropertyBuilderVisitor SFT_mmbuilder[42]
-#define INIT_TABLE_POS_PropertyBuilderVisitor SFT_mmbuilder[43]
-#define COLOR_mmbuilder___PropertyBuilderVisitor___init SFT_mmbuilder[44]
-#define ID_PropertyVerifierVisitor SFT_mmbuilder[45]
-#define COLOR_PropertyVerifierVisitor SFT_mmbuilder[46]
-#define COLOR_mmbuilder___PropertyVerifierVisitor____signature_builder SFT_mmbuilder[47]
-#define INIT_TABLE_POS_PropertyVerifierVisitor SFT_mmbuilder[48]
-#define COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder SFT_mmbuilder[49]
-#define COLOR_mmbuilder___PropertyVerifierVisitor___signature_builder__eq SFT_mmbuilder[50]
-#define COLOR_mmbuilder___PropertyVerifierVisitor___init SFT_mmbuilder[51]
-#define ID_SignatureBuilder SFT_mmbuilder[52]
-#define COLOR_SignatureBuilder SFT_mmbuilder[53]
-#define COLOR_mmbuilder___SignatureBuilder____params SFT_mmbuilder[54]
-#define COLOR_mmbuilder___SignatureBuilder____untyped_params SFT_mmbuilder[55]
-#define COLOR_mmbuilder___SignatureBuilder____vararg_rank SFT_mmbuilder[56]
-#define COLOR_mmbuilder___SignatureBuilder____closure_decls SFT_mmbuilder[57]
-#define COLOR_mmbuilder___SignatureBuilder____signature SFT_mmbuilder[58]
-#define INIT_TABLE_POS_SignatureBuilder SFT_mmbuilder[59]
-#define COLOR_mmbuilder___SignatureBuilder___params SFT_mmbuilder[60]
-#define COLOR_mmbuilder___SignatureBuilder___params__eq SFT_mmbuilder[61]
-#define COLOR_mmbuilder___SignatureBuilder___untyped_params SFT_mmbuilder[62]
-#define COLOR_mmbuilder___SignatureBuilder___untyped_params__eq SFT_mmbuilder[63]
-#define COLOR_mmbuilder___SignatureBuilder___vararg_rank SFT_mmbuilder[64]
-#define COLOR_mmbuilder___SignatureBuilder___vararg_rank__eq SFT_mmbuilder[65]
-#define COLOR_mmbuilder___SignatureBuilder___closure_decls SFT_mmbuilder[66]
-#define COLOR_mmbuilder___SignatureBuilder___closure_decls__eq SFT_mmbuilder[67]
-#define COLOR_mmbuilder___SignatureBuilder___signature SFT_mmbuilder[68]
-#define COLOR_mmbuilder___SignatureBuilder___signature__eq SFT_mmbuilder[69]
-#define COLOR_mmbuilder___SignatureBuilder___init SFT_mmbuilder[70]
-#define COLOR_mmbuilder___PNode___accept_class_builder SFT_mmbuilder[71]
-#define COLOR_mmbuilder___PNode___accept_class_specialization_builder SFT_mmbuilder[72]
-#define COLOR_mmbuilder___PNode___accept_class_ancestor_builder SFT_mmbuilder[73]
-#define COLOR_mmbuilder___PNode___accept_class_verifier SFT_mmbuilder[74]
-#define COLOR_mmbuilder___PNode___accept_property_builder SFT_mmbuilder[75]
-#define COLOR_mmbuilder___PNode___accept_property_verifier SFT_mmbuilder[76]
-#define COLOR_mmbuilder___AModule___import_super_modules SFT_mmbuilder[77]
-#define COLOR_mmbuilder___PImport___module_name SFT_mmbuilder[78]
-#define COLOR_mmbuilder___PImport___visibility_level SFT_mmbuilder[79]
-#define COLOR_mmbuilder___PVisibility___level SFT_mmbuilder[80]
-#define COLOR_mmbuilder___PClassdef____local_class SFT_mmbuilder[81]
-#define COLOR_mmbuilder___PClassdef___name SFT_mmbuilder[82]
-#define COLOR_mmbuilder___PClassdef___arity SFT_mmbuilder[83]
-#define COLOR_mmbuilder___PClassdef___visibility_level SFT_mmbuilder[84]
-#define COLOR_SUPER_mmbuilder___PClassdef___accept_class_builder SFT_mmbuilder[85]
-#define COLOR_SUPER_mmbuilder___PClassdef___accept_abs_syntax_visitor SFT_mmbuilder[86]
-#define COLOR_mmbuilder___PClasskind___is_interface SFT_mmbuilder[87]
-#define COLOR_mmbuilder___PClasskind___is_universal SFT_mmbuilder[88]
-#define COLOR_mmbuilder___PClasskind___is_abstract SFT_mmbuilder[89]
-#define COLOR_SUPER_mmbuilder___AClassdef___accept_class_verifier SFT_mmbuilder[90]
-#define ID_MMSrcTypeFormalParameter SFT_mmbuilder[91]
-#define COLOR_MMSrcTypeFormalParameter SFT_mmbuilder[92]
-#define COLOR_mmbuilder___MMSrcTypeFormalParameter____node SFT_mmbuilder[93]
-#define INIT_TABLE_POS_MMSrcTypeFormalParameter SFT_mmbuilder[94]
-#define COLOR_mmbuilder___MMSrcTypeFormalParameter___node SFT_mmbuilder[95]
-#define COLOR_mmbuilder___MMSrcTypeFormalParameter___init SFT_mmbuilder[96]
-#define COLOR_mmbuilder___AFormaldef____formal SFT_mmbuilder[97]
-#define COLOR_SUPER_mmbuilder___AFormaldef___accept_class_builder SFT_mmbuilder[98]
-#define COLOR_SUPER_mmbuilder___AFormaldef___accept_class_verifier SFT_mmbuilder[99]
-#define COLOR_mmbuilder___ASuperclass____ancestor SFT_mmbuilder[100]
-#define COLOR_mmbuilder___ASuperclass___ancestor SFT_mmbuilder[101]
-#define COLOR_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder SFT_mmbuilder[102]
-#define COLOR_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder SFT_mmbuilder[103]
-#define COLOR_SUPER_mmbuilder___ASuperclass___accept_class_verifier SFT_mmbuilder[104]
-#define COLOR_mmbuilder___PPropdef___process_and_check SFT_mmbuilder[105]
-#define COLOR_mmbuilder___PPropdef___do_and_check_intro SFT_mmbuilder[106]
-#define COLOR_mmbuilder___PPropdef___inherit_signature SFT_mmbuilder[107]
-#define COLOR_mmbuilder___PPropdef___do_and_check_redef SFT_mmbuilder[108]
-#define COLOR_mmbuilder___AAttrPropdef____readmethod SFT_mmbuilder[109]
-#define COLOR_mmbuilder___AAttrPropdef____writemethod SFT_mmbuilder[110]
-#define COLOR_mmbuilder___AAttrPropdef____prop SFT_mmbuilder[111]
-#define COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_builder SFT_mmbuilder[112]
-#define COLOR_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier SFT_mmbuilder[113]
-#define COLOR_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor SFT_mmbuilder[114]
-#define COLOR_mmbuilder___AMethPropdef____name SFT_mmbuilder[115]
-#define COLOR_mmbuilder___AMethPropdef____method SFT_mmbuilder[116]
-#define COLOR_mmbuilder___AMethPropdef___name SFT_mmbuilder[117]
-#define COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_builder SFT_mmbuilder[118]
-#define COLOR_SUPER_mmbuilder___AMethPropdef___accept_property_verifier SFT_mmbuilder[119]
-#define COLOR_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor SFT_mmbuilder[120]
-#define COLOR_mmbuilder___ATypePropdef____prop SFT_mmbuilder[121]
-#define COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_builder SFT_mmbuilder[122]
-#define COLOR_SUPER_mmbuilder___ATypePropdef___accept_property_verifier SFT_mmbuilder[123]
-#define COLOR_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor SFT_mmbuilder[124]
-#define ID_MethidAccumulator SFT_mmbuilder[125]
-#define COLOR_MethidAccumulator SFT_mmbuilder[126]
-#define COLOR_mmbuilder___MethidAccumulator____name SFT_mmbuilder[127]
-#define INIT_TABLE_POS_MethidAccumulator SFT_mmbuilder[128]
-#define COLOR_mmbuilder___MethidAccumulator___name SFT_mmbuilder[129]
-#define COLOR_mmbuilder___MethidAccumulator___init SFT_mmbuilder[130]
-#define COLOR_mmbuilder___PMethid____name SFT_mmbuilder[131]
-#define COLOR_mmbuilder___PMethid___name SFT_mmbuilder[132]
-#define COLOR_SUPER_mmbuilder___PMethid___accept_property_builder SFT_mmbuilder[133]
-#define COLOR_mmbuilder___PSignature___check_visibility SFT_mmbuilder[134]
-#define COLOR_SUPER_mmbuilder___ASignature___accept_property_verifier SFT_mmbuilder[135]
-#define COLOR_mmbuilder___PParam____position SFT_mmbuilder[136]
-#define COLOR_mmbuilder___PParam____variable SFT_mmbuilder[137]
-#define COLOR_mmbuilder___PParam____stype SFT_mmbuilder[138]
-#define COLOR_mmbuilder___PParam___stype SFT_mmbuilder[139]
-#define COLOR_mmbuilder___PParam___stype__eq SFT_mmbuilder[140]
-#define COLOR_SUPER_mmbuilder___PParam___accept_property_verifier SFT_mmbuilder[141]
-#define COLOR_mmbuilder___PParam___is_vararg SFT_mmbuilder[142]
-#define COLOR_mmbuilder___AClosureDecl____variable SFT_mmbuilder[143]
-#define COLOR_SUPER_mmbuilder___AClosureDecl___accept_property_verifier SFT_mmbuilder[144]
-#define COLOR_mmbuilder___PType___check_visibility SFT_mmbuilder[145]
+#define ID_CSHSorter (SFT_mmbuilder[0])
+#define COLOR_CSHSorter (SFT_mmbuilder[1])
+#define INIT_TABLE_POS_CSHSorter (SFT_mmbuilder[2] + 0)
+#define CALL_mmbuilder___CSHSorter___init(recv) ((mmbuilder___CSHSorter___init_t)CALL((recv), (SFT_mmbuilder[2] + 1)))
+#define CALL_mmbuilder___MMSrcModule___do_mmbuilder(recv) ((mmbuilder___MMSrcModule___do_mmbuilder_t)CALL((recv), (SFT_mmbuilder[3] + 0)))
+#define CALL_mmbuilder___MMLocalClass___accept_class_visitor(recv) ((mmbuilder___MMLocalClass___accept_class_visitor_t)CALL((recv), (SFT_mmbuilder[4] + 0)))
+#define CALL_mmbuilder___MMLocalClass___accept_properties_visitor(recv) ((mmbuilder___MMLocalClass___accept_properties_visitor_t)CALL((recv), (SFT_mmbuilder[4] + 1)))
+#define CALL_mmbuilder___MMSrcLocalClass___process_default_constructors(recv) ((mmbuilder___MMSrcLocalClass___process_default_constructors_t)CALL((recv), (SFT_mmbuilder[5] + 0)))
+#define CALL_mmbuilder___MMSrcLocalClass___add_src_local_property(recv) ((mmbuilder___MMSrcLocalClass___add_src_local_property_t)CALL((recv), (SFT_mmbuilder[5] + 1)))
+#define CALL_mmbuilder___MMLocalProperty___accept_property_visitor(recv) ((mmbuilder___MMLocalProperty___accept_property_visitor_t)CALL((recv), (SFT_mmbuilder[6] + 0)))
+#define ATTR_mmbuilder___MMImplicitInit____super_init(recv) ATTR(recv, (SFT_mmbuilder[7] + 0))
+#define CALL_mmbuilder___MMImplicitInit___super_init(recv) ((mmbuilder___MMImplicitInit___super_init_t)CALL((recv), (SFT_mmbuilder[8] + 0)))
+#define ID_MMSrcAncestor (SFT_mmbuilder[9])
+#define COLOR_MMSrcAncestor (SFT_mmbuilder[10])
+#define ATTR_mmbuilder___MMSrcAncestor____node(recv) ATTR(recv, (SFT_mmbuilder[11] + 0))
+#define ATTR_mmbuilder___MMSrcAncestor____local_class(recv) ATTR(recv, (SFT_mmbuilder[11] + 1))
+#define INIT_TABLE_POS_MMSrcAncestor (SFT_mmbuilder[12] + 0)
+#define CALL_mmbuilder___MMSrcAncestor___node(recv) ((mmbuilder___MMSrcAncestor___node_t)CALL((recv), (SFT_mmbuilder[12] + 1)))
+#define CALL_mmbuilder___MMSrcAncestor___init(recv) ((mmbuilder___MMSrcAncestor___init_t)CALL((recv), (SFT_mmbuilder[12] + 2)))
+#define ID_ClassBuilderVisitor (SFT_mmbuilder[13])
+#define COLOR_ClassBuilderVisitor (SFT_mmbuilder[14])
+#define ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(recv) ATTR(recv, (SFT_mmbuilder[15] + 0))
+#define ATTR_mmbuilder___ClassBuilderVisitor____formals(recv) ATTR(recv, (SFT_mmbuilder[15] + 1))
+#define INIT_TABLE_POS_ClassBuilderVisitor (SFT_mmbuilder[16] + 0)
+#define CALL_mmbuilder___ClassBuilderVisitor___local_class_arity(recv) ((mmbuilder___ClassBuilderVisitor___local_class_arity_t)CALL((recv), (SFT_mmbuilder[16] + 1)))
+#define CALL_mmbuilder___ClassBuilderVisitor___local_class_arity__eq(recv) ((mmbuilder___ClassBuilderVisitor___local_class_arity__eq_t)CALL((recv), (SFT_mmbuilder[16] + 2)))
+#define CALL_mmbuilder___ClassBuilderVisitor___formals(recv) ((mmbuilder___ClassBuilderVisitor___formals_t)CALL((recv), (SFT_mmbuilder[16] + 3)))
+#define CALL_mmbuilder___ClassBuilderVisitor___formals__eq(recv) ((mmbuilder___ClassBuilderVisitor___formals__eq_t)CALL((recv), (SFT_mmbuilder[16] + 4)))
+#define CALL_mmbuilder___ClassBuilderVisitor___init(recv) ((mmbuilder___ClassBuilderVisitor___init_t)CALL((recv), (SFT_mmbuilder[16] + 5)))
+#define ID_ClassSpecializationBuilderVisitor (SFT_mmbuilder[17])
+#define COLOR_ClassSpecializationBuilderVisitor (SFT_mmbuilder[18])
+#define INIT_TABLE_POS_ClassSpecializationBuilderVisitor (SFT_mmbuilder[19] + 0)
+#define CALL_mmbuilder___ClassSpecializationBuilderVisitor___init(recv) ((mmbuilder___ClassSpecializationBuilderVisitor___init_t)CALL((recv), (SFT_mmbuilder[19] + 1)))
+#define ID_ClassAncestorBuilder (SFT_mmbuilder[20])
+#define COLOR_ClassAncestorBuilder (SFT_mmbuilder[21])
+#define INIT_TABLE_POS_ClassAncestorBuilder (SFT_mmbuilder[22] + 0)
+#define CALL_mmbuilder___ClassAncestorBuilder___init(recv) ((mmbuilder___ClassAncestorBuilder___init_t)CALL((recv), (SFT_mmbuilder[22] + 1)))
+#define ID_ClassVerifierVisitor (SFT_mmbuilder[23])
+#define COLOR_ClassVerifierVisitor (SFT_mmbuilder[24])
+#define INIT_TABLE_POS_ClassVerifierVisitor (SFT_mmbuilder[25] + 0)
+#define CALL_mmbuilder___ClassVerifierVisitor___init(recv) ((mmbuilder___ClassVerifierVisitor___init_t)CALL((recv), (SFT_mmbuilder[25] + 1)))
+#define ID_PropertyBuilderVisitor (SFT_mmbuilder[26])
+#define COLOR_PropertyBuilderVisitor (SFT_mmbuilder[27])
+#define INIT_TABLE_POS_PropertyBuilderVisitor (SFT_mmbuilder[28] + 0)
+#define CALL_mmbuilder___PropertyBuilderVisitor___init(recv) ((mmbuilder___PropertyBuilderVisitor___init_t)CALL((recv), (SFT_mmbuilder[28] + 1)))
+#define ID_PropertyVerifierVisitor (SFT_mmbuilder[29])
+#define COLOR_PropertyVerifierVisitor (SFT_mmbuilder[30])
+#define ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(recv) ATTR(recv, (SFT_mmbuilder[31] + 0))
+#define INIT_TABLE_POS_PropertyVerifierVisitor (SFT_mmbuilder[32] + 0)
+#define CALL_mmbuilder___PropertyVerifierVisitor___signature_builder(recv) ((mmbuilder___PropertyVerifierVisitor___signature_builder_t)CALL((recv), (SFT_mmbuilder[32] + 1)))
+#define CALL_mmbuilder___PropertyVerifierVisitor___signature_builder__eq(recv) ((mmbuilder___PropertyVerifierVisitor___signature_builder__eq_t)CALL((recv), (SFT_mmbuilder[32] + 2)))
+#define CALL_mmbuilder___PropertyVerifierVisitor___init(recv) ((mmbuilder___PropertyVerifierVisitor___init_t)CALL((recv), (SFT_mmbuilder[32] + 3)))
+#define ID_SignatureBuilder (SFT_mmbuilder[33])
+#define COLOR_SignatureBuilder (SFT_mmbuilder[34])
+#define ATTR_mmbuilder___SignatureBuilder____params(recv) ATTR(recv, (SFT_mmbuilder[35] + 0))
+#define ATTR_mmbuilder___SignatureBuilder____untyped_params(recv) ATTR(recv, (SFT_mmbuilder[35] + 1))
+#define ATTR_mmbuilder___SignatureBuilder____vararg_rank(recv) ATTR(recv, (SFT_mmbuilder[35] + 2))
+#define ATTR_mmbuilder___SignatureBuilder____closure_decls(recv) ATTR(recv, (SFT_mmbuilder[35] + 3))
+#define ATTR_mmbuilder___SignatureBuilder____signature(recv) ATTR(recv, (SFT_mmbuilder[35] + 4))
+#define INIT_TABLE_POS_SignatureBuilder (SFT_mmbuilder[36] + 0)
+#define CALL_mmbuilder___SignatureBuilder___params(recv) ((mmbuilder___SignatureBuilder___params_t)CALL((recv), (SFT_mmbuilder[36] + 1)))
+#define CALL_mmbuilder___SignatureBuilder___params__eq(recv) ((mmbuilder___SignatureBuilder___params__eq_t)CALL((recv), (SFT_mmbuilder[36] + 2)))
+#define CALL_mmbuilder___SignatureBuilder___untyped_params(recv) ((mmbuilder___SignatureBuilder___untyped_params_t)CALL((recv), (SFT_mmbuilder[36] + 3)))
+#define CALL_mmbuilder___SignatureBuilder___untyped_params__eq(recv) ((mmbuilder___SignatureBuilder___untyped_params__eq_t)CALL((recv), (SFT_mmbuilder[36] + 4)))
+#define CALL_mmbuilder___SignatureBuilder___vararg_rank(recv) ((mmbuilder___SignatureBuilder___vararg_rank_t)CALL((recv), (SFT_mmbuilder[36] + 5)))
+#define CALL_mmbuilder___SignatureBuilder___vararg_rank__eq(recv) ((mmbuilder___SignatureBuilder___vararg_rank__eq_t)CALL((recv), (SFT_mmbuilder[36] + 6)))
+#define CALL_mmbuilder___SignatureBuilder___closure_decls(recv) ((mmbuilder___SignatureBuilder___closure_decls_t)CALL((recv), (SFT_mmbuilder[36] + 7)))
+#define CALL_mmbuilder___SignatureBuilder___closure_decls__eq(recv) ((mmbuilder___SignatureBuilder___closure_decls__eq_t)CALL((recv), (SFT_mmbuilder[36] + 8)))
+#define CALL_mmbuilder___SignatureBuilder___signature(recv) ((mmbuilder___SignatureBuilder___signature_t)CALL((recv), (SFT_mmbuilder[36] + 9)))
+#define CALL_mmbuilder___SignatureBuilder___signature__eq(recv) ((mmbuilder___SignatureBuilder___signature__eq_t)CALL((recv), (SFT_mmbuilder[36] + 10)))
+#define CALL_mmbuilder___SignatureBuilder___init(recv) ((mmbuilder___SignatureBuilder___init_t)CALL((recv), (SFT_mmbuilder[36] + 11)))
+#define CALL_mmbuilder___PNode___accept_class_builder(recv) ((mmbuilder___PNode___accept_class_builder_t)CALL((recv), (SFT_mmbuilder[37] + 0)))
+#define CALL_mmbuilder___PNode___accept_class_specialization_builder(recv) ((mmbuilder___PNode___accept_class_specialization_builder_t)CALL((recv), (SFT_mmbuilder[37] + 1)))
+#define CALL_mmbuilder___PNode___accept_class_ancestor_builder(recv) ((mmbuilder___PNode___accept_class_ancestor_builder_t)CALL((recv), (SFT_mmbuilder[37] + 2)))
+#define CALL_mmbuilder___PNode___accept_class_verifier(recv) ((mmbuilder___PNode___accept_class_verifier_t)CALL((recv), (SFT_mmbuilder[37] + 3)))
+#define CALL_mmbuilder___PNode___accept_property_builder(recv) ((mmbuilder___PNode___accept_property_builder_t)CALL((recv), (SFT_mmbuilder[37] + 4)))
+#define CALL_mmbuilder___PNode___accept_property_verifier(recv) ((mmbuilder___PNode___accept_property_verifier_t)CALL((recv), (SFT_mmbuilder[37] + 5)))
+#define CALL_mmbuilder___AModule___import_super_modules(recv) ((mmbuilder___AModule___import_super_modules_t)CALL((recv), (SFT_mmbuilder[38] + 0)))
+#define CALL_mmbuilder___PImport___module_name(recv) ((mmbuilder___PImport___module_name_t)CALL((recv), (SFT_mmbuilder[39] + 0)))
+#define CALL_mmbuilder___PImport___visibility_level(recv) ((mmbuilder___PImport___visibility_level_t)CALL((recv), (SFT_mmbuilder[39] + 1)))
+#define CALL_mmbuilder___PVisibility___level(recv) ((mmbuilder___PVisibility___level_t)CALL((recv), (SFT_mmbuilder[40] + 0)))
+#define ATTR_mmbuilder___PClassdef____local_class(recv) ATTR(recv, (SFT_mmbuilder[41] + 0))
+#define CALL_mmbuilder___PClassdef___name(recv) ((mmbuilder___PClassdef___name_t)CALL((recv), (SFT_mmbuilder[42] + 0)))
+#define CALL_mmbuilder___PClassdef___arity(recv) ((mmbuilder___PClassdef___arity_t)CALL((recv), (SFT_mmbuilder[42] + 1)))
+#define CALL_mmbuilder___PClassdef___visibility_level(recv) ((mmbuilder___PClassdef___visibility_level_t)CALL((recv), (SFT_mmbuilder[42] + 2)))
+#define CALL_SUPER_mmbuilder___PClassdef___accept_class_builder(recv) ((mmbuilder___PClassdef___accept_class_builder_t)CALL((recv), (SFT_mmbuilder[42] + 3)))
+#define CALL_SUPER_mmbuilder___PClassdef___accept_abs_syntax_visitor(recv) ((mmbuilder___PClassdef___accept_abs_syntax_visitor_t)CALL((recv), (SFT_mmbuilder[42] + 4)))
+#define CALL_mmbuilder___PClasskind___is_interface(recv) ((mmbuilder___PClasskind___is_interface_t)CALL((recv), (SFT_mmbuilder[43] + 0)))
+#define CALL_mmbuilder___PClasskind___is_universal(recv) ((mmbuilder___PClasskind___is_universal_t)CALL((recv), (SFT_mmbuilder[43] + 1)))
+#define CALL_mmbuilder___PClasskind___is_abstract(recv) ((mmbuilder___PClasskind___is_abstract_t)CALL((recv), (SFT_mmbuilder[43] + 2)))
+#define CALL_SUPER_mmbuilder___AClassdef___accept_class_verifier(recv) ((mmbuilder___AClassdef___accept_class_verifier_t)CALL((recv), (SFT_mmbuilder[44] + 0)))
+#define ID_MMSrcTypeFormalParameter (SFT_mmbuilder[45])
+#define COLOR_MMSrcTypeFormalParameter (SFT_mmbuilder[46])
+#define ATTR_mmbuilder___MMSrcTypeFormalParameter____node(recv) ATTR(recv, (SFT_mmbuilder[47] + 0))
+#define INIT_TABLE_POS_MMSrcTypeFormalParameter (SFT_mmbuilder[48] + 0)
+#define CALL_mmbuilder___MMSrcTypeFormalParameter___node(recv) ((mmbuilder___MMSrcTypeFormalParameter___node_t)CALL((recv), (SFT_mmbuilder[48] + 1)))
+#define CALL_mmbuilder___MMSrcTypeFormalParameter___init(recv) ((mmbuilder___MMSrcTypeFormalParameter___init_t)CALL((recv), (SFT_mmbuilder[48] + 2)))
+#define ATTR_mmbuilder___AFormaldef____formal(recv) ATTR(recv, (SFT_mmbuilder[49] + 0))
+#define CALL_SUPER_mmbuilder___AFormaldef___accept_class_builder(recv) ((mmbuilder___AFormaldef___accept_class_builder_t)CALL((recv), (SFT_mmbuilder[50] + 0)))
+#define CALL_SUPER_mmbuilder___AFormaldef___accept_class_verifier(recv) ((mmbuilder___AFormaldef___accept_class_verifier_t)CALL((recv), (SFT_mmbuilder[50] + 1)))
+#define ATTR_mmbuilder___ASuperclass____ancestor(recv) ATTR(recv, (SFT_mmbuilder[51] + 0))
+#define CALL_mmbuilder___ASuperclass___ancestor(recv) ((mmbuilder___ASuperclass___ancestor_t)CALL((recv), (SFT_mmbuilder[52] + 0)))
+#define CALL_SUPER_mmbuilder___ASuperclass___accept_class_specialization_builder(recv) ((mmbuilder___ASuperclass___accept_class_specialization_builder_t)CALL((recv), (SFT_mmbuilder[52] + 1)))
+#define CALL_SUPER_mmbuilder___ASuperclass___accept_class_ancestor_builder(recv) ((mmbuilder___ASuperclass___accept_class_ancestor_builder_t)CALL((recv), (SFT_mmbuilder[52] + 2)))
+#define CALL_SUPER_mmbuilder___ASuperclass___accept_class_verifier(recv) ((mmbuilder___ASuperclass___accept_class_verifier_t)CALL((recv), (SFT_mmbuilder[52] + 3)))
+#define CALL_mmbuilder___PPropdef___process_and_check(recv) ((mmbuilder___PPropdef___process_and_check_t)CALL((recv), (SFT_mmbuilder[53] + 0)))
+#define CALL_mmbuilder___PPropdef___do_and_check_intro(recv) ((mmbuilder___PPropdef___do_and_check_intro_t)CALL((recv), (SFT_mmbuilder[53] + 1)))
+#define CALL_mmbuilder___PPropdef___inherit_signature(recv) ((mmbuilder___PPropdef___inherit_signature_t)CALL((recv), (SFT_mmbuilder[53] + 2)))
+#define CALL_mmbuilder___PPropdef___do_and_check_redef(recv) ((mmbuilder___PPropdef___do_and_check_redef_t)CALL((recv), (SFT_mmbuilder[53] + 3)))
+#define ATTR_mmbuilder___AAttrPropdef____readmethod(recv) ATTR(recv, (SFT_mmbuilder[54] + 0))
+#define ATTR_mmbuilder___AAttrPropdef____writemethod(recv) ATTR(recv, (SFT_mmbuilder[54] + 1))
+#define ATTR_mmbuilder___AAttrPropdef____prop(recv) ATTR(recv, (SFT_mmbuilder[54] + 2))
+#define CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_builder(recv) ((mmbuilder___AAttrPropdef___accept_property_builder_t)CALL((recv), (SFT_mmbuilder[55] + 0)))
+#define CALL_SUPER_mmbuilder___AAttrPropdef___accept_property_verifier(recv) ((mmbuilder___AAttrPropdef___accept_property_verifier_t)CALL((recv), (SFT_mmbuilder[55] + 1)))
+#define CALL_SUPER_mmbuilder___AAttrPropdef___accept_abs_syntax_visitor(recv) ((mmbuilder___AAttrPropdef___accept_abs_syntax_visitor_t)CALL((recv), (SFT_mmbuilder[55] + 2)))
+#define ATTR_mmbuilder___AMethPropdef____name(recv) ATTR(recv, (SFT_mmbuilder[56] + 0))
+#define ATTR_mmbuilder___AMethPropdef____method(recv) ATTR(recv, (SFT_mmbuilder[56] + 1))
+#define CALL_mmbuilder___AMethPropdef___name(recv) ((mmbuilder___AMethPropdef___name_t)CALL((recv), (SFT_mmbuilder[57] + 0)))
+#define CALL_SUPER_mmbuilder___AMethPropdef___accept_property_builder(recv) ((mmbuilder___AMethPropdef___accept_property_builder_t)CALL((recv), (SFT_mmbuilder[57] + 1)))
+#define CALL_SUPER_mmbuilder___AMethPropdef___accept_property_verifier(recv) ((mmbuilder___AMethPropdef___accept_property_verifier_t)CALL((recv), (SFT_mmbuilder[57] + 2)))
+#define CALL_SUPER_mmbuilder___AMethPropdef___accept_abs_syntax_visitor(recv) ((mmbuilder___AMethPropdef___accept_abs_syntax_visitor_t)CALL((recv), (SFT_mmbuilder[57] + 3)))
+#define ATTR_mmbuilder___ATypePropdef____prop(recv) ATTR(recv, (SFT_mmbuilder[58] + 0))
+#define CALL_SUPER_mmbuilder___ATypePropdef___accept_property_builder(recv) ((mmbuilder___ATypePropdef___accept_property_builder_t)CALL((recv), (SFT_mmbuilder[59] + 0)))
+#define CALL_SUPER_mmbuilder___ATypePropdef___accept_property_verifier(recv) ((mmbuilder___ATypePropdef___accept_property_verifier_t)CALL((recv), (SFT_mmbuilder[59] + 1)))
+#define CALL_SUPER_mmbuilder___ATypePropdef___accept_abs_syntax_visitor(recv) ((mmbuilder___ATypePropdef___accept_abs_syntax_visitor_t)CALL((recv), (SFT_mmbuilder[59] + 2)))
+#define ID_MethidAccumulator (SFT_mmbuilder[60])
+#define COLOR_MethidAccumulator (SFT_mmbuilder[61])
+#define ATTR_mmbuilder___MethidAccumulator____name(recv) ATTR(recv, (SFT_mmbuilder[62] + 0))
+#define INIT_TABLE_POS_MethidAccumulator (SFT_mmbuilder[63] + 0)
+#define CALL_mmbuilder___MethidAccumulator___name(recv) ((mmbuilder___MethidAccumulator___name_t)CALL((recv), (SFT_mmbuilder[63] + 1)))
+#define CALL_mmbuilder___MethidAccumulator___init(recv) ((mmbuilder___MethidAccumulator___init_t)CALL((recv), (SFT_mmbuilder[63] + 2)))
+#define ATTR_mmbuilder___PMethid____name(recv) ATTR(recv, (SFT_mmbuilder[64] + 0))
+#define CALL_mmbuilder___PMethid___name(recv) ((mmbuilder___PMethid___name_t)CALL((recv), (SFT_mmbuilder[65] + 0)))
+#define CALL_SUPER_mmbuilder___PMethid___accept_property_builder(recv) ((mmbuilder___PMethid___accept_property_builder_t)CALL((recv), (SFT_mmbuilder[65] + 1)))
+#define CALL_mmbuilder___PSignature___check_visibility(recv) ((mmbuilder___PSignature___check_visibility_t)CALL((recv), (SFT_mmbuilder[66] + 0)))
+#define CALL_SUPER_mmbuilder___ASignature___accept_property_verifier(recv) ((mmbuilder___ASignature___accept_property_verifier_t)CALL((recv), (SFT_mmbuilder[67] + 0)))
+#define ATTR_mmbuilder___PParam____position(recv) ATTR(recv, (SFT_mmbuilder[68] + 0))
+#define ATTR_mmbuilder___PParam____variable(recv) ATTR(recv, (SFT_mmbuilder[68] + 1))
+#define ATTR_mmbuilder___PParam____stype(recv) ATTR(recv, (SFT_mmbuilder[68] + 2))
+#define CALL_mmbuilder___PParam___stype(recv) ((mmbuilder___PParam___stype_t)CALL((recv), (SFT_mmbuilder[69] + 0)))
+#define CALL_mmbuilder___PParam___stype__eq(recv) ((mmbuilder___PParam___stype__eq_t)CALL((recv), (SFT_mmbuilder[69] + 1)))
+#define CALL_SUPER_mmbuilder___PParam___accept_property_verifier(recv) ((mmbuilder___PParam___accept_property_verifier_t)CALL((recv), (SFT_mmbuilder[69] + 2)))
+#define CALL_mmbuilder___PParam___is_vararg(recv) ((mmbuilder___PParam___is_vararg_t)CALL((recv), (SFT_mmbuilder[69] + 3)))
+#define ATTR_mmbuilder___AClosureDecl____variable(recv) ATTR(recv, (SFT_mmbuilder[70] + 0))
+#define CALL_SUPER_mmbuilder___AClosureDecl___accept_property_verifier(recv) ((mmbuilder___AClosureDecl___accept_property_verifier_t)CALL((recv), (SFT_mmbuilder[71] + 0)))
+#define CALL_mmbuilder___PType___check_visibility(recv) ((mmbuilder___PType___check_visibility_t)CALL((recv), (SFT_mmbuilder[72] + 0)))
 typedef val_t (* mmbuilder___CSHSorter___compare_t)(val_t  self, val_t  param0, val_t  param1);
 val_t mmbuilder___CSHSorter___compare(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_mmbuilder___CSHSorter___compare "mmbuilder::CSHSorter::(sorter::AbstractSorter::compare)"
@@ -212,18 +212,15 @@ val_t NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(val_t p0, val_t p1,
 typedef void (* mmbuilder___MMImplicitInit___accept_property_visitor_t)(val_t  self, val_t  param0);
 void mmbuilder___MMImplicitInit___accept_property_visitor(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___MMImplicitInit___accept_property_visitor "mmbuilder::MMImplicitInit::(mmbuilder::MMLocalProperty::accept_property_visitor)"
-#define ATTR_mmbuilder___MMImplicitInit____super_init(recv) ATTR(recv, COLOR_mmbuilder___MMImplicitInit____super_init)
 typedef val_t (* mmbuilder___MMImplicitInit___super_init_t)(val_t  self);
 val_t mmbuilder___MMImplicitInit___super_init(val_t  self);
 #define LOCATE_mmbuilder___MMImplicitInit___super_init "mmbuilder::MMImplicitInit::super_init"
 typedef val_t (* mmbuilder___MMSrcAncestor___local_class_t)(val_t  self);
 val_t mmbuilder___MMSrcAncestor___local_class(val_t  self);
 #define LOCATE_mmbuilder___MMSrcAncestor___local_class "mmbuilder::MMSrcAncestor::(static_type::MMAncestor::local_class)"
-#define ATTR_mmbuilder___MMSrcAncestor____node(recv) ATTR(recv, COLOR_mmbuilder___MMSrcAncestor____node)
 typedef val_t (* mmbuilder___MMSrcAncestor___node_t)(val_t  self);
 val_t mmbuilder___MMSrcAncestor___node(val_t  self);
 #define LOCATE_mmbuilder___MMSrcAncestor___node "mmbuilder::MMSrcAncestor::node"
-#define ATTR_mmbuilder___MMSrcAncestor____local_class(recv) ATTR(recv, COLOR_mmbuilder___MMSrcAncestor____local_class)
 typedef void (* mmbuilder___MMSrcAncestor___init_t)(val_t  self, val_t  param0, val_t  param1, int* init_table);
 void mmbuilder___MMSrcAncestor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_mmbuilder___MMSrcAncestor___init "mmbuilder::MMSrcAncestor::init"
@@ -231,14 +228,12 @@ val_t NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1);
 typedef void (* mmbuilder___ClassBuilderVisitor___visit_t)(val_t  self, val_t  param0);
 void mmbuilder___ClassBuilderVisitor___visit(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___ClassBuilderVisitor___visit "mmbuilder::ClassBuilderVisitor::(parser_prod::Visitor::visit)"
-#define ATTR_mmbuilder___ClassBuilderVisitor____local_class_arity(recv) ATTR(recv, COLOR_mmbuilder___ClassBuilderVisitor____local_class_arity)
 typedef val_t (* mmbuilder___ClassBuilderVisitor___local_class_arity_t)(val_t  self);
 val_t mmbuilder___ClassBuilderVisitor___local_class_arity(val_t  self);
 #define LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity "mmbuilder::ClassBuilderVisitor::local_class_arity"
 typedef void (* mmbuilder___ClassBuilderVisitor___local_class_arity__eq_t)(val_t  self, val_t  param0);
 void mmbuilder___ClassBuilderVisitor___local_class_arity__eq(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___ClassBuilderVisitor___local_class_arity__eq "mmbuilder::ClassBuilderVisitor::local_class_arity="
-#define ATTR_mmbuilder___ClassBuilderVisitor____formals(recv) ATTR(recv, COLOR_mmbuilder___ClassBuilderVisitor____formals)
 typedef val_t (* mmbuilder___ClassBuilderVisitor___formals_t)(val_t  self);
 val_t mmbuilder___ClassBuilderVisitor___formals(val_t  self);
 #define LOCATE_mmbuilder___ClassBuilderVisitor___formals "mmbuilder::ClassBuilderVisitor::formals"
@@ -280,7 +275,6 @@ val_t NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(val_t
 typedef void (* mmbuilder___PropertyVerifierVisitor___visit_t)(val_t  self, val_t  param0);
 void mmbuilder___PropertyVerifierVisitor___visit(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___PropertyVerifierVisitor___visit "mmbuilder::PropertyVerifierVisitor::(parser_prod::Visitor::visit)"
-#define ATTR_mmbuilder___PropertyVerifierVisitor____signature_builder(recv) ATTR(recv, COLOR_mmbuilder___PropertyVerifierVisitor____signature_builder)
 typedef val_t (* mmbuilder___PropertyVerifierVisitor___signature_builder_t)(val_t  self);
 val_t mmbuilder___PropertyVerifierVisitor___signature_builder(val_t  self);
 #define LOCATE_mmbuilder___PropertyVerifierVisitor___signature_builder "mmbuilder::PropertyVerifierVisitor::signature_builder"
@@ -291,35 +285,30 @@ typedef void (* mmbuilder___PropertyVerifierVisitor___init_t)(val_t  self, val_t
 void mmbuilder___PropertyVerifierVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_mmbuilder___PropertyVerifierVisitor___init "mmbuilder::PropertyVerifierVisitor::init"
 val_t NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(val_t p0, val_t p1);
-#define ATTR_mmbuilder___SignatureBuilder____params(recv) ATTR(recv, COLOR_mmbuilder___SignatureBuilder____params)
 typedef val_t (* mmbuilder___SignatureBuilder___params_t)(val_t  self);
 val_t mmbuilder___SignatureBuilder___params(val_t  self);
 #define LOCATE_mmbuilder___SignatureBuilder___params "mmbuilder::SignatureBuilder::params"
 typedef void (* mmbuilder___SignatureBuilder___params__eq_t)(val_t  self, val_t  param0);
 void mmbuilder___SignatureBuilder___params__eq(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___SignatureBuilder___params__eq "mmbuilder::SignatureBuilder::params="
-#define ATTR_mmbuilder___SignatureBuilder____untyped_params(recv) ATTR(recv, COLOR_mmbuilder___SignatureBuilder____untyped_params)
 typedef val_t (* mmbuilder___SignatureBuilder___untyped_params_t)(val_t  self);
 val_t mmbuilder___SignatureBuilder___untyped_params(val_t  self);
 #define LOCATE_mmbuilder___SignatureBuilder___untyped_params "mmbuilder::SignatureBuilder::untyped_params"
 typedef void (* mmbuilder___SignatureBuilder___untyped_params__eq_t)(val_t  self, val_t  param0);
 void mmbuilder___SignatureBuilder___untyped_params__eq(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___SignatureBuilder___untyped_params__eq "mmbuilder::SignatureBuilder::untyped_params="
-#define ATTR_mmbuilder___SignatureBuilder____vararg_rank(recv) ATTR(recv, COLOR_mmbuilder___SignatureBuilder____vararg_rank)
 typedef val_t (* mmbuilder___SignatureBuilder___vararg_rank_t)(val_t  self);
 val_t mmbuilder___SignatureBuilder___vararg_rank(val_t  self);
 #define LOCATE_mmbuilder___SignatureBuilder___vararg_rank "mmbuilder::SignatureBuilder::vararg_rank"
 typedef void (* mmbuilder___SignatureBuilder___vararg_rank__eq_t)(val_t  self, val_t  param0);
 void mmbuilder___SignatureBuilder___vararg_rank__eq(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___SignatureBuilder___vararg_rank__eq "mmbuilder::SignatureBuilder::vararg_rank="
-#define ATTR_mmbuilder___SignatureBuilder____closure_decls(recv) ATTR(recv, COLOR_mmbuilder___SignatureBuilder____closure_decls)
 typedef val_t (* mmbuilder___SignatureBuilder___closure_decls_t)(val_t  self);
 val_t mmbuilder___SignatureBuilder___closure_decls(val_t  self);
 #define LOCATE_mmbuilder___SignatureBuilder___closure_decls "mmbuilder::SignatureBuilder::closure_decls"
 typedef void (* mmbuilder___SignatureBuilder___closure_decls__eq_t)(val_t  self, val_t  param0);
 void mmbuilder___SignatureBuilder___closure_decls__eq(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___SignatureBuilder___closure_decls__eq "mmbuilder::SignatureBuilder::closure_decls="
-#define ATTR_mmbuilder___SignatureBuilder____signature(recv) ATTR(recv, COLOR_mmbuilder___SignatureBuilder____signature)
 typedef val_t (* mmbuilder___SignatureBuilder___signature_t)(val_t  self);
 val_t mmbuilder___SignatureBuilder___signature(val_t  self);
 #define LOCATE_mmbuilder___SignatureBuilder___signature "mmbuilder::SignatureBuilder::signature"
@@ -421,7 +410,6 @@ val_t mmbuilder___PClassdef___local_class(val_t  self);
 typedef void (* mmbuilder___PClassdef___accept_class_builder_t)(val_t  self, val_t  param0);
 void mmbuilder___PClassdef___accept_class_builder(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___PClassdef___accept_class_builder "mmbuilder::PClassdef::(mmbuilder::PNode::accept_class_builder)"
-#define ATTR_mmbuilder___PClassdef____local_class(recv) ATTR(recv, COLOR_mmbuilder___PClassdef____local_class)
 typedef val_t (* mmbuilder___PClassdef___name_t)(val_t  self);
 val_t mmbuilder___PClassdef___name(val_t  self);
 #define LOCATE_mmbuilder___PClassdef___name "mmbuilder::PClassdef::name"
@@ -486,7 +474,6 @@ val_t NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(val_t p0);
 typedef val_t (* mmbuilder___ATopClassdef___name_t)(val_t  self);
 val_t mmbuilder___ATopClassdef___name(val_t  self);
 #define LOCATE_mmbuilder___ATopClassdef___name "mmbuilder::ATopClassdef::(mmbuilder::PClassdef::name)"
-#define ATTR_mmbuilder___MMSrcTypeFormalParameter____node(recv) ATTR(recv, COLOR_mmbuilder___MMSrcTypeFormalParameter____node)
 typedef val_t (* mmbuilder___MMSrcTypeFormalParameter___node_t)(val_t  self);
 val_t mmbuilder___MMSrcTypeFormalParameter___node(val_t  self);
 #define LOCATE_mmbuilder___MMSrcTypeFormalParameter___node "mmbuilder::MMSrcTypeFormalParameter::node"
@@ -503,7 +490,6 @@ void mmbuilder___AFormaldef___accept_class_builder(val_t  self, val_t  param0);
 typedef void (* mmbuilder___AFormaldef___accept_class_verifier_t)(val_t  self, val_t  param0);
 void mmbuilder___AFormaldef___accept_class_verifier(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___AFormaldef___accept_class_verifier "mmbuilder::AFormaldef::(mmbuilder::PNode::accept_class_verifier)"
-#define ATTR_mmbuilder___AFormaldef____formal(recv) ATTR(recv, COLOR_mmbuilder___AFormaldef____formal)
 val_t NEW_ASuperclass_parser_nodes___PNode___init();
 val_t NEW_ASuperclass_parser_prod___ASuperclass___empty_init();
 val_t NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(val_t p0, val_t p1);
@@ -516,7 +502,6 @@ void mmbuilder___ASuperclass___accept_class_ancestor_builder(val_t  self, val_t
 typedef void (* mmbuilder___ASuperclass___accept_class_verifier_t)(val_t  self, val_t  param0);
 void mmbuilder___ASuperclass___accept_class_verifier(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___ASuperclass___accept_class_verifier "mmbuilder::ASuperclass::(mmbuilder::PNode::accept_class_verifier)"
-#define ATTR_mmbuilder___ASuperclass____ancestor(recv) ATTR(recv, COLOR_mmbuilder___ASuperclass____ancestor)
 typedef val_t (* mmbuilder___ASuperclass___ancestor_t)(val_t  self);
 val_t mmbuilder___ASuperclass___ancestor(val_t  self);
 #define LOCATE_mmbuilder___ASuperclass___ancestor "mmbuilder::ASuperclass::ancestor"
@@ -554,9 +539,6 @@ void mmbuilder___AAttrPropdef___accept_property_builder(val_t  self, val_t  para
 typedef void (* mmbuilder___AAttrPropdef___accept_property_verifier_t)(val_t  self, val_t  param0);
 void mmbuilder___AAttrPropdef___accept_property_verifier(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___AAttrPropdef___accept_property_verifier "mmbuilder::AAttrPropdef::(mmbuilder::PNode::accept_property_verifier)"
-#define ATTR_mmbuilder___AAttrPropdef____readmethod(recv) ATTR(recv, COLOR_mmbuilder___AAttrPropdef____readmethod)
-#define ATTR_mmbuilder___AAttrPropdef____writemethod(recv) ATTR(recv, COLOR_mmbuilder___AAttrPropdef____writemethod)
-#define ATTR_mmbuilder___AAttrPropdef____prop(recv) ATTR(recv, COLOR_mmbuilder___AAttrPropdef____prop)
 val_t NEW_AMethPropdef_parser_nodes___PNode___init();
 val_t NEW_AMethPropdef_parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -572,11 +554,9 @@ void mmbuilder___AMethPropdef___accept_property_builder(val_t  self, val_t  para
 typedef void (* mmbuilder___AMethPropdef___accept_property_verifier_t)(val_t  self, val_t  param0);
 void mmbuilder___AMethPropdef___accept_property_verifier(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___AMethPropdef___accept_property_verifier "mmbuilder::AMethPropdef::(mmbuilder::PNode::accept_property_verifier)"
-#define ATTR_mmbuilder___AMethPropdef____name(recv) ATTR(recv, COLOR_mmbuilder___AMethPropdef____name)
 typedef val_t (* mmbuilder___AMethPropdef___name_t)(val_t  self);
 val_t mmbuilder___AMethPropdef___name(val_t  self);
 #define LOCATE_mmbuilder___AMethPropdef___name "mmbuilder::AMethPropdef::name"
-#define ATTR_mmbuilder___AMethPropdef____method(recv) ATTR(recv, COLOR_mmbuilder___AMethPropdef____method)
 val_t NEW_AMainMethPropdef_parser_nodes___PNode___init();
 val_t NEW_AMainMethPropdef_parser_prod___AMethPropdef___empty_init();
 val_t NEW_AMainMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -602,11 +582,9 @@ void mmbuilder___ATypePropdef___accept_property_builder(val_t  self, val_t  para
 typedef void (* mmbuilder___ATypePropdef___accept_property_verifier_t)(val_t  self, val_t  param0);
 void mmbuilder___ATypePropdef___accept_property_verifier(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___ATypePropdef___accept_property_verifier "mmbuilder::ATypePropdef::(mmbuilder::PNode::accept_property_verifier)"
-#define ATTR_mmbuilder___ATypePropdef____prop(recv) ATTR(recv, COLOR_mmbuilder___ATypePropdef____prop)
 typedef void (* mmbuilder___MethidAccumulator___visit_t)(val_t  self, val_t  param0);
 void mmbuilder___MethidAccumulator___visit(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___MethidAccumulator___visit "mmbuilder::MethidAccumulator::(parser_prod::Visitor::visit)"
-#define ATTR_mmbuilder___MethidAccumulator____name(recv) ATTR(recv, COLOR_mmbuilder___MethidAccumulator____name)
 typedef val_t (* mmbuilder___MethidAccumulator___name_t)(val_t  self);
 val_t mmbuilder___MethidAccumulator___name(val_t  self);
 #define LOCATE_mmbuilder___MethidAccumulator___name "mmbuilder::MethidAccumulator::name"
@@ -618,7 +596,6 @@ val_t NEW_PMethid_parser_nodes___PNode___init();
 typedef void (* mmbuilder___PMethid___accept_property_builder_t)(val_t  self, val_t  param0);
 void mmbuilder___PMethid___accept_property_builder(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___PMethid___accept_property_builder "mmbuilder::PMethid::(mmbuilder::PNode::accept_property_builder)"
-#define ATTR_mmbuilder___PMethid____name(recv) ATTR(recv, COLOR_mmbuilder___PMethid____name)
 typedef val_t (* mmbuilder___PMethid___name_t)(val_t  self);
 val_t mmbuilder___PMethid___name(val_t  self);
 #define LOCATE_mmbuilder___PMethid___name "mmbuilder::PMethid::name"
@@ -645,9 +622,6 @@ val_t mmbuilder___PParam___variable(val_t  self);
 typedef void (* mmbuilder___PParam___accept_property_verifier_t)(val_t  self, val_t  param0);
 void mmbuilder___PParam___accept_property_verifier(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___PParam___accept_property_verifier "mmbuilder::PParam::(mmbuilder::PNode::accept_property_verifier)"
-#define ATTR_mmbuilder___PParam____position(recv) ATTR(recv, COLOR_mmbuilder___PParam____position)
-#define ATTR_mmbuilder___PParam____variable(recv) ATTR(recv, COLOR_mmbuilder___PParam____variable)
-#define ATTR_mmbuilder___PParam____stype(recv) ATTR(recv, COLOR_mmbuilder___PParam____stype)
 typedef val_t (* mmbuilder___PParam___stype_t)(val_t  self);
 val_t mmbuilder___PParam___stype(val_t  self);
 #define LOCATE_mmbuilder___PParam___stype "mmbuilder::PParam::stype"
@@ -672,7 +646,6 @@ val_t mmbuilder___AClosureDecl___variable(val_t  self);
 typedef void (* mmbuilder___AClosureDecl___accept_property_verifier_t)(val_t  self, val_t  param0);
 void mmbuilder___AClosureDecl___accept_property_verifier(val_t  self, val_t  param0);
 #define LOCATE_mmbuilder___AClosureDecl___accept_property_verifier "mmbuilder::AClosureDecl::(mmbuilder::PNode::accept_property_verifier)"
-#define ATTR_mmbuilder___AClosureDecl____variable(recv) ATTR(recv, COLOR_mmbuilder___AClosureDecl____variable)
 val_t NEW_PType_parser_nodes___PNode___init();
 typedef void (* mmbuilder___PType___check_visibility_t)(val_t  self, val_t  param0, val_t  param1);
 void mmbuilder___PType___check_visibility(val_t  self, val_t  param0, val_t  param1);
index 795b0ec..d457c64 100644 (file)
@@ -27,17 +27,18 @@ void mmloader___ToolContext___error(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((file___Object___stderr_t)CALL(variable[3],COLOR_file___Object___stderr))(variable[3]) /*Object::stderr*/;
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = CALL_file___Object___stderr(variable[3])(variable[3]) /*Object::stderr*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[1] /*s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-  ((file___OFStream___write_t)CALL(variable[3],COLOR_stream___OStream___write))(variable[3], variable[4]) /*OFStream::write*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_mmloader___ToolContext____error_count(variable[4]) /*ToolContext::_error_count*/;
@@ -57,22 +58,23 @@ void mmloader___ToolContext___warning(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_mmloader___ToolContext____opt_warn(variable[3]) /*ToolContext::_opt_warn*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
     goto return_label1;
   }
   variable[3] = variable[0];
-  variable[3] = ((file___Object___stderr_t)CALL(variable[3],COLOR_file___Object___stderr))(variable[3]) /*Object::stderr*/;
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = CALL_file___Object___stderr(variable[3])(variable[3]) /*Object::stderr*/;
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[1] /*s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
-  ((file___OFStream___write_t)CALL(variable[3],COLOR_stream___OStream___write))(variable[3], variable[4]) /*OFStream::write*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_stream___OStream___write(variable[3])(variable[3], variable[4]) /*OFStream::write*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_mmloader___ToolContext____warning_count(variable[4]) /*ToolContext::_warning_count*/;
@@ -162,29 +164,29 @@ void mmloader___ToolContext___init(val_t  self, int* init_table) {
   trace.file = LOCATE_mmloader;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ToolContext].i]) return;
-  ((abstractmetamodel___MMContext___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMContext___init))(variable[0], init_table /*YYY*/) /*MMContext::init*/;
+  CALL_abstractmetamodel___MMContext___init(variable[0])(variable[0], init_table /*YYY*/) /*MMContext::init*/;
   variable[2] = variable[0];
-  variable[2] = ((mmloader___ToolContext___option_context_t)CALL(variable[2],COLOR_mmloader___ToolContext___option_context))(variable[2]) /*ToolContext::option_context*/;
+  variable[2] = CALL_mmloader___ToolContext___option_context(variable[2])(variable[2]) /*ToolContext::option_context*/;
   variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Option]*/
   variable[4] = variable[0];
-  variable[4] = ((mmloader___ToolContext___opt_warn_t)CALL(variable[4],COLOR_mmloader___ToolContext___opt_warn))(variable[4]) /*ToolContext::opt_warn*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+  variable[4] = CALL_mmloader___ToolContext___opt_warn(variable[4])(variable[4]) /*ToolContext::opt_warn*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((mmloader___ToolContext___opt_path_t)CALL(variable[5],COLOR_mmloader___ToolContext___opt_path))(variable[5]) /*ToolContext::opt_path*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[5]) /*AbstractArray::add*/;
+  variable[5] = CALL_mmloader___ToolContext___opt_path(variable[5])(variable[5]) /*ToolContext::opt_path*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((mmloader___ToolContext___opt_log_t)CALL(variable[6],COLOR_mmloader___ToolContext___opt_log))(variable[6]) /*ToolContext::opt_log*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[6]) /*AbstractArray::add*/;
+  variable[6] = CALL_mmloader___ToolContext___opt_log(variable[6])(variable[6]) /*ToolContext::opt_log*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
-  variable[7] = ((mmloader___ToolContext___opt_only_parse_t)CALL(variable[7],COLOR_mmloader___ToolContext___opt_only_parse))(variable[7]) /*ToolContext::opt_only_parse*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[7]) /*AbstractArray::add*/;
+  variable[7] = CALL_mmloader___ToolContext___opt_only_parse(variable[7])(variable[7]) /*ToolContext::opt_only_parse*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((mmloader___ToolContext___opt_only_metamodel_t)CALL(variable[8],COLOR_mmloader___ToolContext___opt_only_metamodel))(variable[8]) /*ToolContext::opt_only_metamodel*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[8]) /*AbstractArray::add*/;
+  variable[8] = CALL_mmloader___ToolContext___opt_only_metamodel(variable[8])(variable[8]) /*ToolContext::opt_only_metamodel*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
-  variable[9] = ((mmloader___ToolContext___opt_help_t)CALL(variable[9],COLOR_mmloader___ToolContext___opt_help))(variable[9]) /*ToolContext::opt_help*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[9]) /*AbstractArray::add*/;
-  ((opts___OptionContext___add_option_t)CALL(variable[2],COLOR_opts___OptionContext___add_option))(variable[2], variable[3]) /*OptionContext::add_option*/;
+  variable[9] = CALL_mmloader___ToolContext___opt_help(variable[9])(variable[9]) /*ToolContext::opt_help*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+  CALL_opts___OptionContext___add_option(variable[2])(variable[2], variable[3]) /*OptionContext::add_option*/;
   return_label2: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ToolContext].i] = 1;
   tracehead = trace.prev;
@@ -200,82 +202,84 @@ void mmloader___ToolContext___process_options(val_t  self) {
   trace.file = LOCATE_mmloader;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((mmloader___ToolContext___option_context_t)CALL(variable[2],COLOR_mmloader___ToolContext___option_context))(variable[2]) /*ToolContext::option_context*/;
+  variable[2] = CALL_mmloader___ToolContext___option_context(variable[2])(variable[2]) /*ToolContext::option_context*/;
   variable[3] = variable[0];
-  variable[3] = ((string___Object___args_t)CALL(variable[3],COLOR_string___Object___args))(variable[3]) /*Object::args*/;
-  ((opts___OptionContext___parse_t)CALL(variable[2],COLOR_opts___OptionContext___parse))(variable[2], variable[3]) /*OptionContext::parse*/;
+  variable[3] = CALL_string___Object___args(variable[3])(variable[3]) /*Object::args*/;
+  CALL_opts___OptionContext___parse(variable[2])(variable[2], variable[3]) /*OptionContext::parse*/;
   variable[2] = variable[0];
   variable[3] = NEW_Array_array___Array___init(); /*new Array[String]*/
   ATTR_mmloader___ToolContext____paths(variable[2]) /*ToolContext::_paths*/ = variable[3];
   variable[2] = variable[0];
-  variable[2] = ((mmloader___ToolContext___paths_t)CALL(variable[2],COLOR_mmloader___ToolContext___paths))(variable[2]) /*ToolContext::paths*/;
+  variable[2] = CALL_mmloader___ToolContext___paths(variable[2])(variable[2]) /*ToolContext::paths*/;
   variable[3] = variable[0];
-  variable[3] = ((mmloader___ToolContext___opt_path_t)CALL(variable[3],COLOR_mmloader___ToolContext___opt_path))(variable[3]) /*ToolContext::opt_path*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((abstract_collection___IndexedCollection___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[3]) /*IndexedCollection::append*/;
+  variable[3] = CALL_mmloader___ToolContext___opt_path(variable[3])(variable[3]) /*ToolContext::opt_path*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_abstract_collection___IndexedCollection___append(variable[2])(variable[2], variable[3]) /*IndexedCollection::append*/;
   if (once_bool_4) variable[3] = once_value_4;
   else {
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_PATH"), TAG_Int(8)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
-    variable[3] = ((environ___Symbol___environ_t)CALL(variable[3],COLOR_environ___Symbol___environ))(variable[3]) /*Symbol::environ*/;
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
+    variable[3] = CALL_environ___Symbol___environ(variable[3])(variable[3]) /*Symbol::environ*/;
     once_value_4 = variable[3];
     once_bool_4 = true;
   }
   variable[2] = variable[3];
-  variable[3] = ((array___AbstractArray___is_empty_t)CALL( variable[2] /*path_env*/,COLOR_abstract_collection___Collection___is_empty))( variable[2] /*path_env*/) /*AbstractArray::is_empty*/;
+  variable[3] = CALL_abstract_collection___Collection___is_empty( variable[2] /*path_env*/)( variable[2] /*path_env*/) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((mmloader___ToolContext___paths_t)CALL(variable[3],COLOR_mmloader___ToolContext___paths))(variable[3]) /*ToolContext::paths*/;
-    variable[4] = ((string_search___String___split_with_t)CALL( variable[2] /*path_env*/,COLOR_string_search___String___split_with))( variable[2] /*path_env*/,  TAG_Char(':')) /*String::split_with*/;
-    ((abstract_collection___IndexedCollection___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[4]) /*IndexedCollection::append*/;
+    variable[3] = CALL_mmloader___ToolContext___paths(variable[3])(variable[3]) /*ToolContext::paths*/;
+    variable[4] = CALL_string_search___String___split_with( variable[2] /*path_env*/)( variable[2] /*path_env*/,  TAG_Char(':')) /*String::split_with*/;
+    CALL_abstract_collection___IndexedCollection___append(variable[3])(variable[3], variable[4]) /*IndexedCollection::append*/;
   }
   if (once_bool_5) variable[3] = once_value_5;
   else {
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_DIR"), TAG_Int(7)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
-    variable[3] = ((environ___Symbol___environ_t)CALL(variable[3],COLOR_environ___Symbol___environ))(variable[3]) /*Symbol::environ*/;
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
+    variable[3] = CALL_environ___Symbol___environ(variable[3])(variable[3]) /*Symbol::environ*/;
     once_value_5 = variable[3];
     once_bool_5 = true;
   }
   variable[2] = variable[3] /*path_env=*/;
-  variable[3] = ((array___AbstractArray___is_empty_t)CALL( variable[2] /*path_env*/,COLOR_abstract_collection___Collection___is_empty))( variable[2] /*path_env*/) /*AbstractArray::is_empty*/;
+  variable[3] = CALL_abstract_collection___Collection___is_empty( variable[2] /*path_env*/)( variable[2] /*path_env*/) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
-    variable[4] = NEW_String_string___String___init(); /*new String*/
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
     variable[7] =  variable[2] /*path_env*/;
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("/lib"), TAG_Int(4)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
     variable[3] = variable[4];
-    variable[4] = ((file___String___file_exists_t)CALL( variable[3] /*libname*/,COLOR_file___String___file_exists))( variable[3] /*libname*/) /*String::file_exists*/;
+    variable[4] = CALL_file___String___file_exists( variable[3] /*libname*/)( variable[3] /*libname*/) /*String::file_exists*/;
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((mmloader___ToolContext___paths_t)CALL(variable[4],COLOR_mmloader___ToolContext___paths))(variable[4]) /*ToolContext::paths*/;
-      ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[3] /*libname*/) /*AbstractArray::add*/;
+      variable[4] = CALL_mmloader___ToolContext___paths(variable[4])(variable[4]) /*ToolContext::paths*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[3] /*libname*/) /*AbstractArray::add*/;
     }
   }
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
   variable[7] = (G_sys);
-  variable[7] = ((string___Sys___program_name_t)CALL(variable[7],COLOR_string___Sys___program_name))(variable[7]) /*Sys::program_name*/;
-  variable[7] = ((file___String___dirname_t)CALL(variable[7],COLOR_file___String___dirname))(variable[7]) /*String::dirname*/;
+  variable[7] = CALL_string___Sys___program_name(variable[7])(variable[7]) /*Sys::program_name*/;
+  variable[7] = CALL_file___String___dirname(variable[7])(variable[7]) /*String::dirname*/;
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("/../lib"), TAG_Int(7)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
   variable[3] = variable[4];
-  variable[4] = ((file___String___file_exists_t)CALL( variable[3] /*libname*/,COLOR_file___String___file_exists))( variable[3] /*libname*/) /*String::file_exists*/;
+  variable[4] = CALL_file___String___file_exists( variable[3] /*libname*/)( variable[3] /*libname*/) /*String::file_exists*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((mmloader___ToolContext___paths_t)CALL(variable[4],COLOR_mmloader___ToolContext___paths))(variable[4]) /*ToolContext::paths*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[3] /*libname*/) /*AbstractArray::add*/;
+    variable[4] = CALL_mmloader___ToolContext___paths(variable[4])(variable[4]) /*ToolContext::paths*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[3] /*libname*/) /*AbstractArray::add*/;
   }
   return_label3: while(false);
   tracehead = trace.prev;
@@ -290,85 +294,86 @@ val_t mmloader___ToolContext___try_to_load(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((abstractmetamodel___MMDirectory___modules_t)CALL( variable[2] /*dir*/,COLOR_abstractmetamodel___MMDirectory___modules))( variable[2] /*dir*/) /*MMDirectory::modules*/;
-  variable[4] = ((abstract_collection___Map___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Map::iterator*/;
+  variable[4] = CALL_abstractmetamodel___MMDirectory___modules( variable[2] /*dir*/)( variable[2] /*dir*/) /*MMDirectory::modules*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
-    variable[7] = ((abstractmetamodel___MMModule___name_t)CALL( variable[6] /*m*/,COLOR_abstractmetamodel___MMModule___name))( variable[6] /*m*/) /*MMModule::name*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*module_name*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*module_name*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*module_name*/) /*Object::==*/)))));
+    variable[7] = CALL_abstractmetamodel___MMModule___name( variable[6] /*m*/)( variable[6] /*m*/) /*MMModule::name*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*module_name*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*module_name*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*module_name*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[3] =  variable[6] /*m*/;
       goto return_label6;
     }
     continue_7: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_7: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_mmloader___ToolContext____loaders(variable[4]) /*ToolContext::_loaders*/;
-  variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
-    variable[8] = ((mmloader___ModuleLoader___try_to_load_dir_t)CALL( variable[6] /*l*/,COLOR_mmloader___ModuleLoader___try_to_load_dir))( variable[6] /*l*/,  variable[1] /*module_name*/,  variable[2] /*dir*/) /*ModuleLoader::try_to_load_dir*/;
+    variable[8] = CALL_mmloader___ModuleLoader___try_to_load_dir( variable[6] /*l*/)( variable[6] /*l*/,  variable[1] /*module_name*/,  variable[2] /*dir*/) /*ModuleLoader::try_to_load_dir*/;
     variable[7] = variable[8];
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*dir2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*dir2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*dir2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*dir2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*dir2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*dir2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*dir2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*dir2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*dir2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*dir2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*dir2*/)( variable[7] /*dir2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[9] = variable[0];
-      variable[9] = ((mmloader___ToolContext___try_to_load_t)CALL(variable[9],COLOR_mmloader___ToolContext___try_to_load))(variable[9],  variable[1] /*module_name*/,  variable[7] /*dir2*/) /*ToolContext::try_to_load*/;
+      variable[9] = CALL_mmloader___ToolContext___try_to_load(variable[9])(variable[9],  variable[1] /*module_name*/,  variable[7] /*dir2*/) /*ToolContext::try_to_load*/;
       variable[8] = variable[9];
-      variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*m*/ ==  NIT_NULL /*null*/) || (( variable[8] /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*m*/,COLOR_kernel___Object_____eqeq))( variable[8] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*m*/ ==  NIT_NULL /*null*/) || (( variable[8] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*m*/)( variable[8] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[9])) { /*if*/
-        ((abstractmetamodel___MMDirectory___owner__eq_t)CALL( variable[7] /*dir2*/,COLOR_abstractmetamodel___MMDirectory___owner__eq))( variable[7] /*dir2*/,  variable[8] /*m*/) /*MMDirectory::owner=*/;
-        ((abstractmetamodel___MMDirectory___add_module_t)CALL( variable[2] /*dir*/,COLOR_abstractmetamodel___MMDirectory___add_module))( variable[2] /*dir*/,  variable[8] /*m*/) /*MMDirectory::add_module*/;
+        CALL_abstractmetamodel___MMDirectory___owner__eq( variable[7] /*dir2*/)( variable[7] /*dir2*/,  variable[8] /*m*/) /*MMDirectory::owner=*/;
+        CALL_abstractmetamodel___MMDirectory___add_module( variable[2] /*dir*/)( variable[2] /*dir*/,  variable[8] /*m*/) /*MMDirectory::add_module*/;
         variable[3] =  variable[8] /*m*/;
         goto return_label6;
       }
     }
-    variable[8] = ((mmloader___ModuleLoader___can_handle_t)CALL( variable[6] /*l*/,COLOR_mmloader___ModuleLoader___can_handle))( variable[6] /*l*/,  variable[1] /*module_name*/,  variable[2] /*dir*/) /*ModuleLoader::can_handle*/;
+    variable[8] = CALL_mmloader___ModuleLoader___can_handle( variable[6] /*l*/)( variable[6] /*l*/,  variable[1] /*module_name*/,  variable[2] /*dir*/) /*ModuleLoader::can_handle*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[9] = ((abstractmetamodel___MMDirectory___full_name_for_t)CALL( variable[2] /*dir*/,COLOR_abstractmetamodel___MMDirectory___full_name_for))( variable[2] /*dir*/,  variable[1] /*module_name*/) /*MMDirectory::full_name_for*/;
+      variable[9] = CALL_abstractmetamodel___MMDirectory___full_name_for( variable[2] /*dir*/)( variable[2] /*dir*/,  variable[1] /*module_name*/) /*MMDirectory::full_name_for*/;
       variable[8] = variable[9];
       variable[9] = variable[0];
       variable[9] = ATTR_mmloader___ToolContext____processing_modules(variable[9]) /*ToolContext::_processing_modules*/;
-      variable[9] = ((hash___HashSet___has_t)CALL(variable[9],COLOR_abstract_collection___Collection___has))(variable[9],  variable[8] /*full_name*/) /*HashSet::has*/;
+      variable[9] = CALL_abstract_collection___Collection___has(variable[9])(variable[9],  variable[8] /*full_name*/) /*HashSet::has*/;
       if (UNTAG_Bool(variable[9])) { /*if*/
         variable[9] = variable[0];
-        variable[10] = NEW_String_string___String___init(); /*new String*/
+        variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: Dependency loop for module "), TAG_Int(34)); /*new String*/
         variable[12] = variable[11];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
         variable[13] =  variable[8] /*full_name*/;
-        variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+        variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
-        ((mmloader___ToolContext___error_t)CALL(variable[9],COLOR_mmloader___ToolContext___error))(variable[9], variable[10]) /*ToolContext::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
+        variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+        CALL_mmloader___ToolContext___error(variable[9])(variable[9], variable[10]) /*ToolContext::error*/;
         variable[9] = variable[0];
         exit(UNTAG_Int( TAG_Int(1)));
         fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___try_to_load, LOCATE_mmloader, 135); nit_exit(1);
       }
       variable[9] = variable[0];
       variable[9] = ATTR_mmloader___ToolContext____processing_modules(variable[9]) /*ToolContext::_processing_modules*/;
-      ((hash___HashSet___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*full_name*/) /*HashSet::add*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*full_name*/) /*HashSet::add*/;
       variable[10] = variable[0];
-      variable[10] = ((mmloader___ModuleLoader___load_and_process_module_t)CALL( variable[6] /*l*/,COLOR_mmloader___ModuleLoader___load_and_process_module))( variable[6] /*l*/, variable[10],  variable[1] /*module_name*/,  variable[2] /*dir*/) /*ModuleLoader::load_and_process_module*/;
+      variable[10] = CALL_mmloader___ModuleLoader___load_and_process_module( variable[6] /*l*/)( variable[6] /*l*/, variable[10],  variable[1] /*module_name*/,  variable[2] /*dir*/) /*ModuleLoader::load_and_process_module*/;
       variable[9] = variable[10];
       variable[10] = variable[0];
       variable[10] = ATTR_mmloader___ToolContext____processing_modules(variable[10]) /*ToolContext::_processing_modules*/;
-      ((hash___HashSet___remove_t)CALL(variable[10],COLOR_abstract_collection___RemovableCollection___remove))(variable[10],  variable[8] /*full_name*/) /*HashSet::remove*/;
-      ((abstractmetamodel___MMDirectory___add_module_t)CALL( variable[2] /*dir*/,COLOR_abstractmetamodel___MMDirectory___add_module))( variable[2] /*dir*/,  variable[9] /*m*/) /*MMDirectory::add_module*/;
+      CALL_abstract_collection___RemovableCollection___remove(variable[10])(variable[10],  variable[8] /*full_name*/) /*HashSet::remove*/;
+      CALL_abstractmetamodel___MMDirectory___add_module( variable[2] /*dir*/)( variable[2] /*dir*/,  variable[9] /*m*/) /*MMDirectory::add_module*/;
       variable[3] =  variable[9] /*m*/;
       goto return_label6;
     }
     continue_8: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_8: while(0);
   variable[3] =  NIT_NULL /*null*/;
@@ -385,67 +390,69 @@ val_t mmloader___ToolContext___get_module_from_filename(val_t  self, val_t  para
   trace.file = LOCATE_mmloader;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((file___String___dirname_t)CALL( variable[1] /*filename*/,COLOR_file___String___dirname))( variable[1] /*filename*/) /*String::dirname*/;
+  variable[4] = CALL_file___String___dirname( variable[1] /*filename*/)( variable[1] /*filename*/) /*String::dirname*/;
   variable[3] = variable[4];
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(".nit"), TAG_Int(4)); /*new String*/
-  variable[5] = ((file___String___basename_t)CALL( variable[1] /*filename*/,COLOR_file___String___basename))( variable[1] /*filename*/, variable[5]) /*String::basename*/;
-  variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
+  variable[5] = CALL_file___String___basename( variable[1] /*filename*/)( variable[1] /*filename*/, variable[5]) /*String::basename*/;
+  variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((mmloader___ToolContext___directory_for_t)CALL(variable[6],COLOR_mmloader___ToolContext___directory_for))(variable[6],  variable[3] /*path*/) /*ToolContext::directory_for*/;
+  variable[6] = CALL_mmloader___ToolContext___directory_for(variable[6])(variable[6],  variable[3] /*path*/) /*ToolContext::directory_for*/;
   variable[5] = variable[6];
-  variable[6] = ((symbol___Symbol___to_s_t)CALL( variable[4] /*module_name*/,COLOR_string___Object___to_s))( variable[4] /*module_name*/) /*Symbol::to_s*/;
-  variable[6] = TAG_Bool((variable[6] ==  variable[1] /*filename*/) || ((variable[6] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  variable[1] /*filename*/) /*String::==*/)));
+  variable[6] = CALL_string___Object___to_s( variable[4] /*module_name*/)( variable[4] /*module_name*/) /*Symbol::to_s*/;
+  variable[6] = TAG_Bool((variable[6] ==  variable[1] /*filename*/) || ((variable[6] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  variable[1] /*filename*/) /*String::==*/)));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[7] = variable[0];
-    variable[7] = ((mmloader___ToolContext___try_to_load_t)CALL(variable[7],COLOR_mmloader___ToolContext___try_to_load))(variable[7],  variable[4] /*module_name*/,  variable[5] /*dir*/) /*ToolContext::try_to_load*/;
+    variable[7] = CALL_mmloader___ToolContext___try_to_load(variable[7])(variable[7],  variable[4] /*module_name*/,  variable[5] /*dir*/) /*ToolContext::try_to_load*/;
     variable[6] = variable[7];
-    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ ==  NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*m*/,COLOR_kernel___Object_____eqeq))( variable[6] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ ==  NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*m*/)( variable[6] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[2] =  variable[6] /*m*/;
       goto return_label9;
     }
     variable[7] = variable[0];
-    variable[7] = ((mmloader___ToolContext___get_module_t)CALL(variable[7],COLOR_mmloader___ToolContext___get_module))(variable[7],  variable[4] /*module_name*/,  NIT_NULL /*null*/) /*ToolContext::get_module*/;
+    variable[7] = CALL_mmloader___ToolContext___get_module(variable[7])(variable[7],  variable[4] /*module_name*/,  NIT_NULL /*null*/) /*ToolContext::get_module*/;
     variable[2] = variable[7];
     goto return_label9;
   }
-  variable[6] = ((file___String___file_exists_t)CALL( variable[1] /*filename*/,COLOR_file___String___file_exists))( variable[1] /*filename*/) /*String::file_exists*/;
+  variable[6] = CALL_file___String___file_exists( variable[1] /*filename*/)( variable[1] /*filename*/) /*String::file_exists*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
     variable[6] = variable[0];
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: File "), TAG_Int(12)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[1] /*filename*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" not found."), TAG_Int(11)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-    ((mmloader___ToolContext___error_t)CALL(variable[6],COLOR_mmloader___ToolContext___error))(variable[6], variable[7]) /*ToolContext::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_mmloader___ToolContext___error(variable[6])(variable[6], variable[7]) /*ToolContext::error*/;
     variable[6] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
     fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___get_module_from_filename, LOCATE_mmloader, 175); nit_exit(1);
   }
   variable[7] = variable[0];
-  variable[7] = ((mmloader___ToolContext___try_to_load_t)CALL(variable[7],COLOR_mmloader___ToolContext___try_to_load))(variable[7],  variable[4] /*module_name*/,  variable[5] /*dir*/) /*ToolContext::try_to_load*/;
+  variable[7] = CALL_mmloader___ToolContext___try_to_load(variable[7])(variable[7],  variable[4] /*module_name*/,  variable[5] /*dir*/) /*ToolContext::try_to_load*/;
   variable[6] = variable[7];
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ ==  NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*m*/,COLOR_kernel___Object_____eqeq))( variable[6] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ ==  NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*m*/)( variable[6] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[2] =  variable[6] /*m*/;
     goto return_label9;
   }
   variable[7] = variable[0];
-  variable[8] = NEW_String_string___String___init(); /*new String*/
+  variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[1] /*filename*/;
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is not a NIT source module."), TAG_Int(28)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-  ((mmloader___ToolContext___error_t)CALL(variable[7],COLOR_mmloader___ToolContext___error))(variable[7], variable[8]) /*ToolContext::error*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+  variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+  CALL_mmloader___ToolContext___error(variable[7])(variable[7], variable[8]) /*ToolContext::error*/;
   variable[7] = variable[0];
   exit(UNTAG_Int( TAG_Int(1)));
   fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___get_module_from_filename, LOCATE_mmloader, 184); nit_exit(1);
@@ -463,61 +470,62 @@ val_t mmloader___ToolContext___get_module(val_t  self, val_t  param0, val_t  par
   variable[1] =  param0;
   variable[2] =  param1;
   /*variable[4] is variable m*/
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*from*/ ==  NIT_NULL /*null*/) || (( variable[2] /*from*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*from*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*from*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*from*/,COLOR_kernel___Object_____eqeq))( variable[2] /*from*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*from*/ ==  NIT_NULL /*null*/) || (( variable[2] /*from*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*from*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*from*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*from*/)( variable[2] /*from*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[6] = ((abstractmetamodel___MMModule___directory_t)CALL( variable[2] /*from*/,COLOR_abstractmetamodel___MMModule___directory))( variable[2] /*from*/) /*MMModule::directory*/;
+    variable[6] = CALL_abstractmetamodel___MMModule___directory( variable[2] /*from*/)( variable[2] /*from*/) /*MMModule::directory*/;
     variable[5] = variable[6];
     while (true) { /*while*/
-      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*dir*/ ==  NIT_NULL /*null*/) || (( variable[5] /*dir*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*dir*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*dir*/,COLOR_kernel___Object_____eqeq))( variable[5] /*dir*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*dir*/ ==  NIT_NULL /*null*/) || (( variable[5] /*dir*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*dir*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*dir*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*dir*/)( variable[5] /*dir*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (!UNTAG_Bool(variable[6])) break; /* while*/
       variable[7] = variable[0];
-      variable[7] = ((mmloader___ToolContext___try_to_load_t)CALL(variable[7],COLOR_mmloader___ToolContext___try_to_load))(variable[7],  variable[1] /*module_name*/,  variable[5] /*dir*/) /*ToolContext::try_to_load*/;
+      variable[7] = CALL_mmloader___ToolContext___try_to_load(variable[7])(variable[7],  variable[1] /*module_name*/,  variable[5] /*dir*/) /*ToolContext::try_to_load*/;
       variable[6] = variable[7];
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ ==  NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*m*/,COLOR_kernel___Object_____eqeq))( variable[6] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*m*/ ==  NIT_NULL /*null*/) || (( variable[6] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*m*/)( variable[6] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[3] =  variable[6] /*m*/;
         goto return_label10;
       }
-      variable[7] = ((abstractmetamodel___MMDirectory___parent_t)CALL( variable[5] /*dir*/,COLOR_abstractmetamodel___MMDirectory___parent))( variable[5] /*dir*/) /*MMDirectory::parent*/;
+      variable[7] = CALL_abstractmetamodel___MMDirectory___parent( variable[5] /*dir*/)( variable[5] /*dir*/) /*MMDirectory::parent*/;
       variable[5] = variable[7] /*dir=*/;
       continue_11: while(0);
     }
     break_11: while(0);
   }
   variable[5] = variable[0];
-  variable[5] = ((mmloader___ToolContext___paths_t)CALL(variable[5],COLOR_mmloader___ToolContext___paths))(variable[5]) /*ToolContext::paths*/;
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_mmloader___ToolContext___paths(variable[5])(variable[5]) /*ToolContext::paths*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[9] = variable[0];
     variable[10] = variable[0];
-    variable[10] = ((mmloader___ToolContext___directory_for_t)CALL(variable[10],COLOR_mmloader___ToolContext___directory_for))(variable[10],  variable[7] /*p*/) /*ToolContext::directory_for*/;
-    variable[9] = ((mmloader___ToolContext___try_to_load_t)CALL(variable[9],COLOR_mmloader___ToolContext___try_to_load))(variable[9],  variable[1] /*module_name*/, variable[10]) /*ToolContext::try_to_load*/;
+    variable[10] = CALL_mmloader___ToolContext___directory_for(variable[10])(variable[10],  variable[7] /*p*/) /*ToolContext::directory_for*/;
+    variable[9] = CALL_mmloader___ToolContext___try_to_load(variable[9])(variable[9],  variable[1] /*module_name*/, variable[10]) /*ToolContext::try_to_load*/;
     variable[8] = variable[9];
-    variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*m*/ ==  NIT_NULL /*null*/) || (( variable[8] /*m*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*m*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*m*/,COLOR_kernel___Object_____eqeq))( variable[8] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*m*/ ==  NIT_NULL /*null*/) || (( variable[8] /*m*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*m*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*m*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*m*/)( variable[8] /*m*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[3] =  variable[8] /*m*/;
       goto return_label10;
     }
     continue_12: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_12: while(0);
   variable[5] = variable[0];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: No ressource found for module "), TAG_Int(37)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[1] /*module_name*/;
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
-  ((mmloader___ToolContext___error_t)CALL(variable[5],COLOR_mmloader___ToolContext___error))(variable[5], variable[6]) /*ToolContext::error*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_mmloader___ToolContext___error(variable[5])(variable[5], variable[6]) /*ToolContext::error*/;
   variable[5] = variable[0];
   exit(UNTAG_Int( TAG_Int(1)));
   fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ToolContext___get_module, LOCATE_mmloader, 208); nit_exit(1);
@@ -535,21 +543,21 @@ val_t mmloader___ToolContext___directory_for(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_mmloader___ToolContext____path_dirs(variable[3]) /*ToolContext::_path_dirs*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*path*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*path*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_mmloader___ToolContext____path_dirs(variable[3]) /*ToolContext::_path_dirs*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*path*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*path*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label13;
   }
-  variable[4] = ((symbol___String___to_symbol_t)CALL( variable[1] /*path*/,COLOR_symbol___String___to_symbol))( variable[1] /*path*/) /*String::to_symbol*/;
+  variable[4] = CALL_symbol___String___to_symbol( variable[1] /*path*/)( variable[1] /*path*/) /*String::to_symbol*/;
   variable[5] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(variable[4],  variable[1] /*path*/,  NIT_NULL /*null*/); /*new MMDirectory*/
   variable[4] = variable[5];
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_mmloader___ToolContext____path_dirs(variable[4]) /*ToolContext::_path_dirs*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[1] /*path*/,  variable[3] /*dir*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*path*/,  variable[3] /*dir*/) /*Map::[]=*/;
   variable[2] =  variable[3] /*dir*/;
   goto return_label13;
   return_label13: while(false);
@@ -566,7 +574,7 @@ void mmloader___ToolContext___register_loader(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_mmloader___ToolContext____loaders(variable[3]) /*ToolContext::_loaders*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*ml*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*ml*/) /*AbstractArray::add*/;
   return_label14: while(false);
   tracehead = trace.prev;
   return;
@@ -592,29 +600,30 @@ val_t mmloader___ModuleLoader___try_to_load_dir(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
-  variable[8] = ((abstractmetamodel___MMDirectory___path_t)CALL( variable[2] /*parent_dir*/,COLOR_abstractmetamodel___MMDirectory___path))( variable[2] /*parent_dir*/) /*MMDirectory::path*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+  variable[8] = CALL_abstractmetamodel___MMDirectory___path( variable[2] /*parent_dir*/)( variable[2] /*parent_dir*/) /*MMDirectory::path*/;
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[1] /*dirname*/;
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[4] = variable[5];
-  variable[5] = ((file___String___file_exists_t)CALL( variable[4] /*fname*/,COLOR_file___String___file_exists))( variable[4] /*fname*/) /*String::file_exists*/;
+  variable[5] = CALL_file___String___file_exists( variable[4] /*fname*/)( variable[4] /*fname*/) /*String::file_exists*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
     variable[3] =  NIT_NULL /*null*/;
     goto return_label15;
   }
-  variable[6] = ((abstractmetamodel___MMDirectory___full_name_for_t)CALL( variable[2] /*parent_dir*/,COLOR_abstractmetamodel___MMDirectory___full_name_for))( variable[2] /*parent_dir*/,  variable[1] /*dirname*/) /*MMDirectory::full_name_for*/;
+  variable[6] = CALL_abstractmetamodel___MMDirectory___full_name_for( variable[2] /*parent_dir*/)( variable[2] /*parent_dir*/,  variable[1] /*dirname*/) /*MMDirectory::full_name_for*/;
   variable[7] = NEW_MMDirectory_abstractmetamodel___MMDirectory___init(variable[6],  variable[4] /*fname*/,  variable[2] /*parent_dir*/); /*new MMDirectory*/
   variable[6] = variable[7];
   variable[5] = variable[6];
@@ -633,31 +642,32 @@ val_t mmloader___ModuleLoader___can_handle(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
-  variable[8] = ((abstractmetamodel___MMDirectory___path_t)CALL( variable[2] /*dir*/,COLOR_abstractmetamodel___MMDirectory___path))( variable[2] /*dir*/) /*MMDirectory::path*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+  variable[8] = CALL_abstractmetamodel___MMDirectory___path( variable[2] /*dir*/)( variable[2] /*dir*/) /*MMDirectory::path*/;
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[1] /*module_name*/;
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
   variable[15] = variable[0];
-  variable[15] = ((mmloader___ModuleLoader___file_type_t)CALL(variable[15],COLOR_mmloader___ModuleLoader___file_type))(variable[15]) /*ModuleLoader::file_type*/;
+  variable[15] = CALL_mmloader___ModuleLoader___file_type(variable[15])(variable[15]) /*ModuleLoader::file_type*/;
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[18] = variable[17];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[18]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[18]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
   variable[4] = variable[5];
-  variable[5] = ((file___String___file_exists_t)CALL( variable[4] /*fname*/,COLOR_file___String___file_exists))( variable[4] /*fname*/) /*String::file_exists*/;
+  variable[5] = CALL_file___String___file_exists( variable[4] /*fname*/)( variable[4] /*fname*/) /*String::file_exists*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[3] =  TAG_Bool(true);
     goto return_label16;
@@ -678,38 +688,39 @@ val_t mmloader___ModuleLoader___load_and_process_module(val_t  self, val_t  para
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-  variable[9] = ((abstractmetamodel___MMDirectory___path_t)CALL( variable[3] /*dir*/,COLOR_abstractmetamodel___MMDirectory___path))( variable[3] /*dir*/) /*MMDirectory::path*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+  variable[9] = CALL_abstractmetamodel___MMDirectory___path( variable[3] /*dir*/)( variable[3] /*dir*/) /*MMDirectory::path*/;
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] =  variable[2] /*module_name*/;
-  variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[13]) /*String::append*/;
+  variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
   variable[15] = variable[14];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[15]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[15]) /*AbstractArray::add*/;
   variable[16] = variable[0];
-  variable[16] = ((mmloader___ModuleLoader___file_type_t)CALL(variable[16],COLOR_mmloader___ModuleLoader___file_type))(variable[16]) /*ModuleLoader::file_type*/;
+  variable[16] = CALL_mmloader___ModuleLoader___file_type(variable[16])(variable[16]) /*ModuleLoader::file_type*/;
   variable[17] = variable[16];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[17]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[19] = variable[18];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[19]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[19]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[5] = variable[6];
   variable[7] = variable[0];
-  variable[7] = ((mmloader___ModuleLoader___load_module_t)CALL(variable[7],COLOR_mmloader___ModuleLoader___load_module))(variable[7],  variable[1] /*context*/,  variable[2] /*module_name*/,  variable[3] /*dir*/,  variable[5] /*filename*/) /*ModuleLoader::load_module*/;
+  variable[7] = CALL_mmloader___ModuleLoader___load_module(variable[7])(variable[7],  variable[1] /*context*/,  variable[2] /*module_name*/,  variable[3] /*dir*/,  variable[5] /*filename*/) /*ModuleLoader::load_module*/;
   variable[6] = variable[7];
-  variable[7] = ((mmloader___ToolContext___opt_only_parse_t)CALL( variable[1] /*context*/,COLOR_mmloader___ToolContext___opt_only_parse))( variable[1] /*context*/) /*ToolContext::opt_only_parse*/;
-  variable[7] = ((opts___Option___value_t)CALL(variable[7],COLOR_opts___Option___value))(variable[7]) /*Option::value*/;
+  variable[7] = CALL_mmloader___ToolContext___opt_only_parse( variable[1] /*context*/)( variable[1] /*context*/) /*ToolContext::opt_only_parse*/;
+  variable[7] = CALL_opts___Option___value(variable[7])(variable[7]) /*Option::value*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/
     variable[7] = variable[0];
-    ((mmloader___ModuleLoader___process_metamodel_t)CALL(variable[7],COLOR_mmloader___ModuleLoader___process_metamodel))(variable[7],  variable[1] /*context*/,  variable[6] /*m*/) /*ModuleLoader::process_metamodel*/;
+    CALL_mmloader___ModuleLoader___process_metamodel(variable[7])(variable[7],  variable[1] /*context*/,  variable[6] /*m*/) /*ModuleLoader::process_metamodel*/;
   }
   variable[4] =  variable[6] /*m*/;
   goto return_label17;
@@ -730,42 +741,43 @@ val_t mmloader___ModuleLoader___load_module(val_t  self, val_t  param0, val_t  p
   variable[4] =  param3;
   /*variable[6] is variable file*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-  variable[7] = TAG_Bool(( variable[4] /*filename*/ == variable[7]) || (( variable[4] /*filename*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable[4] /*filename*/,COLOR_kernel___Object_____eqeq))( variable[4] /*filename*/, variable[7]) /*String::==*/)));
+  variable[7] = TAG_Bool(( variable[4] /*filename*/ == variable[7]) || (( variable[4] /*filename*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*filename*/)( variable[4] /*filename*/, variable[7]) /*String::==*/)));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    variable[7] = ((file___Object___stdin_t)CALL(variable[7],COLOR_file___Object___stdin))(variable[7]) /*Object::stdin*/;
+    variable[7] = CALL_file___Object___stdin(variable[7])(variable[7]) /*Object::stdin*/;
     variable[6] = variable[7] /*file=*/;
   } else { /*if*/
-    variable[7] = ((string___String___to_s_t)CALL( variable[4] /*filename*/,COLOR_string___Object___to_s))( variable[4] /*filename*/) /*String::to_s*/;
+    variable[7] = CALL_string___Object___to_s( variable[4] /*filename*/)( variable[4] /*filename*/) /*String::to_s*/;
     variable[8] = NEW_IFStream_file___IFStream___open(variable[7]); /*new IFStream*/
     variable[7] = variable[8];
     variable[6] = variable[7] /*file=*/;
   }
-  variable[7] = ((stream___BufferedIStream___eof_t)CALL( variable[6] /*file*/,COLOR_stream___IStream___eof))( variable[6] /*file*/) /*BufferedIStream::eof*/;
+  variable[7] = CALL_stream___IStream___eof( variable[6] /*file*/)( variable[6] /*file*/) /*BufferedIStream::eof*/;
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Problem in opening file "), TAG_Int(31)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[4] /*filename*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-    ((mmloader___ToolContext___error_t)CALL( variable[1] /*context*/,COLOR_mmloader___ToolContext___error))( variable[1] /*context*/, variable[7]) /*ToolContext::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_mmloader___ToolContext___error( variable[1] /*context*/)( variable[1] /*context*/, variable[7]) /*ToolContext::error*/;
     variable[7] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
     fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___ModuleLoader___load_module, LOCATE_mmloader, 277); nit_exit(1);
   }
   variable[8] = variable[0];
-  variable[8] = ((mmloader___ModuleLoader___parse_file_t)CALL(variable[8],COLOR_mmloader___ModuleLoader___parse_file))(variable[8],  variable[1] /*context*/,  variable[6] /*file*/,  variable[4] /*filename*/,  variable[2] /*module_name*/,  variable[3] /*dir*/) /*ModuleLoader::parse_file*/;
+  variable[8] = CALL_mmloader___ModuleLoader___parse_file(variable[8])(variable[8],  variable[1] /*context*/,  variable[6] /*file*/,  variable[4] /*filename*/,  variable[2] /*module_name*/,  variable[3] /*dir*/) /*ModuleLoader::parse_file*/;
   variable[7] = variable[8];
-  ((mmloader___MMModule___filename__eq_t)CALL( variable[7] /*m*/,COLOR_mmloader___MMModule___filename__eq))( variable[7] /*m*/,  variable[4] /*filename*/) /*MMModule::filename=*/;
+  CALL_mmloader___MMModule___filename__eq( variable[7] /*m*/)( variable[7] /*m*/,  variable[4] /*filename*/) /*MMModule::filename=*/;
   variable[8] = variable[0];
-  variable[8] = ((file___Object___stdin_t)CALL(variable[8],COLOR_file___Object___stdin))(variable[8]) /*Object::stdin*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*file*/ == variable[8]) || (( variable[6] /*file*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*file*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*file*/,variable[8])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*file*/,COLOR_kernel___Object_____eqeq))( variable[6] /*file*/, variable[8]) /*Object::==*/)))))));
+  variable[8] = CALL_file___Object___stdin(variable[8])(variable[8]) /*Object::stdin*/;
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*file*/ == variable[8]) || (( variable[6] /*file*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*file*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*file*/,variable[8])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*file*/)( variable[6] /*file*/, variable[8]) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    ((file___IFStream___close_t)CALL( variable[6] /*file*/,COLOR_stream___IOS___close))( variable[6] /*file*/) /*IFStream::close*/;
+    CALL_stream___IOS___close( variable[6] /*file*/)( variable[6] /*file*/) /*IFStream::close*/;
   }
   variable[5] =  variable[7] /*m*/;
   goto return_label18;
@@ -853,28 +865,28 @@ void mmloader___MMModule___import_supers_modules(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMModule___context_t)CALL(variable[4],COLOR_abstractmetamodel___MMModule___context))(variable[4]) /*MMModule::context*/;
+  variable[4] = CALL_abstractmetamodel___MMModule___context(variable[4])(variable[4]) /*MMModule::context*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(( variable[3] /*c*/==NIT_NULL) || VAL_ISA( variable[3] /*c*/, COLOR_ToolContext, ID_ToolContext)) /*cast ToolContext*/;
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_mmloader___MMModule___import_supers_modules, LOCATE_mmloader, 303); nit_exit(1);}
   variable[5] = NEW_Array_array___Array___init(); /*new Array[MMModule]*/
   variable[4] = variable[5];
-  variable[5] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*names*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*names*/) /*Collection::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*names*/)( variable[1] /*names*/) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
     variable[9] = variable[0];
-    variable[9] = ((mmloader___ToolContext___get_module_t)CALL( variable[3] /*c*/,COLOR_mmloader___ToolContext___get_module))( variable[3] /*c*/,  variable[7] /*n*/, variable[9]) /*ToolContext::get_module*/;
+    variable[9] = CALL_mmloader___ToolContext___get_module( variable[3] /*c*/)( variable[3] /*c*/,  variable[7] /*n*/, variable[9]) /*ToolContext::get_module*/;
     variable[8] = variable[9];
-    ((array___AbstractArray___add_t)CALL( variable[4] /*supers*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*supers*/,  variable[8] /*m*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*supers*/)( variable[4] /*supers*/,  variable[8] /*m*/) /*AbstractArray::add*/;
     continue_20: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
   break_20: while(0);
   variable[5] = variable[0];
-  ((abstractmetamodel___MMContext___add_module_t)CALL( variable[3] /*c*/,COLOR_abstractmetamodel___MMContext___add_module))( variable[3] /*c*/, variable[5],  variable[4] /*supers*/) /*MMContext::add_module*/;
+  CALL_abstractmetamodel___MMContext___add_module( variable[3] /*c*/)( variable[3] /*c*/, variable[5],  variable[4] /*supers*/) /*MMContext::add_module*/;
   return_label19: while(false);
   tracehead = trace.prev;
   return;
index 371e6ad..2bf83ce 100644 (file)
@@ -10,64 +10,62 @@ extern const classtable_elt_t VFT_ToolContext[];
 extern const classtable_elt_t VFT_ModuleLoader[];
 extern const char *LOCATE_mmloader;
 extern const int SFT_mmloader[];
-#define ID_ToolContext SFT_mmloader[0]
-#define COLOR_ToolContext SFT_mmloader[1]
-#define COLOR_mmloader___ToolContext____error_count SFT_mmloader[2]
-#define COLOR_mmloader___ToolContext____warning_count SFT_mmloader[3]
-#define COLOR_mmloader___ToolContext____paths SFT_mmloader[4]
-#define COLOR_mmloader___ToolContext____loaders SFT_mmloader[5]
-#define COLOR_mmloader___ToolContext____option_context SFT_mmloader[6]
-#define COLOR_mmloader___ToolContext____opt_warn SFT_mmloader[7]
-#define COLOR_mmloader___ToolContext____opt_path SFT_mmloader[8]
-#define COLOR_mmloader___ToolContext____opt_log SFT_mmloader[9]
-#define COLOR_mmloader___ToolContext____opt_only_metamodel SFT_mmloader[10]
-#define COLOR_mmloader___ToolContext____opt_only_parse SFT_mmloader[11]
-#define COLOR_mmloader___ToolContext____opt_help SFT_mmloader[12]
-#define COLOR_mmloader___ToolContext____processing_modules SFT_mmloader[13]
-#define COLOR_mmloader___ToolContext____path_dirs SFT_mmloader[14]
-#define INIT_TABLE_POS_ToolContext SFT_mmloader[15]
-#define COLOR_mmloader___ToolContext___error_count SFT_mmloader[16]
-#define COLOR_mmloader___ToolContext___warning_count SFT_mmloader[17]
-#define COLOR_mmloader___ToolContext___error SFT_mmloader[18]
-#define COLOR_mmloader___ToolContext___warning SFT_mmloader[19]
-#define COLOR_mmloader___ToolContext___paths SFT_mmloader[20]
-#define COLOR_mmloader___ToolContext___option_context SFT_mmloader[21]
-#define COLOR_mmloader___ToolContext___opt_warn SFT_mmloader[22]
-#define COLOR_mmloader___ToolContext___opt_path SFT_mmloader[23]
-#define COLOR_mmloader___ToolContext___opt_log SFT_mmloader[24]
-#define COLOR_mmloader___ToolContext___opt_only_metamodel SFT_mmloader[25]
-#define COLOR_mmloader___ToolContext___opt_only_parse SFT_mmloader[26]
-#define COLOR_mmloader___ToolContext___opt_help SFT_mmloader[27]
-#define COLOR_mmloader___ToolContext___init SFT_mmloader[28]
-#define COLOR_mmloader___ToolContext___process_options SFT_mmloader[29]
-#define COLOR_mmloader___ToolContext___try_to_load SFT_mmloader[30]
-#define COLOR_mmloader___ToolContext___get_module_from_filename SFT_mmloader[31]
-#define COLOR_mmloader___ToolContext___get_module SFT_mmloader[32]
-#define COLOR_mmloader___ToolContext___directory_for SFT_mmloader[33]
-#define COLOR_mmloader___ToolContext___register_loader SFT_mmloader[34]
-#define ID_ModuleLoader SFT_mmloader[35]
-#define COLOR_ModuleLoader SFT_mmloader[36]
-#define INIT_TABLE_POS_ModuleLoader SFT_mmloader[37]
-#define COLOR_mmloader___ModuleLoader___file_type SFT_mmloader[38]
-#define COLOR_mmloader___ModuleLoader___try_to_load_dir SFT_mmloader[39]
-#define COLOR_mmloader___ModuleLoader___can_handle SFT_mmloader[40]
-#define COLOR_mmloader___ModuleLoader___load_and_process_module SFT_mmloader[41]
-#define COLOR_mmloader___ModuleLoader___load_module SFT_mmloader[42]
-#define COLOR_mmloader___ModuleLoader___parse_file SFT_mmloader[43]
-#define COLOR_mmloader___ModuleLoader___process_metamodel SFT_mmloader[44]
-#define COLOR_mmloader___ModuleLoader___init SFT_mmloader[45]
-#define COLOR_mmloader___MMModule____filename SFT_mmloader[46]
-#define COLOR_mmloader___MMModule____mtime SFT_mmloader[47]
-#define COLOR_mmloader___MMModule___filename SFT_mmloader[48]
-#define COLOR_mmloader___MMModule___filename__eq SFT_mmloader[49]
-#define COLOR_mmloader___MMModule___mtime SFT_mmloader[50]
-#define COLOR_mmloader___MMModule___mtime__eq SFT_mmloader[51]
-#define COLOR_mmloader___MMModule___import_supers_modules SFT_mmloader[52]
-#define ATTR_mmloader___ToolContext____error_count(recv) ATTR(recv, COLOR_mmloader___ToolContext____error_count)
+#define ID_ToolContext (SFT_mmloader[0])
+#define COLOR_ToolContext (SFT_mmloader[1])
+#define ATTR_mmloader___ToolContext____error_count(recv) ATTR(recv, (SFT_mmloader[2] + 0))
+#define ATTR_mmloader___ToolContext____warning_count(recv) ATTR(recv, (SFT_mmloader[2] + 1))
+#define ATTR_mmloader___ToolContext____paths(recv) ATTR(recv, (SFT_mmloader[2] + 2))
+#define ATTR_mmloader___ToolContext____loaders(recv) ATTR(recv, (SFT_mmloader[2] + 3))
+#define ATTR_mmloader___ToolContext____option_context(recv) ATTR(recv, (SFT_mmloader[2] + 4))
+#define ATTR_mmloader___ToolContext____opt_warn(recv) ATTR(recv, (SFT_mmloader[2] + 5))
+#define ATTR_mmloader___ToolContext____opt_path(recv) ATTR(recv, (SFT_mmloader[2] + 6))
+#define ATTR_mmloader___ToolContext____opt_log(recv) ATTR(recv, (SFT_mmloader[2] + 7))
+#define ATTR_mmloader___ToolContext____opt_only_metamodel(recv) ATTR(recv, (SFT_mmloader[2] + 8))
+#define ATTR_mmloader___ToolContext____opt_only_parse(recv) ATTR(recv, (SFT_mmloader[2] + 9))
+#define ATTR_mmloader___ToolContext____opt_help(recv) ATTR(recv, (SFT_mmloader[2] + 10))
+#define ATTR_mmloader___ToolContext____processing_modules(recv) ATTR(recv, (SFT_mmloader[2] + 11))
+#define ATTR_mmloader___ToolContext____path_dirs(recv) ATTR(recv, (SFT_mmloader[2] + 12))
+#define INIT_TABLE_POS_ToolContext (SFT_mmloader[3] + 0)
+#define CALL_mmloader___ToolContext___error_count(recv) ((mmloader___ToolContext___error_count_t)CALL((recv), (SFT_mmloader[3] + 1)))
+#define CALL_mmloader___ToolContext___warning_count(recv) ((mmloader___ToolContext___warning_count_t)CALL((recv), (SFT_mmloader[3] + 2)))
+#define CALL_mmloader___ToolContext___error(recv) ((mmloader___ToolContext___error_t)CALL((recv), (SFT_mmloader[3] + 3)))
+#define CALL_mmloader___ToolContext___warning(recv) ((mmloader___ToolContext___warning_t)CALL((recv), (SFT_mmloader[3] + 4)))
+#define CALL_mmloader___ToolContext___paths(recv) ((mmloader___ToolContext___paths_t)CALL((recv), (SFT_mmloader[3] + 5)))
+#define CALL_mmloader___ToolContext___option_context(recv) ((mmloader___ToolContext___option_context_t)CALL((recv), (SFT_mmloader[3] + 6)))
+#define CALL_mmloader___ToolContext___opt_warn(recv) ((mmloader___ToolContext___opt_warn_t)CALL((recv), (SFT_mmloader[3] + 7)))
+#define CALL_mmloader___ToolContext___opt_path(recv) ((mmloader___ToolContext___opt_path_t)CALL((recv), (SFT_mmloader[3] + 8)))
+#define CALL_mmloader___ToolContext___opt_log(recv) ((mmloader___ToolContext___opt_log_t)CALL((recv), (SFT_mmloader[3] + 9)))
+#define CALL_mmloader___ToolContext___opt_only_metamodel(recv) ((mmloader___ToolContext___opt_only_metamodel_t)CALL((recv), (SFT_mmloader[3] + 10)))
+#define CALL_mmloader___ToolContext___opt_only_parse(recv) ((mmloader___ToolContext___opt_only_parse_t)CALL((recv), (SFT_mmloader[3] + 11)))
+#define CALL_mmloader___ToolContext___opt_help(recv) ((mmloader___ToolContext___opt_help_t)CALL((recv), (SFT_mmloader[3] + 12)))
+#define CALL_mmloader___ToolContext___init(recv) ((mmloader___ToolContext___init_t)CALL((recv), (SFT_mmloader[3] + 13)))
+#define CALL_mmloader___ToolContext___process_options(recv) ((mmloader___ToolContext___process_options_t)CALL((recv), (SFT_mmloader[3] + 14)))
+#define CALL_mmloader___ToolContext___try_to_load(recv) ((mmloader___ToolContext___try_to_load_t)CALL((recv), (SFT_mmloader[3] + 15)))
+#define CALL_mmloader___ToolContext___get_module_from_filename(recv) ((mmloader___ToolContext___get_module_from_filename_t)CALL((recv), (SFT_mmloader[3] + 16)))
+#define CALL_mmloader___ToolContext___get_module(recv) ((mmloader___ToolContext___get_module_t)CALL((recv), (SFT_mmloader[3] + 17)))
+#define CALL_mmloader___ToolContext___directory_for(recv) ((mmloader___ToolContext___directory_for_t)CALL((recv), (SFT_mmloader[3] + 18)))
+#define CALL_mmloader___ToolContext___register_loader(recv) ((mmloader___ToolContext___register_loader_t)CALL((recv), (SFT_mmloader[3] + 19)))
+#define ID_ModuleLoader (SFT_mmloader[4])
+#define COLOR_ModuleLoader (SFT_mmloader[5])
+#define INIT_TABLE_POS_ModuleLoader (SFT_mmloader[6] + 0)
+#define CALL_mmloader___ModuleLoader___file_type(recv) ((mmloader___ModuleLoader___file_type_t)CALL((recv), (SFT_mmloader[6] + 1)))
+#define CALL_mmloader___ModuleLoader___try_to_load_dir(recv) ((mmloader___ModuleLoader___try_to_load_dir_t)CALL((recv), (SFT_mmloader[6] + 2)))
+#define CALL_mmloader___ModuleLoader___can_handle(recv) ((mmloader___ModuleLoader___can_handle_t)CALL((recv), (SFT_mmloader[6] + 3)))
+#define CALL_mmloader___ModuleLoader___load_and_process_module(recv) ((mmloader___ModuleLoader___load_and_process_module_t)CALL((recv), (SFT_mmloader[6] + 4)))
+#define CALL_mmloader___ModuleLoader___load_module(recv) ((mmloader___ModuleLoader___load_module_t)CALL((recv), (SFT_mmloader[6] + 5)))
+#define CALL_mmloader___ModuleLoader___parse_file(recv) ((mmloader___ModuleLoader___parse_file_t)CALL((recv), (SFT_mmloader[6] + 6)))
+#define CALL_mmloader___ModuleLoader___process_metamodel(recv) ((mmloader___ModuleLoader___process_metamodel_t)CALL((recv), (SFT_mmloader[6] + 7)))
+#define CALL_mmloader___ModuleLoader___init(recv) ((mmloader___ModuleLoader___init_t)CALL((recv), (SFT_mmloader[6] + 8)))
+#define ATTR_mmloader___MMModule____filename(recv) ATTR(recv, (SFT_mmloader[7] + 0))
+#define ATTR_mmloader___MMModule____mtime(recv) ATTR(recv, (SFT_mmloader[7] + 1))
+#define CALL_mmloader___MMModule___filename(recv) ((mmloader___MMModule___filename_t)CALL((recv), (SFT_mmloader[8] + 0)))
+#define CALL_mmloader___MMModule___filename__eq(recv) ((mmloader___MMModule___filename__eq_t)CALL((recv), (SFT_mmloader[8] + 1)))
+#define CALL_mmloader___MMModule___mtime(recv) ((mmloader___MMModule___mtime_t)CALL((recv), (SFT_mmloader[8] + 2)))
+#define CALL_mmloader___MMModule___mtime__eq(recv) ((mmloader___MMModule___mtime__eq_t)CALL((recv), (SFT_mmloader[8] + 3)))
+#define CALL_mmloader___MMModule___import_supers_modules(recv) ((mmloader___MMModule___import_supers_modules_t)CALL((recv), (SFT_mmloader[8] + 4)))
 typedef val_t (* mmloader___ToolContext___error_count_t)(val_t  self);
 val_t mmloader___ToolContext___error_count(val_t  self);
 #define LOCATE_mmloader___ToolContext___error_count "mmloader::ToolContext::error_count"
-#define ATTR_mmloader___ToolContext____warning_count(recv) ATTR(recv, COLOR_mmloader___ToolContext____warning_count)
 typedef val_t (* mmloader___ToolContext___warning_count_t)(val_t  self);
 val_t mmloader___ToolContext___warning_count(val_t  self);
 #define LOCATE_mmloader___ToolContext___warning_count "mmloader::ToolContext::warning_count"
@@ -77,36 +75,27 @@ void mmloader___ToolContext___error(val_t  self, val_t  param0);
 typedef void (* mmloader___ToolContext___warning_t)(val_t  self, val_t  param0);
 void mmloader___ToolContext___warning(val_t  self, val_t  param0);
 #define LOCATE_mmloader___ToolContext___warning "mmloader::ToolContext::warning"
-#define ATTR_mmloader___ToolContext____paths(recv) ATTR(recv, COLOR_mmloader___ToolContext____paths)
 typedef val_t (* mmloader___ToolContext___paths_t)(val_t  self);
 val_t mmloader___ToolContext___paths(val_t  self);
 #define LOCATE_mmloader___ToolContext___paths "mmloader::ToolContext::paths"
-#define ATTR_mmloader___ToolContext____loaders(recv) ATTR(recv, COLOR_mmloader___ToolContext____loaders)
-#define ATTR_mmloader___ToolContext____option_context(recv) ATTR(recv, COLOR_mmloader___ToolContext____option_context)
 typedef val_t (* mmloader___ToolContext___option_context_t)(val_t  self);
 val_t mmloader___ToolContext___option_context(val_t  self);
 #define LOCATE_mmloader___ToolContext___option_context "mmloader::ToolContext::option_context"
-#define ATTR_mmloader___ToolContext____opt_warn(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_warn)
 typedef val_t (* mmloader___ToolContext___opt_warn_t)(val_t  self);
 val_t mmloader___ToolContext___opt_warn(val_t  self);
 #define LOCATE_mmloader___ToolContext___opt_warn "mmloader::ToolContext::opt_warn"
-#define ATTR_mmloader___ToolContext____opt_path(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_path)
 typedef val_t (* mmloader___ToolContext___opt_path_t)(val_t  self);
 val_t mmloader___ToolContext___opt_path(val_t  self);
 #define LOCATE_mmloader___ToolContext___opt_path "mmloader::ToolContext::opt_path"
-#define ATTR_mmloader___ToolContext____opt_log(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_log)
 typedef val_t (* mmloader___ToolContext___opt_log_t)(val_t  self);
 val_t mmloader___ToolContext___opt_log(val_t  self);
 #define LOCATE_mmloader___ToolContext___opt_log "mmloader::ToolContext::opt_log"
-#define ATTR_mmloader___ToolContext____opt_only_metamodel(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_only_metamodel)
 typedef val_t (* mmloader___ToolContext___opt_only_metamodel_t)(val_t  self);
 val_t mmloader___ToolContext___opt_only_metamodel(val_t  self);
 #define LOCATE_mmloader___ToolContext___opt_only_metamodel "mmloader::ToolContext::opt_only_metamodel"
-#define ATTR_mmloader___ToolContext____opt_only_parse(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_only_parse)
 typedef val_t (* mmloader___ToolContext___opt_only_parse_t)(val_t  self);
 val_t mmloader___ToolContext___opt_only_parse(val_t  self);
 #define LOCATE_mmloader___ToolContext___opt_only_parse "mmloader::ToolContext::opt_only_parse"
-#define ATTR_mmloader___ToolContext____opt_help(recv) ATTR(recv, COLOR_mmloader___ToolContext____opt_help)
 typedef val_t (* mmloader___ToolContext___opt_help_t)(val_t  self);
 val_t mmloader___ToolContext___opt_help(val_t  self);
 #define LOCATE_mmloader___ToolContext___opt_help "mmloader::ToolContext::opt_help"
@@ -120,7 +109,6 @@ void mmloader___ToolContext___process_options(val_t  self);
 typedef val_t (* mmloader___ToolContext___try_to_load_t)(val_t  self, val_t  param0, val_t  param1);
 val_t mmloader___ToolContext___try_to_load(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_mmloader___ToolContext___try_to_load "mmloader::ToolContext::try_to_load"
-#define ATTR_mmloader___ToolContext____processing_modules(recv) ATTR(recv, COLOR_mmloader___ToolContext____processing_modules)
 typedef val_t (* mmloader___ToolContext___get_module_from_filename_t)(val_t  self, val_t  param0);
 val_t mmloader___ToolContext___get_module_from_filename(val_t  self, val_t  param0);
 #define LOCATE_mmloader___ToolContext___get_module_from_filename "mmloader::ToolContext::get_module_from_filename"
@@ -130,7 +118,6 @@ val_t mmloader___ToolContext___get_module(val_t  self, val_t  param0, val_t  par
 typedef val_t (* mmloader___ToolContext___directory_for_t)(val_t  self, val_t  param0);
 val_t mmloader___ToolContext___directory_for(val_t  self, val_t  param0);
 #define LOCATE_mmloader___ToolContext___directory_for "mmloader::ToolContext::directory_for"
-#define ATTR_mmloader___ToolContext____path_dirs(recv) ATTR(recv, COLOR_mmloader___ToolContext____path_dirs)
 typedef void (* mmloader___ToolContext___register_loader_t)(val_t  self, val_t  param0);
 void mmloader___ToolContext___register_loader(val_t  self, val_t  param0);
 #define LOCATE_mmloader___ToolContext___register_loader "mmloader::ToolContext::register_loader"
@@ -160,14 +147,12 @@ void mmloader___ModuleLoader___init(val_t  self, int* init_table);
 #define LOCATE_mmloader___ModuleLoader___init "mmloader::ModuleLoader::init"
 val_t NEW_ModuleLoader_mmloader___ModuleLoader___init();
 val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_mmloader___MMModule____filename(recv) ATTR(recv, COLOR_mmloader___MMModule____filename)
 typedef val_t (* mmloader___MMModule___filename_t)(val_t  self);
 val_t mmloader___MMModule___filename(val_t  self);
 #define LOCATE_mmloader___MMModule___filename "mmloader::MMModule::filename"
 typedef void (* mmloader___MMModule___filename__eq_t)(val_t  self, val_t  param0);
 void mmloader___MMModule___filename__eq(val_t  self, val_t  param0);
 #define LOCATE_mmloader___MMModule___filename__eq "mmloader::MMModule::filename="
-#define ATTR_mmloader___MMModule____mtime(recv) ATTR(recv, COLOR_mmloader___MMModule____mtime)
 typedef val_t (* mmloader___MMModule___mtime_t)(val_t  self);
 val_t mmloader___MMModule___mtime(val_t  self);
 #define LOCATE_mmloader___MMModule___mtime "mmloader::MMModule::mtime"
index cd0994e..e4a33db 100644 (file)
@@ -1,7 +1,7 @@
 /* This C file is generated by NIT to compile module nitc. */
 #include "nitc._sep.h"
 void nitc___NitCompiler___process_options(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 42, LOCATE_nitc___NitCompiler___process_options};
+  struct trace_t trace = {NULL, NULL, 41, LOCATE_nitc___NitCompiler___process_options};
     static val_t once_value_1; static int once_bool_1; /* Once value for variable[3]*/
     static val_t once_value_2; static int once_bool_2; /* Once value for variable[3]*/
     static val_t once_value_3; static int once_bool_3; /* Once value for variable[3]*/
@@ -10,212 +10,211 @@ void nitc___NitCompiler___process_options(val_t  self) {
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_nitc;
   variable[0] =  self;
-  ((nitc___NitCompiler___process_options_t)CALL(variable[0],COLOR_SUPER_nitc___NitCompiler___process_options))(variable[0]) /*super NitCompiler::process_options*/;
+  CALL_SUPER_nitc___NitCompiler___process_options(variable[0])(variable[0]) /*super NitCompiler::process_options*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_output_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_output))(variable[3]) /*NitCompiler::opt_output*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___output_file__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___output_file__eq))(variable[2], variable[3]) /*ToolContext::output_file=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_output(variable[3])(variable[3]) /*NitCompiler::opt_output*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___output_file__eq(variable[2])(variable[2], variable[3]) /*ToolContext::output_file=*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_boost_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_boost))(variable[3]) /*NitCompiler::opt_boost*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___boost__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___boost__eq))(variable[2], variable[3]) /*ToolContext::boost=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_boost(variable[3])(variable[3]) /*NitCompiler::opt_boost*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___boost__eq(variable[2])(variable[2], variable[3]) /*ToolContext::boost=*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_no_cc_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_no_cc))(variable[3]) /*NitCompiler::opt_no_cc*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___no_cc__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___no_cc__eq))(variable[2], variable[3]) /*ToolContext::no_cc=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_no_cc(variable[3])(variable[3]) /*NitCompiler::opt_no_cc*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___no_cc__eq(variable[2])(variable[2], variable[3]) /*ToolContext::no_cc=*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_extension_prefix_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_extension_prefix))(variable[3]) /*NitCompiler::opt_extension_prefix*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___ext_prefix__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___ext_prefix__eq))(variable[2], variable[3]) /*ToolContext::ext_prefix=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_extension_prefix(variable[3])(variable[3]) /*NitCompiler::opt_extension_prefix*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___ext_prefix__eq(variable[2])(variable[2], variable[3]) /*ToolContext::ext_prefix=*/;
   variable[2] = variable[0];
-  variable[2] = ((compiling_base___ToolContext___ext_prefix_t)CALL(variable[2],COLOR_compiling_base___ToolContext___ext_prefix))(variable[2]) /*ToolContext::ext_prefix*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
+  variable[2] = CALL_compiling_base___ToolContext___ext_prefix(variable[2])(variable[2]) /*ToolContext::ext_prefix*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-    ((compiling_base___ToolContext___ext_prefix__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___ext_prefix__eq))(variable[2], variable[3]) /*ToolContext::ext_prefix=*/;
+    CALL_compiling_base___ToolContext___ext_prefix__eq(variable[2])(variable[2], variable[3]) /*ToolContext::ext_prefix=*/;
   }
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_attr_sim_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_attr_sim))(variable[3]) /*NitCompiler::opt_attr_sim*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___attr_sim__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___attr_sim__eq))(variable[2], variable[3]) /*ToolContext::attr_sim=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_global(variable[3])(variable[3]) /*NitCompiler::opt_global*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___global__eq(variable[2])(variable[2], variable[3]) /*ToolContext::global=*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_global_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_global))(variable[3]) /*NitCompiler::opt_global*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___global__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___global__eq))(variable[2], variable[3]) /*ToolContext::global=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_compdir(variable[3])(variable[3]) /*NitCompiler::opt_compdir*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___compdir__eq(variable[2])(variable[2], variable[3]) /*ToolContext::compdir=*/;
   variable[2] = variable[0];
-  variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_compdir_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_compdir))(variable[3]) /*NitCompiler::opt_compdir*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___compdir__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___compdir__eq))(variable[2], variable[3]) /*ToolContext::compdir=*/;
-  variable[2] = variable[0];
-  variable[2] = ((compiling_base___ToolContext___compdir_t)CALL(variable[2],COLOR_compiling_base___ToolContext___compdir))(variable[2]) /*ToolContext::compdir*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
+  variable[2] = CALL_compiling_base___ToolContext___compdir(variable[2])(variable[2]) /*ToolContext::compdir*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     if (once_bool_1) variable[3] = once_value_1;
     else {
       variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_COMPDIR"), TAG_Int(11)); /*new String*/
-      variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
-      variable[3] = ((environ___Symbol___environ_t)CALL(variable[3],COLOR_environ___Symbol___environ))(variable[3]) /*Symbol::environ*/;
+      variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
+      variable[3] = CALL_environ___Symbol___environ(variable[3])(variable[3]) /*Symbol::environ*/;
       once_value_1 = variable[3];
       once_bool_1 = true;
     }
     variable[2] = variable[3];
-    variable[3] = ((array___AbstractArray___is_empty_t)CALL( variable[2] /*dir*/,COLOR_abstract_collection___Collection___is_empty))( variable[2] /*dir*/) /*AbstractArray::is_empty*/;
+    variable[3] = CALL_abstract_collection___Collection___is_empty( variable[2] /*dir*/)( variable[2] /*dir*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
       variable[3] = variable[0];
-      ((compiling_base___ToolContext___compdir__eq_t)CALL(variable[3],COLOR_compiling_base___ToolContext___compdir__eq))(variable[3],  variable[2] /*dir*/) /*ToolContext::compdir=*/;
+      CALL_compiling_base___ToolContext___compdir__eq(variable[3])(variable[3],  variable[2] /*dir*/) /*ToolContext::compdir=*/;
     }
     variable[3] = variable[0];
-    variable[3] = ((compiling_base___ToolContext___compdir_t)CALL(variable[3],COLOR_compiling_base___ToolContext___compdir))(variable[3]) /*ToolContext::compdir*/;
-    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*String::==*/)));
+    variable[3] = CALL_compiling_base___ToolContext___compdir(variable[3])(variable[3]) /*ToolContext::compdir*/;
+    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*String::==*/)));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[3] = variable[0];
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString(".nit_compile"), TAG_Int(12)); /*new String*/
-      ((compiling_base___ToolContext___compdir__eq_t)CALL(variable[3],COLOR_compiling_base___ToolContext___compdir__eq))(variable[3], variable[4]) /*ToolContext::compdir=*/;
+      CALL_compiling_base___ToolContext___compdir__eq(variable[3])(variable[3], variable[4]) /*ToolContext::compdir=*/;
     }
   }
   variable[2] = variable[0];
-  variable[2] = ((compiling_base___ToolContext___compdir_t)CALL(variable[2],COLOR_compiling_base___ToolContext___compdir))(variable[2]) /*ToolContext::compdir*/;
+  variable[2] = CALL_compiling_base___ToolContext___compdir(variable[2])(variable[2]) /*ToolContext::compdir*/;
   variable[3] = variable[0];
-  variable[3] = ((compiling_base___ToolContext___ext_prefix_t)CALL(variable[3],COLOR_compiling_base___ToolContext___ext_prefix))(variable[3]) /*ToolContext::ext_prefix*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[3]) /*String::append*/;
+  variable[3] = CALL_compiling_base___ToolContext___ext_prefix(variable[3])(variable[3]) /*ToolContext::ext_prefix*/;
+  CALL_abstract_collection___IndexedCollection___append(variable[2])(variable[2], variable[3]) /*String::append*/;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_clibdir_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_clibdir))(variable[3]) /*NitCompiler::opt_clibdir*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___clibdir__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___clibdir__eq))(variable[2], variable[3]) /*ToolContext::clibdir=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_clibdir(variable[3])(variable[3]) /*NitCompiler::opt_clibdir*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___clibdir__eq(variable[2])(variable[2], variable[3]) /*ToolContext::clibdir=*/;
   variable[2] = variable[0];
-  variable[2] = ((compiling_base___ToolContext___clibdir_t)CALL(variable[2],COLOR_compiling_base___ToolContext___clibdir))(variable[2]) /*ToolContext::clibdir*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
+  variable[2] = CALL_compiling_base___ToolContext___clibdir(variable[2])(variable[2]) /*ToolContext::clibdir*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     if (once_bool_2) variable[3] = once_value_2;
     else {
       variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_DIR"), TAG_Int(7)); /*new String*/
-      variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
-      variable[3] = ((environ___Symbol___environ_t)CALL(variable[3],COLOR_environ___Symbol___environ))(variable[3]) /*Symbol::environ*/;
+      variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
+      variable[3] = CALL_environ___Symbol___environ(variable[3])(variable[3]) /*Symbol::environ*/;
       once_value_2 = variable[3];
       once_bool_2 = true;
     }
     variable[2] = variable[3];
-    variable[3] = ((array___AbstractArray___is_empty_t)CALL( variable[2] /*dir*/,COLOR_abstract_collection___Collection___is_empty))( variable[2] /*dir*/) /*AbstractArray::is_empty*/;
+    variable[3] = CALL_abstract_collection___Collection___is_empty( variable[2] /*dir*/)( variable[2] /*dir*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[3])) { /*if*/
-      variable[4] = NEW_String_string___String___init(); /*new String*/
+      variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[6] = variable[5];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
       variable[7] = variable[0];
       variable[7] = (G_sys);
-      variable[7] = ((string___Sys___program_name_t)CALL(variable[7],COLOR_string___Sys___program_name))(variable[7]) /*Sys::program_name*/;
-      variable[7] = ((file___String___dirname_t)CALL(variable[7],COLOR_file___String___dirname))(variable[7]) /*String::dirname*/;
+      variable[7] = CALL_string___Sys___program_name(variable[7])(variable[7]) /*Sys::program_name*/;
+      variable[7] = CALL_file___String___dirname(variable[7])(variable[7]) /*String::dirname*/;
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("/../lib"), TAG_Int(7)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+      variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
       variable[3] = variable[4];
-      variable[4] = ((file___String___file_exists_t)CALL( variable[3] /*dir*/,COLOR_file___String___file_exists))( variable[3] /*dir*/) /*String::file_exists*/;
+      variable[4] = CALL_file___String___file_exists( variable[3] /*dir*/)( variable[3] /*dir*/) /*String::file_exists*/;
       if (UNTAG_Bool(variable[4])) { /*if*/
         variable[4] = variable[0];
-        ((compiling_base___ToolContext___clibdir__eq_t)CALL(variable[4],COLOR_compiling_base___ToolContext___clibdir__eq))(variable[4],  variable[3] /*dir*/) /*ToolContext::clibdir=*/;
+        CALL_compiling_base___ToolContext___clibdir__eq(variable[4])(variable[4],  variable[3] /*dir*/) /*ToolContext::clibdir=*/;
       }
     } else { /*if*/
-      variable[3] = NEW_String_string___String___init(); /*new String*/
+      variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[5] = variable[4];
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
       variable[6] =  variable[2] /*dir*/;
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/lib"), TAG_Int(4)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
+      variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
       variable[2] = variable[3] /*dir=*/;
-      variable[3] = ((file___String___file_exists_t)CALL( variable[2] /*dir*/,COLOR_file___String___file_exists))( variable[2] /*dir*/) /*String::file_exists*/;
+      variable[3] = CALL_file___String___file_exists( variable[2] /*dir*/)( variable[2] /*dir*/) /*String::file_exists*/;
       if (UNTAG_Bool(variable[3])) { /*if*/
         variable[3] = variable[0];
-        ((compiling_base___ToolContext___clibdir__eq_t)CALL(variable[3],COLOR_compiling_base___ToolContext___clibdir__eq))(variable[3],  variable[2] /*dir*/) /*ToolContext::clibdir=*/;
+        CALL_compiling_base___ToolContext___clibdir__eq(variable[3])(variable[3],  variable[2] /*dir*/) /*ToolContext::clibdir=*/;
       }
     }
     variable[3] = variable[0];
-    variable[3] = ((compiling_base___ToolContext___clibdir_t)CALL(variable[3],COLOR_compiling_base___ToolContext___clibdir))(variable[3]) /*ToolContext::clibdir*/;
-    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*String::==*/)));
+    variable[3] = CALL_compiling_base___ToolContext___clibdir(variable[3])(variable[3]) /*ToolContext::clibdir*/;
+    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*String::==*/)));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[3] = variable[0];
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Error: Cannot locate NIT C library directory. Uses --clibdir or envvar NIT_DIR."), TAG_Int(79)); /*new String*/
-      ((mmloader___ToolContext___error_t)CALL(variable[3],COLOR_mmloader___ToolContext___error))(variable[3], variable[4]) /*ToolContext::error*/;
+      CALL_mmloader___ToolContext___error(variable[3])(variable[3], variable[4]) /*ToolContext::error*/;
       variable[3] = variable[0];
       exit(UNTAG_Int( TAG_Int(1)));
     }
   }
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((nitc___NitCompiler___opt_bindir_t)CALL(variable[3],COLOR_nitc___NitCompiler___opt_bindir))(variable[3]) /*NitCompiler::opt_bindir*/;
-  variable[3] = ((opts___Option___value_t)CALL(variable[3],COLOR_opts___Option___value))(variable[3]) /*Option::value*/;
-  ((compiling_base___ToolContext___bindir__eq_t)CALL(variable[2],COLOR_compiling_base___ToolContext___bindir__eq))(variable[2], variable[3]) /*ToolContext::bindir=*/;
+  variable[3] = CALL_nitc___NitCompiler___opt_bindir(variable[3])(variable[3]) /*NitCompiler::opt_bindir*/;
+  variable[3] = CALL_opts___Option___value(variable[3])(variable[3]) /*Option::value*/;
+  CALL_compiling_base___ToolContext___bindir__eq(variable[2])(variable[2], variable[3]) /*ToolContext::bindir=*/;
   variable[2] = variable[0];
-  variable[2] = ((compiling_base___ToolContext___bindir_t)CALL(variable[2],COLOR_compiling_base___ToolContext___bindir))(variable[2]) /*ToolContext::bindir*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
+  variable[2] = CALL_compiling_base___ToolContext___bindir(variable[2])(variable[2]) /*ToolContext::bindir*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*String::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     if (once_bool_3) variable[3] = once_value_3;
     else {
       variable[3] = NEW_String_string___String___with_native(BOX_NativeString("NIT_DIR"), TAG_Int(7)); /*new String*/
-      variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
-      variable[3] = ((environ___Symbol___environ_t)CALL(variable[3],COLOR_environ___Symbol___environ))(variable[3]) /*Symbol::environ*/;
+      variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
+      variable[3] = CALL_environ___Symbol___environ(variable[3])(variable[3]) /*Symbol::environ*/;
       once_value_3 = variable[3];
       once_bool_3 = true;
     }
     variable[2] = variable[3];
-    variable[3] = ((array___AbstractArray___is_empty_t)CALL( variable[2] /*dir*/,COLOR_abstract_collection___Collection___is_empty))( variable[2] /*dir*/) /*AbstractArray::is_empty*/;
+    variable[3] = CALL_abstract_collection___Collection___is_empty( variable[2] /*dir*/)( variable[2] /*dir*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[3])) { /*if*/
-      variable[4] = NEW_String_string___String___init(); /*new String*/
+      variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[6] = variable[5];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
       variable[7] = variable[0];
       variable[7] = (G_sys);
-      variable[7] = ((string___Sys___program_name_t)CALL(variable[7],COLOR_string___Sys___program_name))(variable[7]) /*Sys::program_name*/;
-      variable[7] = ((file___String___dirname_t)CALL(variable[7],COLOR_file___String___dirname))(variable[7]) /*String::dirname*/;
+      variable[7] = CALL_string___Sys___program_name(variable[7])(variable[7]) /*Sys::program_name*/;
+      variable[7] = CALL_file___String___dirname(variable[7])(variable[7]) /*String::dirname*/;
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("/../bin"), TAG_Int(7)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+      variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
       variable[3] = variable[4];
-      variable[4] = ((file___String___file_exists_t)CALL( variable[3] /*dir*/,COLOR_file___String___file_exists))( variable[3] /*dir*/) /*String::file_exists*/;
+      variable[4] = CALL_file___String___file_exists( variable[3] /*dir*/)( variable[3] /*dir*/) /*String::file_exists*/;
       if (UNTAG_Bool(variable[4])) { /*if*/
         variable[4] = variable[0];
-        ((compiling_base___ToolContext___bindir__eq_t)CALL(variable[4],COLOR_compiling_base___ToolContext___bindir__eq))(variable[4],  variable[3] /*dir*/) /*ToolContext::bindir=*/;
+        CALL_compiling_base___ToolContext___bindir__eq(variable[4])(variable[4],  variable[3] /*dir*/) /*ToolContext::bindir=*/;
       }
     } else { /*if*/
-      variable[3] = NEW_String_string___String___init(); /*new String*/
+      variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[5] = variable[4];
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
       variable[6] =  variable[2] /*dir*/;
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("/bin"), TAG_Int(4)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
+      variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
       variable[2] = variable[3] /*dir=*/;
-      variable[3] = ((file___String___file_exists_t)CALL( variable[2] /*dir*/,COLOR_file___String___file_exists))( variable[2] /*dir*/) /*String::file_exists*/;
+      variable[3] = CALL_file___String___file_exists( variable[2] /*dir*/)( variable[2] /*dir*/) /*String::file_exists*/;
       if (UNTAG_Bool(variable[3])) { /*if*/
         variable[3] = variable[0];
-        ((compiling_base___ToolContext___bindir__eq_t)CALL(variable[3],COLOR_compiling_base___ToolContext___bindir__eq))(variable[3],  variable[2] /*dir*/) /*ToolContext::bindir=*/;
+        CALL_compiling_base___ToolContext___bindir__eq(variable[3])(variable[3],  variable[2] /*dir*/) /*ToolContext::bindir=*/;
       }
     }
     variable[3] = variable[0];
-    variable[3] = ((compiling_base___ToolContext___bindir_t)CALL(variable[3],COLOR_compiling_base___ToolContext___bindir))(variable[3]) /*ToolContext::bindir*/;
-    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*String::==*/)));
+    variable[3] = CALL_compiling_base___ToolContext___bindir(variable[3])(variable[3]) /*ToolContext::bindir*/;
+    variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*String::==*/)));
     if (UNTAG_Bool(variable[3])) { /*if*/
       variable[3] = variable[0];
       variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Error: Cannot locate NIT tools directory. Uses --bindir or envvar NIT_DIR."), TAG_Int(74)); /*new String*/
-      ((mmloader___ToolContext___error_t)CALL(variable[3],COLOR_mmloader___ToolContext___error))(variable[3], variable[4]) /*ToolContext::error*/;
+      CALL_mmloader___ToolContext___error(variable[3])(variable[3], variable[4]) /*ToolContext::error*/;
       variable[3] = variable[0];
       exit(UNTAG_Int( TAG_Int(1)));
     }
@@ -225,25 +224,25 @@ void nitc___NitCompiler___process_options(val_t  self) {
   return;
 }
 void nitc___NitCompiler___perform_work(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 97, LOCATE_nitc___NitCompiler___perform_work};
+  struct trace_t trace = {NULL, NULL, 95, LOCATE_nitc___NitCompiler___perform_work};
   val_t variable[7];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_nitc;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*mods*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*mods*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*mods*/)( variable[1] /*mods*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*mod*/==NIT_NULL) || VAL_ISA( variable[5] /*mod*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
-    if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_nitc___NitCompiler___perform_work, LOCATE_nitc, 100); nit_exit(1);}
+    if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_nitc___NitCompiler___perform_work, LOCATE_nitc, 98); nit_exit(1);}
     variable[6] = variable[0];
-    ((compiling___MMSrcModule___compile_prog_to_c_t)CALL( variable[5] /*mod*/,COLOR_compiling___MMSrcModule___compile_prog_to_c))( variable[5] /*mod*/, variable[6]) /*MMSrcModule::compile_prog_to_c*/;
+    CALL_compiling___MMSrcModule___compile_prog_to_c( variable[5] /*mod*/)( variable[5] /*mod*/, variable[6]) /*MMSrcModule::compile_prog_to_c*/;
     continue_5: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_5: while(0);
   return_label4: while(false);
@@ -277,17 +276,8 @@ val_t nitc___NitCompiler___opt_no_cc(val_t  self) {
   tracehead = trace.prev;
   return ATTR_nitc___NitCompiler____opt_no_cc( self) /*NitCompiler::_opt_no_cc*/;
 }
-val_t nitc___NitCompiler___opt_attr_sim(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 29, LOCATE_nitc___NitCompiler___opt_attr_sim};
-  val_t *variable = NULL;
-  void **closurevariable = NULL;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_nitc;
-  tracehead = trace.prev;
-  return ATTR_nitc___NitCompiler____opt_attr_sim( self) /*NitCompiler::_opt_attr_sim*/;
-}
 val_t nitc___NitCompiler___opt_global(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 30, LOCATE_nitc___NitCompiler___opt_global};
+  struct trace_t trace = {NULL, NULL, 29, LOCATE_nitc___NitCompiler___opt_global};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -296,7 +286,7 @@ val_t nitc___NitCompiler___opt_global(val_t  self) {
   return ATTR_nitc___NitCompiler____opt_global( self) /*NitCompiler::_opt_global*/;
 }
 val_t nitc___NitCompiler___opt_clibdir(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 31, LOCATE_nitc___NitCompiler___opt_clibdir};
+  struct trace_t trace = {NULL, NULL, 30, LOCATE_nitc___NitCompiler___opt_clibdir};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -305,7 +295,7 @@ val_t nitc___NitCompiler___opt_clibdir(val_t  self) {
   return ATTR_nitc___NitCompiler____opt_clibdir( self) /*NitCompiler::_opt_clibdir*/;
 }
 val_t nitc___NitCompiler___opt_bindir(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 32, LOCATE_nitc___NitCompiler___opt_bindir};
+  struct trace_t trace = {NULL, NULL, 31, LOCATE_nitc___NitCompiler___opt_bindir};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -314,7 +304,7 @@ val_t nitc___NitCompiler___opt_bindir(val_t  self) {
   return ATTR_nitc___NitCompiler____opt_bindir( self) /*NitCompiler::_opt_bindir*/;
 }
 val_t nitc___NitCompiler___opt_compdir(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 33, LOCATE_nitc___NitCompiler___opt_compdir};
+  struct trace_t trace = {NULL, NULL, 32, LOCATE_nitc___NitCompiler___opt_compdir};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -323,7 +313,7 @@ val_t nitc___NitCompiler___opt_compdir(val_t  self) {
   return ATTR_nitc___NitCompiler____opt_compdir( self) /*NitCompiler::_opt_compdir*/;
 }
 val_t nitc___NitCompiler___opt_extension_prefix(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 34, LOCATE_nitc___NitCompiler___opt_extension_prefix};
+  struct trace_t trace = {NULL, NULL, 33, LOCATE_nitc___NitCompiler___opt_extension_prefix};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -332,52 +322,49 @@ val_t nitc___NitCompiler___opt_extension_prefix(val_t  self) {
   return ATTR_nitc___NitCompiler____opt_extension_prefix( self) /*NitCompiler::_opt_extension_prefix*/;
 }
 void nitc___NitCompiler___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 36, LOCATE_nitc___NitCompiler___init};
-  val_t variable[13];
+  struct trace_t trace = {NULL, NULL, 35, LOCATE_nitc___NitCompiler___init};
+  val_t variable[12];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_nitc;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_NitCompiler].i]) return;
-  ((abstracttool___AbstractCompiler___init_t)CALL(variable[0],COLOR_abstracttool___AbstractCompiler___init))(variable[0], init_table /*YYY*/) /*AbstractCompiler::init*/;
+  CALL_abstracttool___AbstractCompiler___init(variable[0])(variable[0], init_table /*YYY*/) /*AbstractCompiler::init*/;
   variable[2] = variable[0];
-  variable[2] = ((mmloader___ToolContext___option_context_t)CALL(variable[2],COLOR_mmloader___ToolContext___option_context))(variable[2]) /*ToolContext::option_context*/;
-  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Option]*/
+  variable[2] = CALL_mmloader___ToolContext___option_context(variable[2])(variable[2]) /*ToolContext::option_context*/;
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Option]*/
   variable[4] = variable[0];
-  variable[4] = ((nitc___NitCompiler___opt_output_t)CALL(variable[4],COLOR_nitc___NitCompiler___opt_output))(variable[4]) /*NitCompiler::opt_output*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+  variable[4] = CALL_nitc___NitCompiler___opt_output(variable[4])(variable[4]) /*NitCompiler::opt_output*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((nitc___NitCompiler___opt_boost_t)CALL(variable[5],COLOR_nitc___NitCompiler___opt_boost))(variable[5]) /*NitCompiler::opt_boost*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[5]) /*AbstractArray::add*/;
+  variable[5] = CALL_nitc___NitCompiler___opt_boost(variable[5])(variable[5]) /*NitCompiler::opt_boost*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = variable[0];
-  variable[6] = ((nitc___NitCompiler___opt_no_cc_t)CALL(variable[6],COLOR_nitc___NitCompiler___opt_no_cc))(variable[6]) /*NitCompiler::opt_no_cc*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[6]) /*AbstractArray::add*/;
+  variable[6] = CALL_nitc___NitCompiler___opt_no_cc(variable[6])(variable[6]) /*NitCompiler::opt_no_cc*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
-  variable[7] = ((nitc___NitCompiler___opt_attr_sim_t)CALL(variable[7],COLOR_nitc___NitCompiler___opt_attr_sim))(variable[7]) /*NitCompiler::opt_attr_sim*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[7]) /*AbstractArray::add*/;
+  variable[7] = CALL_nitc___NitCompiler___opt_global(variable[7])(variable[7]) /*NitCompiler::opt_global*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((nitc___NitCompiler___opt_global_t)CALL(variable[8],COLOR_nitc___NitCompiler___opt_global))(variable[8]) /*NitCompiler::opt_global*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[8]) /*AbstractArray::add*/;
+  variable[8] = CALL_nitc___NitCompiler___opt_clibdir(variable[8])(variable[8]) /*NitCompiler::opt_clibdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
-  variable[9] = ((nitc___NitCompiler___opt_clibdir_t)CALL(variable[9],COLOR_nitc___NitCompiler___opt_clibdir))(variable[9]) /*NitCompiler::opt_clibdir*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[9]) /*AbstractArray::add*/;
+  variable[9] = CALL_nitc___NitCompiler___opt_bindir(variable[9])(variable[9]) /*NitCompiler::opt_bindir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] = variable[0];
-  variable[10] = ((nitc___NitCompiler___opt_bindir_t)CALL(variable[10],COLOR_nitc___NitCompiler___opt_bindir))(variable[10]) /*NitCompiler::opt_bindir*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[10]) /*AbstractArray::add*/;
+  variable[10] = CALL_nitc___NitCompiler___opt_compdir(variable[10])(variable[10]) /*NitCompiler::opt_compdir*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
   variable[11] = variable[0];
-  variable[11] = ((nitc___NitCompiler___opt_compdir_t)CALL(variable[11],COLOR_nitc___NitCompiler___opt_compdir))(variable[11]) /*NitCompiler::opt_compdir*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[11]) /*AbstractArray::add*/;
-  variable[12] = variable[0];
-  variable[12] = ((nitc___NitCompiler___opt_extension_prefix_t)CALL(variable[12],COLOR_nitc___NitCompiler___opt_extension_prefix))(variable[12]) /*NitCompiler::opt_extension_prefix*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[12]) /*AbstractArray::add*/;
-  ((opts___OptionContext___add_option_t)CALL(variable[2],COLOR_opts___OptionContext___add_option))(variable[2], variable[3]) /*OptionContext::add_option*/;
+  variable[11] = CALL_nitc___NitCompiler___opt_extension_prefix(variable[11])(variable[11]) /*NitCompiler::opt_extension_prefix*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
+  CALL_opts___OptionContext___add_option(variable[2])(variable[2], variable[3]) /*OptionContext::add_option*/;
   return_label6: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_NitCompiler].i] = 1;
   tracehead = trace.prev;
   return;
 }
 void nitc___Sys___main(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 107, LOCATE_nitc___Sys___main};
+  struct trace_t trace = {NULL, NULL, 105, LOCATE_nitc___Sys___main};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -385,7 +372,7 @@ void nitc___Sys___main(val_t  self) {
   variable[0] =  self;
   variable[3] = NEW_NitCompiler_nitc___NitCompiler___init(); /*new NitCompiler*/
   variable[2] = variable[3];
-  ((abstracttool___AbstractCompiler___exec_cmd_line_t)CALL( variable[2] /*c*/,COLOR_abstracttool___AbstractCompiler___exec_cmd_line))( variable[2] /*c*/) /*AbstractCompiler::exec_cmd_line*/;
+  CALL_abstracttool___AbstractCompiler___exec_cmd_line( variable[2] /*c*/)( variable[2] /*c*/) /*AbstractCompiler::exec_cmd_line*/;
   return_label7: while(false);
   tracehead = trace.prev;
   return;
index 16bbacc..9b4e5fe 100644 (file)
@@ -8,68 +8,54 @@
 extern const classtable_elt_t VFT_NitCompiler[];
 extern const char *LOCATE_nitc;
 extern const int SFT_nitc[];
-#define ID_NitCompiler SFT_nitc[0]
-#define COLOR_NitCompiler SFT_nitc[1]
-#define COLOR_nitc___NitCompiler____opt_output SFT_nitc[2]
-#define COLOR_nitc___NitCompiler____opt_boost SFT_nitc[3]
-#define COLOR_nitc___NitCompiler____opt_no_cc SFT_nitc[4]
-#define COLOR_nitc___NitCompiler____opt_attr_sim SFT_nitc[5]
-#define COLOR_nitc___NitCompiler____opt_global SFT_nitc[6]
-#define COLOR_nitc___NitCompiler____opt_clibdir SFT_nitc[7]
-#define COLOR_nitc___NitCompiler____opt_bindir SFT_nitc[8]
-#define COLOR_nitc___NitCompiler____opt_compdir SFT_nitc[9]
-#define COLOR_nitc___NitCompiler____opt_extension_prefix SFT_nitc[10]
-#define INIT_TABLE_POS_NitCompiler SFT_nitc[11]
-#define COLOR_nitc___NitCompiler___opt_output SFT_nitc[12]
-#define COLOR_nitc___NitCompiler___opt_boost SFT_nitc[13]
-#define COLOR_nitc___NitCompiler___opt_no_cc SFT_nitc[14]
-#define COLOR_nitc___NitCompiler___opt_attr_sim SFT_nitc[15]
-#define COLOR_nitc___NitCompiler___opt_global SFT_nitc[16]
-#define COLOR_nitc___NitCompiler___opt_clibdir SFT_nitc[17]
-#define COLOR_nitc___NitCompiler___opt_bindir SFT_nitc[18]
-#define COLOR_nitc___NitCompiler___opt_compdir SFT_nitc[19]
-#define COLOR_nitc___NitCompiler___opt_extension_prefix SFT_nitc[20]
-#define COLOR_nitc___NitCompiler___init SFT_nitc[21]
-#define COLOR_SUPER_nitc___NitCompiler___process_options SFT_nitc[22]
+#define ID_NitCompiler (SFT_nitc[0])
+#define COLOR_NitCompiler (SFT_nitc[1])
+#define ATTR_nitc___NitCompiler____opt_output(recv) ATTR(recv, (SFT_nitc[2] + 0))
+#define ATTR_nitc___NitCompiler____opt_boost(recv) ATTR(recv, (SFT_nitc[2] + 1))
+#define ATTR_nitc___NitCompiler____opt_no_cc(recv) ATTR(recv, (SFT_nitc[2] + 2))
+#define ATTR_nitc___NitCompiler____opt_global(recv) ATTR(recv, (SFT_nitc[2] + 3))
+#define ATTR_nitc___NitCompiler____opt_clibdir(recv) ATTR(recv, (SFT_nitc[2] + 4))
+#define ATTR_nitc___NitCompiler____opt_bindir(recv) ATTR(recv, (SFT_nitc[2] + 5))
+#define ATTR_nitc___NitCompiler____opt_compdir(recv) ATTR(recv, (SFT_nitc[2] + 6))
+#define ATTR_nitc___NitCompiler____opt_extension_prefix(recv) ATTR(recv, (SFT_nitc[2] + 7))
+#define INIT_TABLE_POS_NitCompiler (SFT_nitc[3] + 0)
+#define CALL_nitc___NitCompiler___opt_output(recv) ((nitc___NitCompiler___opt_output_t)CALL((recv), (SFT_nitc[3] + 1)))
+#define CALL_nitc___NitCompiler___opt_boost(recv) ((nitc___NitCompiler___opt_boost_t)CALL((recv), (SFT_nitc[3] + 2)))
+#define CALL_nitc___NitCompiler___opt_no_cc(recv) ((nitc___NitCompiler___opt_no_cc_t)CALL((recv), (SFT_nitc[3] + 3)))
+#define CALL_nitc___NitCompiler___opt_global(recv) ((nitc___NitCompiler___opt_global_t)CALL((recv), (SFT_nitc[3] + 4)))
+#define CALL_nitc___NitCompiler___opt_clibdir(recv) ((nitc___NitCompiler___opt_clibdir_t)CALL((recv), (SFT_nitc[3] + 5)))
+#define CALL_nitc___NitCompiler___opt_bindir(recv) ((nitc___NitCompiler___opt_bindir_t)CALL((recv), (SFT_nitc[3] + 6)))
+#define CALL_nitc___NitCompiler___opt_compdir(recv) ((nitc___NitCompiler___opt_compdir_t)CALL((recv), (SFT_nitc[3] + 7)))
+#define CALL_nitc___NitCompiler___opt_extension_prefix(recv) ((nitc___NitCompiler___opt_extension_prefix_t)CALL((recv), (SFT_nitc[3] + 8)))
+#define CALL_nitc___NitCompiler___init(recv) ((nitc___NitCompiler___init_t)CALL((recv), (SFT_nitc[3] + 9)))
+#define CALL_SUPER_nitc___NitCompiler___process_options(recv) ((nitc___NitCompiler___process_options_t)CALL((recv), (SFT_nitc[3] + 10)))
 typedef void (* nitc___NitCompiler___process_options_t)(val_t  self);
 void nitc___NitCompiler___process_options(val_t  self);
 #define LOCATE_nitc___NitCompiler___process_options "nitc::NitCompiler::(mmloader::ToolContext::process_options)"
 typedef void (* nitc___NitCompiler___perform_work_t)(val_t  self, val_t  param0);
 void nitc___NitCompiler___perform_work(val_t  self, val_t  param0);
 #define LOCATE_nitc___NitCompiler___perform_work "nitc::NitCompiler::(abstracttool::AbstractCompiler::perform_work)"
-#define ATTR_nitc___NitCompiler____opt_output(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_output)
 typedef val_t (* nitc___NitCompiler___opt_output_t)(val_t  self);
 val_t nitc___NitCompiler___opt_output(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_output "nitc::NitCompiler::opt_output"
-#define ATTR_nitc___NitCompiler____opt_boost(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_boost)
 typedef val_t (* nitc___NitCompiler___opt_boost_t)(val_t  self);
 val_t nitc___NitCompiler___opt_boost(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_boost "nitc::NitCompiler::opt_boost"
-#define ATTR_nitc___NitCompiler____opt_no_cc(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_no_cc)
 typedef val_t (* nitc___NitCompiler___opt_no_cc_t)(val_t  self);
 val_t nitc___NitCompiler___opt_no_cc(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_no_cc "nitc::NitCompiler::opt_no_cc"
-#define ATTR_nitc___NitCompiler____opt_attr_sim(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_attr_sim)
-typedef val_t (* nitc___NitCompiler___opt_attr_sim_t)(val_t  self);
-val_t nitc___NitCompiler___opt_attr_sim(val_t  self);
-#define LOCATE_nitc___NitCompiler___opt_attr_sim "nitc::NitCompiler::opt_attr_sim"
-#define ATTR_nitc___NitCompiler____opt_global(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_global)
 typedef val_t (* nitc___NitCompiler___opt_global_t)(val_t  self);
 val_t nitc___NitCompiler___opt_global(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_global "nitc::NitCompiler::opt_global"
-#define ATTR_nitc___NitCompiler____opt_clibdir(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_clibdir)
 typedef val_t (* nitc___NitCompiler___opt_clibdir_t)(val_t  self);
 val_t nitc___NitCompiler___opt_clibdir(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_clibdir "nitc::NitCompiler::opt_clibdir"
-#define ATTR_nitc___NitCompiler____opt_bindir(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_bindir)
 typedef val_t (* nitc___NitCompiler___opt_bindir_t)(val_t  self);
 val_t nitc___NitCompiler___opt_bindir(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_bindir "nitc::NitCompiler::opt_bindir"
-#define ATTR_nitc___NitCompiler____opt_compdir(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_compdir)
 typedef val_t (* nitc___NitCompiler___opt_compdir_t)(val_t  self);
 val_t nitc___NitCompiler___opt_compdir(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_compdir "nitc::NitCompiler::opt_compdir"
-#define ATTR_nitc___NitCompiler____opt_extension_prefix(recv) ATTR(recv, COLOR_nitc___NitCompiler____opt_extension_prefix)
 typedef val_t (* nitc___NitCompiler___opt_extension_prefix_t)(val_t  self);
 val_t nitc___NitCompiler___opt_extension_prefix(val_t  self);
 #define LOCATE_nitc___NitCompiler___opt_extension_prefix "nitc::NitCompiler::opt_extension_prefix"
index 45bcdce..710f016 100644 (file)
 #include "nitc._sep.h"
 #include <nit_common.h>
 const char *LOCATE_abstracttool = "./abstracttool.nit";
-const int SFT_abstracttool[9] = {
-  3607 /* Id of AbstractCompiler */,
+const int SFT_abstracttool[5] = {
+  3619 /* Id of AbstractCompiler */,
   4 /* Color of AbstractCompiler */,
-  86 /* Color of AbstractCompiler */,
-  87 /* Property init */,
-  88 /* Property exec_cmd_line */,
-  89 /* Property perform_work */,
-  90 /* Property dump_context_info */,
-  40 /* Property dump_module_info */,
-  40 /* Property dump_properties */,
+  84 /* Group of ? */,
+  40 /* Group of ? */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_syntax = "./syntax//syntax.nit";
-const int SFT_syntax[6] = {
-  223 /* Id of SrcModuleLoader */,
+const int SFT_syntax[4] = {
+  215 /* Id of SrcModuleLoader */,
   3 /* Color of SrcModuleLoader */,
-  49 /* Color of SrcModuleLoader */,
-  50 /* Property init */,
-  84 /* Property process_supermodules */,
-  85 /* Property process_syntax */,
+  49 /* Group of ? */,
+  84 /* Group of ? */,
 };
 const char *LOCATE_mmbuilder = "./syntax//mmbuilder.nit";
-const int SFT_mmbuilder[146] = {
-  3019 /* Id of CSHSorter */,
+const int SFT_mmbuilder[73] = {
+  3011 /* Id of CSHSorter */,
   3 /* Color of CSHSorter */,
-  47 /* Color of CSHSorter */,
-  48 /* Property init */,
-  86 /* Property do_mmbuilder */,
-  41 /* Property accept_class_visitor */,
-  42 /* Property accept_properties_visitor */,
-  109 /* Property process_default_constructors */,
-  110 /* Property add_src_local_property */,
-  43 /* Property accept_property_visitor */,
-  10 /* Property _super_init */,
-  72 /* Property super_init */,
-  2919 /* Id of MMSrcAncestor */,
+  47 /* Group of ? */,
+  86 /* Group of ? */,
+  41 /* Group of ? */,
+  108 /* Group of ? */,
+  43 /* Group of ? */,
+  10 /* Group of ? */,
+  72 /* Group of ? */,
+  2915 /* Id of MMSrcAncestor */,
   3 /* Color of MMSrcAncestor */,
-  3 /* Property _node */,
-  4 /* Property _local_class */,
-  50 /* Color of MMSrcAncestor */,
-  51 /* Property node */,
-  52 /* Property init */,
-  3595 /* Id of ClassBuilderVisitor */,
+  3 /* Group of ? */,
+  50 /* Group of ? */,
+  3607 /* Id of ClassBuilderVisitor */,
   4 /* Color of ClassBuilderVisitor */,
-  5 /* Property _local_class_arity */,
-  6 /* Property _formals */,
-  68 /* Color of ClassBuilderVisitor */,
-  69 /* Property local_class_arity */,
-  70 /* Property local_class_arity= */,
-  71 /* Property formals */,
-  72 /* Property formals= */,
-  73 /* Property init */,
-  3591 /* Id of ClassSpecializationBuilderVisitor */,
+  5 /* Group of ? */,
+  69 /* Group of ? */,
+  3603 /* Id of ClassSpecializationBuilderVisitor */,
   4 /* Color of ClassSpecializationBuilderVisitor */,
-  68 /* Color of ClassSpecializationBuilderVisitor */,
-  69 /* Property init */,
-  3599 /* Id of ClassAncestorBuilder */,
+  69 /* Group of ? */,
+  3611 /* Id of ClassAncestorBuilder */,
   4 /* Color of ClassAncestorBuilder */,
-  68 /* Color of ClassAncestorBuilder */,
-  69 /* Property init */,
-  3587 /* Id of ClassVerifierVisitor */,
+  69 /* Group of ? */,
+  3599 /* Id of ClassVerifierVisitor */,
   4 /* Color of ClassVerifierVisitor */,
-  68 /* Color of ClassVerifierVisitor */,
-  69 /* Property init */,
-  3403 /* Id of PropertyBuilderVisitor */,
+  69 /* Group of ? */,
+  3411 /* Id of PropertyBuilderVisitor */,
   4 /* Color of PropertyBuilderVisitor */,
-  68 /* Color of PropertyBuilderVisitor */,
-  69 /* Property init */,
-  3399 /* Id of PropertyVerifierVisitor */,
+  69 /* Group of ? */,
+  3407 /* Id of PropertyVerifierVisitor */,
   4 /* Color of PropertyVerifierVisitor */,
-  5 /* Property _signature_builder */,
-  68 /* Color of PropertyVerifierVisitor */,
-  69 /* Property signature_builder */,
-  70 /* Property signature_builder= */,
-  71 /* Property init */,
-  39 /* Id of SignatureBuilder */,
+  5 /* Group of ? */,
+  69 /* Group of ? */,
+  35 /* Id of SignatureBuilder */,
   2 /* Color of SignatureBuilder */,
-  1 /* Property _params */,
-  2 /* Property _untyped_params */,
-  3 /* Property _vararg_rank */,
-  4 /* Property _closure_decls */,
-  5 /* Property _signature */,
-  40 /* Color of SignatureBuilder */,
-  41 /* Property params */,
-  42 /* Property params= */,
-  43 /* Property untyped_params */,
-  44 /* Property untyped_params= */,
-  45 /* Property vararg_rank */,
-  46 /* Property vararg_rank= */,
-  47 /* Property closure_decls */,
-  48 /* Property closure_decls= */,
-  49 /* Property signature */,
-  50 /* Property signature= */,
-  51 /* Property init */,
-  40 /* Property accept_class_builder */,
-  41 /* Property accept_class_specialization_builder */,
-  42 /* Property accept_class_ancestor_builder */,
-  43 /* Property accept_class_verifier */,
-  44 /* Property accept_property_builder */,
-  45 /* Property accept_property_verifier */,
-  69 /* Property import_super_modules */,
-  68 /* Property module_name */,
-  69 /* Property visibility_level */,
-  68 /* Property level */,
-  4 /* Property _local_class */,
-  68 /* Property name */,
-  69 /* Property arity */,
-  70 /* Property visibility_level */,
-  71 /* Property accept_class_builder */,
-  72 /* Property accept_abs_syntax_visitor */,
-  68 /* Property is_interface */,
-  69 /* Property is_universal */,
-  70 /* Property is_abstract */,
-  76 /* Property accept_class_verifier */,
-  3655 /* Id of MMSrcTypeFormalParameter */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  40 /* Group of ? */,
+  69 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  4 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  76 /* Group of ? */,
+  3663 /* Id of MMSrcTypeFormalParameter */,
   5 /* Color of MMSrcTypeFormalParameter */,
-  5 /* Property _node */,
-  68 /* Color of MMSrcTypeFormalParameter */,
-  69 /* Property node */,
-  70 /* Property init */,
-  4 /* Property _formal */,
-  69 /* Property accept_class_builder */,
-  70 /* Property accept_class_verifier */,
-  4 /* Property _ancestor */,
-  69 /* Property ancestor */,
-  70 /* Property accept_class_specialization_builder */,
-  71 /* Property accept_class_ancestor_builder */,
-  72 /* Property accept_class_verifier */,
-  68 /* Property process_and_check */,
-  69 /* Property do_and_check_intro */,
-  70 /* Property inherit_signature */,
-  71 /* Property do_and_check_redef */,
-  5 /* Property _readmethod */,
-  6 /* Property _writemethod */,
-  7 /* Property _prop */,
-  75 /* Property accept_property_builder */,
-  76 /* Property accept_property_verifier */,
-  77 /* Property accept_abs_syntax_visitor */,
-  5 /* Property _name */,
-  6 /* Property _method */,
-  76 /* Property name */,
-  77 /* Property accept_property_builder */,
-  78 /* Property accept_property_verifier */,
-  79 /* Property accept_abs_syntax_visitor */,
-  5 /* Property _prop */,
-  75 /* Property accept_property_builder */,
-  76 /* Property accept_property_verifier */,
-  77 /* Property accept_abs_syntax_visitor */,
-  2891 /* Id of MethidAccumulator */,
+  5 /* Group of ? */,
+  68 /* Group of ? */,
+  4 /* Group of ? */,
+  69 /* Group of ? */,
+  4 /* Group of ? */,
+  69 /* Group of ? */,
+  68 /* Group of ? */,
+  5 /* Group of ? */,
+  75 /* Group of ? */,
+  5 /* Group of ? */,
+  76 /* Group of ? */,
+  5 /* Group of ? */,
+  75 /* Group of ? */,
+  2887 /* Id of MethidAccumulator */,
   3 /* Color of MethidAccumulator */,
-  1 /* Property _name */,
-  43 /* Color of MethidAccumulator */,
-  44 /* Property name */,
-  45 /* Property init */,
-  4 /* Property _name */,
-  68 /* Property name */,
-  69 /* Property accept_property_builder */,
-  69 /* Property check_visibility */,
-  71 /* Property accept_property_verifier */,
-  4 /* Property _position */,
-  5 /* Property _variable */,
-  6 /* Property _stype */,
-  68 /* Property stype */,
-  69 /* Property stype= */,
-  70 /* Property accept_property_verifier */,
-  71 /* Property is_vararg */,
-  4 /* Property _variable */,
-  71 /* Property accept_property_verifier */,
-  68 /* Property check_visibility */,
+  1 /* Group of ? */,
+  43 /* Group of ? */,
+  4 /* Group of ? */,
+  68 /* Group of ? */,
+  69 /* Group of ? */,
+  71 /* Group of ? */,
+  4 /* Group of ? */,
+  68 /* Group of ? */,
+  4 /* Group of ? */,
+  71 /* Group of ? */,
+  68 /* Group of ? */,
 };
 const char *LOCATE_syntax_base = "./syntax//syntax_base.nit";
-const int SFT_syntax_base[164] = {
-  2915 /* Id of MMSrcModule */,
+const int SFT_syntax_base[85] = {
+  2911 /* Id of MMSrcModule */,
   3 /* Color of MMSrcModule */,
-  19 /* Property _node */,
-  20 /* Property _src_local_classes */,
-  87 /* Color of MMSrcModule */,
-  88 /* Property node */,
-  89 /* Property src_local_classes */,
-  90 /* Property init */,
-  43 /* Property check_visibility */,
-  3539 /* Id of MMSrcLocalClass */,
+  19 /* Group of ? */,
+  87 /* Group of ? */,
+  43 /* Group of ? */,
+  3551 /* Id of MMSrcLocalClass */,
   4 /* Color of MMSrcLocalClass */,
-  23 /* Property _nodes */,
-  24 /* Property _formal_dict */,
-  25 /* Property _src_local_properties */,
-  111 /* Color of MMSrcLocalClass */,
-  112 /* Property nodes */,
-  113 /* Property formal_dict */,
-  114 /* Property formal_dict= */,
-  115 /* Property src_local_properties */,
-  116 /* Property init */,
-  45 /* Property check_visibility */,
-  44 /* Property node */,
-  45 /* Property is_init */,
-  3543 /* Id of MMSrcAttribute */,
+  22 /* Group of ? */,
+  110 /* Group of ? */,
+  42 /* Group of ? */,
+  44 /* Group of ? */,
+  3555 /* Id of MMSrcAttribute */,
   4 /* Color of MMSrcAttribute */,
-  9 /* Property _node */,
-  64 /* Color of MMSrcAttribute */,
-  65 /* Property init */,
-  3535 /* Id of MMSrcMethod */,
+  9 /* Group of ? */,
+  64 /* Group of ? */,
+  3547 /* Id of MMSrcMethod */,
   4 /* Color of MMSrcMethod */,
-  69 /* Color of MMSrcMethod */,
-  3663 /* Id of MMAttrImplementationMethod */,
+  69 /* Group of ? */,
+  3671 /* Id of MMAttrImplementationMethod */,
   5 /* Color of MMAttrImplementationMethod */,
-  9 /* Property _node */,
-  70 /* Color of MMAttrImplementationMethod */,
-  71 /* Property init */,
-  3999 /* Id of MMReadImplementationMethod */,
+  9 /* Group of ? */,
+  70 /* Group of ? */,
+  4007 /* Id of MMReadImplementationMethod */,
   6 /* Color of MMReadImplementationMethod */,
-  72 /* Color of MMReadImplementationMethod */,
-  73 /* Property init */,
-  3995 /* Id of MMWriteImplementationMethod */,
+  72 /* Group of ? */,
+  4003 /* Id of MMWriteImplementationMethod */,
   6 /* Color of MMWriteImplementationMethod */,
-  72 /* Color of MMWriteImplementationMethod */,
-  73 /* Property init */,
-  3659 /* Id of MMMethSrcMethod */,
+  72 /* Group of ? */,
+  3667 /* Id of MMMethSrcMethod */,
   5 /* Color of MMMethSrcMethod */,
-  9 /* Property _node */,
-  70 /* Color of MMMethSrcMethod */,
-  71 /* Property init */,
-  3531 /* Id of MMSrcTypeProperty */,
+  9 /* Group of ? */,
+  70 /* Group of ? */,
+  3543 /* Id of MMSrcTypeProperty */,
   4 /* Color of MMSrcTypeProperty */,
-  10 /* Property _node */,
-  65 /* Color of MMSrcTypeProperty */,
-  66 /* Property init */,
-  4003 /* Id of MMImplicitInit */,
+  10 /* Group of ? */,
+  65 /* Group of ? */,
+  4011 /* Id of MMImplicitInit */,
   6 /* Color of MMImplicitInit */,
-  11 /* Property _unassigned_attributes */,
-  12 /* Property _super_inits */,
-  73 /* Color of MMImplicitInit */,
-  74 /* Property unassigned_attributes */,
-  75 /* Property super_inits */,
-  76 /* Property init */,
+  11 /* Group of ? */,
+  73 /* Group of ? */,
   15 /* Id of Variable */,
   2 /* Color of Variable */,
-  1 /* Property _name */,
-  2 /* Property _decl */,
-  3 /* Property _stype */,
-  41 /* Color of Variable */,
-  42 /* Property name */,
-  43 /* Property decl */,
-  44 /* Property stype */,
-  45 /* Property stype= */,
-  46 /* Property kind */,
-  47 /* Property init */,
+  1 /* Group of ? */,
+  41 /* Group of ? */,
   195 /* Id of VarVariable */,
   3 /* Color of VarVariable */,
-  48 /* Color of VarVariable */,
-  49 /* Property init */,
-  2867 /* Id of ParamVariable */,
+  48 /* Group of ? */,
+  2859 /* Id of ParamVariable */,
   3 /* Color of ParamVariable */,
-  48 /* Color of ParamVariable */,
-  49 /* Property init */,
-  3027 /* Id of AutoVariable */,
+  48 /* Group of ? */,
+  3019 /* Id of AutoVariable */,
   3 /* Color of AutoVariable */,
-  48 /* Color of AutoVariable */,
-  49 /* Property init */,
-  3011 /* Id of ClosureVariable */,
+  48 /* Group of ? */,
+  3003 /* Id of ClosureVariable */,
   3 /* Color of ClosureVariable */,
-  5 /* Property _closure */,
-  50 /* Color of ClosureVariable */,
-  51 /* Property closure */,
-  52 /* Property init */,
-  3035 /* Id of AbsSyntaxVisitor */,
+  5 /* Group of ? */,
+  50 /* Group of ? */,
+  3031 /* Id of AbsSyntaxVisitor */,
   3 /* Color of AbsSyntaxVisitor */,
-  1 /* Property _module */,
-  2 /* Property _local_class */,
-  3 /* Property _local_property */,
-  4 /* Property _tc */,
-  43 /* Color of AbsSyntaxVisitor */,
-  44 /* Property type_bool */,
-  45 /* Property type_int */,
-  46 /* Property type_float */,
-  47 /* Property type_char */,
-  48 /* Property type_string */,
-  49 /* Property type_collection */,
-  50 /* Property type_array */,
-  51 /* Property type_discrete */,
-  52 /* Property type_range */,
-  53 /* Property type_none */,
-  54 /* Property module */,
-  55 /* Property module= */,
-  56 /* Property local_class */,
-  57 /* Property local_class= */,
-  58 /* Property local_property */,
-  59 /* Property local_property= */,
-  60 /* Property tc */,
-  61 /* Property error */,
-  62 /* Property warning */,
-  63 /* Property locate */,
-  64 /* Property check_conform */,
-  65 /* Property check_expr */,
-  66 /* Property check_conform_expr */,
-  67 /* Property init */,
-  46 /* Property accept_abs_syntax_visitor */,
-  2 /* Property _symbol */,
-  62 /* Property to_symbol */,
-  73 /* Property local_class */,
-  78 /* Property prop */,
-  79 /* Property readmethod */,
-  80 /* Property writemethod */,
-  80 /* Property method */,
-  81 /* Property self_var */,
-  78 /* Property prop */,
-  72 /* Property position */,
-  73 /* Property variable */,
-  69 /* Property variable */,
-  69 /* Property get_local_class */,
-  70 /* Property get_stype */,
-  71 /* Property get_unchecked_stype */,
-  72 /* Property check_conform */,
-  5 /* Property _stype_cache */,
-  6 /* Property _stype_cached */,
-  71 /* Property stype */,
-  6 /* Property _variable */,
-  78 /* Property variable */,
-  79 /* Property variable= */,
-  6 /* Property _variable */,
-  77 /* Property variable */,
-  78 /* Property variable= */,
-  6 /* Property _variable */,
-  77 /* Property variable */,
-  78 /* Property variable= */,
-  6 /* Property _variable */,
-  77 /* Property variable */,
-  78 /* Property variable= */,
-  18 /* Property _variable */,
-  118 /* Property variable */,
-  119 /* Property variable= */,
-  7 /* Property _closure */,
-  8 /* Property _variables */,
-  81 /* Property closure */,
-  82 /* Property closure= */,
-  83 /* Property variables */,
-  84 /* Property variables= */,
+  1 /* Group of ? */,
+  43 /* Group of ? */,
+  46 /* Group of ? */,
+  2 /* Group of ? */,
+  62 /* Group of ? */,
+  73 /* Group of ? */,
+  78 /* Group of ? */,
+  80 /* Group of ? */,
+  78 /* Group of ? */,
+  72 /* Group of ? */,
+  69 /* Group of ? */,
+  69 /* Group of ? */,
+  5 /* Group of ? */,
+  71 /* Group of ? */,
+  6 /* Group of ? */,
+  78 /* Group of ? */,
+  10 /* Group of ? */,
+  81 /* Group of ? */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  18 /* Group of ? */,
+  118 /* Group of ? */,
+  7 /* Group of ? */,
+  81 /* Group of ? */,
 };
 const char *LOCATE_parser = "./parser//parser.nit";
-const int SFT_parser[2651] = {
-  35 /* Id of State */,
+const int SFT_parser[1977] = {
+  31 /* Id of State */,
   2 /* Color of State */,
-  1 /* Property _state */,
-  2 /* Property _nodes */,
-  40 /* Color of State */,
-  41 /* Property state */,
-  42 /* Property state= */,
-  43 /* Property nodes */,
-  44 /* Property nodes= */,
-  45 /* Property init */,
-  2863 /* Id of Parser */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  2855 /* Id of Parser */,
   3 /* Color of Parser */,
-  3 /* Property _lexer */,
-  4 /* Property _stack */,
-  5 /* Property _stack_pos */,
-  6 /* Property _reduce_table */,
-  1347 /* Color of Parser */,
-  1348 /* Property init */,
-  1349 /* Property go_to */,
-  1350 /* Property push */,
-  1351 /* Property state */,
-  1352 /* Property pop */,
-  1353 /* Property parse */,
-  1354 /* Property build_reduce_table */,
-  227 /* Id of SearchTokensVisitor */,
+  3 /* Group of ? */,
+  1347 /* Group of ? */,
+  219 /* Id of SearchTokensVisitor */,
   3 /* Color of SearchTokensVisitor */,
-  1 /* Property _untokenned_nodes */,
-  2 /* Property _last_token */,
-  43 /* Color of SearchTokensVisitor */,
-  44 /* Property init */,
-  43 /* Id of ReduceAction */,
+  1 /* Group of ? */,
+  43 /* Group of ? */,
+  39 /* Id of ReduceAction */,
   2 /* Color of ReduceAction */,
-  40 /* Color of ReduceAction */,
-  41 /* Property action */,
-  42 /* Property init */,
-  2847 /* Id of ReduceAction0 */,
+  40 /* Group of ? */,
+  2839 /* Id of ReduceAction0 */,
   3 /* Color of ReduceAction0 */,
-  43 /* Color of ReduceAction0 */,
-  44 /* Property init */,
-  2843 /* Id of ReduceAction1 */,
+  43 /* Group of ? */,
+  2835 /* Id of ReduceAction1 */,
   3 /* Color of ReduceAction1 */,
-  43 /* Color of ReduceAction1 */,
-  44 /* Property init */,
-  2399 /* Id of ReduceAction2 */,
+  43 /* Group of ? */,
+  2391 /* Id of ReduceAction2 */,
   3 /* Color of ReduceAction2 */,
-  43 /* Color of ReduceAction2 */,
-  44 /* Property init */,
-  1955 /* Id of ReduceAction3 */,
+  43 /* Group of ? */,
+  1947 /* Id of ReduceAction3 */,
   3 /* Color of ReduceAction3 */,
-  43 /* Color of ReduceAction3 */,
-  44 /* Property init */,
-  1511 /* Id of ReduceAction4 */,
+  43 /* Group of ? */,
+  1503 /* Id of ReduceAction4 */,
   3 /* Color of ReduceAction4 */,
-  43 /* Color of ReduceAction4 */,
-  44 /* Property init */,
-  1067 /* Id of ReduceAction5 */,
+  43 /* Group of ? */,
+  1059 /* Id of ReduceAction5 */,
   3 /* Color of ReduceAction5 */,
-  43 /* Color of ReduceAction5 */,
-  44 /* Property init */,
-  623 /* Id of ReduceAction6 */,
+  43 /* Group of ? */,
+  615 /* Id of ReduceAction6 */,
   3 /* Color of ReduceAction6 */,
-  43 /* Color of ReduceAction6 */,
-  44 /* Property init */,
-  363 /* Id of ReduceAction7 */,
+  43 /* Group of ? */,
+  355 /* Id of ReduceAction7 */,
   3 /* Color of ReduceAction7 */,
-  43 /* Color of ReduceAction7 */,
-  44 /* Property init */,
-  319 /* Id of ReduceAction8 */,
+  43 /* Group of ? */,
+  311 /* Id of ReduceAction8 */,
   3 /* Color of ReduceAction8 */,
-  43 /* Color of ReduceAction8 */,
-  44 /* Property init */,
-  275 /* Id of ReduceAction9 */,
+  43 /* Group of ? */,
+  267 /* Id of ReduceAction9 */,
   3 /* Color of ReduceAction9 */,
-  43 /* Color of ReduceAction9 */,
-  44 /* Property init */,
-  2839 /* Id of ReduceAction10 */,
+  43 /* Group of ? */,
+  2831 /* Id of ReduceAction10 */,
   3 /* Color of ReduceAction10 */,
-  43 /* Color of ReduceAction10 */,
-  44 /* Property init */,
-  2795 /* Id of ReduceAction11 */,
+  43 /* Group of ? */,
+  2787 /* Id of ReduceAction11 */,
   3 /* Color of ReduceAction11 */,
-  43 /* Color of ReduceAction11 */,
-  44 /* Property init */,
-  2751 /* Id of ReduceAction12 */,
+  43 /* Group of ? */,
+  2743 /* Id of ReduceAction12 */,
   3 /* Color of ReduceAction12 */,
-  43 /* Color of ReduceAction12 */,
-  44 /* Property init */,
-  2707 /* Id of ReduceAction13 */,
+  43 /* Group of ? */,
+  2699 /* Id of ReduceAction13 */,
   3 /* Color of ReduceAction13 */,
-  43 /* Color of ReduceAction13 */,
-  44 /* Property init */,
-  2663 /* Id of ReduceAction14 */,
+  43 /* Group of ? */,
+  2655 /* Id of ReduceAction14 */,
   3 /* Color of ReduceAction14 */,
-  43 /* Color of ReduceAction14 */,
-  44 /* Property init */,
-  2619 /* Id of ReduceAction15 */,
+  43 /* Group of ? */,
+  2611 /* Id of ReduceAction15 */,
   3 /* Color of ReduceAction15 */,
-  43 /* Color of ReduceAction15 */,
-  44 /* Property init */,
-  2575 /* Id of ReduceAction16 */,
+  43 /* Group of ? */,
+  2567 /* Id of ReduceAction16 */,
   3 /* Color of ReduceAction16 */,
-  43 /* Color of ReduceAction16 */,
-  44 /* Property init */,
-  2531 /* Id of ReduceAction17 */,
+  43 /* Group of ? */,
+  2523 /* Id of ReduceAction17 */,
   3 /* Color of ReduceAction17 */,
-  43 /* Color of ReduceAction17 */,
-  44 /* Property init */,
-  2487 /* Id of ReduceAction18 */,
+  43 /* Group of ? */,
+  2479 /* Id of ReduceAction18 */,
   3 /* Color of ReduceAction18 */,
-  43 /* Color of ReduceAction18 */,
-  44 /* Property init */,
-  2443 /* Id of ReduceAction19 */,
+  43 /* Group of ? */,
+  2435 /* Id of ReduceAction19 */,
   3 /* Color of ReduceAction19 */,
-  43 /* Color of ReduceAction19 */,
-  44 /* Property init */,
-  2395 /* Id of ReduceAction20 */,
+  43 /* Group of ? */,
+  2387 /* Id of ReduceAction20 */,
   3 /* Color of ReduceAction20 */,
-  43 /* Color of ReduceAction20 */,
-  44 /* Property init */,
-  2351 /* Id of ReduceAction21 */,
+  43 /* Group of ? */,
+  2343 /* Id of ReduceAction21 */,
   3 /* Color of ReduceAction21 */,
-  43 /* Color of ReduceAction21 */,
-  44 /* Property init */,
-  2307 /* Id of ReduceAction22 */,
+  43 /* Group of ? */,
+  2299 /* Id of ReduceAction22 */,
   3 /* Color of ReduceAction22 */,
-  43 /* Color of ReduceAction22 */,
-  44 /* Property init */,
-  2263 /* Id of ReduceAction23 */,
+  43 /* Group of ? */,
+  2255 /* Id of ReduceAction23 */,
   3 /* Color of ReduceAction23 */,
-  43 /* Color of ReduceAction23 */,
-  44 /* Property init */,
-  2219 /* Id of ReduceAction24 */,
+  43 /* Group of ? */,
+  2211 /* Id of ReduceAction24 */,
   3 /* Color of ReduceAction24 */,
-  43 /* Color of ReduceAction24 */,
-  44 /* Property init */,
-  2175 /* Id of ReduceAction25 */,
+  43 /* Group of ? */,
+  2167 /* Id of ReduceAction25 */,
   3 /* Color of ReduceAction25 */,
-  43 /* Color of ReduceAction25 */,
-  44 /* Property init */,
-  2131 /* Id of ReduceAction26 */,
+  43 /* Group of ? */,
+  2123 /* Id of ReduceAction26 */,
   3 /* Color of ReduceAction26 */,
-  43 /* Color of ReduceAction26 */,
-  44 /* Property init */,
-  2087 /* Id of ReduceAction27 */,
+  43 /* Group of ? */,
+  2079 /* Id of ReduceAction27 */,
   3 /* Color of ReduceAction27 */,
-  43 /* Color of ReduceAction27 */,
-  44 /* Property init */,
-  2043 /* Id of ReduceAction28 */,
+  43 /* Group of ? */,
+  2035 /* Id of ReduceAction28 */,
   3 /* Color of ReduceAction28 */,
-  43 /* Color of ReduceAction28 */,
-  44 /* Property init */,
-  1999 /* Id of ReduceAction29 */,
+  43 /* Group of ? */,
+  1991 /* Id of ReduceAction29 */,
   3 /* Color of ReduceAction29 */,
-  43 /* Color of ReduceAction29 */,
-  44 /* Property init */,
-  1951 /* Id of ReduceAction30 */,
+  43 /* Group of ? */,
+  1943 /* Id of ReduceAction30 */,
   3 /* Color of ReduceAction30 */,
-  43 /* Color of ReduceAction30 */,
-  44 /* Property init */,
-  1907 /* Id of ReduceAction31 */,
+  43 /* Group of ? */,
+  1899 /* Id of ReduceAction31 */,
   3 /* Color of ReduceAction31 */,
-  43 /* Color of ReduceAction31 */,
-  44 /* Property init */,
-  1863 /* Id of ReduceAction32 */,
+  43 /* Group of ? */,
+  1855 /* Id of ReduceAction32 */,
   3 /* Color of ReduceAction32 */,
-  43 /* Color of ReduceAction32 */,
-  44 /* Property init */,
-  1819 /* Id of ReduceAction33 */,
+  43 /* Group of ? */,
+  1811 /* Id of ReduceAction33 */,
   3 /* Color of ReduceAction33 */,
-  43 /* Color of ReduceAction33 */,
-  44 /* Property init */,
-  1775 /* Id of ReduceAction34 */,
+  43 /* Group of ? */,
+  1767 /* Id of ReduceAction34 */,
   3 /* Color of ReduceAction34 */,
-  43 /* Color of ReduceAction34 */,
-  44 /* Property init */,
-  1731 /* Id of ReduceAction35 */,
+  43 /* Group of ? */,
+  1723 /* Id of ReduceAction35 */,
   3 /* Color of ReduceAction35 */,
-  43 /* Color of ReduceAction35 */,
-  44 /* Property init */,
-  1687 /* Id of ReduceAction36 */,
+  43 /* Group of ? */,
+  1679 /* Id of ReduceAction36 */,
   3 /* Color of ReduceAction36 */,
-  43 /* Color of ReduceAction36 */,
-  44 /* Property init */,
-  1643 /* Id of ReduceAction37 */,
+  43 /* Group of ? */,
+  1635 /* Id of ReduceAction37 */,
   3 /* Color of ReduceAction37 */,
-  43 /* Color of ReduceAction37 */,
-  44 /* Property init */,
-  1599 /* Id of ReduceAction38 */,
+  43 /* Group of ? */,
+  1591 /* Id of ReduceAction38 */,
   3 /* Color of ReduceAction38 */,
-  43 /* Color of ReduceAction38 */,
-  44 /* Property init */,
-  1555 /* Id of ReduceAction39 */,
+  43 /* Group of ? */,
+  1547 /* Id of ReduceAction39 */,
   3 /* Color of ReduceAction39 */,
-  43 /* Color of ReduceAction39 */,
-  44 /* Property init */,
-  1507 /* Id of ReduceAction40 */,
+  43 /* Group of ? */,
+  1499 /* Id of ReduceAction40 */,
   3 /* Color of ReduceAction40 */,
-  43 /* Color of ReduceAction40 */,
-  44 /* Property init */,
-  1463 /* Id of ReduceAction41 */,
+  43 /* Group of ? */,
+  1455 /* Id of ReduceAction41 */,
   3 /* Color of ReduceAction41 */,
-  43 /* Color of ReduceAction41 */,
-  44 /* Property init */,
-  1419 /* Id of ReduceAction42 */,
+  43 /* Group of ? */,
+  1411 /* Id of ReduceAction42 */,
   3 /* Color of ReduceAction42 */,
-  43 /* Color of ReduceAction42 */,
-  44 /* Property init */,
-  1375 /* Id of ReduceAction43 */,
+  43 /* Group of ? */,
+  1367 /* Id of ReduceAction43 */,
   3 /* Color of ReduceAction43 */,
-  43 /* Color of ReduceAction43 */,
-  44 /* Property init */,
-  1331 /* Id of ReduceAction44 */,
+  43 /* Group of ? */,
+  1323 /* Id of ReduceAction44 */,
   3 /* Color of ReduceAction44 */,
-  43 /* Color of ReduceAction44 */,
-  44 /* Property init */,
-  1287 /* Id of ReduceAction45 */,
+  43 /* Group of ? */,
+  1279 /* Id of ReduceAction45 */,
   3 /* Color of ReduceAction45 */,
-  43 /* Color of ReduceAction45 */,
-  44 /* Property init */,
-  1243 /* Id of ReduceAction46 */,
+  43 /* Group of ? */,
+  1235 /* Id of ReduceAction46 */,
   3 /* Color of ReduceAction46 */,
-  43 /* Color of ReduceAction46 */,
-  44 /* Property init */,
-  1199 /* Id of ReduceAction47 */,
+  43 /* Group of ? */,
+  1191 /* Id of ReduceAction47 */,
   3 /* Color of ReduceAction47 */,
-  43 /* Color of ReduceAction47 */,
-  44 /* Property init */,
-  1155 /* Id of ReduceAction48 */,
+  43 /* Group of ? */,
+  1147 /* Id of ReduceAction48 */,
   3 /* Color of ReduceAction48 */,
-  43 /* Color of ReduceAction48 */,
-  44 /* Property init */,
-  1111 /* Id of ReduceAction49 */,
+  43 /* Group of ? */,
+  1103 /* Id of ReduceAction49 */,
   3 /* Color of ReduceAction49 */,
-  43 /* Color of ReduceAction49 */,
-  44 /* Property init */,
-  1063 /* Id of ReduceAction50 */,
+  43 /* Group of ? */,
+  1055 /* Id of ReduceAction50 */,
   3 /* Color of ReduceAction50 */,
-  43 /* Color of ReduceAction50 */,
-  44 /* Property init */,
-  1019 /* Id of ReduceAction51 */,
+  43 /* Group of ? */,
+  1011 /* Id of ReduceAction51 */,
   3 /* Color of ReduceAction51 */,
-  43 /* Color of ReduceAction51 */,
-  44 /* Property init */,
-  975 /* Id of ReduceAction52 */,
+  43 /* Group of ? */,
+  967 /* Id of ReduceAction52 */,
   3 /* Color of ReduceAction52 */,
-  43 /* Color of ReduceAction52 */,
-  44 /* Property init */,
-  931 /* Id of ReduceAction53 */,
+  43 /* Group of ? */,
+  923 /* Id of ReduceAction53 */,
   3 /* Color of ReduceAction53 */,
-  43 /* Color of ReduceAction53 */,
-  44 /* Property init */,
-  887 /* Id of ReduceAction54 */,
+  43 /* Group of ? */,
+  879 /* Id of ReduceAction54 */,
   3 /* Color of ReduceAction54 */,
-  43 /* Color of ReduceAction54 */,
-  44 /* Property init */,
-  843 /* Id of ReduceAction55 */,
+  43 /* Group of ? */,
+  835 /* Id of ReduceAction55 */,
   3 /* Color of ReduceAction55 */,
-  43 /* Color of ReduceAction55 */,
-  44 /* Property init */,
-  799 /* Id of ReduceAction56 */,
+  43 /* Group of ? */,
+  791 /* Id of ReduceAction56 */,
   3 /* Color of ReduceAction56 */,
-  43 /* Color of ReduceAction56 */,
-  44 /* Property init */,
-  755 /* Id of ReduceAction57 */,
+  43 /* Group of ? */,
+  747 /* Id of ReduceAction57 */,
   3 /* Color of ReduceAction57 */,
-  43 /* Color of ReduceAction57 */,
-  44 /* Property init */,
-  711 /* Id of ReduceAction58 */,
+  43 /* Group of ? */,
+  703 /* Id of ReduceAction58 */,
   3 /* Color of ReduceAction58 */,
-  43 /* Color of ReduceAction58 */,
-  44 /* Property init */,
-  667 /* Id of ReduceAction59 */,
+  43 /* Group of ? */,
+  659 /* Id of ReduceAction59 */,
   3 /* Color of ReduceAction59 */,
-  43 /* Color of ReduceAction59 */,
-  44 /* Property init */,
-  619 /* Id of ReduceAction60 */,
+  43 /* Group of ? */,
+  611 /* Id of ReduceAction60 */,
   3 /* Color of ReduceAction60 */,
-  43 /* Color of ReduceAction60 */,
-  44 /* Property init */,
-  575 /* Id of ReduceAction61 */,
+  43 /* Group of ? */,
+  567 /* Id of ReduceAction61 */,
   3 /* Color of ReduceAction61 */,
-  43 /* Color of ReduceAction61 */,
-  44 /* Property init */,
-  531 /* Id of ReduceAction62 */,
+  43 /* Group of ? */,
+  523 /* Id of ReduceAction62 */,
   3 /* Color of ReduceAction62 */,
-  43 /* Color of ReduceAction62 */,
-  44 /* Property init */,
-  487 /* Id of ReduceAction63 */,
+  43 /* Group of ? */,
+  479 /* Id of ReduceAction63 */,
   3 /* Color of ReduceAction63 */,
-  43 /* Color of ReduceAction63 */,
-  44 /* Property init */,
-  443 /* Id of ReduceAction64 */,
+  43 /* Group of ? */,
+  435 /* Id of ReduceAction64 */,
   3 /* Color of ReduceAction64 */,
-  43 /* Color of ReduceAction64 */,
-  44 /* Property init */,
-  399 /* Id of ReduceAction65 */,
+  43 /* Group of ? */,
+  391 /* Id of ReduceAction65 */,
   3 /* Color of ReduceAction65 */,
-  43 /* Color of ReduceAction65 */,
-  44 /* Property init */,
-  379 /* Id of ReduceAction66 */,
+  43 /* Group of ? */,
+  371 /* Id of ReduceAction66 */,
   3 /* Color of ReduceAction66 */,
-  43 /* Color of ReduceAction66 */,
-  44 /* Property init */,
-  375 /* Id of ReduceAction67 */,
+  43 /* Group of ? */,
+  367 /* Id of ReduceAction67 */,
   3 /* Color of ReduceAction67 */,
-  43 /* Color of ReduceAction67 */,
-  44 /* Property init */,
-  371 /* Id of ReduceAction68 */,
+  43 /* Group of ? */,
+  363 /* Id of ReduceAction68 */,
   3 /* Color of ReduceAction68 */,
-  43 /* Color of ReduceAction68 */,
-  44 /* Property init */,
-  367 /* Id of ReduceAction69 */,
+  43 /* Group of ? */,
+  359 /* Id of ReduceAction69 */,
   3 /* Color of ReduceAction69 */,
-  43 /* Color of ReduceAction69 */,
-  44 /* Property init */,
-  359 /* Id of ReduceAction70 */,
+  43 /* Group of ? */,
+  351 /* Id of ReduceAction70 */,
   3 /* Color of ReduceAction70 */,
-  43 /* Color of ReduceAction70 */,
-  44 /* Property init */,
-  355 /* Id of ReduceAction71 */,
+  43 /* Group of ? */,
+  347 /* Id of ReduceAction71 */,
   3 /* Color of ReduceAction71 */,
-  43 /* Color of ReduceAction71 */,
-  44 /* Property init */,
-  351 /* Id of ReduceAction72 */,
+  43 /* Group of ? */,
+  343 /* Id of ReduceAction72 */,
   3 /* Color of ReduceAction72 */,
-  43 /* Color of ReduceAction72 */,
-  44 /* Property init */,
-  347 /* Id of ReduceAction73 */,
+  43 /* Group of ? */,
+  339 /* Id of ReduceAction73 */,
   3 /* Color of ReduceAction73 */,
-  43 /* Color of ReduceAction73 */,
-  44 /* Property init */,
-  343 /* Id of ReduceAction74 */,
+  43 /* Group of ? */,
+  335 /* Id of ReduceAction74 */,
   3 /* Color of ReduceAction74 */,
-  43 /* Color of ReduceAction74 */,
-  44 /* Property init */,
-  339 /* Id of ReduceAction75 */,
+  43 /* Group of ? */,
+  331 /* Id of ReduceAction75 */,
   3 /* Color of ReduceAction75 */,
-  43 /* Color of ReduceAction75 */,
-  44 /* Property init */,
-  335 /* Id of ReduceAction76 */,
+  43 /* Group of ? */,
+  327 /* Id of ReduceAction76 */,
   3 /* Color of ReduceAction76 */,
-  43 /* Color of ReduceAction76 */,
-  44 /* Property init */,
-  331 /* Id of ReduceAction77 */,
+  43 /* Group of ? */,
+  323 /* Id of ReduceAction77 */,
   3 /* Color of ReduceAction77 */,
-  43 /* Color of ReduceAction77 */,
-  44 /* Property init */,
-  327 /* Id of ReduceAction78 */,
+  43 /* Group of ? */,
+  319 /* Id of ReduceAction78 */,
   3 /* Color of ReduceAction78 */,
-  43 /* Color of ReduceAction78 */,
-  44 /* Property init */,
-  323 /* Id of ReduceAction79 */,
+  43 /* Group of ? */,
+  315 /* Id of ReduceAction79 */,
   3 /* Color of ReduceAction79 */,
-  43 /* Color of ReduceAction79 */,
-  44 /* Property init */,
-  315 /* Id of ReduceAction80 */,
+  43 /* Group of ? */,
+  307 /* Id of ReduceAction80 */,
   3 /* Color of ReduceAction80 */,
-  43 /* Color of ReduceAction80 */,
-  44 /* Property init */,
-  311 /* Id of ReduceAction81 */,
+  43 /* Group of ? */,
+  303 /* Id of ReduceAction81 */,
   3 /* Color of ReduceAction81 */,
-  43 /* Color of ReduceAction81 */,
-  44 /* Property init */,
-  307 /* Id of ReduceAction82 */,
+  43 /* Group of ? */,
+  299 /* Id of ReduceAction82 */,
   3 /* Color of ReduceAction82 */,
-  43 /* Color of ReduceAction82 */,
-  44 /* Property init */,
-  303 /* Id of ReduceAction83 */,
+  43 /* Group of ? */,
+  295 /* Id of ReduceAction83 */,
   3 /* Color of ReduceAction83 */,
-  43 /* Color of ReduceAction83 */,
-  44 /* Property init */,
-  299 /* Id of ReduceAction84 */,
+  43 /* Group of ? */,
+  291 /* Id of ReduceAction84 */,
   3 /* Color of ReduceAction84 */,
-  43 /* Color of ReduceAction84 */,
-  44 /* Property init */,
-  295 /* Id of ReduceAction85 */,
+  43 /* Group of ? */,
+  287 /* Id of ReduceAction85 */,
   3 /* Color of ReduceAction85 */,
-  43 /* Color of ReduceAction85 */,
-  44 /* Property init */,
-  291 /* Id of ReduceAction86 */,
+  43 /* Group of ? */,
+  283 /* Id of ReduceAction86 */,
   3 /* Color of ReduceAction86 */,
-  43 /* Color of ReduceAction86 */,
-  44 /* Property init */,
-  287 /* Id of ReduceAction87 */,
+  43 /* Group of ? */,
+  279 /* Id of ReduceAction87 */,
   3 /* Color of ReduceAction87 */,
-  43 /* Color of ReduceAction87 */,
-  44 /* Property init */,
-  283 /* Id of ReduceAction88 */,
+  43 /* Group of ? */,
+  275 /* Id of ReduceAction88 */,
   3 /* Color of ReduceAction88 */,
-  43 /* Color of ReduceAction88 */,
-  44 /* Property init */,
-  279 /* Id of ReduceAction89 */,
+  43 /* Group of ? */,
+  271 /* Id of ReduceAction89 */,
   3 /* Color of ReduceAction89 */,
-  43 /* Color of ReduceAction89 */,
-  44 /* Property init */,
-  271 /* Id of ReduceAction90 */,
+  43 /* Group of ? */,
+  263 /* Id of ReduceAction90 */,
   3 /* Color of ReduceAction90 */,
-  43 /* Color of ReduceAction90 */,
-  44 /* Property init */,
-  267 /* Id of ReduceAction91 */,
+  43 /* Group of ? */,
+  259 /* Id of ReduceAction91 */,
   3 /* Color of ReduceAction91 */,
-  43 /* Color of ReduceAction91 */,
-  44 /* Property init */,
-  263 /* Id of ReduceAction92 */,
+  43 /* Group of ? */,
+  255 /* Id of ReduceAction92 */,
   3 /* Color of ReduceAction92 */,
-  43 /* Color of ReduceAction92 */,
-  44 /* Property init */,
-  259 /* Id of ReduceAction93 */,
+  43 /* Group of ? */,
+  251 /* Id of ReduceAction93 */,
   3 /* Color of ReduceAction93 */,
-  43 /* Color of ReduceAction93 */,
-  44 /* Property init */,
-  255 /* Id of ReduceAction94 */,
+  43 /* Group of ? */,
+  247 /* Id of ReduceAction94 */,
   3 /* Color of ReduceAction94 */,
-  43 /* Color of ReduceAction94 */,
-  44 /* Property init */,
-  251 /* Id of ReduceAction95 */,
+  43 /* Group of ? */,
+  243 /* Id of ReduceAction95 */,
   3 /* Color of ReduceAction95 */,
-  43 /* Color of ReduceAction95 */,
-  44 /* Property init */,
-  247 /* Id of ReduceAction96 */,
+  43 /* Group of ? */,
+  239 /* Id of ReduceAction96 */,
   3 /* Color of ReduceAction96 */,
-  43 /* Color of ReduceAction96 */,
-  44 /* Property init */,
-  243 /* Id of ReduceAction97 */,
+  43 /* Group of ? */,
+  235 /* Id of ReduceAction97 */,
   3 /* Color of ReduceAction97 */,
-  43 /* Color of ReduceAction97 */,
-  44 /* Property init */,
-  239 /* Id of ReduceAction98 */,
+  43 /* Group of ? */,
+  231 /* Id of ReduceAction98 */,
   3 /* Color of ReduceAction98 */,
-  43 /* Color of ReduceAction98 */,
-  44 /* Property init */,
-  235 /* Id of ReduceAction99 */,
+  43 /* Group of ? */,
+  227 /* Id of ReduceAction99 */,
   3 /* Color of ReduceAction99 */,
-  43 /* Color of ReduceAction99 */,
-  44 /* Property init */,
-  2835 /* Id of ReduceAction100 */,
+  43 /* Group of ? */,
+  2827 /* Id of ReduceAction100 */,
   3 /* Color of ReduceAction100 */,
-  43 /* Color of ReduceAction100 */,
-  44 /* Property init */,
-  2831 /* Id of ReduceAction101 */,
+  43 /* Group of ? */,
+  2823 /* Id of ReduceAction101 */,
   3 /* Color of ReduceAction101 */,
-  43 /* Color of ReduceAction101 */,
-  44 /* Property init */,
-  2827 /* Id of ReduceAction102 */,
+  43 /* Group of ? */,
+  2819 /* Id of ReduceAction102 */,
   3 /* Color of ReduceAction102 */,
-  43 /* Color of ReduceAction102 */,
-  44 /* Property init */,
-  2823 /* Id of ReduceAction103 */,
+  43 /* Group of ? */,
+  2815 /* Id of ReduceAction103 */,
   3 /* Color of ReduceAction103 */,
-  43 /* Color of ReduceAction103 */,
-  44 /* Property init */,
-  2819 /* Id of ReduceAction104 */,
+  43 /* Group of ? */,
+  2811 /* Id of ReduceAction104 */,
   3 /* Color of ReduceAction104 */,
-  43 /* Color of ReduceAction104 */,
-  44 /* Property init */,
-  2815 /* Id of ReduceAction105 */,
+  43 /* Group of ? */,
+  2807 /* Id of ReduceAction105 */,
   3 /* Color of ReduceAction105 */,
-  43 /* Color of ReduceAction105 */,
-  44 /* Property init */,
-  2811 /* Id of ReduceAction106 */,
+  43 /* Group of ? */,
+  2803 /* Id of ReduceAction106 */,
   3 /* Color of ReduceAction106 */,
-  43 /* Color of ReduceAction106 */,
-  44 /* Property init */,
-  2807 /* Id of ReduceAction107 */,
+  43 /* Group of ? */,
+  2799 /* Id of ReduceAction107 */,
   3 /* Color of ReduceAction107 */,
-  43 /* Color of ReduceAction107 */,
-  44 /* Property init */,
-  2803 /* Id of ReduceAction108 */,
+  43 /* Group of ? */,
+  2795 /* Id of ReduceAction108 */,
   3 /* Color of ReduceAction108 */,
-  43 /* Color of ReduceAction108 */,
-  44 /* Property init */,
-  2799 /* Id of ReduceAction109 */,
+  43 /* Group of ? */,
+  2791 /* Id of ReduceAction109 */,
   3 /* Color of ReduceAction109 */,
-  43 /* Color of ReduceAction109 */,
-  44 /* Property init */,
-  2791 /* Id of ReduceAction110 */,
+  43 /* Group of ? */,
+  2783 /* Id of ReduceAction110 */,
   3 /* Color of ReduceAction110 */,
-  43 /* Color of ReduceAction110 */,
-  44 /* Property init */,
-  2787 /* Id of ReduceAction111 */,
+  43 /* Group of ? */,
+  2779 /* Id of ReduceAction111 */,
   3 /* Color of ReduceAction111 */,
-  43 /* Color of ReduceAction111 */,
-  44 /* Property init */,
-  2783 /* Id of ReduceAction112 */,
+  43 /* Group of ? */,
+  2775 /* Id of ReduceAction112 */,
   3 /* Color of ReduceAction112 */,
-  43 /* Color of ReduceAction112 */,
-  44 /* Property init */,
-  2779 /* Id of ReduceAction113 */,
+  43 /* Group of ? */,
+  2771 /* Id of ReduceAction113 */,
   3 /* Color of ReduceAction113 */,
-  43 /* Color of ReduceAction113 */,
-  44 /* Property init */,
-  2775 /* Id of ReduceAction114 */,
+  43 /* Group of ? */,
+  2767 /* Id of ReduceAction114 */,
   3 /* Color of ReduceAction114 */,
-  43 /* Color of ReduceAction114 */,
-  44 /* Property init */,
-  2771 /* Id of ReduceAction115 */,
+  43 /* Group of ? */,
+  2763 /* Id of ReduceAction115 */,
   3 /* Color of ReduceAction115 */,
-  43 /* Color of ReduceAction115 */,
-  44 /* Property init */,
-  2767 /* Id of ReduceAction116 */,
+  43 /* Group of ? */,
+  2759 /* Id of ReduceAction116 */,
   3 /* Color of ReduceAction116 */,
-  43 /* Color of ReduceAction116 */,
-  44 /* Property init */,
-  2763 /* Id of ReduceAction117 */,
+  43 /* Group of ? */,
+  2755 /* Id of ReduceAction117 */,
   3 /* Color of ReduceAction117 */,
-  43 /* Color of ReduceAction117 */,
-  44 /* Property init */,
-  2759 /* Id of ReduceAction118 */,
+  43 /* Group of ? */,
+  2751 /* Id of ReduceAction118 */,
   3 /* Color of ReduceAction118 */,
-  43 /* Color of ReduceAction118 */,
-  44 /* Property init */,
-  2755 /* Id of ReduceAction119 */,
+  43 /* Group of ? */,
+  2747 /* Id of ReduceAction119 */,
   3 /* Color of ReduceAction119 */,
-  43 /* Color of ReduceAction119 */,
-  44 /* Property init */,
-  2747 /* Id of ReduceAction120 */,
+  43 /* Group of ? */,
+  2739 /* Id of ReduceAction120 */,
   3 /* Color of ReduceAction120 */,
-  43 /* Color of ReduceAction120 */,
-  44 /* Property init */,
-  2743 /* Id of ReduceAction121 */,
+  43 /* Group of ? */,
+  2735 /* Id of ReduceAction121 */,
   3 /* Color of ReduceAction121 */,
-  43 /* Color of ReduceAction121 */,
-  44 /* Property init */,
-  2739 /* Id of ReduceAction122 */,
+  43 /* Group of ? */,
+  2731 /* Id of ReduceAction122 */,
   3 /* Color of ReduceAction122 */,
-  43 /* Color of ReduceAction122 */,
-  44 /* Property init */,
-  2735 /* Id of ReduceAction123 */,
+  43 /* Group of ? */,
+  2727 /* Id of ReduceAction123 */,
   3 /* Color of ReduceAction123 */,
-  43 /* Color of ReduceAction123 */,
-  44 /* Property init */,
-  2731 /* Id of ReduceAction124 */,
+  43 /* Group of ? */,
+  2723 /* Id of ReduceAction124 */,
   3 /* Color of ReduceAction124 */,
-  43 /* Color of ReduceAction124 */,
-  44 /* Property init */,
-  2727 /* Id of ReduceAction125 */,
+  43 /* Group of ? */,
+  2719 /* Id of ReduceAction125 */,
   3 /* Color of ReduceAction125 */,
-  43 /* Color of ReduceAction125 */,
-  44 /* Property init */,
-  2723 /* Id of ReduceAction126 */,
+  43 /* Group of ? */,
+  2715 /* Id of ReduceAction126 */,
   3 /* Color of ReduceAction126 */,
-  43 /* Color of ReduceAction126 */,
-  44 /* Property init */,
-  2719 /* Id of ReduceAction127 */,
+  43 /* Group of ? */,
+  2711 /* Id of ReduceAction127 */,
   3 /* Color of ReduceAction127 */,
-  43 /* Color of ReduceAction127 */,
-  44 /* Property init */,
-  2715 /* Id of ReduceAction128 */,
+  43 /* Group of ? */,
+  2707 /* Id of ReduceAction128 */,
   3 /* Color of ReduceAction128 */,
-  43 /* Color of ReduceAction128 */,
-  44 /* Property init */,
-  2711 /* Id of ReduceAction129 */,
+  43 /* Group of ? */,
+  2703 /* Id of ReduceAction129 */,
   3 /* Color of ReduceAction129 */,
-  43 /* Color of ReduceAction129 */,
-  44 /* Property init */,
-  2703 /* Id of ReduceAction130 */,
+  43 /* Group of ? */,
+  2695 /* Id of ReduceAction130 */,
   3 /* Color of ReduceAction130 */,
-  43 /* Color of ReduceAction130 */,
-  44 /* Property init */,
-  2699 /* Id of ReduceAction131 */,
+  43 /* Group of ? */,
+  2691 /* Id of ReduceAction131 */,
   3 /* Color of ReduceAction131 */,
-  43 /* Color of ReduceAction131 */,
-  44 /* Property init */,
-  2695 /* Id of ReduceAction132 */,
+  43 /* Group of ? */,
+  2687 /* Id of ReduceAction132 */,
   3 /* Color of ReduceAction132 */,
-  43 /* Color of ReduceAction132 */,
-  44 /* Property init */,
-  2691 /* Id of ReduceAction133 */,
+  43 /* Group of ? */,
+  2683 /* Id of ReduceAction133 */,
   3 /* Color of ReduceAction133 */,
-  43 /* Color of ReduceAction133 */,
-  44 /* Property init */,
-  2687 /* Id of ReduceAction134 */,
+  43 /* Group of ? */,
+  2679 /* Id of ReduceAction134 */,
   3 /* Color of ReduceAction134 */,
-  43 /* Color of ReduceAction134 */,
-  44 /* Property init */,
-  2683 /* Id of ReduceAction135 */,
+  43 /* Group of ? */,
+  2675 /* Id of ReduceAction135 */,
   3 /* Color of ReduceAction135 */,
-  43 /* Color of ReduceAction135 */,
-  44 /* Property init */,
-  2679 /* Id of ReduceAction136 */,
+  43 /* Group of ? */,
+  2671 /* Id of ReduceAction136 */,
   3 /* Color of ReduceAction136 */,
-  43 /* Color of ReduceAction136 */,
-  44 /* Property init */,
-  2675 /* Id of ReduceAction137 */,
+  43 /* Group of ? */,
+  2667 /* Id of ReduceAction137 */,
   3 /* Color of ReduceAction137 */,
-  43 /* Color of ReduceAction137 */,
-  44 /* Property init */,
-  2671 /* Id of ReduceAction138 */,
+  43 /* Group of ? */,
+  2663 /* Id of ReduceAction138 */,
   3 /* Color of ReduceAction138 */,
-  43 /* Color of ReduceAction138 */,
-  44 /* Property init */,
-  2667 /* Id of ReduceAction139 */,
+  43 /* Group of ? */,
+  2659 /* Id of ReduceAction139 */,
   3 /* Color of ReduceAction139 */,
-  43 /* Color of ReduceAction139 */,
-  44 /* Property init */,
-  2659 /* Id of ReduceAction140 */,
+  43 /* Group of ? */,
+  2651 /* Id of ReduceAction140 */,
   3 /* Color of ReduceAction140 */,
-  43 /* Color of ReduceAction140 */,
-  44 /* Property init */,
-  2655 /* Id of ReduceAction141 */,
+  43 /* Group of ? */,
+  2647 /* Id of ReduceAction141 */,
   3 /* Color of ReduceAction141 */,
-  43 /* Color of ReduceAction141 */,
-  44 /* Property init */,
-  2651 /* Id of ReduceAction142 */,
+  43 /* Group of ? */,
+  2643 /* Id of ReduceAction142 */,
   3 /* Color of ReduceAction142 */,
-  43 /* Color of ReduceAction142 */,
-  44 /* Property init */,
-  2647 /* Id of ReduceAction143 */,
+  43 /* Group of ? */,
+  2639 /* Id of ReduceAction143 */,
   3 /* Color of ReduceAction143 */,
-  43 /* Color of ReduceAction143 */,
-  44 /* Property init */,
-  2643 /* Id of ReduceAction144 */,
+  43 /* Group of ? */,
+  2635 /* Id of ReduceAction144 */,
   3 /* Color of ReduceAction144 */,
-  43 /* Color of ReduceAction144 */,
-  44 /* Property init */,
-  2639 /* Id of ReduceAction145 */,
+  43 /* Group of ? */,
+  2631 /* Id of ReduceAction145 */,
   3 /* Color of ReduceAction145 */,
-  43 /* Color of ReduceAction145 */,
-  44 /* Property init */,
-  2635 /* Id of ReduceAction146 */,
+  43 /* Group of ? */,
+  2627 /* Id of ReduceAction146 */,
   3 /* Color of ReduceAction146 */,
-  43 /* Color of ReduceAction146 */,
-  44 /* Property init */,
-  2631 /* Id of ReduceAction147 */,
+  43 /* Group of ? */,
+  2623 /* Id of ReduceAction147 */,
   3 /* Color of ReduceAction147 */,
-  43 /* Color of ReduceAction147 */,
-  44 /* Property init */,
-  2627 /* Id of ReduceAction148 */,
+  43 /* Group of ? */,
+  2619 /* Id of ReduceAction148 */,
   3 /* Color of ReduceAction148 */,
-  43 /* Color of ReduceAction148 */,
-  44 /* Property init */,
-  2623 /* Id of ReduceAction149 */,
+  43 /* Group of ? */,
+  2615 /* Id of ReduceAction149 */,
   3 /* Color of ReduceAction149 */,
-  43 /* Color of ReduceAction149 */,
-  44 /* Property init */,
-  2615 /* Id of ReduceAction150 */,
+  43 /* Group of ? */,
+  2607 /* Id of ReduceAction150 */,
   3 /* Color of ReduceAction150 */,
-  43 /* Color of ReduceAction150 */,
-  44 /* Property init */,
-  2611 /* Id of ReduceAction151 */,
+  43 /* Group of ? */,
+  2603 /* Id of ReduceAction151 */,
   3 /* Color of ReduceAction151 */,
-  43 /* Color of ReduceAction151 */,
-  44 /* Property init */,
-  2607 /* Id of ReduceAction152 */,
+  43 /* Group of ? */,
+  2599 /* Id of ReduceAction152 */,
   3 /* Color of ReduceAction152 */,
-  43 /* Color of ReduceAction152 */,
-  44 /* Property init */,
-  2603 /* Id of ReduceAction153 */,
+  43 /* Group of ? */,
+  2595 /* Id of ReduceAction153 */,
   3 /* Color of ReduceAction153 */,
-  43 /* Color of ReduceAction153 */,
-  44 /* Property init */,
-  2599 /* Id of ReduceAction154 */,
+  43 /* Group of ? */,
+  2591 /* Id of ReduceAction154 */,
   3 /* Color of ReduceAction154 */,
-  43 /* Color of ReduceAction154 */,
-  44 /* Property init */,
-  2595 /* Id of ReduceAction155 */,
+  43 /* Group of ? */,
+  2587 /* Id of ReduceAction155 */,
   3 /* Color of ReduceAction155 */,
-  43 /* Color of ReduceAction155 */,
-  44 /* Property init */,
-  2591 /* Id of ReduceAction156 */,
+  43 /* Group of ? */,
+  2583 /* Id of ReduceAction156 */,
   3 /* Color of ReduceAction156 */,
-  43 /* Color of ReduceAction156 */,
-  44 /* Property init */,
-  2587 /* Id of ReduceAction157 */,
+  43 /* Group of ? */,
+  2579 /* Id of ReduceAction157 */,
   3 /* Color of ReduceAction157 */,
-  43 /* Color of ReduceAction157 */,
-  44 /* Property init */,
-  2583 /* Id of ReduceAction158 */,
+  43 /* Group of ? */,
+  2575 /* Id of ReduceAction158 */,
   3 /* Color of ReduceAction158 */,
-  43 /* Color of ReduceAction158 */,
-  44 /* Property init */,
-  2579 /* Id of ReduceAction159 */,
+  43 /* Group of ? */,
+  2571 /* Id of ReduceAction159 */,
   3 /* Color of ReduceAction159 */,
-  43 /* Color of ReduceAction159 */,
-  44 /* Property init */,
-  2571 /* Id of ReduceAction160 */,
+  43 /* Group of ? */,
+  2563 /* Id of ReduceAction160 */,
   3 /* Color of ReduceAction160 */,
-  43 /* Color of ReduceAction160 */,
-  44 /* Property init */,
-  2567 /* Id of ReduceAction161 */,
+  43 /* Group of ? */,
+  2559 /* Id of ReduceAction161 */,
   3 /* Color of ReduceAction161 */,
-  43 /* Color of ReduceAction161 */,
-  44 /* Property init */,
-  2563 /* Id of ReduceAction162 */,
+  43 /* Group of ? */,
+  2555 /* Id of ReduceAction162 */,
   3 /* Color of ReduceAction162 */,
-  43 /* Color of ReduceAction162 */,
-  44 /* Property init */,
-  2559 /* Id of ReduceAction163 */,
+  43 /* Group of ? */,
+  2551 /* Id of ReduceAction163 */,
   3 /* Color of ReduceAction163 */,
-  43 /* Color of ReduceAction163 */,
-  44 /* Property init */,
-  2555 /* Id of ReduceAction164 */,
+  43 /* Group of ? */,
+  2547 /* Id of ReduceAction164 */,
   3 /* Color of ReduceAction164 */,
-  43 /* Color of ReduceAction164 */,
-  44 /* Property init */,
-  2551 /* Id of ReduceAction165 */,
+  43 /* Group of ? */,
+  2543 /* Id of ReduceAction165 */,
   3 /* Color of ReduceAction165 */,
-  43 /* Color of ReduceAction165 */,
-  44 /* Property init */,
-  2547 /* Id of ReduceAction166 */,
+  43 /* Group of ? */,
+  2539 /* Id of ReduceAction166 */,
   3 /* Color of ReduceAction166 */,
-  43 /* Color of ReduceAction166 */,
-  44 /* Property init */,
-  2543 /* Id of ReduceAction167 */,
+  43 /* Group of ? */,
+  2535 /* Id of ReduceAction167 */,
   3 /* Color of ReduceAction167 */,
-  43 /* Color of ReduceAction167 */,
-  44 /* Property init */,
-  2539 /* Id of ReduceAction168 */,
+  43 /* Group of ? */,
+  2531 /* Id of ReduceAction168 */,
   3 /* Color of ReduceAction168 */,
-  43 /* Color of ReduceAction168 */,
-  44 /* Property init */,
-  2535 /* Id of ReduceAction169 */,
+  43 /* Group of ? */,
+  2527 /* Id of ReduceAction169 */,
   3 /* Color of ReduceAction169 */,
-  43 /* Color of ReduceAction169 */,
-  44 /* Property init */,
-  2527 /* Id of ReduceAction170 */,
+  43 /* Group of ? */,
+  2519 /* Id of ReduceAction170 */,
   3 /* Color of ReduceAction170 */,
-  43 /* Color of ReduceAction170 */,
-  44 /* Property init */,
-  2523 /* Id of ReduceAction171 */,
+  43 /* Group of ? */,
+  2515 /* Id of ReduceAction171 */,
   3 /* Color of ReduceAction171 */,
-  43 /* Color of ReduceAction171 */,
-  44 /* Property init */,
-  2519 /* Id of ReduceAction172 */,
+  43 /* Group of ? */,
+  2511 /* Id of ReduceAction172 */,
   3 /* Color of ReduceAction172 */,
-  43 /* Color of ReduceAction172 */,
-  44 /* Property init */,
-  2515 /* Id of ReduceAction173 */,
+  43 /* Group of ? */,
+  2507 /* Id of ReduceAction173 */,
   3 /* Color of ReduceAction173 */,
-  43 /* Color of ReduceAction173 */,
-  44 /* Property init */,
-  2511 /* Id of ReduceAction174 */,
+  43 /* Group of ? */,
+  2503 /* Id of ReduceAction174 */,
   3 /* Color of ReduceAction174 */,
-  43 /* Color of ReduceAction174 */,
-  44 /* Property init */,
-  2507 /* Id of ReduceAction175 */,
+  43 /* Group of ? */,
+  2499 /* Id of ReduceAction175 */,
   3 /* Color of ReduceAction175 */,
-  43 /* Color of ReduceAction175 */,
-  44 /* Property init */,
-  2503 /* Id of ReduceAction176 */,
+  43 /* Group of ? */,
+  2495 /* Id of ReduceAction176 */,
   3 /* Color of ReduceAction176 */,
-  43 /* Color of ReduceAction176 */,
-  44 /* Property init */,
-  2499 /* Id of ReduceAction177 */,
+  43 /* Group of ? */,
+  2491 /* Id of ReduceAction177 */,
   3 /* Color of ReduceAction177 */,
-  43 /* Color of ReduceAction177 */,
-  44 /* Property init */,
-  2495 /* Id of ReduceAction178 */,
+  43 /* Group of ? */,
+  2487 /* Id of ReduceAction178 */,
   3 /* Color of ReduceAction178 */,
-  43 /* Color of ReduceAction178 */,
-  44 /* Property init */,
-  2491 /* Id of ReduceAction179 */,
+  43 /* Group of ? */,
+  2483 /* Id of ReduceAction179 */,
   3 /* Color of ReduceAction179 */,
-  43 /* Color of ReduceAction179 */,
-  44 /* Property init */,
-  2483 /* Id of ReduceAction180 */,
+  43 /* Group of ? */,
+  2475 /* Id of ReduceAction180 */,
   3 /* Color of ReduceAction180 */,
-  43 /* Color of ReduceAction180 */,
-  44 /* Property init */,
-  2479 /* Id of ReduceAction181 */,
+  43 /* Group of ? */,
+  2471 /* Id of ReduceAction181 */,
   3 /* Color of ReduceAction181 */,
-  43 /* Color of ReduceAction181 */,
-  44 /* Property init */,
-  2475 /* Id of ReduceAction182 */,
+  43 /* Group of ? */,
+  2467 /* Id of ReduceAction182 */,
   3 /* Color of ReduceAction182 */,
-  43 /* Color of ReduceAction182 */,
-  44 /* Property init */,
-  2471 /* Id of ReduceAction183 */,
+  43 /* Group of ? */,
+  2463 /* Id of ReduceAction183 */,
   3 /* Color of ReduceAction183 */,
-  43 /* Color of ReduceAction183 */,
-  44 /* Property init */,
-  2467 /* Id of ReduceAction184 */,
+  43 /* Group of ? */,
+  2459 /* Id of ReduceAction184 */,
   3 /* Color of ReduceAction184 */,
-  43 /* Color of ReduceAction184 */,
-  44 /* Property init */,
-  2463 /* Id of ReduceAction185 */,
+  43 /* Group of ? */,
+  2455 /* Id of ReduceAction185 */,
   3 /* Color of ReduceAction185 */,
-  43 /* Color of ReduceAction185 */,
-  44 /* Property init */,
-  2459 /* Id of ReduceAction186 */,
+  43 /* Group of ? */,
+  2451 /* Id of ReduceAction186 */,
   3 /* Color of ReduceAction186 */,
-  43 /* Color of ReduceAction186 */,
-  44 /* Property init */,
-  2455 /* Id of ReduceAction187 */,
+  43 /* Group of ? */,
+  2447 /* Id of ReduceAction187 */,
   3 /* Color of ReduceAction187 */,
-  43 /* Color of ReduceAction187 */,
-  44 /* Property init */,
-  2451 /* Id of ReduceAction188 */,
+  43 /* Group of ? */,
+  2443 /* Id of ReduceAction188 */,
   3 /* Color of ReduceAction188 */,
-  43 /* Color of ReduceAction188 */,
-  44 /* Property init */,
-  2447 /* Id of ReduceAction189 */,
+  43 /* Group of ? */,
+  2439 /* Id of ReduceAction189 */,
   3 /* Color of ReduceAction189 */,
-  43 /* Color of ReduceAction189 */,
-  44 /* Property init */,
-  2439 /* Id of ReduceAction190 */,
+  43 /* Group of ? */,
+  2431 /* Id of ReduceAction190 */,
   3 /* Color of ReduceAction190 */,
-  43 /* Color of ReduceAction190 */,
-  44 /* Property init */,
-  2435 /* Id of ReduceAction191 */,
+  43 /* Group of ? */,
+  2427 /* Id of ReduceAction191 */,
   3 /* Color of ReduceAction191 */,
-  43 /* Color of ReduceAction191 */,
-  44 /* Property init */,
-  2431 /* Id of ReduceAction192 */,
+  43 /* Group of ? */,
+  2423 /* Id of ReduceAction192 */,
   3 /* Color of ReduceAction192 */,
-  43 /* Color of ReduceAction192 */,
-  44 /* Property init */,
-  2427 /* Id of ReduceAction193 */,
+  43 /* Group of ? */,
+  2419 /* Id of ReduceAction193 */,
   3 /* Color of ReduceAction193 */,
-  43 /* Color of ReduceAction193 */,
-  44 /* Property init */,
-  2423 /* Id of ReduceAction194 */,
+  43 /* Group of ? */,
+  2415 /* Id of ReduceAction194 */,
   3 /* Color of ReduceAction194 */,
-  43 /* Color of ReduceAction194 */,
-  44 /* Property init */,
-  2419 /* Id of ReduceAction195 */,
+  43 /* Group of ? */,
+  2411 /* Id of ReduceAction195 */,
   3 /* Color of ReduceAction195 */,
-  43 /* Color of ReduceAction195 */,
-  44 /* Property init */,
-  2415 /* Id of ReduceAction196 */,
+  43 /* Group of ? */,
+  2407 /* Id of ReduceAction196 */,
   3 /* Color of ReduceAction196 */,
-  43 /* Color of ReduceAction196 */,
-  44 /* Property init */,
-  2411 /* Id of ReduceAction197 */,
+  43 /* Group of ? */,
+  2403 /* Id of ReduceAction197 */,
   3 /* Color of ReduceAction197 */,
-  43 /* Color of ReduceAction197 */,
-  44 /* Property init */,
-  2407 /* Id of ReduceAction198 */,
+  43 /* Group of ? */,
+  2399 /* Id of ReduceAction198 */,
   3 /* Color of ReduceAction198 */,
-  43 /* Color of ReduceAction198 */,
-  44 /* Property init */,
-  2403 /* Id of ReduceAction199 */,
+  43 /* Group of ? */,
+  2395 /* Id of ReduceAction199 */,
   3 /* Color of ReduceAction199 */,
-  43 /* Color of ReduceAction199 */,
-  44 /* Property init */,
-  2391 /* Id of ReduceAction200 */,
+  43 /* Group of ? */,
+  2383 /* Id of ReduceAction200 */,
   3 /* Color of ReduceAction200 */,
-  43 /* Color of ReduceAction200 */,
-  44 /* Property init */,
-  2387 /* Id of ReduceAction201 */,
+  43 /* Group of ? */,
+  2379 /* Id of ReduceAction201 */,
   3 /* Color of ReduceAction201 */,
-  43 /* Color of ReduceAction201 */,
-  44 /* Property init */,
-  2383 /* Id of ReduceAction202 */,
+  43 /* Group of ? */,
+  2375 /* Id of ReduceAction202 */,
   3 /* Color of ReduceAction202 */,
-  43 /* Color of ReduceAction202 */,
-  44 /* Property init */,
-  2379 /* Id of ReduceAction203 */,
+  43 /* Group of ? */,
+  2371 /* Id of ReduceAction203 */,
   3 /* Color of ReduceAction203 */,
-  43 /* Color of ReduceAction203 */,
-  44 /* Property init */,
-  2375 /* Id of ReduceAction204 */,
+  43 /* Group of ? */,
+  2367 /* Id of ReduceAction204 */,
   3 /* Color of ReduceAction204 */,
-  43 /* Color of ReduceAction204 */,
-  44 /* Property init */,
-  2371 /* Id of ReduceAction205 */,
+  43 /* Group of ? */,
+  2363 /* Id of ReduceAction205 */,
   3 /* Color of ReduceAction205 */,
-  43 /* Color of ReduceAction205 */,
-  44 /* Property init */,
-  2367 /* Id of ReduceAction206 */,
+  43 /* Group of ? */,
+  2359 /* Id of ReduceAction206 */,
   3 /* Color of ReduceAction206 */,
-  43 /* Color of ReduceAction206 */,
-  44 /* Property init */,
-  2363 /* Id of ReduceAction207 */,
+  43 /* Group of ? */,
+  2355 /* Id of ReduceAction207 */,
   3 /* Color of ReduceAction207 */,
-  43 /* Color of ReduceAction207 */,
-  44 /* Property init */,
-  2359 /* Id of ReduceAction208 */,
+  43 /* Group of ? */,
+  2351 /* Id of ReduceAction208 */,
   3 /* Color of ReduceAction208 */,
-  43 /* Color of ReduceAction208 */,
-  44 /* Property init */,
-  2355 /* Id of ReduceAction209 */,
+  43 /* Group of ? */,
+  2347 /* Id of ReduceAction209 */,
   3 /* Color of ReduceAction209 */,
-  43 /* Color of ReduceAction209 */,
-  44 /* Property init */,
-  2347 /* Id of ReduceAction210 */,
+  43 /* Group of ? */,
+  2339 /* Id of ReduceAction210 */,
   3 /* Color of ReduceAction210 */,
-  43 /* Color of ReduceAction210 */,
-  44 /* Property init */,
-  2343 /* Id of ReduceAction211 */,
+  43 /* Group of ? */,
+  2335 /* Id of ReduceAction211 */,
   3 /* Color of ReduceAction211 */,
-  43 /* Color of ReduceAction211 */,
-  44 /* Property init */,
-  2339 /* Id of ReduceAction212 */,
+  43 /* Group of ? */,
+  2331 /* Id of ReduceAction212 */,
   3 /* Color of ReduceAction212 */,
-  43 /* Color of ReduceAction212 */,
-  44 /* Property init */,
-  2335 /* Id of ReduceAction213 */,
+  43 /* Group of ? */,
+  2327 /* Id of ReduceAction213 */,
   3 /* Color of ReduceAction213 */,
-  43 /* Color of ReduceAction213 */,
-  44 /* Property init */,
-  2331 /* Id of ReduceAction214 */,
+  43 /* Group of ? */,
+  2323 /* Id of ReduceAction214 */,
   3 /* Color of ReduceAction214 */,
-  43 /* Color of ReduceAction214 */,
-  44 /* Property init */,
-  2327 /* Id of ReduceAction215 */,
+  43 /* Group of ? */,
+  2319 /* Id of ReduceAction215 */,
   3 /* Color of ReduceAction215 */,
-  43 /* Color of ReduceAction215 */,
-  44 /* Property init */,
-  2323 /* Id of ReduceAction216 */,
+  43 /* Group of ? */,
+  2315 /* Id of ReduceAction216 */,
   3 /* Color of ReduceAction216 */,
-  43 /* Color of ReduceAction216 */,
-  44 /* Property init */,
-  2319 /* Id of ReduceAction217 */,
+  43 /* Group of ? */,
+  2311 /* Id of ReduceAction217 */,
   3 /* Color of ReduceAction217 */,
-  43 /* Color of ReduceAction217 */,
-  44 /* Property init */,
-  2315 /* Id of ReduceAction218 */,
+  43 /* Group of ? */,
+  2307 /* Id of ReduceAction218 */,
   3 /* Color of ReduceAction218 */,
-  43 /* Color of ReduceAction218 */,
-  44 /* Property init */,
-  2311 /* Id of ReduceAction219 */,
+  43 /* Group of ? */,
+  2303 /* Id of ReduceAction219 */,
   3 /* Color of ReduceAction219 */,
-  43 /* Color of ReduceAction219 */,
-  44 /* Property init */,
-  2303 /* Id of ReduceAction220 */,
+  43 /* Group of ? */,
+  2295 /* Id of ReduceAction220 */,
   3 /* Color of ReduceAction220 */,
-  43 /* Color of ReduceAction220 */,
-  44 /* Property init */,
-  2299 /* Id of ReduceAction221 */,
+  43 /* Group of ? */,
+  2291 /* Id of ReduceAction221 */,
   3 /* Color of ReduceAction221 */,
-  43 /* Color of ReduceAction221 */,
-  44 /* Property init */,
-  2295 /* Id of ReduceAction222 */,
+  43 /* Group of ? */,
+  2287 /* Id of ReduceAction222 */,
   3 /* Color of ReduceAction222 */,
-  43 /* Color of ReduceAction222 */,
-  44 /* Property init */,
-  2291 /* Id of ReduceAction223 */,
+  43 /* Group of ? */,
+  2283 /* Id of ReduceAction223 */,
   3 /* Color of ReduceAction223 */,
-  43 /* Color of ReduceAction223 */,
-  44 /* Property init */,
-  2287 /* Id of ReduceAction224 */,
+  43 /* Group of ? */,
+  2279 /* Id of ReduceAction224 */,
   3 /* Color of ReduceAction224 */,
-  43 /* Color of ReduceAction224 */,
-  44 /* Property init */,
-  2283 /* Id of ReduceAction225 */,
+  43 /* Group of ? */,
+  2275 /* Id of ReduceAction225 */,
   3 /* Color of ReduceAction225 */,
-  43 /* Color of ReduceAction225 */,
-  44 /* Property init */,
-  2279 /* Id of ReduceAction226 */,
+  43 /* Group of ? */,
+  2271 /* Id of ReduceAction226 */,
   3 /* Color of ReduceAction226 */,
-  43 /* Color of ReduceAction226 */,
-  44 /* Property init */,
-  2275 /* Id of ReduceAction227 */,
+  43 /* Group of ? */,
+  2267 /* Id of ReduceAction227 */,
   3 /* Color of ReduceAction227 */,
-  43 /* Color of ReduceAction227 */,
-  44 /* Property init */,
-  2271 /* Id of ReduceAction228 */,
+  43 /* Group of ? */,
+  2263 /* Id of ReduceAction228 */,
   3 /* Color of ReduceAction228 */,
-  43 /* Color of ReduceAction228 */,
-  44 /* Property init */,
-  2267 /* Id of ReduceAction229 */,
+  43 /* Group of ? */,
+  2259 /* Id of ReduceAction229 */,
   3 /* Color of ReduceAction229 */,
-  43 /* Color of ReduceAction229 */,
-  44 /* Property init */,
-  2259 /* Id of ReduceAction230 */,
+  43 /* Group of ? */,
+  2251 /* Id of ReduceAction230 */,
   3 /* Color of ReduceAction230 */,
-  43 /* Color of ReduceAction230 */,
-  44 /* Property init */,
-  2255 /* Id of ReduceAction231 */,
+  43 /* Group of ? */,
+  2247 /* Id of ReduceAction231 */,
   3 /* Color of ReduceAction231 */,
-  43 /* Color of ReduceAction231 */,
-  44 /* Property init */,
-  2251 /* Id of ReduceAction232 */,
+  43 /* Group of ? */,
+  2243 /* Id of ReduceAction232 */,
   3 /* Color of ReduceAction232 */,
-  43 /* Color of ReduceAction232 */,
-  44 /* Property init */,
-  2247 /* Id of ReduceAction233 */,
+  43 /* Group of ? */,
+  2239 /* Id of ReduceAction233 */,
   3 /* Color of ReduceAction233 */,
-  43 /* Color of ReduceAction233 */,
-  44 /* Property init */,
-  2243 /* Id of ReduceAction234 */,
+  43 /* Group of ? */,
+  2235 /* Id of ReduceAction234 */,
   3 /* Color of ReduceAction234 */,
-  43 /* Color of ReduceAction234 */,
-  44 /* Property init */,
-  2239 /* Id of ReduceAction235 */,
+  43 /* Group of ? */,
+  2231 /* Id of ReduceAction235 */,
   3 /* Color of ReduceAction235 */,
-  43 /* Color of ReduceAction235 */,
-  44 /* Property init */,
-  2235 /* Id of ReduceAction236 */,
+  43 /* Group of ? */,
+  2227 /* Id of ReduceAction236 */,
   3 /* Color of ReduceAction236 */,
-  43 /* Color of ReduceAction236 */,
-  44 /* Property init */,
-  2231 /* Id of ReduceAction237 */,
+  43 /* Group of ? */,
+  2223 /* Id of ReduceAction237 */,
   3 /* Color of ReduceAction237 */,
-  43 /* Color of ReduceAction237 */,
-  44 /* Property init */,
-  2227 /* Id of ReduceAction238 */,
+  43 /* Group of ? */,
+  2219 /* Id of ReduceAction238 */,
   3 /* Color of ReduceAction238 */,
-  43 /* Color of ReduceAction238 */,
-  44 /* Property init */,
-  2223 /* Id of ReduceAction239 */,
+  43 /* Group of ? */,
+  2215 /* Id of ReduceAction239 */,
   3 /* Color of ReduceAction239 */,
-  43 /* Color of ReduceAction239 */,
-  44 /* Property init */,
-  2215 /* Id of ReduceAction240 */,
+  43 /* Group of ? */,
+  2207 /* Id of ReduceAction240 */,
   3 /* Color of ReduceAction240 */,
-  43 /* Color of ReduceAction240 */,
-  44 /* Property init */,
-  2211 /* Id of ReduceAction241 */,
+  43 /* Group of ? */,
+  2203 /* Id of ReduceAction241 */,
   3 /* Color of ReduceAction241 */,
-  43 /* Color of ReduceAction241 */,
-  44 /* Property init */,
-  2207 /* Id of ReduceAction242 */,
+  43 /* Group of ? */,
+  2199 /* Id of ReduceAction242 */,
   3 /* Color of ReduceAction242 */,
-  43 /* Color of ReduceAction242 */,
-  44 /* Property init */,
-  2203 /* Id of ReduceAction243 */,
+  43 /* Group of ? */,
+  2195 /* Id of ReduceAction243 */,
   3 /* Color of ReduceAction243 */,
-  43 /* Color of ReduceAction243 */,
-  44 /* Property init */,
-  2199 /* Id of ReduceAction244 */,
+  43 /* Group of ? */,
+  2191 /* Id of ReduceAction244 */,
   3 /* Color of ReduceAction244 */,
-  43 /* Color of ReduceAction244 */,
-  44 /* Property init */,
-  2195 /* Id of ReduceAction245 */,
+  43 /* Group of ? */,
+  2187 /* Id of ReduceAction245 */,
   3 /* Color of ReduceAction245 */,
-  43 /* Color of ReduceAction245 */,
-  44 /* Property init */,
-  2191 /* Id of ReduceAction246 */,
+  43 /* Group of ? */,
+  2183 /* Id of ReduceAction246 */,
   3 /* Color of ReduceAction246 */,
-  43 /* Color of ReduceAction246 */,
-  44 /* Property init */,
-  2187 /* Id of ReduceAction247 */,
+  43 /* Group of ? */,
+  2179 /* Id of ReduceAction247 */,
   3 /* Color of ReduceAction247 */,
-  43 /* Color of ReduceAction247 */,
-  44 /* Property init */,
-  2183 /* Id of ReduceAction248 */,
+  43 /* Group of ? */,
+  2175 /* Id of ReduceAction248 */,
   3 /* Color of ReduceAction248 */,
-  43 /* Color of ReduceAction248 */,
-  44 /* Property init */,
-  2179 /* Id of ReduceAction249 */,
+  43 /* Group of ? */,
+  2171 /* Id of ReduceAction249 */,
   3 /* Color of ReduceAction249 */,
-  43 /* Color of ReduceAction249 */,
-  44 /* Property init */,
-  2171 /* Id of ReduceAction250 */,
+  43 /* Group of ? */,
+  2163 /* Id of ReduceAction250 */,
   3 /* Color of ReduceAction250 */,
-  43 /* Color of ReduceAction250 */,
-  44 /* Property init */,
-  2167 /* Id of ReduceAction251 */,
+  43 /* Group of ? */,
+  2159 /* Id of ReduceAction251 */,
   3 /* Color of ReduceAction251 */,
-  43 /* Color of ReduceAction251 */,
-  44 /* Property init */,
-  2163 /* Id of ReduceAction252 */,
+  43 /* Group of ? */,
+  2155 /* Id of ReduceAction252 */,
   3 /* Color of ReduceAction252 */,
-  43 /* Color of ReduceAction252 */,
-  44 /* Property init */,
-  2159 /* Id of ReduceAction253 */,
+  43 /* Group of ? */,
+  2151 /* Id of ReduceAction253 */,
   3 /* Color of ReduceAction253 */,
-  43 /* Color of ReduceAction253 */,
-  44 /* Property init */,
-  2155 /* Id of ReduceAction254 */,
+  43 /* Group of ? */,
+  2147 /* Id of ReduceAction254 */,
   3 /* Color of ReduceAction254 */,
-  43 /* Color of ReduceAction254 */,
-  44 /* Property init */,
-  2151 /* Id of ReduceAction255 */,
+  43 /* Group of ? */,
+  2143 /* Id of ReduceAction255 */,
   3 /* Color of ReduceAction255 */,
-  43 /* Color of ReduceAction255 */,
-  44 /* Property init */,
-  2147 /* Id of ReduceAction256 */,
+  43 /* Group of ? */,
+  2139 /* Id of ReduceAction256 */,
   3 /* Color of ReduceAction256 */,
-  43 /* Color of ReduceAction256 */,
-  44 /* Property init */,
-  2143 /* Id of ReduceAction257 */,
+  43 /* Group of ? */,
+  2135 /* Id of ReduceAction257 */,
   3 /* Color of ReduceAction257 */,
-  43 /* Color of ReduceAction257 */,
-  44 /* Property init */,
-  2139 /* Id of ReduceAction258 */,
+  43 /* Group of ? */,
+  2131 /* Id of ReduceAction258 */,
   3 /* Color of ReduceAction258 */,
-  43 /* Color of ReduceAction258 */,
-  44 /* Property init */,
-  2135 /* Id of ReduceAction259 */,
+  43 /* Group of ? */,
+  2127 /* Id of ReduceAction259 */,
   3 /* Color of ReduceAction259 */,
-  43 /* Color of ReduceAction259 */,
-  44 /* Property init */,
-  2127 /* Id of ReduceAction260 */,
+  43 /* Group of ? */,
+  2119 /* Id of ReduceAction260 */,
   3 /* Color of ReduceAction260 */,
-  43 /* Color of ReduceAction260 */,
-  44 /* Property init */,
-  2123 /* Id of ReduceAction261 */,
+  43 /* Group of ? */,
+  2115 /* Id of ReduceAction261 */,
   3 /* Color of ReduceAction261 */,
-  43 /* Color of ReduceAction261 */,
-  44 /* Property init */,
-  2119 /* Id of ReduceAction262 */,
+  43 /* Group of ? */,
+  2111 /* Id of ReduceAction262 */,
   3 /* Color of ReduceAction262 */,
-  43 /* Color of ReduceAction262 */,
-  44 /* Property init */,
-  2115 /* Id of ReduceAction263 */,
+  43 /* Group of ? */,
+  2107 /* Id of ReduceAction263 */,
   3 /* Color of ReduceAction263 */,
-  43 /* Color of ReduceAction263 */,
-  44 /* Property init */,
-  2111 /* Id of ReduceAction264 */,
+  43 /* Group of ? */,
+  2103 /* Id of ReduceAction264 */,
   3 /* Color of ReduceAction264 */,
-  43 /* Color of ReduceAction264 */,
-  44 /* Property init */,
-  2107 /* Id of ReduceAction265 */,
+  43 /* Group of ? */,
+  2099 /* Id of ReduceAction265 */,
   3 /* Color of ReduceAction265 */,
-  43 /* Color of ReduceAction265 */,
-  44 /* Property init */,
-  2103 /* Id of ReduceAction266 */,
+  43 /* Group of ? */,
+  2095 /* Id of ReduceAction266 */,
   3 /* Color of ReduceAction266 */,
-  43 /* Color of ReduceAction266 */,
-  44 /* Property init */,
-  2099 /* Id of ReduceAction267 */,
+  43 /* Group of ? */,
+  2091 /* Id of ReduceAction267 */,
   3 /* Color of ReduceAction267 */,
-  43 /* Color of ReduceAction267 */,
-  44 /* Property init */,
-  2095 /* Id of ReduceAction268 */,
+  43 /* Group of ? */,
+  2087 /* Id of ReduceAction268 */,
   3 /* Color of ReduceAction268 */,
-  43 /* Color of ReduceAction268 */,
-  44 /* Property init */,
-  2091 /* Id of ReduceAction269 */,
+  43 /* Group of ? */,
+  2083 /* Id of ReduceAction269 */,
   3 /* Color of ReduceAction269 */,
-  43 /* Color of ReduceAction269 */,
-  44 /* Property init */,
-  2083 /* Id of ReduceAction270 */,
+  43 /* Group of ? */,
+  2075 /* Id of ReduceAction270 */,
   3 /* Color of ReduceAction270 */,
-  43 /* Color of ReduceAction270 */,
-  44 /* Property init */,
-  2079 /* Id of ReduceAction271 */,
+  43 /* Group of ? */,
+  2071 /* Id of ReduceAction271 */,
   3 /* Color of ReduceAction271 */,
-  43 /* Color of ReduceAction271 */,
-  44 /* Property init */,
-  2075 /* Id of ReduceAction272 */,
+  43 /* Group of ? */,
+  2067 /* Id of ReduceAction272 */,
   3 /* Color of ReduceAction272 */,
-  43 /* Color of ReduceAction272 */,
-  44 /* Property init */,
-  2071 /* Id of ReduceAction273 */,
+  43 /* Group of ? */,
+  2063 /* Id of ReduceAction273 */,
   3 /* Color of ReduceAction273 */,
-  43 /* Color of ReduceAction273 */,
-  44 /* Property init */,
-  2067 /* Id of ReduceAction274 */,
+  43 /* Group of ? */,
+  2059 /* Id of ReduceAction274 */,
   3 /* Color of ReduceAction274 */,
-  43 /* Color of ReduceAction274 */,
-  44 /* Property init */,
-  2063 /* Id of ReduceAction275 */,
+  43 /* Group of ? */,
+  2055 /* Id of ReduceAction275 */,
   3 /* Color of ReduceAction275 */,
-  43 /* Color of ReduceAction275 */,
-  44 /* Property init */,
-  2059 /* Id of ReduceAction276 */,
+  43 /* Group of ? */,
+  2051 /* Id of ReduceAction276 */,
   3 /* Color of ReduceAction276 */,
-  43 /* Color of ReduceAction276 */,
-  44 /* Property init */,
-  2055 /* Id of ReduceAction277 */,
+  43 /* Group of ? */,
+  2047 /* Id of ReduceAction277 */,
   3 /* Color of ReduceAction277 */,
-  43 /* Color of ReduceAction277 */,
-  44 /* Property init */,
-  2051 /* Id of ReduceAction278 */,
+  43 /* Group of ? */,
+  2043 /* Id of ReduceAction278 */,
   3 /* Color of ReduceAction278 */,
-  43 /* Color of ReduceAction278 */,
-  44 /* Property init */,
-  2047 /* Id of ReduceAction279 */,
+  43 /* Group of ? */,
+  2039 /* Id of ReduceAction279 */,
   3 /* Color of ReduceAction279 */,
-  43 /* Color of ReduceAction279 */,
-  44 /* Property init */,
-  2039 /* Id of ReduceAction280 */,
+  43 /* Group of ? */,
+  2031 /* Id of ReduceAction280 */,
   3 /* Color of ReduceAction280 */,
-  43 /* Color of ReduceAction280 */,
-  44 /* Property init */,
-  2035 /* Id of ReduceAction281 */,
+  43 /* Group of ? */,
+  2027 /* Id of ReduceAction281 */,
   3 /* Color of ReduceAction281 */,
-  43 /* Color of ReduceAction281 */,
-  44 /* Property init */,
-  2031 /* Id of ReduceAction282 */,
+  43 /* Group of ? */,
+  2023 /* Id of ReduceAction282 */,
   3 /* Color of ReduceAction282 */,
-  43 /* Color of ReduceAction282 */,
-  44 /* Property init */,
-  2027 /* Id of ReduceAction283 */,
+  43 /* Group of ? */,
+  2019 /* Id of ReduceAction283 */,
   3 /* Color of ReduceAction283 */,
-  43 /* Color of ReduceAction283 */,
-  44 /* Property init */,
-  2023 /* Id of ReduceAction284 */,
+  43 /* Group of ? */,
+  2015 /* Id of ReduceAction284 */,
   3 /* Color of ReduceAction284 */,
-  43 /* Color of ReduceAction284 */,
-  44 /* Property init */,
-  2019 /* Id of ReduceAction285 */,
+  43 /* Group of ? */,
+  2011 /* Id of ReduceAction285 */,
   3 /* Color of ReduceAction285 */,
-  43 /* Color of ReduceAction285 */,
-  44 /* Property init */,
-  2015 /* Id of ReduceAction286 */,
+  43 /* Group of ? */,
+  2007 /* Id of ReduceAction286 */,
   3 /* Color of ReduceAction286 */,
-  43 /* Color of ReduceAction286 */,
-  44 /* Property init */,
-  2011 /* Id of ReduceAction287 */,
+  43 /* Group of ? */,
+  2003 /* Id of ReduceAction287 */,
   3 /* Color of ReduceAction287 */,
-  43 /* Color of ReduceAction287 */,
-  44 /* Property init */,
-  2007 /* Id of ReduceAction288 */,
+  43 /* Group of ? */,
+  1999 /* Id of ReduceAction288 */,
   3 /* Color of ReduceAction288 */,
-  43 /* Color of ReduceAction288 */,
-  44 /* Property init */,
-  2003 /* Id of ReduceAction289 */,
+  43 /* Group of ? */,
+  1995 /* Id of ReduceAction289 */,
   3 /* Color of ReduceAction289 */,
-  43 /* Color of ReduceAction289 */,
-  44 /* Property init */,
-  1995 /* Id of ReduceAction290 */,
+  43 /* Group of ? */,
+  1987 /* Id of ReduceAction290 */,
   3 /* Color of ReduceAction290 */,
-  43 /* Color of ReduceAction290 */,
-  44 /* Property init */,
-  1991 /* Id of ReduceAction291 */,
+  43 /* Group of ? */,
+  1983 /* Id of ReduceAction291 */,
   3 /* Color of ReduceAction291 */,
-  43 /* Color of ReduceAction291 */,
-  44 /* Property init */,
-  1987 /* Id of ReduceAction292 */,
+  43 /* Group of ? */,
+  1979 /* Id of ReduceAction292 */,
   3 /* Color of ReduceAction292 */,
-  43 /* Color of ReduceAction292 */,
-  44 /* Property init */,
-  1983 /* Id of ReduceAction293 */,
+  43 /* Group of ? */,
+  1975 /* Id of ReduceAction293 */,
   3 /* Color of ReduceAction293 */,
-  43 /* Color of ReduceAction293 */,
-  44 /* Property init */,
-  1979 /* Id of ReduceAction294 */,
+  43 /* Group of ? */,
+  1971 /* Id of ReduceAction294 */,
   3 /* Color of ReduceAction294 */,
-  43 /* Color of ReduceAction294 */,
-  44 /* Property init */,
-  1975 /* Id of ReduceAction295 */,
+  43 /* Group of ? */,
+  1967 /* Id of ReduceAction295 */,
   3 /* Color of ReduceAction295 */,
-  43 /* Color of ReduceAction295 */,
-  44 /* Property init */,
-  1971 /* Id of ReduceAction296 */,
+  43 /* Group of ? */,
+  1963 /* Id of ReduceAction296 */,
   3 /* Color of ReduceAction296 */,
-  43 /* Color of ReduceAction296 */,
-  44 /* Property init */,
-  1967 /* Id of ReduceAction297 */,
+  43 /* Group of ? */,
+  1959 /* Id of ReduceAction297 */,
   3 /* Color of ReduceAction297 */,
-  43 /* Color of ReduceAction297 */,
-  44 /* Property init */,
-  1963 /* Id of ReduceAction298 */,
+  43 /* Group of ? */,
+  1955 /* Id of ReduceAction298 */,
   3 /* Color of ReduceAction298 */,
-  43 /* Color of ReduceAction298 */,
-  44 /* Property init */,
-  1959 /* Id of ReduceAction299 */,
+  43 /* Group of ? */,
+  1951 /* Id of ReduceAction299 */,
   3 /* Color of ReduceAction299 */,
-  43 /* Color of ReduceAction299 */,
-  44 /* Property init */,
-  1947 /* Id of ReduceAction300 */,
+  43 /* Group of ? */,
+  1939 /* Id of ReduceAction300 */,
   3 /* Color of ReduceAction300 */,
-  43 /* Color of ReduceAction300 */,
-  44 /* Property init */,
-  1943 /* Id of ReduceAction301 */,
+  43 /* Group of ? */,
+  1935 /* Id of ReduceAction301 */,
   3 /* Color of ReduceAction301 */,
-  43 /* Color of ReduceAction301 */,
-  44 /* Property init */,
-  1939 /* Id of ReduceAction302 */,
+  43 /* Group of ? */,
+  1931 /* Id of ReduceAction302 */,
   3 /* Color of ReduceAction302 */,
-  43 /* Color of ReduceAction302 */,
-  44 /* Property init */,
-  1935 /* Id of ReduceAction303 */,
+  43 /* Group of ? */,
+  1927 /* Id of ReduceAction303 */,
   3 /* Color of ReduceAction303 */,
-  43 /* Color of ReduceAction303 */,
-  44 /* Property init */,
-  1931 /* Id of ReduceAction304 */,
+  43 /* Group of ? */,
+  1923 /* Id of ReduceAction304 */,
   3 /* Color of ReduceAction304 */,
-  43 /* Color of ReduceAction304 */,
-  44 /* Property init */,
-  1927 /* Id of ReduceAction305 */,
+  43 /* Group of ? */,
+  1919 /* Id of ReduceAction305 */,
   3 /* Color of ReduceAction305 */,
-  43 /* Color of ReduceAction305 */,
-  44 /* Property init */,
-  1923 /* Id of ReduceAction306 */,
+  43 /* Group of ? */,
+  1915 /* Id of ReduceAction306 */,
   3 /* Color of ReduceAction306 */,
-  43 /* Color of ReduceAction306 */,
-  44 /* Property init */,
-  1919 /* Id of ReduceAction307 */,
+  43 /* Group of ? */,
+  1911 /* Id of ReduceAction307 */,
   3 /* Color of ReduceAction307 */,
-  43 /* Color of ReduceAction307 */,
-  44 /* Property init */,
-  1915 /* Id of ReduceAction308 */,
+  43 /* Group of ? */,
+  1907 /* Id of ReduceAction308 */,
   3 /* Color of ReduceAction308 */,
-  43 /* Color of ReduceAction308 */,
-  44 /* Property init */,
-  1911 /* Id of ReduceAction309 */,
+  43 /* Group of ? */,
+  1903 /* Id of ReduceAction309 */,
   3 /* Color of ReduceAction309 */,
-  43 /* Color of ReduceAction309 */,
-  44 /* Property init */,
-  1903 /* Id of ReduceAction310 */,
+  43 /* Group of ? */,
+  1895 /* Id of ReduceAction310 */,
   3 /* Color of ReduceAction310 */,
-  43 /* Color of ReduceAction310 */,
-  44 /* Property init */,
-  1899 /* Id of ReduceAction311 */,
+  43 /* Group of ? */,
+  1891 /* Id of ReduceAction311 */,
   3 /* Color of ReduceAction311 */,
-  43 /* Color of ReduceAction311 */,
-  44 /* Property init */,
-  1895 /* Id of ReduceAction312 */,
+  43 /* Group of ? */,
+  1887 /* Id of ReduceAction312 */,
   3 /* Color of ReduceAction312 */,
-  43 /* Color of ReduceAction312 */,
-  44 /* Property init */,
-  1891 /* Id of ReduceAction313 */,
+  43 /* Group of ? */,
+  1883 /* Id of ReduceAction313 */,
   3 /* Color of ReduceAction313 */,
-  43 /* Color of ReduceAction313 */,
-  44 /* Property init */,
-  1887 /* Id of ReduceAction314 */,
+  43 /* Group of ? */,
+  1879 /* Id of ReduceAction314 */,
   3 /* Color of ReduceAction314 */,
-  43 /* Color of ReduceAction314 */,
-  44 /* Property init */,
-  1883 /* Id of ReduceAction315 */,
+  43 /* Group of ? */,
+  1875 /* Id of ReduceAction315 */,
   3 /* Color of ReduceAction315 */,
-  43 /* Color of ReduceAction315 */,
-  44 /* Property init */,
-  1879 /* Id of ReduceAction316 */,
+  43 /* Group of ? */,
+  1871 /* Id of ReduceAction316 */,
   3 /* Color of ReduceAction316 */,
-  43 /* Color of ReduceAction316 */,
-  44 /* Property init */,
-  1875 /* Id of ReduceAction317 */,
+  43 /* Group of ? */,
+  1867 /* Id of ReduceAction317 */,
   3 /* Color of ReduceAction317 */,
-  43 /* Color of ReduceAction317 */,
-  44 /* Property init */,
-  1871 /* Id of ReduceAction318 */,
+  43 /* Group of ? */,
+  1863 /* Id of ReduceAction318 */,
   3 /* Color of ReduceAction318 */,
-  43 /* Color of ReduceAction318 */,
-  44 /* Property init */,
-  1867 /* Id of ReduceAction319 */,
+  43 /* Group of ? */,
+  1859 /* Id of ReduceAction319 */,
   3 /* Color of ReduceAction319 */,
-  43 /* Color of ReduceAction319 */,
-  44 /* Property init */,
-  1859 /* Id of ReduceAction320 */,
+  43 /* Group of ? */,
+  1851 /* Id of ReduceAction320 */,
   3 /* Color of ReduceAction320 */,
-  43 /* Color of ReduceAction320 */,
-  44 /* Property init */,
-  1855 /* Id of ReduceAction321 */,
+  43 /* Group of ? */,
+  1847 /* Id of ReduceAction321 */,
   3 /* Color of ReduceAction321 */,
-  43 /* Color of ReduceAction321 */,
-  44 /* Property init */,
-  1851 /* Id of ReduceAction322 */,
+  43 /* Group of ? */,
+  1843 /* Id of ReduceAction322 */,
   3 /* Color of ReduceAction322 */,
-  43 /* Color of ReduceAction322 */,
-  44 /* Property init */,
-  1847 /* Id of ReduceAction323 */,
+  43 /* Group of ? */,
+  1839 /* Id of ReduceAction323 */,
   3 /* Color of ReduceAction323 */,
-  43 /* Color of ReduceAction323 */,
-  44 /* Property init */,
-  1843 /* Id of ReduceAction324 */,
+  43 /* Group of ? */,
+  1835 /* Id of ReduceAction324 */,
   3 /* Color of ReduceAction324 */,
-  43 /* Color of ReduceAction324 */,
-  44 /* Property init */,
-  1839 /* Id of ReduceAction325 */,
+  43 /* Group of ? */,
+  1831 /* Id of ReduceAction325 */,
   3 /* Color of ReduceAction325 */,
-  43 /* Color of ReduceAction325 */,
-  44 /* Property init */,
-  1835 /* Id of ReduceAction326 */,
+  43 /* Group of ? */,
+  1827 /* Id of ReduceAction326 */,
   3 /* Color of ReduceAction326 */,
-  43 /* Color of ReduceAction326 */,
-  44 /* Property init */,
-  1831 /* Id of ReduceAction327 */,
+  43 /* Group of ? */,
+  1823 /* Id of ReduceAction327 */,
   3 /* Color of ReduceAction327 */,
-  43 /* Color of ReduceAction327 */,
-  44 /* Property init */,
-  1827 /* Id of ReduceAction328 */,
+  43 /* Group of ? */,
+  1819 /* Id of ReduceAction328 */,
   3 /* Color of ReduceAction328 */,
-  43 /* Color of ReduceAction328 */,
-  44 /* Property init */,
-  1823 /* Id of ReduceAction329 */,
+  43 /* Group of ? */,
+  1815 /* Id of ReduceAction329 */,
   3 /* Color of ReduceAction329 */,
-  43 /* Color of ReduceAction329 */,
-  44 /* Property init */,
-  1815 /* Id of ReduceAction330 */,
+  43 /* Group of ? */,
+  1807 /* Id of ReduceAction330 */,
   3 /* Color of ReduceAction330 */,
-  43 /* Color of ReduceAction330 */,
-  44 /* Property init */,
-  1811 /* Id of ReduceAction331 */,
+  43 /* Group of ? */,
+  1803 /* Id of ReduceAction331 */,
   3 /* Color of ReduceAction331 */,
-  43 /* Color of ReduceAction331 */,
-  44 /* Property init */,
-  1807 /* Id of ReduceAction332 */,
+  43 /* Group of ? */,
+  1799 /* Id of ReduceAction332 */,
   3 /* Color of ReduceAction332 */,
-  43 /* Color of ReduceAction332 */,
-  44 /* Property init */,
-  1803 /* Id of ReduceAction333 */,
+  43 /* Group of ? */,
+  1795 /* Id of ReduceAction333 */,
   3 /* Color of ReduceAction333 */,
-  43 /* Color of ReduceAction333 */,
-  44 /* Property init */,
-  1799 /* Id of ReduceAction334 */,
+  43 /* Group of ? */,
+  1791 /* Id of ReduceAction334 */,
   3 /* Color of ReduceAction334 */,
-  43 /* Color of ReduceAction334 */,
-  44 /* Property init */,
-  1795 /* Id of ReduceAction335 */,
+  43 /* Group of ? */,
+  1787 /* Id of ReduceAction335 */,
   3 /* Color of ReduceAction335 */,
-  43 /* Color of ReduceAction335 */,
-  44 /* Property init */,
-  1791 /* Id of ReduceAction336 */,
+  43 /* Group of ? */,
+  1783 /* Id of ReduceAction336 */,
   3 /* Color of ReduceAction336 */,
-  43 /* Color of ReduceAction336 */,
-  44 /* Property init */,
-  1787 /* Id of ReduceAction337 */,
+  43 /* Group of ? */,
+  1779 /* Id of ReduceAction337 */,
   3 /* Color of ReduceAction337 */,
-  43 /* Color of ReduceAction337 */,
-  44 /* Property init */,
-  1783 /* Id of ReduceAction338 */,
+  43 /* Group of ? */,
+  1775 /* Id of ReduceAction338 */,
   3 /* Color of ReduceAction338 */,
-  43 /* Color of ReduceAction338 */,
-  44 /* Property init */,
-  1779 /* Id of ReduceAction339 */,
+  43 /* Group of ? */,
+  1771 /* Id of ReduceAction339 */,
   3 /* Color of ReduceAction339 */,
-  43 /* Color of ReduceAction339 */,
-  44 /* Property init */,
-  1771 /* Id of ReduceAction340 */,
+  43 /* Group of ? */,
+  1763 /* Id of ReduceAction340 */,
   3 /* Color of ReduceAction340 */,
-  43 /* Color of ReduceAction340 */,
-  44 /* Property init */,
-  1767 /* Id of ReduceAction341 */,
+  43 /* Group of ? */,
+  1759 /* Id of ReduceAction341 */,
   3 /* Color of ReduceAction341 */,
-  43 /* Color of ReduceAction341 */,
-  44 /* Property init */,
-  1763 /* Id of ReduceAction342 */,
+  43 /* Group of ? */,
+  1755 /* Id of ReduceAction342 */,
   3 /* Color of ReduceAction342 */,
-  43 /* Color of ReduceAction342 */,
-  44 /* Property init */,
-  1759 /* Id of ReduceAction343 */,
+  43 /* Group of ? */,
+  1751 /* Id of ReduceAction343 */,
   3 /* Color of ReduceAction343 */,
-  43 /* Color of ReduceAction343 */,
-  44 /* Property init */,
-  1755 /* Id of ReduceAction344 */,
+  43 /* Group of ? */,
+  1747 /* Id of ReduceAction344 */,
   3 /* Color of ReduceAction344 */,
-  43 /* Color of ReduceAction344 */,
-  44 /* Property init */,
-  1751 /* Id of ReduceAction345 */,
+  43 /* Group of ? */,
+  1743 /* Id of ReduceAction345 */,
   3 /* Color of ReduceAction345 */,
-  43 /* Color of ReduceAction345 */,
-  44 /* Property init */,
-  1747 /* Id of ReduceAction346 */,
+  43 /* Group of ? */,
+  1739 /* Id of ReduceAction346 */,
   3 /* Color of ReduceAction346 */,
-  43 /* Color of ReduceAction346 */,
-  44 /* Property init */,
-  1743 /* Id of ReduceAction347 */,
+  43 /* Group of ? */,
+  1735 /* Id of ReduceAction347 */,
   3 /* Color of ReduceAction347 */,
-  43 /* Color of ReduceAction347 */,
-  44 /* Property init */,
-  1739 /* Id of ReduceAction348 */,
+  43 /* Group of ? */,
+  1731 /* Id of ReduceAction348 */,
   3 /* Color of ReduceAction348 */,
-  43 /* Color of ReduceAction348 */,
-  44 /* Property init */,
-  1735 /* Id of ReduceAction349 */,
+  43 /* Group of ? */,
+  1727 /* Id of ReduceAction349 */,
   3 /* Color of ReduceAction349 */,
-  43 /* Color of ReduceAction349 */,
-  44 /* Property init */,
-  1727 /* Id of ReduceAction350 */,
+  43 /* Group of ? */,
+  1719 /* Id of ReduceAction350 */,
   3 /* Color of ReduceAction350 */,
-  43 /* Color of ReduceAction350 */,
-  44 /* Property init */,
-  1723 /* Id of ReduceAction351 */,
+  43 /* Group of ? */,
+  1715 /* Id of ReduceAction351 */,
   3 /* Color of ReduceAction351 */,
-  43 /* Color of ReduceAction351 */,
-  44 /* Property init */,
-  1719 /* Id of ReduceAction352 */,
+  43 /* Group of ? */,
+  1711 /* Id of ReduceAction352 */,
   3 /* Color of ReduceAction352 */,
-  43 /* Color of ReduceAction352 */,
-  44 /* Property init */,
-  1715 /* Id of ReduceAction353 */,
+  43 /* Group of ? */,
+  1707 /* Id of ReduceAction353 */,
   3 /* Color of ReduceAction353 */,
-  43 /* Color of ReduceAction353 */,
-  44 /* Property init */,
-  1711 /* Id of ReduceAction354 */,
+  43 /* Group of ? */,
+  1703 /* Id of ReduceAction354 */,
   3 /* Color of ReduceAction354 */,
-  43 /* Color of ReduceAction354 */,
-  44 /* Property init */,
-  1707 /* Id of ReduceAction355 */,
+  43 /* Group of ? */,
+  1699 /* Id of ReduceAction355 */,
   3 /* Color of ReduceAction355 */,
-  43 /* Color of ReduceAction355 */,
-  44 /* Property init */,
-  1703 /* Id of ReduceAction356 */,
+  43 /* Group of ? */,
+  1695 /* Id of ReduceAction356 */,
   3 /* Color of ReduceAction356 */,
-  43 /* Color of ReduceAction356 */,
-  44 /* Property init */,
-  1699 /* Id of ReduceAction357 */,
+  43 /* Group of ? */,
+  1691 /* Id of ReduceAction357 */,
   3 /* Color of ReduceAction357 */,
-  43 /* Color of ReduceAction357 */,
-  44 /* Property init */,
-  1695 /* Id of ReduceAction358 */,
+  43 /* Group of ? */,
+  1687 /* Id of ReduceAction358 */,
   3 /* Color of ReduceAction358 */,
-  43 /* Color of ReduceAction358 */,
-  44 /* Property init */,
-  1691 /* Id of ReduceAction359 */,
+  43 /* Group of ? */,
+  1683 /* Id of ReduceAction359 */,
   3 /* Color of ReduceAction359 */,
-  43 /* Color of ReduceAction359 */,
-  44 /* Property init */,
-  1683 /* Id of ReduceAction360 */,
+  43 /* Group of ? */,
+  1675 /* Id of ReduceAction360 */,
   3 /* Color of ReduceAction360 */,
-  43 /* Color of ReduceAction360 */,
-  44 /* Property init */,
-  1679 /* Id of ReduceAction361 */,
+  43 /* Group of ? */,
+  1671 /* Id of ReduceAction361 */,
   3 /* Color of ReduceAction361 */,
-  43 /* Color of ReduceAction361 */,
-  44 /* Property init */,
-  1675 /* Id of ReduceAction362 */,
+  43 /* Group of ? */,
+  1667 /* Id of ReduceAction362 */,
   3 /* Color of ReduceAction362 */,
-  43 /* Color of ReduceAction362 */,
-  44 /* Property init */,
-  1671 /* Id of ReduceAction363 */,
+  43 /* Group of ? */,
+  1663 /* Id of ReduceAction363 */,
   3 /* Color of ReduceAction363 */,
-  43 /* Color of ReduceAction363 */,
-  44 /* Property init */,
-  1667 /* Id of ReduceAction364 */,
+  43 /* Group of ? */,
+  1659 /* Id of ReduceAction364 */,
   3 /* Color of ReduceAction364 */,
-  43 /* Color of ReduceAction364 */,
-  44 /* Property init */,
-  1663 /* Id of ReduceAction365 */,
+  43 /* Group of ? */,
+  1655 /* Id of ReduceAction365 */,
   3 /* Color of ReduceAction365 */,
-  43 /* Color of ReduceAction365 */,
-  44 /* Property init */,
-  1659 /* Id of ReduceAction366 */,
+  43 /* Group of ? */,
+  1651 /* Id of ReduceAction366 */,
   3 /* Color of ReduceAction366 */,
-  43 /* Color of ReduceAction366 */,
-  44 /* Property init */,
-  1655 /* Id of ReduceAction367 */,
+  43 /* Group of ? */,
+  1647 /* Id of ReduceAction367 */,
   3 /* Color of ReduceAction367 */,
-  43 /* Color of ReduceAction367 */,
-  44 /* Property init */,
-  1651 /* Id of ReduceAction368 */,
+  43 /* Group of ? */,
+  1643 /* Id of ReduceAction368 */,
   3 /* Color of ReduceAction368 */,
-  43 /* Color of ReduceAction368 */,
-  44 /* Property init */,
-  1647 /* Id of ReduceAction369 */,
+  43 /* Group of ? */,
+  1639 /* Id of ReduceAction369 */,
   3 /* Color of ReduceAction369 */,
-  43 /* Color of ReduceAction369 */,
-  44 /* Property init */,
-  1639 /* Id of ReduceAction370 */,
+  43 /* Group of ? */,
+  1631 /* Id of ReduceAction370 */,
   3 /* Color of ReduceAction370 */,
-  43 /* Color of ReduceAction370 */,
-  44 /* Property init */,
-  1635 /* Id of ReduceAction371 */,
+  43 /* Group of ? */,
+  1627 /* Id of ReduceAction371 */,
   3 /* Color of ReduceAction371 */,
-  43 /* Color of ReduceAction371 */,
-  44 /* Property init */,
-  1631 /* Id of ReduceAction372 */,
+  43 /* Group of ? */,
+  1623 /* Id of ReduceAction372 */,
   3 /* Color of ReduceAction372 */,
-  43 /* Color of ReduceAction372 */,
-  44 /* Property init */,
-  1627 /* Id of ReduceAction373 */,
+  43 /* Group of ? */,
+  1619 /* Id of ReduceAction373 */,
   3 /* Color of ReduceAction373 */,
-  43 /* Color of ReduceAction373 */,
-  44 /* Property init */,
-  1623 /* Id of ReduceAction374 */,
+  43 /* Group of ? */,
+  1615 /* Id of ReduceAction374 */,
   3 /* Color of ReduceAction374 */,
-  43 /* Color of ReduceAction374 */,
-  44 /* Property init */,
-  1619 /* Id of ReduceAction375 */,
+  43 /* Group of ? */,
+  1611 /* Id of ReduceAction375 */,
   3 /* Color of ReduceAction375 */,
-  43 /* Color of ReduceAction375 */,
-  44 /* Property init */,
-  1615 /* Id of ReduceAction376 */,
+  43 /* Group of ? */,
+  1607 /* Id of ReduceAction376 */,
   3 /* Color of ReduceAction376 */,
-  43 /* Color of ReduceAction376 */,
-  44 /* Property init */,
-  1611 /* Id of ReduceAction377 */,
+  43 /* Group of ? */,
+  1603 /* Id of ReduceAction377 */,
   3 /* Color of ReduceAction377 */,
-  43 /* Color of ReduceAction377 */,
-  44 /* Property init */,
-  1607 /* Id of ReduceAction378 */,
+  43 /* Group of ? */,
+  1599 /* Id of ReduceAction378 */,
   3 /* Color of ReduceAction378 */,
-  43 /* Color of ReduceAction378 */,
-  44 /* Property init */,
-  1603 /* Id of ReduceAction379 */,
+  43 /* Group of ? */,
+  1595 /* Id of ReduceAction379 */,
   3 /* Color of ReduceAction379 */,
-  43 /* Color of ReduceAction379 */,
-  44 /* Property init */,
-  1595 /* Id of ReduceAction380 */,
+  43 /* Group of ? */,
+  1587 /* Id of ReduceAction380 */,
   3 /* Color of ReduceAction380 */,
-  43 /* Color of ReduceAction380 */,
-  44 /* Property init */,
-  1591 /* Id of ReduceAction381 */,
+  43 /* Group of ? */,
+  1583 /* Id of ReduceAction381 */,
   3 /* Color of ReduceAction381 */,
-  43 /* Color of ReduceAction381 */,
-  44 /* Property init */,
-  1587 /* Id of ReduceAction382 */,
+  43 /* Group of ? */,
+  1579 /* Id of ReduceAction382 */,
   3 /* Color of ReduceAction382 */,
-  43 /* Color of ReduceAction382 */,
-  44 /* Property init */,
-  1583 /* Id of ReduceAction383 */,
+  43 /* Group of ? */,
+  1575 /* Id of ReduceAction383 */,
   3 /* Color of ReduceAction383 */,
-  43 /* Color of ReduceAction383 */,
-  44 /* Property init */,
-  1579 /* Id of ReduceAction384 */,
+  43 /* Group of ? */,
+  1571 /* Id of ReduceAction384 */,
   3 /* Color of ReduceAction384 */,
-  43 /* Color of ReduceAction384 */,
-  44 /* Property init */,
-  1575 /* Id of ReduceAction385 */,
+  43 /* Group of ? */,
+  1567 /* Id of ReduceAction385 */,
   3 /* Color of ReduceAction385 */,
-  43 /* Color of ReduceAction385 */,
-  44 /* Property init */,
-  1571 /* Id of ReduceAction386 */,
+  43 /* Group of ? */,
+  1563 /* Id of ReduceAction386 */,
   3 /* Color of ReduceAction386 */,
-  43 /* Color of ReduceAction386 */,
-  44 /* Property init */,
-  1567 /* Id of ReduceAction387 */,
+  43 /* Group of ? */,
+  1559 /* Id of ReduceAction387 */,
   3 /* Color of ReduceAction387 */,
-  43 /* Color of ReduceAction387 */,
-  44 /* Property init */,
-  1563 /* Id of ReduceAction388 */,
+  43 /* Group of ? */,
+  1555 /* Id of ReduceAction388 */,
   3 /* Color of ReduceAction388 */,
-  43 /* Color of ReduceAction388 */,
-  44 /* Property init */,
-  1559 /* Id of ReduceAction389 */,
+  43 /* Group of ? */,
+  1551 /* Id of ReduceAction389 */,
   3 /* Color of ReduceAction389 */,
-  43 /* Color of ReduceAction389 */,
-  44 /* Property init */,
-  1551 /* Id of ReduceAction390 */,
+  43 /* Group of ? */,
+  1543 /* Id of ReduceAction390 */,
   3 /* Color of ReduceAction390 */,
-  43 /* Color of ReduceAction390 */,
-  44 /* Property init */,
-  1547 /* Id of ReduceAction391 */,
+  43 /* Group of ? */,
+  1539 /* Id of ReduceAction391 */,
   3 /* Color of ReduceAction391 */,
-  43 /* Color of ReduceAction391 */,
-  44 /* Property init */,
-  1543 /* Id of ReduceAction392 */,
+  43 /* Group of ? */,
+  1535 /* Id of ReduceAction392 */,
   3 /* Color of ReduceAction392 */,
-  43 /* Color of ReduceAction392 */,
-  44 /* Property init */,
-  1539 /* Id of ReduceAction393 */,
+  43 /* Group of ? */,
+  1531 /* Id of ReduceAction393 */,
   3 /* Color of ReduceAction393 */,
-  43 /* Color of ReduceAction393 */,
-  44 /* Property init */,
-  1535 /* Id of ReduceAction394 */,
+  43 /* Group of ? */,
+  1527 /* Id of ReduceAction394 */,
   3 /* Color of ReduceAction394 */,
-  43 /* Color of ReduceAction394 */,
-  44 /* Property init */,
-  1531 /* Id of ReduceAction395 */,
+  43 /* Group of ? */,
+  1523 /* Id of ReduceAction395 */,
   3 /* Color of ReduceAction395 */,
-  43 /* Color of ReduceAction395 */,
-  44 /* Property init */,
-  1527 /* Id of ReduceAction396 */,
+  43 /* Group of ? */,
+  1519 /* Id of ReduceAction396 */,
   3 /* Color of ReduceAction396 */,
-  43 /* Color of ReduceAction396 */,
-  44 /* Property init */,
-  1523 /* Id of ReduceAction397 */,
+  43 /* Group of ? */,
+  1515 /* Id of ReduceAction397 */,
   3 /* Color of ReduceAction397 */,
-  43 /* Color of ReduceAction397 */,
-  44 /* Property init */,
-  1519 /* Id of ReduceAction398 */,
+  43 /* Group of ? */,
+  1511 /* Id of ReduceAction398 */,
   3 /* Color of ReduceAction398 */,
-  43 /* Color of ReduceAction398 */,
-  44 /* Property init */,
-  1515 /* Id of ReduceAction399 */,
+  43 /* Group of ? */,
+  1507 /* Id of ReduceAction399 */,
   3 /* Color of ReduceAction399 */,
-  43 /* Color of ReduceAction399 */,
-  44 /* Property init */,
-  1503 /* Id of ReduceAction400 */,
+  43 /* Group of ? */,
+  1495 /* Id of ReduceAction400 */,
   3 /* Color of ReduceAction400 */,
-  43 /* Color of ReduceAction400 */,
-  44 /* Property init */,
-  1499 /* Id of ReduceAction401 */,
+  43 /* Group of ? */,
+  1491 /* Id of ReduceAction401 */,
   3 /* Color of ReduceAction401 */,
-  43 /* Color of ReduceAction401 */,
-  44 /* Property init */,
-  1495 /* Id of ReduceAction402 */,
+  43 /* Group of ? */,
+  1487 /* Id of ReduceAction402 */,
   3 /* Color of ReduceAction402 */,
-  43 /* Color of ReduceAction402 */,
-  44 /* Property init */,
-  1491 /* Id of ReduceAction403 */,
+  43 /* Group of ? */,
+  1483 /* Id of ReduceAction403 */,
   3 /* Color of ReduceAction403 */,
-  43 /* Color of ReduceAction403 */,
-  44 /* Property init */,
-  1487 /* Id of ReduceAction404 */,
+  43 /* Group of ? */,
+  1479 /* Id of ReduceAction404 */,
   3 /* Color of ReduceAction404 */,
-  43 /* Color of ReduceAction404 */,
-  44 /* Property init */,
-  1483 /* Id of ReduceAction405 */,
+  43 /* Group of ? */,
+  1475 /* Id of ReduceAction405 */,
   3 /* Color of ReduceAction405 */,
-  43 /* Color of ReduceAction405 */,
-  44 /* Property init */,
-  1479 /* Id of ReduceAction406 */,
+  43 /* Group of ? */,
+  1471 /* Id of ReduceAction406 */,
   3 /* Color of ReduceAction406 */,
-  43 /* Color of ReduceAction406 */,
-  44 /* Property init */,
-  1475 /* Id of ReduceAction407 */,
+  43 /* Group of ? */,
+  1467 /* Id of ReduceAction407 */,
   3 /* Color of ReduceAction407 */,
-  43 /* Color of ReduceAction407 */,
-  44 /* Property init */,
-  1471 /* Id of ReduceAction408 */,
+  43 /* Group of ? */,
+  1463 /* Id of ReduceAction408 */,
   3 /* Color of ReduceAction408 */,
-  43 /* Color of ReduceAction408 */,
-  44 /* Property init */,
-  1467 /* Id of ReduceAction409 */,
+  43 /* Group of ? */,
+  1459 /* Id of ReduceAction409 */,
   3 /* Color of ReduceAction409 */,
-  43 /* Color of ReduceAction409 */,
-  44 /* Property init */,
-  1459 /* Id of ReduceAction410 */,
+  43 /* Group of ? */,
+  1451 /* Id of ReduceAction410 */,
   3 /* Color of ReduceAction410 */,
-  43 /* Color of ReduceAction410 */,
-  44 /* Property init */,
-  1455 /* Id of ReduceAction411 */,
+  43 /* Group of ? */,
+  1447 /* Id of ReduceAction411 */,
   3 /* Color of ReduceAction411 */,
-  43 /* Color of ReduceAction411 */,
-  44 /* Property init */,
-  1451 /* Id of ReduceAction412 */,
+  43 /* Group of ? */,
+  1443 /* Id of ReduceAction412 */,
   3 /* Color of ReduceAction412 */,
-  43 /* Color of ReduceAction412 */,
-  44 /* Property init */,
-  1447 /* Id of ReduceAction413 */,
+  43 /* Group of ? */,
+  1439 /* Id of ReduceAction413 */,
   3 /* Color of ReduceAction413 */,
-  43 /* Color of ReduceAction413 */,
-  44 /* Property init */,
-  1443 /* Id of ReduceAction414 */,
+  43 /* Group of ? */,
+  1435 /* Id of ReduceAction414 */,
   3 /* Color of ReduceAction414 */,
-  43 /* Color of ReduceAction414 */,
-  44 /* Property init */,
-  1439 /* Id of ReduceAction415 */,
+  43 /* Group of ? */,
+  1431 /* Id of ReduceAction415 */,
   3 /* Color of ReduceAction415 */,
-  43 /* Color of ReduceAction415 */,
-  44 /* Property init */,
-  1435 /* Id of ReduceAction416 */,
+  43 /* Group of ? */,
+  1427 /* Id of ReduceAction416 */,
   3 /* Color of ReduceAction416 */,
-  43 /* Color of ReduceAction416 */,
-  44 /* Property init */,
-  1431 /* Id of ReduceAction417 */,
+  43 /* Group of ? */,
+  1423 /* Id of ReduceAction417 */,
   3 /* Color of ReduceAction417 */,
-  43 /* Color of ReduceAction417 */,
-  44 /* Property init */,
-  1427 /* Id of ReduceAction418 */,
+  43 /* Group of ? */,
+  1419 /* Id of ReduceAction418 */,
   3 /* Color of ReduceAction418 */,
-  43 /* Color of ReduceAction418 */,
-  44 /* Property init */,
-  1423 /* Id of ReduceAction419 */,
+  43 /* Group of ? */,
+  1415 /* Id of ReduceAction419 */,
   3 /* Color of ReduceAction419 */,
-  43 /* Color of ReduceAction419 */,
-  44 /* Property init */,
-  1415 /* Id of ReduceAction420 */,
+  43 /* Group of ? */,
+  1407 /* Id of ReduceAction420 */,
   3 /* Color of ReduceAction420 */,
-  43 /* Color of ReduceAction420 */,
-  44 /* Property init */,
-  1411 /* Id of ReduceAction421 */,
+  43 /* Group of ? */,
+  1403 /* Id of ReduceAction421 */,
   3 /* Color of ReduceAction421 */,
-  43 /* Color of ReduceAction421 */,
-  44 /* Property init */,
-  1407 /* Id of ReduceAction422 */,
+  43 /* Group of ? */,
+  1399 /* Id of ReduceAction422 */,
   3 /* Color of ReduceAction422 */,
-  43 /* Color of ReduceAction422 */,
-  44 /* Property init */,
-  1403 /* Id of ReduceAction423 */,
+  43 /* Group of ? */,
+  1395 /* Id of ReduceAction423 */,
   3 /* Color of ReduceAction423 */,
-  43 /* Color of ReduceAction423 */,
-  44 /* Property init */,
-  1399 /* Id of ReduceAction424 */,
+  43 /* Group of ? */,
+  1391 /* Id of ReduceAction424 */,
   3 /* Color of ReduceAction424 */,
-  43 /* Color of ReduceAction424 */,
-  44 /* Property init */,
-  1395 /* Id of ReduceAction425 */,
+  43 /* Group of ? */,
+  1387 /* Id of ReduceAction425 */,
   3 /* Color of ReduceAction425 */,
-  43 /* Color of ReduceAction425 */,
-  44 /* Property init */,
-  1391 /* Id of ReduceAction426 */,
+  43 /* Group of ? */,
+  1383 /* Id of ReduceAction426 */,
   3 /* Color of ReduceAction426 */,
-  43 /* Color of ReduceAction426 */,
-  44 /* Property init */,
-  1387 /* Id of ReduceAction427 */,
+  43 /* Group of ? */,
+  1379 /* Id of ReduceAction427 */,
   3 /* Color of ReduceAction427 */,
-  43 /* Color of ReduceAction427 */,
-  44 /* Property init */,
-  1383 /* Id of ReduceAction428 */,
+  43 /* Group of ? */,
+  1375 /* Id of ReduceAction428 */,
   3 /* Color of ReduceAction428 */,
-  43 /* Color of ReduceAction428 */,
-  44 /* Property init */,
-  1379 /* Id of ReduceAction429 */,
+  43 /* Group of ? */,
+  1371 /* Id of ReduceAction429 */,
   3 /* Color of ReduceAction429 */,
-  43 /* Color of ReduceAction429 */,
-  44 /* Property init */,
-  1371 /* Id of ReduceAction430 */,
+  43 /* Group of ? */,
+  1363 /* Id of ReduceAction430 */,
   3 /* Color of ReduceAction430 */,
-  43 /* Color of ReduceAction430 */,
-  44 /* Property init */,
-  1367 /* Id of ReduceAction431 */,
+  43 /* Group of ? */,
+  1359 /* Id of ReduceAction431 */,
   3 /* Color of ReduceAction431 */,
-  43 /* Color of ReduceAction431 */,
-  44 /* Property init */,
-  1363 /* Id of ReduceAction432 */,
+  43 /* Group of ? */,
+  1355 /* Id of ReduceAction432 */,
   3 /* Color of ReduceAction432 */,
-  43 /* Color of ReduceAction432 */,
-  44 /* Property init */,
-  1359 /* Id of ReduceAction433 */,
+  43 /* Group of ? */,
+  1351 /* Id of ReduceAction433 */,
   3 /* Color of ReduceAction433 */,
-  43 /* Color of ReduceAction433 */,
-  44 /* Property init */,
-  1355 /* Id of ReduceAction434 */,
+  43 /* Group of ? */,
+  1347 /* Id of ReduceAction434 */,
   3 /* Color of ReduceAction434 */,
-  43 /* Color of ReduceAction434 */,
-  44 /* Property init */,
-  1351 /* Id of ReduceAction435 */,
+  43 /* Group of ? */,
+  1343 /* Id of ReduceAction435 */,
   3 /* Color of ReduceAction435 */,
-  43 /* Color of ReduceAction435 */,
-  44 /* Property init */,
-  1347 /* Id of ReduceAction436 */,
+  43 /* Group of ? */,
+  1339 /* Id of ReduceAction436 */,
   3 /* Color of ReduceAction436 */,
-  43 /* Color of ReduceAction436 */,
-  44 /* Property init */,
-  1343 /* Id of ReduceAction437 */,
+  43 /* Group of ? */,
+  1335 /* Id of ReduceAction437 */,
   3 /* Color of ReduceAction437 */,
-  43 /* Color of ReduceAction437 */,
-  44 /* Property init */,
-  1339 /* Id of ReduceAction438 */,
+  43 /* Group of ? */,
+  1331 /* Id of ReduceAction438 */,
   3 /* Color of ReduceAction438 */,
-  43 /* Color of ReduceAction438 */,
-  44 /* Property init */,
-  1335 /* Id of ReduceAction439 */,
+  43 /* Group of ? */,
+  1327 /* Id of ReduceAction439 */,
   3 /* Color of ReduceAction439 */,
-  43 /* Color of ReduceAction439 */,
-  44 /* Property init */,
-  1327 /* Id of ReduceAction440 */,
+  43 /* Group of ? */,
+  1319 /* Id of ReduceAction440 */,
   3 /* Color of ReduceAction440 */,
-  43 /* Color of ReduceAction440 */,
-  44 /* Property init */,
-  1323 /* Id of ReduceAction441 */,
+  43 /* Group of ? */,
+  1315 /* Id of ReduceAction441 */,
   3 /* Color of ReduceAction441 */,
-  43 /* Color of ReduceAction441 */,
-  44 /* Property init */,
-  1319 /* Id of ReduceAction442 */,
+  43 /* Group of ? */,
+  1311 /* Id of ReduceAction442 */,
   3 /* Color of ReduceAction442 */,
-  43 /* Color of ReduceAction442 */,
-  44 /* Property init */,
-  1315 /* Id of ReduceAction443 */,
+  43 /* Group of ? */,
+  1307 /* Id of ReduceAction443 */,
   3 /* Color of ReduceAction443 */,
-  43 /* Color of ReduceAction443 */,
-  44 /* Property init */,
-  1311 /* Id of ReduceAction444 */,
+  43 /* Group of ? */,
+  1303 /* Id of ReduceAction444 */,
   3 /* Color of ReduceAction444 */,
-  43 /* Color of ReduceAction444 */,
-  44 /* Property init */,
-  1307 /* Id of ReduceAction445 */,
+  43 /* Group of ? */,
+  1299 /* Id of ReduceAction445 */,
   3 /* Color of ReduceAction445 */,
-  43 /* Color of ReduceAction445 */,
-  44 /* Property init */,
-  1303 /* Id of ReduceAction446 */,
+  43 /* Group of ? */,
+  1295 /* Id of ReduceAction446 */,
   3 /* Color of ReduceAction446 */,
-  43 /* Color of ReduceAction446 */,
-  44 /* Property init */,
-  1299 /* Id of ReduceAction447 */,
+  43 /* Group of ? */,
+  1291 /* Id of ReduceAction447 */,
   3 /* Color of ReduceAction447 */,
-  43 /* Color of ReduceAction447 */,
-  44 /* Property init */,
-  1295 /* Id of ReduceAction448 */,
+  43 /* Group of ? */,
+  1287 /* Id of ReduceAction448 */,
   3 /* Color of ReduceAction448 */,
-  43 /* Color of ReduceAction448 */,
-  44 /* Property init */,
-  1291 /* Id of ReduceAction449 */,
+  43 /* Group of ? */,
+  1283 /* Id of ReduceAction449 */,
   3 /* Color of ReduceAction449 */,
-  43 /* Color of ReduceAction449 */,
-  44 /* Property init */,
-  1283 /* Id of ReduceAction450 */,
+  43 /* Group of ? */,
+  1275 /* Id of ReduceAction450 */,
   3 /* Color of ReduceAction450 */,
-  43 /* Color of ReduceAction450 */,
-  44 /* Property init */,
-  1279 /* Id of ReduceAction451 */,
+  43 /* Group of ? */,
+  1271 /* Id of ReduceAction451 */,
   3 /* Color of ReduceAction451 */,
-  43 /* Color of ReduceAction451 */,
-  44 /* Property init */,
-  1275 /* Id of ReduceAction452 */,
+  43 /* Group of ? */,
+  1267 /* Id of ReduceAction452 */,
   3 /* Color of ReduceAction452 */,
-  43 /* Color of ReduceAction452 */,
-  44 /* Property init */,
-  1271 /* Id of ReduceAction453 */,
+  43 /* Group of ? */,
+  1263 /* Id of ReduceAction453 */,
   3 /* Color of ReduceAction453 */,
-  43 /* Color of ReduceAction453 */,
-  44 /* Property init */,
-  1267 /* Id of ReduceAction454 */,
+  43 /* Group of ? */,
+  1259 /* Id of ReduceAction454 */,
   3 /* Color of ReduceAction454 */,
-  43 /* Color of ReduceAction454 */,
-  44 /* Property init */,
-  1263 /* Id of ReduceAction455 */,
+  43 /* Group of ? */,
+  1255 /* Id of ReduceAction455 */,
   3 /* Color of ReduceAction455 */,
-  43 /* Color of ReduceAction455 */,
-  44 /* Property init */,
-  1259 /* Id of ReduceAction456 */,
+  43 /* Group of ? */,
+  1251 /* Id of ReduceAction456 */,
   3 /* Color of ReduceAction456 */,
-  43 /* Color of ReduceAction456 */,
-  44 /* Property init */,
-  1255 /* Id of ReduceAction457 */,
+  43 /* Group of ? */,
+  1247 /* Id of ReduceAction457 */,
   3 /* Color of ReduceAction457 */,
-  43 /* Color of ReduceAction457 */,
-  44 /* Property init */,
-  1251 /* Id of ReduceAction458 */,
+  43 /* Group of ? */,
+  1243 /* Id of ReduceAction458 */,
   3 /* Color of ReduceAction458 */,
-  43 /* Color of ReduceAction458 */,
-  44 /* Property init */,
-  1247 /* Id of ReduceAction459 */,
+  43 /* Group of ? */,
+  1239 /* Id of ReduceAction459 */,
   3 /* Color of ReduceAction459 */,
-  43 /* Color of ReduceAction459 */,
-  44 /* Property init */,
-  1239 /* Id of ReduceAction460 */,
+  43 /* Group of ? */,
+  1231 /* Id of ReduceAction460 */,
   3 /* Color of ReduceAction460 */,
-  43 /* Color of ReduceAction460 */,
-  44 /* Property init */,
-  1235 /* Id of ReduceAction461 */,
+  43 /* Group of ? */,
+  1227 /* Id of ReduceAction461 */,
   3 /* Color of ReduceAction461 */,
-  43 /* Color of ReduceAction461 */,
-  44 /* Property init */,
-  1231 /* Id of ReduceAction462 */,
+  43 /* Group of ? */,
+  1223 /* Id of ReduceAction462 */,
   3 /* Color of ReduceAction462 */,
-  43 /* Color of ReduceAction462 */,
-  44 /* Property init */,
-  1227 /* Id of ReduceAction463 */,
+  43 /* Group of ? */,
+  1219 /* Id of ReduceAction463 */,
   3 /* Color of ReduceAction463 */,
-  43 /* Color of ReduceAction463 */,
-  44 /* Property init */,
-  1223 /* Id of ReduceAction464 */,
+  43 /* Group of ? */,
+  1215 /* Id of ReduceAction464 */,
   3 /* Color of ReduceAction464 */,
-  43 /* Color of ReduceAction464 */,
-  44 /* Property init */,
-  1219 /* Id of ReduceAction465 */,
+  43 /* Group of ? */,
+  1211 /* Id of ReduceAction465 */,
   3 /* Color of ReduceAction465 */,
-  43 /* Color of ReduceAction465 */,
-  44 /* Property init */,
-  1215 /* Id of ReduceAction466 */,
+  43 /* Group of ? */,
+  1207 /* Id of ReduceAction466 */,
   3 /* Color of ReduceAction466 */,
-  43 /* Color of ReduceAction466 */,
-  44 /* Property init */,
-  1211 /* Id of ReduceAction467 */,
+  43 /* Group of ? */,
+  1203 /* Id of ReduceAction467 */,
   3 /* Color of ReduceAction467 */,
-  43 /* Color of ReduceAction467 */,
-  44 /* Property init */,
-  1207 /* Id of ReduceAction468 */,
+  43 /* Group of ? */,
+  1199 /* Id of ReduceAction468 */,
   3 /* Color of ReduceAction468 */,
-  43 /* Color of ReduceAction468 */,
-  44 /* Property init */,
-  1203 /* Id of ReduceAction469 */,
+  43 /* Group of ? */,
+  1195 /* Id of ReduceAction469 */,
   3 /* Color of ReduceAction469 */,
-  43 /* Color of ReduceAction469 */,
-  44 /* Property init */,
-  1195 /* Id of ReduceAction470 */,
+  43 /* Group of ? */,
+  1187 /* Id of ReduceAction470 */,
   3 /* Color of ReduceAction470 */,
-  43 /* Color of ReduceAction470 */,
-  44 /* Property init */,
-  1191 /* Id of ReduceAction471 */,
+  43 /* Group of ? */,
+  1183 /* Id of ReduceAction471 */,
   3 /* Color of ReduceAction471 */,
-  43 /* Color of ReduceAction471 */,
-  44 /* Property init */,
-  1187 /* Id of ReduceAction472 */,
+  43 /* Group of ? */,
+  1179 /* Id of ReduceAction472 */,
   3 /* Color of ReduceAction472 */,
-  43 /* Color of ReduceAction472 */,
-  44 /* Property init */,
-  1183 /* Id of ReduceAction473 */,
+  43 /* Group of ? */,
+  1175 /* Id of ReduceAction473 */,
   3 /* Color of ReduceAction473 */,
-  43 /* Color of ReduceAction473 */,
-  44 /* Property init */,
-  1179 /* Id of ReduceAction474 */,
+  43 /* Group of ? */,
+  1171 /* Id of ReduceAction474 */,
   3 /* Color of ReduceAction474 */,
-  43 /* Color of ReduceAction474 */,
-  44 /* Property init */,
-  1175 /* Id of ReduceAction475 */,
+  43 /* Group of ? */,
+  1167 /* Id of ReduceAction475 */,
   3 /* Color of ReduceAction475 */,
-  43 /* Color of ReduceAction475 */,
-  44 /* Property init */,
-  1171 /* Id of ReduceAction476 */,
+  43 /* Group of ? */,
+  1163 /* Id of ReduceAction476 */,
   3 /* Color of ReduceAction476 */,
-  43 /* Color of ReduceAction476 */,
-  44 /* Property init */,
-  1167 /* Id of ReduceAction477 */,
+  43 /* Group of ? */,
+  1159 /* Id of ReduceAction477 */,
   3 /* Color of ReduceAction477 */,
-  43 /* Color of ReduceAction477 */,
-  44 /* Property init */,
-  1163 /* Id of ReduceAction478 */,
+  43 /* Group of ? */,
+  1155 /* Id of ReduceAction478 */,
   3 /* Color of ReduceAction478 */,
-  43 /* Color of ReduceAction478 */,
-  44 /* Property init */,
-  1159 /* Id of ReduceAction479 */,
+  43 /* Group of ? */,
+  1151 /* Id of ReduceAction479 */,
   3 /* Color of ReduceAction479 */,
-  43 /* Color of ReduceAction479 */,
-  44 /* Property init */,
-  1151 /* Id of ReduceAction480 */,
+  43 /* Group of ? */,
+  1143 /* Id of ReduceAction480 */,
   3 /* Color of ReduceAction480 */,
-  43 /* Color of ReduceAction480 */,
-  44 /* Property init */,
-  1147 /* Id of ReduceAction481 */,
+  43 /* Group of ? */,
+  1139 /* Id of ReduceAction481 */,
   3 /* Color of ReduceAction481 */,
-  43 /* Color of ReduceAction481 */,
-  44 /* Property init */,
-  1143 /* Id of ReduceAction482 */,
+  43 /* Group of ? */,
+  1135 /* Id of ReduceAction482 */,
   3 /* Color of ReduceAction482 */,
-  43 /* Color of ReduceAction482 */,
-  44 /* Property init */,
-  1139 /* Id of ReduceAction483 */,
+  43 /* Group of ? */,
+  1131 /* Id of ReduceAction483 */,
   3 /* Color of ReduceAction483 */,
-  43 /* Color of ReduceAction483 */,
-  44 /* Property init */,
-  1135 /* Id of ReduceAction484 */,
+  43 /* Group of ? */,
+  1127 /* Id of ReduceAction484 */,
   3 /* Color of ReduceAction484 */,
-  43 /* Color of ReduceAction484 */,
-  44 /* Property init */,
-  1131 /* Id of ReduceAction485 */,
+  43 /* Group of ? */,
+  1123 /* Id of ReduceAction485 */,
   3 /* Color of ReduceAction485 */,
-  43 /* Color of ReduceAction485 */,
-  44 /* Property init */,
-  1127 /* Id of ReduceAction486 */,
+  43 /* Group of ? */,
+  1119 /* Id of ReduceAction486 */,
   3 /* Color of ReduceAction486 */,
-  43 /* Color of ReduceAction486 */,
-  44 /* Property init */,
-  1123 /* Id of ReduceAction487 */,
+  43 /* Group of ? */,
+  1115 /* Id of ReduceAction487 */,
   3 /* Color of ReduceAction487 */,
-  43 /* Color of ReduceAction487 */,
-  44 /* Property init */,
-  1119 /* Id of ReduceAction488 */,
+  43 /* Group of ? */,
+  1111 /* Id of ReduceAction488 */,
   3 /* Color of ReduceAction488 */,
-  43 /* Color of ReduceAction488 */,
-  44 /* Property init */,
-  1115 /* Id of ReduceAction489 */,
+  43 /* Group of ? */,
+  1107 /* Id of ReduceAction489 */,
   3 /* Color of ReduceAction489 */,
-  43 /* Color of ReduceAction489 */,
-  44 /* Property init */,
-  1107 /* Id of ReduceAction490 */,
+  43 /* Group of ? */,
+  1099 /* Id of ReduceAction490 */,
   3 /* Color of ReduceAction490 */,
-  43 /* Color of ReduceAction490 */,
-  44 /* Property init */,
-  1103 /* Id of ReduceAction491 */,
+  43 /* Group of ? */,
+  1095 /* Id of ReduceAction491 */,
   3 /* Color of ReduceAction491 */,
-  43 /* Color of ReduceAction491 */,
-  44 /* Property init */,
-  1099 /* Id of ReduceAction492 */,
+  43 /* Group of ? */,
+  1091 /* Id of ReduceAction492 */,
   3 /* Color of ReduceAction492 */,
-  43 /* Color of ReduceAction492 */,
-  44 /* Property init */,
-  1095 /* Id of ReduceAction493 */,
+  43 /* Group of ? */,
+  1087 /* Id of ReduceAction493 */,
   3 /* Color of ReduceAction493 */,
-  43 /* Color of ReduceAction493 */,
-  44 /* Property init */,
-  1091 /* Id of ReduceAction494 */,
+  43 /* Group of ? */,
+  1083 /* Id of ReduceAction494 */,
   3 /* Color of ReduceAction494 */,
-  43 /* Color of ReduceAction494 */,
-  44 /* Property init */,
-  1087 /* Id of ReduceAction495 */,
+  43 /* Group of ? */,
+  1079 /* Id of ReduceAction495 */,
   3 /* Color of ReduceAction495 */,
-  43 /* Color of ReduceAction495 */,
-  44 /* Property init */,
-  1083 /* Id of ReduceAction496 */,
+  43 /* Group of ? */,
+  1075 /* Id of ReduceAction496 */,
   3 /* Color of ReduceAction496 */,
-  43 /* Color of ReduceAction496 */,
-  44 /* Property init */,
-  1079 /* Id of ReduceAction497 */,
+  43 /* Group of ? */,
+  1071 /* Id of ReduceAction497 */,
   3 /* Color of ReduceAction497 */,
-  43 /* Color of ReduceAction497 */,
-  44 /* Property init */,
-  1075 /* Id of ReduceAction498 */,
+  43 /* Group of ? */,
+  1067 /* Id of ReduceAction498 */,
   3 /* Color of ReduceAction498 */,
-  43 /* Color of ReduceAction498 */,
-  44 /* Property init */,
-  1071 /* Id of ReduceAction499 */,
+  43 /* Group of ? */,
+  1063 /* Id of ReduceAction499 */,
   3 /* Color of ReduceAction499 */,
-  43 /* Color of ReduceAction499 */,
-  44 /* Property init */,
-  1059 /* Id of ReduceAction500 */,
+  43 /* Group of ? */,
+  1051 /* Id of ReduceAction500 */,
   3 /* Color of ReduceAction500 */,
-  43 /* Color of ReduceAction500 */,
-  44 /* Property init */,
-  1055 /* Id of ReduceAction501 */,
+  43 /* Group of ? */,
+  1047 /* Id of ReduceAction501 */,
   3 /* Color of ReduceAction501 */,
-  43 /* Color of ReduceAction501 */,
-  44 /* Property init */,
-  1051 /* Id of ReduceAction502 */,
+  43 /* Group of ? */,
+  1043 /* Id of ReduceAction502 */,
   3 /* Color of ReduceAction502 */,
-  43 /* Color of ReduceAction502 */,
-  44 /* Property init */,
-  1047 /* Id of ReduceAction503 */,
+  43 /* Group of ? */,
+  1039 /* Id of ReduceAction503 */,
   3 /* Color of ReduceAction503 */,
-  43 /* Color of ReduceAction503 */,
-  44 /* Property init */,
-  1043 /* Id of ReduceAction504 */,
+  43 /* Group of ? */,
+  1035 /* Id of ReduceAction504 */,
   3 /* Color of ReduceAction504 */,
-  43 /* Color of ReduceAction504 */,
-  44 /* Property init */,
-  1039 /* Id of ReduceAction505 */,
+  43 /* Group of ? */,
+  1031 /* Id of ReduceAction505 */,
   3 /* Color of ReduceAction505 */,
-  43 /* Color of ReduceAction505 */,
-  44 /* Property init */,
-  1035 /* Id of ReduceAction506 */,
+  43 /* Group of ? */,
+  1027 /* Id of ReduceAction506 */,
   3 /* Color of ReduceAction506 */,
-  43 /* Color of ReduceAction506 */,
-  44 /* Property init */,
-  1031 /* Id of ReduceAction507 */,
+  43 /* Group of ? */,
+  1023 /* Id of ReduceAction507 */,
   3 /* Color of ReduceAction507 */,
-  43 /* Color of ReduceAction507 */,
-  44 /* Property init */,
-  1027 /* Id of ReduceAction508 */,
+  43 /* Group of ? */,
+  1019 /* Id of ReduceAction508 */,
   3 /* Color of ReduceAction508 */,
-  43 /* Color of ReduceAction508 */,
-  44 /* Property init */,
-  1023 /* Id of ReduceAction509 */,
+  43 /* Group of ? */,
+  1015 /* Id of ReduceAction509 */,
   3 /* Color of ReduceAction509 */,
-  43 /* Color of ReduceAction509 */,
-  44 /* Property init */,
-  1015 /* Id of ReduceAction510 */,
+  43 /* Group of ? */,
+  1007 /* Id of ReduceAction510 */,
   3 /* Color of ReduceAction510 */,
-  43 /* Color of ReduceAction510 */,
-  44 /* Property init */,
-  1011 /* Id of ReduceAction511 */,
+  43 /* Group of ? */,
+  1003 /* Id of ReduceAction511 */,
   3 /* Color of ReduceAction511 */,
-  43 /* Color of ReduceAction511 */,
-  44 /* Property init */,
-  1007 /* Id of ReduceAction512 */,
+  43 /* Group of ? */,
+  999 /* Id of ReduceAction512 */,
   3 /* Color of ReduceAction512 */,
-  43 /* Color of ReduceAction512 */,
-  44 /* Property init */,
-  1003 /* Id of ReduceAction513 */,
+  43 /* Group of ? */,
+  995 /* Id of ReduceAction513 */,
   3 /* Color of ReduceAction513 */,
-  43 /* Color of ReduceAction513 */,
-  44 /* Property init */,
-  999 /* Id of ReduceAction514 */,
+  43 /* Group of ? */,
+  991 /* Id of ReduceAction514 */,
   3 /* Color of ReduceAction514 */,
-  43 /* Color of ReduceAction514 */,
-  44 /* Property init */,
-  995 /* Id of ReduceAction515 */,
+  43 /* Group of ? */,
+  987 /* Id of ReduceAction515 */,
   3 /* Color of ReduceAction515 */,
-  43 /* Color of ReduceAction515 */,
-  44 /* Property init */,
-  991 /* Id of ReduceAction516 */,
+  43 /* Group of ? */,
+  983 /* Id of ReduceAction516 */,
   3 /* Color of ReduceAction516 */,
-  43 /* Color of ReduceAction516 */,
-  44 /* Property init */,
-  987 /* Id of ReduceAction517 */,
+  43 /* Group of ? */,
+  979 /* Id of ReduceAction517 */,
   3 /* Color of ReduceAction517 */,
-  43 /* Color of ReduceAction517 */,
-  44 /* Property init */,
-  983 /* Id of ReduceAction518 */,
+  43 /* Group of ? */,
+  975 /* Id of ReduceAction518 */,
   3 /* Color of ReduceAction518 */,
-  43 /* Color of ReduceAction518 */,
-  44 /* Property init */,
-  979 /* Id of ReduceAction519 */,
+  43 /* Group of ? */,
+  971 /* Id of ReduceAction519 */,
   3 /* Color of ReduceAction519 */,
-  43 /* Color of ReduceAction519 */,
-  44 /* Property init */,
-  971 /* Id of ReduceAction520 */,
+  43 /* Group of ? */,
+  963 /* Id of ReduceAction520 */,
   3 /* Color of ReduceAction520 */,
-  43 /* Color of ReduceAction520 */,
-  44 /* Property init */,
-  967 /* Id of ReduceAction521 */,
+  43 /* Group of ? */,
+  959 /* Id of ReduceAction521 */,
   3 /* Color of ReduceAction521 */,
-  43 /* Color of ReduceAction521 */,
-  44 /* Property init */,
-  963 /* Id of ReduceAction522 */,
+  43 /* Group of ? */,
+  955 /* Id of ReduceAction522 */,
   3 /* Color of ReduceAction522 */,
-  43 /* Color of ReduceAction522 */,
-  44 /* Property init */,
-  959 /* Id of ReduceAction523 */,
+  43 /* Group of ? */,
+  951 /* Id of ReduceAction523 */,
   3 /* Color of ReduceAction523 */,
-  43 /* Color of ReduceAction523 */,
-  44 /* Property init */,
-  955 /* Id of ReduceAction524 */,
+  43 /* Group of ? */,
+  947 /* Id of ReduceAction524 */,
   3 /* Color of ReduceAction524 */,
-  43 /* Color of ReduceAction524 */,
-  44 /* Property init */,
-  951 /* Id of ReduceAction525 */,
+  43 /* Group of ? */,
+  943 /* Id of ReduceAction525 */,
   3 /* Color of ReduceAction525 */,
-  43 /* Color of ReduceAction525 */,
-  44 /* Property init */,
-  947 /* Id of ReduceAction526 */,
+  43 /* Group of ? */,
+  939 /* Id of ReduceAction526 */,
   3 /* Color of ReduceAction526 */,
-  43 /* Color of ReduceAction526 */,
-  44 /* Property init */,
-  943 /* Id of ReduceAction527 */,
+  43 /* Group of ? */,
+  935 /* Id of ReduceAction527 */,
   3 /* Color of ReduceAction527 */,
-  43 /* Color of ReduceAction527 */,
-  44 /* Property init */,
-  939 /* Id of ReduceAction528 */,
+  43 /* Group of ? */,
+  931 /* Id of ReduceAction528 */,
   3 /* Color of ReduceAction528 */,
-  43 /* Color of ReduceAction528 */,
-  44 /* Property init */,
-  935 /* Id of ReduceAction529 */,
+  43 /* Group of ? */,
+  927 /* Id of ReduceAction529 */,
   3 /* Color of ReduceAction529 */,
-  43 /* Color of ReduceAction529 */,
-  44 /* Property init */,
-  927 /* Id of ReduceAction530 */,
+  43 /* Group of ? */,
+  919 /* Id of ReduceAction530 */,
   3 /* Color of ReduceAction530 */,
-  43 /* Color of ReduceAction530 */,
-  44 /* Property init */,
-  923 /* Id of ReduceAction531 */,
+  43 /* Group of ? */,
+  915 /* Id of ReduceAction531 */,
   3 /* Color of ReduceAction531 */,
-  43 /* Color of ReduceAction531 */,
-  44 /* Property init */,
-  919 /* Id of ReduceAction532 */,
+  43 /* Group of ? */,
+  911 /* Id of ReduceAction532 */,
   3 /* Color of ReduceAction532 */,
-  43 /* Color of ReduceAction532 */,
-  44 /* Property init */,
-  915 /* Id of ReduceAction533 */,
+  43 /* Group of ? */,
+  907 /* Id of ReduceAction533 */,
   3 /* Color of ReduceAction533 */,
-  43 /* Color of ReduceAction533 */,
-  44 /* Property init */,
-  911 /* Id of ReduceAction534 */,
+  43 /* Group of ? */,
+  903 /* Id of ReduceAction534 */,
   3 /* Color of ReduceAction534 */,
-  43 /* Color of ReduceAction534 */,
-  44 /* Property init */,
-  907 /* Id of ReduceAction535 */,
+  43 /* Group of ? */,
+  899 /* Id of ReduceAction535 */,
   3 /* Color of ReduceAction535 */,
-  43 /* Color of ReduceAction535 */,
-  44 /* Property init */,
-  903 /* Id of ReduceAction536 */,
+  43 /* Group of ? */,
+  895 /* Id of ReduceAction536 */,
   3 /* Color of ReduceAction536 */,
-  43 /* Color of ReduceAction536 */,
-  44 /* Property init */,
-  899 /* Id of ReduceAction537 */,
+  43 /* Group of ? */,
+  891 /* Id of ReduceAction537 */,
   3 /* Color of ReduceAction537 */,
-  43 /* Color of ReduceAction537 */,
-  44 /* Property init */,
-  895 /* Id of ReduceAction538 */,
+  43 /* Group of ? */,
+  887 /* Id of ReduceAction538 */,
   3 /* Color of ReduceAction538 */,
-  43 /* Color of ReduceAction538 */,
-  44 /* Property init */,
-  891 /* Id of ReduceAction539 */,
+  43 /* Group of ? */,
+  883 /* Id of ReduceAction539 */,
   3 /* Color of ReduceAction539 */,
-  43 /* Color of ReduceAction539 */,
-  44 /* Property init */,
-  883 /* Id of ReduceAction540 */,
+  43 /* Group of ? */,
+  875 /* Id of ReduceAction540 */,
   3 /* Color of ReduceAction540 */,
-  43 /* Color of ReduceAction540 */,
-  44 /* Property init */,
-  879 /* Id of ReduceAction541 */,
+  43 /* Group of ? */,
+  871 /* Id of ReduceAction541 */,
   3 /* Color of ReduceAction541 */,
-  43 /* Color of ReduceAction541 */,
-  44 /* Property init */,
-  875 /* Id of ReduceAction542 */,
+  43 /* Group of ? */,
+  867 /* Id of ReduceAction542 */,
   3 /* Color of ReduceAction542 */,
-  43 /* Color of ReduceAction542 */,
-  44 /* Property init */,
-  871 /* Id of ReduceAction543 */,
+  43 /* Group of ? */,
+  863 /* Id of ReduceAction543 */,
   3 /* Color of ReduceAction543 */,
-  43 /* Color of ReduceAction543 */,
-  44 /* Property init */,
-  867 /* Id of ReduceAction544 */,
+  43 /* Group of ? */,
+  859 /* Id of ReduceAction544 */,
   3 /* Color of ReduceAction544 */,
-  43 /* Color of ReduceAction544 */,
-  44 /* Property init */,
-  863 /* Id of ReduceAction545 */,
+  43 /* Group of ? */,
+  855 /* Id of ReduceAction545 */,
   3 /* Color of ReduceAction545 */,
-  43 /* Color of ReduceAction545 */,
-  44 /* Property init */,
-  859 /* Id of ReduceAction546 */,
+  43 /* Group of ? */,
+  851 /* Id of ReduceAction546 */,
   3 /* Color of ReduceAction546 */,
-  43 /* Color of ReduceAction546 */,
-  44 /* Property init */,
-  855 /* Id of ReduceAction547 */,
+  43 /* Group of ? */,
+  847 /* Id of ReduceAction547 */,
   3 /* Color of ReduceAction547 */,
-  43 /* Color of ReduceAction547 */,
-  44 /* Property init */,
-  851 /* Id of ReduceAction548 */,
+  43 /* Group of ? */,
+  843 /* Id of ReduceAction548 */,
   3 /* Color of ReduceAction548 */,
-  43 /* Color of ReduceAction548 */,
-  44 /* Property init */,
-  847 /* Id of ReduceAction549 */,
+  43 /* Group of ? */,
+  839 /* Id of ReduceAction549 */,
   3 /* Color of ReduceAction549 */,
-  43 /* Color of ReduceAction549 */,
-  44 /* Property init */,
-  839 /* Id of ReduceAction550 */,
+  43 /* Group of ? */,
+  831 /* Id of ReduceAction550 */,
   3 /* Color of ReduceAction550 */,
-  43 /* Color of ReduceAction550 */,
-  44 /* Property init */,
-  835 /* Id of ReduceAction551 */,
+  43 /* Group of ? */,
+  827 /* Id of ReduceAction551 */,
   3 /* Color of ReduceAction551 */,
-  43 /* Color of ReduceAction551 */,
-  44 /* Property init */,
-  831 /* Id of ReduceAction552 */,
+  43 /* Group of ? */,
+  823 /* Id of ReduceAction552 */,
   3 /* Color of ReduceAction552 */,
-  43 /* Color of ReduceAction552 */,
-  44 /* Property init */,
-  827 /* Id of ReduceAction553 */,
+  43 /* Group of ? */,
+  819 /* Id of ReduceAction553 */,
   3 /* Color of ReduceAction553 */,
-  43 /* Color of ReduceAction553 */,
-  44 /* Property init */,
-  823 /* Id of ReduceAction554 */,
+  43 /* Group of ? */,
+  815 /* Id of ReduceAction554 */,
   3 /* Color of ReduceAction554 */,
-  43 /* Color of ReduceAction554 */,
-  44 /* Property init */,
-  819 /* Id of ReduceAction555 */,
+  43 /* Group of ? */,
+  811 /* Id of ReduceAction555 */,
   3 /* Color of ReduceAction555 */,
-  43 /* Color of ReduceAction555 */,
-  44 /* Property init */,
-  815 /* Id of ReduceAction556 */,
+  43 /* Group of ? */,
+  807 /* Id of ReduceAction556 */,
   3 /* Color of ReduceAction556 */,
-  43 /* Color of ReduceAction556 */,
-  44 /* Property init */,
-  811 /* Id of ReduceAction557 */,
+  43 /* Group of ? */,
+  803 /* Id of ReduceAction557 */,
   3 /* Color of ReduceAction557 */,
-  43 /* Color of ReduceAction557 */,
-  44 /* Property init */,
-  807 /* Id of ReduceAction558 */,
+  43 /* Group of ? */,
+  799 /* Id of ReduceAction558 */,
   3 /* Color of ReduceAction558 */,
-  43 /* Color of ReduceAction558 */,
-  44 /* Property init */,
-  803 /* Id of ReduceAction559 */,
+  43 /* Group of ? */,
+  795 /* Id of ReduceAction559 */,
   3 /* Color of ReduceAction559 */,
-  43 /* Color of ReduceAction559 */,
-  44 /* Property init */,
-  795 /* Id of ReduceAction560 */,
+  43 /* Group of ? */,
+  787 /* Id of ReduceAction560 */,
   3 /* Color of ReduceAction560 */,
-  43 /* Color of ReduceAction560 */,
-  44 /* Property init */,
-  791 /* Id of ReduceAction561 */,
+  43 /* Group of ? */,
+  783 /* Id of ReduceAction561 */,
   3 /* Color of ReduceAction561 */,
-  43 /* Color of ReduceAction561 */,
-  44 /* Property init */,
-  787 /* Id of ReduceAction562 */,
+  43 /* Group of ? */,
+  779 /* Id of ReduceAction562 */,
   3 /* Color of ReduceAction562 */,
-  43 /* Color of ReduceAction562 */,
-  44 /* Property init */,
-  783 /* Id of ReduceAction563 */,
+  43 /* Group of ? */,
+  775 /* Id of ReduceAction563 */,
   3 /* Color of ReduceAction563 */,
-  43 /* Color of ReduceAction563 */,
-  44 /* Property init */,
-  779 /* Id of ReduceAction564 */,
+  43 /* Group of ? */,
+  771 /* Id of ReduceAction564 */,
   3 /* Color of ReduceAction564 */,
-  43 /* Color of ReduceAction564 */,
-  44 /* Property init */,
-  775 /* Id of ReduceAction565 */,
+  43 /* Group of ? */,
+  767 /* Id of ReduceAction565 */,
   3 /* Color of ReduceAction565 */,
-  43 /* Color of ReduceAction565 */,
-  44 /* Property init */,
-  771 /* Id of ReduceAction566 */,
+  43 /* Group of ? */,
+  763 /* Id of ReduceAction566 */,
   3 /* Color of ReduceAction566 */,
-  43 /* Color of ReduceAction566 */,
-  44 /* Property init */,
-  767 /* Id of ReduceAction567 */,
+  43 /* Group of ? */,
+  759 /* Id of ReduceAction567 */,
   3 /* Color of ReduceAction567 */,
-  43 /* Color of ReduceAction567 */,
-  44 /* Property init */,
-  763 /* Id of ReduceAction568 */,
+  43 /* Group of ? */,
+  755 /* Id of ReduceAction568 */,
   3 /* Color of ReduceAction568 */,
-  43 /* Color of ReduceAction568 */,
-  44 /* Property init */,
-  759 /* Id of ReduceAction569 */,
+  43 /* Group of ? */,
+  751 /* Id of ReduceAction569 */,
   3 /* Color of ReduceAction569 */,
-  43 /* Color of ReduceAction569 */,
-  44 /* Property init */,
-  751 /* Id of ReduceAction570 */,
+  43 /* Group of ? */,
+  743 /* Id of ReduceAction570 */,
   3 /* Color of ReduceAction570 */,
-  43 /* Color of ReduceAction570 */,
-  44 /* Property init */,
-  747 /* Id of ReduceAction571 */,
+  43 /* Group of ? */,
+  739 /* Id of ReduceAction571 */,
   3 /* Color of ReduceAction571 */,
-  43 /* Color of ReduceAction571 */,
-  44 /* Property init */,
-  743 /* Id of ReduceAction572 */,
+  43 /* Group of ? */,
+  735 /* Id of ReduceAction572 */,
   3 /* Color of ReduceAction572 */,
-  43 /* Color of ReduceAction572 */,
-  44 /* Property init */,
-  739 /* Id of ReduceAction573 */,
+  43 /* Group of ? */,
+  731 /* Id of ReduceAction573 */,
   3 /* Color of ReduceAction573 */,
-  43 /* Color of ReduceAction573 */,
-  44 /* Property init */,
-  735 /* Id of ReduceAction574 */,
+  43 /* Group of ? */,
+  727 /* Id of ReduceAction574 */,
   3 /* Color of ReduceAction574 */,
-  43 /* Color of ReduceAction574 */,
-  44 /* Property init */,
-  731 /* Id of ReduceAction575 */,
+  43 /* Group of ? */,
+  723 /* Id of ReduceAction575 */,
   3 /* Color of ReduceAction575 */,
-  43 /* Color of ReduceAction575 */,
-  44 /* Property init */,
-  727 /* Id of ReduceAction576 */,
+  43 /* Group of ? */,
+  719 /* Id of ReduceAction576 */,
   3 /* Color of ReduceAction576 */,
-  43 /* Color of ReduceAction576 */,
-  44 /* Property init */,
-  723 /* Id of ReduceAction577 */,
+  43 /* Group of ? */,
+  715 /* Id of ReduceAction577 */,
   3 /* Color of ReduceAction577 */,
-  43 /* Color of ReduceAction577 */,
-  44 /* Property init */,
-  719 /* Id of ReduceAction578 */,
+  43 /* Group of ? */,
+  711 /* Id of ReduceAction578 */,
   3 /* Color of ReduceAction578 */,
-  43 /* Color of ReduceAction578 */,
-  44 /* Property init */,
-  715 /* Id of ReduceAction579 */,
+  43 /* Group of ? */,
+  707 /* Id of ReduceAction579 */,
   3 /* Color of ReduceAction579 */,
-  43 /* Color of ReduceAction579 */,
-  44 /* Property init */,
-  707 /* Id of ReduceAction580 */,
+  43 /* Group of ? */,
+  699 /* Id of ReduceAction580 */,
   3 /* Color of ReduceAction580 */,
-  43 /* Color of ReduceAction580 */,
-  44 /* Property init */,
-  703 /* Id of ReduceAction581 */,
+  43 /* Group of ? */,
+  695 /* Id of ReduceAction581 */,
   3 /* Color of ReduceAction581 */,
-  43 /* Color of ReduceAction581 */,
-  44 /* Property init */,
-  699 /* Id of ReduceAction582 */,
+  43 /* Group of ? */,
+  691 /* Id of ReduceAction582 */,
   3 /* Color of ReduceAction582 */,
-  43 /* Color of ReduceAction582 */,
-  44 /* Property init */,
-  695 /* Id of ReduceAction583 */,
+  43 /* Group of ? */,
+  687 /* Id of ReduceAction583 */,
   3 /* Color of ReduceAction583 */,
-  43 /* Color of ReduceAction583 */,
-  44 /* Property init */,
-  691 /* Id of ReduceAction584 */,
+  43 /* Group of ? */,
+  683 /* Id of ReduceAction584 */,
   3 /* Color of ReduceAction584 */,
-  43 /* Color of ReduceAction584 */,
-  44 /* Property init */,
-  687 /* Id of ReduceAction585 */,
+  43 /* Group of ? */,
+  679 /* Id of ReduceAction585 */,
   3 /* Color of ReduceAction585 */,
-  43 /* Color of ReduceAction585 */,
-  44 /* Property init */,
-  683 /* Id of ReduceAction586 */,
+  43 /* Group of ? */,
+  675 /* Id of ReduceAction586 */,
   3 /* Color of ReduceAction586 */,
-  43 /* Color of ReduceAction586 */,
-  44 /* Property init */,
-  679 /* Id of ReduceAction587 */,
+  43 /* Group of ? */,
+  671 /* Id of ReduceAction587 */,
   3 /* Color of ReduceAction587 */,
-  43 /* Color of ReduceAction587 */,
-  44 /* Property init */,
-  675 /* Id of ReduceAction588 */,
+  43 /* Group of ? */,
+  667 /* Id of ReduceAction588 */,
   3 /* Color of ReduceAction588 */,
-  43 /* Color of ReduceAction588 */,
-  44 /* Property init */,
-  671 /* Id of ReduceAction589 */,
+  43 /* Group of ? */,
+  663 /* Id of ReduceAction589 */,
   3 /* Color of ReduceAction589 */,
-  43 /* Color of ReduceAction589 */,
-  44 /* Property init */,
-  663 /* Id of ReduceAction590 */,
+  43 /* Group of ? */,
+  655 /* Id of ReduceAction590 */,
   3 /* Color of ReduceAction590 */,
-  43 /* Color of ReduceAction590 */,
-  44 /* Property init */,
-  659 /* Id of ReduceAction591 */,
+  43 /* Group of ? */,
+  651 /* Id of ReduceAction591 */,
   3 /* Color of ReduceAction591 */,
-  43 /* Color of ReduceAction591 */,
-  44 /* Property init */,
-  655 /* Id of ReduceAction592 */,
+  43 /* Group of ? */,
+  647 /* Id of ReduceAction592 */,
   3 /* Color of ReduceAction592 */,
-  43 /* Color of ReduceAction592 */,
-  44 /* Property init */,
-  651 /* Id of ReduceAction593 */,
+  43 /* Group of ? */,
+  643 /* Id of ReduceAction593 */,
   3 /* Color of ReduceAction593 */,
-  43 /* Color of ReduceAction593 */,
-  44 /* Property init */,
-  647 /* Id of ReduceAction594 */,
+  43 /* Group of ? */,
+  639 /* Id of ReduceAction594 */,
   3 /* Color of ReduceAction594 */,
-  43 /* Color of ReduceAction594 */,
-  44 /* Property init */,
-  643 /* Id of ReduceAction595 */,
+  43 /* Group of ? */,
+  635 /* Id of ReduceAction595 */,
   3 /* Color of ReduceAction595 */,
-  43 /* Color of ReduceAction595 */,
-  44 /* Property init */,
-  639 /* Id of ReduceAction596 */,
+  43 /* Group of ? */,
+  631 /* Id of ReduceAction596 */,
   3 /* Color of ReduceAction596 */,
-  43 /* Color of ReduceAction596 */,
-  44 /* Property init */,
-  635 /* Id of ReduceAction597 */,
+  43 /* Group of ? */,
+  627 /* Id of ReduceAction597 */,
   3 /* Color of ReduceAction597 */,
-  43 /* Color of ReduceAction597 */,
-  44 /* Property init */,
-  631 /* Id of ReduceAction598 */,
+  43 /* Group of ? */,
+  623 /* Id of ReduceAction598 */,
   3 /* Color of ReduceAction598 */,
-  43 /* Color of ReduceAction598 */,
-  44 /* Property init */,
-  627 /* Id of ReduceAction599 */,
+  43 /* Group of ? */,
+  619 /* Id of ReduceAction599 */,
   3 /* Color of ReduceAction599 */,
-  43 /* Color of ReduceAction599 */,
-  44 /* Property init */,
-  615 /* Id of ReduceAction600 */,
+  43 /* Group of ? */,
+  607 /* Id of ReduceAction600 */,
   3 /* Color of ReduceAction600 */,
-  43 /* Color of ReduceAction600 */,
-  44 /* Property init */,
-  611 /* Id of ReduceAction601 */,
+  43 /* Group of ? */,
+  603 /* Id of ReduceAction601 */,
   3 /* Color of ReduceAction601 */,
-  43 /* Color of ReduceAction601 */,
-  44 /* Property init */,
-  607 /* Id of ReduceAction602 */,
+  43 /* Group of ? */,
+  599 /* Id of ReduceAction602 */,
   3 /* Color of ReduceAction602 */,
-  43 /* Color of ReduceAction602 */,
-  44 /* Property init */,
-  603 /* Id of ReduceAction603 */,
+  43 /* Group of ? */,
+  595 /* Id of ReduceAction603 */,
   3 /* Color of ReduceAction603 */,
-  43 /* Color of ReduceAction603 */,
-  44 /* Property init */,
-  599 /* Id of ReduceAction604 */,
+  43 /* Group of ? */,
+  591 /* Id of ReduceAction604 */,
   3 /* Color of ReduceAction604 */,
-  43 /* Color of ReduceAction604 */,
-  44 /* Property init */,
-  595 /* Id of ReduceAction605 */,
+  43 /* Group of ? */,
+  587 /* Id of ReduceAction605 */,
   3 /* Color of ReduceAction605 */,
-  43 /* Color of ReduceAction605 */,
-  44 /* Property init */,
-  591 /* Id of ReduceAction606 */,
+  43 /* Group of ? */,
+  583 /* Id of ReduceAction606 */,
   3 /* Color of ReduceAction606 */,
-  43 /* Color of ReduceAction606 */,
-  44 /* Property init */,
-  587 /* Id of ReduceAction607 */,
+  43 /* Group of ? */,
+  579 /* Id of ReduceAction607 */,
   3 /* Color of ReduceAction607 */,
-  43 /* Color of ReduceAction607 */,
-  44 /* Property init */,
-  583 /* Id of ReduceAction608 */,
+  43 /* Group of ? */,
+  575 /* Id of ReduceAction608 */,
   3 /* Color of ReduceAction608 */,
-  43 /* Color of ReduceAction608 */,
-  44 /* Property init */,
-  579 /* Id of ReduceAction609 */,
+  43 /* Group of ? */,
+  571 /* Id of ReduceAction609 */,
   3 /* Color of ReduceAction609 */,
-  43 /* Color of ReduceAction609 */,
-  44 /* Property init */,
-  571 /* Id of ReduceAction610 */,
+  43 /* Group of ? */,
+  563 /* Id of ReduceAction610 */,
   3 /* Color of ReduceAction610 */,
-  43 /* Color of ReduceAction610 */,
-  44 /* Property init */,
-  567 /* Id of ReduceAction611 */,
+  43 /* Group of ? */,
+  559 /* Id of ReduceAction611 */,
   3 /* Color of ReduceAction611 */,
-  43 /* Color of ReduceAction611 */,
-  44 /* Property init */,
-  563 /* Id of ReduceAction612 */,
+  43 /* Group of ? */,
+  555 /* Id of ReduceAction612 */,
   3 /* Color of ReduceAction612 */,
-  43 /* Color of ReduceAction612 */,
-  44 /* Property init */,
-  559 /* Id of ReduceAction613 */,
+  43 /* Group of ? */,
+  551 /* Id of ReduceAction613 */,
   3 /* Color of ReduceAction613 */,
-  43 /* Color of ReduceAction613 */,
-  44 /* Property init */,
-  555 /* Id of ReduceAction614 */,
+  43 /* Group of ? */,
+  547 /* Id of ReduceAction614 */,
   3 /* Color of ReduceAction614 */,
-  43 /* Color of ReduceAction614 */,
-  44 /* Property init */,
-  551 /* Id of ReduceAction615 */,
+  43 /* Group of ? */,
+  543 /* Id of ReduceAction615 */,
   3 /* Color of ReduceAction615 */,
-  43 /* Color of ReduceAction615 */,
-  44 /* Property init */,
-  547 /* Id of ReduceAction616 */,
+  43 /* Group of ? */,
+  539 /* Id of ReduceAction616 */,
   3 /* Color of ReduceAction616 */,
-  43 /* Color of ReduceAction616 */,
-  44 /* Property init */,
-  543 /* Id of ReduceAction617 */,
+  43 /* Group of ? */,
+  535 /* Id of ReduceAction617 */,
   3 /* Color of ReduceAction617 */,
-  43 /* Color of ReduceAction617 */,
-  44 /* Property init */,
-  539 /* Id of ReduceAction618 */,
+  43 /* Group of ? */,
+  531 /* Id of ReduceAction618 */,
   3 /* Color of ReduceAction618 */,
-  43 /* Color of ReduceAction618 */,
-  44 /* Property init */,
-  535 /* Id of ReduceAction619 */,
+  43 /* Group of ? */,
+  527 /* Id of ReduceAction619 */,
   3 /* Color of ReduceAction619 */,
-  43 /* Color of ReduceAction619 */,
-  44 /* Property init */,
-  527 /* Id of ReduceAction620 */,
+  43 /* Group of ? */,
+  519 /* Id of ReduceAction620 */,
   3 /* Color of ReduceAction620 */,
-  43 /* Color of ReduceAction620 */,
-  44 /* Property init */,
-  523 /* Id of ReduceAction621 */,
+  43 /* Group of ? */,
+  515 /* Id of ReduceAction621 */,
   3 /* Color of ReduceAction621 */,
-  43 /* Color of ReduceAction621 */,
-  44 /* Property init */,
-  519 /* Id of ReduceAction622 */,
+  43 /* Group of ? */,
+  511 /* Id of ReduceAction622 */,
   3 /* Color of ReduceAction622 */,
-  43 /* Color of ReduceAction622 */,
-  44 /* Property init */,
-  515 /* Id of ReduceAction623 */,
+  43 /* Group of ? */,
+  507 /* Id of ReduceAction623 */,
   3 /* Color of ReduceAction623 */,
-  43 /* Color of ReduceAction623 */,
-  44 /* Property init */,
-  511 /* Id of ReduceAction624 */,
+  43 /* Group of ? */,
+  503 /* Id of ReduceAction624 */,
   3 /* Color of ReduceAction624 */,
-  43 /* Color of ReduceAction624 */,
-  44 /* Property init */,
-  507 /* Id of ReduceAction625 */,
+  43 /* Group of ? */,
+  499 /* Id of ReduceAction625 */,
   3 /* Color of ReduceAction625 */,
-  43 /* Color of ReduceAction625 */,
-  44 /* Property init */,
-  503 /* Id of ReduceAction626 */,
+  43 /* Group of ? */,
+  495 /* Id of ReduceAction626 */,
   3 /* Color of ReduceAction626 */,
-  43 /* Color of ReduceAction626 */,
-  44 /* Property init */,
-  499 /* Id of ReduceAction627 */,
+  43 /* Group of ? */,
+  491 /* Id of ReduceAction627 */,
   3 /* Color of ReduceAction627 */,
-  43 /* Color of ReduceAction627 */,
-  44 /* Property init */,
-  495 /* Id of ReduceAction628 */,
+  43 /* Group of ? */,
+  487 /* Id of ReduceAction628 */,
   3 /* Color of ReduceAction628 */,
-  43 /* Color of ReduceAction628 */,
-  44 /* Property init */,
-  491 /* Id of ReduceAction629 */,
+  43 /* Group of ? */,
+  483 /* Id of ReduceAction629 */,
   3 /* Color of ReduceAction629 */,
-  43 /* Color of ReduceAction629 */,
-  44 /* Property init */,
-  483 /* Id of ReduceAction630 */,
+  43 /* Group of ? */,
+  475 /* Id of ReduceAction630 */,
   3 /* Color of ReduceAction630 */,
-  43 /* Color of ReduceAction630 */,
-  44 /* Property init */,
-  479 /* Id of ReduceAction631 */,
+  43 /* Group of ? */,
+  471 /* Id of ReduceAction631 */,
   3 /* Color of ReduceAction631 */,
-  43 /* Color of ReduceAction631 */,
-  44 /* Property init */,
-  475 /* Id of ReduceAction632 */,
+  43 /* Group of ? */,
+  467 /* Id of ReduceAction632 */,
   3 /* Color of ReduceAction632 */,
-  43 /* Color of ReduceAction632 */,
-  44 /* Property init */,
-  471 /* Id of ReduceAction633 */,
+  43 /* Group of ? */,
+  463 /* Id of ReduceAction633 */,
   3 /* Color of ReduceAction633 */,
-  43 /* Color of ReduceAction633 */,
-  44 /* Property init */,
-  467 /* Id of ReduceAction634 */,
+  43 /* Group of ? */,
+  459 /* Id of ReduceAction634 */,
   3 /* Color of ReduceAction634 */,
-  43 /* Color of ReduceAction634 */,
-  44 /* Property init */,
-  463 /* Id of ReduceAction635 */,
+  43 /* Group of ? */,
+  455 /* Id of ReduceAction635 */,
   3 /* Color of ReduceAction635 */,
-  43 /* Color of ReduceAction635 */,
-  44 /* Property init */,
-  459 /* Id of ReduceAction636 */,
+  43 /* Group of ? */,
+  451 /* Id of ReduceAction636 */,
   3 /* Color of ReduceAction636 */,
-  43 /* Color of ReduceAction636 */,
-  44 /* Property init */,
-  455 /* Id of ReduceAction637 */,
+  43 /* Group of ? */,
+  447 /* Id of ReduceAction637 */,
   3 /* Color of ReduceAction637 */,
-  43 /* Color of ReduceAction637 */,
-  44 /* Property init */,
-  451 /* Id of ReduceAction638 */,
+  43 /* Group of ? */,
+  443 /* Id of ReduceAction638 */,
   3 /* Color of ReduceAction638 */,
-  43 /* Color of ReduceAction638 */,
-  44 /* Property init */,
-  447 /* Id of ReduceAction639 */,
+  43 /* Group of ? */,
+  439 /* Id of ReduceAction639 */,
   3 /* Color of ReduceAction639 */,
-  43 /* Color of ReduceAction639 */,
-  44 /* Property init */,
-  439 /* Id of ReduceAction640 */,
+  43 /* Group of ? */,
+  431 /* Id of ReduceAction640 */,
   3 /* Color of ReduceAction640 */,
-  43 /* Color of ReduceAction640 */,
-  44 /* Property init */,
-  435 /* Id of ReduceAction641 */,
+  43 /* Group of ? */,
+  427 /* Id of ReduceAction641 */,
   3 /* Color of ReduceAction641 */,
-  43 /* Color of ReduceAction641 */,
-  44 /* Property init */,
-  431 /* Id of ReduceAction642 */,
+  43 /* Group of ? */,
+  423 /* Id of ReduceAction642 */,
   3 /* Color of ReduceAction642 */,
-  43 /* Color of ReduceAction642 */,
-  44 /* Property init */,
-  427 /* Id of ReduceAction643 */,
+  43 /* Group of ? */,
+  419 /* Id of ReduceAction643 */,
   3 /* Color of ReduceAction643 */,
-  43 /* Color of ReduceAction643 */,
-  44 /* Property init */,
-  423 /* Id of ReduceAction644 */,
+  43 /* Group of ? */,
+  415 /* Id of ReduceAction644 */,
   3 /* Color of ReduceAction644 */,
-  43 /* Color of ReduceAction644 */,
-  44 /* Property init */,
-  419 /* Id of ReduceAction645 */,
+  43 /* Group of ? */,
+  411 /* Id of ReduceAction645 */,
   3 /* Color of ReduceAction645 */,
-  43 /* Color of ReduceAction645 */,
-  44 /* Property init */,
-  415 /* Id of ReduceAction646 */,
+  43 /* Group of ? */,
+  407 /* Id of ReduceAction646 */,
   3 /* Color of ReduceAction646 */,
-  43 /* Color of ReduceAction646 */,
-  44 /* Property init */,
-  411 /* Id of ReduceAction647 */,
+  43 /* Group of ? */,
+  403 /* Id of ReduceAction647 */,
   3 /* Color of ReduceAction647 */,
-  43 /* Color of ReduceAction647 */,
-  44 /* Property init */,
-  407 /* Id of ReduceAction648 */,
+  43 /* Group of ? */,
+  399 /* Id of ReduceAction648 */,
   3 /* Color of ReduceAction648 */,
-  43 /* Color of ReduceAction648 */,
-  44 /* Property init */,
-  403 /* Id of ReduceAction649 */,
+  43 /* Group of ? */,
+  395 /* Id of ReduceAction649 */,
   3 /* Color of ReduceAction649 */,
-  43 /* Color of ReduceAction649 */,
-  44 /* Property init */,
-  395 /* Id of ReduceAction650 */,
+  43 /* Group of ? */,
+  387 /* Id of ReduceAction650 */,
   3 /* Color of ReduceAction650 */,
-  43 /* Color of ReduceAction650 */,
-  44 /* Property init */,
-  391 /* Id of ReduceAction651 */,
+  43 /* Group of ? */,
+  383 /* Id of ReduceAction651 */,
   3 /* Color of ReduceAction651 */,
-  43 /* Color of ReduceAction651 */,
-  44 /* Property init */,
-  387 /* Id of ReduceAction652 */,
+  43 /* Group of ? */,
+  379 /* Id of ReduceAction652 */,
   3 /* Color of ReduceAction652 */,
-  43 /* Color of ReduceAction652 */,
-  44 /* Property init */,
-  383 /* Id of ReduceAction653 */,
+  43 /* Group of ? */,
+  375 /* Id of ReduceAction653 */,
   3 /* Color of ReduceAction653 */,
-  43 /* Color of ReduceAction653 */,
-  44 /* Property init */,
+  43 /* Group of ? */,
 };
 const char *LOCATE_parser_prod = "./parser//parser_prod.nit";
-const int SFT_parser_prod[266] = {
-  1 /* Property _parent */,
-  47 /* Property parent */,
-  48 /* Property parent= */,
-  49 /* Property remove_child */,
-  50 /* Property replace_child */,
-  51 /* Property replace_with */,
-  52 /* Property visit_all */,
-  53 /* Property visit_all_reverse */,
-  54 /* Property locate */,
-  55 /* Property line_number */,
-  56 /* Property printl */,
-  2 /* Property _first_token */,
-  3 /* Property _last_token */,
-  62 /* Property first_token */,
-  63 /* Property first_token= */,
-  64 /* Property last_token */,
-  65 /* Property last_token= */,
-  66 /* Property replace_with */,
+const int SFT_parser_prod[129] = {
+  1 /* Group of ? */,
+  47 /* Group of ? */,
+  2 /* Group of ? */,
+  62 /* Group of ? */,
   7 /* Id of Visitor */,
   2 /* Color of Visitor */,
-  40 /* Color of Visitor */,
-  41 /* Property visit */,
-  42 /* Property init */,
-  70 /* Property empty_init */,
-  71 /* Property init_amodule */,
-  69 /* Property empty_init */,
-  70 /* Property init_apackagedecl */,
-  71 /* Property empty_init */,
-  72 /* Property init_aimport */,
-  71 /* Property empty_init */,
-  72 /* Property init_anoimport */,
-  70 /* Property empty_init */,
-  71 /* Property init_apublicvisibility */,
-  70 /* Property empty_init */,
-  71 /* Property init_aprivatevisibility */,
-  70 /* Property empty_init */,
-  71 /* Property init_aprotectedvisibility */,
-  70 /* Property empty_init */,
-  71 /* Property init_aintrudevisibility */,
-  77 /* Property empty_init */,
-  78 /* Property init_aclassdef */,
-  76 /* Property empty_init */,
-  77 /* Property init_atopclassdef */,
-  76 /* Property empty_init */,
-  77 /* Property init_amainclassdef */,
-  72 /* Property empty_init */,
-  73 /* Property init_aconcreteclasskind */,
-  72 /* Property empty_init */,
-  73 /* Property init_aabstractclasskind */,
-  72 /* Property empty_init */,
-  73 /* Property init_ainterfaceclasskind */,
-  72 /* Property empty_init */,
-  73 /* Property init_auniversalclasskind */,
-  71 /* Property empty_init */,
-  72 /* Property init_aformaldef */,
-  73 /* Property empty_init */,
-  74 /* Property init_asuperclass */,
-  81 /* Property empty_init */,
-  82 /* Property init_aattrpropdef */,
-  82 /* Property empty_init */,
-  83 /* Property init_amethpropdef */,
-  95 /* Property empty_init */,
-  96 /* Property init_adeferredmethpropdef */,
-  95 /* Property empty_init */,
-  96 /* Property init_ainternmethpropdef */,
-  95 /* Property empty_init */,
-  96 /* Property init_aexternmethpropdef */,
-  96 /* Property empty_init */,
-  97 /* Property init_aconcretemethpropdef */,
-  106 /* Property empty_init */,
-  107 /* Property init_aconcreteinitpropdef */,
-  103 /* Property empty_init */,
-  104 /* Property init_amainmethpropdef */,
-  79 /* Property empty_init */,
-  80 /* Property init_atypepropdef */,
-  71 /* Property empty_init */,
-  72 /* Property init_areadable */,
-  71 /* Property empty_init */,
-  72 /* Property init_awriteable */,
-  71 /* Property empty_init */,
-  72 /* Property init_aidmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_aplusmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_aminusmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_astarmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_aslashmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_apercentmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_aeqmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_anemethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_alemethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_agemethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_altmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_agtmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_abramethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_astarshipmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_aassignmethid */,
-  71 /* Property empty_init */,
-  72 /* Property init_abraassignmethid */,
-  72 /* Property empty_init */,
-  73 /* Property init_asignature */,
-  79 /* Property empty_init */,
-  80 /* Property init_aparam */,
-  72 /* Property empty_init */,
-  73 /* Property init_aclosuredecl */,
-  75 /* Property empty_init */,
-  76 /* Property init_atype */,
-  77 /* Property empty_init */,
-  78 /* Property init_ablockexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_avardeclexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_areturnexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_abreakexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_aabortexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_acontinueexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_adoexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aifexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aifexprexpr */,
-  90 /* Property empty_init */,
-  91 /* Property init_awhileexpr */,
-  90 /* Property empty_init */,
-  91 /* Property init_aforexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_aforvardeclexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aassertexpr */,
-  81 /* Property empty_init */,
-  82 /* Property init_aonceexpr */,
-  103 /* Property empty_init */,
-  104 /* Property init_asendexpr */,
-  110 /* Property empty_init */,
-  111 /* Property init_abinopexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_aorexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_aandexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_anotexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_aeqexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_aeeexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_aneexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_altexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_aleexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_agtexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_ageexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_aisaexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_aplusexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_aminusexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_astarshipexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_astarexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_aslashexpr */,
-  115 /* Property empty_init */,
-  116 /* Property init_apercentexpr */,
-  110 /* Property empty_init */,
-  111 /* Property init_auminusexpr */,
-  99 /* Property empty_init */,
-  100 /* Property init_anewexpr */,
-  97 /* Property empty_init */,
-  98 /* Property init_aattrexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aattrassignexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aattrreassignexpr */,
-  117 /* Property empty_init */,
-  118 /* Property init_acallexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_acallassignexpr */,
-  117 /* Property empty_init */,
-  118 /* Property init_acallreassignexpr */,
-  100 /* Property empty_init */,
-  101 /* Property init_asuperexpr */,
-  110 /* Property empty_init */,
-  111 /* Property init_ainitexpr */,
-  113 /* Property empty_init */,
-  114 /* Property init_abraexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_abraassignexpr */,
-  113 /* Property empty_init */,
-  114 /* Property init_abrareassignexpr */,
-  83 /* Property empty_init */,
-  84 /* Property init_avarexpr */,
-  88 /* Property empty_init */,
-  89 /* Property init_avarassignexpr */,
-  90 /* Property empty_init */,
-  91 /* Property init_avarreassignexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_arangeexpr */,
-  85 /* Property empty_init */,
-  86 /* Property init_acrangeexpr */,
-  85 /* Property empty_init */,
-  86 /* Property init_aorangeexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_aarrayexpr */,
-  79 /* Property empty_init */,
-  80 /* Property init_aselfexpr */,
-  84 /* Property empty_init */,
-  85 /* Property init_aimplicitselfexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_atrueexpr */,
-  78 /* Property empty_init */,
-  79 /* Property init_afalseexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_anullexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aintexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_afloatexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_acharexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_astringexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_astartstringexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_amidstringexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_aendstringexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_asuperstringexpr */,
-  80 /* Property empty_init */,
-  81 /* Property init_aparexpr */,
-  77 /* Property empty_init */,
-  78 /* Property init_aascastexpr */,
-  70 /* Property empty_init */,
-  71 /* Property init_aplusassignop */,
-  70 /* Property empty_init */,
-  71 /* Property init_aminusassignop */,
-  93 /* Property empty_init */,
-  94 /* Property init_aclosuredef */,
-  69 /* Property empty_init */,
-  70 /* Property init_aqualified */,
-  69 /* Property empty_init */,
-  70 /* Property init_adoc */,
-  68 /* Property init */,
+  40 /* Group of ? */,
+  70 /* Group of ? */,
+  69 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  77 /* Group of ? */,
+  76 /* Group of ? */,
+  76 /* Group of ? */,
+  72 /* Group of ? */,
+  72 /* Group of ? */,
+  72 /* Group of ? */,
+  72 /* Group of ? */,
+  71 /* Group of ? */,
+  73 /* Group of ? */,
+  81 /* Group of ? */,
+  82 /* Group of ? */,
+  95 /* Group of ? */,
+  95 /* Group of ? */,
+  95 /* Group of ? */,
+  96 /* Group of ? */,
+  106 /* Group of ? */,
+  103 /* Group of ? */,
+  79 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  71 /* Group of ? */,
+  72 /* Group of ? */,
+  79 /* Group of ? */,
+  72 /* Group of ? */,
+  75 /* Group of ? */,
+  77 /* Group of ? */,
+  80 /* Group of ? */,
+  78 /* Group of ? */,
+  80 /* Group of ? */,
+  78 /* Group of ? */,
+  80 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  90 /* Group of ? */,
+  90 /* Group of ? */,
+  83 /* Group of ? */,
+  77 /* Group of ? */,
+  81 /* Group of ? */,
+  103 /* Group of ? */,
+  110 /* Group of ? */,
+  78 /* Group of ? */,
+  78 /* Group of ? */,
+  78 /* Group of ? */,
+  115 /* Group of ? */,
+  78 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  78 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  115 /* Group of ? */,
+  110 /* Group of ? */,
+  99 /* Group of ? */,
+  97 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  117 /* Group of ? */,
+  79 /* Group of ? */,
+  117 /* Group of ? */,
+  100 /* Group of ? */,
+  110 /* Group of ? */,
+  113 /* Group of ? */,
+  79 /* Group of ? */,
+  113 /* Group of ? */,
+  83 /* Group of ? */,
+  88 /* Group of ? */,
+  90 /* Group of ? */,
+  78 /* Group of ? */,
+  86 /* Group of ? */,
+  86 /* Group of ? */,
+  80 /* Group of ? */,
+  79 /* Group of ? */,
+  84 /* Group of ? */,
+  78 /* Group of ? */,
+  78 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  81 /* Group of ? */,
+  80 /* Group of ? */,
+  77 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  93 /* Group of ? */,
+  69 /* Group of ? */,
+  69 /* Group of ? */,
+  68 /* Group of ? */,
 };
 const char *LOCATE_lexer = "./parser//lexer.nit";
-const int SFT_lexer[126] = {
-  3 /* Property _text */,
-  4 /* Property _filename */,
-  5 /* Property _line */,
-  6 /* Property _pos */,
-  63 /* Property text */,
-  64 /* Property text= */,
-  65 /* Property filename */,
-  66 /* Property line */,
-  67 /* Property pos */,
-  68 /* Property parser_index */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init_tk */,
-  70 /* Property init */,
-  7 /* Property _message */,
-  73 /* Property message */,
-  74 /* Property message= */,
-  75 /* Property init_error */,
-  139 /* Id of Lexer */,
+const int SFT_lexer[93] = {
+  3 /* Group of ? */,
+  63 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  70 /* Group of ? */,
+  7 /* Group of ? */,
+  73 /* Group of ? */,
+  135 /* Id of Lexer */,
   2 /* Color of Lexer */,
-  1 /* Property _token */,
-  2 /* Property _state */,
-  3 /* Property _filename */,
-  4 /* Property _stream */,
-  5 /* Property _stream_buf */,
-  6 /* Property _stream_pos */,
-  7 /* Property _line */,
-  8 /* Property _pos */,
-  9 /* Property _cr */,
-  10 /* Property _eof */,
-  11 /* Property _text */,
-  12 /* Property _goto_table */,
-  13 /* Property _accept_table */,
-  40 /* Color of Lexer */,
-  41 /* Property filename */,
-  42 /* Property state_initial */,
-  43 /* Property init */,
-  44 /* Property peek */,
-  45 /* Property next */,
-  46 /* Property get_token */,
-  47 /* Property get_char */,
-  48 /* Property push_back */,
-  49 /* Property build_goto_table */,
-  50 /* Property nil_array */,
-  51 /* Property build_accept_table */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_parser_nodes = "./parser//parser_nodes.nit";
-const int SFT_parser_nodes[1318] = {
-  67 /* Id of PNode */,
+const int SFT_parser_nodes[825] = {
+  63 /* Id of PNode */,
   2 /* Color of PNode */,
-  57 /* Color of PNode */,
-  58 /* Property init */,
+  57 /* Group of ? */,
   203 /* Id of Token */,
   3 /* Color of Token */,
-  69 /* Color of Token */,
-  2855 /* Id of Prod */,
+  69 /* Group of ? */,
+  2847 /* Id of Prod */,
   3 /* Color of Prod */,
-  67 /* Color of Prod */,
-  3335 /* Id of TEol */,
+  67 /* Group of ? */,
+  3343 /* Id of TEol */,
   4 /* Color of TEol */,
-  71 /* Color of TEol */,
-  3359 /* Id of TComment */,
+  71 /* Group of ? */,
+  3367 /* Id of TComment */,
   4 /* Color of TComment */,
-  71 /* Color of TComment */,
-  3191 /* Id of TKwpackage */,
+  71 /* Group of ? */,
+  3199 /* Id of TKwpackage */,
   4 /* Color of TKwpackage */,
-  71 /* Color of TKwpackage */,
-  3247 /* Id of TKwimport */,
+  71 /* Group of ? */,
+  3255 /* Id of TKwimport */,
   4 /* Color of TKwimport */,
-  71 /* Color of TKwimport */,
-  3283 /* Id of TKwclass */,
+  71 /* Group of ? */,
+  3291 /* Id of TKwclass */,
   4 /* Color of TKwclass */,
-  71 /* Color of TKwclass */,
-  3307 /* Id of TKwabstract */,
+  71 /* Group of ? */,
+  3315 /* Id of TKwabstract */,
   4 /* Color of TKwabstract */,
-  71 /* Color of TKwabstract */,
-  3235 /* Id of TKwinterface */,
+  71 /* Group of ? */,
+  3243 /* Id of TKwinterface */,
   4 /* Color of TKwinterface */,
-  71 /* Color of TKwinterface */,
-  3143 /* Id of TKwuniversal */,
+  71 /* Group of ? */,
+  3151 /* Id of TKwuniversal */,
   4 /* Color of TKwuniversal */,
-  71 /* Color of TKwuniversal */,
-  3163 /* Id of TKwspecial */,
+  71 /* Group of ? */,
+  3171 /* Id of TKwspecial */,
   4 /* Color of TKwspecial */,
-  71 /* Color of TKwspecial */,
-  3267 /* Id of TKwend */,
+  71 /* Group of ? */,
+  3275 /* Id of TKwend */,
   4 /* Color of TKwend */,
-  71 /* Color of TKwend */,
-  3215 /* Id of TKwmeth */,
+  71 /* Group of ? */,
+  3223 /* Id of TKwmeth */,
   4 /* Color of TKwmeth */,
-  71 /* Color of TKwmeth */,
-  3147 /* Id of TKwtype */,
+  71 /* Group of ? */,
+  3155 /* Id of TKwtype */,
   4 /* Color of TKwtype */,
-  71 /* Color of TKwtype */,
-  3291 /* Id of TKwattr */,
+  71 /* Group of ? */,
+  3299 /* Id of TKwattr */,
   4 /* Color of TKwattr */,
-  71 /* Color of TKwattr */,
-  3239 /* Id of TKwinit */,
+  71 /* Group of ? */,
+  3247 /* Id of TKwinit */,
   4 /* Color of TKwinit */,
-  71 /* Color of TKwinit */,
-  3175 /* Id of TKwredef */,
+  71 /* Group of ? */,
+  3183 /* Id of TKwredef */,
   4 /* Color of TKwredef */,
-  71 /* Color of TKwredef */,
-  3223 /* Id of TKwis */,
+  71 /* Group of ? */,
+  3231 /* Id of TKwis */,
   4 /* Color of TKwis */,
-  71 /* Color of TKwis */,
-  3275 /* Id of TKwdo */,
+  71 /* Group of ? */,
+  3283 /* Id of TKwdo */,
   4 /* Color of TKwdo */,
-  71 /* Color of TKwdo */,
-  3179 /* Id of TKwreadable */,
+  71 /* Group of ? */,
+  3187 /* Id of TKwreadable */,
   4 /* Color of TKwreadable */,
-  71 /* Color of TKwreadable */,
-  3127 /* Id of TKwwritable */,
+  71 /* Group of ? */,
+  3135 /* Id of TKwwritable */,
   4 /* Color of TKwwritable */,
-  71 /* Color of TKwwritable */,
-  3139 /* Id of TKwvar */,
+  71 /* Group of ? */,
+  3147 /* Id of TKwvar */,
   4 /* Color of TKwvar */,
-  71 /* Color of TKwvar */,
-  3231 /* Id of TKwintern */,
+  71 /* Group of ? */,
+  3239 /* Id of TKwintern */,
   4 /* Color of TKwintern */,
-  71 /* Color of TKwintern */,
-  3263 /* Id of TKwextern */,
+  71 /* Group of ? */,
+  3271 /* Id of TKwextern */,
   4 /* Color of TKwextern */,
-  71 /* Color of TKwextern */,
-  3183 /* Id of TKwprotected */,
+  71 /* Group of ? */,
+  3191 /* Id of TKwprotected */,
   4 /* Color of TKwprotected */,
-  71 /* Color of TKwprotected */,
-  3187 /* Id of TKwprivate */,
+  71 /* Group of ? */,
+  3195 /* Id of TKwprivate */,
   4 /* Color of TKwprivate */,
-  71 /* Color of TKwprivate */,
-  3227 /* Id of TKwintrude */,
+  71 /* Group of ? */,
+  3235 /* Id of TKwintrude */,
   4 /* Color of TKwintrude */,
-  71 /* Color of TKwintrude */,
-  3251 /* Id of TKwif */,
+  71 /* Group of ? */,
+  3259 /* Id of TKwif */,
   4 /* Color of TKwif */,
-  71 /* Color of TKwif */,
-  3155 /* Id of TKwthen */,
+  71 /* Group of ? */,
+  3163 /* Id of TKwthen */,
   4 /* Color of TKwthen */,
-  71 /* Color of TKwthen */,
-  3271 /* Id of TKwelse */,
+  71 /* Group of ? */,
+  3279 /* Id of TKwelse */,
   4 /* Color of TKwelse */,
-  71 /* Color of TKwelse */,
-  3135 /* Id of TKwwhile */,
+  71 /* Group of ? */,
+  3143 /* Id of TKwwhile */,
   4 /* Color of TKwwhile */,
-  71 /* Color of TKwwhile */,
-  3255 /* Id of TKwfor */,
+  71 /* Group of ? */,
+  3263 /* Id of TKwfor */,
   4 /* Color of TKwfor */,
-  71 /* Color of TKwfor */,
-  3243 /* Id of TKwin */,
+  71 /* Group of ? */,
+  3251 /* Id of TKwin */,
   4 /* Color of TKwin */,
-  71 /* Color of TKwin */,
-  3303 /* Id of TKwand */,
+  71 /* Group of ? */,
+  3311 /* Id of TKwand */,
   4 /* Color of TKwand */,
-  71 /* Color of TKwand */,
-  3195 /* Id of TKwor */,
+  71 /* Group of ? */,
+  3203 /* Id of TKwor */,
   4 /* Color of TKwor */,
-  71 /* Color of TKwor */,
-  3207 /* Id of TKwnot */,
+  71 /* Group of ? */,
+  3215 /* Id of TKwnot */,
   4 /* Color of TKwnot */,
-  71 /* Color of TKwnot */,
-  3171 /* Id of TKwreturn */,
+  71 /* Group of ? */,
+  3179 /* Id of TKwreturn */,
   4 /* Color of TKwreturn */,
-  71 /* Color of TKwreturn */,
-  3279 /* Id of TKwcontinue */,
+  71 /* Group of ? */,
+  3287 /* Id of TKwcontinue */,
   4 /* Color of TKwcontinue */,
-  71 /* Color of TKwcontinue */,
-  3287 /* Id of TKwbreak */,
+  71 /* Group of ? */,
+  3295 /* Id of TKwbreak */,
   4 /* Color of TKwbreak */,
-  71 /* Color of TKwbreak */,
-  3311 /* Id of TKwabort */,
+  71 /* Group of ? */,
+  3319 /* Id of TKwabort */,
   4 /* Color of TKwabort */,
-  71 /* Color of TKwabort */,
-  3295 /* Id of TKwassert */,
+  71 /* Group of ? */,
+  3303 /* Id of TKwassert */,
   4 /* Color of TKwassert */,
-  71 /* Color of TKwassert */,
-  3211 /* Id of TKwnew */,
+  71 /* Group of ? */,
+  3219 /* Id of TKwnew */,
   4 /* Color of TKwnew */,
-  71 /* Color of TKwnew */,
-  3219 /* Id of TKwisa */,
+  71 /* Group of ? */,
+  3227 /* Id of TKwisa */,
   4 /* Color of TKwisa */,
-  71 /* Color of TKwisa */,
-  3199 /* Id of TKwonce */,
+  71 /* Group of ? */,
+  3207 /* Id of TKwonce */,
   4 /* Color of TKwonce */,
-  71 /* Color of TKwonce */,
-  3159 /* Id of TKwsuper */,
+  71 /* Group of ? */,
+  3167 /* Id of TKwsuper */,
   4 /* Color of TKwsuper */,
-  71 /* Color of TKwsuper */,
-  3167 /* Id of TKwself */,
+  71 /* Group of ? */,
+  3175 /* Id of TKwself */,
   4 /* Color of TKwself */,
-  71 /* Color of TKwself */,
-  3151 /* Id of TKwtrue */,
+  71 /* Group of ? */,
+  3159 /* Id of TKwtrue */,
   4 /* Color of TKwtrue */,
-  71 /* Color of TKwtrue */,
-  3259 /* Id of TKwfalse */,
+  71 /* Group of ? */,
+  3267 /* Id of TKwfalse */,
   4 /* Color of TKwfalse */,
-  71 /* Color of TKwfalse */,
-  3203 /* Id of TKwnull */,
+  71 /* Group of ? */,
+  3211 /* Id of TKwnull */,
   4 /* Color of TKwnull */,
-  71 /* Color of TKwnull */,
-  3299 /* Id of TKwas */,
+  71 /* Group of ? */,
+  3307 /* Id of TKwas */,
   4 /* Color of TKwas */,
-  71 /* Color of TKwas */,
-  3131 /* Id of TKwwith */,
+  71 /* Group of ? */,
+  3139 /* Id of TKwwith */,
   4 /* Color of TKwwith */,
-  71 /* Color of TKwwith */,
-  3091 /* Id of TOpar */,
+  71 /* Group of ? */,
+  3099 /* Id of TOpar */,
   4 /* Color of TOpar */,
-  71 /* Color of TOpar */,
-  3355 /* Id of TCpar */,
+  71 /* Group of ? */,
+  3363 /* Id of TCpar */,
   4 /* Color of TCpar */,
-  71 /* Color of TCpar */,
-  3095 /* Id of TObra */,
+  71 /* Group of ? */,
+  3103 /* Id of TObra */,
   4 /* Color of TObra */,
-  71 /* Color of TObra */,
-  3379 /* Id of TCbra */,
+  71 /* Group of ? */,
+  3387 /* Id of TCbra */,
   4 /* Color of TCbra */,
-  71 /* Color of TCbra */,
-  3363 /* Id of TComma */,
+  71 /* Group of ? */,
+  3371 /* Id of TComma */,
   4 /* Color of TComma */,
-  71 /* Color of TComma */,
-  3367 /* Id of TColumn */,
+  71 /* Group of ? */,
+  3375 /* Id of TColumn */,
   4 /* Color of TColumn */,
-  71 /* Color of TColumn */,
-  3075 /* Id of TQuad */,
+  71 /* Group of ? */,
+  3083 /* Id of TQuad */,
   4 /* Color of TQuad */,
-  71 /* Color of TQuad */,
-  3387 /* Id of TAssign */,
+  71 /* Group of ? */,
+  3395 /* Id of TAssign */,
   4 /* Color of TAssign */,
-  71 /* Color of TAssign */,
-  3079 /* Id of TPluseq */,
+  71 /* Group of ? */,
+  3087 /* Id of TPluseq */,
   4 /* Color of TPluseq */,
-  71 /* Color of TPluseq */,
-  3107 /* Id of TMinuseq */,
+  71 /* Group of ? */,
+  3115 /* Id of TMinuseq */,
   4 /* Color of TMinuseq */,
-  71 /* Color of TMinuseq */,
-  3343 /* Id of TDotdotdot */,
+  71 /* Group of ? */,
+  3351 /* Id of TDotdotdot */,
   4 /* Color of TDotdotdot */,
-  71 /* Color of TDotdotdot */,
-  3347 /* Id of TDotdot */,
+  71 /* Group of ? */,
+  3355 /* Id of TDotdot */,
   4 /* Color of TDotdot */,
-  71 /* Color of TDotdot */,
-  3351 /* Id of TDot */,
+  71 /* Group of ? */,
+  3359 /* Id of TDot */,
   4 /* Color of TDot */,
-  71 /* Color of TDot */,
-  3083 /* Id of TPlus */,
+  71 /* Group of ? */,
+  3091 /* Id of TPlus */,
   4 /* Color of TPlus */,
-  71 /* Color of TPlus */,
-  3111 /* Id of TMinus */,
+  71 /* Group of ? */,
+  3119 /* Id of TMinus */,
   4 /* Color of TMinus */,
-  71 /* Color of TMinus */,
-  3067 /* Id of TStar */,
+  71 /* Group of ? */,
+  3075 /* Id of TStar */,
   4 /* Color of TStar */,
-  71 /* Color of TStar */,
-  3071 /* Id of TSlash */,
+  71 /* Group of ? */,
+  3079 /* Id of TSlash */,
   4 /* Color of TSlash */,
-  71 /* Color of TSlash */,
-  3087 /* Id of TPercent */,
+  71 /* Group of ? */,
+  3095 /* Id of TPercent */,
   4 /* Color of TPercent */,
-  71 /* Color of TPercent */,
-  3331 /* Id of TEq */,
+  71 /* Group of ? */,
+  3339 /* Id of TEq */,
   4 /* Color of TEq */,
-  71 /* Color of TEq */,
-  3103 /* Id of TNe */,
+  71 /* Group of ? */,
+  3111 /* Id of TNe */,
   4 /* Color of TNe */,
-  71 /* Color of TNe */,
-  3119 /* Id of TLt */,
+  71 /* Group of ? */,
+  3127 /* Id of TLt */,
   4 /* Color of TLt */,
-  71 /* Color of TLt */,
-  3123 /* Id of TLe */,
+  71 /* Group of ? */,
+  3131 /* Id of TLe */,
   4 /* Color of TLe */,
-  71 /* Color of TLe */,
-  3319 /* Id of TGt */,
+  71 /* Group of ? */,
+  3327 /* Id of TGt */,
   4 /* Color of TGt */,
-  71 /* Color of TGt */,
-  3323 /* Id of TGe */,
+  71 /* Group of ? */,
+  3331 /* Id of TGe */,
   4 /* Color of TGe */,
-  71 /* Color of TGe */,
-  3063 /* Id of TStarship */,
+  71 /* Group of ? */,
+  3071 /* Id of TStarship */,
   4 /* Color of TStarship */,
-  71 /* Color of TStarship */,
-  3371 /* Id of TClassid */,
+  71 /* Group of ? */,
+  3379 /* Id of TClassid */,
   4 /* Color of TClassid */,
-  71 /* Color of TClassid */,
-  3315 /* Id of TId */,
+  71 /* Group of ? */,
+  3323 /* Id of TId */,
   4 /* Color of TId */,
-  71 /* Color of TId */,
-  3383 /* Id of TAttrid */,
+  71 /* Group of ? */,
+  3391 /* Id of TAttrid */,
   4 /* Color of TAttrid */,
-  71 /* Color of TAttrid */,
-  3099 /* Id of TNumber */,
+  71 /* Group of ? */,
+  3107 /* Id of TNumber */,
   4 /* Color of TNumber */,
-  71 /* Color of TNumber */,
-  3327 /* Id of TFloat */,
+  71 /* Group of ? */,
+  3335 /* Id of TFloat */,
   4 /* Color of TFloat */,
-  71 /* Color of TFloat */,
-  3375 /* Id of TChar */,
+  71 /* Group of ? */,
+  3383 /* Id of TChar */,
   4 /* Color of TChar */,
-  71 /* Color of TChar */,
-  3055 /* Id of TString */,
+  71 /* Group of ? */,
+  3063 /* Id of TString */,
   4 /* Color of TString */,
-  71 /* Color of TString */,
-  3059 /* Id of TStartString */,
+  71 /* Group of ? */,
+  3067 /* Id of TStartString */,
   4 /* Color of TStartString */,
-  71 /* Color of TStartString */,
-  3115 /* Id of TMidString */,
+  71 /* Group of ? */,
+  3123 /* Id of TMidString */,
   4 /* Color of TMidString */,
-  71 /* Color of TMidString */,
-  3339 /* Id of TEndString */,
+  71 /* Group of ? */,
+  3347 /* Id of TEndString */,
   4 /* Color of TEndString */,
-  71 /* Color of TEndString */,
-  3575 /* Id of EOF */,
+  71 /* Group of ? */,
+  3587 /* Id of EOF */,
   4 /* Color of EOF */,
-  71 /* Color of EOF */,
-  72 /* Property noinit */,
-  3647 /* Id of PError */,
+  71 /* Group of ? */,
+  3655 /* Id of PError */,
   5 /* Color of PError */,
-  76 /* Color of PError */,
-  77 /* Property noinit */,
-  3439 /* Id of PModule */,
+  76 /* Group of ? */,
+  3447 /* Id of PModule */,
   4 /* Color of PModule */,
-  68 /* Color of PModule */,
-  3435 /* Id of PPackagedecl */,
+  68 /* Group of ? */,
+  3443 /* Id of PPackagedecl */,
   4 /* Color of PPackagedecl */,
-  68 /* Color of PPackagedecl */,
-  3447 /* Id of PImport */,
+  68 /* Group of ? */,
+  3455 /* Id of PImport */,
   4 /* Color of PImport */,
-  70 /* Color of PImport */,
-  3407 /* Id of PVisibility */,
+  70 /* Group of ? */,
+  3415 /* Id of PVisibility */,
   4 /* Color of PVisibility */,
-  69 /* Color of PVisibility */,
-  3475 /* Id of PClassdef */,
+  69 /* Group of ? */,
+  3483 /* Id of PClassdef */,
   4 /* Color of PClassdef */,
-  74 /* Color of PClassdef */,
-  3471 /* Id of PClasskind */,
+  74 /* Group of ? */,
+  3479 /* Id of PClasskind */,
   4 /* Color of PClasskind */,
-  71 /* Color of PClasskind */,
-  3451 /* Id of PFormaldef */,
+  71 /* Group of ? */,
+  3459 /* Id of PFormaldef */,
   4 /* Color of PFormaldef */,
-  68 /* Color of PFormaldef */,
-  3415 /* Id of PSuperclass */,
+  68 /* Group of ? */,
+  3423 /* Id of PSuperclass */,
   4 /* Color of PSuperclass */,
-  68 /* Color of PSuperclass */,
-  3427 /* Id of PPropdef */,
+  68 /* Group of ? */,
+  3435 /* Id of PPropdef */,
   4 /* Color of PPropdef */,
-  4 /* Property _n_doc */,
-  72 /* Color of PPropdef */,
-  73 /* Property n_doc */,
-  74 /* Property n_doc= */,
-  3483 /* Id of PAble */,
+  4 /* Group of ? */,
+  72 /* Group of ? */,
+  3491 /* Id of PAble */,
   4 /* Color of PAble */,
-  4 /* Property _n_kwredef */,
-  68 /* Color of PAble */,
-  69 /* Property n_kwredef */,
-  70 /* Property n_kwredef= */,
-  3443 /* Id of PMethid */,
+  4 /* Group of ? */,
+  68 /* Group of ? */,
+  3451 /* Id of PMethid */,
   4 /* Color of PMethid */,
-  70 /* Color of PMethid */,
-  3419 /* Id of PSignature */,
+  70 /* Group of ? */,
+  3427 /* Id of PSignature */,
   4 /* Color of PSignature */,
-  70 /* Color of PSignature */,
-  3431 /* Id of PParam */,
+  70 /* Group of ? */,
+  3439 /* Id of PParam */,
   4 /* Color of PParam */,
-  7 /* Property _n_id */,
-  8 /* Property _n_type */,
-  74 /* Color of PParam */,
-  75 /* Property n_id */,
-  76 /* Property n_id= */,
-  77 /* Property n_type */,
-  78 /* Property n_type= */,
-  3467 /* Id of PClosureDecl */,
+  7 /* Group of ? */,
+  74 /* Group of ? */,
+  3475 /* Id of PClosureDecl */,
   4 /* Color of PClosureDecl */,
-  70 /* Color of PClosureDecl */,
-  3411 /* Id of PType */,
+  70 /* Group of ? */,
+  3419 /* Id of PType */,
   4 /* Color of PType */,
-  73 /* Color of PType */,
-  3455 /* Id of PExpr */,
+  73 /* Group of ? */,
+  3463 /* Id of PExpr */,
   4 /* Color of PExpr */,
-  72 /* Color of PExpr */,
-  3479 /* Id of PAssignOp */,
+  72 /* Group of ? */,
+  3487 /* Id of PAssignOp */,
   4 /* Color of PAssignOp */,
-  69 /* Color of PAssignOp */,
-  3463 /* Id of PClosureDef */,
+  69 /* Group of ? */,
+  3471 /* Id of PClosureDef */,
   5 /* Color of PClosureDef */,
-  85 /* Color of PClosureDef */,
-  3423 /* Id of PQualified */,
+  85 /* Group of ? */,
+  3431 /* Id of PQualified */,
   4 /* Color of PQualified */,
-  68 /* Color of PQualified */,
-  3459 /* Id of PDoc */,
+  68 /* Group of ? */,
+  3467 /* Id of PDoc */,
   4 /* Color of PDoc */,
-  68 /* Color of PDoc */,
-  3823 /* Id of AModule */,
+  68 /* Group of ? */,
+  3831 /* Id of AModule */,
   5 /* Color of AModule */,
-  4 /* Property _n_packagedecl */,
-  5 /* Property _n_imports */,
-  6 /* Property _n_classdefs */,
-  72 /* Color of AModule */,
-  73 /* Property n_packagedecl */,
-  74 /* Property n_packagedecl= */,
-  75 /* Property n_imports */,
-  76 /* Property n_imports= */,
-  77 /* Property n_classdefs */,
-  78 /* Property n_classdefs= */,
-  3807 /* Id of APackagedecl */,
+  4 /* Group of ? */,
+  72 /* Group of ? */,
+  3815 /* Id of APackagedecl */,
   5 /* Color of APackagedecl */,
-  4 /* Property _n_doc */,
-  5 /* Property _n_kwpackage */,
-  6 /* Property _n_id */,
-  71 /* Color of APackagedecl */,
-  72 /* Property n_doc */,
-  73 /* Property n_doc= */,
-  74 /* Property n_kwpackage */,
-  75 /* Property n_kwpackage= */,
-  76 /* Property n_id */,
-  77 /* Property n_id= */,
-  3863 /* Id of AImport */,
+  4 /* Group of ? */,
+  71 /* Group of ? */,
+  3871 /* Id of AImport */,
   5 /* Color of AImport */,
-  4 /* Property _n_visibility */,
-  5 /* Property _n_kwimport */,
-  6 /* Property _n_id */,
-  73 /* Color of AImport */,
-  74 /* Property n_visibility */,
-  75 /* Property n_visibility= */,
-  76 /* Property n_kwimport */,
-  77 /* Property n_kwimport= */,
-  78 /* Property n_id */,
-  79 /* Property n_id= */,
-  3815 /* Id of ANoImport */,
+  4 /* Group of ? */,
+  73 /* Group of ? */,
+  3823 /* Id of ANoImport */,
   5 /* Color of ANoImport */,
-  4 /* Property _n_visibility */,
-  5 /* Property _n_kwimport */,
-  6 /* Property _n_kwend */,
-  73 /* Color of ANoImport */,
-  74 /* Property n_visibility */,
-  75 /* Property n_visibility= */,
-  76 /* Property n_kwimport */,
-  77 /* Property n_kwimport= */,
-  78 /* Property n_kwend */,
-  79 /* Property n_kwend= */,
-  3775 /* Id of APublicVisibility */,
+  4 /* Group of ? */,
+  73 /* Group of ? */,
+  3783 /* Id of APublicVisibility */,
   5 /* Color of APublicVisibility */,
-  72 /* Color of APublicVisibility */,
-  3787 /* Id of APrivateVisibility */,
+  72 /* Group of ? */,
+  3795 /* Id of APrivateVisibility */,
   5 /* Color of APrivateVisibility */,
-  4 /* Property _n_kwprivate */,
-  72 /* Color of APrivateVisibility */,
-  73 /* Property n_kwprivate */,
-  74 /* Property n_kwprivate= */,
-  3783 /* Id of AProtectedVisibility */,
+  4 /* Group of ? */,
+  72 /* Group of ? */,
+  3791 /* Id of AProtectedVisibility */,
   5 /* Color of AProtectedVisibility */,
-  4 /* Property _n_kwprotected */,
-  72 /* Color of AProtectedVisibility */,
-  73 /* Property n_kwprotected */,
-  74 /* Property n_kwprotected= */,
-  3851 /* Id of AIntrudeVisibility */,
+  4 /* Group of ? */,
+  72 /* Group of ? */,
+  3859 /* Id of AIntrudeVisibility */,
   5 /* Color of AIntrudeVisibility */,
-  4 /* Property _n_kwintrude */,
-  72 /* Color of AIntrudeVisibility */,
-  73 /* Property n_kwintrude */,
-  74 /* Property n_kwintrude= */,
-  3923 /* Id of AClassdef */,
+  4 /* Group of ? */,
+  72 /* Group of ? */,
+  3931 /* Id of AClassdef */,
   5 /* Color of AClassdef */,
-  5 /* Property _n_doc */,
-  6 /* Property _n_kwredef */,
-  7 /* Property _n_visibility */,
-  8 /* Property _n_classkind */,
-  9 /* Property _n_id */,
-  10 /* Property _n_formaldefs */,
-  11 /* Property _n_superclasses */,
-  12 /* Property _n_propdefs */,
-  79 /* Color of AClassdef */,
-  80 /* Property n_doc */,
-  81 /* Property n_doc= */,
-  82 /* Property n_kwredef */,
-  83 /* Property n_kwredef= */,
-  84 /* Property n_visibility */,
-  85 /* Property n_visibility= */,
-  86 /* Property n_classkind */,
-  87 /* Property n_classkind= */,
-  88 /* Property n_id */,
-  89 /* Property n_id= */,
-  90 /* Property n_formaldefs */,
-  91 /* Property n_formaldefs= */,
-  92 /* Property n_superclasses */,
-  93 /* Property n_superclasses= */,
-  94 /* Property n_propdefs */,
-  95 /* Property n_propdefs= */,
-  3719 /* Id of ATopClassdef */,
+  5 /* Group of ? */,
+  79 /* Group of ? */,
+  3727 /* Id of ATopClassdef */,
   5 /* Color of ATopClassdef */,
-  5 /* Property _n_propdefs */,
-  78 /* Color of ATopClassdef */,
-  79 /* Property n_propdefs */,
-  80 /* Property n_propdefs= */,
-  3839 /* Id of AMainClassdef */,
+  5 /* Group of ? */,
+  78 /* Group of ? */,
+  3847 /* Id of AMainClassdef */,
   5 /* Color of AMainClassdef */,
-  5 /* Property _n_propdefs */,
-  78 /* Color of AMainClassdef */,
-  79 /* Property n_propdefs */,
-  80 /* Property n_propdefs= */,
-  3915 /* Id of AConcreteClasskind */,
+  5 /* Group of ? */,
+  78 /* Group of ? */,
+  3923 /* Id of AConcreteClasskind */,
   5 /* Color of AConcreteClasskind */,
-  4 /* Property _n_kwclass */,
-  74 /* Color of AConcreteClasskind */,
-  75 /* Property n_kwclass */,
-  76 /* Property n_kwclass= */,
-  3979 /* Id of AAbstractClasskind */,
+  4 /* Group of ? */,
+  74 /* Group of ? */,
+  3987 /* Id of AAbstractClasskind */,
   5 /* Color of AAbstractClasskind */,
-  4 /* Property _n_kwabstract */,
-  5 /* Property _n_kwclass */,
-  74 /* Color of AAbstractClasskind */,
-  75 /* Property n_kwabstract */,
-  76 /* Property n_kwabstract= */,
-  77 /* Property n_kwclass */,
-  78 /* Property n_kwclass= */,
-  3855 /* Id of AInterfaceClasskind */,
+  4 /* Group of ? */,
+  74 /* Group of ? */,
+  3863 /* Id of AInterfaceClasskind */,
   5 /* Color of AInterfaceClasskind */,
-  4 /* Property _n_kwinterface */,
-  74 /* Color of AInterfaceClasskind */,
-  75 /* Property n_kwinterface */,
-  76 /* Property n_kwinterface= */,
-  3707 /* Id of AUniversalClasskind */,
+  4 /* Group of ? */,
+  74 /* Group of ? */,
+  3715 /* Id of AUniversalClasskind */,
   5 /* Color of AUniversalClasskind */,
-  4 /* Property _n_kwuniversal */,
-  74 /* Color of AUniversalClasskind */,
-  75 /* Property n_kwuniversal */,
-  76 /* Property n_kwuniversal= */,
-  3887 /* Id of AFormaldef */,
+  4 /* Group of ? */,
+  74 /* Group of ? */,
+  3895 /* Id of AFormaldef */,
   5 /* Color of AFormaldef */,
-  5 /* Property _n_id */,
-  6 /* Property _n_type */,
-  73 /* Color of AFormaldef */,
-  74 /* Property n_id */,
-  75 /* Property n_id= */,
-  76 /* Property n_type */,
-  77 /* Property n_type= */,
-  3727 /* Id of ASuperclass */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3735 /* Id of ASuperclass */,
   5 /* Color of ASuperclass */,
-  5 /* Property _n_kwspecial */,
-  6 /* Property _n_type */,
-  75 /* Color of ASuperclass */,
-  76 /* Property n_kwspecial */,
-  77 /* Property n_kwspecial= */,
-  78 /* Property n_type */,
-  79 /* Property n_type= */,
-  3951 /* Id of AAttrPropdef */,
+  5 /* Group of ? */,
+  75 /* Group of ? */,
+  3959 /* Id of AAttrPropdef */,
   5 /* Color of AAttrPropdef */,
-  8 /* Property _n_kwredef */,
-  9 /* Property _n_visibility */,
-  10 /* Property _n_kwattr */,
-  11 /* Property _n_id */,
-  12 /* Property _n_type */,
-  13 /* Property _n_readable */,
-  14 /* Property _n_writable */,
-  15 /* Property _n_expr */,
-  83 /* Color of AAttrPropdef */,
-  84 /* Property n_kwredef */,
-  85 /* Property n_kwredef= */,
-  86 /* Property n_visibility */,
-  87 /* Property n_visibility= */,
-  88 /* Property n_kwattr */,
-  89 /* Property n_kwattr= */,
-  90 /* Property n_id */,
-  91 /* Property n_id= */,
-  92 /* Property n_type */,
-  93 /* Property n_type= */,
-  94 /* Property n_readable */,
-  95 /* Property n_readable= */,
-  96 /* Property n_writable */,
-  97 /* Property n_writable= */,
-  98 /* Property n_expr */,
-  99 /* Property n_expr= */,
-  3835 /* Id of AMethPropdef */,
+  8 /* Group of ? */,
+  83 /* Group of ? */,
+  3843 /* Id of AMethPropdef */,
   5 /* Color of AMethPropdef */,
-  7 /* Property _n_kwredef */,
-  8 /* Property _n_visibility */,
-  9 /* Property _n_methid */,
-  10 /* Property _n_signature */,
-  84 /* Color of AMethPropdef */,
-  85 /* Property n_kwredef */,
-  86 /* Property n_kwredef= */,
-  87 /* Property n_visibility */,
-  88 /* Property n_visibility= */,
-  89 /* Property n_methid */,
-  90 /* Property n_methid= */,
-  91 /* Property n_signature */,
-  92 /* Property n_signature= */,
-  4123 /* Id of ADeferredMethPropdef */,
+  7 /* Group of ? */,
+  84 /* Group of ? */,
+  4131 /* Id of ADeferredMethPropdef */,
   6 /* Color of ADeferredMethPropdef */,
-  12 /* Property _n_kwmeth */,
-  97 /* Color of ADeferredMethPropdef */,
-  98 /* Property n_kwmeth */,
-  99 /* Property n_kwmeth= */,
-  4095 /* Id of AInternMethPropdef */,
+  12 /* Group of ? */,
+  97 /* Group of ? */,
+  4103 /* Id of AInternMethPropdef */,
   6 /* Color of AInternMethPropdef */,
-  12 /* Property _n_kwmeth */,
-  97 /* Color of AInternMethPropdef */,
-  98 /* Property n_kwmeth */,
-  99 /* Property n_kwmeth= */,
-  4111 /* Id of AExternMethPropdef */,
+  12 /* Group of ? */,
+  97 /* Group of ? */,
+  4119 /* Id of AExternMethPropdef */,
   6 /* Color of AExternMethPropdef */,
-  12 /* Property _n_kwmeth */,
-  13 /* Property _n_extern */,
-  97 /* Color of AExternMethPropdef */,
-  98 /* Property n_kwmeth */,
-  99 /* Property n_kwmeth= */,
-  100 /* Property n_extern */,
-  101 /* Property n_extern= */,
-  4135 /* Id of AConcreteMethPropdef */,
+  12 /* Group of ? */,
+  97 /* Group of ? */,
+  4143 /* Id of AConcreteMethPropdef */,
   6 /* Color of AConcreteMethPropdef */,
-  12 /* Property _n_kwmeth */,
-  13 /* Property _n_block */,
-  98 /* Color of AConcreteMethPropdef */,
-  99 /* Property n_kwmeth */,
-  100 /* Property n_kwmeth= */,
-  101 /* Property n_block */,
-  102 /* Property n_block= */,
-  4183 /* Id of AConcreteInitPropdef */,
+  12 /* Group of ? */,
+  98 /* Group of ? */,
+  4191 /* Id of AConcreteInitPropdef */,
   7 /* Color of AConcreteInitPropdef */,
-  16 /* Property _n_kwinit */,
-  108 /* Color of AConcreteInitPropdef */,
-  109 /* Property n_kwinit */,
-  110 /* Property n_kwinit= */,
-  4179 /* Id of AMainMethPropdef */,
+  16 /* Group of ? */,
+  108 /* Group of ? */,
+  4187 /* Id of AMainMethPropdef */,
   7 /* Color of AMainMethPropdef */,
-  105 /* Color of AMainMethPropdef */,
-  3711 /* Id of ATypePropdef */,
+  105 /* Group of ? */,
+  3719 /* Id of ATypePropdef */,
   5 /* Color of ATypePropdef */,
-  6 /* Property _n_kwredef */,
-  7 /* Property _n_visibility */,
-  8 /* Property _n_kwtype */,
-  9 /* Property _n_id */,
-  10 /* Property _n_type */,
-  81 /* Color of ATypePropdef */,
-  82 /* Property n_kwredef */,
-  83 /* Property n_kwredef= */,
-  84 /* Property n_visibility */,
-  85 /* Property n_visibility= */,
-  86 /* Property n_kwtype */,
-  87 /* Property n_kwtype= */,
-  88 /* Property n_id */,
-  89 /* Property n_id= */,
-  90 /* Property n_type */,
-  91 /* Property n_type= */,
-  3763 /* Id of AReadAble */,
+  6 /* Group of ? */,
+  81 /* Group of ? */,
+  3771 /* Id of AReadAble */,
   5 /* Color of AReadAble */,
-  5 /* Property _n_kwreadable */,
-  73 /* Color of AReadAble */,
-  74 /* Property n_kwreadable */,
-  75 /* Property n_kwreadable= */,
-  3695 /* Id of AWriteAble */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3703 /* Id of AWriteAble */,
   5 /* Color of AWriteAble */,
-  5 /* Property _n_kwwritable */,
-  73 /* Color of AWriteAble */,
-  74 /* Property n_kwwritable */,
-  75 /* Property n_kwwritable= */,
-  3875 /* Id of AIdMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3883 /* Id of AIdMethid */,
   5 /* Color of AIdMethid */,
-  5 /* Property _n_id */,
-  73 /* Color of AIdMethid */,
-  74 /* Property n_id */,
-  75 /* Property n_id= */,
-  3791 /* Id of APlusMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3799 /* Id of APlusMethid */,
   5 /* Color of APlusMethid */,
-  5 /* Property _n_plus */,
-  73 /* Color of APlusMethid */,
-  74 /* Property n_plus */,
-  75 /* Property n_plus= */,
-  3827 /* Id of AMinusMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3835 /* Id of AMinusMethid */,
   5 /* Color of AMinusMethid */,
-  5 /* Property _n_minus */,
-  73 /* Color of AMinusMethid */,
-  74 /* Property n_minus */,
-  75 /* Property n_minus= */,
-  3739 /* Id of AStarMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3747 /* Id of AStarMethid */,
   5 /* Color of AStarMethid */,
-  5 /* Property _n_star */,
-  73 /* Color of AStarMethid */,
-  74 /* Property n_star */,
-  75 /* Property n_star= */,
-  3743 /* Id of ASlashMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3751 /* Id of ASlashMethid */,
   5 /* Color of ASlashMethid */,
-  5 /* Property _n_slash */,
-  73 /* Color of ASlashMethid */,
-  74 /* Property n_slash */,
-  75 /* Property n_slash= */,
-  3799 /* Id of APercentMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3807 /* Id of APercentMethid */,
   5 /* Color of APercentMethid */,
-  5 /* Property _n_percent */,
-  73 /* Color of APercentMethid */,
-  74 /* Property n_percent */,
-  75 /* Property n_percent= */,
-  3899 /* Id of AEqMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3907 /* Id of AEqMethid */,
   5 /* Color of AEqMethid */,
-  5 /* Property _n_eq */,
-  73 /* Color of AEqMethid */,
-  74 /* Property n_eq */,
-  75 /* Property n_eq= */,
-  3819 /* Id of ANeMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3827 /* Id of ANeMethid */,
   5 /* Color of ANeMethid */,
-  5 /* Property _n_ne */,
-  73 /* Color of ANeMethid */,
-  74 /* Property n_ne */,
-  75 /* Property n_ne= */,
-  3847 /* Id of ALeMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3855 /* Id of ALeMethid */,
   5 /* Color of ALeMethid */,
-  5 /* Property _n_le */,
-  73 /* Color of ALeMethid */,
-  74 /* Property n_le */,
-  75 /* Property n_le= */,
-  3883 /* Id of AGeMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3891 /* Id of AGeMethid */,
   5 /* Color of AGeMethid */,
-  5 /* Property _n_ge */,
-  73 /* Color of AGeMethid */,
-  74 /* Property n_ge */,
-  75 /* Property n_ge= */,
-  3843 /* Id of ALtMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3851 /* Id of ALtMethid */,
   5 /* Color of ALtMethid */,
-  5 /* Property _n_lt */,
-  73 /* Color of ALtMethid */,
-  74 /* Property n_lt */,
-  75 /* Property n_lt= */,
-  3879 /* Id of AGtMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3887 /* Id of AGtMethid */,
   5 /* Color of AGtMethid */,
-  5 /* Property _n_gt */,
-  73 /* Color of AGtMethid */,
-  74 /* Property n_gt */,
-  75 /* Property n_gt= */,
-  3935 /* Id of ABraMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3943 /* Id of ABraMethid */,
   5 /* Color of ABraMethid */,
-  5 /* Property _n_obra */,
-  6 /* Property _n_cbra */,
-  73 /* Color of ABraMethid */,
-  74 /* Property n_obra */,
-  75 /* Property n_obra= */,
-  76 /* Property n_cbra */,
-  77 /* Property n_cbra= */,
-  3735 /* Id of AStarshipMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3743 /* Id of AStarshipMethid */,
   5 /* Color of AStarshipMethid */,
-  5 /* Property _n_starship */,
-  73 /* Color of AStarshipMethid */,
-  74 /* Property n_starship */,
-  75 /* Property n_starship= */,
-  3959 /* Id of AAssignMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3967 /* Id of AAssignMethid */,
   5 /* Color of AAssignMethid */,
-  5 /* Property _n_id */,
-  6 /* Property _n_assign */,
-  73 /* Color of AAssignMethid */,
-  74 /* Property n_id */,
-  75 /* Property n_id= */,
-  76 /* Property n_assign */,
-  77 /* Property n_assign= */,
-  3931 /* Id of ABraassignMethid */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3939 /* Id of ABraassignMethid */,
   5 /* Color of ABraassignMethid */,
-  5 /* Property _n_obra */,
-  6 /* Property _n_cbra */,
-  7 /* Property _n_assign */,
-  73 /* Color of ABraassignMethid */,
-  74 /* Property n_obra */,
-  75 /* Property n_obra= */,
-  76 /* Property n_cbra */,
-  77 /* Property n_cbra= */,
-  78 /* Property n_assign */,
-  79 /* Property n_assign= */,
-  3747 /* Id of ASignature */,
+  5 /* Group of ? */,
+  73 /* Group of ? */,
+  3755 /* Id of ASignature */,
   5 /* Color of ASignature */,
-  4 /* Property _n_params */,
-  5 /* Property _n_type */,
-  6 /* Property _n_closure_decls */,
-  74 /* Color of ASignature */,
-  75 /* Property n_params */,
-  76 /* Property n_params= */,
-  77 /* Property n_type */,
-  78 /* Property n_type= */,
-  79 /* Property n_closure_decls */,
-  80 /* Property n_closure_decls= */,
-  3803 /* Id of AParam */,
+  4 /* Group of ? */,
+  74 /* Group of ? */,
+  3811 /* Id of AParam */,
   5 /* Color of AParam */,
-  9 /* Property _n_dotdotdot */,
-  81 /* Color of AParam */,
-  82 /* Property n_dotdotdot */,
-  83 /* Property n_dotdotdot= */,
-  3919 /* Id of AClosureDecl */,
+  9 /* Group of ? */,
+  81 /* Group of ? */,
+  3927 /* Id of AClosureDecl */,
   5 /* Color of AClosureDecl */,
-  5 /* Property _n_kwwith */,
-  6 /* Property _n_kwbreak */,
-  7 /* Property _n_id */,
-  8 /* Property _n_signature */,
-  9 /* Property _n_expr */,
-  74 /* Color of AClosureDecl */,
-  75 /* Property n_kwwith */,
-  76 /* Property n_kwwith= */,
-  77 /* Property n_kwbreak */,
-  78 /* Property n_kwbreak= */,
-  79 /* Property n_id */,
-  80 /* Property n_id= */,
-  81 /* Property n_signature */,
-  82 /* Property n_signature= */,
-  83 /* Property n_expr */,
-  84 /* Property n_expr= */,
-  3715 /* Id of AType */,
+  5 /* Group of ? */,
+  74 /* Group of ? */,
+  3723 /* Id of AType */,
   5 /* Color of AType */,
-  7 /* Property _n_id */,
-  8 /* Property _n_types */,
-  77 /* Color of AType */,
-  78 /* Property n_id */,
-  79 /* Property n_id= */,
-  80 /* Property n_types */,
-  81 /* Property n_types= */,
-  3943 /* Id of ABlockExpr */,
+  7 /* Group of ? */,
+  77 /* Group of ? */,
+  3951 /* Id of ABlockExpr */,
   5 /* Color of ABlockExpr */,
-  6 /* Property _n_expr */,
-  79 /* Color of ABlockExpr */,
-  80 /* Property n_expr */,
-  81 /* Property n_expr= */,
-  3699 /* Id of AVardeclExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3707 /* Id of AVardeclExpr */,
   5 /* Color of AVardeclExpr */,
-  7 /* Property _n_kwvar */,
-  8 /* Property _n_id */,
-  9 /* Property _n_type */,
-  10 /* Property _n_assign */,
-  11 /* Property _n_expr */,
-  82 /* Color of AVardeclExpr */,
-  83 /* Property n_kwvar */,
-  84 /* Property n_kwvar= */,
-  85 /* Property n_id */,
-  86 /* Property n_id= */,
-  87 /* Property n_type */,
-  88 /* Property n_type= */,
-  89 /* Property n_assign */,
-  90 /* Property n_assign= */,
-  91 /* Property n_expr */,
-  92 /* Property n_expr= */,
-  3755 /* Id of AReturnExpr */,
+  7 /* Group of ? */,
+  82 /* Group of ? */,
+  3763 /* Id of AReturnExpr */,
   5 /* Color of AReturnExpr */,
-  6 /* Property _n_kwreturn */,
-  7 /* Property _n_expr */,
-  80 /* Color of AReturnExpr */,
-  81 /* Property n_kwreturn */,
-  82 /* Property n_kwreturn= */,
-  83 /* Property n_expr */,
-  84 /* Property n_expr= */,
-  4143 /* Id of ABreakExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4151 /* Id of ABreakExpr */,
   6 /* Color of ABreakExpr */,
-  7 /* Property _n_kwbreak */,
-  8 /* Property _n_expr */,
-  82 /* Color of ABreakExpr */,
-  83 /* Property n_kwbreak */,
-  84 /* Property n_kwbreak= */,
-  85 /* Property n_expr */,
-  86 /* Property n_expr= */,
-  3987 /* Id of AAbortExpr */,
+  7 /* Group of ? */,
+  82 /* Group of ? */,
+  3995 /* Id of AAbortExpr */,
   5 /* Color of AAbortExpr */,
-  6 /* Property _n_kwabort */,
-  80 /* Color of AAbortExpr */,
-  81 /* Property n_kwabort */,
-  82 /* Property n_kwabort= */,
-  4131 /* Id of AContinueExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4139 /* Id of AContinueExpr */,
   6 /* Color of AContinueExpr */,
-  7 /* Property _n_kwcontinue */,
-  8 /* Property _n_expr */,
-  82 /* Color of AContinueExpr */,
-  83 /* Property n_kwcontinue */,
-  84 /* Property n_kwcontinue= */,
-  85 /* Property n_expr */,
-  86 /* Property n_expr= */,
-  3907 /* Id of ADoExpr */,
+  7 /* Group of ? */,
+  82 /* Group of ? */,
+  3915 /* Id of ADoExpr */,
   5 /* Color of ADoExpr */,
-  6 /* Property _n_kwdo */,
-  7 /* Property _n_block */,
-  79 /* Color of ADoExpr */,
-  80 /* Property n_kwdo */,
-  81 /* Property n_kwdo= */,
-  82 /* Property n_block */,
-  83 /* Property n_block= */,
-  3871 /* Id of AIfExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3879 /* Id of AIfExpr */,
   5 /* Color of AIfExpr */,
-  6 /* Property _n_kwif */,
-  7 /* Property _n_expr */,
-  8 /* Property _n_then */,
-  9 /* Property _n_else */,
-  79 /* Color of AIfExpr */,
-  80 /* Property n_kwif */,
-  81 /* Property n_kwif= */,
-  82 /* Property n_expr */,
-  83 /* Property n_expr= */,
-  84 /* Property n_then */,
-  85 /* Property n_then= */,
-  86 /* Property n_else */,
-  87 /* Property n_else= */,
-  3867 /* Id of AIfexprExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3875 /* Id of AIfexprExpr */,
   5 /* Color of AIfexprExpr */,
-  6 /* Property _n_kwif */,
-  7 /* Property _n_expr */,
-  8 /* Property _n_kwthen */,
-  9 /* Property _n_then */,
-  10 /* Property _n_kwelse */,
-  11 /* Property _n_else */,
-  79 /* Color of AIfexprExpr */,
-  80 /* Property n_kwif */,
-  81 /* Property n_kwif= */,
-  82 /* Property n_expr */,
-  83 /* Property n_expr= */,
-  84 /* Property n_kwthen */,
-  85 /* Property n_kwthen= */,
-  86 /* Property n_then */,
-  87 /* Property n_then= */,
-  88 /* Property n_kwelse */,
-  89 /* Property n_kwelse= */,
-  90 /* Property n_else */,
-  91 /* Property n_else= */,
-  4031 /* Id of AWhileExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  4039 /* Id of AWhileExpr */,
   7 /* Color of AWhileExpr */,
-  6 /* Property _n_kwwhile */,
-  7 /* Property _n_expr */,
-  8 /* Property _n_kwdo */,
-  9 /* Property _n_block */,
-  92 /* Color of AWhileExpr */,
-  93 /* Property n_kwwhile */,
-  94 /* Property n_kwwhile= */,
-  95 /* Property n_expr */,
-  96 /* Property n_expr= */,
-  97 /* Property n_kwdo */,
-  98 /* Property n_kwdo= */,
-  99 /* Property n_block */,
-  100 /* Property n_block= */,
-  4103 /* Id of AForExpr */,
+  6 /* Group of ? */,
+  92 /* Group of ? */,
+  4111 /* Id of AForExpr */,
   7 /* Color of AForExpr */,
-  6 /* Property _n_vardecl */,
-  7 /* Property _n_kwdo */,
-  8 /* Property _n_block */,
-  92 /* Color of AForExpr */,
-  93 /* Property n_vardecl */,
-  94 /* Property n_vardecl= */,
-  95 /* Property n_kwdo */,
-  96 /* Property n_kwdo= */,
-  97 /* Property n_block */,
-  98 /* Property n_block= */,
-  3891 /* Id of AForVardeclExpr */,
+  6 /* Group of ? */,
+  92 /* Group of ? */,
+  3899 /* Id of AForVardeclExpr */,
   5 /* Color of AForVardeclExpr */,
-  7 /* Property _n_kwfor */,
-  8 /* Property _n_id */,
-  9 /* Property _n_expr */,
-  81 /* Color of AForVardeclExpr */,
-  82 /* Property n_kwfor */,
-  83 /* Property n_kwfor= */,
-  84 /* Property n_id */,
-  85 /* Property n_id= */,
-  86 /* Property n_expr */,
-  87 /* Property n_expr= */,
-  3967 /* Id of AAssertExpr */,
+  11 /* Group of ? */,
+  85 /* Group of ? */,
+  3975 /* Id of AAssertExpr */,
   5 /* Color of AAssertExpr */,
-  6 /* Property _n_kwassert */,
-  7 /* Property _n_id */,
-  8 /* Property _n_expr */,
-  79 /* Color of AAssertExpr */,
-  80 /* Property n_kwassert */,
-  81 /* Property n_kwassert= */,
-  82 /* Property n_id */,
-  83 /* Property n_id= */,
-  84 /* Property n_expr */,
-  85 /* Property n_expr= */,
-  3963 /* Id of AAssignFormExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3971 /* Id of AAssignFormExpr */,
   6 /* Color of AAssignFormExpr */,
-  8 /* Property _n_assign */,
-  9 /* Property _n_value */,
-  82 /* Color of AAssignFormExpr */,
-  83 /* Property n_assign */,
-  84 /* Property n_assign= */,
-  85 /* Property n_value */,
-  86 /* Property n_value= */,
-  3759 /* Id of AReassignFormExpr */,
+  8 /* Group of ? */,
+  82 /* Group of ? */,
+  3767 /* Id of AReassignFormExpr */,
   6 /* Color of AReassignFormExpr */,
-  9 /* Property _n_assign_op */,
-  10 /* Property _n_value */,
-  84 /* Color of AReassignFormExpr */,
-  85 /* Property n_assign_op */,
-  86 /* Property n_assign_op= */,
-  87 /* Property n_value */,
-  88 /* Property n_value= */,
-  4075 /* Id of AOnceExpr */,
+  9 /* Group of ? */,
+  84 /* Group of ? */,
+  4083 /* Id of AOnceExpr */,
   6 /* Color of AOnceExpr */,
-  7 /* Property _n_kwonce */,
-  83 /* Color of AOnceExpr */,
-  84 /* Property n_kwonce */,
-  85 /* Property n_kwonce= */,
-  4175 /* Id of ASendExpr */,
+  7 /* Group of ? */,
+  83 /* Group of ? */,
+  4183 /* Id of ASendExpr */,
   8 /* Color of ASendExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_closure_defs */,
-  105 /* Color of ASendExpr */,
-  106 /* Property n_expr */,
-  107 /* Property n_expr= */,
-  108 /* Property n_closure_defs */,
-  109 /* Property n_closure_defs= */,
-  4207 /* Id of ABinopExpr */,
+  6 /* Group of ? */,
+  105 /* Group of ? */,
+  4215 /* Id of ABinopExpr */,
   9 /* Color of ABinopExpr */,
-  15 /* Property _n_expr2 */,
-  112 /* Color of ABinopExpr */,
-  113 /* Property n_expr2 */,
-  114 /* Property n_expr2= */,
-  3939 /* Id of ABoolExpr */,
+  15 /* Group of ? */,
+  112 /* Group of ? */,
+  3947 /* Id of ABoolExpr */,
   5 /* Color of ABoolExpr */,
-  77 /* Color of ABoolExpr */,
-  4071 /* Id of AOrExpr */,
+  77 /* Group of ? */,
+  4079 /* Id of AOrExpr */,
   6 /* Color of AOrExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  80 /* Color of AOrExpr */,
-  81 /* Property n_expr */,
-  82 /* Property n_expr= */,
-  83 /* Property n_expr2 */,
-  84 /* Property n_expr2= */,
-  4159 /* Id of AAndExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4167 /* Id of AAndExpr */,
   6 /* Color of AAndExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  80 /* Color of AAndExpr */,
-  81 /* Property n_expr */,
-  82 /* Property n_expr= */,
-  83 /* Property n_expr2 */,
-  84 /* Property n_expr2= */,
-  4079 /* Id of ANotExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4087 /* Id of ANotExpr */,
   6 /* Color of ANotExpr */,
-  6 /* Property _n_kwnot */,
-  7 /* Property _n_expr */,
-  80 /* Color of ANotExpr */,
-  81 /* Property n_kwnot */,
-  82 /* Property n_kwnot= */,
-  83 /* Property n_expr */,
-  84 /* Property n_expr= */,
-  4255 /* Id of AEqExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4263 /* Id of AEqExpr */,
   10 /* Color of AEqExpr */,
-  117 /* Color of AEqExpr */,
-  4119 /* Id of AEeExpr */,
+  117 /* Group of ? */,
+  4127 /* Id of AEeExpr */,
   6 /* Color of AEeExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  80 /* Color of AEeExpr */,
-  81 /* Property n_expr */,
-  82 /* Property n_expr= */,
-  83 /* Property n_expr2 */,
-  84 /* Property n_expr2= */,
-  4231 /* Id of ANeExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4239 /* Id of ANeExpr */,
   10 /* Color of ANeExpr */,
-  117 /* Color of ANeExpr */,
-  4239 /* Id of ALtExpr */,
+  117 /* Group of ? */,
+  4247 /* Id of ALtExpr */,
   10 /* Color of ALtExpr */,
-  117 /* Color of ALtExpr */,
-  4243 /* Id of ALeExpr */,
+  117 /* Group of ? */,
+  4251 /* Id of ALeExpr */,
   10 /* Color of ALeExpr */,
-  117 /* Color of ALeExpr */,
-  4247 /* Id of AGtExpr */,
+  117 /* Group of ? */,
+  4255 /* Id of AGtExpr */,
   10 /* Color of AGtExpr */,
-  117 /* Color of AGtExpr */,
-  4251 /* Id of AGeExpr */,
+  117 /* Group of ? */,
+  4259 /* Id of AGeExpr */,
   10 /* Color of AGeExpr */,
-  117 /* Color of AGeExpr */,
-  4091 /* Id of AIsaExpr */,
+  117 /* Group of ? */,
+  4099 /* Id of AIsaExpr */,
   6 /* Color of AIsaExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_type */,
-  80 /* Color of AIsaExpr */,
-  81 /* Property n_expr */,
-  82 /* Property n_expr= */,
-  83 /* Property n_type */,
-  84 /* Property n_type= */,
-  4223 /* Id of APlusExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4231 /* Id of APlusExpr */,
   10 /* Color of APlusExpr */,
-  117 /* Color of APlusExpr */,
-  4235 /* Id of AMinusExpr */,
+  117 /* Group of ? */,
+  4243 /* Id of AMinusExpr */,
   10 /* Color of AMinusExpr */,
-  117 /* Color of AMinusExpr */,
-  4211 /* Id of AStarshipExpr */,
+  117 /* Group of ? */,
+  4219 /* Id of AStarshipExpr */,
   10 /* Color of AStarshipExpr */,
-  117 /* Color of AStarshipExpr */,
-  4215 /* Id of AStarExpr */,
+  117 /* Group of ? */,
+  4223 /* Id of AStarExpr */,
   10 /* Color of AStarExpr */,
-  117 /* Color of AStarExpr */,
-  4219 /* Id of ASlashExpr */,
+  117 /* Group of ? */,
+  4227 /* Id of ASlashExpr */,
   10 /* Color of ASlashExpr */,
-  117 /* Color of ASlashExpr */,
-  4227 /* Id of APercentExpr */,
+  117 /* Group of ? */,
+  4235 /* Id of APercentExpr */,
   10 /* Color of APercentExpr */,
-  117 /* Color of APercentExpr */,
-  4187 /* Id of AUminusExpr */,
+  117 /* Group of ? */,
+  4195 /* Id of AUminusExpr */,
   9 /* Color of AUminusExpr */,
-  15 /* Property _n_minus */,
-  112 /* Color of AUminusExpr */,
-  113 /* Property n_minus */,
-  114 /* Property n_minus= */,
-  4083 /* Id of ANewExpr */,
+  15 /* Group of ? */,
+  112 /* Group of ? */,
+  4091 /* Id of ANewExpr */,
   6 /* Color of ANewExpr */,
-  15 /* Property _n_kwnew */,
-  16 /* Property _n_type */,
-  17 /* Property _n_id */,
-  18 /* Property _n_args */,
-  101 /* Color of ANewExpr */,
-  102 /* Property n_kwnew */,
-  103 /* Property n_kwnew= */,
-  104 /* Property n_type */,
-  105 /* Property n_type= */,
-  106 /* Property n_id */,
-  107 /* Property n_id= */,
-  108 /* Property n_args */,
-  109 /* Property n_args= */,
-  3955 /* Id of AAttrFormExpr */,
+  15 /* Group of ? */,
+  101 /* Group of ? */,
+  3963 /* Id of AAttrFormExpr */,
   5 /* Color of AAttrFormExpr */,
-  13 /* Property _n_expr */,
-  14 /* Property _n_id */,
-  92 /* Color of AAttrFormExpr */,
-  93 /* Property n_expr */,
-  94 /* Property n_expr= */,
-  95 /* Property n_id */,
-  96 /* Property n_id= */,
-  4151 /* Id of AAttrExpr */,
+  13 /* Group of ? */,
+  92 /* Group of ? */,
+  4159 /* Id of AAttrExpr */,
   6 /* Color of AAttrExpr */,
-  99 /* Color of AAttrExpr */,
-  4155 /* Id of AAttrAssignExpr */,
+  99 /* Group of ? */,
+  4163 /* Id of AAttrAssignExpr */,
   7 /* Color of AAttrAssignExpr */,
-  79 /* Color of AAttrAssignExpr */,
-  4199 /* Id of ACallFormExpr */,
+  79 /* Group of ? */,
+  4207 /* Id of ACallFormExpr */,
   10 /* Color of ACallFormExpr */,
-  16 /* Property _n_id */,
-  17 /* Property _n_args */,
-  112 /* Color of ACallFormExpr */,
-  113 /* Property n_id */,
-  114 /* Property n_id= */,
-  115 /* Property n_args */,
-  116 /* Property n_args= */,
-  4147 /* Id of AAttrReassignExpr */,
+  16 /* Group of ? */,
+  112 /* Group of ? */,
+  4155 /* Id of AAttrReassignExpr */,
   7 /* Color of AAttrReassignExpr */,
-  79 /* Color of AAttrReassignExpr */,
-  4267 /* Id of ACallExpr */,
+  79 /* Group of ? */,
+  4275 /* Id of ACallExpr */,
   11 /* Color of ACallExpr */,
-  119 /* Color of ACallExpr */,
-  4271 /* Id of ACallAssignExpr */,
+  119 /* Group of ? */,
+  4279 /* Id of ACallAssignExpr */,
   9 /* Color of ACallAssignExpr */,
-  81 /* Color of ACallAssignExpr */,
-  4263 /* Id of ACallReassignExpr */,
+  81 /* Group of ? */,
+  4271 /* Id of ACallReassignExpr */,
   11 /* Color of ACallReassignExpr */,
-  119 /* Color of ACallReassignExpr */,
-  4171 /* Id of ASuperExpr */,
+  119 /* Group of ? */,
+  4179 /* Id of ASuperExpr */,
   8 /* Color of ASuperExpr */,
-  16 /* Property _n_qualified */,
-  17 /* Property _n_kwsuper */,
-  18 /* Property _n_args */,
-  102 /* Color of ASuperExpr */,
-  103 /* Property n_qualified */,
-  104 /* Property n_qualified= */,
-  105 /* Property n_kwsuper */,
-  106 /* Property n_kwsuper= */,
-  107 /* Property n_args */,
-  108 /* Property n_args= */,
-  4195 /* Id of AInitExpr */,
+  16 /* Group of ? */,
+  102 /* Group of ? */,
+  4203 /* Id of AInitExpr */,
   9 /* Color of AInitExpr */,
-  15 /* Property _n_kwinit */,
-  16 /* Property _n_args */,
-  112 /* Color of AInitExpr */,
-  113 /* Property n_kwinit */,
-  114 /* Property n_kwinit= */,
-  115 /* Property n_args */,
-  116 /* Property n_args= */,
-  4203 /* Id of ABraFormExpr */,
+  15 /* Group of ? */,
+  112 /* Group of ? */,
+  4211 /* Id of ABraFormExpr */,
   10 /* Color of ABraFormExpr */,
-  16 /* Property _n_args */,
-  110 /* Color of ABraFormExpr */,
-  111 /* Property n_args */,
-  112 /* Property n_args= */,
-  4279 /* Id of ABraExpr */,
+  16 /* Group of ? */,
+  110 /* Group of ? */,
+  4287 /* Id of ABraExpr */,
   11 /* Color of ABraExpr */,
-  115 /* Color of ABraExpr */,
-  4283 /* Id of ABraAssignExpr */,
+  115 /* Group of ? */,
+  4291 /* Id of ABraAssignExpr */,
   9 /* Color of ABraAssignExpr */,
-  81 /* Color of ABraAssignExpr */,
-  3703 /* Id of AVarFormExpr */,
+  81 /* Group of ? */,
+  3711 /* Id of AVarFormExpr */,
   5 /* Color of AVarFormExpr */,
-  7 /* Property _n_id */,
-  79 /* Color of AVarFormExpr */,
-  80 /* Property n_id */,
-  81 /* Property n_id= */,
-  4275 /* Id of ABraReassignExpr */,
+  7 /* Group of ? */,
+  79 /* Group of ? */,
+  4283 /* Id of ABraReassignExpr */,
   11 /* Color of ABraReassignExpr */,
-  115 /* Color of ABraReassignExpr */,
-  4039 /* Id of AVarExpr */,
+  115 /* Group of ? */,
+  4047 /* Id of AVarExpr */,
   6 /* Color of AVarExpr */,
-  85 /* Color of AVarExpr */,
-  4043 /* Id of AVarAssignExpr */,
+  85 /* Group of ? */,
+  4051 /* Id of AVarAssignExpr */,
   7 /* Color of AVarAssignExpr */,
-  90 /* Color of AVarAssignExpr */,
-  4035 /* Id of AVarReassignExpr */,
+  90 /* Group of ? */,
+  4043 /* Id of AVarReassignExpr */,
   7 /* Color of AVarReassignExpr */,
-  92 /* Color of AVarReassignExpr */,
-  4259 /* Id of AClosureCallExpr */,
+  92 /* Group of ? */,
+  4267 /* Id of AClosureCallExpr */,
   11 /* Color of AClosureCallExpr */,
-  120 /* Color of AClosureCallExpr */,
-  121 /* Property init */,
-  3767 /* Id of ARangeExpr */,
+  120 /* Group of ? */,
+  3775 /* Id of ARangeExpr */,
   5 /* Color of ARangeExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_expr2 */,
-  80 /* Color of ARangeExpr */,
-  81 /* Property n_expr */,
-  82 /* Property n_expr= */,
-  83 /* Property n_expr2 */,
-  84 /* Property n_expr2= */,
-  4127 /* Id of ACrangeExpr */,
+  7 /* Group of ? */,
+  80 /* Group of ? */,
+  4135 /* Id of ACrangeExpr */,
   6 /* Color of ACrangeExpr */,
-  87 /* Color of ACrangeExpr */,
-  4067 /* Id of AOrangeExpr */,
+  88 /* Group of ? */,
+  4075 /* Id of AOrangeExpr */,
   6 /* Color of AOrangeExpr */,
-  87 /* Color of AOrangeExpr */,
-  3975 /* Id of AArrayExpr */,
+  88 /* Group of ? */,
+  3983 /* Id of AArrayExpr */,
   5 /* Color of AArrayExpr */,
-  6 /* Property _n_exprs */,
-  80 /* Color of AArrayExpr */,
-  81 /* Property n_exprs */,
-  82 /* Property n_exprs= */,
-  3751 /* Id of ASelfExpr */,
+  8 /* Group of ? */,
+  82 /* Group of ? */,
+  3759 /* Id of ASelfExpr */,
   5 /* Color of ASelfExpr */,
-  7 /* Property _n_kwself */,
-  81 /* Color of ASelfExpr */,
-  82 /* Property n_kwself */,
-  83 /* Property n_kwself= */,
-  4099 /* Id of AImplicitSelfExpr */,
+  7 /* Group of ? */,
+  81 /* Group of ? */,
+  4107 /* Id of AImplicitSelfExpr */,
   6 /* Color of AImplicitSelfExpr */,
-  86 /* Color of AImplicitSelfExpr */,
-  4047 /* Id of ATrueExpr */,
+  86 /* Group of ? */,
+  4055 /* Id of ATrueExpr */,
   6 /* Color of ATrueExpr */,
-  6 /* Property _n_kwtrue */,
-  80 /* Color of ATrueExpr */,
-  81 /* Property n_kwtrue */,
-  82 /* Property n_kwtrue= */,
-  4107 /* Id of AFalseExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  4115 /* Id of AFalseExpr */,
   6 /* Color of AFalseExpr */,
-  6 /* Property _n_kwfalse */,
-  80 /* Color of AFalseExpr */,
-  81 /* Property n_kwfalse */,
-  82 /* Property n_kwfalse= */,
-  3811 /* Id of ANullExpr */,
+  6 /* Group of ? */,
+  80 /* Group of ? */,
+  3819 /* Id of ANullExpr */,
   5 /* Color of ANullExpr */,
-  6 /* Property _n_kwnull */,
-  79 /* Color of ANullExpr */,
-  80 /* Property n_kwnull */,
-  81 /* Property n_kwnull= */,
-  3859 /* Id of AIntExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3867 /* Id of AIntExpr */,
   5 /* Color of AIntExpr */,
-  6 /* Property _n_number */,
-  79 /* Color of AIntExpr */,
-  80 /* Property n_number */,
-  81 /* Property n_number= */,
-  3895 /* Id of AFloatExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3903 /* Id of AFloatExpr */,
   5 /* Color of AFloatExpr */,
-  6 /* Property _n_float */,
-  79 /* Color of AFloatExpr */,
-  80 /* Property n_float */,
-  81 /* Property n_float= */,
-  3927 /* Id of ACharExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3935 /* Id of ACharExpr */,
   5 /* Color of ACharExpr */,
-  6 /* Property _n_char */,
-  79 /* Color of ACharExpr */,
-  80 /* Property n_char */,
-  81 /* Property n_char= */,
-  3731 /* Id of AStringFormExpr */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3739 /* Id of AStringFormExpr */,
   5 /* Color of AStringFormExpr */,
-  79 /* Color of AStringFormExpr */,
-  4055 /* Id of AStringExpr */,
+  80 /* Group of ? */,
+  4063 /* Id of AStringExpr */,
   6 /* Color of AStringExpr */,
-  8 /* Property _n_string */,
-  82 /* Color of AStringExpr */,
-  83 /* Property n_string */,
-  84 /* Property n_string= */,
-  4059 /* Id of AStartStringExpr */,
+  9 /* Group of ? */,
+  83 /* Group of ? */,
+  4067 /* Id of AStartStringExpr */,
   6 /* Color of AStartStringExpr */,
-  8 /* Property _n_string */,
-  82 /* Color of AStartStringExpr */,
-  83 /* Property n_string */,
-  84 /* Property n_string= */,
-  4087 /* Id of AMidStringExpr */,
+  9 /* Group of ? */,
+  83 /* Group of ? */,
+  4095 /* Id of AMidStringExpr */,
   6 /* Color of AMidStringExpr */,
-  8 /* Property _n_string */,
-  82 /* Color of AMidStringExpr */,
-  83 /* Property n_string */,
-  84 /* Property n_string= */,
-  4115 /* Id of AEndStringExpr */,
+  9 /* Group of ? */,
+  83 /* Group of ? */,
+  4123 /* Id of AEndStringExpr */,
   6 /* Color of AEndStringExpr */,
-  8 /* Property _n_string */,
-  82 /* Color of AEndStringExpr */,
-  83 /* Property n_string */,
-  84 /* Property n_string= */,
-  3723 /* Id of ASuperstringExpr */,
+  9 /* Group of ? */,
+  83 /* Group of ? */,
+  3731 /* Id of ASuperstringExpr */,
   5 /* Color of ASuperstringExpr */,
-  6 /* Property _n_exprs */,
-  79 /* Color of ASuperstringExpr */,
-  80 /* Property n_exprs */,
-  81 /* Property n_exprs= */,
-  4063 /* Id of AParExpr */,
+  10 /* Group of ? */,
+  83 /* Group of ? */,
+  4071 /* Id of AParExpr */,
   6 /* Color of AParExpr */,
-  82 /* Color of AParExpr */,
-  3779 /* Id of AProxyExpr */,
+  82 /* Group of ? */,
+  3787 /* Id of AProxyExpr */,
   5 /* Color of AProxyExpr */,
-  6 /* Property _n_expr */,
-  77 /* Color of AProxyExpr */,
-  78 /* Property n_expr */,
-  79 /* Property n_expr= */,
-  3971 /* Id of AAsCastExpr */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  3979 /* Id of AAsCastExpr */,
   5 /* Color of AAsCastExpr */,
-  6 /* Property _n_expr */,
-  7 /* Property _n_kwas */,
-  8 /* Property _n_type */,
-  79 /* Color of AAsCastExpr */,
-  80 /* Property n_expr */,
-  81 /* Property n_expr= */,
-  82 /* Property n_kwas */,
-  83 /* Property n_kwas= */,
-  84 /* Property n_type */,
-  85 /* Property n_type= */,
-  3795 /* Id of APlusAssignOp */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
+  3803 /* Id of APlusAssignOp */,
   5 /* Color of APlusAssignOp */,
-  4 /* Property _n_pluseq */,
-  72 /* Color of APlusAssignOp */,
-  73 /* Property n_pluseq */,
-  74 /* Property n_pluseq= */,
-  3831 /* Id of AMinusAssignOp */,
+  4 /* Group of ? */,
+  72 /* Group of ? */,
+  3839 /* Id of AMinusAssignOp */,
   5 /* Color of AMinusAssignOp */,
-  4 /* Property _n_minuseq */,
-  72 /* Color of AMinusAssignOp */,
-  73 /* Property n_minuseq */,
-  74 /* Property n_minuseq= */,
-  4139 /* Id of AClosureDef */,
+  4 /* Group of ? */,
+  72 /* Group of ? */,
+  4147 /* Id of AClosureDef */,
   7 /* Color of AClosureDef */,
-  10 /* Property _n_kwwith */,
-  11 /* Property _n_id */,
-  12 /* Property _n_kwdo */,
-  13 /* Property _n_expr */,
-  95 /* Color of AClosureDef */,
-  96 /* Property n_kwwith */,
-  97 /* Property n_kwwith= */,
-  98 /* Property n_id */,
-  99 /* Property n_id= */,
-  100 /* Property n_kwdo */,
-  101 /* Property n_kwdo= */,
-  102 /* Property n_expr */,
-  103 /* Property n_expr= */,
-  3771 /* Id of AQualified */,
+  10 /* Group of ? */,
+  95 /* Group of ? */,
+  3779 /* Id of AQualified */,
   5 /* Color of AQualified */,
-  4 /* Property _n_id */,
-  5 /* Property _n_classid */,
-  71 /* Color of AQualified */,
-  72 /* Property n_id */,
-  73 /* Property n_id= */,
-  74 /* Property n_classid */,
-  75 /* Property n_classid= */,
-  3903 /* Id of ADoc */,
+  4 /* Group of ? */,
+  71 /* Group of ? */,
+  3911 /* Id of ADoc */,
   5 /* Color of ADoc */,
-  4 /* Property _n_comment */,
-  71 /* Color of ADoc */,
-  72 /* Property n_comment */,
-  73 /* Property n_comment= */,
-  3391 /* Id of Start */,
+  4 /* Group of ? */,
+  71 /* Group of ? */,
+  3399 /* Id of Start */,
   4 /* Color of Start */,
-  4 /* Property _n_base */,
-  5 /* Property _n_eof */,
-  69 /* Color of Start */,
-  70 /* Property n_base */,
-  71 /* Property n_base= */,
-  72 /* Property n_eof */,
-  73 /* Property n_eof= */,
+  4 /* Group of ? */,
+  69 /* Group of ? */,
 };
 const char *LOCATE_standard = "./../lib/standard//standard.nit";
 const char *LOCATE_environ = "./../lib/standard//environ.nit";
 const int SFT_environ[2] = {
-  40 /* Property environ */,
-  40 /* Property get_environ */,
+  40 /* Group of ? */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_symbol = "./../lib/standard//symbol.nit";
-const int SFT_symbol[6] = {
-  101 /* Property to_symbol */,
-  27 /* Id of Symbol */,
+const int SFT_symbol[5] = {
+  101 /* Group of ? */,
+  23 /* Id of Symbol */,
   2 /* Color of Symbol */,
-  1 /* Property _string */,
-  41 /* Color of Symbol */,
-  42 /* Property init */,
+  1 /* Group of ? */,
+  41 /* Group of ? */,
 };
 const char *LOCATE_hash = "./../lib/standard//hash.nit";
-const int SFT_hash[59] = {
-  15 /* Property hash */,
-  2975 /* Id of HashCollection */,
+const int SFT_hash[30] = {
+  15 /* Group of ? */,
+  2967 /* Id of HashCollection */,
   3 /* Color of HashCollection */,
-  1 /* Property _array */,
-  2 /* Property _capacity */,
-  3 /* Property _length */,
-  4 /* Property _first_item */,
-  5 /* Property _last_item */,
-  6 /* Property _last_accessed_index */,
-  7 /* Property _last_accessed_key */,
-  42 /* Color of HashCollection */,
-  43 /* Property first_item */,
-  44 /* Property index_at */,
-  45 /* Property store */,
-  46 /* Property remove_index */,
-  47 /* Property raz */,
-  48 /* Property enlarge */,
-  49 /* Property init */,
-  151 /* Id of HashNode */,
+  1 /* Group of ? */,
+  42 /* Group of ? */,
+  147 /* Id of HashNode */,
   2 /* Color of HashNode */,
-  1 /* Property _next_item */,
-  2 /* Property _prev_item */,
-  40 /* Color of HashNode */,
-  41 /* Property key */,
-  42 /* Property next_item */,
-  43 /* Property next_item= */,
-  44 /* Property prev_item */,
-  45 /* Property prev_item= */,
-  46 /* Property init */,
-  4015 /* Id of HashMap */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  4023 /* Id of HashMap */,
   7 /* Color of HashMap */,
-  52 /* Color of HashMap */,
-  53 /* Property init */,
-  2971 /* Id of HashMapNode */,
+  52 /* Group of ? */,
+  2963 /* Id of HashMapNode */,
   4 /* Color of HashMapNode */,
-  53 /* Color of HashMapNode */,
-  54 /* Property init */,
-  3563 /* Id of HashMapIterator */,
+  53 /* Group of ? */,
+  3575 /* Id of HashMapIterator */,
   4 /* Color of HashMapIterator */,
-  1 /* Property _map */,
-  2 /* Property _node */,
-  48 /* Color of HashMapIterator */,
-  49 /* Property init */,
-  4011 /* Id of HashSet */,
+  1 /* Group of ? */,
+  48 /* Group of ? */,
+  4019 /* Id of HashSet */,
   8 /* Color of HashSet */,
-  51 /* Color of HashSet */,
-  52 /* Property init */,
-  2963 /* Id of HashSetNode */,
+  51 /* Group of ? */,
+  2955 /* Id of HashSetNode */,
   3 /* Color of HashSetNode */,
-  3 /* Property _key */,
-  47 /* Color of HashSetNode */,
-  48 /* Property key= */,
-  49 /* Property init */,
-  2967 /* Id of HashSetIterator */,
+  3 /* Group of ? */,
+  47 /* Group of ? */,
+  2959 /* Id of HashSetIterator */,
   3 /* Color of HashSetIterator */,
-  1 /* Property _set */,
-  2 /* Property _node */,
-  45 /* Color of HashSetIterator */,
-  46 /* Property init */,
+  1 /* Group of ? */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_string = "./../lib/standard//string.nit";
-const int SFT_string[56] = {
-  4163 /* Id of String */,
+const int SFT_string[17] = {
+  4171 /* Id of String */,
   11 /* Color of String */,
-  2 /* Property _items */,
-  3 /* Property _capacity */,
-  102 /* Color of String */,
-  103 /* Property append */,
-  104 /* Property + */,
-  105 /* Property * */,
-  106 /* Property to_i */,
-  107 /* Property to_hex */,
-  108 /* Property a_to */,
-  109 /* Property to_cstring */,
-  110 /* Property substring */,
-  111 /* Property substring_from */,
-  112 /* Property has_substring */,
-  113 /* Property has_prefix */,
-  114 /* Property has_suffix */,
-  115 /* Property init */,
-  116 /* Property from */,
-  117 /* Property with_capacity */,
-  118 /* Property with_native */,
-  119 /* Property from_cstring */,
-  120 /* Property filled_with */,
-  121 /* Property to_upper */,
-  122 /* Property to_lower */,
-  123 /* Property items */,
-  124 /* Property capacity */,
-  16 /* Property to_s */,
-  17 /* Property inspect */,
-  18 /* Property inspect_head */,
-  19 /* Property args */,
-  64 /* Property fill_string */,
-  65 /* Property to_hex */,
-  66 /* Property to_base */,
-  40 /* Property to_precision */,
-  58 /* Property join */,
-  75 /* Property map_join */,
+  2 /* Group of ? */,
+  102 /* Group of ? */,
+  16 /* Group of ? */,
+  64 /* Group of ? */,
+  40 /* Group of ? */,
+  58 /* Group of ? */,
+  75 /* Group of ? */,
   -5 /* Id of NativeString */,
   2 /* Color of NativeString */,
-  41 /* Color of NativeString */,
-  42 /* Property [] */,
-  43 /* Property []= */,
-  44 /* Property copy_to */,
-  45 /* Property cstring_length */,
-  46 /* Property atoi */,
-  47 /* Property init */,
-  31 /* Id of StringCapable */,
+  41 /* Group of ? */,
+  27 /* Id of StringCapable */,
   2 /* Color of StringCapable */,
-  40 /* Color of StringCapable */,
-  41 /* Property calloc_string */,
-  42 /* Property init */,
-  1 /* Property _args_cache */,
-  41 /* Property program_name */,
-  42 /* Property init_args */,
-  43 /* Property native_argc */,
-  44 /* Property native_argv */,
+  40 /* Group of ? */,
+  1 /* Group of ? */,
+  41 /* Group of ? */,
 };
 const char *LOCATE_array = "./../lib/standard//array.nit";
-const int SFT_array[62] = {
-  4027 /* Id of AbstractArray */,
+const int SFT_array[32] = {
+  4035 /* Id of AbstractArray */,
   10 /* Color of AbstractArray */,
-  1 /* Property _length */,
-  92 /* Color of AbstractArray */,
-  93 /* Property enlarge */,
-  94 /* Property insert */,
-  95 /* Property last_index_of */,
-  96 /* Property index_of_from */,
-  97 /* Property last_index_of_from */,
-  98 /* Property reversed */,
-  99 /* Property copy_to */,
-  100 /* Property init */,
-  4167 /* Id of Array */,
+  1 /* Group of ? */,
+  92 /* Group of ? */,
+  4175 /* Id of Array */,
   3 /* Color of Array */,
-  2 /* Property _items */,
-  3 /* Property _capacity */,
-  42 /* Color of Array */,
-  43 /* Property init */,
-  44 /* Property with_items */,
-  45 /* Property with_capacity */,
-  46 /* Property filled_with */,
-  47 /* Property with_native */,
-  3691 /* Id of ArrayIterator */,
+  2 /* Group of ? */,
+  42 /* Group of ? */,
+  3699 /* Id of ArrayIterator */,
   5 /* Color of ArrayIterator */,
-  1 /* Property _index */,
-  2 /* Property _array */,
-  50 /* Color of ArrayIterator */,
-  51 /* Property init */,
-  4019 /* Id of ArraySet */,
+  1 /* Group of ? */,
+  50 /* Group of ? */,
+  4027 /* Id of ArraySet */,
   8 /* Color of ArraySet */,
-  1 /* Property _array */,
-  75 /* Color of ArraySet */,
-  76 /* Property enlarge */,
-  77 /* Property remove_at */,
-  78 /* Property init */,
-  79 /* Property with_capacity */,
-  3031 /* Id of ArraySetIterator */,
+  1 /* Group of ? */,
+  75 /* Group of ? */,
+  3023 /* Id of ArraySetIterator */,
   3 /* Color of ArraySetIterator */,
-  1 /* Property _iter */,
-  45 /* Color of ArraySetIterator */,
-  46 /* Property init */,
-  4023 /* Id of ArrayMap */,
+  1 /* Group of ? */,
+  45 /* Group of ? */,
+  4031 /* Id of ArrayMap */,
   9 /* Color of ArrayMap */,
-  1 /* Property _items */,
-  2 /* Property _last_index */,
-  82 /* Color of ArrayMap */,
-  83 /* Property enlarge */,
-  84 /* Property remove_at_index */,
-  85 /* Property index */,
-  86 /* Property init */,
-  40 /* Property to_a */,
-  59 /* Property to_a */,
-  187 /* Id of ArrayCapable */,
+  1 /* Group of ? */,
+  82 /* Group of ? */,
+  40 /* Group of ? */,
+  59 /* Group of ? */,
+  183 /* Id of ArrayCapable */,
   2 /* Color of ArrayCapable */,
-  40 /* Color of ArrayCapable */,
-  41 /* Property calloc_array */,
+  40 /* Group of ? */,
   -9 /* Id of NativeArray */,
   2 /* Color of NativeArray */,
-  40 /* Color of NativeArray */,
-  41 /* Property [] */,
-  42 /* Property []= */,
-  43 /* Property copy_to */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_abstract_collection = "./../lib/standard//abstract_collection.nit";
-const int SFT_abstract_collection[94] = {
-  175 /* Id of Collection */,
+const int SFT_abstract_collection[49] = {
+  171 /* Id of Collection */,
   5 /* Color of Collection */,
-  60 /* Color of Collection */,
-  61 /* Property iterator */,
-  62 /* Property is_empty */,
-  63 /* Property length */,
-  64 /* Property has */,
-  65 /* Property has_only */,
-  66 /* Property count */,
-  67 /* Property first */,
-  2887 /* Id of NaiveCollection */,
+  60 /* Group of ? */,
+  2879 /* Id of NaiveCollection */,
   6 /* Color of NaiveCollection */,
-  68 /* Color of NaiveCollection */,
-  143 /* Id of Iterator */,
+  68 /* Group of ? */,
+  139 /* Id of Iterator */,
   2 /* Color of Iterator */,
-  41 /* Color of Iterator */,
-  42 /* Property item */,
-  43 /* Property next */,
-  44 /* Property is_ok */,
-  2999 /* Id of Container */,
+  41 /* Group of ? */,
+  2991 /* Id of Container */,
   6 /* Color of Container */,
-  1 /* Property _item */,
-  68 /* Color of Container */,
-  69 /* Property init */,
-  70 /* Property item */,
-  71 /* Property item= */,
-  2995 /* Id of ContainerIterator */,
+  1 /* Group of ? */,
+  68 /* Group of ? */,
+  2987 /* Id of ContainerIterator */,
   3 /* Color of ContainerIterator */,
-  1 /* Property _is_ok */,
-  2 /* Property _container */,
-  45 /* Color of ContainerIterator */,
-  46 /* Property init */,
-  231 /* Id of RemovableCollection */,
+  1 /* Group of ? */,
+  45 /* Group of ? */,
+  223 /* Id of RemovableCollection */,
   6 /* Color of RemovableCollection */,
-  68 /* Color of RemovableCollection */,
-  69 /* Property clear */,
-  70 /* Property remove */,
-  71 /* Property remove_all */,
-  3395 /* Id of SimpleCollection */,
+  68 /* Group of ? */,
+  3403 /* Id of SimpleCollection */,
   7 /* Color of SimpleCollection */,
-  72 /* Color of SimpleCollection */,
-  73 /* Property add */,
-  74 /* Property add_all */,
-  3643 /* Id of Set */,
+  72 /* Group of ? */,
+  3651 /* Id of Set */,
   4 /* Color of Set */,
-  50 /* Color of Set */,
-  3511 /* Id of Map */,
+  50 /* Group of ? */,
+  3523 /* Id of Map */,
   8 /* Color of Map */,
-  76 /* Color of Map */,
-  77 /* Property [] */,
-  78 /* Property []= */,
-  79 /* Property has_key */,
-  80 /* Property remove_at */,
-  81 /* Property recover_with */,
-  2895 /* Id of MapIterator */,
+  76 /* Group of ? */,
+  2891 /* Id of MapIterator */,
   3 /* Color of MapIterator */,
-  45 /* Color of MapIterator */,
-  46 /* Property key */,
-  47 /* Property item= */,
-  3671 /* Id of IndexedCollection */,
+  45 /* Group of ? */,
+  3679 /* Id of IndexedCollection */,
   9 /* Color of IndexedCollection */,
-  82 /* Color of IndexedCollection */,
-  83 /* Property first= */,
-  84 /* Property last */,
-  85 /* Property last= */,
-  86 /* Property push */,
-  87 /* Property append */,
-  88 /* Property pop */,
-  89 /* Property unshift */,
-  90 /* Property shift */,
-  91 /* Property index_of */,
-  3551 /* Id of IndexedIterator */,
+  82 /* Group of ? */,
+  3563 /* Id of IndexedIterator */,
   4 /* Color of IndexedIterator */,
-  48 /* Color of IndexedIterator */,
-  49 /* Property index */,
-  3687 /* Id of CoupleMap */,
+  48 /* Group of ? */,
+  3695 /* Id of CoupleMap */,
   4 /* Color of CoupleMap */,
-  50 /* Color of CoupleMap */,
-  51 /* Property couple_at */,
-  3579 /* Id of CoupleMapIterator */,
+  50 /* Group of ? */,
+  3591 /* Id of CoupleMapIterator */,
   4 /* Color of CoupleMapIterator */,
-  1 /* Property _iter */,
-  48 /* Color of CoupleMapIterator */,
-  49 /* Property init */,
-  155 /* Id of Couple */,
+  1 /* Group of ? */,
+  48 /* Group of ? */,
+  151 /* Id of Couple */,
   3 /* Color of Couple */,
-  3 /* Property _first */,
-  4 /* Property _second */,
-  47 /* Color of Couple */,
-  48 /* Property first */,
-  49 /* Property first= */,
-  50 /* Property second */,
-  51 /* Property second= */,
-  52 /* Property init */,
+  3 /* Group of ? */,
+  47 /* Group of ? */,
 };
 const char *LOCATE_kernel = "./../lib/standard//kernel.nit";
-const int SFT_kernel[73] = {
+const int SFT_kernel[27] = {
   3 /* Id of Object */,
   1 /* Color of Object */,
-  20 /* Color of Object */,
-  21 /* Property object_id */,
-  22 /* Property is_same_type */,
-  23 /* Property == */,
-  24 /* Property != */,
-  25 /* Property output */,
-  26 /* Property exit */,
-  27 /* Property sys */,
-  23 /* Id of Sys */,
+  20 /* Group of ? */,
+  19 /* Id of Sys */,
   2 /* Color of Sys */,
-  45 /* Color of Sys */,
-  46 /* Property main */,
-  47 /* Property init */,
-  167 /* Id of Comparable */,
+  45 /* Group of ? */,
+  163 /* Id of Comparable */,
   4 /* Color of Comparable */,
-  49 /* Color of Comparable */,
-  50 /* Property < */,
-  51 /* Property <= */,
-  52 /* Property >= */,
-  53 /* Property > */,
-  54 /* Property <=> */,
-  55 /* Property is_between */,
-  56 /* Property max */,
-  57 /* Property min */,
-  2991 /* Id of Discrete */,
+  49 /* Group of ? */,
+  2983 /* Id of Discrete */,
   2 /* Color of Discrete */,
-  58 /* Color of Discrete */,
-  59 /* Property succ */,
-  60 /* Property prec */,
-  61 /* Property + */,
-  62 /* Property - */,
-  63 /* Property distance */,
+  58 /* Group of ? */,
   -17 /* Id of Bool */,
   2 /* Color of Bool */,
-  40 /* Color of Bool */,
+  40 /* Group of ? */,
   -13 /* Id of Float */,
   2 /* Color of Float */,
-  41 /* Color of Float */,
-  42 /* Property <= */,
-  43 /* Property < */,
-  44 /* Property >= */,
-  45 /* Property > */,
-  46 /* Property + */,
-  47 /* Property unary - */,
-  48 /* Property - */,
-  49 /* Property * */,
-  50 /* Property / */,
-  51 /* Property to_i */,
+  41 /* Group of ? */,
   -33 /* Id of Int */,
   5 /* Color of Int */,
-  67 /* Color of Int */,
-  68 /* Property unary - */,
-  69 /* Property * */,
-  70 /* Property / */,
-  71 /* Property % */,
-  72 /* Property lshift */,
-  73 /* Property rshift */,
-  74 /* Property to_f */,
-  75 /* Property ascii */,
-  76 /* Property digit_count */,
-  77 /* Property to_c */,
+  67 /* Group of ? */,
   -37 /* Id of Char */,
   5 /* Color of Char */,
-  64 /* Color of Char */,
-  65 /* Property to_i */,
-  66 /* Property ascii */,
-  67 /* Property to_lower */,
-  68 /* Property to_upper */,
+  64 /* Group of ? */,
   -1 /* Id of Pointer */,
   2 /* Color of Pointer */,
-  40 /* Color of Pointer */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_time = "./../lib/standard//time.nit";
 const int SFT_time[1] = {
-  28 /* Property get_time */,
+  28 /* Group of ? */,
 };
 const char *LOCATE_sorter = "./../lib/standard//sorter.nit";
-const int SFT_sorter[13] = {
-  191 /* Id of AbstractSorter */,
+const int SFT_sorter[6] = {
+  187 /* Id of AbstractSorter */,
   2 /* Color of AbstractSorter */,
-  40 /* Color of AbstractSorter */,
-  41 /* Property compare */,
-  42 /* Property sort */,
-  43 /* Property sub_sort */,
-  44 /* Property quick_sort */,
-  45 /* Property bubble_sort */,
-  46 /* Property init */,
-  3007 /* Id of ComparableSorter */,
+  40 /* Group of ? */,
+  2999 /* Id of ComparableSorter */,
   3 /* Color of ComparableSorter */,
-  47 /* Color of ComparableSorter */,
-  48 /* Property init */,
+  47 /* Group of ? */,
 };
 const char *LOCATE_file = "./../lib/standard//file.nit";
-const int SFT_file[77] = {
-  29 /* Property printn */,
-  30 /* Property print */,
-  31 /* Property getc */,
-  32 /* Property gets */,
-  33 /* Property stdin */,
-  34 /* Property stdout */,
-  35 /* Property stderr */,
-  2983 /* Id of FStream */,
+const int SFT_file[33] = {
+  29 /* Group of ? */,
+  2975 /* Id of FStream */,
   6 /* Color of FStream */,
-  1 /* Property _path */,
-  2 /* Property _file */,
-  46 /* Color of FStream */,
-  47 /* Property path */,
-  48 /* Property file_stat */,
-  3679 /* Id of IFStream */,
+  1 /* Group of ? */,
+  46 /* Group of ? */,
+  3687 /* Id of IFStream */,
   7 /* Color of IFStream */,
-  5 /* Property _end_reached */,
-  68 /* Color of IFStream */,
-  69 /* Property reopen */,
-  70 /* Property open */,
-  71 /* Property init */,
-  72 /* Property without_file */,
-  3507 /* Id of OFStream */,
+  5 /* Group of ? */,
+  68 /* Group of ? */,
+  3515 /* Id of OFStream */,
   5 /* Color of OFStream */,
-  3 /* Property _writable */,
-  57 /* Color of OFStream */,
-  58 /* Property write_native */,
-  59 /* Property open */,
-  60 /* Property init */,
-  61 /* Property without_file */,
-  3991 /* Id of Stdin */,
+  3 /* Group of ? */,
+  57 /* Group of ? */,
+  3999 /* Id of Stdin */,
   8 /* Color of Stdin */,
-  73 /* Color of Stdin */,
-  74 /* Property init */,
-  3635 /* Id of Stdout */,
+  73 /* Group of ? */,
+  3643 /* Id of Stdout */,
   7 /* Color of Stdout */,
-  62 /* Color of Stdout */,
-  63 /* Property init */,
-  3639 /* Id of Stderr */,
+  62 /* Group of ? */,
+  3647 /* Id of Stderr */,
   7 /* Color of Stderr */,
-  62 /* Color of Stderr */,
-  63 /* Property init */,
-  125 /* Property file_exists */,
-  126 /* Property file_stat */,
-  127 /* Property file_delete */,
-  128 /* Property strip_extension */,
-  129 /* Property basename */,
-  130 /* Property dirname */,
-  131 /* Property file_path */,
-  132 /* Property mkdir */,
-  48 /* Property file_exists */,
-  49 /* Property file_stat */,
-  50 /* Property file_mkdir */,
-  51 /* Property file_delete */,
+  62 /* Group of ? */,
+  125 /* Group of ? */,
+  48 /* Group of ? */,
   -29 /* Id of FileStat */,
   3 /* Color of FileStat */,
-  41 /* Color of FileStat */,
-  42 /* Property mode */,
-  43 /* Property atime */,
-  44 /* Property ctime */,
-  45 /* Property mtime */,
-  46 /* Property size */,
+  41 /* Group of ? */,
   -25 /* Id of NativeFile */,
   3 /* Color of NativeFile */,
-  41 /* Color of NativeFile */,
-  42 /* Property io_read */,
-  43 /* Property io_write */,
-  44 /* Property io_close */,
-  45 /* Property file_stat */,
-  83 /* Id of NativeFileCapable */,
+  41 /* Group of ? */,
+  79 /* Id of NativeFileCapable */,
   2 /* Color of NativeFileCapable */,
-  40 /* Color of NativeFileCapable */,
-  41 /* Property io_open_read */,
-  42 /* Property io_open_write */,
-  43 /* Property native_stdin */,
-  44 /* Property native_stdout */,
-  45 /* Property native_stderr */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_stream = "./../lib/standard//stream.nit";
-const int SFT_stream[53] = {
-  147 /* Id of IOS */,
+const int SFT_stream[31] = {
+  143 /* Id of IOS */,
   3 /* Color of IOS */,
-  51 /* Color of IOS */,
-  52 /* Property close */,
-  53 /* Property init */,
-  2959 /* Id of IStream */,
+  51 /* Group of ? */,
+  2951 /* Id of IStream */,
   5 /* Color of IStream */,
-  57 /* Color of IStream */,
-  58 /* Property read_char */,
-  59 /* Property read */,
-  60 /* Property read_line */,
-  61 /* Property read_all */,
-  62 /* Property append_line_to */,
-  63 /* Property eof */,
-  2883 /* Id of OStream */,
+  57 /* Group of ? */,
+  2875 /* Id of OStream */,
   4 /* Color of OStream */,
-  54 /* Color of OStream */,
-  55 /* Property write */,
-  56 /* Property is_writable */,
-  3603 /* Id of BufferedIStream */,
+  54 /* Group of ? */,
+  3615 /* Id of BufferedIStream */,
   4 /* Color of BufferedIStream */,
-  3 /* Property _buffer */,
-  4 /* Property _buffer_pos */,
-  64 /* Color of BufferedIStream */,
-  65 /* Property fill_buffer */,
-  66 /* Property end_reached */,
-  67 /* Property prepare_buffer */,
-  3559 /* Id of IOStream */,
+  3 /* Group of ? */,
+  64 /* Group of ? */,
+  3571 /* Id of IOStream */,
   8 /* Color of IOStream */,
-  70 /* Color of IOStream */,
-  2987 /* Id of FDStream */,
+  70 /* Group of ? */,
+  2979 /* Id of FDStream */,
   2 /* Color of FDStream */,
-  1 /* Property _fd */,
-  40 /* Color of FDStream */,
-  41 /* Property native_close */,
-  42 /* Property native_read_char */,
-  43 /* Property native_read */,
-  44 /* Property native_write */,
-  45 /* Property init */,
-  3571 /* Id of FDIStream */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  3583 /* Id of FDIStream */,
   7 /* Color of FDIStream */,
-  3 /* Property _eof */,
-  48 /* Color of FDIStream */,
-  49 /* Property init */,
-  3567 /* Id of FDOStream */,
+  3 /* Group of ? */,
+  48 /* Group of ? */,
+  3579 /* Id of FDOStream */,
   6 /* Color of FDOStream */,
-  2 /* Property _is_writable */,
-  46 /* Color of FDOStream */,
-  47 /* Property init */,
-  3683 /* Id of FDIOStream */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
+  3691 /* Id of FDIOStream */,
   9 /* Color of FDIOStream */,
-  64 /* Color of FDIOStream */,
-  65 /* Property init */,
+  64 /* Group of ? */,
 };
 const char *LOCATE_string_search = "./../lib/standard//string_search.nit";
-const int SFT_string_search[36] = {
-  55 /* Id of Pattern */,
+const int SFT_string_search[12] = {
+  51 /* Id of Pattern */,
   3 /* Color of Pattern */,
-  43 /* Color of Pattern */,
-  44 /* Property search_index_in */,
-  45 /* Property search_in */,
-  46 /* Property search_all_in */,
-  47 /* Property split_in */,
-  48 /* Property init */,
-  3023 /* Id of BM_Pattern */,
+  43 /* Group of ? */,
+  3015 /* Id of BM_Pattern */,
   4 /* Color of BM_Pattern */,
-  1 /* Property _motif */,
-  2 /* Property _length */,
-  3 /* Property _gs */,
-  4 /* Property _bc_table */,
-  49 /* Color of BM_Pattern */,
-  50 /* Property init */,
-  51 /* Property bc */,
-  52 /* Property compute_bc */,
-  53 /* Property suffixes */,
-  54 /* Property compute_gs */,
-  91 /* Id of Match */,
+  1 /* Group of ? */,
+  49 /* Group of ? */,
+  87 /* Id of Match */,
   2 /* Color of Match */,
-  1 /* Property _string */,
-  2 /* Property _from */,
-  3 /* Property _length */,
-  40 /* Color of Match */,
-  41 /* Property string */,
-  42 /* Property from */,
-  43 /* Property length */,
-  44 /* Property after */,
-  45 /* Property init */,
-  133 /* Property search */,
-  134 /* Property search_from */,
-  135 /* Property search_all */,
-  136 /* Property split_with */,
-  137 /* Property split */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  133 /* Group of ? */,
 };
 const char *LOCATE_exec = "./../lib/standard//exec.nit";
-const int SFT_exec[44] = {
-  47 /* Id of Process */,
+const int SFT_exec[20] = {
+  43 /* Id of Process */,
   2 /* Color of Process */,
-  1 /* Property _data */,
-  40 /* Color of Process */,
-  41 /* Property id */,
-  42 /* Property is_finished */,
-  43 /* Property wait */,
-  44 /* Property status */,
-  45 /* Property kill */,
-  46 /* Property term */,
-  47 /* Property init */,
-  48 /* Property init_ */,
-  49 /* Property execute */,
-  50 /* Property basic_exec_execute */,
-  3555 /* Id of IProcess */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  3567 /* Id of IProcess */,
   7 /* Color of IProcess */,
-  3 /* Property _in */,
-  67 /* Color of IProcess */,
-  68 /* Property init */,
-  69 /* Property init_ */,
-  3503 /* Id of OProcess */,
+  3 /* Group of ? */,
+  67 /* Group of ? */,
+  3511 /* Id of OProcess */,
   6 /* Color of OProcess */,
-  2 /* Property _out */,
-  64 /* Color of OProcess */,
-  65 /* Property init */,
-  66 /* Property init_ */,
-  3675 /* Id of IOProcess */,
+  2 /* Group of ? */,
+  64 /* Group of ? */,
+  3683 /* Id of IOProcess */,
   9 /* Color of IOProcess */,
-  71 /* Color of IOProcess */,
-  72 /* Property init */,
-  73 /* Property init_ */,
-  40 /* Property system */,
-  52 /* Property system */,
+  71 /* Group of ? */,
+  40 /* Group of ? */,
+  52 /* Group of ? */,
   -21 /* Id of NativeProcess */,
   3 /* Color of NativeProcess */,
-  41 /* Color of NativeProcess */,
-  42 /* Property id */,
-  43 /* Property is_finished */,
-  44 /* Property status */,
-  45 /* Property wait */,
-  46 /* Property kill */,
-  47 /* Property in_fd */,
-  48 /* Property out_fd */,
-  49 /* Property err_fd */,
+  41 /* Group of ? */,
 };
 const char *LOCATE_list = "./../lib/standard//list.nit";
-const int SFT_list[28] = {
-  4007 /* Id of List */,
+const int SFT_list[12] = {
+  4015 /* Id of List */,
   10 /* Color of List */,
-  1 /* Property _head */,
-  2 /* Property _tail */,
-  92 /* Color of List */,
-  93 /* Property link */,
-  94 /* Property init */,
-  95 /* Property from */,
-  96 /* Property get_node */,
-  97 /* Property search_node_after */,
-  98 /* Property remove_node */,
-  99 /* Property insert_before */,
-  3667 /* Id of ListIterator */,
+  1 /* Group of ? */,
+  92 /* Group of ? */,
+  3675 /* Id of ListIterator */,
   5 /* Color of ListIterator */,
-  1 /* Property _node */,
-  2 /* Property _index */,
-  50 /* Color of ListIterator */,
-  51 /* Property init */,
-  3547 /* Id of ListNode */,
+  1 /* Group of ? */,
+  50 /* Group of ? */,
+  3559 /* Id of ListNode */,
   7 /* Color of ListNode */,
-  2 /* Property _next */,
-  3 /* Property _prev */,
-  72 /* Color of ListNode */,
-  73 /* Property init */,
-  74 /* Property next */,
-  75 /* Property next= */,
-  76 /* Property prev */,
-  77 /* Property prev= */,
+  2 /* Group of ? */,
+  72 /* Group of ? */,
 };
 const char *LOCATE_range = "./../lib/standard//range.nit";
-const int SFT_range[16] = {
-  2851 /* Id of Range */,
+const int SFT_range[8] = {
+  2843 /* Id of Range */,
   6 /* Color of Range */,
-  1 /* Property _first */,
-  2 /* Property _last */,
-  3 /* Property _after */,
-  68 /* Color of Range */,
-  69 /* Property last */,
-  70 /* Property after */,
-  71 /* Property init */,
-  72 /* Property without_last */,
-  2955 /* Id of IteratorRange */,
+  1 /* Group of ? */,
+  68 /* Group of ? */,
+  2947 /* Id of IteratorRange */,
   3 /* Color of IteratorRange */,
-  1 /* Property _range */,
-  2 /* Property _item */,
-  45 /* Color of IteratorRange */,
-  46 /* Property init */,
+  1 /* Group of ? */,
+  45 /* Group of ? */,
 };
 const char *LOCATE_math = "./../lib/standard//math.nit";
-const int SFT_math[16] = {
-  78 /* Property rand */,
-  52 /* Property sqrt */,
-  53 /* Property cos */,
-  54 /* Property sin */,
-  55 /* Property tan */,
-  56 /* Property acos */,
-  57 /* Property asin */,
-  58 /* Property atan */,
-  59 /* Property pow */,
-  60 /* Property log */,
-  61 /* Property exp */,
-  62 /* Property rand */,
-  36 /* Property atan2 */,
-  37 /* Property pi */,
-  38 /* Property srand_from */,
-  39 /* Property srand */,
+const int SFT_math[3] = {
+  78 /* Group of ? */,
+  52 /* Group of ? */,
+  36 /* Group of ? */,
 };
 const char *LOCATE_parser_tables = "./parser//parser_tables.nit";
-const int SFT_parser_tables[1311] = {
-  63 /* Id of ParserTable */,
+const int SFT_parser_tables[4] = {
+  59 /* Id of ParserTable */,
   2 /* Color of ParserTable */,
-  1 /* Property _action_table */,
-  2 /* Property _goto_table */,
-  40 /* Color of ParserTable */,
-  41 /* Property build_action_table */,
-  42 /* Property action_table_row1 */,
-  43 /* Property action_table_row2 */,
-  44 /* Property action_table_row3 */,
-  45 /* Property action_table_row4 */,
-  46 /* Property action_table_row5 */,
-  47 /* Property action_table_row6 */,
-  48 /* Property action_table_row7 */,
-  49 /* Property action_table_row8 */,
-  50 /* Property action_table_row9 */,
-  51 /* Property action_table_row10 */,
-  52 /* Property action_table_row11 */,
-  53 /* Property action_table_row12 */,
-  54 /* Property action_table_row13 */,
-  55 /* Property action_table_row14 */,
-  56 /* Property action_table_row15 */,
-  57 /* Property action_table_row16 */,
-  58 /* Property action_table_row17 */,
-  59 /* Property action_table_row18 */,
-  60 /* Property action_table_row19 */,
-  61 /* Property action_table_row20 */,
-  62 /* Property action_table_row21 */,
-  63 /* Property action_table_row22 */,
-  64 /* Property action_table_row23 */,
-  65 /* Property action_table_row24 */,
-  66 /* Property action_table_row25 */,
-  67 /* Property action_table_row26 */,
-  68 /* Property action_table_row27 */,
-  69 /* Property action_table_row28 */,
-  70 /* Property action_table_row29 */,
-  71 /* Property action_table_row30 */,
-  72 /* Property action_table_row31 */,
-  73 /* Property action_table_row32 */,
-  74 /* Property action_table_row33 */,
-  75 /* Property action_table_row34 */,
-  76 /* Property action_table_row35 */,
-  77 /* Property action_table_row36 */,
-  78 /* Property action_table_row37 */,
-  79 /* Property action_table_row38 */,
-  80 /* Property action_table_row39 */,
-  81 /* Property action_table_row40 */,
-  82 /* Property action_table_row41 */,
-  83 /* Property action_table_row42 */,
-  84 /* Property action_table_row43 */,
-  85 /* Property action_table_row44 */,
-  86 /* Property action_table_row45 */,
-  87 /* Property action_table_row46 */,
-  88 /* Property action_table_row47 */,
-  89 /* Property action_table_row48 */,
-  90 /* Property action_table_row49 */,
-  91 /* Property action_table_row50 */,
-  92 /* Property action_table_row51 */,
-  93 /* Property action_table_row52 */,
-  94 /* Property action_table_row53 */,
-  95 /* Property action_table_row54 */,
-  96 /* Property action_table_row55 */,
-  97 /* Property action_table_row56 */,
-  98 /* Property action_table_row57 */,
-  99 /* Property action_table_row58 */,
-  100 /* Property action_table_row59 */,
-  101 /* Property action_table_row60 */,
-  102 /* Property action_table_row61 */,
-  103 /* Property action_table_row62 */,
-  104 /* Property action_table_row63 */,
-  105 /* Property action_table_row64 */,
-  106 /* Property action_table_row65 */,
-  107 /* Property action_table_row66 */,
-  108 /* Property action_table_row67 */,
-  109 /* Property action_table_row68 */,
-  110 /* Property action_table_row69 */,
-  111 /* Property action_table_row70 */,
-  112 /* Property action_table_row71 */,
-  113 /* Property action_table_row72 */,
-  114 /* Property action_table_row73 */,
-  115 /* Property action_table_row74 */,
-  116 /* Property action_table_row75 */,
-  117 /* Property action_table_row76 */,
-  118 /* Property action_table_row77 */,
-  119 /* Property action_table_row78 */,
-  120 /* Property action_table_row79 */,
-  121 /* Property action_table_row80 */,
-  122 /* Property action_table_row81 */,
-  123 /* Property action_table_row82 */,
-  124 /* Property action_table_row83 */,
-  125 /* Property action_table_row84 */,
-  126 /* Property action_table_row85 */,
-  127 /* Property action_table_row86 */,
-  128 /* Property action_table_row87 */,
-  129 /* Property action_table_row88 */,
-  130 /* Property action_table_row89 */,
-  131 /* Property action_table_row90 */,
-  132 /* Property action_table_row91 */,
-  133 /* Property action_table_row92 */,
-  134 /* Property action_table_row93 */,
-  135 /* Property action_table_row94 */,
-  136 /* Property action_table_row95 */,
-  137 /* Property action_table_row96 */,
-  138 /* Property action_table_row97 */,
-  139 /* Property action_table_row98 */,
-  140 /* Property action_table_row99 */,
-  141 /* Property action_table_row100 */,
-  142 /* Property action_table_row101 */,
-  143 /* Property action_table_row102 */,
-  144 /* Property action_table_row103 */,
-  145 /* Property action_table_row104 */,
-  146 /* Property action_table_row105 */,
-  147 /* Property action_table_row106 */,
-  148 /* Property action_table_row107 */,
-  149 /* Property action_table_row108 */,
-  150 /* Property action_table_row109 */,
-  151 /* Property action_table_row110 */,
-  152 /* Property action_table_row111 */,
-  153 /* Property action_table_row112 */,
-  154 /* Property action_table_row113 */,
-  155 /* Property action_table_row114 */,
-  156 /* Property action_table_row115 */,
-  157 /* Property action_table_row116 */,
-  158 /* Property action_table_row117 */,
-  159 /* Property action_table_row118 */,
-  160 /* Property action_table_row119 */,
-  161 /* Property action_table_row120 */,
-  162 /* Property action_table_row121 */,
-  163 /* Property action_table_row122 */,
-  164 /* Property action_table_row123 */,
-  165 /* Property action_table_row124 */,
-  166 /* Property action_table_row125 */,
-  167 /* Property action_table_row126 */,
-  168 /* Property action_table_row127 */,
-  169 /* Property action_table_row128 */,
-  170 /* Property action_table_row129 */,
-  171 /* Property action_table_row130 */,
-  172 /* Property action_table_row131 */,
-  173 /* Property action_table_row132 */,
-  174 /* Property action_table_row133 */,
-  175 /* Property action_table_row134 */,
-  176 /* Property action_table_row135 */,
-  177 /* Property action_table_row136 */,
-  178 /* Property action_table_row137 */,
-  179 /* Property action_table_row138 */,
-  180 /* Property action_table_row139 */,
-  181 /* Property action_table_row140 */,
-  182 /* Property action_table_row141 */,
-  183 /* Property action_table_row142 */,
-  184 /* Property action_table_row143 */,
-  185 /* Property action_table_row144 */,
-  186 /* Property action_table_row145 */,
-  187 /* Property action_table_row146 */,
-  188 /* Property action_table_row147 */,
-  189 /* Property action_table_row148 */,
-  190 /* Property action_table_row149 */,
-  191 /* Property action_table_row150 */,
-  192 /* Property action_table_row151 */,
-  193 /* Property action_table_row152 */,
-  194 /* Property action_table_row153 */,
-  195 /* Property action_table_row154 */,
-  196 /* Property action_table_row155 */,
-  197 /* Property action_table_row156 */,
-  198 /* Property action_table_row157 */,
-  199 /* Property action_table_row158 */,
-  200 /* Property action_table_row159 */,
-  201 /* Property action_table_row160 */,
-  202 /* Property action_table_row161 */,
-  203 /* Property action_table_row162 */,
-  204 /* Property action_table_row163 */,
-  205 /* Property action_table_row164 */,
-  206 /* Property action_table_row165 */,
-  207 /* Property action_table_row166 */,
-  208 /* Property action_table_row167 */,
-  209 /* Property action_table_row168 */,
-  210 /* Property action_table_row169 */,
-  211 /* Property action_table_row170 */,
-  212 /* Property action_table_row171 */,
-  213 /* Property action_table_row172 */,
-  214 /* Property action_table_row173 */,
-  215 /* Property action_table_row174 */,
-  216 /* Property action_table_row175 */,
-  217 /* Property action_table_row176 */,
-  218 /* Property action_table_row177 */,
-  219 /* Property action_table_row178 */,
-  220 /* Property action_table_row179 */,
-  221 /* Property action_table_row180 */,
-  222 /* Property action_table_row181 */,
-  223 /* Property action_table_row182 */,
-  224 /* Property action_table_row183 */,
-  225 /* Property action_table_row184 */,
-  226 /* Property action_table_row185 */,
-  227 /* Property action_table_row186 */,
-  228 /* Property action_table_row187 */,
-  229 /* Property action_table_row188 */,
-  230 /* Property action_table_row189 */,
-  231 /* Property action_table_row190 */,
-  232 /* Property action_table_row191 */,
-  233 /* Property action_table_row192 */,
-  234 /* Property action_table_row193 */,
-  235 /* Property action_table_row194 */,
-  236 /* Property action_table_row195 */,
-  237 /* Property action_table_row196 */,
-  238 /* Property action_table_row197 */,
-  239 /* Property action_table_row198 */,
-  240 /* Property action_table_row199 */,
-  241 /* Property action_table_row200 */,
-  242 /* Property action_table_row201 */,
-  243 /* Property action_table_row202 */,
-  244 /* Property action_table_row203 */,
-  245 /* Property action_table_row204 */,
-  246 /* Property action_table_row205 */,
-  247 /* Property action_table_row206 */,
-  248 /* Property action_table_row207 */,
-  249 /* Property action_table_row208 */,
-  250 /* Property action_table_row209 */,
-  251 /* Property action_table_row210 */,
-  252 /* Property action_table_row211 */,
-  253 /* Property action_table_row212 */,
-  254 /* Property action_table_row213 */,
-  255 /* Property action_table_row214 */,
-  256 /* Property action_table_row215 */,
-  257 /* Property action_table_row216 */,
-  258 /* Property action_table_row217 */,
-  259 /* Property action_table_row218 */,
-  260 /* Property action_table_row219 */,
-  261 /* Property action_table_row220 */,
-  262 /* Property action_table_row221 */,
-  263 /* Property action_table_row222 */,
-  264 /* Property action_table_row223 */,
-  265 /* Property action_table_row224 */,
-  266 /* Property action_table_row225 */,
-  267 /* Property action_table_row226 */,
-  268 /* Property action_table_row227 */,
-  269 /* Property action_table_row228 */,
-  270 /* Property action_table_row229 */,
-  271 /* Property action_table_row230 */,
-  272 /* Property action_table_row231 */,
-  273 /* Property action_table_row232 */,
-  274 /* Property action_table_row233 */,
-  275 /* Property action_table_row234 */,
-  276 /* Property action_table_row235 */,
-  277 /* Property action_table_row236 */,
-  278 /* Property action_table_row237 */,
-  279 /* Property action_table_row238 */,
-  280 /* Property action_table_row239 */,
-  281 /* Property action_table_row240 */,
-  282 /* Property action_table_row241 */,
-  283 /* Property action_table_row242 */,
-  284 /* Property action_table_row243 */,
-  285 /* Property action_table_row244 */,
-  286 /* Property action_table_row245 */,
-  287 /* Property action_table_row246 */,
-  288 /* Property action_table_row247 */,
-  289 /* Property action_table_row248 */,
-  290 /* Property action_table_row249 */,
-  291 /* Property action_table_row250 */,
-  292 /* Property action_table_row251 */,
-  293 /* Property action_table_row252 */,
-  294 /* Property action_table_row253 */,
-  295 /* Property action_table_row254 */,
-  296 /* Property action_table_row255 */,
-  297 /* Property action_table_row256 */,
-  298 /* Property action_table_row257 */,
-  299 /* Property action_table_row258 */,
-  300 /* Property action_table_row259 */,
-  301 /* Property action_table_row260 */,
-  302 /* Property action_table_row261 */,
-  303 /* Property action_table_row262 */,
-  304 /* Property action_table_row263 */,
-  305 /* Property action_table_row264 */,
-  306 /* Property action_table_row265 */,
-  307 /* Property action_table_row266 */,
-  308 /* Property action_table_row267 */,
-  309 /* Property action_table_row268 */,
-  310 /* Property action_table_row269 */,
-  311 /* Property action_table_row270 */,
-  312 /* Property action_table_row271 */,
-  313 /* Property action_table_row272 */,
-  314 /* Property action_table_row273 */,
-  315 /* Property action_table_row274 */,
-  316 /* Property action_table_row275 */,
-  317 /* Property action_table_row276 */,
-  318 /* Property action_table_row277 */,
-  319 /* Property action_table_row278 */,
-  320 /* Property action_table_row279 */,
-  321 /* Property action_table_row280 */,
-  322 /* Property action_table_row281 */,
-  323 /* Property action_table_row282 */,
-  324 /* Property action_table_row283 */,
-  325 /* Property action_table_row284 */,
-  326 /* Property action_table_row285 */,
-  327 /* Property action_table_row286 */,
-  328 /* Property action_table_row287 */,
-  329 /* Property action_table_row288 */,
-  330 /* Property action_table_row289 */,
-  331 /* Property action_table_row290 */,
-  332 /* Property action_table_row291 */,
-  333 /* Property action_table_row292 */,
-  334 /* Property action_table_row293 */,
-  335 /* Property action_table_row294 */,
-  336 /* Property action_table_row295 */,
-  337 /* Property action_table_row296 */,
-  338 /* Property action_table_row297 */,
-  339 /* Property action_table_row298 */,
-  340 /* Property action_table_row299 */,
-  341 /* Property action_table_row300 */,
-  342 /* Property action_table_row301 */,
-  343 /* Property action_table_row302 */,
-  344 /* Property action_table_row303 */,
-  345 /* Property action_table_row304 */,
-  346 /* Property action_table_row305 */,
-  347 /* Property action_table_row306 */,
-  348 /* Property action_table_row307 */,
-  349 /* Property action_table_row308 */,
-  350 /* Property action_table_row309 */,
-  351 /* Property action_table_row310 */,
-  352 /* Property action_table_row311 */,
-  353 /* Property action_table_row312 */,
-  354 /* Property action_table_row313 */,
-  355 /* Property action_table_row314 */,
-  356 /* Property action_table_row315 */,
-  357 /* Property action_table_row316 */,
-  358 /* Property action_table_row317 */,
-  359 /* Property action_table_row318 */,
-  360 /* Property action_table_row319 */,
-  361 /* Property action_table_row320 */,
-  362 /* Property action_table_row321 */,
-  363 /* Property action_table_row322 */,
-  364 /* Property action_table_row323 */,
-  365 /* Property action_table_row324 */,
-  366 /* Property action_table_row325 */,
-  367 /* Property action_table_row326 */,
-  368 /* Property action_table_row327 */,
-  369 /* Property action_table_row328 */,
-  370 /* Property action_table_row329 */,
-  371 /* Property action_table_row330 */,
-  372 /* Property action_table_row331 */,
-  373 /* Property action_table_row332 */,
-  374 /* Property action_table_row333 */,
-  375 /* Property action_table_row334 */,
-  376 /* Property action_table_row335 */,
-  377 /* Property action_table_row336 */,
-  378 /* Property action_table_row337 */,
-  379 /* Property action_table_row338 */,
-  380 /* Property action_table_row339 */,
-  381 /* Property action_table_row340 */,
-  382 /* Property action_table_row341 */,
-  383 /* Property action_table_row342 */,
-  384 /* Property action_table_row343 */,
-  385 /* Property action_table_row344 */,
-  386 /* Property action_table_row345 */,
-  387 /* Property action_table_row346 */,
-  388 /* Property action_table_row347 */,
-  389 /* Property action_table_row348 */,
-  390 /* Property action_table_row349 */,
-  391 /* Property action_table_row350 */,
-  392 /* Property action_table_row351 */,
-  393 /* Property action_table_row352 */,
-  394 /* Property action_table_row353 */,
-  395 /* Property action_table_row354 */,
-  396 /* Property action_table_row355 */,
-  397 /* Property action_table_row356 */,
-  398 /* Property action_table_row357 */,
-  399 /* Property action_table_row358 */,
-  400 /* Property action_table_row359 */,
-  401 /* Property action_table_row360 */,
-  402 /* Property action_table_row361 */,
-  403 /* Property action_table_row362 */,
-  404 /* Property action_table_row363 */,
-  405 /* Property action_table_row364 */,
-  406 /* Property action_table_row365 */,
-  407 /* Property action_table_row366 */,
-  408 /* Property action_table_row367 */,
-  409 /* Property action_table_row368 */,
-  410 /* Property action_table_row369 */,
-  411 /* Property action_table_row370 */,
-  412 /* Property action_table_row371 */,
-  413 /* Property action_table_row372 */,
-  414 /* Property action_table_row373 */,
-  415 /* Property action_table_row374 */,
-  416 /* Property action_table_row375 */,
-  417 /* Property action_table_row376 */,
-  418 /* Property action_table_row377 */,
-  419 /* Property action_table_row378 */,
-  420 /* Property action_table_row379 */,
-  421 /* Property action_table_row380 */,
-  422 /* Property action_table_row381 */,
-  423 /* Property action_table_row382 */,
-  424 /* Property action_table_row383 */,
-  425 /* Property action_table_row384 */,
-  426 /* Property action_table_row385 */,
-  427 /* Property action_table_row386 */,
-  428 /* Property action_table_row387 */,
-  429 /* Property action_table_row388 */,
-  430 /* Property action_table_row389 */,
-  431 /* Property action_table_row390 */,
-  432 /* Property action_table_row391 */,
-  433 /* Property action_table_row392 */,
-  434 /* Property action_table_row393 */,
-  435 /* Property action_table_row394 */,
-  436 /* Property action_table_row395 */,
-  437 /* Property action_table_row396 */,
-  438 /* Property action_table_row397 */,
-  439 /* Property action_table_row398 */,
-  440 /* Property action_table_row399 */,
-  441 /* Property action_table_row400 */,
-  442 /* Property action_table_row401 */,
-  443 /* Property action_table_row402 */,
-  444 /* Property action_table_row403 */,
-  445 /* Property action_table_row404 */,
-  446 /* Property action_table_row405 */,
-  447 /* Property action_table_row406 */,
-  448 /* Property action_table_row407 */,
-  449 /* Property action_table_row408 */,
-  450 /* Property action_table_row409 */,
-  451 /* Property action_table_row410 */,
-  452 /* Property action_table_row411 */,
-  453 /* Property action_table_row412 */,
-  454 /* Property action_table_row413 */,
-  455 /* Property action_table_row414 */,
-  456 /* Property action_table_row415 */,
-  457 /* Property action_table_row416 */,
-  458 /* Property action_table_row417 */,
-  459 /* Property action_table_row418 */,
-  460 /* Property action_table_row419 */,
-  461 /* Property action_table_row420 */,
-  462 /* Property action_table_row421 */,
-  463 /* Property action_table_row422 */,
-  464 /* Property action_table_row423 */,
-  465 /* Property action_table_row424 */,
-  466 /* Property action_table_row425 */,
-  467 /* Property action_table_row426 */,
-  468 /* Property action_table_row427 */,
-  469 /* Property action_table_row428 */,
-  470 /* Property action_table_row429 */,
-  471 /* Property action_table_row430 */,
-  472 /* Property action_table_row431 */,
-  473 /* Property action_table_row432 */,
-  474 /* Property action_table_row433 */,
-  475 /* Property action_table_row434 */,
-  476 /* Property action_table_row435 */,
-  477 /* Property action_table_row436 */,
-  478 /* Property action_table_row437 */,
-  479 /* Property action_table_row438 */,
-  480 /* Property action_table_row439 */,
-  481 /* Property action_table_row440 */,
-  482 /* Property action_table_row441 */,
-  483 /* Property action_table_row442 */,
-  484 /* Property action_table_row443 */,
-  485 /* Property action_table_row444 */,
-  486 /* Property action_table_row445 */,
-  487 /* Property action_table_row446 */,
-  488 /* Property action_table_row447 */,
-  489 /* Property action_table_row448 */,
-  490 /* Property action_table_row449 */,
-  491 /* Property action_table_row450 */,
-  492 /* Property action_table_row451 */,
-  493 /* Property action_table_row452 */,
-  494 /* Property action_table_row453 */,
-  495 /* Property action_table_row454 */,
-  496 /* Property action_table_row455 */,
-  497 /* Property action_table_row456 */,
-  498 /* Property action_table_row457 */,
-  499 /* Property action_table_row458 */,
-  500 /* Property action_table_row459 */,
-  501 /* Property action_table_row460 */,
-  502 /* Property action_table_row461 */,
-  503 /* Property action_table_row462 */,
-  504 /* Property action_table_row463 */,
-  505 /* Property action_table_row464 */,
-  506 /* Property action_table_row465 */,
-  507 /* Property action_table_row466 */,
-  508 /* Property action_table_row467 */,
-  509 /* Property action_table_row468 */,
-  510 /* Property action_table_row469 */,
-  511 /* Property action_table_row470 */,
-  512 /* Property action_table_row471 */,
-  513 /* Property action_table_row472 */,
-  514 /* Property action_table_row473 */,
-  515 /* Property action_table_row474 */,
-  516 /* Property action_table_row475 */,
-  517 /* Property action_table_row476 */,
-  518 /* Property action_table_row477 */,
-  519 /* Property action_table_row478 */,
-  520 /* Property action_table_row479 */,
-  521 /* Property action_table_row480 */,
-  522 /* Property action_table_row481 */,
-  523 /* Property action_table_row482 */,
-  524 /* Property action_table_row483 */,
-  525 /* Property action_table_row484 */,
-  526 /* Property action_table_row485 */,
-  527 /* Property action_table_row486 */,
-  528 /* Property action_table_row487 */,
-  529 /* Property action_table_row488 */,
-  530 /* Property action_table_row489 */,
-  531 /* Property action_table_row490 */,
-  532 /* Property action_table_row491 */,
-  533 /* Property action_table_row492 */,
-  534 /* Property action_table_row493 */,
-  535 /* Property action_table_row494 */,
-  536 /* Property action_table_row495 */,
-  537 /* Property action_table_row496 */,
-  538 /* Property action_table_row497 */,
-  539 /* Property action_table_row498 */,
-  540 /* Property action_table_row499 */,
-  541 /* Property action_table_row500 */,
-  542 /* Property action_table_row501 */,
-  543 /* Property action_table_row502 */,
-  544 /* Property action_table_row503 */,
-  545 /* Property action_table_row504 */,
-  546 /* Property action_table_row505 */,
-  547 /* Property action_table_row506 */,
-  548 /* Property action_table_row507 */,
-  549 /* Property action_table_row508 */,
-  550 /* Property action_table_row509 */,
-  551 /* Property action_table_row510 */,
-  552 /* Property action_table_row511 */,
-  553 /* Property action_table_row512 */,
-  554 /* Property action_table_row513 */,
-  555 /* Property action_table_row514 */,
-  556 /* Property action_table_row515 */,
-  557 /* Property action_table_row516 */,
-  558 /* Property action_table_row517 */,
-  559 /* Property action_table_row518 */,
-  560 /* Property action_table_row519 */,
-  561 /* Property action_table_row520 */,
-  562 /* Property action_table_row521 */,
-  563 /* Property action_table_row522 */,
-  564 /* Property action_table_row523 */,
-  565 /* Property action_table_row524 */,
-  566 /* Property action_table_row525 */,
-  567 /* Property action_table_row526 */,
-  568 /* Property action_table_row527 */,
-  569 /* Property action_table_row528 */,
-  570 /* Property action_table_row529 */,
-  571 /* Property action_table_row530 */,
-  572 /* Property action_table_row531 */,
-  573 /* Property action_table_row532 */,
-  574 /* Property action_table_row533 */,
-  575 /* Property action_table_row534 */,
-  576 /* Property action_table_row535 */,
-  577 /* Property action_table_row536 */,
-  578 /* Property action_table_row537 */,
-  579 /* Property action_table_row538 */,
-  580 /* Property action_table_row539 */,
-  581 /* Property action_table_row540 */,
-  582 /* Property action_table_row541 */,
-  583 /* Property action_table_row542 */,
-  584 /* Property action_table_row543 */,
-  585 /* Property action_table_row544 */,
-  586 /* Property action_table_row545 */,
-  587 /* Property action_table_row546 */,
-  588 /* Property action_table_row547 */,
-  589 /* Property action_table_row548 */,
-  590 /* Property action_table_row549 */,
-  591 /* Property action_table_row550 */,
-  592 /* Property action_table_row551 */,
-  593 /* Property action_table_row552 */,
-  594 /* Property action_table_row553 */,
-  595 /* Property action_table_row554 */,
-  596 /* Property action_table_row555 */,
-  597 /* Property action_table_row556 */,
-  598 /* Property action_table_row557 */,
-  599 /* Property action_table_row558 */,
-  600 /* Property action_table_row559 */,
-  601 /* Property action_table_row560 */,
-  602 /* Property action_table_row561 */,
-  603 /* Property action_table_row562 */,
-  604 /* Property action_table_row563 */,
-  605 /* Property action_table_row564 */,
-  606 /* Property action_table_row565 */,
-  607 /* Property action_table_row566 */,
-  608 /* Property action_table_row567 */,
-  609 /* Property action_table_row568 */,
-  610 /* Property action_table_row569 */,
-  611 /* Property action_table_row570 */,
-  612 /* Property action_table_row571 */,
-  613 /* Property action_table_row572 */,
-  614 /* Property action_table_row573 */,
-  615 /* Property action_table_row574 */,
-  616 /* Property action_table_row575 */,
-  617 /* Property action_table_row576 */,
-  618 /* Property action_table_row577 */,
-  619 /* Property action_table_row578 */,
-  620 /* Property action_table_row579 */,
-  621 /* Property action_table_row580 */,
-  622 /* Property action_table_row581 */,
-  623 /* Property action_table_row582 */,
-  624 /* Property action_table_row583 */,
-  625 /* Property action_table_row584 */,
-  626 /* Property action_table_row585 */,
-  627 /* Property action_table_row586 */,
-  628 /* Property action_table_row587 */,
-  629 /* Property action_table_row588 */,
-  630 /* Property action_table_row589 */,
-  631 /* Property action_table_row590 */,
-  632 /* Property action_table_row591 */,
-  633 /* Property action_table_row592 */,
-  634 /* Property action_table_row593 */,
-  635 /* Property action_table_row594 */,
-  636 /* Property action_table_row595 */,
-  637 /* Property action_table_row596 */,
-  638 /* Property action_table_row597 */,
-  639 /* Property action_table_row598 */,
-  640 /* Property action_table_row599 */,
-  641 /* Property action_table_row600 */,
-  642 /* Property action_table_row601 */,
-  643 /* Property action_table_row602 */,
-  644 /* Property action_table_row603 */,
-  645 /* Property action_table_row604 */,
-  646 /* Property action_table_row605 */,
-  647 /* Property action_table_row606 */,
-  648 /* Property action_table_row607 */,
-  649 /* Property action_table_row608 */,
-  650 /* Property action_table_row609 */,
-  651 /* Property action_table_row610 */,
-  652 /* Property action_table_row611 */,
-  653 /* Property action_table_row612 */,
-  654 /* Property action_table_row613 */,
-  655 /* Property action_table_row614 */,
-  656 /* Property action_table_row615 */,
-  657 /* Property action_table_row616 */,
-  658 /* Property action_table_row617 */,
-  659 /* Property action_table_row618 */,
-  660 /* Property action_table_row619 */,
-  661 /* Property action_table_row620 */,
-  662 /* Property action_table_row621 */,
-  663 /* Property action_table_row622 */,
-  664 /* Property action_table_row623 */,
-  665 /* Property action_table_row624 */,
-  666 /* Property action_table_row625 */,
-  667 /* Property action_table_row626 */,
-  668 /* Property action_table_row627 */,
-  669 /* Property action_table_row628 */,
-  670 /* Property action_table_row629 */,
-  671 /* Property action_table_row630 */,
-  672 /* Property action_table_row631 */,
-  673 /* Property action_table_row632 */,
-  674 /* Property action_table_row633 */,
-  675 /* Property action_table_row634 */,
-  676 /* Property action_table_row635 */,
-  677 /* Property action_table_row636 */,
-  678 /* Property action_table_row637 */,
-  679 /* Property action_table_row638 */,
-  680 /* Property action_table_row639 */,
-  681 /* Property action_table_row640 */,
-  682 /* Property action_table_row641 */,
-  683 /* Property action_table_row642 */,
-  684 /* Property action_table_row643 */,
-  685 /* Property action_table_row644 */,
-  686 /* Property action_table_row645 */,
-  687 /* Property action_table_row646 */,
-  688 /* Property action_table_row647 */,
-  689 /* Property action_table_row648 */,
-  690 /* Property action_table_row649 */,
-  691 /* Property action_table_row650 */,
-  692 /* Property action_table_row651 */,
-  693 /* Property action_table_row652 */,
-  694 /* Property action_table_row653 */,
-  695 /* Property action_table_row654 */,
-  696 /* Property action_table_row655 */,
-  697 /* Property action_table_row656 */,
-  698 /* Property action_table_row657 */,
-  699 /* Property action_table_row658 */,
-  700 /* Property action_table_row659 */,
-  701 /* Property action_table_row660 */,
-  702 /* Property action_table_row661 */,
-  703 /* Property action_table_row662 */,
-  704 /* Property action_table_row663 */,
-  705 /* Property action_table_row664 */,
-  706 /* Property action_table_row665 */,
-  707 /* Property action_table_row666 */,
-  708 /* Property action_table_row667 */,
-  709 /* Property action_table_row668 */,
-  710 /* Property action_table_row669 */,
-  711 /* Property action_table_row670 */,
-  712 /* Property action_table_row671 */,
-  713 /* Property action_table_row672 */,
-  714 /* Property action_table_row673 */,
-  715 /* Property action_table_row674 */,
-  716 /* Property action_table_row675 */,
-  717 /* Property action_table_row676 */,
-  718 /* Property action_table_row677 */,
-  719 /* Property action_table_row678 */,
-  720 /* Property action_table_row679 */,
-  721 /* Property action_table_row680 */,
-  722 /* Property action_table_row681 */,
-  723 /* Property action_table_row682 */,
-  724 /* Property action_table_row683 */,
-  725 /* Property action_table_row684 */,
-  726 /* Property action_table_row685 */,
-  727 /* Property action_table_row686 */,
-  728 /* Property action_table_row687 */,
-  729 /* Property action_table_row688 */,
-  730 /* Property action_table_row689 */,
-  731 /* Property action_table_row690 */,
-  732 /* Property action_table_row691 */,
-  733 /* Property action_table_row692 */,
-  734 /* Property action_table_row693 */,
-  735 /* Property action_table_row694 */,
-  736 /* Property action_table_row695 */,
-  737 /* Property action_table_row696 */,
-  738 /* Property action_table_row697 */,
-  739 /* Property action_table_row698 */,
-  740 /* Property action_table_row699 */,
-  741 /* Property action_table_row700 */,
-  742 /* Property action_table_row701 */,
-  743 /* Property action_table_row702 */,
-  744 /* Property action_table_row703 */,
-  745 /* Property action_table_row704 */,
-  746 /* Property action_table_row705 */,
-  747 /* Property action_table_row706 */,
-  748 /* Property action_table_row707 */,
-  749 /* Property action_table_row708 */,
-  750 /* Property action_table_row709 */,
-  751 /* Property action_table_row710 */,
-  752 /* Property action_table_row711 */,
-  753 /* Property action_table_row712 */,
-  754 /* Property action_table_row713 */,
-  755 /* Property action_table_row714 */,
-  756 /* Property action_table_row715 */,
-  757 /* Property action_table_row716 */,
-  758 /* Property action_table_row717 */,
-  759 /* Property action_table_row718 */,
-  760 /* Property action_table_row719 */,
-  761 /* Property action_table_row720 */,
-  762 /* Property action_table_row721 */,
-  763 /* Property action_table_row722 */,
-  764 /* Property action_table_row723 */,
-  765 /* Property action_table_row724 */,
-  766 /* Property action_table_row725 */,
-  767 /* Property action_table_row726 */,
-  768 /* Property action_table_row727 */,
-  769 /* Property action_table_row728 */,
-  770 /* Property action_table_row729 */,
-  771 /* Property action_table_row730 */,
-  772 /* Property action_table_row731 */,
-  773 /* Property action_table_row732 */,
-  774 /* Property action_table_row733 */,
-  775 /* Property action_table_row734 */,
-  776 /* Property action_table_row735 */,
-  777 /* Property action_table_row736 */,
-  778 /* Property action_table_row737 */,
-  779 /* Property action_table_row738 */,
-  780 /* Property action_table_row739 */,
-  781 /* Property action_table_row740 */,
-  782 /* Property action_table_row741 */,
-  783 /* Property action_table_row742 */,
-  784 /* Property action_table_row743 */,
-  785 /* Property action_table_row744 */,
-  786 /* Property action_table_row745 */,
-  787 /* Property action_table_row746 */,
-  788 /* Property action_table_row747 */,
-  789 /* Property action_table_row748 */,
-  790 /* Property action_table_row749 */,
-  791 /* Property action_table_row750 */,
-  792 /* Property action_table_row751 */,
-  793 /* Property action_table_row752 */,
-  794 /* Property action_table_row753 */,
-  795 /* Property action_table_row754 */,
-  796 /* Property action_table_row755 */,
-  797 /* Property action_table_row756 */,
-  798 /* Property action_table_row757 */,
-  799 /* Property action_table_row758 */,
-  800 /* Property action_table_row759 */,
-  801 /* Property action_table_row760 */,
-  802 /* Property action_table_row761 */,
-  803 /* Property action_table_row762 */,
-  804 /* Property action_table_row763 */,
-  805 /* Property action_table_row764 */,
-  806 /* Property action_table_row765 */,
-  807 /* Property action_table_row766 */,
-  808 /* Property action_table_row767 */,
-  809 /* Property action_table_row768 */,
-  810 /* Property action_table_row769 */,
-  811 /* Property action_table_row770 */,
-  812 /* Property action_table_row771 */,
-  813 /* Property action_table_row772 */,
-  814 /* Property action_table_row773 */,
-  815 /* Property action_table_row774 */,
-  816 /* Property action_table_row775 */,
-  817 /* Property action_table_row776 */,
-  818 /* Property action_table_row777 */,
-  819 /* Property action_table_row778 */,
-  820 /* Property action_table_row779 */,
-  821 /* Property action_table_row780 */,
-  822 /* Property action_table_row781 */,
-  823 /* Property action_table_row782 */,
-  824 /* Property action_table_row783 */,
-  825 /* Property action_table_row784 */,
-  826 /* Property action_table_row785 */,
-  827 /* Property action_table_row786 */,
-  828 /* Property action_table_row787 */,
-  829 /* Property action_table_row788 */,
-  830 /* Property action_table_row789 */,
-  831 /* Property action_table_row790 */,
-  832 /* Property action_table_row791 */,
-  833 /* Property action_table_row792 */,
-  834 /* Property action_table_row793 */,
-  835 /* Property action_table_row794 */,
-  836 /* Property action_table_row795 */,
-  837 /* Property action_table_row796 */,
-  838 /* Property action_table_row797 */,
-  839 /* Property action_table_row798 */,
-  840 /* Property action_table_row799 */,
-  841 /* Property action_table_row800 */,
-  842 /* Property action_table_row801 */,
-  843 /* Property action_table_row802 */,
-  844 /* Property action_table_row803 */,
-  845 /* Property action_table_row804 */,
-  846 /* Property action_table_row805 */,
-  847 /* Property action_table_row806 */,
-  848 /* Property action_table_row807 */,
-  849 /* Property action_table_row808 */,
-  850 /* Property action_table_row809 */,
-  851 /* Property action_table_row810 */,
-  852 /* Property action_table_row811 */,
-  853 /* Property action_table_row812 */,
-  854 /* Property action_table_row813 */,
-  855 /* Property action_table_row814 */,
-  856 /* Property action_table_row815 */,
-  857 /* Property action_table_row816 */,
-  858 /* Property action_table_row817 */,
-  859 /* Property action_table_row818 */,
-  860 /* Property action_table_row819 */,
-  861 /* Property action_table_row820 */,
-  862 /* Property action_table_row821 */,
-  863 /* Property action_table_row822 */,
-  864 /* Property action_table_row823 */,
-  865 /* Property action_table_row824 */,
-  866 /* Property action_table_row825 */,
-  867 /* Property action_table_row826 */,
-  868 /* Property action_table_row827 */,
-  869 /* Property action_table_row828 */,
-  870 /* Property action_table_row829 */,
-  871 /* Property action_table_row830 */,
-  872 /* Property action_table_row831 */,
-  873 /* Property action_table_row832 */,
-  874 /* Property action_table_row833 */,
-  875 /* Property action_table_row834 */,
-  876 /* Property action_table_row835 */,
-  877 /* Property action_table_row836 */,
-  878 /* Property action_table_row837 */,
-  879 /* Property action_table_row838 */,
-  880 /* Property action_table_row839 */,
-  881 /* Property action_table_row840 */,
-  882 /* Property action_table_row841 */,
-  883 /* Property action_table_row842 */,
-  884 /* Property action_table_row843 */,
-  885 /* Property action_table_row844 */,
-  886 /* Property action_table_row845 */,
-  887 /* Property action_table_row846 */,
-  888 /* Property action_table_row847 */,
-  889 /* Property action_table_row848 */,
-  890 /* Property action_table_row849 */,
-  891 /* Property action_table_row850 */,
-  892 /* Property action_table_row851 */,
-  893 /* Property action_table_row852 */,
-  894 /* Property action_table_row853 */,
-  895 /* Property action_table_row854 */,
-  896 /* Property action_table_row855 */,
-  897 /* Property action_table_row856 */,
-  898 /* Property action_table_row857 */,
-  899 /* Property action_table_row858 */,
-  900 /* Property action_table_row859 */,
-  901 /* Property action_table_row860 */,
-  902 /* Property action_table_row861 */,
-  903 /* Property action_table_row862 */,
-  904 /* Property action_table_row863 */,
-  905 /* Property action_table_row864 */,
-  906 /* Property action_table_row865 */,
-  907 /* Property action_table_row866 */,
-  908 /* Property action_table_row867 */,
-  909 /* Property action_table_row868 */,
-  910 /* Property action_table_row869 */,
-  911 /* Property action_table_row870 */,
-  912 /* Property action_table_row871 */,
-  913 /* Property action_table_row872 */,
-  914 /* Property action_table_row873 */,
-  915 /* Property action_table_row874 */,
-  916 /* Property action_table_row875 */,
-  917 /* Property action_table_row876 */,
-  918 /* Property action_table_row877 */,
-  919 /* Property action_table_row878 */,
-  920 /* Property action_table_row879 */,
-  921 /* Property action_table_row880 */,
-  922 /* Property action_table_row881 */,
-  923 /* Property action_table_row882 */,
-  924 /* Property action_table_row883 */,
-  925 /* Property action_table_row884 */,
-  926 /* Property action_table_row885 */,
-  927 /* Property action_table_row886 */,
-  928 /* Property action_table_row887 */,
-  929 /* Property action_table_row888 */,
-  930 /* Property action_table_row889 */,
-  931 /* Property action_table_row890 */,
-  932 /* Property action_table_row891 */,
-  933 /* Property action_table_row892 */,
-  934 /* Property action_table_row893 */,
-  935 /* Property action_table_row894 */,
-  936 /* Property action_table_row895 */,
-  937 /* Property action_table_row896 */,
-  938 /* Property action_table_row897 */,
-  939 /* Property action_table_row898 */,
-  940 /* Property action_table_row899 */,
-  941 /* Property action_table_row900 */,
-  942 /* Property action_table_row901 */,
-  943 /* Property action_table_row902 */,
-  944 /* Property action_table_row903 */,
-  945 /* Property action_table_row904 */,
-  946 /* Property action_table_row905 */,
-  947 /* Property action_table_row906 */,
-  948 /* Property action_table_row907 */,
-  949 /* Property action_table_row908 */,
-  950 /* Property action_table_row909 */,
-  951 /* Property action_table_row910 */,
-  952 /* Property action_table_row911 */,
-  953 /* Property action_table_row912 */,
-  954 /* Property action_table_row913 */,
-  955 /* Property action_table_row914 */,
-  956 /* Property action_table_row915 */,
-  957 /* Property action_table_row916 */,
-  958 /* Property action_table_row917 */,
-  959 /* Property action_table_row918 */,
-  960 /* Property action_table_row919 */,
-  961 /* Property action_table_row920 */,
-  962 /* Property action_table_row921 */,
-  963 /* Property action_table_row922 */,
-  964 /* Property action_table_row923 */,
-  965 /* Property action_table_row924 */,
-  966 /* Property action_table_row925 */,
-  967 /* Property action_table_row926 */,
-  968 /* Property action_table_row927 */,
-  969 /* Property action_table_row928 */,
-  970 /* Property action_table_row929 */,
-  971 /* Property action_table_row930 */,
-  972 /* Property action_table_row931 */,
-  973 /* Property action_table_row932 */,
-  974 /* Property action_table_row933 */,
-  975 /* Property action_table_row934 */,
-  976 /* Property action_table_row935 */,
-  977 /* Property action_table_row936 */,
-  978 /* Property action_table_row937 */,
-  979 /* Property action_table_row938 */,
-  980 /* Property action_table_row939 */,
-  981 /* Property action_table_row940 */,
-  982 /* Property action_table_row941 */,
-  983 /* Property action_table_row942 */,
-  984 /* Property action_table_row943 */,
-  985 /* Property action_table_row944 */,
-  986 /* Property action_table_row945 */,
-  987 /* Property action_table_row946 */,
-  988 /* Property action_table_row947 */,
-  989 /* Property action_table_row948 */,
-  990 /* Property action_table_row949 */,
-  991 /* Property action_table_row950 */,
-  992 /* Property action_table_row951 */,
-  993 /* Property action_table_row952 */,
-  994 /* Property action_table_row953 */,
-  995 /* Property action_table_row954 */,
-  996 /* Property action_table_row955 */,
-  997 /* Property action_table_row956 */,
-  998 /* Property action_table_row957 */,
-  999 /* Property action_table_row958 */,
-  1000 /* Property action_table_row959 */,
-  1001 /* Property action_table_row960 */,
-  1002 /* Property action_table_row961 */,
-  1003 /* Property action_table_row962 */,
-  1004 /* Property action_table_row963 */,
-  1005 /* Property action_table_row964 */,
-  1006 /* Property action_table_row965 */,
-  1007 /* Property action_table_row966 */,
-  1008 /* Property action_table_row967 */,
-  1009 /* Property action_table_row968 */,
-  1010 /* Property action_table_row969 */,
-  1011 /* Property action_table_row970 */,
-  1012 /* Property action_table_row971 */,
-  1013 /* Property action_table_row972 */,
-  1014 /* Property action_table_row973 */,
-  1015 /* Property action_table_row974 */,
-  1016 /* Property action_table_row975 */,
-  1017 /* Property action_table_row976 */,
-  1018 /* Property action_table_row977 */,
-  1019 /* Property action_table_row978 */,
-  1020 /* Property action_table_row979 */,
-  1021 /* Property action_table_row980 */,
-  1022 /* Property action_table_row981 */,
-  1023 /* Property action_table_row982 */,
-  1024 /* Property action_table_row983 */,
-  1025 /* Property action_table_row984 */,
-  1026 /* Property action_table_row985 */,
-  1027 /* Property action_table_row986 */,
-  1028 /* Property action_table_row987 */,
-  1029 /* Property action_table_row988 */,
-  1030 /* Property action_table_row989 */,
-  1031 /* Property action_table_row990 */,
-  1032 /* Property action_table_row991 */,
-  1033 /* Property action_table_row992 */,
-  1034 /* Property action_table_row993 */,
-  1035 /* Property action_table_row994 */,
-  1036 /* Property action_table_row995 */,
-  1037 /* Property action_table_row996 */,
-  1038 /* Property action_table_row997 */,
-  1039 /* Property action_table_row998 */,
-  1040 /* Property action_table_row999 */,
-  1041 /* Property action_table_row1000 */,
-  1042 /* Property action_table_row1001 */,
-  1043 /* Property action_table_row1002 */,
-  1044 /* Property action_table_row1003 */,
-  1045 /* Property action_table_row1004 */,
-  1046 /* Property action_table_row1005 */,
-  1047 /* Property action_table_row1006 */,
-  1048 /* Property action_table_row1007 */,
-  1049 /* Property action_table_row1008 */,
-  1050 /* Property action_table_row1009 */,
-  1051 /* Property action_table_row1010 */,
-  1052 /* Property action_table_row1011 */,
-  1053 /* Property action_table_row1012 */,
-  1054 /* Property action_table_row1013 */,
-  1055 /* Property action_table_row1014 */,
-  1056 /* Property action_table_row1015 */,
-  1057 /* Property action_table_row1016 */,
-  1058 /* Property action_table_row1017 */,
-  1059 /* Property action_table_row1018 */,
-  1060 /* Property action_table_row1019 */,
-  1061 /* Property action_table_row1020 */,
-  1062 /* Property action_table_row1021 */,
-  1063 /* Property action_table_row1022 */,
-  1064 /* Property action_table_row1023 */,
-  1065 /* Property action_table_row1024 */,
-  1066 /* Property action_table_row1025 */,
-  1067 /* Property action_table_row1026 */,
-  1068 /* Property action_table_row1027 */,
-  1069 /* Property action_table_row1028 */,
-  1070 /* Property action_table_row1029 */,
-  1071 /* Property action_table_row1030 */,
-  1072 /* Property action_table_row1031 */,
-  1073 /* Property action_table_row1032 */,
-  1074 /* Property action_table_row1033 */,
-  1075 /* Property action_table_row1034 */,
-  1076 /* Property action_table_row1035 */,
-  1077 /* Property action_table_row1036 */,
-  1078 /* Property action_table_row1037 */,
-  1079 /* Property action_table_row1038 */,
-  1080 /* Property action_table_row1039 */,
-  1081 /* Property action_table_row1040 */,
-  1082 /* Property action_table_row1041 */,
-  1083 /* Property action_table_row1042 */,
-  1084 /* Property action_table_row1043 */,
-  1085 /* Property action_table_row1044 */,
-  1086 /* Property action_table_row1045 */,
-  1087 /* Property action_table_row1046 */,
-  1088 /* Property action_table_row1047 */,
-  1089 /* Property action_table_row1048 */,
-  1090 /* Property action_table_row1049 */,
-  1091 /* Property action_table_row1050 */,
-  1092 /* Property action_table_row1051 */,
-  1093 /* Property action_table_row1052 */,
-  1094 /* Property action_table_row1053 */,
-  1095 /* Property action_table_row1054 */,
-  1096 /* Property action_table_row1055 */,
-  1097 /* Property action_table_row1056 */,
-  1098 /* Property action_table_row1057 */,
-  1099 /* Property action_table_row1058 */,
-  1100 /* Property action_table_row1059 */,
-  1101 /* Property action_table_row1060 */,
-  1102 /* Property action_table_row1061 */,
-  1103 /* Property action_table_row1062 */,
-  1104 /* Property action_table_row1063 */,
-  1105 /* Property action_table_row1064 */,
-  1106 /* Property action_table_row1065 */,
-  1107 /* Property action_table_row1066 */,
-  1108 /* Property action_table_row1067 */,
-  1109 /* Property action_table_row1068 */,
-  1110 /* Property action_table_row1069 */,
-  1111 /* Property action_table_row1070 */,
-  1112 /* Property action_table_row1071 */,
-  1113 /* Property action_table_row1072 */,
-  1114 /* Property action_table_row1073 */,
-  1115 /* Property action_table_row1074 */,
-  1116 /* Property action_table_row1075 */,
-  1117 /* Property action_table_row1076 */,
-  1118 /* Property action_table_row1077 */,
-  1119 /* Property action_table_row1078 */,
-  1120 /* Property action_table_row1079 */,
-  1121 /* Property action_table_row1080 */,
-  1122 /* Property action_table_row1081 */,
-  1123 /* Property action_table_row1082 */,
-  1124 /* Property action_table_row1083 */,
-  1125 /* Property action_table_row1084 */,
-  1126 /* Property action_table_row1085 */,
-  1127 /* Property action_table_row1086 */,
-  1128 /* Property action_table_row1087 */,
-  1129 /* Property action_table_row1088 */,
-  1130 /* Property action_table_row1089 */,
-  1131 /* Property action_table_row1090 */,
-  1132 /* Property action_table_row1091 */,
-  1133 /* Property action_table_row1092 */,
-  1134 /* Property action_table_row1093 */,
-  1135 /* Property action_table_row1094 */,
-  1136 /* Property action_table_row1095 */,
-  1137 /* Property action_table_row1096 */,
-  1138 /* Property action_table_row1097 */,
-  1139 /* Property action_table_row1098 */,
-  1140 /* Property action_table_row1099 */,
-  1141 /* Property action_table_row1100 */,
-  1142 /* Property action_table_row1101 */,
-  1143 /* Property action_table_row1102 */,
-  1144 /* Property action_table_row1103 */,
-  1145 /* Property action_table_row1104 */,
-  1146 /* Property action_table_row1105 */,
-  1147 /* Property action_table_row1106 */,
-  1148 /* Property action_table_row1107 */,
-  1149 /* Property action_table_row1108 */,
-  1150 /* Property action_table_row1109 */,
-  1151 /* Property action_table_row1110 */,
-  1152 /* Property action_table_row1111 */,
-  1153 /* Property action_table_row1112 */,
-  1154 /* Property action_table_row1113 */,
-  1155 /* Property action_table_row1114 */,
-  1156 /* Property action_table_row1115 */,
-  1157 /* Property action_table_row1116 */,
-  1158 /* Property action_table_row1117 */,
-  1159 /* Property action_table_row1118 */,
-  1160 /* Property action_table_row1119 */,
-  1161 /* Property action_table_row1120 */,
-  1162 /* Property action_table_row1121 */,
-  1163 /* Property action_table_row1122 */,
-  1164 /* Property action_table_row1123 */,
-  1165 /* Property action_table_row1124 */,
-  1166 /* Property action_table_row1125 */,
-  1167 /* Property action_table_row1126 */,
-  1168 /* Property action_table_row1127 */,
-  1169 /* Property action_table_row1128 */,
-  1170 /* Property action_table_row1129 */,
-  1171 /* Property action_table_row1130 */,
-  1172 /* Property action_table_row1131 */,
-  1173 /* Property action_table_row1132 */,
-  1174 /* Property action_table_row1133 */,
-  1175 /* Property action_table_row1134 */,
-  1176 /* Property action_table_row1135 */,
-  1177 /* Property action_table_row1136 */,
-  1178 /* Property action_table_row1137 */,
-  1179 /* Property action_table_row1138 */,
-  1180 /* Property action_table_row1139 */,
-  1181 /* Property action_table_row1140 */,
-  1182 /* Property action_table_row1141 */,
-  1183 /* Property action_table_row1142 */,
-  1184 /* Property action_table_row1143 */,
-  1185 /* Property action_table_row1144 */,
-  1186 /* Property action_table_row1145 */,
-  1187 /* Property action_table_row1146 */,
-  1188 /* Property action_table_row1147 */,
-  1189 /* Property action_table_row1148 */,
-  1190 /* Property action_table_row1149 */,
-  1191 /* Property action_table_row1150 */,
-  1192 /* Property action_table_row1151 */,
-  1193 /* Property action_table_row1152 */,
-  1194 /* Property action_table_row1153 */,
-  1195 /* Property action_table_row1154 */,
-  1196 /* Property action_table_row1155 */,
-  1197 /* Property action_table_row1156 */,
-  1198 /* Property action_table_row1157 */,
-  1199 /* Property action_table_row1158 */,
-  1200 /* Property action_table_row1159 */,
-  1201 /* Property action_table_row1160 */,
-  1202 /* Property action_table_row1161 */,
-  1203 /* Property action_table_row1162 */,
-  1204 /* Property action_table_row1163 */,
-  1205 /* Property action_table_row1164 */,
-  1206 /* Property action_table_row1165 */,
-  1207 /* Property action_table_row1166 */,
-  1208 /* Property action_table_row1167 */,
-  1209 /* Property action_table_row1168 */,
-  1210 /* Property action_table_row1169 */,
-  1211 /* Property action_table_row1170 */,
-  1212 /* Property action_table_row1171 */,
-  1213 /* Property action_table_row1172 */,
-  1214 /* Property action_table_row1173 */,
-  1215 /* Property action_table_row1174 */,
-  1216 /* Property action_table_row1175 */,
-  1217 /* Property action_table_row1176 */,
-  1218 /* Property action_table_row1177 */,
-  1219 /* Property action_table_row1178 */,
-  1220 /* Property action_table_row1179 */,
-  1221 /* Property action_table_row1180 */,
-  1222 /* Property action_table_row1181 */,
-  1223 /* Property action_table_row1182 */,
-  1224 /* Property action_table_row1183 */,
-  1225 /* Property action_table_row1184 */,
-  1226 /* Property action_table_row1185 */,
-  1227 /* Property action_table_row1186 */,
-  1228 /* Property action_table_row1187 */,
-  1229 /* Property action_table_row1188 */,
-  1230 /* Property action_table_row1189 */,
-  1231 /* Property action_table_row1190 */,
-  1232 /* Property action_table_row1191 */,
-  1233 /* Property action_table_row1192 */,
-  1234 /* Property action_table_row1193 */,
-  1235 /* Property action_table_row1194 */,
-  1236 /* Property action_table_row1195 */,
-  1237 /* Property action_table_row1196 */,
-  1238 /* Property action_table_row1197 */,
-  1239 /* Property action_table_row1198 */,
-  1240 /* Property action_table_row1199 */,
-  1241 /* Property action_table_row1200 */,
-  1242 /* Property action_table_row1201 */,
-  1243 /* Property action_table_row1202 */,
-  1244 /* Property action_table_row1203 */,
-  1245 /* Property action_table_row1204 */,
-  1246 /* Property action_table_row1205 */,
-  1247 /* Property action_table_row1206 */,
-  1248 /* Property action_table_row1207 */,
-  1249 /* Property action_table_row1208 */,
-  1250 /* Property action_table_row1209 */,
-  1251 /* Property action_table_row1210 */,
-  1252 /* Property action_table_row1211 */,
-  1253 /* Property action_table_row1212 */,
-  1254 /* Property action_table_row1213 */,
-  1255 /* Property action_table_row1214 */,
-  1256 /* Property action_table_row1215 */,
-  1257 /* Property action_table_row1216 */,
-  1258 /* Property action_table_row1217 */,
-  1259 /* Property action_table_row1218 */,
-  1260 /* Property action_table_row1219 */,
-  1261 /* Property action_table_row1220 */,
-  1262 /* Property action_table_row1221 */,
-  1263 /* Property action_table_row1222 */,
-  1264 /* Property action_table_row1223 */,
-  1265 /* Property action_table_row1224 */,
-  1266 /* Property action_table_row1225 */,
-  1267 /* Property action_table_row1226 */,
-  1268 /* Property action_table_row1227 */,
-  1269 /* Property action_table_row1228 */,
-  1270 /* Property action_table_row1229 */,
-  1271 /* Property action_table_row1230 */,
-  1272 /* Property action_table_row1231 */,
-  1273 /* Property action_table_row1232 */,
-  1274 /* Property action_table_row1233 */,
-  1275 /* Property action_table_row1234 */,
-  1276 /* Property action_table_row1235 */,
-  1277 /* Property action_table_row1236 */,
-  1278 /* Property action_table_row1237 */,
-  1279 /* Property action_table_row1238 */,
-  1280 /* Property action_table_row1239 */,
-  1281 /* Property action_table_row1240 */,
-  1282 /* Property action_table_row1241 */,
-  1283 /* Property action_table_row1242 */,
-  1284 /* Property action_table_row1243 */,
-  1285 /* Property action_table_row1244 */,
-  1286 /* Property action_table_row1245 */,
-  1287 /* Property action_table_row1246 */,
-  1288 /* Property action_table_row1247 */,
-  1289 /* Property action_table_row1248 */,
-  1290 /* Property action_table_row1249 */,
-  1291 /* Property action_table_row1250 */,
-  1292 /* Property action_table_row1251 */,
-  1293 /* Property action_table_row1252 */,
-  1294 /* Property action_table_row1253 */,
-  1295 /* Property action_table_row1254 */,
-  1296 /* Property action_table_row1255 */,
-  1297 /* Property action_table_row1256 */,
-  1298 /* Property action_table_row1257 */,
-  1299 /* Property action_table_row1258 */,
-  1300 /* Property action_table_row1259 */,
-  1301 /* Property action_table_row1260 */,
-  1302 /* Property action_table_row1261 */,
-  1303 /* Property action_table_row1262 */,
-  1304 /* Property action_table_row1263 */,
-  1305 /* Property action_table_row1264 */,
-  1306 /* Property action_table_row1265 */,
-  1307 /* Property action_table_row1266 */,
-  1308 /* Property action_table_row1267 */,
-  1309 /* Property action_table_row1268 */,
-  1310 /* Property action_table_row1269 */,
-  1311 /* Property action_table_row1270 */,
-  1312 /* Property action_table_row1271 */,
-  1313 /* Property action_table_row1272 */,
-  1314 /* Property action_table_row1273 */,
-  1315 /* Property action_table_row1274 */,
-  1316 /* Property action_table_row1275 */,
-  1317 /* Property action_table_row1276 */,
-  1318 /* Property action_table_row1277 */,
-  1319 /* Property action_table_row1278 */,
-  1320 /* Property action_table_row1279 */,
-  1321 /* Property action_table_row1280 */,
-  1322 /* Property action_table_row1281 */,
-  1323 /* Property action_table_row1282 */,
-  1324 /* Property action_table_row1283 */,
-  1325 /* Property action_table_row1284 */,
-  1326 /* Property action_table_row1285 */,
-  1327 /* Property action_table_row1286 */,
-  1328 /* Property action_table_row1287 */,
-  1329 /* Property action_table_row1288 */,
-  1330 /* Property action_table_row1289 */,
-  1331 /* Property action_table_row1290 */,
-  1332 /* Property action_table_row1291 */,
-  1333 /* Property action_table_row1292 */,
-  1334 /* Property action_table_row1293 */,
-  1335 /* Property action_table_row1294 */,
-  1336 /* Property action_table_row1295 */,
-  1337 /* Property action_table_row1296 */,
-  1338 /* Property action_table_row1297 */,
-  1339 /* Property action_table_row1298 */,
-  1340 /* Property action_table_row1299 */,
-  1341 /* Property action_table_row1300 */,
-  1342 /* Property action_table_row1301 */,
-  1343 /* Property build_goto_table */,
-  1344 /* Property error_messages */,
-  1345 /* Property errors */,
-  1346 /* Property init */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_mmloader = "./mmloader.nit";
-const int SFT_mmloader[53] = {
+const int SFT_mmloader[9] = {
   199 /* Id of ToolContext */,
   3 /* Color of ToolContext */,
-  14 /* Property _error_count */,
-  15 /* Property _warning_count */,
-  16 /* Property _paths */,
-  17 /* Property _loaders */,
-  18 /* Property _option_context */,
-  19 /* Property _opt_warn */,
-  20 /* Property _opt_path */,
-  21 /* Property _opt_log */,
-  22 /* Property _opt_only_metamodel */,
-  23 /* Property _opt_only_parse */,
-  24 /* Property _opt_help */,
-  25 /* Property _processing_modules */,
-  26 /* Property _path_dirs */,
-  66 /* Color of ToolContext */,
-  67 /* Property error_count */,
-  68 /* Property warning_count */,
-  69 /* Property error */,
-  70 /* Property warning */,
-  71 /* Property paths */,
-  72 /* Property option_context */,
-  73 /* Property opt_warn */,
-  74 /* Property opt_path */,
-  75 /* Property opt_log */,
-  76 /* Property opt_only_metamodel */,
-  77 /* Property opt_only_parse */,
-  78 /* Property opt_help */,
-  79 /* Property init */,
-  80 /* Property process_options */,
-  81 /* Property try_to_load */,
-  82 /* Property get_module_from_filename */,
-  83 /* Property get_module */,
-  84 /* Property directory_for */,
-  85 /* Property register_loader */,
-  87 /* Id of ModuleLoader */,
+  13 /* Group of ? */,
+  64 /* Group of ? */,
+  83 /* Id of ModuleLoader */,
   2 /* Color of ModuleLoader */,
-  40 /* Color of ModuleLoader */,
-  41 /* Property file_type */,
-  42 /* Property try_to_load_dir */,
-  43 /* Property can_handle */,
-  44 /* Property load_and_process_module */,
-  45 /* Property load_module */,
-  46 /* Property parse_file */,
-  47 /* Property process_metamodel */,
-  48 /* Property init */,
-  1 /* Property _filename */,
-  2 /* Property _mtime */,
-  41 /* Property filename */,
-  42 /* Property filename= */,
-  43 /* Property mtime */,
-  44 /* Property mtime= */,
-  45 /* Property import_supers_modules */,
+  40 /* Group of ? */,
+  1 /* Group of ? */,
+  41 /* Group of ? */,
 };
 const char *LOCATE_metamodel = "./metamodel//metamodel.nit";
 const char *LOCATE_vararg = "./metamodel//vararg.nit";
-const int SFT_vararg[7] = {
-  1 /* Property _vararg_rank */,
-  40 /* Property vararg_rank */,
-  41 /* Property vararg_rank= */,
-  42 /* Property has_vararg */,
-  43 /* Property adaptation_to */,
-  44 /* Property not_for_self */,
-  45 /* Property init */,
+const int SFT_vararg[2] = {
+  1 /* Group of ? */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_genericity = "./metamodel//genericity.nit";
-const int SFT_genericity[29] = {
-  1 /* Property _types */,
-  2 /* Property _formals_types */,
-  43 /* Property get_formal */,
-  44 /* Property register_formal */,
-  45 /* Property get_instantiate_type */,
-  46 /* Property formals_types */,
-  47 /* Property get_type */,
-  48 /* Property is_generic */,
-  46 /* Property is_generic */,
-  3523 /* Id of MMTypeGeneric */,
+const int SFT_genericity[11] = {
+  1 /* Group of ? */,
+  43 /* Group of ? */,
+  46 /* Group of ? */,
+  3535 /* Id of MMTypeGeneric */,
   4 /* Color of MMTypeGeneric */,
-  2 /* Property _params */,
-  60 /* Color of MMTypeGeneric */,
-  61 /* Property params */,
-  62 /* Property upcast_for */,
-  63 /* Property params_equals */,
-  64 /* Property to_s */,
-  65 /* Property is_subtype */,
-  66 /* Property init */,
-  3527 /* Id of MMTypeFormalParameter */,
+  2 /* Group of ? */,
+  60 /* Group of ? */,
+  3539 /* Id of MMTypeFormalParameter */,
   4 /* Color of MMTypeFormalParameter */,
-  3 /* Property _def_class */,
-  4 /* Property _position */,
-  62 /* Color of MMTypeFormalParameter */,
-  63 /* Property def_class */,
-  64 /* Property position */,
-  65 /* Property bound= */,
-  66 /* Property with_bound */,
-  67 /* Property init */,
+  3 /* Group of ? */,
+  62 /* Group of ? */,
 };
 const char *LOCATE_type_formal = "./metamodel//type_formal.nit";
-const int SFT_type_formal[9] = {
-  47 /* Property direct_type */,
-  2907 /* Id of MMTypeFormal */,
+const int SFT_type_formal[5] = {
+  47 /* Group of ? */,
+  2903 /* Id of MMTypeFormal */,
   3 /* Color of MMTypeFormal */,
-  1 /* Property _name */,
-  2 /* Property _bound */,
-  58 /* Color of MMTypeFormal */,
-  59 /* Property name */,
-  60 /* Property bound */,
-  61 /* Property init */,
+  1 /* Group of ? */,
+  58 /* Group of ? */,
 };
 const char *LOCATE_inheritance = "./metamodel//inheritance.nit";
-const int SFT_inheritance[41] = {
-  46 /* Property type_any */,
-  47 /* Property import_global_classes */,
-  48 /* Property import_local_classes */,
-  3 /* Property _direct_parents */,
-  4 /* Property _computing_super */,
-  49 /* Property compute_super_classes */,
-  50 /* Property compute_ancestors */,
-  51 /* Property inherit_global_properties */,
-  52 /* Property make_visible_an_inherited_global_property */,
-  53 /* Property add_direct_parent */,
-  54 /* Property computed_super_classes */,
-  55 /* Property computed_ancestors */,
-  56 /* Property ancestor_for */,
-  57 /* Property [] */,
-  58 /* Property add_default_any_class */,
-  59 /* Property add_super_classes */,
-  60 /* Property add_explicit_classes */,
-  61 /* Property compute_super_parents */,
-  62 /* Property build_ancestors */,
-  63 /* Property group_ancestors */,
-  64 /* Property merge_ancestors */,
-  65 /* Property inherit_local_property */,
-  46 /* Property inherit_global */,
-  40 /* Property add_in */,
-  2935 /* Id of MMImplicitLocalClass */,
+const int SFT_inheritance[18] = {
+  46 /* Group of ? */,
+  3 /* Group of ? */,
+  49 /* Group of ? */,
+  46 /* Group of ? */,
+  40 /* Group of ? */,
+  2931 /* Id of MMImplicitLocalClass */,
   3 /* Color of MMImplicitLocalClass */,
-  103 /* Color of MMImplicitLocalClass */,
-  104 /* Property init */,
-  2927 /* Id of MMRefineAncestor */,
+  103 /* Group of ? */,
+  2923 /* Id of MMRefineAncestor */,
   3 /* Color of MMRefineAncestor */,
-  3 /* Property _local_class */,
-  50 /* Color of MMRefineAncestor */,
-  51 /* Property init */,
-  2923 /* Id of MMSpecAncestor */,
+  3 /* Group of ? */,
+  50 /* Group of ? */,
+  2919 /* Id of MMSpecAncestor */,
   3 /* Color of MMSpecAncestor */,
-  50 /* Color of MMSpecAncestor */,
-  51 /* Property init */,
-  2939 /* Id of MMDefaultAncestor */,
+  50 /* Group of ? */,
+  2935 /* Id of MMDefaultAncestor */,
   3 /* Color of MMDefaultAncestor */,
-  50 /* Color of MMDefaultAncestor */,
-  51 /* Property init */,
+  50 /* Group of ? */,
 };
 const char *LOCATE_static_type = "./metamodel//static_type.nit";
-const int SFT_static_type[81] = {
-  5 /* Property _base_type_cache */,
-  6 /* Property _ancestors */,
-  66 /* Property get_type */,
-  67 /* Property add_ancestor */,
-  68 /* Property ancestors */,
-  69 /* Property ancestor */,
-  2 /* Property _signature */,
-  3 /* Property _signatures_cache */,
-  47 /* Property signature */,
-  48 /* Property signature= */,
-  49 /* Property signature_for */,
-  99 /* Id of MMSignature */,
+const int SFT_static_type[32] = {
+  5 /* Group of ? */,
+  66 /* Group of ? */,
+  2 /* Group of ? */,
+  47 /* Group of ? */,
+  95 /* Id of MMSignature */,
   2 /* Color of MMSignature */,
-  2 /* Property _recv */,
-  3 /* Property _params */,
-  4 /* Property _return_type */,
-  5 /* Property _closures */,
-  6 /* Property _not_for_self_cache */,
-  46 /* Color of MMSignature */,
-  47 /* Property recv */,
-  48 /* Property return_type */,
-  49 /* Property closures */,
-  50 /* Property arity */,
-  51 /* Property < */,
-  52 /* Property [] */,
-  53 /* Property adaptation_to */,
-  54 /* Property not_for_self */,
-  55 /* Property init */,
-  131 /* Id of MMClosure */,
+  2 /* Group of ? */,
+  46 /* Group of ? */,
+  127 /* Id of MMClosure */,
   2 /* Color of MMClosure */,
-  1 /* Property _signature */,
-  2 /* Property _is_break */,
-  3 /* Property _is_optional */,
-  40 /* Color of MMClosure */,
-  41 /* Property signature */,
-  42 /* Property is_break */,
-  43 /* Property is_optional */,
-  44 /* Property adaptation_to */,
-  45 /* Property init */,
-  46 /* Property not_for_self */,
-  135 /* Id of MMAncestor */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  131 /* Id of MMAncestor */,
   2 /* Color of MMAncestor */,
-  1 /* Property _stype */,
-  2 /* Property _inheriter */,
-  41 /* Color of MMAncestor */,
-  42 /* Property stype */,
-  43 /* Property stype= */,
-  44 /* Property inheriter */,
-  45 /* Property inheriter= */,
-  46 /* Property is_reffinement */,
-  47 /* Property is_specialisation */,
-  48 /* Property local_class */,
-  49 /* Property init */,
-  95 /* Id of MMType */,
+  1 /* Group of ? */,
+  41 /* Group of ? */,
+  91 /* Id of MMType */,
   2 /* Color of MMType */,
-  48 /* Color of MMType */,
-  49 /* Property module */,
-  50 /* Property local_class */,
-  51 /* Property < */,
-  52 /* Property is_supertype */,
-  53 /* Property for_module */,
-  54 /* Property adapt_to */,
-  55 /* Property upcast_for */,
-  56 /* Property not_for_self */,
-  57 /* Property init */,
-  2911 /* Id of MMTypeClass */,
+  48 /* Group of ? */,
+  2907 /* Id of MMTypeClass */,
   3 /* Color of MMTypeClass */,
-  1 /* Property _local_class */,
-  58 /* Color of MMTypeClass */,
-  59 /* Property init */,
-  3519 /* Id of MMTypeSimpleClass */,
+  1 /* Group of ? */,
+  58 /* Group of ? */,
+  3531 /* Id of MMTypeSimpleClass */,
   4 /* Color of MMTypeSimpleClass */,
-  60 /* Color of MMTypeSimpleClass */,
-  61 /* Property init */,
-  2903 /* Id of MMTypeNone */,
+  60 /* Group of ? */,
+  2899 /* Id of MMTypeNone */,
   3 /* Color of MMTypeNone */,
-  1 /* Property _module */,
-  58 /* Color of MMTypeNone */,
-  59 /* Property init */,
-  3 /* Property _type_none */,
-  49 /* Property type_none */,
+  1 /* Group of ? */,
+  58 /* Group of ? */,
+  3 /* Group of ? */,
+  49 /* Group of ? */,
 };
 const char *LOCATE_abstractmetamodel = "./metamodel//abstractmetamodel.nit";
-const int SFT_abstractmetamodel[181] = {
-  127 /* Id of MMContext */,
+const int SFT_abstractmetamodel[37] = {
+  123 /* Id of MMContext */,
   2 /* Color of MMContext */,
-  1 /* Property _module_hierarchy */,
-  2 /* Property _class_hierarchy */,
-  3 /* Property _global_classes */,
-  4 /* Property _modules */,
-  40 /* Color of MMContext */,
-  41 /* Property init */,
-  42 /* Property module_hierarchy */,
-  43 /* Property class_hierarchy */,
-  44 /* Property modules */,
-  45 /* Property add_module */,
-  46 /* Property add_global_class */,
-  47 /* Property add_local_class */,
-  123 /* Id of MMDirectory */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  119 /* Id of MMDirectory */,
   2 /* Color of MMDirectory */,
-  1 /* Property _name */,
-  2 /* Property _path */,
-  3 /* Property _parent */,
-  4 /* Property _owner */,
-  5 /* Property _modules */,
-  6 /* Property _dhe */,
-  40 /* Color of MMDirectory */,
-  41 /* Property name */,
-  42 /* Property path */,
-  43 /* Property parent */,
-  44 /* Property owner */,
-  45 /* Property owner= */,
-  46 /* Property modules */,
-  47 /* Property add_module */,
-  48 /* Property dhe */,
-  49 /* Property init */,
-  50 /* Property full_name_for */,
-  103 /* Id of MMModule */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  99 /* Id of MMModule */,
   2 /* Color of MMModule */,
-  4 /* Property _context */,
-  5 /* Property _name */,
-  6 /* Property _full_name */,
-  7 /* Property _directory */,
-  8 /* Property _mhe */,
-  9 /* Property _global_classes */,
-  10 /* Property _local_classes */,
-  11 /* Property _class_specialization_hierarchy */,
-  12 /* Property _intrude_modules */,
-  13 /* Property _public_modules */,
-  14 /* Property _private_modules */,
-  15 /* Property _explicit_imported_modules */,
-  16 /* Property _local_class_by_global */,
-  17 /* Property _global_class_by_name */,
-  50 /* Color of MMModule */,
-  51 /* Property context */,
-  52 /* Property name */,
-  53 /* Property full_name */,
-  54 /* Property directory */,
-  55 /* Property mhe */,
-  56 /* Property global_classes */,
-  57 /* Property local_classes */,
-  58 /* Property class_specialization_hierarchy */,
-  59 /* Property explicit_imported_modules */,
-  60 /* Property init */,
-  61 /* Property add_super_module */,
-  62 /* Property visibility_for */,
-  63 /* Property [] */,
-  64 /* Property add_local_class */,
-  65 /* Property class_by_name */,
-  66 /* Property has_global_class_named */,
-  67 /* Property global_class_named */,
-  68 /* Property set_supers_class */,
-  69 /* Property register_global_class */,
-  119 /* Id of MMGlobalClass */,
+  4 /* Group of ? */,
+  50 /* Group of ? */,
+  115 /* Id of MMGlobalClass */,
   2 /* Color of MMGlobalClass */,
-  1 /* Property _intro */,
-  2 /* Property _class_refinement_hierarchy */,
-  3 /* Property _is_interface */,
-  4 /* Property _is_abstract */,
-  5 /* Property _is_universal */,
-  6 /* Property _visibility_level */,
-  7 /* Property _mixin_of */,
-  44 /* Color of MMGlobalClass */,
-  45 /* Property intro */,
-  46 /* Property class_refinement_hierarchy */,
-  47 /* Property init */,
-  48 /* Property name */,
-  49 /* Property module */,
-  50 /* Property register_local_class */,
-  51 /* Property is_interface */,
-  52 /* Property is_interface= */,
-  53 /* Property is_abstract */,
-  54 /* Property is_abstract= */,
-  55 /* Property is_universal */,
-  56 /* Property is_universal= */,
-  57 /* Property visibility_level */,
-  58 /* Property visibility_level= */,
-  59 /* Property is_mixin */,
-  60 /* Property mixin_of */,
-  61 /* Property mixin_of= */,
-  111 /* Id of MMLocalClass */,
+  1 /* Group of ? */,
+  44 /* Group of ? */,
+  107 /* Id of MMLocalClass */,
   2 /* Color of MMLocalClass */,
-  7 /* Property _name */,
-  8 /* Property _arity */,
-  9 /* Property _module */,
-  10 /* Property _global */,
-  11 /* Property _crhe */,
-  12 /* Property _cshe */,
-  13 /* Property _che */,
-  14 /* Property _local_property_by_global */,
-  15 /* Property _global_properties */,
-  16 /* Property _properties_by_name */,
-  70 /* Color of MMLocalClass */,
-  71 /* Property name */,
-  72 /* Property arity */,
-  73 /* Property module */,
-  74 /* Property global */,
-  75 /* Property crhe */,
-  76 /* Property cshe */,
-  77 /* Property che */,
-  78 /* Property local_property_by_global */,
-  79 /* Property global_properties */,
-  80 /* Property properties_by_name */,
-  81 /* Property init */,
-  82 /* Property for_module */,
-  83 /* Property new_global */,
-  84 /* Property set_global */,
-  85 /* Property has_global_property_by_name */,
-  86 /* Property get_property_by_name */,
-  87 /* Property attribute */,
-  88 /* Property method */,
-  89 /* Property select_method */,
-  90 /* Property select_attribute */,
-  91 /* Property super_methods_named */,
-  92 /* Property register_local_property */,
-  93 /* Property register_global_property */,
-  94 /* Property [] */,
-  95 /* Property context */,
-  115 /* Id of MMGlobalProperty */,
+  7 /* Group of ? */,
+  70 /* Group of ? */,
+  111 /* Id of MMGlobalProperty */,
   2 /* Color of MMGlobalProperty */,
-  2 /* Property _intro */,
-  3 /* Property _property_hierarchy */,
-  4 /* Property _is_init */,
-  5 /* Property _visibility_level */,
-  47 /* Color of MMGlobalProperty */,
-  48 /* Property intro */,
-  49 /* Property local_class */,
-  50 /* Property property_hierarchy */,
-  51 /* Property init */,
-  52 /* Property add_local_property */,
-  53 /* Property is_attribute */,
-  54 /* Property is_method */,
-  55 /* Property is_init */,
-  56 /* Property is_init= */,
-  57 /* Property is_init_for */,
-  58 /* Property visibility_level */,
-  59 /* Property visibility_level= */,
-  107 /* Id of MMLocalProperty */,
+  1 /* Group of ? */,
+  44 /* Group of ? */,
+  103 /* Id of MMLocalProperty */,
   2 /* Color of MMLocalProperty */,
-  4 /* Property _name */,
-  5 /* Property _local_class */,
-  6 /* Property _global */,
-  7 /* Property _prhe */,
-  8 /* Property _need_super */,
-  50 /* Color of MMLocalProperty */,
-  51 /* Property name */,
-  52 /* Property local_class */,
-  53 /* Property global */,
-  54 /* Property prhe */,
-  55 /* Property module */,
-  56 /* Property full_name */,
-  57 /* Property set_global */,
-  58 /* Property new_global */,
-  59 /* Property need_super */,
-  60 /* Property need_super= */,
-  61 /* Property init */,
-  2947 /* Id of MMAttribute */,
+  4 /* Group of ? */,
+  50 /* Group of ? */,
+  2943 /* Id of MMAttribute */,
   3 /* Color of MMAttribute */,
-  63 /* Color of MMAttribute */,
-  2931 /* Id of MMMethod */,
+  63 /* Group of ? */,
+  2927 /* Id of MMMethod */,
   3 /* Color of MMMethod */,
-  66 /* Color of MMMethod */,
-  2943 /* Id of MMConcreteClass */,
+  66 /* Group of ? */,
+  2939 /* Id of MMConcreteClass */,
   3 /* Color of MMConcreteClass */,
-  103 /* Color of MMConcreteClass */,
+  103 /* Group of ? */,
 };
 const char *LOCATE_partial_order = "./metamodel//partial_order.nit";
-const int SFT_partial_order[49] = {
-  2859 /* Id of PartialOrder */,
+const int SFT_partial_order[8] = {
+  2851 /* Id of PartialOrder */,
   6 /* Color of PartialOrder */,
-  1 /* Property _elements */,
-  2 /* Property _elements_list */,
-  3 /* Property _roots */,
-  68 /* Color of PartialOrder */,
-  69 /* Property roots */,
-  70 /* Property [] */,
-  71 /* Property to_dot */,
-  72 /* Property to_dot_header */,
-  73 /* Property to_dot_node */,
-  74 /* Property to_dot_edge */,
-  75 /* Property select_smallests */,
-  76 /* Property add */,
-  77 /* Property has_all */,
-  78 /* Property new_poe */,
-  79 /* Property add_to_smallests */,
-  80 /* Property compute_smallers_for */,
-  81 /* Property init */,
-  59 /* Id of PartialOrderElement */,
+  1 /* Group of ? */,
+  68 /* Group of ? */,
+  55 /* Id of PartialOrderElement */,
   2 /* Color of PartialOrderElement */,
-  1 /* Property _order */,
-  2 /* Property _value */,
-  3 /* Property _rank */,
-  4 /* Property _direct_greaters */,
-  5 /* Property _direct_smallers */,
-  6 /* Property _greaters */,
-  7 /* Property _greaters_and_self_cache */,
-  8 /* Property _smallers_last_length */,
-  9 /* Property _smallers_cache */,
-  10 /* Property _linear_extension_cache */,
-  11 /* Property _reverse_linear_extension_cache */,
-  40 /* Color of PartialOrderElement */,
-  41 /* Property order */,
-  42 /* Property value */,
-  43 /* Property rank */,
-  44 /* Property direct_greaters */,
-  45 /* Property direct_smallers */,
-  46 /* Property greaters */,
-  47 /* Property greaters_and_self */,
-  48 /* Property smallers */,
-  49 /* Property linear_extension */,
-  50 /* Property reverse_linear_extension */,
-  51 /* Property < */,
-  52 /* Property <= */,
-  53 /* Property > */,
-  54 /* Property >= */,
-  55 /* Property register_direct_smallers */,
-  56 /* Property init */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_virtualtype = "./metamodel//virtualtype.nit";
-const int SFT_virtualtype[17] = {
-  46 /* Property is_virtual_type */,
-  2899 /* Id of MMTypeProperty */,
+const int SFT_virtualtype[10] = {
+  43 /* Group of ? */,
+  2895 /* Id of MMTypeProperty */,
   3 /* Color of MMTypeProperty */,
-  9 /* Property _stypes_cache */,
-  62 /* Color of MMTypeProperty */,
-  63 /* Property stype_for */,
-  64 /* Property real_stype_for */,
-  3515 /* Id of MMVirtualType */,
+  9 /* Group of ? */,
+  62 /* Group of ? */,
+  3527 /* Id of MMVirtualType */,
   4 /* Color of MMVirtualType */,
-  3 /* Property _property */,
-  4 /* Property _recv */,
-  62 /* Color of MMVirtualType */,
-  63 /* Property property */,
-  64 /* Property recv */,
-  65 /* Property init */,
-  96 /* Property virtual_type */,
-  97 /* Property select_virtual_type */,
+  3 /* Group of ? */,
+  62 /* Group of ? */,
+  96 /* Group of ? */,
 };
 const char *LOCATE_opts = "./../lib/opts.nit";
-const int SFT_opts[69] = {
-  75 /* Id of Option */,
+const int SFT_opts[31] = {
+  71 /* Id of Option */,
   2 /* Color of Option */,
-  1 /* Property _names */,
-  2 /* Property _helptext */,
-  3 /* Property _mandatory */,
-  4 /* Property _context */,
-  5 /* Property _value */,
-  6 /* Property _default_value */,
-  40 /* Color of Option */,
-  41 /* Property names */,
-  42 /* Property helptext */,
-  43 /* Property mandatory */,
-  44 /* Property mandatory= */,
-  45 /* Property context */,
-  46 /* Property context= */,
-  47 /* Property value */,
-  48 /* Property value= */,
-  49 /* Property default_value */,
-  50 /* Property default_value= */,
-  51 /* Property init_opt */,
-  52 /* Property add_aliases */,
-  53 /* Property pretty */,
-  54 /* Property pretty_default */,
-  55 /* Property read_param */,
-  2871 /* Id of OptionText */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  2863 /* Id of OptionText */,
   3 /* Color of OptionText */,
-  56 /* Color of OptionText */,
-  57 /* Property init */,
-  2879 /* Id of OptionBool */,
+  56 /* Group of ? */,
+  2871 /* Id of OptionBool */,
   3 /* Color of OptionBool */,
-  56 /* Color of OptionBool */,
-  57 /* Property init */,
-  2875 /* Id of OptionParameter */,
+  56 /* Group of ? */,
+  2867 /* Id of OptionParameter */,
   3 /* Color of OptionParameter */,
-  56 /* Color of OptionParameter */,
-  57 /* Property convert */,
-  58 /* Property init_opt */,
-  3487 /* Id of OptionString */,
+  56 /* Group of ? */,
+  3495 /* Id of OptionString */,
   4 /* Color of OptionString */,
-  59 /* Color of OptionString */,
-  60 /* Property init */,
-  3495 /* Id of OptionEnum */,
+  59 /* Group of ? */,
+  3503 /* Id of OptionEnum */,
   4 /* Color of OptionEnum */,
-  7 /* Property _enum */,
-  59 /* Color of OptionEnum */,
-  60 /* Property init */,
-  3491 /* Id of OptionInt */,
+  7 /* Group of ? */,
+  59 /* Group of ? */,
+  3499 /* Id of OptionInt */,
   4 /* Color of OptionInt */,
-  59 /* Color of OptionInt */,
-  60 /* Property init */,
-  3499 /* Id of OptionArray */,
+  59 /* Group of ? */,
+  3507 /* Id of OptionArray */,
   4 /* Color of OptionArray */,
-  7 /* Property _values */,
-  59 /* Color of OptionArray */,
-  60 /* Property init */,
-  71 /* Id of OptionContext */,
+  7 /* Group of ? */,
+  59 /* Group of ? */,
+  67 /* Id of OptionContext */,
   2 /* Color of OptionContext */,
-  1 /* Property _options */,
-  2 /* Property _rest */,
-  3 /* Property _optmap */,
-  40 /* Color of OptionContext */,
-  41 /* Property options */,
-  42 /* Property rest */,
-  43 /* Property usage */,
-  44 /* Property parse */,
-  45 /* Property parse_intern */,
-  46 /* Property add_option */,
-  47 /* Property init */,
-  48 /* Property build */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
 };
 const char *LOCATE_control_flow = "./syntax//control_flow.nit";
-const int SFT_control_flow[59] = {
-  91 /* Property do_control_flow */,
-  40 /* Property must_be_set */,
-  3583 /* Id of ControlFlowVisitor */,
+const int SFT_control_flow[32] = {
+  91 /* Group of ? */,
+  40 /* Group of ? */,
+  3595 /* Id of ControlFlowVisitor */,
   4 /* Color of ControlFlowVisitor */,
-  5 /* Property _once_count */,
-  6 /* Property _control_flow_ctx */,
-  68 /* Color of ControlFlowVisitor */,
-  69 /* Property once_count */,
-  70 /* Property once_count= */,
-  71 /* Property control_flow_ctx */,
-  72 /* Property control_flow_ctx= */,
-  73 /* Property check_is_set */,
-  74 /* Property mark_is_set */,
-  75 /* Property init */,
-  159 /* Id of ControlFlowContext */,
+  5 /* Group of ? */,
+  69 /* Group of ? */,
+  155 /* Id of ControlFlowContext */,
   2 /* Color of ControlFlowContext */,
-  1 /* Property _prev */,
-  2 /* Property _unreash */,
-  3 /* Property _already_unreash */,
-  4 /* Property _base_block */,
-  5 /* Property _set_variables */,
-  40 /* Color of ControlFlowContext */,
-  41 /* Property prev */,
-  42 /* Property unreash */,
-  43 /* Property unreash= */,
-  44 /* Property already_unreash */,
-  45 /* Property already_unreash= */,
-  46 /* Property base_block */,
-  47 /* Property base_block= */,
-  48 /* Property set_variables */,
-  49 /* Property is_set */,
-  50 /* Property sub */,
-  51 /* Property init */,
-  52 /* Property with_prev */,
-  59 /* Property accept_control_flow */,
-  93 /* Property accept_control_flow */,
-  95 /* Property accept_control_flow */,
-  77 /* Property accept_control_flow */,
-  77 /* Property accept_control_flow */,
-  3947 /* Id of ABlockControler */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  59 /* Group of ? */,
+  93 /* Group of ? */,
+  95 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  3955 /* Id of ABlockControler */,
   5 /* Color of ABlockControler */,
-  6 /* Property _block */,
-  77 /* Color of ABlockControler */,
-  78 /* Property block */,
-  79 /* Property accept_control_flow */,
-  79 /* Property accept_control_flow */,
-  77 /* Property accept_control_flow */,
-  117 /* Property accept_control_flow */,
-  3911 /* Id of AControlableBlock */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  79 /* Group of ? */,
+  79 /* Group of ? */,
+  77 /* Group of ? */,
+  117 /* Group of ? */,
+  3919 /* Id of AControlableBlock */,
   6 /* Color of AControlableBlock */,
-  87 /* Color of AControlableBlock */,
-  88 /* Property accept_control_flow */,
-  89 /* Property check_control_flow */,
-  82 /* Property accept_control_flow */,
-  87 /* Property accept_control_flow */,
-  89 /* Property accept_control_flow */,
-  85 /* Property accept_control_flow */,
-  92 /* Property accept_control_flow */,
-  80 /* Property accept_control_flow */,
+  87 /* Group of ? */,
+  82 /* Group of ? */,
+  87 /* Group of ? */,
+  89 /* Group of ? */,
+  85 /* Group of ? */,
+  92 /* Group of ? */,
+  80 /* Group of ? */,
 };
 const char *LOCATE_typing = "./syntax//typing.nit";
-const int SFT_typing[115] = {
-  92 /* Property do_typing */,
-  3039 /* Id of TypingVisitor */,
+const int SFT_typing[60] = {
+  92 /* Group of ? */,
+  3035 /* Id of TypingVisitor */,
   4 /* Color of TypingVisitor */,
-  5 /* Property _variable_ctx */,
-  6 /* Property _self_var */,
-  7 /* Property _top_block */,
-  8 /* Property _closure */,
-  9 /* Property _closure_break_stype */,
-  10 /* Property _break_list */,
-  11 /* Property _explicit_super_init_calls */,
-  12 /* Property _explicit_other_init_call */,
-  68 /* Color of TypingVisitor */,
-  69 /* Property variable_ctx */,
-  70 /* Property variable_ctx= */,
-  71 /* Property self_var */,
-  72 /* Property self_var= */,
-  73 /* Property top_block */,
-  74 /* Property top_block= */,
-  75 /* Property closure */,
-  76 /* Property closure= */,
-  77 /* Property closure_break_stype */,
-  78 /* Property closure_break_stype= */,
-  79 /* Property break_list */,
-  80 /* Property break_list= */,
-  81 /* Property explicit_super_init_calls */,
-  82 /* Property explicit_super_init_calls= */,
-  83 /* Property explicit_other_init_call */,
-  84 /* Property explicit_other_init_call= */,
-  85 /* Property init */,
-  86 /* Property get_default_constructor_for */,
+  5 /* Group of ? */,
+  69 /* Group of ? */,
   11 /* Id of VariableContext */,
   2 /* Color of VariableContext */,
-  1 /* Property _dico */,
-  40 /* Color of VariableContext */,
-  41 /* Property [] */,
-  42 /* Property add */,
-  43 /* Property stype */,
-  44 /* Property sub */,
-  45 /* Property sub_with */,
-  46 /* Property init */,
-  219 /* Id of SubVariableContext */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  211 /* Id of SubVariableContext */,
   3 /* Color of SubVariableContext */,
-  2 /* Property _prev */,
-  3 /* Property _variable */,
-  4 /* Property _var_type */,
-  47 /* Color of SubVariableContext */,
-  48 /* Property prev */,
-  49 /* Property with_prev */,
-  60 /* Property accept_typing */,
-  61 /* Property after_typing */,
-  75 /* Property accept_typing */,
-  100 /* Property accept_typing */,
-  11 /* Property _self_var */,
-  94 /* Property accept_typing */,
-  14 /* Property _super_init_calls */,
-  15 /* Property _explicit_super_init_calls */,
-  103 /* Property super_init_calls */,
-  104 /* Property explicit_super_init_calls */,
-  105 /* Property accept_typing */,
-  86 /* Property accept_typing */,
-  4 /* Property _stype */,
-  74 /* Property stype */,
-  4 /* Property _stype */,
-  5 /* Property _if_true_variable_ctx */,
-  73 /* Property is_implicit_self */,
-  74 /* Property is_self */,
-  75 /* Property its_variable */,
-  76 /* Property if_true_variable_ctx */,
-  82 /* Property accept_typing */,
-  8 /* Property _assign_method */,
-  82 /* Property do_lvalue_typing */,
-  83 /* Property assign_method */,
-  68 /* Property method_name */,
-  77 /* Property stype= */,
-  15 /* Property _init_in_superclass */,
-  99 /* Property init_in_superclass */,
-  11 /* Property _prop */,
-  12 /* Property _attr_type */,
-  89 /* Property prop */,
-  90 /* Property attr_type */,
-  91 /* Property do_typing */,
-  3983 /* Id of AAbsSendExpr */,
+  2 /* Group of ? */,
+  47 /* Group of ? */,
+  60 /* Group of ? */,
+  75 /* Group of ? */,
+  100 /* Group of ? */,
+  11 /* Group of ? */,
+  94 /* Group of ? */,
+  14 /* Group of ? */,
+  103 /* Group of ? */,
+  86 /* Group of ? */,
+  4 /* Group of ? */,
+  74 /* Group of ? */,
+  4 /* Group of ? */,
+  73 /* Group of ? */,
+  82 /* Group of ? */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  8 /* Group of ? */,
+  82 /* Group of ? */,
+  68 /* Group of ? */,
+  8 /* Group of ? */,
+  79 /* Group of ? */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  85 /* Group of ? */,
+  85 /* Group of ? */,
+  15 /* Group of ? */,
+  99 /* Group of ? */,
+  11 /* Group of ? */,
+  89 /* Group of ? */,
+  3991 /* Id of AAbsSendExpr */,
   5 /* Color of AAbsSendExpr */,
-  11 /* Property _prop_signature */,
-  12 /* Property _prop */,
-  13 /* Property _arguments */,
-  14 /* Property _return_type */,
-  89 /* Color of AAbsSendExpr */,
-  90 /* Property prop_signature */,
-  91 /* Property do_typing */,
-  92 /* Property get_property */,
-  93 /* Property get_signature */,
-  94 /* Property process_signature */,
-  95 /* Property process_closures */,
-  96 /* Property prop */,
-  97 /* Property arguments */,
-  98 /* Property return_type */,
-  4051 /* Id of ASuperInitCall */,
+  11 /* Group of ? */,
+  89 /* Group of ? */,
+  4059 /* Id of ASuperInitCall */,
   7 /* Color of ASuperInitCall */,
-  77 /* Color of ASuperInitCall */,
-  78 /* Property register_super_init_call */,
-  99 /* Property name */,
-  100 /* Property raw_arguments */,
-  101 /* Property closure_defs */,
-  102 /* Property do_all_typing */,
-  4191 /* Id of ASendReassignExpr */,
+  77 /* Group of ? */,
+  99 /* Group of ? */,
+  4199 /* Id of ASendReassignExpr */,
   9 /* Color of ASendReassignExpr */,
-  15 /* Property _read_prop */,
-  79 /* Color of ASendReassignExpr */,
-  80 /* Property read_prop */,
-  110 /* Property after_typing */,
-  111 /* Property variable_create */,
-  6 /* Property _accept_typing2 */,
-  79 /* Property accept_typing */,
-  80 /* Property accept_typing2 */,
+  15 /* Group of ? */,
+  79 /* Group of ? */,
+  110 /* Group of ? */,
+  6 /* Group of ? */,
+  79 /* Group of ? */,
 };
 const char *LOCATE_compiling = "./compiling//compiling.nit";
-const int SFT_compiling[3] = {
-  70 /* Property compile_prog_to_c */,
-  71 /* Property compile_main */,
-  72 /* Property compile_separate_module */,
+const int SFT_compiling[1] = {
+  70 /* Group of ? */,
 };
 const char *LOCATE_compiling_global = "./compiling//compiling_global.nit";
-const int SFT_compiling_global[142] = {
-  171 /* Id of ColorContext */,
+const int SFT_compiling_global[74] = {
+  167 /* Id of ColorContext */,
   2 /* Color of ColorContext */,
-  1 /* Property _colors */,
-  40 /* Color of ColorContext */,
-  41 /* Property color */,
-  42 /* Property has_color */,
-  43 /* Property color= */,
-  44 /* Property init */,
-  2979 /* Id of GlobalAnalysis */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  2971 /* Id of GlobalAnalysis */,
   3 /* Color of GlobalAnalysis */,
-  2 /* Property _compiled_classes */,
-  3 /* Property _module */,
-  4 /* Property _max_class_table_length */,
-  45 /* Color of GlobalAnalysis */,
-  46 /* Property compiled_classes */,
-  47 /* Property module */,
-  48 /* Property max_class_table_length */,
-  49 /* Property max_class_table_length= */,
-  50 /* Property init */,
-  1 /* Property _global_analysis */,
-  40 /* Property global_analysis */,
-  41 /* Property global_analysis= */,
-  3003 /* Id of CompiledClass */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  2995 /* Id of CompiledClass */,
   3 /* Color of CompiledClass */,
-  2 /* Property _local_class */,
-  3 /* Property _id */,
-  4 /* Property _class_table */,
-  5 /* Property _instance_table */,
-  6 /* Property _class_layout */,
-  7 /* Property _instance_layout */,
-  45 /* Color of CompiledClass */,
-  46 /* Property local_class */,
-  47 /* Property id */,
-  48 /* Property id= */,
-  49 /* Property class_table */,
-  50 /* Property class_table= */,
-  51 /* Property instance_table */,
-  52 /* Property instance_table= */,
-  53 /* Property class_layout */,
-  54 /* Property class_layout= */,
-  55 /* Property instance_layout */,
-  56 /* Property instance_layout= */,
-  57 /* Property init */,
-  1 /* Property _pos_of */,
-  40 /* Property pos_of */,
-  41 /* Property pos_of= */,
-  19 /* Property _base_attr_pos */,
-  20 /* Property _class_color_pos */,
-  21 /* Property _class_layout */,
-  22 /* Property _instance_layout */,
-  104 /* Property base_attr_pos */,
-  105 /* Property class_color_pos */,
-  106 /* Property class_layout */,
-  107 /* Property instance_layout */,
-  108 /* Property build_layout_in */,
-  18 /* Property _local_table */,
-  73 /* Property local_analysis */,
-  74 /* Property global_analysis */,
-  75 /* Property append_to_table */,
-  76 /* Property build_tables */,
-  77 /* Property colorize */,
-  78 /* Property free_color */,
-  79 /* Property compile_tables_to_c */,
-  80 /* Property declare_class_tables_to_c */,
-  81 /* Property compile_main_part */,
-  82 /* Property compile_mod_to_c */,
-  83 /* Property compile_local_table_to_c */,
-  19 /* Id of TableElt */,
-  2 /* Color of TableElt */,
-  40 /* Color of TableElt */,
-  41 /* Property is_related_to */,
-  42 /* Property length */,
-  43 /* Property item */,
-  44 /* Property compile_to_c */,
-  45 /* Property init */,
-  2951 /* Id of LocalTableElt */,
-  3 /* Color of LocalTableElt */,
-  46 /* Color of LocalTableElt */,
-  47 /* Property symbol */,
-  48 /* Property value */,
-  3043 /* Id of TableEltPropPos */,
-  4 /* Color of TableEltPropPos */,
-  1 /* Property _property */,
-  49 /* Color of TableEltPropPos */,
-  50 /* Property init */,
-  3615 /* Id of TableEltMethPos */,
-  5 /* Color of TableEltMethPos */,
-  51 /* Color of TableEltMethPos */,
-  52 /* Property init */,
-  3611 /* Id of TableEltSuperPos */,
-  5 /* Color of TableEltSuperPos */,
-  51 /* Color of TableEltSuperPos */,
-  52 /* Property init */,
-  3631 /* Id of TableEltAttrPos */,
-  5 /* Color of TableEltAttrPos */,
-  51 /* Color of TableEltAttrPos */,
-  52 /* Property init */,
-  3047 /* Id of TableEltClassPos */,
-  4 /* Color of TableEltClassPos */,
-  1 /* Property _local_class */,
-  49 /* Color of TableEltClassPos */,
-  50 /* Property init */,
-  3623 /* Id of TableEltClassIdPos */,
-  5 /* Color of TableEltClassIdPos */,
-  51 /* Color of TableEltClassIdPos */,
-  52 /* Property init */,
-  3619 /* Id of TableEltClassInitTablePos */,
-  5 /* Color of TableEltClassInitTablePos */,
-  51 /* Color of TableEltClassInitTablePos */,
-  52 /* Property init */,
-  3627 /* Id of TableEltClassColorPos */,
-  5 /* Color of TableEltClassColorPos */,
-  51 /* Color of TableEltClassColorPos */,
-  52 /* Property init */,
-  3051 /* Id of TableEltBaseAttrPos */,
-  4 /* Color of TableEltBaseAttrPos */,
-  1 /* Property _local_class */,
-  49 /* Color of TableEltBaseAttrPos */,
-  50 /* Property init */,
-  211 /* Id of TableEltComposite */,
-  3 /* Color of TableEltComposite */,
-  1 /* Property _table */,
-  2 /* Property _cc */,
-  3 /* Property _offsets */,
-  46 /* Color of TableEltComposite */,
-  47 /* Property add */,
-  48 /* Property init */,
-  215 /* Id of TableEltClassSelfId */,
-  3 /* Color of TableEltClassSelfId */,
-  46 /* Color of TableEltClassSelfId */,
-  47 /* Property init */,
-  207 /* Id of TableEltVftPointer */,
-  3 /* Color of TableEltVftPointer */,
-  46 /* Color of TableEltVftPointer */,
-  47 /* Property init */,
-  3015 /* Id of ClassSorter */,
+  2 /* Group of ? */,
+  45 /* Group of ? */,
+  19 /* Group of ? */,
+  104 /* Group of ? */,
+  18 /* Group of ? */,
+  73 /* Group of ? */,
+  191 /* Id of AbsTableElt */,
+  2 /* Color of AbsTableElt */,
+  40 /* Group of ? */,
+  207 /* Id of TableElt */,
+  3 /* Color of TableElt */,
+  43 /* Group of ? */,
+  2883 /* Id of ModuleTableElt */,
+  4 /* Color of ModuleTableElt */,
+  48 /* Group of ? */,
+  3519 /* Id of ModuleTableEltGroup */,
+  5 /* Color of ModuleTableEltGroup */,
+  1 /* Group of ? */,
+  50 /* Group of ? */,
+  3043 /* Id of TableEltProp */,
+  4 /* Color of TableEltProp */,
+  1 /* Group of ? */,
+  48 /* Group of ? */,
+  3627 /* Id of TableEltMeth */,
+  5 /* Color of TableEltMeth */,
+  50 /* Group of ? */,
+  3623 /* Id of TableEltSuper */,
+  5 /* Color of TableEltSuper */,
+  50 /* Group of ? */,
+  3639 /* Id of TableEltAttr */,
+  5 /* Color of TableEltAttr */,
+  50 /* Group of ? */,
+  3027 /* Id of AbsTableEltClass */,
+  5 /* Color of AbsTableEltClass */,
+  1 /* Group of ? */,
+  50 /* Group of ? */,
+  3059 /* Id of TableEltClass */,
+  6 /* Color of TableEltClass */,
+  53 /* Group of ? */,
+  3055 /* Id of TableEltClassId */,
+  3 /* Color of TableEltClassId */,
+  43 /* Group of ? */,
+  3631 /* Id of TableEltClassInitTable */,
+  7 /* Color of TableEltClassInitTable */,
+  54 /* Group of ? */,
+  3635 /* Id of TableEltClassColor */,
+  7 /* Color of TableEltClassColor */,
+  54 /* Group of ? */,
+  3047 /* Id of TableEltComposite */,
+  4 /* Color of TableEltComposite */,
+  1 /* Group of ? */,
+  48 /* Group of ? */,
+  3051 /* Id of TableEltClassSelfId */,
+  4 /* Color of TableEltClassSelfId */,
+  48 /* Group of ? */,
+  3039 /* Id of TableEltVftPointer */,
+  4 /* Color of TableEltVftPointer */,
+  48 /* Group of ? */,
+  3007 /* Id of ClassSorter */,
   3 /* Color of ClassSorter */,
-  47 /* Color of ClassSorter */,
-  48 /* Property init */,
-  98 /* Property compare */,
-  99 /* Property declare_tables_to_c */,
-  100 /* Property compile_tables_to_c */,
+  47 /* Group of ? */,
+  98 /* Group of ? */,
 };
 const char *LOCATE_compiling_methods = "./compiling//compiling_methods.nit";
-const int SFT_compiling_methods[93] = {
-  2 /* Property _cfc */,
-  3 /* Property _nmc */,
-  4 /* Property _out_contexts */,
-  42 /* Property compile_stmt */,
-  43 /* Property compile_expr */,
-  44 /* Property ensure_var */,
-  45 /* Property add_assignment */,
-  46 /* Property cfc */,
-  47 /* Property cfc= */,
-  48 /* Property nmc */,
-  49 /* Property nmc= */,
-  50 /* Property out_contexts */,
-  51 /* Property out_contexts= */,
-  52 /* Property printf_locate_error */,
-  53 /* Property init */,
-  54 /* Property invoke_super_init_calls_after */,
-  179 /* Id of CFunctionContext */,
+const int SFT_compiling_methods[27] = {
+  2 /* Group of ? */,
+  42 /* Group of ? */,
+  175 /* Id of CFunctionContext */,
   2 /* Color of CFunctionContext */,
-  1 /* Property _visitor */,
-  2 /* Property _variable_index */,
-  3 /* Property _variable_index_max */,
-  4 /* Property _varnames */,
-  5 /* Property _in_closure */,
-  6 /* Property _closurevariable_index */,
-  40 /* Color of CFunctionContext */,
-  41 /* Property visitor */,
-  42 /* Property in_closure */,
-  43 /* Property in_closure= */,
-  44 /* Property varname */,
-  45 /* Property get_var */,
-  46 /* Property register_variable */,
-  47 /* Property register_closurevariable */,
-  48 /* Property variable */,
-  49 /* Property free_var */,
-  50 /* Property generate_var_decls */,
-  51 /* Property init */,
-  79 /* Id of NitMethodContext */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  75 /* Id of NitMethodContext */,
   2 /* Color of NitMethodContext */,
-  1 /* Property _method */,
-  2 /* Property _method_params */,
-  3 /* Property _return_label */,
-  4 /* Property _break_label */,
-  5 /* Property _continue_label */,
-  6 /* Property _return_value */,
-  7 /* Property _break_value */,
-  8 /* Property _continue_value */,
-  40 /* Color of NitMethodContext */,
-  41 /* Property method */,
-  42 /* Property method_params */,
-  43 /* Property method_params= */,
-  44 /* Property return_label */,
-  45 /* Property return_label= */,
-  46 /* Property break_label */,
-  47 /* Property break_label= */,
-  48 /* Property continue_label */,
-  49 /* Property continue_label= */,
-  50 /* Property return_value */,
-  51 /* Property return_value= */,
-  52 /* Property break_value */,
-  53 /* Property break_value= */,
-  54 /* Property continue_value */,
-  55 /* Property continue_value= */,
-  56 /* Property init */,
-  4 /* Property _ctypename */,
-  48 /* Property ctypename */,
-  49 /* Property ctypename= */,
-  62 /* Property compile_call */,
-  63 /* Property compile_constructor_call */,
-  64 /* Property compile_super_call */,
-  65 /* Property closure_cname */,
-  62 /* Property compile_access */,
-  40 /* Property compile_property_to_c */,
-  67 /* Property decl_csignature */,
-  68 /* Property do_compile_inside */,
-  40 /* Property compile_cast */,
-  41 /* Property compile_type_check */,
-  75 /* Property do_compile_inside */,
-  68 /* Property compile_parameters */,
-  68 /* Property compile_expr */,
-  69 /* Property prepare_compile_stmt */,
-  70 /* Property compile_stmt */,
-  86 /* Property compile_inside_block */,
-  6 /* Property _cstring */,
-  7 /* Property _cstring_length */,
-  77 /* Property string_text */,
-  78 /* Property compute_string_info */,
-  77 /* Property propname */,
-  77 /* Property compile_closure */,
-  78 /* Property do_compile_inside */,
-  9 /* Property _cname */,
-  90 /* Property cname */,
-  91 /* Property decl_csignature */,
-  68 /* Property do_compile_inside */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  4 /* Group of ? */,
+  48 /* Group of ? */,
+  62 /* Group of ? */,
+  62 /* Group of ? */,
+  40 /* Group of ? */,
+  67 /* Group of ? */,
+  40 /* Group of ? */,
+  75 /* Group of ? */,
+  68 /* Group of ? */,
+  68 /* Group of ? */,
+  86 /* Group of ? */,
+  6 /* Group of ? */,
+  77 /* Group of ? */,
+  77 /* Group of ? */,
+  9 /* Group of ? */,
+  90 /* Group of ? */,
+  68 /* Group of ? */,
 };
 const char *LOCATE_compiling_base = "./compiling//compiling_base.nit";
-const int SFT_compiling_base[89] = {
-  5 /* Property _global */,
-  6 /* Property _attr_sim */,
-  7 /* Property _compdir */,
-  8 /* Property _clibdir */,
-  9 /* Property _bindir */,
-  10 /* Property _output_file */,
-  11 /* Property _boost */,
-  12 /* Property _no_cc */,
-  13 /* Property _ext_prefix */,
-  48 /* Property global */,
-  49 /* Property global= */,
-  50 /* Property attr_sim */,
-  51 /* Property attr_sim= */,
-  52 /* Property compdir */,
-  53 /* Property compdir= */,
-  54 /* Property clibdir */,
-  55 /* Property clibdir= */,
-  56 /* Property bindir */,
-  57 /* Property bindir= */,
-  58 /* Property output_file */,
-  59 /* Property output_file= */,
-  60 /* Property boost */,
-  61 /* Property boost= */,
-  62 /* Property no_cc */,
-  63 /* Property no_cc= */,
-  64 /* Property ext_prefix */,
-  65 /* Property ext_prefix= */,
-  163 /* Id of CompilerVisitor */,
+const int SFT_compiling_base[21] = {
+  5 /* Group of ? */,
+  48 /* Group of ? */,
+  159 /* Id of CompilerVisitor */,
   2 /* Color of CompilerVisitor */,
-  5 /* Property _number_cpt */,
-  6 /* Property _module */,
-  7 /* Property _ctx */,
-  8 /* Property _indent_level */,
-  9 /* Property _tc */,
-  55 /* Color of CompilerVisitor */,
-  56 /* Property add_decl */,
-  57 /* Property add_instr */,
-  58 /* Property new_number */,
-  59 /* Property indent */,
-  60 /* Property unindent */,
-  61 /* Property module */,
-  62 /* Property module= */,
-  63 /* Property ctx */,
-  64 /* Property ctx= */,
-  65 /* Property indent_level */,
-  66 /* Property indent_level= */,
-  67 /* Property tc */,
-  68 /* Property tc= */,
-  69 /* Property init */,
-  183 /* Id of CContext */,
+  5 /* Group of ? */,
+  55 /* Group of ? */,
+  179 /* Id of CContext */,
   2 /* Color of CContext */,
-  1 /* Property _decls */,
-  2 /* Property _instrs */,
-  40 /* Color of CContext */,
-  41 /* Property decls */,
-  42 /* Property instrs */,
-  43 /* Property append */,
-  44 /* Property merge */,
-  45 /* Property init */,
-  42 /* Property meth_call */,
-  43 /* Property attr_access */,
-  44 /* Property color_id */,
-  40 /* Property id_id */,
-  41 /* Property color_id */,
-  42 /* Property init_table_pos_id */,
-  17 /* Property _primitive_info_cache */,
-  18 /* Property _primitive_info_b */,
-  101 /* Property primitive_info */,
-  102 /* Property primitive_ctypes */,
-  51 /* Id of PrimitiveInfo */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  40 /* Group of ? */,
+  40 /* Group of ? */,
+  17 /* Group of ? */,
+  101 /* Group of ? */,
+  47 /* Id of PrimitiveInfo */,
   2 /* Color of PrimitiveInfo */,
-  1 /* Property _name */,
-  2 /* Property _tagged */,
-  3 /* Property _cname */,
-  40 /* Color of PrimitiveInfo */,
-  41 /* Property name */,
-  42 /* Property name= */,
-  43 /* Property tagged */,
-  44 /* Property tagged= */,
-  45 /* Property cname */,
-  46 /* Property cname= */,
-  47 /* Property init */,
-  42 /* Property cname */,
-  43 /* Property default_cvalue */,
-  44 /* Property boxtype */,
-  45 /* Property unboxtype */,
-  1 /* Property _cname_cache */,
-  41 /* Property cname */,
-  42 /* Property color_id_for_super */,
+  1 /* Group of ? */,
+  40 /* Group of ? */,
+  42 /* Group of ? */,
+  1 /* Group of ? */,
+  41 /* Group of ? */,
 };
 const char *LOCATE_utils = "./utils.nit";
-const int SFT_utils[2] = {
-  13 /* Property cmangle */,
-  14 /* Property cmangle_table */,
+const int SFT_utils[1] = {
+  13 /* Group of ? */,
 };
 const char *LOCATE_nitc = "./nitc.nit";
-const int SFT_nitc[23] = {
-  3651 /* Id of NitCompiler */,
+const int SFT_nitc[4] = {
+  3659 /* Id of NitCompiler */,
   5 /* Color of NitCompiler */,
-  27 /* Property _opt_output */,
-  28 /* Property _opt_boost */,
-  29 /* Property _opt_no_cc */,
-  30 /* Property _opt_attr_sim */,
-  31 /* Property _opt_global */,
-  32 /* Property _opt_clibdir */,
-  33 /* Property _opt_bindir */,
-  34 /* Property _opt_compdir */,
-  35 /* Property _opt_extension_prefix */,
-  91 /* Color of NitCompiler */,
-  92 /* Property opt_output */,
-  93 /* Property opt_boost */,
-  94 /* Property opt_no_cc */,
-  95 /* Property opt_attr_sim */,
-  96 /* Property opt_global */,
-  97 /* Property opt_clibdir */,
-  98 /* Property opt_bindir */,
-  99 /* Property opt_compdir */,
-  100 /* Property opt_extension_prefix */,
-  101 /* Property init */,
-  102 /* Property process_options */,
-};
-const classtable_elt_t VFT_NitCompiler[103] = {
-  {(bigint) 3651 /* 0: Identity */},
+  26 /* Group of ? */,
+  89 /* Group of ? */,
+};
+const classtable_elt_t VFT_NitCompiler[100] = {
+  {(bigint) 3659 /* 0: Identity */},
   {(bigint) 3 /* 1: NitCompiler < Object: superclass typecheck marker */},
-  {(bigint) 127 /* 2: NitCompiler < MMContext: superclass typecheck marker */},
+  {(bigint) 123 /* 2: NitCompiler < MMContext: superclass typecheck marker */},
   {(bigint) 199 /* 3: NitCompiler < ToolContext: superclass typecheck marker */},
-  {(bigint) 3607 /* 4: NitCompiler < AbstractCompiler: superclass typecheck marker */},
-  {(bigint) 3651 /* 5: NitCompiler < NitCompiler: superclass typecheck marker */},
+  {(bigint) 3619 /* 4: NitCompiler < AbstractCompiler: superclass typecheck marker */},
+  {(bigint) 3659 /* 5: NitCompiler < NitCompiler: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -7922,8 +4093,6 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) abstractmetamodel___MMContext___add_local_class},
   {(bigint) compiling_base___ToolContext___global},
   {(bigint) compiling_base___ToolContext___global__eq},
-  {(bigint) compiling_base___ToolContext___attr_sim},
-  {(bigint) compiling_base___ToolContext___attr_sim__eq},
   {(bigint) compiling_base___ToolContext___compdir},
   {(bigint) compiling_base___ToolContext___compdir__eq},
   {(bigint) compiling_base___ToolContext___clibdir},
@@ -7938,7 +4107,7 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) compiling_base___ToolContext___no_cc__eq},
   {(bigint) compiling_base___ToolContext___ext_prefix},
   {(bigint) compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 1 /* 66: NitCompiler < ToolContext: superclass init_table position */},
+  {(bigint) 1 /* 64: NitCompiler < ToolContext: superclass init_table position */},
   {(bigint) mmloader___ToolContext___error_count},
   {(bigint) mmloader___ToolContext___warning_count},
   {(bigint) mmloader___ToolContext___error},
@@ -7958,16 +4127,15 @@ const classtable_elt_t VFT_NitCompiler[103] = {
   {(bigint) mmloader___ToolContext___get_module},
   {(bigint) mmloader___ToolContext___directory_for},
   {(bigint) mmloader___ToolContext___register_loader},
-  {(bigint) 0 /* 86: NitCompiler < AbstractCompiler: superclass init_table position */},
+  {(bigint) 0 /* 84: NitCompiler < AbstractCompiler: superclass init_table position */},
   {(bigint) abstracttool___AbstractCompiler___init},
   {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
   {(bigint) nitc___NitCompiler___perform_work},
   {(bigint) abstracttool___AbstractCompiler___dump_context_info},
-  {(bigint) 4 /* 91: NitCompiler < NitCompiler: superclass init_table position */},
+  {(bigint) 4 /* 89: NitCompiler < NitCompiler: superclass init_table position */},
   {(bigint) nitc___NitCompiler___opt_output},
   {(bigint) nitc___NitCompiler___opt_boost},
   {(bigint) nitc___NitCompiler___opt_no_cc},
-  {(bigint) nitc___NitCompiler___opt_attr_sim},
   {(bigint) nitc___NitCompiler___opt_global},
   {(bigint) nitc___NitCompiler___opt_clibdir},
   {(bigint) nitc___NitCompiler___opt_bindir},
@@ -7982,41 +4150,39 @@ const classtable_elt_t VFT_NitCompiler[103] = {
 /* 3: Attribute NitCompiler::_global_classes */
 /* 4: Attribute NitCompiler::_modules */
 /* 5: Attribute NitCompiler::_global */
-/* 6: Attribute NitCompiler::_attr_sim */
-/* 7: Attribute NitCompiler::_compdir */
-/* 8: Attribute NitCompiler::_clibdir */
-/* 9: Attribute NitCompiler::_bindir */
-/* 10: Attribute NitCompiler::_output_file */
-/* 11: Attribute NitCompiler::_boost */
-/* 12: Attribute NitCompiler::_no_cc */
-/* 13: Attribute NitCompiler::_ext_prefix */
-/* 14: Attribute NitCompiler::_error_count */
-/* 15: Attribute NitCompiler::_warning_count */
-/* 16: Attribute NitCompiler::_paths */
-/* 17: Attribute NitCompiler::_loaders */
-/* 18: Attribute NitCompiler::_option_context */
-/* 19: Attribute NitCompiler::_opt_warn */
-/* 20: Attribute NitCompiler::_opt_path */
-/* 21: Attribute NitCompiler::_opt_log */
-/* 22: Attribute NitCompiler::_opt_only_metamodel */
-/* 23: Attribute NitCompiler::_opt_only_parse */
-/* 24: Attribute NitCompiler::_opt_help */
-/* 25: Attribute NitCompiler::_processing_modules */
-/* 26: Attribute NitCompiler::_path_dirs */
-/* 27: Attribute NitCompiler::_opt_output */
-/* 28: Attribute NitCompiler::_opt_boost */
-/* 29: Attribute NitCompiler::_opt_no_cc */
-/* 30: Attribute NitCompiler::_opt_attr_sim */
-/* 31: Attribute NitCompiler::_opt_global */
-/* 32: Attribute NitCompiler::_opt_clibdir */
-/* 33: Attribute NitCompiler::_opt_bindir */
-/* 34: Attribute NitCompiler::_opt_compdir */
-/* 35: Attribute NitCompiler::_opt_extension_prefix */
+/* 6: Attribute NitCompiler::_compdir */
+/* 7: Attribute NitCompiler::_clibdir */
+/* 8: Attribute NitCompiler::_bindir */
+/* 9: Attribute NitCompiler::_output_file */
+/* 10: Attribute NitCompiler::_boost */
+/* 11: Attribute NitCompiler::_no_cc */
+/* 12: Attribute NitCompiler::_ext_prefix */
+/* 13: Attribute NitCompiler::_error_count */
+/* 14: Attribute NitCompiler::_warning_count */
+/* 15: Attribute NitCompiler::_paths */
+/* 16: Attribute NitCompiler::_loaders */
+/* 17: Attribute NitCompiler::_option_context */
+/* 18: Attribute NitCompiler::_opt_warn */
+/* 19: Attribute NitCompiler::_opt_path */
+/* 20: Attribute NitCompiler::_opt_log */
+/* 21: Attribute NitCompiler::_opt_only_metamodel */
+/* 22: Attribute NitCompiler::_opt_only_parse */
+/* 23: Attribute NitCompiler::_opt_help */
+/* 24: Attribute NitCompiler::_processing_modules */
+/* 25: Attribute NitCompiler::_path_dirs */
+/* 26: Attribute NitCompiler::_opt_output */
+/* 27: Attribute NitCompiler::_opt_boost */
+/* 28: Attribute NitCompiler::_opt_no_cc */
+/* 29: Attribute NitCompiler::_opt_global */
+/* 30: Attribute NitCompiler::_opt_clibdir */
+/* 31: Attribute NitCompiler::_opt_bindir */
+/* 32: Attribute NitCompiler::_opt_compdir */
+/* 33: Attribute NitCompiler::_opt_extension_prefix */
 val_t NEW_NitCompiler(void) {
-  val_t variable[55];
+  val_t variable[52];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 36);
+  obj = alloc(sizeof(val_t) * 34);
   obj->vft = (classtable_elt_t*)VFT_NitCompiler;
   variable[0] = OBJ2VAL(obj);
   variable[1] = NEW_PartialOrder_partial_order___PartialOrder___init(); /*new PartialOrder[MMModule]*/
@@ -8036,45 +4202,45 @@ val_t NEW_NitCompiler(void) {
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
   variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[10]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[9] = NEW_OptionBool_opts___OptionBool___init(variable[7], variable[8]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_warn(obj) = variable[9];
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
   variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[12]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[13]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
   variable[12] = NEW_OptionArray_opts___OptionArray___init(variable[10], variable[11]); /*new OptionArray*/
   ATTR_mmloader___ToolContext____opt_path(obj) = variable[12];
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
   variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[15]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
   variable[15] = NEW_OptionBool_opts___OptionBool___init(variable[13], variable[14]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_log(obj) = variable[15];
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
   variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17], variable[18]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/;
   variable[18] = NEW_OptionBool_opts___OptionBool___init(variable[16], variable[17]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable[18];
   variable[19] = NEW_String_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
   variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20], variable[21]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
   variable[21] = NEW_OptionBool_opts___OptionBool___init(variable[19], variable[20]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable[21];
   variable[22] = NEW_String_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
   variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[24] = NEW_String_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[24]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
   variable[25] = NEW_String_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[25]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
   variable[26] = NEW_String_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[26]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[26]) /*AbstractArray::add*/;
   variable[24] = NEW_OptionBool_opts___OptionBool___init(variable[22], variable[23]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_help(obj) = variable[24];
   variable[25] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[Symbol]*/
@@ -8082,69 +4248,62 @@ val_t NEW_NitCompiler(void) {
   variable[26] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[String, MMDirectory]*/
   ATTR_mmloader___ToolContext____path_dirs(obj) = variable[26];
   ATTR_compiling_base___ToolContext____global(obj) =  TAG_Bool(false);
-  ATTR_compiling_base___ToolContext____attr_sim(obj) =  TAG_Bool(false);
   ATTR_compiling_base___ToolContext____boost(obj) =  TAG_Bool(false);
   ATTR_compiling_base___ToolContext____no_cc(obj) =  TAG_Bool(false);
   variable[27] = NEW_String_string___String___with_native(BOX_NativeString("Output file"), TAG_Int(11)); /*new String*/
   variable[28] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[29] = NEW_String_string___String___with_native(BOX_NativeString("-o"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28], variable[29]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28], variable[29]) /*AbstractArray::add*/;
   variable[30] = NEW_String_string___String___with_native(BOX_NativeString("--output"), TAG_Int(8)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28], variable[30]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28], variable[30]) /*AbstractArray::add*/;
   variable[29] = NEW_OptionString_opts___OptionString___init(variable[27], variable[28]); /*new OptionString*/
   ATTR_nitc___NitCompiler____opt_output(obj) = variable[29];
   variable[30] = NEW_String_string___String___with_native(BOX_NativeString("Optimize compilation"), TAG_Int(20)); /*new String*/
   variable[31] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[32] = NEW_String_string___String___with_native(BOX_NativeString("-O"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31], variable[32]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31], variable[32]) /*AbstractArray::add*/;
   variable[33] = NEW_String_string___String___with_native(BOX_NativeString("--boost"), TAG_Int(7)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31], variable[33]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31], variable[33]) /*AbstractArray::add*/;
   variable[32] = NEW_OptionBool_opts___OptionBool___init(variable[30], variable[31]); /*new OptionBool*/
   ATTR_nitc___NitCompiler____opt_boost(obj) = variable[32];
   variable[33] = NEW_String_string___String___with_native(BOX_NativeString("Do not invoke C compiler"), TAG_Int(24)); /*new String*/
   variable[34] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[35] = NEW_String_string___String___with_native(BOX_NativeString("--no_cc"), TAG_Int(7)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[35]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[35]) /*AbstractArray::add*/;
   variable[35] = NEW_OptionBool_opts___OptionBool___init(variable[33], variable[34]); /*new OptionBool*/
   ATTR_nitc___NitCompiler____opt_no_cc(obj) = variable[35];
-  variable[36] = NEW_String_string___String___with_native(BOX_NativeString("Use attribute simulation"), TAG_Int(24)); /*new String*/
+  variable[36] = NEW_String_string___String___with_native(BOX_NativeString("Use global compilation"), TAG_Int(22)); /*new String*/
   variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  variable[38] = NEW_String_string___String___with_native(BOX_NativeString("--attr-sim"), TAG_Int(10)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[38]) /*AbstractArray::add*/;
+  variable[38] = NEW_String_string___String___with_native(BOX_NativeString("--global"), TAG_Int(8)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[38]) /*AbstractArray::add*/;
   variable[38] = NEW_OptionBool_opts___OptionBool___init(variable[36], variable[37]); /*new OptionBool*/
-  ATTR_nitc___NitCompiler____opt_attr_sim(obj) = variable[38];
-  variable[39] = NEW_String_string___String___with_native(BOX_NativeString("Use global compilation"), TAG_Int(22)); /*new String*/
+  ATTR_nitc___NitCompiler____opt_global(obj) = variable[38];
+  variable[39] = NEW_String_string___String___with_native(BOX_NativeString("NIT C library directory"), TAG_Int(23)); /*new String*/
   variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  variable[41] = NEW_String_string___String___with_native(BOX_NativeString("--global"), TAG_Int(8)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40], variable[41]) /*AbstractArray::add*/;
-  variable[41] = NEW_OptionBool_opts___OptionBool___init(variable[39], variable[40]); /*new OptionBool*/
-  ATTR_nitc___NitCompiler____opt_global(obj) = variable[41];
-  variable[42] = NEW_String_string___String___with_native(BOX_NativeString("NIT C library directory"), TAG_Int(23)); /*new String*/
+  variable[41] = NEW_String_string___String___with_native(BOX_NativeString("--clibdir"), TAG_Int(9)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40], variable[41]) /*AbstractArray::add*/;
+  variable[41] = NEW_OptionString_opts___OptionString___init(variable[39], variable[40]); /*new OptionString*/
+  ATTR_nitc___NitCompiler____opt_clibdir(obj) = variable[41];
+  variable[42] = NEW_String_string___String___with_native(BOX_NativeString("NIT tools directory"), TAG_Int(19)); /*new String*/
   variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  variable[44] = NEW_String_string___String___with_native(BOX_NativeString("--clibdir"), TAG_Int(9)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[44]) /*AbstractArray::add*/;
+  variable[44] = NEW_String_string___String___with_native(BOX_NativeString("--bindir"), TAG_Int(8)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[44]) /*AbstractArray::add*/;
   variable[44] = NEW_OptionString_opts___OptionString___init(variable[42], variable[43]); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_clibdir(obj) = variable[44];
-  variable[45] = NEW_String_string___String___with_native(BOX_NativeString("NIT tools directory"), TAG_Int(19)); /*new String*/
+  ATTR_nitc___NitCompiler____opt_bindir(obj) = variable[44];
+  variable[45] = NEW_String_string___String___with_native(BOX_NativeString("Intermediate compilation directory"), TAG_Int(34)); /*new String*/
   variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  variable[47] = NEW_String_string___String___with_native(BOX_NativeString("--bindir"), TAG_Int(8)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[47]) /*AbstractArray::add*/;
+  variable[47] = NEW_String_string___String___with_native(BOX_NativeString("--compdir"), TAG_Int(9)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[47]) /*AbstractArray::add*/;
   variable[47] = NEW_OptionString_opts___OptionString___init(variable[45], variable[46]); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_bindir(obj) = variable[47];
-  variable[48] = NEW_String_string___String___with_native(BOX_NativeString("Intermediate compilation directory"), TAG_Int(34)); /*new String*/
-  variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
-  variable[50] = NEW_String_string___String___with_native(BOX_NativeString("--compdir"), TAG_Int(9)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[50]) /*AbstractArray::add*/;
+  ATTR_nitc___NitCompiler____opt_compdir(obj) = variable[47];
+  variable[48] = NEW_String_string___String___with_native(BOX_NativeString("Append prefix to file extension"), TAG_Int(31)); /*new String*/
+  variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
+  variable[50] = NEW_String_string___String___with_native(BOX_NativeString("-p"), TAG_Int(2)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[50]) /*AbstractArray::add*/;
+  variable[51] = NEW_String_string___String___with_native(BOX_NativeString("--extension-prefix"), TAG_Int(18)); /*new String*/
+  CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[51]) /*AbstractArray::add*/;
   variable[50] = NEW_OptionString_opts___OptionString___init(variable[48], variable[49]); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_compdir(obj) = variable[50];
-  variable[51] = NEW_String_string___String___with_native(BOX_NativeString("Append prefix to file extension"), TAG_Int(31)); /*new String*/
-  variable[52] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
-  variable[53] = NEW_String_string___String___with_native(BOX_NativeString("-p"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52], variable[53]) /*AbstractArray::add*/;
-  variable[54] = NEW_String_string___String___with_native(BOX_NativeString("--extension-prefix"), TAG_Int(18)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52], variable[54]) /*AbstractArray::add*/;
-  variable[53] = NEW_OptionString_opts___OptionString___init(variable[51], variable[52]); /*new OptionString*/
-  ATTR_nitc___NitCompiler____opt_extension_prefix(obj) = variable[53];
+  ATTR_nitc___NitCompiler____opt_extension_prefix(obj) = variable[50];
   return OBJ2VAL(obj);
 }
 val_t NEW_NitCompiler_nitc___NitCompiler___init() {
@@ -8154,9 +4313,9 @@ val_t NEW_NitCompiler_nitc___NitCompiler___init() {
   return self;
 }
 const classtable_elt_t VFT_Sys[48] = {
-  {(bigint) 23 /* 0: Identity */},
+  {(bigint) 19 /* 0: Identity */},
   {(bigint) 3 /* 1: Sys < Object: superclass typecheck marker */},
-  {(bigint) 23 /* 2: Sys < Sys: superclass typecheck marker */},
+  {(bigint) 19 /* 2: Sys < Sys: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8273,11 +4432,11 @@ val_t NEW_Object(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_Comparable[58] = {
-  {(bigint) 167 /* 0: Identity */},
+  {(bigint) 163 /* 0: Identity */},
   {(bigint) 3 /* 1: Comparable < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 167 /* 4: Comparable < Comparable: superclass typecheck marker */},
+  {(bigint) 163 /* 4: Comparable < Comparable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8343,11 +4502,11 @@ val_t NEW_Comparable(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_Discrete[64] = {
-  {(bigint) 2991 /* 0: Identity */},
+  {(bigint) 2983 /* 0: Identity */},
   {(bigint) 3 /* 1: Discrete < Object: superclass typecheck marker */},
-  {(bigint) 2991 /* 2: Discrete < Discrete: superclass typecheck marker */},
+  {(bigint) 2983 /* 2: Discrete < Discrete: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 167 /* 4: Discrete < Comparable: superclass typecheck marker */},
+  {(bigint) 163 /* 4: Discrete < Comparable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8537,9 +4696,9 @@ val_t BOX_Float(float val) {
 const classtable_elt_t VFT_Int[79] = {
   {(bigint) -33 /* 0: Identity */},
   {(bigint) 3 /* 1: Int < Object: superclass typecheck marker */},
-  {(bigint) 2991 /* 2: Int < Discrete: superclass typecheck marker */},
+  {(bigint) 2983 /* 2: Int < Discrete: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 167 /* 4: Int < Comparable: superclass typecheck marker */},
+  {(bigint) 163 /* 4: Int < Comparable: superclass typecheck marker */},
   {(bigint) -33 /* 5: Int < Int: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8619,9 +4778,9 @@ const classtable_elt_t VFT_Int[79] = {
 const classtable_elt_t VFT_Char[69] = {
   {(bigint) -37 /* 0: Identity */},
   {(bigint) 3 /* 1: Char < Object: superclass typecheck marker */},
-  {(bigint) 2991 /* 2: Char < Discrete: superclass typecheck marker */},
-  {(bigint) 55 /* 3: Char < Pattern: superclass typecheck marker */},
-  {(bigint) 167 /* 4: Char < Comparable: superclass typecheck marker */},
+  {(bigint) 2983 /* 2: Char < Discrete: superclass typecheck marker */},
+  {(bigint) 51 /* 3: Char < Pattern: superclass typecheck marker */},
+  {(bigint) 163 /* 4: Char < Comparable: superclass typecheck marker */},
   {(bigint) -37 /* 5: Char < Char: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8739,12 +4898,12 @@ val_t BOX_Pointer(void * val) {
   return OBJ2VAL(box);
 }
 const classtable_elt_t VFT_Collection[68] = {
-  {(bigint) 175 /* 0: Identity */},
+  {(bigint) 171 /* 0: Identity */},
   {(bigint) 3 /* 1: Collection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: Collection < Collection: superclass typecheck marker */},
+  {(bigint) 171 /* 5: Collection < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8819,13 +4978,13 @@ val_t NEW_Collection(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_NaiveCollection[69] = {
-  {(bigint) 2887 /* 0: Identity */},
+  {(bigint) 2879 /* 0: Identity */},
   {(bigint) 3 /* 1: NaiveCollection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: NaiveCollection < Collection: superclass typecheck marker */},
-  {(bigint) 2887 /* 6: NaiveCollection < NaiveCollection: superclass typecheck marker */},
+  {(bigint) 171 /* 5: NaiveCollection < Collection: superclass typecheck marker */},
+  {(bigint) 2879 /* 6: NaiveCollection < NaiveCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8900,9 +5059,9 @@ val_t NEW_NaiveCollection(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_Iterator[45] = {
-  {(bigint) 143 /* 0: Identity */},
+  {(bigint) 139 /* 0: Identity */},
   {(bigint) 3 /* 1: Iterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: Iterator < Iterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: Iterator < Iterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -8957,13 +5116,13 @@ val_t NEW_Iterator(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_Container[72] = {
-  {(bigint) 2999 /* 0: Identity */},
+  {(bigint) 2991 /* 0: Identity */},
   {(bigint) 3 /* 1: Container < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: Container < Collection: superclass typecheck marker */},
-  {(bigint) 2999 /* 6: Container < Container: superclass typecheck marker */},
+  {(bigint) 171 /* 5: Container < Collection: superclass typecheck marker */},
+  {(bigint) 2991 /* 6: Container < Container: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9048,10 +5207,10 @@ val_t NEW_Container_abstract_collection___Container___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ContainerIterator[47] = {
-  {(bigint) 2995 /* 0: Identity */},
+  {(bigint) 2987 /* 0: Identity */},
   {(bigint) 3 /* 1: ContainerIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: ContainerIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2995 /* 3: ContainerIterator < ContainerIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: ContainerIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2987 /* 3: ContainerIterator < ContainerIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9116,13 +5275,13 @@ val_t NEW_ContainerIterator_abstract_collection___ContainerIterator___init(val_t
   return self;
 }
 const classtable_elt_t VFT_RemovableCollection[72] = {
-  {(bigint) 231 /* 0: Identity */},
+  {(bigint) 223 /* 0: Identity */},
   {(bigint) 3 /* 1: RemovableCollection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: RemovableCollection < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: RemovableCollection < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 171 /* 5: RemovableCollection < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: RemovableCollection < RemovableCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9200,14 +5359,14 @@ val_t NEW_RemovableCollection(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_SimpleCollection[75] = {
-  {(bigint) 3395 /* 0: Identity */},
+  {(bigint) 3403 /* 0: Identity */},
   {(bigint) 3 /* 1: SimpleCollection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: SimpleCollection < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: SimpleCollection < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: SimpleCollection < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 171 /* 5: SimpleCollection < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: SimpleCollection < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: SimpleCollection < SimpleCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9287,14 +5446,14 @@ val_t NEW_SimpleCollection(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_Set[75] = {
-  {(bigint) 3643 /* 0: Identity */},
+  {(bigint) 3651 /* 0: Identity */},
   {(bigint) 3 /* 1: Set < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3643 /* 4: Set < Set: superclass typecheck marker */},
-  {(bigint) 175 /* 5: Set < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: Set < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: Set < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3651 /* 4: Set < Set: superclass typecheck marker */},
+  {(bigint) 171 /* 5: Set < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: Set < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: Set < SimpleCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9374,15 +5533,15 @@ val_t NEW_Set(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_Map[82] = {
-  {(bigint) 3511 /* 0: Identity */},
+  {(bigint) 3523 /* 0: Identity */},
   {(bigint) 3 /* 1: Map < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: Map < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: Map < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 171 /* 5: Map < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: Map < RemovableCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3511 /* 8: Map < Map: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: Map < Map: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9468,10 +5627,10 @@ val_t NEW_Map(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_MapIterator[48] = {
-  {(bigint) 2895 /* 0: Identity */},
+  {(bigint) 2891 /* 0: Identity */},
   {(bigint) 3 /* 1: MapIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: MapIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2895 /* 3: MapIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: MapIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2891 /* 3: MapIterator < MapIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9528,16 +5687,16 @@ val_t NEW_MapIterator(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_IndexedCollection[92] = {
-  {(bigint) 3671 /* 0: Identity */},
+  {(bigint) 3679 /* 0: Identity */},
   {(bigint) 3 /* 1: IndexedCollection < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: IndexedCollection < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: IndexedCollection < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: IndexedCollection < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3511 /* 8: IndexedCollection < Map: superclass typecheck marker */},
-  {(bigint) 3671 /* 9: IndexedCollection < IndexedCollection: superclass typecheck marker */},
+  {(bigint) 171 /* 5: IndexedCollection < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: IndexedCollection < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: IndexedCollection < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: IndexedCollection < Map: superclass typecheck marker */},
+  {(bigint) 3679 /* 9: IndexedCollection < IndexedCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9632,11 +5791,11 @@ val_t NEW_IndexedCollection(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_IndexedIterator[50] = {
-  {(bigint) 3551 /* 0: Identity */},
+  {(bigint) 3563 /* 0: Identity */},
   {(bigint) 3 /* 1: IndexedIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: IndexedIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2895 /* 3: IndexedIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3551 /* 4: IndexedIterator < IndexedIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: IndexedIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2891 /* 3: IndexedIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 3563 /* 4: IndexedIterator < IndexedIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9694,15 +5853,15 @@ val_t NEW_IndexedIterator(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_CoupleMap[82] = {
-  {(bigint) 3687 /* 0: Identity */},
+  {(bigint) 3695 /* 0: Identity */},
   {(bigint) 3 /* 1: CoupleMap < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3687 /* 4: CoupleMap < CoupleMap: superclass typecheck marker */},
-  {(bigint) 175 /* 5: CoupleMap < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: CoupleMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3695 /* 4: CoupleMap < CoupleMap: superclass typecheck marker */},
+  {(bigint) 171 /* 5: CoupleMap < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: CoupleMap < RemovableCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3511 /* 8: CoupleMap < Map: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: CoupleMap < Map: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9788,11 +5947,11 @@ val_t NEW_CoupleMap(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_CoupleMapIterator[50] = {
-  {(bigint) 3579 /* 0: Identity */},
+  {(bigint) 3591 /* 0: Identity */},
   {(bigint) 3 /* 1: CoupleMapIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: CoupleMapIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2895 /* 3: CoupleMapIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3579 /* 4: CoupleMapIterator < CoupleMapIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: CoupleMapIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2891 /* 3: CoupleMapIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 3591 /* 4: CoupleMapIterator < CoupleMapIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9857,10 +6016,10 @@ val_t NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init(val_t
   return self;
 }
 const classtable_elt_t VFT_Couple[53] = {
-  {(bigint) 155 /* 0: Identity */},
+  {(bigint) 151 /* 0: Identity */},
   {(bigint) 3 /* 1: Couple < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 155 /* 3: Couple < Couple: superclass typecheck marker */},
+  {(bigint) 151 /* 3: Couple < Couple: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -9932,17 +6091,17 @@ val_t NEW_Couple_abstract_collection___Couple___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AbstractArray[101] = {
-  {(bigint) 4027 /* 0: Identity */},
+  {(bigint) 4035 /* 0: Identity */},
   {(bigint) 3 /* 1: AbstractArray < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: AbstractArray < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: AbstractArray < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: AbstractArray < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3511 /* 8: AbstractArray < Map: superclass typecheck marker */},
-  {(bigint) 3671 /* 9: AbstractArray < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 4027 /* 10: AbstractArray < AbstractArray: superclass typecheck marker */},
+  {(bigint) 171 /* 5: AbstractArray < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: AbstractArray < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: AbstractArray < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: AbstractArray < Map: superclass typecheck marker */},
+  {(bigint) 3679 /* 9: AbstractArray < IndexedCollection: superclass typecheck marker */},
+  {(bigint) 4035 /* 10: AbstractArray < AbstractArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -10053,17 +6212,17 @@ val_t NEW_AbstractArray_array___AbstractArray___init() {
   return self;
 }
 const classtable_elt_t VFT_Array[101] = {
-  {(bigint) 4167 /* 0: Identity */},
+  {(bigint) 4175 /* 0: Identity */},
   {(bigint) 3 /* 1: Array < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 2: Array < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 4167 /* 3: Array < Array: superclass typecheck marker */},
+  {(bigint) 183 /* 2: Array < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 4175 /* 3: Array < Array: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: Array < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: Array < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: Array < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3511 /* 8: Array < Map: superclass typecheck marker */},
-  {(bigint) 3671 /* 9: Array < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 4027 /* 10: Array < AbstractArray: superclass typecheck marker */},
+  {(bigint) 171 /* 5: Array < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: Array < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: Array < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: Array < Map: superclass typecheck marker */},
+  {(bigint) 3679 /* 9: Array < IndexedCollection: superclass typecheck marker */},
+  {(bigint) 4035 /* 10: Array < AbstractArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -10202,12 +6361,12 @@ val_t NEW_Array_array___Array___with_native(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ArrayIterator[52] = {
-  {(bigint) 3691 /* 0: Identity */},
+  {(bigint) 3699 /* 0: Identity */},
   {(bigint) 3 /* 1: ArrayIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: ArrayIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2895 /* 3: ArrayIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3551 /* 4: ArrayIterator < IndexedIterator: superclass typecheck marker */},
-  {(bigint) 3691 /* 5: ArrayIterator < ArrayIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: ArrayIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2891 /* 3: ArrayIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 3563 /* 4: ArrayIterator < IndexedIterator: superclass typecheck marker */},
+  {(bigint) 3699 /* 5: ArrayIterator < ArrayIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10275,15 +6434,15 @@ val_t NEW_ArrayIterator_array___ArrayIterator___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ArraySet[80] = {
-  {(bigint) 4019 /* 0: Identity */},
+  {(bigint) 4027 /* 0: Identity */},
   {(bigint) 3 /* 1: ArraySet < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3643 /* 4: ArraySet < Set: superclass typecheck marker */},
-  {(bigint) 175 /* 5: ArraySet < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: ArraySet < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: ArraySet < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 4019 /* 8: ArraySet < ArraySet: superclass typecheck marker */},
+  {(bigint) 3651 /* 4: ArraySet < Set: superclass typecheck marker */},
+  {(bigint) 171 /* 5: ArraySet < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: ArraySet < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: ArraySet < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 4027 /* 8: ArraySet < ArraySet: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10380,10 +6539,10 @@ val_t NEW_ArraySet_array___ArraySet___with_capacity(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ArraySetIterator[47] = {
-  {(bigint) 3031 /* 0: Identity */},
+  {(bigint) 3023 /* 0: Identity */},
   {(bigint) 3 /* 1: ArraySetIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: ArraySetIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 3031 /* 3: ArraySetIterator < ArraySetIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: ArraySetIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 3023 /* 3: ArraySetIterator < ArraySetIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10446,16 +6605,16 @@ val_t NEW_ArraySetIterator_array___ArraySetIterator___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ArrayMap[87] = {
-  {(bigint) 4023 /* 0: Identity */},
+  {(bigint) 4031 /* 0: Identity */},
   {(bigint) 3 /* 1: ArrayMap < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3687 /* 4: ArrayMap < CoupleMap: superclass typecheck marker */},
-  {(bigint) 175 /* 5: ArrayMap < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: ArrayMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3695 /* 4: ArrayMap < CoupleMap: superclass typecheck marker */},
+  {(bigint) 171 /* 5: ArrayMap < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: ArrayMap < RemovableCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3511 /* 8: ArrayMap < Map: superclass typecheck marker */},
-  {(bigint) 4023 /* 9: ArrayMap < ArrayMap: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: ArrayMap < Map: superclass typecheck marker */},
+  {(bigint) 4031 /* 9: ArrayMap < ArrayMap: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10554,9 +6713,9 @@ val_t NEW_ArrayMap_array___ArrayMap___init() {
   return self;
 }
 const classtable_elt_t VFT_ArrayCapable[42] = {
-  {(bigint) 187 /* 0: Identity */},
+  {(bigint) 183 /* 0: Identity */},
   {(bigint) 3 /* 1: ArrayCapable < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 2: ArrayCapable < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 183 /* 2: ArrayCapable < ArrayCapable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10661,18 +6820,18 @@ val_t BOX_NativeArray(val_t * val) {
   return OBJ2VAL(box);
 }
 const classtable_elt_t VFT_String[138] = {
-  {(bigint) 4163 /* 0: Identity */},
+  {(bigint) 4171 /* 0: Identity */},
   {(bigint) 3 /* 1: String < Object: superclass typecheck marker */},
-  {(bigint) 31 /* 2: String < StringCapable: superclass typecheck marker */},
-  {(bigint) 55 /* 3: String < Pattern: superclass typecheck marker */},
-  {(bigint) 167 /* 4: String < Comparable: superclass typecheck marker */},
-  {(bigint) 175 /* 5: String < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: String < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: String < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3511 /* 8: String < Map: superclass typecheck marker */},
-  {(bigint) 3671 /* 9: String < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 4027 /* 10: String < AbstractArray: superclass typecheck marker */},
-  {(bigint) 4163 /* 11: String < String: superclass typecheck marker */},
+  {(bigint) 27 /* 2: String < StringCapable: superclass typecheck marker */},
+  {(bigint) 51 /* 3: String < Pattern: superclass typecheck marker */},
+  {(bigint) 163 /* 4: String < Comparable: superclass typecheck marker */},
+  {(bigint) 171 /* 5: String < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: String < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: String < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: String < Map: superclass typecheck marker */},
+  {(bigint) 3679 /* 9: String < IndexedCollection: superclass typecheck marker */},
+  {(bigint) 4035 /* 10: String < AbstractArray: superclass typecheck marker */},
+  {(bigint) 4171 /* 11: String < String: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
@@ -10914,9 +7073,9 @@ val_t BOX_NativeString(char * val) {
   return OBJ2VAL(box);
 }
 const classtable_elt_t VFT_StringCapable[43] = {
-  {(bigint) 31 /* 0: Identity */},
+  {(bigint) 27 /* 0: Identity */},
   {(bigint) 3 /* 1: StringCapable < Object: superclass typecheck marker */},
-  {(bigint) 31 /* 2: StringCapable < StringCapable: superclass typecheck marker */},
+  {(bigint) 27 /* 2: StringCapable < StringCapable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -10975,12 +7134,12 @@ val_t NEW_StringCapable_string___StringCapable___init() {
   return self;
 }
 const classtable_elt_t VFT_HashCollection[68] = {
-  {(bigint) 2975 /* 0: Identity */},
+  {(bigint) 2967 /* 0: Identity */},
   {(bigint) 3 /* 1: HashCollection < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 2: HashCollection < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 2975 /* 3: HashCollection < HashCollection: superclass typecheck marker */},
+  {(bigint) 183 /* 2: HashCollection < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 2967 /* 3: HashCollection < HashCollection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: HashCollection < Collection: superclass typecheck marker */},
+  {(bigint) 171 /* 5: HashCollection < Collection: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11075,9 +7234,9 @@ val_t NEW_HashCollection_hash___HashCollection___init() {
   return self;
 }
 const classtable_elt_t VFT_HashNode[47] = {
-  {(bigint) 151 /* 0: Identity */},
+  {(bigint) 147 /* 0: Identity */},
   {(bigint) 3 /* 1: HashNode < Object: superclass typecheck marker */},
-  {(bigint) 151 /* 2: HashNode < HashNode: superclass typecheck marker */},
+  {(bigint) 147 /* 2: HashNode < HashNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11144,15 +7303,15 @@ val_t NEW_HashNode_hash___HashNode___init() {
   return self;
 }
 const classtable_elt_t VFT_HashMap[82] = {
-  {(bigint) 4015 /* 0: Identity */},
+  {(bigint) 4023 /* 0: Identity */},
   {(bigint) 3 /* 1: HashMap < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 2: HashMap < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 2975 /* 3: HashMap < HashCollection: superclass typecheck marker */},
-  {(bigint) 3687 /* 4: HashMap < CoupleMap: superclass typecheck marker */},
-  {(bigint) 175 /* 5: HashMap < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: HashMap < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 4015 /* 7: HashMap < HashMap: superclass typecheck marker */},
-  {(bigint) 3511 /* 8: HashMap < Map: superclass typecheck marker */},
+  {(bigint) 183 /* 2: HashMap < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 2967 /* 3: HashMap < HashCollection: superclass typecheck marker */},
+  {(bigint) 3695 /* 4: HashMap < CoupleMap: superclass typecheck marker */},
+  {(bigint) 171 /* 5: HashMap < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: HashMap < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 4023 /* 7: HashMap < HashMap: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: HashMap < Map: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11258,11 +7417,11 @@ val_t NEW_HashMap_hash___HashMap___init() {
   return self;
 }
 const classtable_elt_t VFT_HashMapNode[55] = {
-  {(bigint) 2971 /* 0: Identity */},
+  {(bigint) 2963 /* 0: Identity */},
   {(bigint) 3 /* 1: HashMapNode < Object: superclass typecheck marker */},
-  {(bigint) 151 /* 2: HashMapNode < HashNode: superclass typecheck marker */},
-  {(bigint) 155 /* 3: HashMapNode < Couple: superclass typecheck marker */},
-  {(bigint) 2971 /* 4: HashMapNode < HashMapNode: superclass typecheck marker */},
+  {(bigint) 147 /* 2: HashMapNode < HashNode: superclass typecheck marker */},
+  {(bigint) 151 /* 3: HashMapNode < Couple: superclass typecheck marker */},
+  {(bigint) 2963 /* 4: HashMapNode < HashMapNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11337,11 +7496,11 @@ val_t NEW_HashMapNode_hash___HashMapNode___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_HashMapIterator[50] = {
-  {(bigint) 3563 /* 0: Identity */},
+  {(bigint) 3575 /* 0: Identity */},
   {(bigint) 3 /* 1: HashMapIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: HashMapIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2895 /* 3: HashMapIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3563 /* 4: HashMapIterator < HashMapIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: HashMapIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2891 /* 3: HashMapIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 3575 /* 4: HashMapIterator < HashMapIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11407,15 +7566,15 @@ val_t NEW_HashMapIterator_hash___HashMapIterator___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_HashSet[75] = {
-  {(bigint) 4011 /* 0: Identity */},
+  {(bigint) 4019 /* 0: Identity */},
   {(bigint) 3 /* 1: HashSet < Object: superclass typecheck marker */},
-  {(bigint) 187 /* 2: HashSet < ArrayCapable: superclass typecheck marker */},
-  {(bigint) 2975 /* 3: HashSet < HashCollection: superclass typecheck marker */},
-  {(bigint) 3643 /* 4: HashSet < Set: superclass typecheck marker */},
-  {(bigint) 175 /* 5: HashSet < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: HashSet < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: HashSet < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 4011 /* 8: HashSet < HashSet: superclass typecheck marker */},
+  {(bigint) 183 /* 2: HashSet < ArrayCapable: superclass typecheck marker */},
+  {(bigint) 2967 /* 3: HashSet < HashCollection: superclass typecheck marker */},
+  {(bigint) 3651 /* 4: HashSet < Set: superclass typecheck marker */},
+  {(bigint) 171 /* 5: HashSet < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: HashSet < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: HashSet < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 4019 /* 8: HashSet < HashSet: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11514,10 +7673,10 @@ val_t NEW_HashSet_hash___HashSet___init() {
   return self;
 }
 const classtable_elt_t VFT_HashSetNode[50] = {
-  {(bigint) 2963 /* 0: Identity */},
+  {(bigint) 2955 /* 0: Identity */},
   {(bigint) 3 /* 1: HashSetNode < Object: superclass typecheck marker */},
-  {(bigint) 151 /* 2: HashSetNode < HashNode: superclass typecheck marker */},
-  {(bigint) 2963 /* 3: HashSetNode < HashSetNode: superclass typecheck marker */},
+  {(bigint) 147 /* 2: HashSetNode < HashNode: superclass typecheck marker */},
+  {(bigint) 2955 /* 3: HashSetNode < HashSetNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11587,10 +7746,10 @@ val_t NEW_HashSetNode_hash___HashSetNode___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_HashSetIterator[47] = {
-  {(bigint) 2967 /* 0: Identity */},
+  {(bigint) 2959 /* 0: Identity */},
   {(bigint) 3 /* 1: HashSetIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: HashSetIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2967 /* 3: HashSetIterator < HashSetIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: HashSetIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2959 /* 3: HashSetIterator < HashSetIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11654,9 +7813,9 @@ val_t NEW_HashSetIterator_hash___HashSetIterator___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_Symbol[43] = {
-  {(bigint) 27 /* 0: Identity */},
+  {(bigint) 23 /* 0: Identity */},
   {(bigint) 3 /* 1: Symbol < Object: superclass typecheck marker */},
-  {(bigint) 27 /* 2: Symbol < Symbol: superclass typecheck marker */},
+  {(bigint) 23 /* 2: Symbol < Symbol: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11716,9 +7875,9 @@ val_t NEW_Symbol_symbol___Symbol___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AbstractSorter[47] = {
-  {(bigint) 191 /* 0: Identity */},
+  {(bigint) 187 /* 0: Identity */},
   {(bigint) 3 /* 1: AbstractSorter < Object: superclass typecheck marker */},
-  {(bigint) 191 /* 2: AbstractSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 187 /* 2: AbstractSorter < AbstractSorter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11781,10 +7940,10 @@ val_t NEW_AbstractSorter_sorter___AbstractSorter___init() {
   return self;
 }
 const classtable_elt_t VFT_ComparableSorter[49] = {
-  {(bigint) 3007 /* 0: Identity */},
+  {(bigint) 2999 /* 0: Identity */},
   {(bigint) 3 /* 1: ComparableSorter < Object: superclass typecheck marker */},
-  {(bigint) 191 /* 2: ComparableSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 3007 /* 3: ComparableSorter < ComparableSorter: superclass typecheck marker */},
+  {(bigint) 187 /* 2: ComparableSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 2999 /* 3: ComparableSorter < ComparableSorter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11848,10 +8007,10 @@ val_t NEW_ComparableSorter_sorter___ComparableSorter___init() {
   return self;
 }
 const classtable_elt_t VFT_IOS[54] = {
-  {(bigint) 147 /* 0: Identity */},
+  {(bigint) 143 /* 0: Identity */},
   {(bigint) 3 /* 1: IOS < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 147 /* 3: IOS < IOS: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IOS < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -11920,12 +8079,12 @@ val_t NEW_IOS_stream___IOS___init() {
   return self;
 }
 const classtable_elt_t VFT_IStream[64] = {
-  {(bigint) 2959 /* 0: Identity */},
+  {(bigint) 2951 /* 0: Identity */},
   {(bigint) 3 /* 1: IStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 147 /* 3: IStream < IOS: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2959 /* 5: IStream < IStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: IStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12002,11 +8161,11 @@ val_t NEW_IStream_stream___IOS___init() {
   return self;
 }
 const classtable_elt_t VFT_OStream[57] = {
-  {(bigint) 2883 /* 0: Identity */},
+  {(bigint) 2875 /* 0: Identity */},
   {(bigint) 3 /* 1: OStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 147 /* 3: OStream < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: OStream < OStream: superclass typecheck marker */},
+  {(bigint) 143 /* 3: OStream < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: OStream < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12077,12 +8236,12 @@ val_t NEW_OStream_stream___IOS___init() {
   return self;
 }
 const classtable_elt_t VFT_BufferedIStream[68] = {
-  {(bigint) 3603 /* 0: Identity */},
+  {(bigint) 3615 /* 0: Identity */},
   {(bigint) 3 /* 1: BufferedIStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 147 /* 3: BufferedIStream < IOS: superclass typecheck marker */},
-  {(bigint) 3603 /* 4: BufferedIStream < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2959 /* 5: BufferedIStream < IStream: superclass typecheck marker */},
+  {(bigint) 143 /* 3: BufferedIStream < IOS: superclass typecheck marker */},
+  {(bigint) 3615 /* 4: BufferedIStream < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: BufferedIStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12169,15 +8328,15 @@ val_t NEW_BufferedIStream_stream___IOS___init() {
   return self;
 }
 const classtable_elt_t VFT_IOStream[71] = {
-  {(bigint) 3559 /* 0: Identity */},
+  {(bigint) 3571 /* 0: Identity */},
   {(bigint) 3 /* 1: IOStream < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 147 /* 3: IOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: IOStream < OStream: superclass typecheck marker */},
-  {(bigint) 2959 /* 5: IOStream < IStream: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IOStream < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: IOStream < OStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: IOStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 3559 /* 8: IOStream < IOStream: superclass typecheck marker */},
+  {(bigint) 3571 /* 8: IOStream < IOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12258,10 +8417,10 @@ val_t NEW_IOStream_stream___IOS___init() {
   return self;
 }
 const classtable_elt_t VFT_FDStream[54] = {
-  {(bigint) 2987 /* 0: Identity */},
+  {(bigint) 2979 /* 0: Identity */},
   {(bigint) 3 /* 1: FDStream < Object: superclass typecheck marker */},
-  {(bigint) 2987 /* 2: FDStream < FDStream: superclass typecheck marker */},
-  {(bigint) 147 /* 3: FDStream < IOS: superclass typecheck marker */},
+  {(bigint) 2979 /* 2: FDStream < FDStream: superclass typecheck marker */},
+  {(bigint) 143 /* 3: FDStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12332,14 +8491,14 @@ val_t NEW_FDStream_stream___FDStream___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_FDIStream[64] = {
-  {(bigint) 3571 /* 0: Identity */},
+  {(bigint) 3583 /* 0: Identity */},
   {(bigint) 3 /* 1: FDIStream < Object: superclass typecheck marker */},
-  {(bigint) 2987 /* 2: FDIStream < FDStream: superclass typecheck marker */},
-  {(bigint) 147 /* 3: FDIStream < IOS: superclass typecheck marker */},
+  {(bigint) 2979 /* 2: FDIStream < FDStream: superclass typecheck marker */},
+  {(bigint) 143 /* 3: FDIStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2959 /* 5: FDIStream < IStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: FDIStream < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3571 /* 7: FDIStream < FDIStream: superclass typecheck marker */},
+  {(bigint) 3583 /* 7: FDIStream < FDIStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12419,13 +8578,13 @@ val_t NEW_FDIStream_stream___FDIStream___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_FDOStream[57] = {
-  {(bigint) 3567 /* 0: Identity */},
+  {(bigint) 3579 /* 0: Identity */},
   {(bigint) 3 /* 1: FDOStream < Object: superclass typecheck marker */},
-  {(bigint) 2987 /* 2: FDOStream < FDStream: superclass typecheck marker */},
-  {(bigint) 147 /* 3: FDOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: FDOStream < OStream: superclass typecheck marker */},
+  {(bigint) 2979 /* 2: FDOStream < FDStream: superclass typecheck marker */},
+  {(bigint) 143 /* 3: FDOStream < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: FDOStream < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3567 /* 6: FDOStream < FDOStream: superclass typecheck marker */},
+  {(bigint) 3579 /* 6: FDOStream < FDOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12498,16 +8657,16 @@ val_t NEW_FDOStream_stream___FDOStream___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_FDIOStream[71] = {
-  {(bigint) 3683 /* 0: Identity */},
+  {(bigint) 3691 /* 0: Identity */},
   {(bigint) 3 /* 1: FDIOStream < Object: superclass typecheck marker */},
-  {(bigint) 2987 /* 2: FDIOStream < FDStream: superclass typecheck marker */},
-  {(bigint) 147 /* 3: FDIOStream < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: FDIOStream < OStream: superclass typecheck marker */},
-  {(bigint) 2959 /* 5: FDIOStream < IStream: superclass typecheck marker */},
-  {(bigint) 3567 /* 6: FDIOStream < FDOStream: superclass typecheck marker */},
-  {(bigint) 3571 /* 7: FDIOStream < FDIStream: superclass typecheck marker */},
-  {(bigint) 3559 /* 8: FDIOStream < IOStream: superclass typecheck marker */},
-  {(bigint) 3683 /* 9: FDIOStream < FDIOStream: superclass typecheck marker */},
+  {(bigint) 2979 /* 2: FDIOStream < FDStream: superclass typecheck marker */},
+  {(bigint) 143 /* 3: FDIOStream < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: FDIOStream < OStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: FDIOStream < IStream: superclass typecheck marker */},
+  {(bigint) 3579 /* 6: FDIOStream < FDOStream: superclass typecheck marker */},
+  {(bigint) 3583 /* 7: FDIOStream < FDIStream: superclass typecheck marker */},
+  {(bigint) 3571 /* 8: FDIOStream < IOStream: superclass typecheck marker */},
+  {(bigint) 3691 /* 9: FDIOStream < FDIOStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12593,10 +8752,10 @@ val_t NEW_FDIOStream_stream___FDIOStream___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_Pattern[49] = {
-  {(bigint) 55 /* 0: Identity */},
+  {(bigint) 51 /* 0: Identity */},
   {(bigint) 3 /* 1: Pattern < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 55 /* 3: Pattern < Pattern: superclass typecheck marker */},
+  {(bigint) 51 /* 3: Pattern < Pattern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12660,11 +8819,11 @@ val_t NEW_Pattern_string_search___Pattern___init() {
   return self;
 }
 const classtable_elt_t VFT_BM_Pattern[55] = {
-  {(bigint) 3023 /* 0: Identity */},
+  {(bigint) 3015 /* 0: Identity */},
   {(bigint) 3 /* 1: BM_Pattern < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 55 /* 3: BM_Pattern < Pattern: superclass typecheck marker */},
-  {(bigint) 3023 /* 4: BM_Pattern < BM_Pattern: superclass typecheck marker */},
+  {(bigint) 51 /* 3: BM_Pattern < Pattern: superclass typecheck marker */},
+  {(bigint) 3015 /* 4: BM_Pattern < BM_Pattern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12738,9 +8897,9 @@ val_t NEW_BM_Pattern_string_search___BM_Pattern___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_Match[46] = {
-  {(bigint) 91 /* 0: Identity */},
+  {(bigint) 87 /* 0: Identity */},
   {(bigint) 3 /* 1: Match < Object: superclass typecheck marker */},
-  {(bigint) 91 /* 2: Match < Match: superclass typecheck marker */},
+  {(bigint) 87 /* 2: Match < Match: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12807,13 +8966,13 @@ val_t NEW_Match_string_search___Match___init(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_FStream[54] = {
-  {(bigint) 2983 /* 0: Identity */},
+  {(bigint) 2975 /* 0: Identity */},
   {(bigint) 3 /* 1: FStream < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: FStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 147 /* 3: FStream < IOS: superclass typecheck marker */},
+  {(bigint) 79 /* 2: FStream < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 143 /* 3: FStream < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 2983 /* 6: FStream < FStream: superclass typecheck marker */},
+  {(bigint) 2975 /* 6: FStream < FStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12883,14 +9042,14 @@ val_t NEW_FStream_stream___IOS___init() {
   return self;
 }
 const classtable_elt_t VFT_IFStream[73] = {
-  {(bigint) 3679 /* 0: Identity */},
+  {(bigint) 3687 /* 0: Identity */},
   {(bigint) 3 /* 1: IFStream < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: IFStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 147 /* 3: IFStream < IOS: superclass typecheck marker */},
-  {(bigint) 3603 /* 4: IFStream < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2959 /* 5: IFStream < IStream: superclass typecheck marker */},
-  {(bigint) 2983 /* 6: IFStream < FStream: superclass typecheck marker */},
-  {(bigint) 3679 /* 7: IFStream < IFStream: superclass typecheck marker */},
+  {(bigint) 79 /* 2: IFStream < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IFStream < IOS: superclass typecheck marker */},
+  {(bigint) 3615 /* 4: IFStream < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: IFStream < IStream: superclass typecheck marker */},
+  {(bigint) 2975 /* 6: IFStream < FStream: superclass typecheck marker */},
+  {(bigint) 3687 /* 7: IFStream < IFStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -12996,13 +9155,13 @@ val_t NEW_IFStream_file___IFStream___without_file() {
   return self;
 }
 const classtable_elt_t VFT_OFStream[62] = {
-  {(bigint) 3507 /* 0: Identity */},
+  {(bigint) 3515 /* 0: Identity */},
   {(bigint) 3 /* 1: OFStream < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: OFStream < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 147 /* 3: OFStream < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: OFStream < OStream: superclass typecheck marker */},
-  {(bigint) 3507 /* 5: OFStream < OFStream: superclass typecheck marker */},
-  {(bigint) 2983 /* 6: OFStream < FStream: superclass typecheck marker */},
+  {(bigint) 79 /* 2: OFStream < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 143 /* 3: OFStream < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: OFStream < OStream: superclass typecheck marker */},
+  {(bigint) 3515 /* 5: OFStream < OFStream: superclass typecheck marker */},
+  {(bigint) 2975 /* 6: OFStream < FStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13094,15 +9253,15 @@ val_t NEW_OFStream_file___OFStream___without_file() {
   return self;
 }
 const classtable_elt_t VFT_Stdin[75] = {
-  {(bigint) 3991 /* 0: Identity */},
+  {(bigint) 3999 /* 0: Identity */},
   {(bigint) 3 /* 1: Stdin < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: Stdin < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 147 /* 3: Stdin < IOS: superclass typecheck marker */},
-  {(bigint) 3603 /* 4: Stdin < BufferedIStream: superclass typecheck marker */},
-  {(bigint) 2959 /* 5: Stdin < IStream: superclass typecheck marker */},
-  {(bigint) 2983 /* 6: Stdin < FStream: superclass typecheck marker */},
-  {(bigint) 3679 /* 7: Stdin < IFStream: superclass typecheck marker */},
-  {(bigint) 3991 /* 8: Stdin < Stdin: superclass typecheck marker */},
+  {(bigint) 79 /* 2: Stdin < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 143 /* 3: Stdin < IOS: superclass typecheck marker */},
+  {(bigint) 3615 /* 4: Stdin < BufferedIStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: Stdin < IStream: superclass typecheck marker */},
+  {(bigint) 2975 /* 6: Stdin < FStream: superclass typecheck marker */},
+  {(bigint) 3687 /* 7: Stdin < IFStream: superclass typecheck marker */},
+  {(bigint) 3999 /* 8: Stdin < Stdin: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13197,14 +9356,14 @@ val_t NEW_Stdin_file___Stdin___init() {
   return self;
 }
 const classtable_elt_t VFT_Stdout[64] = {
-  {(bigint) 3635 /* 0: Identity */},
+  {(bigint) 3643 /* 0: Identity */},
   {(bigint) 3 /* 1: Stdout < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: Stdout < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 147 /* 3: Stdout < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: Stdout < OStream: superclass typecheck marker */},
-  {(bigint) 3507 /* 5: Stdout < OFStream: superclass typecheck marker */},
-  {(bigint) 2983 /* 6: Stdout < FStream: superclass typecheck marker */},
-  {(bigint) 3635 /* 7: Stdout < Stdout: superclass typecheck marker */},
+  {(bigint) 79 /* 2: Stdout < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 143 /* 3: Stdout < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: Stdout < OStream: superclass typecheck marker */},
+  {(bigint) 3515 /* 5: Stdout < OFStream: superclass typecheck marker */},
+  {(bigint) 2975 /* 6: Stdout < FStream: superclass typecheck marker */},
+  {(bigint) 3643 /* 7: Stdout < Stdout: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13285,14 +9444,14 @@ val_t NEW_Stdout_file___Stdout___init() {
   return self;
 }
 const classtable_elt_t VFT_Stderr[64] = {
-  {(bigint) 3639 /* 0: Identity */},
+  {(bigint) 3647 /* 0: Identity */},
   {(bigint) 3 /* 1: Stderr < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: Stderr < NativeFileCapable: superclass typecheck marker */},
-  {(bigint) 147 /* 3: Stderr < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: Stderr < OStream: superclass typecheck marker */},
-  {(bigint) 3507 /* 5: Stderr < OFStream: superclass typecheck marker */},
-  {(bigint) 2983 /* 6: Stderr < FStream: superclass typecheck marker */},
-  {(bigint) 3639 /* 7: Stderr < Stderr: superclass typecheck marker */},
+  {(bigint) 79 /* 2: Stderr < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 143 /* 3: Stderr < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: Stderr < OStream: superclass typecheck marker */},
+  {(bigint) 3515 /* 5: Stderr < OFStream: superclass typecheck marker */},
+  {(bigint) 2975 /* 6: Stderr < FStream: superclass typecheck marker */},
+  {(bigint) 3647 /* 7: Stderr < Stderr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13484,9 +9643,9 @@ val_t BOX_NativeFile(void * val) {
   return OBJ2VAL(box);
 }
 const classtable_elt_t VFT_NativeFileCapable[46] = {
-  {(bigint) 83 /* 0: Identity */},
+  {(bigint) 79 /* 0: Identity */},
   {(bigint) 3 /* 1: NativeFileCapable < Object: superclass typecheck marker */},
-  {(bigint) 83 /* 2: NativeFileCapable < NativeFileCapable: superclass typecheck marker */},
+  {(bigint) 79 /* 2: NativeFileCapable < NativeFileCapable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13542,9 +9701,9 @@ val_t NEW_NativeFileCapable(void) {
   return OBJ2VAL(obj);
 }
 const classtable_elt_t VFT_Process[51] = {
-  {(bigint) 47 /* 0: Identity */},
+  {(bigint) 43 /* 0: Identity */},
   {(bigint) 3 /* 1: Process < Object: superclass typecheck marker */},
-  {(bigint) 47 /* 2: Process < Process: superclass typecheck marker */},
+  {(bigint) 43 /* 2: Process < Process: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13624,14 +9783,14 @@ val_t NEW_Process_exec___Process___execute(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_IProcess[70] = {
-  {(bigint) 3555 /* 0: Identity */},
+  {(bigint) 3567 /* 0: Identity */},
   {(bigint) 3 /* 1: IProcess < Object: superclass typecheck marker */},
-  {(bigint) 47 /* 2: IProcess < Process: superclass typecheck marker */},
-  {(bigint) 147 /* 3: IProcess < IOS: superclass typecheck marker */},
+  {(bigint) 43 /* 2: IProcess < Process: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IProcess < IOS: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 2959 /* 5: IProcess < IStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: IProcess < IStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3555 /* 7: IProcess < IProcess: superclass typecheck marker */},
+  {(bigint) 3567 /* 7: IProcess < IProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13721,13 +9880,13 @@ val_t NEW_IProcess_exec___IProcess___init_(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_OProcess[67] = {
-  {(bigint) 3503 /* 0: Identity */},
+  {(bigint) 3511 /* 0: Identity */},
   {(bigint) 3 /* 1: OProcess < Object: superclass typecheck marker */},
-  {(bigint) 47 /* 2: OProcess < Process: superclass typecheck marker */},
-  {(bigint) 147 /* 3: OProcess < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: OProcess < OStream: superclass typecheck marker */},
+  {(bigint) 43 /* 2: OProcess < Process: superclass typecheck marker */},
+  {(bigint) 143 /* 3: OProcess < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: OProcess < OStream: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3503 /* 6: OProcess < OProcess: superclass typecheck marker */},
+  {(bigint) 3511 /* 6: OProcess < OProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13814,16 +9973,16 @@ val_t NEW_OProcess_exec___OProcess___init_(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_IOProcess[74] = {
-  {(bigint) 3675 /* 0: Identity */},
+  {(bigint) 3683 /* 0: Identity */},
   {(bigint) 3 /* 1: IOProcess < Object: superclass typecheck marker */},
-  {(bigint) 47 /* 2: IOProcess < Process: superclass typecheck marker */},
-  {(bigint) 147 /* 3: IOProcess < IOS: superclass typecheck marker */},
-  {(bigint) 2883 /* 4: IOProcess < OStream: superclass typecheck marker */},
-  {(bigint) 2959 /* 5: IOProcess < IStream: superclass typecheck marker */},
-  {(bigint) 3503 /* 6: IOProcess < OProcess: superclass typecheck marker */},
-  {(bigint) 3555 /* 7: IOProcess < IProcess: superclass typecheck marker */},
-  {(bigint) 3559 /* 8: IOProcess < IOStream: superclass typecheck marker */},
-  {(bigint) 3675 /* 9: IOProcess < IOProcess: superclass typecheck marker */},
+  {(bigint) 43 /* 2: IOProcess < Process: superclass typecheck marker */},
+  {(bigint) 143 /* 3: IOProcess < IOS: superclass typecheck marker */},
+  {(bigint) 2875 /* 4: IOProcess < OStream: superclass typecheck marker */},
+  {(bigint) 2951 /* 5: IOProcess < IStream: superclass typecheck marker */},
+  {(bigint) 3511 /* 6: IOProcess < OProcess: superclass typecheck marker */},
+  {(bigint) 3567 /* 7: IOProcess < IProcess: superclass typecheck marker */},
+  {(bigint) 3571 /* 8: IOProcess < IOStream: superclass typecheck marker */},
+  {(bigint) 3683 /* 9: IOProcess < IOProcess: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -13974,17 +10133,17 @@ val_t BOX_NativeProcess(void * val) {
   return OBJ2VAL(box);
 }
 const classtable_elt_t VFT_List[100] = {
-  {(bigint) 4007 /* 0: Identity */},
+  {(bigint) 4015 /* 0: Identity */},
   {(bigint) 3 /* 1: List < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: List < Collection: superclass typecheck marker */},
-  {(bigint) 231 /* 6: List < RemovableCollection: superclass typecheck marker */},
-  {(bigint) 3395 /* 7: List < SimpleCollection: superclass typecheck marker */},
-  {(bigint) 3511 /* 8: List < Map: superclass typecheck marker */},
-  {(bigint) 3671 /* 9: List < IndexedCollection: superclass typecheck marker */},
-  {(bigint) 4007 /* 10: List < List: superclass typecheck marker */},
+  {(bigint) 171 /* 5: List < Collection: superclass typecheck marker */},
+  {(bigint) 223 /* 6: List < RemovableCollection: superclass typecheck marker */},
+  {(bigint) 3403 /* 7: List < SimpleCollection: superclass typecheck marker */},
+  {(bigint) 3523 /* 8: List < Map: superclass typecheck marker */},
+  {(bigint) 3679 /* 9: List < IndexedCollection: superclass typecheck marker */},
+  {(bigint) 4015 /* 10: List < List: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -14100,12 +10259,12 @@ val_t NEW_List_list___List___from(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ListIterator[52] = {
-  {(bigint) 3667 /* 0: Identity */},
+  {(bigint) 3675 /* 0: Identity */},
   {(bigint) 3 /* 1: ListIterator < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: ListIterator < Iterator: superclass typecheck marker */},
-  {(bigint) 2895 /* 3: ListIterator < MapIterator: superclass typecheck marker */},
-  {(bigint) 3551 /* 4: ListIterator < IndexedIterator: superclass typecheck marker */},
-  {(bigint) 3667 /* 5: ListIterator < ListIterator: superclass typecheck marker */},
+  {(bigint) 139 /* 2: ListIterator < Iterator: superclass typecheck marker */},
+  {(bigint) 2891 /* 3: ListIterator < MapIterator: superclass typecheck marker */},
+  {(bigint) 3563 /* 4: ListIterator < IndexedIterator: superclass typecheck marker */},
+  {(bigint) 3675 /* 5: ListIterator < ListIterator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14173,14 +10332,14 @@ val_t NEW_ListIterator_list___ListIterator___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ListNode[78] = {
-  {(bigint) 3547 /* 0: Identity */},
+  {(bigint) 3559 /* 0: Identity */},
   {(bigint) 3 /* 1: ListNode < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: ListNode < Collection: superclass typecheck marker */},
-  {(bigint) 2999 /* 6: ListNode < Container: superclass typecheck marker */},
-  {(bigint) 3547 /* 7: ListNode < ListNode: superclass typecheck marker */},
+  {(bigint) 171 /* 5: ListNode < Collection: superclass typecheck marker */},
+  {(bigint) 2991 /* 6: ListNode < Container: superclass typecheck marker */},
+  {(bigint) 3559 /* 7: ListNode < ListNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14272,13 +10431,13 @@ val_t NEW_ListNode_list___ListNode___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_Range[73] = {
-  {(bigint) 2851 /* 0: Identity */},
+  {(bigint) 2843 /* 0: Identity */},
   {(bigint) 3 /* 1: Range < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: Range < Collection: superclass typecheck marker */},
-  {(bigint) 2851 /* 6: Range < Range: superclass typecheck marker */},
+  {(bigint) 171 /* 5: Range < Collection: superclass typecheck marker */},
+  {(bigint) 2843 /* 6: Range < Range: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14372,10 +10531,10 @@ val_t NEW_Range_range___Range___without_last(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_IteratorRange[47] = {
-  {(bigint) 2955 /* 0: Identity */},
+  {(bigint) 2947 /* 0: Identity */},
   {(bigint) 3 /* 1: IteratorRange < Object: superclass typecheck marker */},
-  {(bigint) 143 /* 2: IteratorRange < Iterator: superclass typecheck marker */},
-  {(bigint) 2955 /* 3: IteratorRange < IteratorRange: superclass typecheck marker */},
+  {(bigint) 139 /* 2: IteratorRange < Iterator: superclass typecheck marker */},
+  {(bigint) 2947 /* 3: IteratorRange < IteratorRange: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14439,9 +10598,9 @@ val_t NEW_IteratorRange_range___IteratorRange___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_PNode[62] = {
-  {(bigint) 67 /* 0: Identity */},
+  {(bigint) 63 /* 0: Identity */},
   {(bigint) 3 /* 1: PNode < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PNode < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PNode < PNode: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14522,7 +10681,7 @@ val_t NEW_PNode_parser_nodes___PNode___init() {
 const classtable_elt_t VFT_Token[70] = {
   {(bigint) 203 /* 0: Identity */},
   {(bigint) 3 /* 1: Token < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: Token < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: Token < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: Token < Token: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14616,10 +10775,10 @@ val_t NEW_Token_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_Prod[68] = {
-  {(bigint) 2855 /* 0: Identity */},
+  {(bigint) 2847 /* 0: Identity */},
   {(bigint) 3 /* 1: Prod < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: Prod < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: Prod < Prod: superclass typecheck marker */},
+  {(bigint) 63 /* 2: Prod < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: Prod < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14705,11 +10864,11 @@ val_t NEW_Prod_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_TEol[72] = {
-  {(bigint) 3335 /* 0: Identity */},
+  {(bigint) 3343 /* 0: Identity */},
   {(bigint) 3 /* 1: TEol < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TEol < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TEol < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TEol < Token: superclass typecheck marker */},
-  {(bigint) 3335 /* 4: TEol < TEol: superclass typecheck marker */},
+  {(bigint) 3343 /* 4: TEol < TEol: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14809,11 +10968,11 @@ val_t NEW_TEol_lexer___TEol___init_tk(val_t p0, val_t p1, val_t p2, val_t p3) {
   return self;
 }
 const classtable_elt_t VFT_TComment[72] = {
-  {(bigint) 3359 /* 0: Identity */},
+  {(bigint) 3367 /* 0: Identity */},
   {(bigint) 3 /* 1: TComment < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TComment < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TComment < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TComment < Token: superclass typecheck marker */},
-  {(bigint) 3359 /* 4: TComment < TComment: superclass typecheck marker */},
+  {(bigint) 3367 /* 4: TComment < TComment: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -14913,11 +11072,11 @@ val_t NEW_TComment_lexer___TComment___init_tk(val_t p0, val_t p1, val_t p2, val_
   return self;
 }
 const classtable_elt_t VFT_TKwpackage[72] = {
-  {(bigint) 3191 /* 0: Identity */},
+  {(bigint) 3199 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwpackage < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwpackage < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwpackage < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwpackage < Token: superclass typecheck marker */},
-  {(bigint) 3191 /* 4: TKwpackage < TKwpackage: superclass typecheck marker */},
+  {(bigint) 3199 /* 4: TKwpackage < TKwpackage: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15017,11 +11176,11 @@ val_t NEW_TKwpackage_lexer___TKwpackage___init_tk(val_t p0, val_t p1, val_t p2)
   return self;
 }
 const classtable_elt_t VFT_TKwimport[72] = {
-  {(bigint) 3247 /* 0: Identity */},
+  {(bigint) 3255 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwimport < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwimport < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwimport < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwimport < Token: superclass typecheck marker */},
-  {(bigint) 3247 /* 4: TKwimport < TKwimport: superclass typecheck marker */},
+  {(bigint) 3255 /* 4: TKwimport < TKwimport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15121,11 +11280,11 @@ val_t NEW_TKwimport_lexer___TKwimport___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwclass[72] = {
-  {(bigint) 3283 /* 0: Identity */},
+  {(bigint) 3291 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwclass < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwclass < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwclass < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwclass < Token: superclass typecheck marker */},
-  {(bigint) 3283 /* 4: TKwclass < TKwclass: superclass typecheck marker */},
+  {(bigint) 3291 /* 4: TKwclass < TKwclass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15225,11 +11384,11 @@ val_t NEW_TKwclass_lexer___TKwclass___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwabstract[72] = {
-  {(bigint) 3307 /* 0: Identity */},
+  {(bigint) 3315 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwabstract < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwabstract < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwabstract < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwabstract < Token: superclass typecheck marker */},
-  {(bigint) 3307 /* 4: TKwabstract < TKwabstract: superclass typecheck marker */},
+  {(bigint) 3315 /* 4: TKwabstract < TKwabstract: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15329,11 +11488,11 @@ val_t NEW_TKwabstract_lexer___TKwabstract___init_tk(val_t p0, val_t p1, val_t p2
   return self;
 }
 const classtable_elt_t VFT_TKwinterface[72] = {
-  {(bigint) 3235 /* 0: Identity */},
+  {(bigint) 3243 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwinterface < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwinterface < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwinterface < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwinterface < Token: superclass typecheck marker */},
-  {(bigint) 3235 /* 4: TKwinterface < TKwinterface: superclass typecheck marker */},
+  {(bigint) 3243 /* 4: TKwinterface < TKwinterface: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15433,11 +11592,11 @@ val_t NEW_TKwinterface_lexer___TKwinterface___init_tk(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_TKwuniversal[72] = {
-  {(bigint) 3143 /* 0: Identity */},
+  {(bigint) 3151 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwuniversal < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwuniversal < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwuniversal < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwuniversal < Token: superclass typecheck marker */},
-  {(bigint) 3143 /* 4: TKwuniversal < TKwuniversal: superclass typecheck marker */},
+  {(bigint) 3151 /* 4: TKwuniversal < TKwuniversal: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15537,11 +11696,11 @@ val_t NEW_TKwuniversal_lexer___TKwuniversal___init_tk(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_TKwspecial[72] = {
-  {(bigint) 3163 /* 0: Identity */},
+  {(bigint) 3171 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwspecial < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwspecial < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwspecial < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwspecial < Token: superclass typecheck marker */},
-  {(bigint) 3163 /* 4: TKwspecial < TKwspecial: superclass typecheck marker */},
+  {(bigint) 3171 /* 4: TKwspecial < TKwspecial: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15641,11 +11800,11 @@ val_t NEW_TKwspecial_lexer___TKwspecial___init_tk(val_t p0, val_t p1, val_t p2)
   return self;
 }
 const classtable_elt_t VFT_TKwend[72] = {
-  {(bigint) 3267 /* 0: Identity */},
+  {(bigint) 3275 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwend < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwend < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwend < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwend < Token: superclass typecheck marker */},
-  {(bigint) 3267 /* 4: TKwend < TKwend: superclass typecheck marker */},
+  {(bigint) 3275 /* 4: TKwend < TKwend: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15745,11 +11904,11 @@ val_t NEW_TKwend_lexer___TKwend___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwmeth[72] = {
-  {(bigint) 3215 /* 0: Identity */},
+  {(bigint) 3223 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwmeth < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwmeth < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwmeth < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwmeth < Token: superclass typecheck marker */},
-  {(bigint) 3215 /* 4: TKwmeth < TKwmeth: superclass typecheck marker */},
+  {(bigint) 3223 /* 4: TKwmeth < TKwmeth: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15849,11 +12008,11 @@ val_t NEW_TKwmeth_lexer___TKwmeth___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwtype[72] = {
-  {(bigint) 3147 /* 0: Identity */},
+  {(bigint) 3155 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwtype < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwtype < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwtype < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwtype < Token: superclass typecheck marker */},
-  {(bigint) 3147 /* 4: TKwtype < TKwtype: superclass typecheck marker */},
+  {(bigint) 3155 /* 4: TKwtype < TKwtype: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -15953,11 +12112,11 @@ val_t NEW_TKwtype_lexer___TKwtype___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwattr[72] = {
-  {(bigint) 3291 /* 0: Identity */},
+  {(bigint) 3299 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwattr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwattr < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwattr < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwattr < Token: superclass typecheck marker */},
-  {(bigint) 3291 /* 4: TKwattr < TKwattr: superclass typecheck marker */},
+  {(bigint) 3299 /* 4: TKwattr < TKwattr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16057,11 +12216,11 @@ val_t NEW_TKwattr_lexer___TKwattr___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwinit[72] = {
-  {(bigint) 3239 /* 0: Identity */},
+  {(bigint) 3247 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwinit < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwinit < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwinit < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwinit < Token: superclass typecheck marker */},
-  {(bigint) 3239 /* 4: TKwinit < TKwinit: superclass typecheck marker */},
+  {(bigint) 3247 /* 4: TKwinit < TKwinit: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16161,11 +12320,11 @@ val_t NEW_TKwinit_lexer___TKwinit___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwredef[72] = {
-  {(bigint) 3175 /* 0: Identity */},
+  {(bigint) 3183 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwredef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwredef < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwredef < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwredef < Token: superclass typecheck marker */},
-  {(bigint) 3175 /* 4: TKwredef < TKwredef: superclass typecheck marker */},
+  {(bigint) 3183 /* 4: TKwredef < TKwredef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16265,11 +12424,11 @@ val_t NEW_TKwredef_lexer___TKwredef___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwis[72] = {
-  {(bigint) 3223 /* 0: Identity */},
+  {(bigint) 3231 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwis < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwis < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwis < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwis < Token: superclass typecheck marker */},
-  {(bigint) 3223 /* 4: TKwis < TKwis: superclass typecheck marker */},
+  {(bigint) 3231 /* 4: TKwis < TKwis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16369,11 +12528,11 @@ val_t NEW_TKwis_lexer___TKwis___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwdo[72] = {
-  {(bigint) 3275 /* 0: Identity */},
+  {(bigint) 3283 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwdo < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwdo < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwdo < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwdo < Token: superclass typecheck marker */},
-  {(bigint) 3275 /* 4: TKwdo < TKwdo: superclass typecheck marker */},
+  {(bigint) 3283 /* 4: TKwdo < TKwdo: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16473,11 +12632,11 @@ val_t NEW_TKwdo_lexer___TKwdo___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwreadable[72] = {
-  {(bigint) 3179 /* 0: Identity */},
+  {(bigint) 3187 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwreadable < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwreadable < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwreadable < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwreadable < Token: superclass typecheck marker */},
-  {(bigint) 3179 /* 4: TKwreadable < TKwreadable: superclass typecheck marker */},
+  {(bigint) 3187 /* 4: TKwreadable < TKwreadable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16577,11 +12736,11 @@ val_t NEW_TKwreadable_lexer___TKwreadable___init_tk(val_t p0, val_t p1, val_t p2
   return self;
 }
 const classtable_elt_t VFT_TKwwritable[72] = {
-  {(bigint) 3127 /* 0: Identity */},
+  {(bigint) 3135 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwwritable < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwwritable < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwwritable < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwwritable < Token: superclass typecheck marker */},
-  {(bigint) 3127 /* 4: TKwwritable < TKwwritable: superclass typecheck marker */},
+  {(bigint) 3135 /* 4: TKwwritable < TKwwritable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16681,11 +12840,11 @@ val_t NEW_TKwwritable_lexer___TKwwritable___init_tk(val_t p0, val_t p1, val_t p2
   return self;
 }
 const classtable_elt_t VFT_TKwvar[72] = {
-  {(bigint) 3139 /* 0: Identity */},
+  {(bigint) 3147 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwvar < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwvar < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwvar < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwvar < Token: superclass typecheck marker */},
-  {(bigint) 3139 /* 4: TKwvar < TKwvar: superclass typecheck marker */},
+  {(bigint) 3147 /* 4: TKwvar < TKwvar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16785,11 +12944,11 @@ val_t NEW_TKwvar_lexer___TKwvar___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwintern[72] = {
-  {(bigint) 3231 /* 0: Identity */},
+  {(bigint) 3239 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwintern < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwintern < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwintern < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwintern < Token: superclass typecheck marker */},
-  {(bigint) 3231 /* 4: TKwintern < TKwintern: superclass typecheck marker */},
+  {(bigint) 3239 /* 4: TKwintern < TKwintern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16889,11 +13048,11 @@ val_t NEW_TKwintern_lexer___TKwintern___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwextern[72] = {
-  {(bigint) 3263 /* 0: Identity */},
+  {(bigint) 3271 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwextern < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwextern < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwextern < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwextern < Token: superclass typecheck marker */},
-  {(bigint) 3263 /* 4: TKwextern < TKwextern: superclass typecheck marker */},
+  {(bigint) 3271 /* 4: TKwextern < TKwextern: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -16993,11 +13152,11 @@ val_t NEW_TKwextern_lexer___TKwextern___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwprotected[72] = {
-  {(bigint) 3183 /* 0: Identity */},
+  {(bigint) 3191 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwprotected < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwprotected < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwprotected < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwprotected < Token: superclass typecheck marker */},
-  {(bigint) 3183 /* 4: TKwprotected < TKwprotected: superclass typecheck marker */},
+  {(bigint) 3191 /* 4: TKwprotected < TKwprotected: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17097,11 +13256,11 @@ val_t NEW_TKwprotected_lexer___TKwprotected___init_tk(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_TKwprivate[72] = {
-  {(bigint) 3187 /* 0: Identity */},
+  {(bigint) 3195 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwprivate < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwprivate < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwprivate < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwprivate < Token: superclass typecheck marker */},
-  {(bigint) 3187 /* 4: TKwprivate < TKwprivate: superclass typecheck marker */},
+  {(bigint) 3195 /* 4: TKwprivate < TKwprivate: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17201,11 +13360,11 @@ val_t NEW_TKwprivate_lexer___TKwprivate___init_tk(val_t p0, val_t p1, val_t p2)
   return self;
 }
 const classtable_elt_t VFT_TKwintrude[72] = {
-  {(bigint) 3227 /* 0: Identity */},
+  {(bigint) 3235 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwintrude < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwintrude < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwintrude < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwintrude < Token: superclass typecheck marker */},
-  {(bigint) 3227 /* 4: TKwintrude < TKwintrude: superclass typecheck marker */},
+  {(bigint) 3235 /* 4: TKwintrude < TKwintrude: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17305,11 +13464,11 @@ val_t NEW_TKwintrude_lexer___TKwintrude___init_tk(val_t p0, val_t p1, val_t p2)
   return self;
 }
 const classtable_elt_t VFT_TKwif[72] = {
-  {(bigint) 3251 /* 0: Identity */},
+  {(bigint) 3259 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwif < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwif < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwif < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwif < Token: superclass typecheck marker */},
-  {(bigint) 3251 /* 4: TKwif < TKwif: superclass typecheck marker */},
+  {(bigint) 3259 /* 4: TKwif < TKwif: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17409,11 +13568,11 @@ val_t NEW_TKwif_lexer___TKwif___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwthen[72] = {
-  {(bigint) 3155 /* 0: Identity */},
+  {(bigint) 3163 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwthen < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwthen < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwthen < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwthen < Token: superclass typecheck marker */},
-  {(bigint) 3155 /* 4: TKwthen < TKwthen: superclass typecheck marker */},
+  {(bigint) 3163 /* 4: TKwthen < TKwthen: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17513,11 +13672,11 @@ val_t NEW_TKwthen_lexer___TKwthen___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwelse[72] = {
-  {(bigint) 3271 /* 0: Identity */},
+  {(bigint) 3279 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwelse < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwelse < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwelse < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwelse < Token: superclass typecheck marker */},
-  {(bigint) 3271 /* 4: TKwelse < TKwelse: superclass typecheck marker */},
+  {(bigint) 3279 /* 4: TKwelse < TKwelse: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17617,11 +13776,11 @@ val_t NEW_TKwelse_lexer___TKwelse___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwwhile[72] = {
-  {(bigint) 3135 /* 0: Identity */},
+  {(bigint) 3143 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwwhile < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwwhile < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwwhile < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwwhile < Token: superclass typecheck marker */},
-  {(bigint) 3135 /* 4: TKwwhile < TKwwhile: superclass typecheck marker */},
+  {(bigint) 3143 /* 4: TKwwhile < TKwwhile: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17721,11 +13880,11 @@ val_t NEW_TKwwhile_lexer___TKwwhile___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwfor[72] = {
-  {(bigint) 3255 /* 0: Identity */},
+  {(bigint) 3263 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwfor < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwfor < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwfor < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwfor < Token: superclass typecheck marker */},
-  {(bigint) 3255 /* 4: TKwfor < TKwfor: superclass typecheck marker */},
+  {(bigint) 3263 /* 4: TKwfor < TKwfor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17825,11 +13984,11 @@ val_t NEW_TKwfor_lexer___TKwfor___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwin[72] = {
-  {(bigint) 3243 /* 0: Identity */},
+  {(bigint) 3251 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwin < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwin < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwin < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwin < Token: superclass typecheck marker */},
-  {(bigint) 3243 /* 4: TKwin < TKwin: superclass typecheck marker */},
+  {(bigint) 3251 /* 4: TKwin < TKwin: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -17929,11 +14088,11 @@ val_t NEW_TKwin_lexer___TKwin___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwand[72] = {
-  {(bigint) 3303 /* 0: Identity */},
+  {(bigint) 3311 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwand < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwand < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwand < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwand < Token: superclass typecheck marker */},
-  {(bigint) 3303 /* 4: TKwand < TKwand: superclass typecheck marker */},
+  {(bigint) 3311 /* 4: TKwand < TKwand: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18033,11 +14192,11 @@ val_t NEW_TKwand_lexer___TKwand___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwor[72] = {
-  {(bigint) 3195 /* 0: Identity */},
+  {(bigint) 3203 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwor < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwor < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwor < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwor < Token: superclass typecheck marker */},
-  {(bigint) 3195 /* 4: TKwor < TKwor: superclass typecheck marker */},
+  {(bigint) 3203 /* 4: TKwor < TKwor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18137,11 +14296,11 @@ val_t NEW_TKwor_lexer___TKwor___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwnot[72] = {
-  {(bigint) 3207 /* 0: Identity */},
+  {(bigint) 3215 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwnot < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwnot < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwnot < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwnot < Token: superclass typecheck marker */},
-  {(bigint) 3207 /* 4: TKwnot < TKwnot: superclass typecheck marker */},
+  {(bigint) 3215 /* 4: TKwnot < TKwnot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18241,11 +14400,11 @@ val_t NEW_TKwnot_lexer___TKwnot___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwreturn[72] = {
-  {(bigint) 3171 /* 0: Identity */},
+  {(bigint) 3179 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwreturn < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwreturn < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwreturn < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwreturn < Token: superclass typecheck marker */},
-  {(bigint) 3171 /* 4: TKwreturn < TKwreturn: superclass typecheck marker */},
+  {(bigint) 3179 /* 4: TKwreturn < TKwreturn: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18345,11 +14504,11 @@ val_t NEW_TKwreturn_lexer___TKwreturn___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwcontinue[72] = {
-  {(bigint) 3279 /* 0: Identity */},
+  {(bigint) 3287 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwcontinue < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwcontinue < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwcontinue < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwcontinue < Token: superclass typecheck marker */},
-  {(bigint) 3279 /* 4: TKwcontinue < TKwcontinue: superclass typecheck marker */},
+  {(bigint) 3287 /* 4: TKwcontinue < TKwcontinue: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18449,11 +14608,11 @@ val_t NEW_TKwcontinue_lexer___TKwcontinue___init_tk(val_t p0, val_t p1, val_t p2
   return self;
 }
 const classtable_elt_t VFT_TKwbreak[72] = {
-  {(bigint) 3287 /* 0: Identity */},
+  {(bigint) 3295 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwbreak < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwbreak < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwbreak < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwbreak < Token: superclass typecheck marker */},
-  {(bigint) 3287 /* 4: TKwbreak < TKwbreak: superclass typecheck marker */},
+  {(bigint) 3295 /* 4: TKwbreak < TKwbreak: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18553,11 +14712,11 @@ val_t NEW_TKwbreak_lexer___TKwbreak___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwabort[72] = {
-  {(bigint) 3311 /* 0: Identity */},
+  {(bigint) 3319 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwabort < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwabort < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwabort < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwabort < Token: superclass typecheck marker */},
-  {(bigint) 3311 /* 4: TKwabort < TKwabort: superclass typecheck marker */},
+  {(bigint) 3319 /* 4: TKwabort < TKwabort: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18657,11 +14816,11 @@ val_t NEW_TKwabort_lexer___TKwabort___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwassert[72] = {
-  {(bigint) 3295 /* 0: Identity */},
+  {(bigint) 3303 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwassert < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwassert < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwassert < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwassert < Token: superclass typecheck marker */},
-  {(bigint) 3295 /* 4: TKwassert < TKwassert: superclass typecheck marker */},
+  {(bigint) 3303 /* 4: TKwassert < TKwassert: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18761,11 +14920,11 @@ val_t NEW_TKwassert_lexer___TKwassert___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwnew[72] = {
-  {(bigint) 3211 /* 0: Identity */},
+  {(bigint) 3219 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwnew < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwnew < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwnew < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwnew < Token: superclass typecheck marker */},
-  {(bigint) 3211 /* 4: TKwnew < TKwnew: superclass typecheck marker */},
+  {(bigint) 3219 /* 4: TKwnew < TKwnew: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18865,11 +15024,11 @@ val_t NEW_TKwnew_lexer___TKwnew___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwisa[72] = {
-  {(bigint) 3219 /* 0: Identity */},
+  {(bigint) 3227 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwisa < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwisa < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwisa < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwisa < Token: superclass typecheck marker */},
-  {(bigint) 3219 /* 4: TKwisa < TKwisa: superclass typecheck marker */},
+  {(bigint) 3227 /* 4: TKwisa < TKwisa: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -18969,11 +15128,11 @@ val_t NEW_TKwisa_lexer___TKwisa___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwonce[72] = {
-  {(bigint) 3199 /* 0: Identity */},
+  {(bigint) 3207 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwonce < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwonce < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwonce < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwonce < Token: superclass typecheck marker */},
-  {(bigint) 3199 /* 4: TKwonce < TKwonce: superclass typecheck marker */},
+  {(bigint) 3207 /* 4: TKwonce < TKwonce: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19073,11 +15232,11 @@ val_t NEW_TKwonce_lexer___TKwonce___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwsuper[72] = {
-  {(bigint) 3159 /* 0: Identity */},
+  {(bigint) 3167 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwsuper < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwsuper < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwsuper < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwsuper < Token: superclass typecheck marker */},
-  {(bigint) 3159 /* 4: TKwsuper < TKwsuper: superclass typecheck marker */},
+  {(bigint) 3167 /* 4: TKwsuper < TKwsuper: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19177,11 +15336,11 @@ val_t NEW_TKwsuper_lexer___TKwsuper___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwself[72] = {
-  {(bigint) 3167 /* 0: Identity */},
+  {(bigint) 3175 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwself < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwself < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwself < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwself < Token: superclass typecheck marker */},
-  {(bigint) 3167 /* 4: TKwself < TKwself: superclass typecheck marker */},
+  {(bigint) 3175 /* 4: TKwself < TKwself: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19281,11 +15440,11 @@ val_t NEW_TKwself_lexer___TKwself___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwtrue[72] = {
-  {(bigint) 3151 /* 0: Identity */},
+  {(bigint) 3159 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwtrue < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwtrue < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwtrue < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwtrue < Token: superclass typecheck marker */},
-  {(bigint) 3151 /* 4: TKwtrue < TKwtrue: superclass typecheck marker */},
+  {(bigint) 3159 /* 4: TKwtrue < TKwtrue: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19385,11 +15544,11 @@ val_t NEW_TKwtrue_lexer___TKwtrue___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwfalse[72] = {
-  {(bigint) 3259 /* 0: Identity */},
+  {(bigint) 3267 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwfalse < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwfalse < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwfalse < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwfalse < Token: superclass typecheck marker */},
-  {(bigint) 3259 /* 4: TKwfalse < TKwfalse: superclass typecheck marker */},
+  {(bigint) 3267 /* 4: TKwfalse < TKwfalse: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19489,11 +15648,11 @@ val_t NEW_TKwfalse_lexer___TKwfalse___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwnull[72] = {
-  {(bigint) 3203 /* 0: Identity */},
+  {(bigint) 3211 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwnull < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwnull < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwnull < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwnull < Token: superclass typecheck marker */},
-  {(bigint) 3203 /* 4: TKwnull < TKwnull: superclass typecheck marker */},
+  {(bigint) 3211 /* 4: TKwnull < TKwnull: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19593,11 +15752,11 @@ val_t NEW_TKwnull_lexer___TKwnull___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwas[72] = {
-  {(bigint) 3299 /* 0: Identity */},
+  {(bigint) 3307 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwas < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwas < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwas < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwas < Token: superclass typecheck marker */},
-  {(bigint) 3299 /* 4: TKwas < TKwas: superclass typecheck marker */},
+  {(bigint) 3307 /* 4: TKwas < TKwas: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19697,11 +15856,11 @@ val_t NEW_TKwas_lexer___TKwas___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TKwwith[72] = {
-  {(bigint) 3131 /* 0: Identity */},
+  {(bigint) 3139 /* 0: Identity */},
   {(bigint) 3 /* 1: TKwwith < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TKwwith < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TKwwith < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TKwwith < Token: superclass typecheck marker */},
-  {(bigint) 3131 /* 4: TKwwith < TKwwith: superclass typecheck marker */},
+  {(bigint) 3139 /* 4: TKwwith < TKwwith: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19801,11 +15960,11 @@ val_t NEW_TKwwith_lexer___TKwwith___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TOpar[72] = {
-  {(bigint) 3091 /* 0: Identity */},
+  {(bigint) 3099 /* 0: Identity */},
   {(bigint) 3 /* 1: TOpar < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TOpar < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TOpar < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TOpar < Token: superclass typecheck marker */},
-  {(bigint) 3091 /* 4: TOpar < TOpar: superclass typecheck marker */},
+  {(bigint) 3099 /* 4: TOpar < TOpar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -19905,11 +16064,11 @@ val_t NEW_TOpar_lexer___TOpar___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TCpar[72] = {
-  {(bigint) 3355 /* 0: Identity */},
+  {(bigint) 3363 /* 0: Identity */},
   {(bigint) 3 /* 1: TCpar < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TCpar < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TCpar < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TCpar < Token: superclass typecheck marker */},
-  {(bigint) 3355 /* 4: TCpar < TCpar: superclass typecheck marker */},
+  {(bigint) 3363 /* 4: TCpar < TCpar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20009,11 +16168,11 @@ val_t NEW_TCpar_lexer___TCpar___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TObra[72] = {
-  {(bigint) 3095 /* 0: Identity */},
+  {(bigint) 3103 /* 0: Identity */},
   {(bigint) 3 /* 1: TObra < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TObra < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TObra < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TObra < Token: superclass typecheck marker */},
-  {(bigint) 3095 /* 4: TObra < TObra: superclass typecheck marker */},
+  {(bigint) 3103 /* 4: TObra < TObra: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20113,11 +16272,11 @@ val_t NEW_TObra_lexer___TObra___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TCbra[72] = {
-  {(bigint) 3379 /* 0: Identity */},
+  {(bigint) 3387 /* 0: Identity */},
   {(bigint) 3 /* 1: TCbra < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TCbra < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TCbra < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TCbra < Token: superclass typecheck marker */},
-  {(bigint) 3379 /* 4: TCbra < TCbra: superclass typecheck marker */},
+  {(bigint) 3387 /* 4: TCbra < TCbra: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20217,11 +16376,11 @@ val_t NEW_TCbra_lexer___TCbra___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TComma[72] = {
-  {(bigint) 3363 /* 0: Identity */},
+  {(bigint) 3371 /* 0: Identity */},
   {(bigint) 3 /* 1: TComma < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TComma < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TComma < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TComma < Token: superclass typecheck marker */},
-  {(bigint) 3363 /* 4: TComma < TComma: superclass typecheck marker */},
+  {(bigint) 3371 /* 4: TComma < TComma: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20321,11 +16480,11 @@ val_t NEW_TComma_lexer___TComma___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TColumn[72] = {
-  {(bigint) 3367 /* 0: Identity */},
+  {(bigint) 3375 /* 0: Identity */},
   {(bigint) 3 /* 1: TColumn < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TColumn < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TColumn < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TColumn < Token: superclass typecheck marker */},
-  {(bigint) 3367 /* 4: TColumn < TColumn: superclass typecheck marker */},
+  {(bigint) 3375 /* 4: TColumn < TColumn: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20425,11 +16584,11 @@ val_t NEW_TColumn_lexer___TColumn___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TQuad[72] = {
-  {(bigint) 3075 /* 0: Identity */},
+  {(bigint) 3083 /* 0: Identity */},
   {(bigint) 3 /* 1: TQuad < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TQuad < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TQuad < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TQuad < Token: superclass typecheck marker */},
-  {(bigint) 3075 /* 4: TQuad < TQuad: superclass typecheck marker */},
+  {(bigint) 3083 /* 4: TQuad < TQuad: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20529,11 +16688,11 @@ val_t NEW_TQuad_lexer___TQuad___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TAssign[72] = {
-  {(bigint) 3387 /* 0: Identity */},
+  {(bigint) 3395 /* 0: Identity */},
   {(bigint) 3 /* 1: TAssign < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TAssign < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TAssign < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TAssign < Token: superclass typecheck marker */},
-  {(bigint) 3387 /* 4: TAssign < TAssign: superclass typecheck marker */},
+  {(bigint) 3395 /* 4: TAssign < TAssign: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20633,11 +16792,11 @@ val_t NEW_TAssign_lexer___TAssign___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TPluseq[72] = {
-  {(bigint) 3079 /* 0: Identity */},
+  {(bigint) 3087 /* 0: Identity */},
   {(bigint) 3 /* 1: TPluseq < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TPluseq < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TPluseq < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TPluseq < Token: superclass typecheck marker */},
-  {(bigint) 3079 /* 4: TPluseq < TPluseq: superclass typecheck marker */},
+  {(bigint) 3087 /* 4: TPluseq < TPluseq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20737,11 +16896,11 @@ val_t NEW_TPluseq_lexer___TPluseq___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TMinuseq[72] = {
-  {(bigint) 3107 /* 0: Identity */},
+  {(bigint) 3115 /* 0: Identity */},
   {(bigint) 3 /* 1: TMinuseq < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TMinuseq < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TMinuseq < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TMinuseq < Token: superclass typecheck marker */},
-  {(bigint) 3107 /* 4: TMinuseq < TMinuseq: superclass typecheck marker */},
+  {(bigint) 3115 /* 4: TMinuseq < TMinuseq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20841,11 +17000,11 @@ val_t NEW_TMinuseq_lexer___TMinuseq___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TDotdotdot[72] = {
-  {(bigint) 3343 /* 0: Identity */},
+  {(bigint) 3351 /* 0: Identity */},
   {(bigint) 3 /* 1: TDotdotdot < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TDotdotdot < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TDotdotdot < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TDotdotdot < Token: superclass typecheck marker */},
-  {(bigint) 3343 /* 4: TDotdotdot < TDotdotdot: superclass typecheck marker */},
+  {(bigint) 3351 /* 4: TDotdotdot < TDotdotdot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -20945,11 +17104,11 @@ val_t NEW_TDotdotdot_lexer___TDotdotdot___init_tk(val_t p0, val_t p1, val_t p2)
   return self;
 }
 const classtable_elt_t VFT_TDotdot[72] = {
-  {(bigint) 3347 /* 0: Identity */},
+  {(bigint) 3355 /* 0: Identity */},
   {(bigint) 3 /* 1: TDotdot < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TDotdot < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TDotdot < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TDotdot < Token: superclass typecheck marker */},
-  {(bigint) 3347 /* 4: TDotdot < TDotdot: superclass typecheck marker */},
+  {(bigint) 3355 /* 4: TDotdot < TDotdot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21049,11 +17208,11 @@ val_t NEW_TDotdot_lexer___TDotdot___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TDot[72] = {
-  {(bigint) 3351 /* 0: Identity */},
+  {(bigint) 3359 /* 0: Identity */},
   {(bigint) 3 /* 1: TDot < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TDot < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TDot < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TDot < Token: superclass typecheck marker */},
-  {(bigint) 3351 /* 4: TDot < TDot: superclass typecheck marker */},
+  {(bigint) 3359 /* 4: TDot < TDot: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21153,11 +17312,11 @@ val_t NEW_TDot_lexer___TDot___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TPlus[72] = {
-  {(bigint) 3083 /* 0: Identity */},
+  {(bigint) 3091 /* 0: Identity */},
   {(bigint) 3 /* 1: TPlus < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TPlus < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TPlus < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TPlus < Token: superclass typecheck marker */},
-  {(bigint) 3083 /* 4: TPlus < TPlus: superclass typecheck marker */},
+  {(bigint) 3091 /* 4: TPlus < TPlus: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21257,11 +17416,11 @@ val_t NEW_TPlus_lexer___TPlus___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TMinus[72] = {
-  {(bigint) 3111 /* 0: Identity */},
+  {(bigint) 3119 /* 0: Identity */},
   {(bigint) 3 /* 1: TMinus < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TMinus < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TMinus < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TMinus < Token: superclass typecheck marker */},
-  {(bigint) 3111 /* 4: TMinus < TMinus: superclass typecheck marker */},
+  {(bigint) 3119 /* 4: TMinus < TMinus: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21361,11 +17520,11 @@ val_t NEW_TMinus_lexer___TMinus___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TStar[72] = {
-  {(bigint) 3067 /* 0: Identity */},
+  {(bigint) 3075 /* 0: Identity */},
   {(bigint) 3 /* 1: TStar < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TStar < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TStar < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TStar < Token: superclass typecheck marker */},
-  {(bigint) 3067 /* 4: TStar < TStar: superclass typecheck marker */},
+  {(bigint) 3075 /* 4: TStar < TStar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21465,11 +17624,11 @@ val_t NEW_TStar_lexer___TStar___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TSlash[72] = {
-  {(bigint) 3071 /* 0: Identity */},
+  {(bigint) 3079 /* 0: Identity */},
   {(bigint) 3 /* 1: TSlash < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TSlash < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TSlash < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TSlash < Token: superclass typecheck marker */},
-  {(bigint) 3071 /* 4: TSlash < TSlash: superclass typecheck marker */},
+  {(bigint) 3079 /* 4: TSlash < TSlash: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21569,11 +17728,11 @@ val_t NEW_TSlash_lexer___TSlash___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TPercent[72] = {
-  {(bigint) 3087 /* 0: Identity */},
+  {(bigint) 3095 /* 0: Identity */},
   {(bigint) 3 /* 1: TPercent < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TPercent < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TPercent < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TPercent < Token: superclass typecheck marker */},
-  {(bigint) 3087 /* 4: TPercent < TPercent: superclass typecheck marker */},
+  {(bigint) 3095 /* 4: TPercent < TPercent: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21673,11 +17832,11 @@ val_t NEW_TPercent_lexer___TPercent___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TEq[72] = {
-  {(bigint) 3331 /* 0: Identity */},
+  {(bigint) 3339 /* 0: Identity */},
   {(bigint) 3 /* 1: TEq < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TEq < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TEq < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TEq < Token: superclass typecheck marker */},
-  {(bigint) 3331 /* 4: TEq < TEq: superclass typecheck marker */},
+  {(bigint) 3339 /* 4: TEq < TEq: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21777,11 +17936,11 @@ val_t NEW_TEq_lexer___TEq___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TNe[72] = {
-  {(bigint) 3103 /* 0: Identity */},
+  {(bigint) 3111 /* 0: Identity */},
   {(bigint) 3 /* 1: TNe < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TNe < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TNe < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TNe < Token: superclass typecheck marker */},
-  {(bigint) 3103 /* 4: TNe < TNe: superclass typecheck marker */},
+  {(bigint) 3111 /* 4: TNe < TNe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21881,11 +18040,11 @@ val_t NEW_TNe_lexer___TNe___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TLt[72] = {
-  {(bigint) 3119 /* 0: Identity */},
+  {(bigint) 3127 /* 0: Identity */},
   {(bigint) 3 /* 1: TLt < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TLt < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TLt < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TLt < Token: superclass typecheck marker */},
-  {(bigint) 3119 /* 4: TLt < TLt: superclass typecheck marker */},
+  {(bigint) 3127 /* 4: TLt < TLt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -21985,11 +18144,11 @@ val_t NEW_TLt_lexer___TLt___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TLe[72] = {
-  {(bigint) 3123 /* 0: Identity */},
+  {(bigint) 3131 /* 0: Identity */},
   {(bigint) 3 /* 1: TLe < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TLe < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TLe < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TLe < Token: superclass typecheck marker */},
-  {(bigint) 3123 /* 4: TLe < TLe: superclass typecheck marker */},
+  {(bigint) 3131 /* 4: TLe < TLe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22089,11 +18248,11 @@ val_t NEW_TLe_lexer___TLe___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TGt[72] = {
-  {(bigint) 3319 /* 0: Identity */},
+  {(bigint) 3327 /* 0: Identity */},
   {(bigint) 3 /* 1: TGt < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TGt < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TGt < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TGt < Token: superclass typecheck marker */},
-  {(bigint) 3319 /* 4: TGt < TGt: superclass typecheck marker */},
+  {(bigint) 3327 /* 4: TGt < TGt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22193,11 +18352,11 @@ val_t NEW_TGt_lexer___TGt___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TGe[72] = {
-  {(bigint) 3323 /* 0: Identity */},
+  {(bigint) 3331 /* 0: Identity */},
   {(bigint) 3 /* 1: TGe < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TGe < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TGe < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TGe < Token: superclass typecheck marker */},
-  {(bigint) 3323 /* 4: TGe < TGe: superclass typecheck marker */},
+  {(bigint) 3331 /* 4: TGe < TGe: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22297,11 +18456,11 @@ val_t NEW_TGe_lexer___TGe___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TStarship[72] = {
-  {(bigint) 3063 /* 0: Identity */},
+  {(bigint) 3071 /* 0: Identity */},
   {(bigint) 3 /* 1: TStarship < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TStarship < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TStarship < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TStarship < Token: superclass typecheck marker */},
-  {(bigint) 3063 /* 4: TStarship < TStarship: superclass typecheck marker */},
+  {(bigint) 3071 /* 4: TStarship < TStarship: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22401,11 +18560,11 @@ val_t NEW_TStarship_lexer___TStarship___init_tk(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_TClassid[72] = {
-  {(bigint) 3371 /* 0: Identity */},
+  {(bigint) 3379 /* 0: Identity */},
   {(bigint) 3 /* 1: TClassid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TClassid < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TClassid < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TClassid < Token: superclass typecheck marker */},
-  {(bigint) 3371 /* 4: TClassid < TClassid: superclass typecheck marker */},
+  {(bigint) 3379 /* 4: TClassid < TClassid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22505,11 +18664,11 @@ val_t NEW_TClassid_lexer___TClassid___init_tk(val_t p0, val_t p1, val_t p2, val_
   return self;
 }
 const classtable_elt_t VFT_TId[72] = {
-  {(bigint) 3315 /* 0: Identity */},
+  {(bigint) 3323 /* 0: Identity */},
   {(bigint) 3 /* 1: TId < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TId < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TId < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TId < Token: superclass typecheck marker */},
-  {(bigint) 3315 /* 4: TId < TId: superclass typecheck marker */},
+  {(bigint) 3323 /* 4: TId < TId: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22609,11 +18768,11 @@ val_t NEW_TId_lexer___TId___init_tk(val_t p0, val_t p1, val_t p2, val_t p3) {
   return self;
 }
 const classtable_elt_t VFT_TAttrid[72] = {
-  {(bigint) 3383 /* 0: Identity */},
+  {(bigint) 3391 /* 0: Identity */},
   {(bigint) 3 /* 1: TAttrid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TAttrid < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TAttrid < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TAttrid < Token: superclass typecheck marker */},
-  {(bigint) 3383 /* 4: TAttrid < TAttrid: superclass typecheck marker */},
+  {(bigint) 3391 /* 4: TAttrid < TAttrid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22713,11 +18872,11 @@ val_t NEW_TAttrid_lexer___TAttrid___init_tk(val_t p0, val_t p1, val_t p2, val_t
   return self;
 }
 const classtable_elt_t VFT_TNumber[72] = {
-  {(bigint) 3099 /* 0: Identity */},
+  {(bigint) 3107 /* 0: Identity */},
   {(bigint) 3 /* 1: TNumber < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TNumber < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TNumber < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TNumber < Token: superclass typecheck marker */},
-  {(bigint) 3099 /* 4: TNumber < TNumber: superclass typecheck marker */},
+  {(bigint) 3107 /* 4: TNumber < TNumber: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22817,11 +18976,11 @@ val_t NEW_TNumber_lexer___TNumber___init_tk(val_t p0, val_t p1, val_t p2, val_t
   return self;
 }
 const classtable_elt_t VFT_TFloat[72] = {
-  {(bigint) 3327 /* 0: Identity */},
+  {(bigint) 3335 /* 0: Identity */},
   {(bigint) 3 /* 1: TFloat < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TFloat < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TFloat < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TFloat < Token: superclass typecheck marker */},
-  {(bigint) 3327 /* 4: TFloat < TFloat: superclass typecheck marker */},
+  {(bigint) 3335 /* 4: TFloat < TFloat: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -22921,11 +19080,11 @@ val_t NEW_TFloat_lexer___TFloat___init_tk(val_t p0, val_t p1, val_t p2, val_t p3
   return self;
 }
 const classtable_elt_t VFT_TChar[72] = {
-  {(bigint) 3375 /* 0: Identity */},
+  {(bigint) 3383 /* 0: Identity */},
   {(bigint) 3 /* 1: TChar < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TChar < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TChar < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TChar < Token: superclass typecheck marker */},
-  {(bigint) 3375 /* 4: TChar < TChar: superclass typecheck marker */},
+  {(bigint) 3383 /* 4: TChar < TChar: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23025,11 +19184,11 @@ val_t NEW_TChar_lexer___TChar___init_tk(val_t p0, val_t p1, val_t p2, val_t p3)
   return self;
 }
 const classtable_elt_t VFT_TString[72] = {
-  {(bigint) 3055 /* 0: Identity */},
+  {(bigint) 3063 /* 0: Identity */},
   {(bigint) 3 /* 1: TString < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TString < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TString < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TString < Token: superclass typecheck marker */},
-  {(bigint) 3055 /* 4: TString < TString: superclass typecheck marker */},
+  {(bigint) 3063 /* 4: TString < TString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23129,11 +19288,11 @@ val_t NEW_TString_lexer___TString___init_tk(val_t p0, val_t p1, val_t p2, val_t
   return self;
 }
 const classtable_elt_t VFT_TStartString[72] = {
-  {(bigint) 3059 /* 0: Identity */},
+  {(bigint) 3067 /* 0: Identity */},
   {(bigint) 3 /* 1: TStartString < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TStartString < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TStartString < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TStartString < Token: superclass typecheck marker */},
-  {(bigint) 3059 /* 4: TStartString < TStartString: superclass typecheck marker */},
+  {(bigint) 3067 /* 4: TStartString < TStartString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23233,11 +19392,11 @@ val_t NEW_TStartString_lexer___TStartString___init_tk(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_TMidString[72] = {
-  {(bigint) 3115 /* 0: Identity */},
+  {(bigint) 3123 /* 0: Identity */},
   {(bigint) 3 /* 1: TMidString < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TMidString < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TMidString < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TMidString < Token: superclass typecheck marker */},
-  {(bigint) 3115 /* 4: TMidString < TMidString: superclass typecheck marker */},
+  {(bigint) 3123 /* 4: TMidString < TMidString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23337,11 +19496,11 @@ val_t NEW_TMidString_lexer___TMidString___init_tk(val_t p0, val_t p1, val_t p2,
   return self;
 }
 const classtable_elt_t VFT_TEndString[72] = {
-  {(bigint) 3339 /* 0: Identity */},
+  {(bigint) 3347 /* 0: Identity */},
   {(bigint) 3 /* 1: TEndString < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: TEndString < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: TEndString < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: TEndString < Token: superclass typecheck marker */},
-  {(bigint) 3339 /* 4: TEndString < TEndString: superclass typecheck marker */},
+  {(bigint) 3347 /* 4: TEndString < TEndString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23441,11 +19600,11 @@ val_t NEW_TEndString_lexer___TEndString___init_tk(val_t p0, val_t p1, val_t p2,
   return self;
 }
 const classtable_elt_t VFT_EOF[73] = {
-  {(bigint) 3575 /* 0: Identity */},
+  {(bigint) 3587 /* 0: Identity */},
   {(bigint) 3 /* 1: EOF < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: EOF < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: EOF < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: EOF < Token: superclass typecheck marker */},
-  {(bigint) 3575 /* 4: EOF < EOF: superclass typecheck marker */},
+  {(bigint) 3587 /* 4: EOF < EOF: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23546,12 +19705,12 @@ val_t NEW_EOF_lexer___EOF___init(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_PError[78] = {
-  {(bigint) 3647 /* 0: Identity */},
+  {(bigint) 3655 /* 0: Identity */},
   {(bigint) 3 /* 1: PError < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PError < PNode: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PError < PNode: superclass typecheck marker */},
   {(bigint) 203 /* 3: PError < Token: superclass typecheck marker */},
-  {(bigint) 3575 /* 4: PError < EOF: superclass typecheck marker */},
-  {(bigint) 3647 /* 5: PError < PError: superclass typecheck marker */},
+  {(bigint) 3587 /* 4: PError < EOF: superclass typecheck marker */},
+  {(bigint) 3655 /* 5: PError < PError: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23657,11 +19816,11 @@ val_t NEW_PError_lexer___PError___init_error(val_t p0, val_t p1, val_t p2, val_t
   return self;
 }
 const classtable_elt_t VFT_PModule[69] = {
-  {(bigint) 3439 /* 0: Identity */},
+  {(bigint) 3447 /* 0: Identity */},
   {(bigint) 3 /* 1: PModule < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PModule < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PModule < Prod: superclass typecheck marker */},
-  {(bigint) 3439 /* 4: PModule < PModule: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PModule < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PModule < Prod: superclass typecheck marker */},
+  {(bigint) 3447 /* 4: PModule < PModule: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23747,11 +19906,11 @@ val_t NEW_PModule_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PPackagedecl[69] = {
-  {(bigint) 3435 /* 0: Identity */},
+  {(bigint) 3443 /* 0: Identity */},
   {(bigint) 3 /* 1: PPackagedecl < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PPackagedecl < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PPackagedecl < Prod: superclass typecheck marker */},
-  {(bigint) 3435 /* 4: PPackagedecl < PPackagedecl: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PPackagedecl < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PPackagedecl < Prod: superclass typecheck marker */},
+  {(bigint) 3443 /* 4: PPackagedecl < PPackagedecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23837,11 +19996,11 @@ val_t NEW_PPackagedecl_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PImport[71] = {
-  {(bigint) 3447 /* 0: Identity */},
+  {(bigint) 3455 /* 0: Identity */},
   {(bigint) 3 /* 1: PImport < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PImport < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PImport < Prod: superclass typecheck marker */},
-  {(bigint) 3447 /* 4: PImport < PImport: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PImport < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PImport < Prod: superclass typecheck marker */},
+  {(bigint) 3455 /* 4: PImport < PImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -23929,11 +20088,11 @@ val_t NEW_PImport_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PVisibility[70] = {
-  {(bigint) 3407 /* 0: Identity */},
+  {(bigint) 3415 /* 0: Identity */},
   {(bigint) 3 /* 1: PVisibility < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3407 /* 4: PVisibility < PVisibility: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PVisibility < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 3415 /* 4: PVisibility < PVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24020,11 +20179,11 @@ val_t NEW_PVisibility_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PClassdef[76] = {
-  {(bigint) 3475 /* 0: Identity */},
+  {(bigint) 3483 /* 0: Identity */},
   {(bigint) 3 /* 1: PClassdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3475 /* 4: PClassdef < PClassdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PClassdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 3483 /* 4: PClassdef < PClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24118,11 +20277,11 @@ val_t NEW_PClassdef_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PClasskind[72] = {
-  {(bigint) 3471 /* 0: Identity */},
+  {(bigint) 3479 /* 0: Identity */},
   {(bigint) 3 /* 1: PClasskind < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3471 /* 4: PClasskind < PClasskind: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PClasskind < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 3479 /* 4: PClasskind < PClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24211,11 +20370,11 @@ val_t NEW_PClasskind_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PFormaldef[69] = {
-  {(bigint) 3451 /* 0: Identity */},
+  {(bigint) 3459 /* 0: Identity */},
   {(bigint) 3 /* 1: PFormaldef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PFormaldef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PFormaldef < Prod: superclass typecheck marker */},
-  {(bigint) 3451 /* 4: PFormaldef < PFormaldef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PFormaldef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PFormaldef < Prod: superclass typecheck marker */},
+  {(bigint) 3459 /* 4: PFormaldef < PFormaldef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24301,11 +20460,11 @@ val_t NEW_PFormaldef_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PSuperclass[69] = {
-  {(bigint) 3415 /* 0: Identity */},
+  {(bigint) 3423 /* 0: Identity */},
   {(bigint) 3 /* 1: PSuperclass < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PSuperclass < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PSuperclass < Prod: superclass typecheck marker */},
-  {(bigint) 3415 /* 4: PSuperclass < PSuperclass: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PSuperclass < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PSuperclass < Prod: superclass typecheck marker */},
+  {(bigint) 3423 /* 4: PSuperclass < PSuperclass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24391,11 +20550,11 @@ val_t NEW_PSuperclass_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PPropdef[75] = {
-  {(bigint) 3427 /* 0: Identity */},
+  {(bigint) 3435 /* 0: Identity */},
   {(bigint) 3 /* 1: PPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: PPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: PPropdef < PPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24489,11 +20648,11 @@ val_t NEW_PPropdef_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PAble[71] = {
-  {(bigint) 3483 /* 0: Identity */},
+  {(bigint) 3491 /* 0: Identity */},
   {(bigint) 3 /* 1: PAble < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PAble < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PAble < Prod: superclass typecheck marker */},
-  {(bigint) 3483 /* 4: PAble < PAble: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PAble < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PAble < Prod: superclass typecheck marker */},
+  {(bigint) 3491 /* 4: PAble < PAble: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24583,11 +20742,11 @@ val_t NEW_PAble_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PMethid[71] = {
-  {(bigint) 3443 /* 0: Identity */},
+  {(bigint) 3451 /* 0: Identity */},
   {(bigint) 3 /* 1: PMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: PMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: PMethid < PMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24676,11 +20835,11 @@ val_t NEW_PMethid_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PSignature[71] = {
-  {(bigint) 3419 /* 0: Identity */},
+  {(bigint) 3427 /* 0: Identity */},
   {(bigint) 3 /* 1: PSignature < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PSignature < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PSignature < Prod: superclass typecheck marker */},
-  {(bigint) 3419 /* 4: PSignature < PSignature: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PSignature < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PSignature < Prod: superclass typecheck marker */},
+  {(bigint) 3427 /* 4: PSignature < PSignature: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24768,11 +20927,11 @@ val_t NEW_PSignature_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PParam[79] = {
-  {(bigint) 3431 /* 0: Identity */},
+  {(bigint) 3439 /* 0: Identity */},
   {(bigint) 3 /* 1: PParam < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PParam < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PParam < Prod: superclass typecheck marker */},
-  {(bigint) 3431 /* 4: PParam < PParam: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PParam < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PParam < Prod: superclass typecheck marker */},
+  {(bigint) 3439 /* 4: PParam < PParam: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24876,11 +21035,11 @@ val_t NEW_PParam_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PClosureDecl[71] = {
-  {(bigint) 3467 /* 0: Identity */},
+  {(bigint) 3475 /* 0: Identity */},
   {(bigint) 3 /* 1: PClosureDecl < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PClosureDecl < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PClosureDecl < Prod: superclass typecheck marker */},
-  {(bigint) 3467 /* 4: PClosureDecl < PClosureDecl: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PClosureDecl < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PClosureDecl < Prod: superclass typecheck marker */},
+  {(bigint) 3475 /* 4: PClosureDecl < PClosureDecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -24968,11 +21127,11 @@ val_t NEW_PClosureDecl_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PType[75] = {
-  {(bigint) 3411 /* 0: Identity */},
+  {(bigint) 3419 /* 0: Identity */},
   {(bigint) 3 /* 1: PType < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PType < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PType < Prod: superclass typecheck marker */},
-  {(bigint) 3411 /* 4: PType < PType: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PType < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PType < Prod: superclass typecheck marker */},
+  {(bigint) 3419 /* 4: PType < PType: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25065,11 +21224,11 @@ val_t NEW_PType_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PExpr[77] = {
-  {(bigint) 3455 /* 0: Identity */},
+  {(bigint) 3463 /* 0: Identity */},
   {(bigint) 3 /* 1: PExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: PExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: PExpr < PExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25165,11 +21324,11 @@ val_t NEW_PExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PAssignOp[70] = {
-  {(bigint) 3479 /* 0: Identity */},
+  {(bigint) 3487 /* 0: Identity */},
   {(bigint) 3 /* 1: PAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PAssignOp < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3479 /* 4: PAssignOp < PAssignOp: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PAssignOp < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 3487 /* 4: PAssignOp < PAssignOp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25256,12 +21415,12 @@ val_t NEW_PAssignOp_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PClosureDef[86] = {
-  {(bigint) 3463 /* 0: Identity */},
+  {(bigint) 3471 /* 0: Identity */},
   {(bigint) 3 /* 1: PClosureDef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PClosureDef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PClosureDef < Prod: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PClosureDef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PClosureDef < Prod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3463 /* 5: PClosureDef < PClosureDef: superclass typecheck marker */},
+  {(bigint) 3471 /* 5: PClosureDef < PClosureDef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25369,11 +21528,11 @@ val_t NEW_PClosureDef_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PQualified[69] = {
-  {(bigint) 3423 /* 0: Identity */},
+  {(bigint) 3431 /* 0: Identity */},
   {(bigint) 3 /* 1: PQualified < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PQualified < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PQualified < Prod: superclass typecheck marker */},
-  {(bigint) 3423 /* 4: PQualified < PQualified: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PQualified < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PQualified < Prod: superclass typecheck marker */},
+  {(bigint) 3431 /* 4: PQualified < PQualified: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25459,11 +21618,11 @@ val_t NEW_PQualified_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_PDoc[69] = {
-  {(bigint) 3459 /* 0: Identity */},
+  {(bigint) 3467 /* 0: Identity */},
   {(bigint) 3 /* 1: PDoc < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: PDoc < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: PDoc < Prod: superclass typecheck marker */},
-  {(bigint) 3459 /* 4: PDoc < PDoc: superclass typecheck marker */},
+  {(bigint) 63 /* 2: PDoc < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: PDoc < Prod: superclass typecheck marker */},
+  {(bigint) 3467 /* 4: PDoc < PDoc: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25549,12 +21708,12 @@ val_t NEW_PDoc_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_AModule[79] = {
-  {(bigint) 3823 /* 0: Identity */},
+  {(bigint) 3831 /* 0: Identity */},
   {(bigint) 3 /* 1: AModule < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AModule < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AModule < Prod: superclass typecheck marker */},
-  {(bigint) 3439 /* 4: AModule < PModule: superclass typecheck marker */},
-  {(bigint) 3823 /* 5: AModule < AModule: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AModule < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AModule < Prod: superclass typecheck marker */},
+  {(bigint) 3447 /* 4: AModule < PModule: superclass typecheck marker */},
+  {(bigint) 3831 /* 5: AModule < AModule: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25667,12 +21826,12 @@ val_t NEW_AModule_parser_prod___AModule___init_amodule(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_APackagedecl[78] = {
-  {(bigint) 3807 /* 0: Identity */},
+  {(bigint) 3815 /* 0: Identity */},
   {(bigint) 3 /* 1: APackagedecl < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APackagedecl < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APackagedecl < Prod: superclass typecheck marker */},
-  {(bigint) 3435 /* 4: APackagedecl < PPackagedecl: superclass typecheck marker */},
-  {(bigint) 3807 /* 5: APackagedecl < APackagedecl: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APackagedecl < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APackagedecl < Prod: superclass typecheck marker */},
+  {(bigint) 3443 /* 4: APackagedecl < PPackagedecl: superclass typecheck marker */},
+  {(bigint) 3815 /* 5: APackagedecl < APackagedecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25784,12 +21943,12 @@ val_t NEW_APackagedecl_parser_prod___APackagedecl___init_apackagedecl(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_AImport[80] = {
-  {(bigint) 3863 /* 0: Identity */},
+  {(bigint) 3871 /* 0: Identity */},
   {(bigint) 3 /* 1: AImport < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AImport < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AImport < Prod: superclass typecheck marker */},
-  {(bigint) 3447 /* 4: AImport < PImport: superclass typecheck marker */},
-  {(bigint) 3863 /* 5: AImport < AImport: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AImport < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AImport < Prod: superclass typecheck marker */},
+  {(bigint) 3455 /* 4: AImport < PImport: superclass typecheck marker */},
+  {(bigint) 3871 /* 5: AImport < AImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -25903,12 +22062,12 @@ val_t NEW_AImport_parser_prod___AImport___init_aimport(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_ANoImport[80] = {
-  {(bigint) 3815 /* 0: Identity */},
+  {(bigint) 3823 /* 0: Identity */},
   {(bigint) 3 /* 1: ANoImport < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ANoImport < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ANoImport < Prod: superclass typecheck marker */},
-  {(bigint) 3447 /* 4: ANoImport < PImport: superclass typecheck marker */},
-  {(bigint) 3815 /* 5: ANoImport < ANoImport: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ANoImport < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ANoImport < Prod: superclass typecheck marker */},
+  {(bigint) 3455 /* 4: ANoImport < PImport: superclass typecheck marker */},
+  {(bigint) 3823 /* 5: ANoImport < ANoImport: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26022,12 +22181,12 @@ val_t NEW_ANoImport_parser_prod___ANoImport___init_anoimport(val_t p0, val_t p1,
   return self;
 }
 const classtable_elt_t VFT_APublicVisibility[73] = {
-  {(bigint) 3775 /* 0: Identity */},
+  {(bigint) 3783 /* 0: Identity */},
   {(bigint) 3 /* 1: APublicVisibility < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APublicVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APublicVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3407 /* 4: APublicVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3775 /* 5: APublicVisibility < APublicVisibility: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APublicVisibility < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APublicVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 3415 /* 4: APublicVisibility < PVisibility: superclass typecheck marker */},
+  {(bigint) 3783 /* 5: APublicVisibility < APublicVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26128,12 +22287,12 @@ val_t NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibi
   return self;
 }
 const classtable_elt_t VFT_APrivateVisibility[75] = {
-  {(bigint) 3787 /* 0: Identity */},
+  {(bigint) 3795 /* 0: Identity */},
   {(bigint) 3 /* 1: APrivateVisibility < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APrivateVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APrivateVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3407 /* 4: APrivateVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3787 /* 5: APrivateVisibility < APrivateVisibility: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APrivateVisibility < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APrivateVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 3415 /* 4: APrivateVisibility < PVisibility: superclass typecheck marker */},
+  {(bigint) 3795 /* 5: APrivateVisibility < APrivateVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26238,12 +22397,12 @@ val_t NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevis
   return self;
 }
 const classtable_elt_t VFT_AProtectedVisibility[75] = {
-  {(bigint) 3783 /* 0: Identity */},
+  {(bigint) 3791 /* 0: Identity */},
   {(bigint) 3 /* 1: AProtectedVisibility < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AProtectedVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AProtectedVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3407 /* 4: AProtectedVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3783 /* 5: AProtectedVisibility < AProtectedVisibility: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AProtectedVisibility < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AProtectedVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 3415 /* 4: AProtectedVisibility < PVisibility: superclass typecheck marker */},
+  {(bigint) 3791 /* 5: AProtectedVisibility < AProtectedVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26348,12 +22507,12 @@ val_t NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotec
   return self;
 }
 const classtable_elt_t VFT_AIntrudeVisibility[75] = {
-  {(bigint) 3851 /* 0: Identity */},
+  {(bigint) 3859 /* 0: Identity */},
   {(bigint) 3 /* 1: AIntrudeVisibility < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AIntrudeVisibility < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AIntrudeVisibility < Prod: superclass typecheck marker */},
-  {(bigint) 3407 /* 4: AIntrudeVisibility < PVisibility: superclass typecheck marker */},
-  {(bigint) 3851 /* 5: AIntrudeVisibility < AIntrudeVisibility: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AIntrudeVisibility < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AIntrudeVisibility < Prod: superclass typecheck marker */},
+  {(bigint) 3415 /* 4: AIntrudeVisibility < PVisibility: superclass typecheck marker */},
+  {(bigint) 3859 /* 5: AIntrudeVisibility < AIntrudeVisibility: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26458,12 +22617,12 @@ val_t NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevis
   return self;
 }
 const classtable_elt_t VFT_AClassdef[96] = {
-  {(bigint) 3923 /* 0: Identity */},
+  {(bigint) 3931 /* 0: Identity */},
   {(bigint) 3 /* 1: AClassdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3475 /* 4: AClassdef < PClassdef: superclass typecheck marker */},
-  {(bigint) 3923 /* 5: AClassdef < AClassdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AClassdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 3483 /* 4: AClassdef < PClassdef: superclass typecheck marker */},
+  {(bigint) 3931 /* 5: AClassdef < AClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26604,12 +22763,12 @@ val_t NEW_AClassdef_parser_prod___AClassdef___init_aclassdef(val_t p0, val_t p1,
   return self;
 }
 const classtable_elt_t VFT_ATopClassdef[81] = {
-  {(bigint) 3719 /* 0: Identity */},
+  {(bigint) 3727 /* 0: Identity */},
   {(bigint) 3 /* 1: ATopClassdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ATopClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ATopClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3475 /* 4: ATopClassdef < PClassdef: superclass typecheck marker */},
-  {(bigint) 3719 /* 5: ATopClassdef < ATopClassdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ATopClassdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ATopClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 3483 /* 4: ATopClassdef < PClassdef: superclass typecheck marker */},
+  {(bigint) 3727 /* 5: ATopClassdef < ATopClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26721,12 +22880,12 @@ val_t NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef(val_t p0)
   return self;
 }
 const classtable_elt_t VFT_AMainClassdef[81] = {
-  {(bigint) 3839 /* 0: Identity */},
+  {(bigint) 3847 /* 0: Identity */},
   {(bigint) 3 /* 1: AMainClassdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AMainClassdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AMainClassdef < Prod: superclass typecheck marker */},
-  {(bigint) 3475 /* 4: AMainClassdef < PClassdef: superclass typecheck marker */},
-  {(bigint) 3839 /* 5: AMainClassdef < AMainClassdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AMainClassdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AMainClassdef < Prod: superclass typecheck marker */},
+  {(bigint) 3483 /* 4: AMainClassdef < PClassdef: superclass typecheck marker */},
+  {(bigint) 3847 /* 5: AMainClassdef < AMainClassdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26838,12 +22997,12 @@ val_t NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef(val_t p
   return self;
 }
 const classtable_elt_t VFT_AConcreteClasskind[77] = {
-  {(bigint) 3915 /* 0: Identity */},
+  {(bigint) 3923 /* 0: Identity */},
   {(bigint) 3 /* 1: AConcreteClasskind < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AConcreteClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AConcreteClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3471 /* 4: AConcreteClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3915 /* 5: AConcreteClasskind < AConcreteClasskind: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AConcreteClasskind < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AConcreteClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 3479 /* 4: AConcreteClasskind < PClasskind: superclass typecheck marker */},
+  {(bigint) 3923 /* 5: AConcreteClasskind < AConcreteClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -26950,12 +23109,12 @@ val_t NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcretecl
   return self;
 }
 const classtable_elt_t VFT_AAbstractClasskind[79] = {
-  {(bigint) 3979 /* 0: Identity */},
+  {(bigint) 3987 /* 0: Identity */},
   {(bigint) 3 /* 1: AAbstractClasskind < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAbstractClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAbstractClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3471 /* 4: AAbstractClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3979 /* 5: AAbstractClasskind < AAbstractClasskind: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAbstractClasskind < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAbstractClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 3479 /* 4: AAbstractClasskind < PClasskind: superclass typecheck marker */},
+  {(bigint) 3987 /* 5: AAbstractClasskind < AAbstractClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27066,12 +23225,12 @@ val_t NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractcl
   return self;
 }
 const classtable_elt_t VFT_AInterfaceClasskind[77] = {
-  {(bigint) 3855 /* 0: Identity */},
+  {(bigint) 3863 /* 0: Identity */},
   {(bigint) 3 /* 1: AInterfaceClasskind < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AInterfaceClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AInterfaceClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3471 /* 4: AInterfaceClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3855 /* 5: AInterfaceClasskind < AInterfaceClasskind: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AInterfaceClasskind < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AInterfaceClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 3479 /* 4: AInterfaceClasskind < PClasskind: superclass typecheck marker */},
+  {(bigint) 3863 /* 5: AInterfaceClasskind < AInterfaceClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27178,12 +23337,12 @@ val_t NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfac
   return self;
 }
 const classtable_elt_t VFT_AUniversalClasskind[77] = {
-  {(bigint) 3707 /* 0: Identity */},
+  {(bigint) 3715 /* 0: Identity */},
   {(bigint) 3 /* 1: AUniversalClasskind < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AUniversalClasskind < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AUniversalClasskind < Prod: superclass typecheck marker */},
-  {(bigint) 3471 /* 4: AUniversalClasskind < PClasskind: superclass typecheck marker */},
-  {(bigint) 3707 /* 5: AUniversalClasskind < AUniversalClasskind: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AUniversalClasskind < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AUniversalClasskind < Prod: superclass typecheck marker */},
+  {(bigint) 3479 /* 4: AUniversalClasskind < PClasskind: superclass typecheck marker */},
+  {(bigint) 3715 /* 5: AUniversalClasskind < AUniversalClasskind: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27290,12 +23449,12 @@ val_t NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversa
   return self;
 }
 const classtable_elt_t VFT_AFormaldef[78] = {
-  {(bigint) 3887 /* 0: Identity */},
+  {(bigint) 3895 /* 0: Identity */},
   {(bigint) 3 /* 1: AFormaldef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AFormaldef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AFormaldef < Prod: superclass typecheck marker */},
-  {(bigint) 3451 /* 4: AFormaldef < PFormaldef: superclass typecheck marker */},
-  {(bigint) 3887 /* 5: AFormaldef < AFormaldef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AFormaldef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AFormaldef < Prod: superclass typecheck marker */},
+  {(bigint) 3459 /* 4: AFormaldef < PFormaldef: superclass typecheck marker */},
+  {(bigint) 3895 /* 5: AFormaldef < AFormaldef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27406,12 +23565,12 @@ val_t NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_ASuperclass[80] = {
-  {(bigint) 3727 /* 0: Identity */},
+  {(bigint) 3735 /* 0: Identity */},
   {(bigint) 3 /* 1: ASuperclass < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASuperclass < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASuperclass < Prod: superclass typecheck marker */},
-  {(bigint) 3415 /* 4: ASuperclass < PSuperclass: superclass typecheck marker */},
-  {(bigint) 3727 /* 5: ASuperclass < ASuperclass: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASuperclass < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASuperclass < Prod: superclass typecheck marker */},
+  {(bigint) 3423 /* 4: ASuperclass < PSuperclass: superclass typecheck marker */},
+  {(bigint) 3735 /* 5: ASuperclass < ASuperclass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27524,12 +23683,12 @@ val_t NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_AAttrPropdef[101] = {
-  {(bigint) 3951 /* 0: Identity */},
+  {(bigint) 3959 /* 0: Identity */},
   {(bigint) 3 /* 1: AAttrPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAttrPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAttrPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: AAttrPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3951 /* 5: AAttrPropdef < AAttrPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAttrPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAttrPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: AAttrPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3959 /* 5: AAttrPropdef < AAttrPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27679,12 +23838,12 @@ val_t NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_AMethPropdef[95] = {
-  {(bigint) 3835 /* 0: Identity */},
+  {(bigint) 3843 /* 0: Identity */},
   {(bigint) 3 /* 1: AMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: AMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3835 /* 5: AMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AMethPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: AMethPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 5: AMethPropdef < AMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27820,13 +23979,13 @@ val_t NEW_AMethPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_ADeferredMethPropdef[100] = {
-  {(bigint) 4123 /* 0: Identity */},
+  {(bigint) 4131 /* 0: Identity */},
   {(bigint) 3 /* 1: ADeferredMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ADeferredMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ADeferredMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: ADeferredMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3835 /* 5: ADeferredMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 4123 /* 6: ADeferredMethPropdef < ADeferredMethPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ADeferredMethPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ADeferredMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: ADeferredMethPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 5: ADeferredMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 4131 /* 6: ADeferredMethPropdef < ADeferredMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -27980,13 +24139,13 @@ val_t NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferr
   return self;
 }
 const classtable_elt_t VFT_AInternMethPropdef[100] = {
-  {(bigint) 4095 /* 0: Identity */},
+  {(bigint) 4103 /* 0: Identity */},
   {(bigint) 3 /* 1: AInternMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AInternMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AInternMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: AInternMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3835 /* 5: AInternMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 4095 /* 6: AInternMethPropdef < AInternMethPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AInternMethPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AInternMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: AInternMethPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 5: AInternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 4103 /* 6: AInternMethPropdef < AInternMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28140,13 +24299,13 @@ val_t NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmeth
   return self;
 }
 const classtable_elt_t VFT_AExternMethPropdef[102] = {
-  {(bigint) 4111 /* 0: Identity */},
+  {(bigint) 4119 /* 0: Identity */},
   {(bigint) 3 /* 1: AExternMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AExternMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AExternMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: AExternMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3835 /* 5: AExternMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 4111 /* 6: AExternMethPropdef < AExternMethPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AExternMethPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AExternMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: AExternMethPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 5: AExternMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 4119 /* 6: AExternMethPropdef < AExternMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28304,13 +24463,13 @@ val_t NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmeth
   return self;
 }
 const classtable_elt_t VFT_AConcreteMethPropdef[103] = {
-  {(bigint) 4135 /* 0: Identity */},
+  {(bigint) 4143 /* 0: Identity */},
   {(bigint) 3 /* 1: AConcreteMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AConcreteMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AConcreteMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: AConcreteMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3835 /* 5: AConcreteMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 4135 /* 6: AConcreteMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AConcreteMethPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AConcreteMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: AConcreteMethPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 5: AConcreteMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 4143 /* 6: AConcreteMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28469,14 +24628,14 @@ val_t NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcre
   return self;
 }
 const classtable_elt_t VFT_AConcreteInitPropdef[111] = {
-  {(bigint) 4183 /* 0: Identity */},
+  {(bigint) 4191 /* 0: Identity */},
   {(bigint) 3 /* 1: AConcreteInitPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AConcreteInitPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AConcreteInitPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: AConcreteInitPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3835 /* 5: AConcreteInitPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 4135 /* 6: AConcreteInitPropdef < AConcreteMethPropdef: superclass typecheck marker */},
-  {(bigint) 4183 /* 7: AConcreteInitPropdef < AConcreteInitPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AConcreteInitPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AConcreteInitPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: AConcreteInitPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 5: AConcreteInitPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 4143 /* 6: AConcreteInitPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(bigint) 4191 /* 7: AConcreteInitPropdef < AConcreteInitPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28662,14 +24821,14 @@ val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcre
   return self;
 }
 const classtable_elt_t VFT_AMainMethPropdef[106] = {
-  {(bigint) 4179 /* 0: Identity */},
+  {(bigint) 4187 /* 0: Identity */},
   {(bigint) 3 /* 1: AMainMethPropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AMainMethPropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AMainMethPropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: AMainMethPropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3835 /* 5: AMainMethPropdef < AMethPropdef: superclass typecheck marker */},
-  {(bigint) 4135 /* 6: AMainMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
-  {(bigint) 4179 /* 7: AMainMethPropdef < AMainMethPropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AMainMethPropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AMainMethPropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: AMainMethPropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3843 /* 5: AMainMethPropdef < AMethPropdef: superclass typecheck marker */},
+  {(bigint) 4143 /* 6: AMainMethPropdef < AConcreteMethPropdef: superclass typecheck marker */},
+  {(bigint) 4187 /* 7: AMainMethPropdef < AMainMethPropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28842,12 +25001,12 @@ val_t NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropde
   return self;
 }
 const classtable_elt_t VFT_ATypePropdef[92] = {
-  {(bigint) 3711 /* 0: Identity */},
+  {(bigint) 3719 /* 0: Identity */},
   {(bigint) 3 /* 1: ATypePropdef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ATypePropdef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ATypePropdef < Prod: superclass typecheck marker */},
-  {(bigint) 3427 /* 4: ATypePropdef < PPropdef: superclass typecheck marker */},
-  {(bigint) 3711 /* 5: ATypePropdef < ATypePropdef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ATypePropdef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ATypePropdef < Prod: superclass typecheck marker */},
+  {(bigint) 3435 /* 4: ATypePropdef < PPropdef: superclass typecheck marker */},
+  {(bigint) 3719 /* 5: ATypePropdef < ATypePropdef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -28980,12 +25139,12 @@ val_t NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_AReadAble[76] = {
-  {(bigint) 3763 /* 0: Identity */},
+  {(bigint) 3771 /* 0: Identity */},
   {(bigint) 3 /* 1: AReadAble < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AReadAble < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AReadAble < Prod: superclass typecheck marker */},
-  {(bigint) 3483 /* 4: AReadAble < PAble: superclass typecheck marker */},
-  {(bigint) 3763 /* 5: AReadAble < AReadAble: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AReadAble < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AReadAble < Prod: superclass typecheck marker */},
+  {(bigint) 3491 /* 4: AReadAble < PAble: superclass typecheck marker */},
+  {(bigint) 3771 /* 5: AReadAble < AReadAble: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29093,12 +25252,12 @@ val_t NEW_AReadAble_parser_prod___AReadAble___init_areadable(val_t p0, val_t p1)
   return self;
 }
 const classtable_elt_t VFT_AWriteAble[76] = {
-  {(bigint) 3695 /* 0: Identity */},
+  {(bigint) 3703 /* 0: Identity */},
   {(bigint) 3 /* 1: AWriteAble < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AWriteAble < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AWriteAble < Prod: superclass typecheck marker */},
-  {(bigint) 3483 /* 4: AWriteAble < PAble: superclass typecheck marker */},
-  {(bigint) 3695 /* 5: AWriteAble < AWriteAble: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AWriteAble < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AWriteAble < Prod: superclass typecheck marker */},
+  {(bigint) 3491 /* 4: AWriteAble < PAble: superclass typecheck marker */},
+  {(bigint) 3703 /* 5: AWriteAble < AWriteAble: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29206,12 +25365,12 @@ val_t NEW_AWriteAble_parser_prod___AWriteAble___init_awriteable(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_AIdMethid[76] = {
-  {(bigint) 3875 /* 0: Identity */},
+  {(bigint) 3883 /* 0: Identity */},
   {(bigint) 3 /* 1: AIdMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AIdMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AIdMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AIdMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3875 /* 5: AIdMethid < AIdMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AIdMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AIdMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AIdMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3883 /* 5: AIdMethid < AIdMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29318,12 +25477,12 @@ val_t NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_APlusMethid[76] = {
-  {(bigint) 3791 /* 0: Identity */},
+  {(bigint) 3799 /* 0: Identity */},
   {(bigint) 3 /* 1: APlusMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APlusMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APlusMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: APlusMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3791 /* 5: APlusMethid < APlusMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APlusMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APlusMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: APlusMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3799 /* 5: APlusMethid < APlusMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29430,12 +25589,12 @@ val_t NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AMinusMethid[76] = {
-  {(bigint) 3827 /* 0: Identity */},
+  {(bigint) 3835 /* 0: Identity */},
   {(bigint) 3 /* 1: AMinusMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AMinusMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AMinusMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AMinusMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3827 /* 5: AMinusMethid < AMinusMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AMinusMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AMinusMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AMinusMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3835 /* 5: AMinusMethid < AMinusMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29542,12 +25701,12 @@ val_t NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid(val_t p0)
   return self;
 }
 const classtable_elt_t VFT_AStarMethid[76] = {
-  {(bigint) 3739 /* 0: Identity */},
+  {(bigint) 3747 /* 0: Identity */},
   {(bigint) 3 /* 1: AStarMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AStarMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AStarMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AStarMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3739 /* 5: AStarMethid < AStarMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AStarMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AStarMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AStarMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3747 /* 5: AStarMethid < AStarMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29654,12 +25813,12 @@ val_t NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ASlashMethid[76] = {
-  {(bigint) 3743 /* 0: Identity */},
+  {(bigint) 3751 /* 0: Identity */},
   {(bigint) 3 /* 1: ASlashMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASlashMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASlashMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: ASlashMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3743 /* 5: ASlashMethid < ASlashMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASlashMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASlashMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: ASlashMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3751 /* 5: ASlashMethid < ASlashMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29766,12 +25925,12 @@ val_t NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid(val_t p0)
   return self;
 }
 const classtable_elt_t VFT_APercentMethid[76] = {
-  {(bigint) 3799 /* 0: Identity */},
+  {(bigint) 3807 /* 0: Identity */},
   {(bigint) 3 /* 1: APercentMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APercentMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APercentMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: APercentMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3799 /* 5: APercentMethid < APercentMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APercentMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APercentMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: APercentMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3807 /* 5: APercentMethid < APercentMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29878,12 +26037,12 @@ val_t NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid(val_
   return self;
 }
 const classtable_elt_t VFT_AEqMethid[76] = {
-  {(bigint) 3899 /* 0: Identity */},
+  {(bigint) 3907 /* 0: Identity */},
   {(bigint) 3 /* 1: AEqMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AEqMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AEqMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AEqMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3899 /* 5: AEqMethid < AEqMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AEqMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AEqMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AEqMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3907 /* 5: AEqMethid < AEqMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -29990,12 +26149,12 @@ val_t NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ANeMethid[76] = {
-  {(bigint) 3819 /* 0: Identity */},
+  {(bigint) 3827 /* 0: Identity */},
   {(bigint) 3 /* 1: ANeMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ANeMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ANeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: ANeMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3819 /* 5: ANeMethid < ANeMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ANeMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ANeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: ANeMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3827 /* 5: ANeMethid < ANeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30102,12 +26261,12 @@ val_t NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ALeMethid[76] = {
-  {(bigint) 3847 /* 0: Identity */},
+  {(bigint) 3855 /* 0: Identity */},
   {(bigint) 3 /* 1: ALeMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ALeMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ALeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: ALeMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3847 /* 5: ALeMethid < ALeMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ALeMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ALeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: ALeMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3855 /* 5: ALeMethid < ALeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30214,12 +26373,12 @@ val_t NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AGeMethid[76] = {
-  {(bigint) 3883 /* 0: Identity */},
+  {(bigint) 3891 /* 0: Identity */},
   {(bigint) 3 /* 1: AGeMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AGeMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AGeMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AGeMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3883 /* 5: AGeMethid < AGeMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AGeMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AGeMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AGeMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3891 /* 5: AGeMethid < AGeMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30326,12 +26485,12 @@ val_t NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ALtMethid[76] = {
-  {(bigint) 3843 /* 0: Identity */},
+  {(bigint) 3851 /* 0: Identity */},
   {(bigint) 3 /* 1: ALtMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ALtMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ALtMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: ALtMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3843 /* 5: ALtMethid < ALtMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ALtMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ALtMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: ALtMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3851 /* 5: ALtMethid < ALtMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30438,12 +26597,12 @@ val_t NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AGtMethid[76] = {
-  {(bigint) 3879 /* 0: Identity */},
+  {(bigint) 3887 /* 0: Identity */},
   {(bigint) 3 /* 1: AGtMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AGtMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AGtMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AGtMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3879 /* 5: AGtMethid < AGtMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AGtMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AGtMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AGtMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3887 /* 5: AGtMethid < AGtMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30550,12 +26709,12 @@ val_t NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ABraMethid[78] = {
-  {(bigint) 3935 /* 0: Identity */},
+  {(bigint) 3943 /* 0: Identity */},
   {(bigint) 3 /* 1: ABraMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABraMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABraMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: ABraMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3935 /* 5: ABraMethid < ABraMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABraMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABraMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: ABraMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3943 /* 5: ABraMethid < ABraMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30666,12 +26825,12 @@ val_t NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_AStarshipMethid[76] = {
-  {(bigint) 3735 /* 0: Identity */},
+  {(bigint) 3743 /* 0: Identity */},
   {(bigint) 3 /* 1: AStarshipMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AStarshipMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AStarshipMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AStarshipMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3735 /* 5: AStarshipMethid < AStarshipMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AStarshipMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AStarshipMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AStarshipMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3743 /* 5: AStarshipMethid < AStarshipMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30778,12 +26937,12 @@ val_t NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid(v
   return self;
 }
 const classtable_elt_t VFT_AAssignMethid[78] = {
-  {(bigint) 3959 /* 0: Identity */},
+  {(bigint) 3967 /* 0: Identity */},
   {(bigint) 3 /* 1: AAssignMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAssignMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAssignMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: AAssignMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3959 /* 5: AAssignMethid < AAssignMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAssignMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAssignMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: AAssignMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3967 /* 5: AAssignMethid < AAssignMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -30894,12 +27053,12 @@ val_t NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid(val_t p
   return self;
 }
 const classtable_elt_t VFT_ABraassignMethid[80] = {
-  {(bigint) 3931 /* 0: Identity */},
+  {(bigint) 3939 /* 0: Identity */},
   {(bigint) 3 /* 1: ABraassignMethid < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABraassignMethid < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABraassignMethid < Prod: superclass typecheck marker */},
-  {(bigint) 3443 /* 4: ABraassignMethid < PMethid: superclass typecheck marker */},
-  {(bigint) 3931 /* 5: ABraassignMethid < ABraassignMethid: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABraassignMethid < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABraassignMethid < Prod: superclass typecheck marker */},
+  {(bigint) 3451 /* 4: ABraassignMethid < PMethid: superclass typecheck marker */},
+  {(bigint) 3939 /* 5: ABraassignMethid < ABraassignMethid: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31014,12 +27173,12 @@ val_t NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethi
   return self;
 }
 const classtable_elt_t VFT_ASignature[81] = {
-  {(bigint) 3747 /* 0: Identity */},
+  {(bigint) 3755 /* 0: Identity */},
   {(bigint) 3 /* 1: ASignature < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASignature < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASignature < Prod: superclass typecheck marker */},
-  {(bigint) 3419 /* 4: ASignature < PSignature: superclass typecheck marker */},
-  {(bigint) 3747 /* 5: ASignature < ASignature: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASignature < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASignature < Prod: superclass typecheck marker */},
+  {(bigint) 3427 /* 4: ASignature < PSignature: superclass typecheck marker */},
+  {(bigint) 3755 /* 5: ASignature < ASignature: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31134,12 +27293,12 @@ val_t NEW_ASignature_parser_prod___ASignature___init_asignature(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_AParam[84] = {
-  {(bigint) 3803 /* 0: Identity */},
+  {(bigint) 3811 /* 0: Identity */},
   {(bigint) 3 /* 1: AParam < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AParam < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AParam < Prod: superclass typecheck marker */},
-  {(bigint) 3431 /* 4: AParam < PParam: superclass typecheck marker */},
-  {(bigint) 3803 /* 5: AParam < AParam: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AParam < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AParam < Prod: superclass typecheck marker */},
+  {(bigint) 3439 /* 4: AParam < PParam: superclass typecheck marker */},
+  {(bigint) 3811 /* 5: AParam < AParam: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31261,12 +27420,12 @@ val_t NEW_AParam_parser_prod___AParam___init_aparam(val_t p0, val_t p1, val_t p2
   return self;
 }
 const classtable_elt_t VFT_AClosureDecl[87] = {
-  {(bigint) 3919 /* 0: Identity */},
+  {(bigint) 3927 /* 0: Identity */},
   {(bigint) 3 /* 1: AClosureDecl < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AClosureDecl < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AClosureDecl < Prod: superclass typecheck marker */},
-  {(bigint) 3467 /* 4: AClosureDecl < PClosureDecl: superclass typecheck marker */},
-  {(bigint) 3919 /* 5: AClosureDecl < AClosureDecl: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AClosureDecl < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AClosureDecl < Prod: superclass typecheck marker */},
+  {(bigint) 3475 /* 4: AClosureDecl < PClosureDecl: superclass typecheck marker */},
+  {(bigint) 3927 /* 5: AClosureDecl < AClosureDecl: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31392,12 +27551,12 @@ val_t NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_AType[82] = {
-  {(bigint) 3715 /* 0: Identity */},
+  {(bigint) 3723 /* 0: Identity */},
   {(bigint) 3 /* 1: AType < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AType < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AType < Prod: superclass typecheck marker */},
-  {(bigint) 3411 /* 4: AType < PType: superclass typecheck marker */},
-  {(bigint) 3715 /* 5: AType < AType: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AType < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AType < Prod: superclass typecheck marker */},
+  {(bigint) 3419 /* 4: AType < PType: superclass typecheck marker */},
+  {(bigint) 3723 /* 5: AType < AType: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31515,12 +27674,12 @@ val_t NEW_AType_parser_prod___AType___init_atype(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ABlockExpr[83] = {
-  {(bigint) 3943 /* 0: Identity */},
+  {(bigint) 3951 /* 0: Identity */},
   {(bigint) 3 /* 1: ABlockExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABlockExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABlockExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABlockExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3943 /* 5: ABlockExpr < ABlockExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABlockExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABlockExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABlockExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3951 /* 5: ABlockExpr < ABlockExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31635,12 +27794,12 @@ val_t NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AVardeclExpr[93] = {
-  {(bigint) 3699 /* 0: Identity */},
+  {(bigint) 3707 /* 0: Identity */},
   {(bigint) 3 /* 1: AVardeclExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AVardeclExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AVardeclExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AVardeclExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3699 /* 5: AVardeclExpr < AVardeclExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AVardeclExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AVardeclExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AVardeclExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3707 /* 5: AVardeclExpr < AVardeclExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31774,12 +27933,12 @@ val_t NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_AReturnExpr[85] = {
-  {(bigint) 3755 /* 0: Identity */},
+  {(bigint) 3763 /* 0: Identity */},
   {(bigint) 3 /* 1: AReturnExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AReturnExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AReturnExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AReturnExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3755 /* 5: AReturnExpr < AReturnExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AReturnExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AReturnExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AReturnExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3763 /* 5: AReturnExpr < AReturnExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -31898,13 +28057,13 @@ val_t NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_ABreakExpr[87] = {
-  {(bigint) 4143 /* 0: Identity */},
+  {(bigint) 4151 /* 0: Identity */},
   {(bigint) 3 /* 1: ABreakExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABreakExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABreakExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABreakExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3947 /* 5: ABreakExpr < ABlockControler: superclass typecheck marker */},
-  {(bigint) 4143 /* 6: ABreakExpr < ABreakExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABreakExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABreakExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABreakExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3955 /* 5: ABreakExpr < ABlockControler: superclass typecheck marker */},
+  {(bigint) 4151 /* 6: ABreakExpr < ABreakExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32025,12 +28184,12 @@ val_t NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_AAbortExpr[83] = {
-  {(bigint) 3987 /* 0: Identity */},
+  {(bigint) 3995 /* 0: Identity */},
   {(bigint) 3 /* 1: AAbortExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAbortExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAbortExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAbortExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3987 /* 5: AAbortExpr < AAbortExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAbortExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAbortExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAbortExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3995 /* 5: AAbortExpr < AAbortExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32145,13 +28304,13 @@ val_t NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AContinueExpr[87] = {
-  {(bigint) 4131 /* 0: Identity */},
+  {(bigint) 4139 /* 0: Identity */},
   {(bigint) 3 /* 1: AContinueExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AContinueExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AContinueExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AContinueExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3947 /* 5: AContinueExpr < ABlockControler: superclass typecheck marker */},
-  {(bigint) 4131 /* 6: AContinueExpr < AContinueExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AContinueExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AContinueExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AContinueExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3955 /* 5: AContinueExpr < ABlockControler: superclass typecheck marker */},
+  {(bigint) 4139 /* 6: AContinueExpr < AContinueExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32272,12 +28431,12 @@ val_t NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr(val_t p
   return self;
 }
 const classtable_elt_t VFT_ADoExpr[84] = {
-  {(bigint) 3907 /* 0: Identity */},
+  {(bigint) 3915 /* 0: Identity */},
   {(bigint) 3 /* 1: ADoExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ADoExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ADoExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ADoExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3907 /* 5: ADoExpr < ADoExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ADoExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ADoExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ADoExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3915 /* 5: ADoExpr < ADoExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32395,12 +28554,12 @@ val_t NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AIfExpr[88] = {
-  {(bigint) 3871 /* 0: Identity */},
+  {(bigint) 3879 /* 0: Identity */},
   {(bigint) 3 /* 1: AIfExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AIfExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AIfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AIfExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3871 /* 5: AIfExpr < AIfExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AIfExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AIfExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AIfExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3879 /* 5: AIfExpr < AIfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32526,12 +28685,12 @@ val_t NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_AIfexprExpr[92] = {
-  {(bigint) 3867 /* 0: Identity */},
+  {(bigint) 3875 /* 0: Identity */},
   {(bigint) 3 /* 1: AIfexprExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AIfexprExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AIfexprExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AIfexprExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3867 /* 5: AIfexprExpr < AIfexprExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AIfexprExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AIfexprExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AIfexprExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3875 /* 5: AIfexprExpr < AIfexprExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32665,14 +28824,14 @@ val_t NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_AWhileExpr[101] = {
-  {(bigint) 4031 /* 0: Identity */},
+  {(bigint) 4039 /* 0: Identity */},
   {(bigint) 3 /* 1: AWhileExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AWhileExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AWhileExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AWhileExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AWhileExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AWhileExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AWhileExpr < PExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3911 /* 6: AWhileExpr < AControlableBlock: superclass typecheck marker */},
-  {(bigint) 4031 /* 7: AWhileExpr < AWhileExpr: superclass typecheck marker */},
+  {(bigint) 3919 /* 6: AWhileExpr < AControlableBlock: superclass typecheck marker */},
+  {(bigint) 4039 /* 7: AWhileExpr < AWhileExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32809,14 +28968,14 @@ val_t NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_AForExpr[99] = {
-  {(bigint) 4103 /* 0: Identity */},
+  {(bigint) 4111 /* 0: Identity */},
   {(bigint) 3 /* 1: AForExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AForExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AForExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AForExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AForExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AForExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AForExpr < PExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3911 /* 6: AForExpr < AControlableBlock: superclass typecheck marker */},
-  {(bigint) 4103 /* 7: AForExpr < AForExpr: superclass typecheck marker */},
+  {(bigint) 3919 /* 6: AForExpr < AControlableBlock: superclass typecheck marker */},
+  {(bigint) 4111 /* 7: AForExpr < AForExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -32948,13 +29107,13 @@ val_t NEW_AForExpr_parser_prod___AForExpr___init_aforexpr(val_t p0, val_t p1, va
   parser_prod___AForExpr___init_aforexpr(self, p0, p1, p2, init_table);
   return self;
 }
-const classtable_elt_t VFT_AForVardeclExpr[88] = {
-  {(bigint) 3891 /* 0: Identity */},
+const classtable_elt_t VFT_AForVardeclExpr[92] = {
+  {(bigint) 3899 /* 0: Identity */},
   {(bigint) 3 /* 1: AForVardeclExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AForVardeclExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AForVardeclExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AForVardeclExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3891 /* 5: AForVardeclExpr < AForVardeclExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AForVardeclExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AForVardeclExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AForVardeclExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3899 /* 5: AForVardeclExpr < AForVardeclExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33026,11 +29185,15 @@ const classtable_elt_t VFT_AForVardeclExpr[88] = {
   {(bigint) typing___PExpr___is_self},
   {(bigint) typing___PExpr___its_variable},
   {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) typing___AForVardeclExpr___meth_iterator},
+  {(bigint) typing___AForVardeclExpr___meth_is_ok},
+  {(bigint) typing___AForVardeclExpr___meth_item},
+  {(bigint) typing___AForVardeclExpr___meth_next},
   {(bigint) syntax_base___AForVardeclExpr___variable},
   {(bigint) syntax_base___AForVardeclExpr___variable__eq},
   {(bigint) parser_prod___AForVardeclExpr___empty_init},
   {(bigint) parser_prod___AForVardeclExpr___init_aforvardeclexpr},
-  {(bigint) 4 /* 81: AForVardeclExpr < AForVardeclExpr: superclass init_table position */},
+  {(bigint) 4 /* 85: AForVardeclExpr < AForVardeclExpr: superclass init_table position */},
   {(bigint) parser_nodes___AForVardeclExpr___n_kwfor},
   {(bigint) parser_prod___AForVardeclExpr___n_kwfor__eq},
   {(bigint) parser_nodes___AForVardeclExpr___n_id},
@@ -33044,15 +29207,19 @@ const classtable_elt_t VFT_AForVardeclExpr[88] = {
 /* 3: Attribute AForVardeclExpr::_last_token */
 /* 4: Attribute AForVardeclExpr::_stype */
 /* 5: Attribute AForVardeclExpr::_if_true_variable_ctx */
-/* 6: Attribute AForVardeclExpr::_variable */
-/* 7: Attribute AForVardeclExpr::_n_kwfor */
-/* 8: Attribute AForVardeclExpr::_n_id */
-/* 9: Attribute AForVardeclExpr::_n_expr */
+/* 6: Attribute AForVardeclExpr::_meth_iterator */
+/* 7: Attribute AForVardeclExpr::_meth_is_ok */
+/* 8: Attribute AForVardeclExpr::_meth_item */
+/* 9: Attribute AForVardeclExpr::_meth_next */
+/* 10: Attribute AForVardeclExpr::_variable */
+/* 11: Attribute AForVardeclExpr::_n_kwfor */
+/* 12: Attribute AForVardeclExpr::_n_id */
+/* 13: Attribute AForVardeclExpr::_n_expr */
 val_t NEW_AForVardeclExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 10);
+  obj = alloc(sizeof(val_t) * 14);
   obj->vft = (classtable_elt_t*)VFT_AForVardeclExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___AForVardeclExpr____n_kwfor(obj) =  NIT_NULL /*null*/;
@@ -33079,12 +29246,12 @@ val_t NEW_AForVardeclExpr_parser_prod___AForVardeclExpr___init_aforvardeclexpr(v
   return self;
 }
 const classtable_elt_t VFT_AAssertExpr[86] = {
-  {(bigint) 3967 /* 0: Identity */},
+  {(bigint) 3975 /* 0: Identity */},
   {(bigint) 3 /* 1: AAssertExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAssertExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAssertExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAssertExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3967 /* 5: AAssertExpr < AAssertExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAssertExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAssertExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAssertExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3975 /* 5: AAssertExpr < AAssertExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33206,13 +29373,13 @@ val_t NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_AAssignFormExpr[87] = {
-  {(bigint) 3963 /* 0: Identity */},
+  {(bigint) 3971 /* 0: Identity */},
   {(bigint) 3 /* 1: AAssignFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAssignFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAssignFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAssignFormExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAssignFormExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAssignFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAssignFormExpr < PExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3963 /* 6: AAssignFormExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 3971 /* 6: AAssignFormExpr < AAssignFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33322,13 +29489,13 @@ val_t NEW_AAssignFormExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_AReassignFormExpr[89] = {
-  {(bigint) 3759 /* 0: Identity */},
+  {(bigint) 3767 /* 0: Identity */},
   {(bigint) 3 /* 1: AReassignFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AReassignFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AReassignFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AReassignFormExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AReassignFormExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AReassignFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AReassignFormExpr < PExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3759 /* 6: AReassignFormExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 3767 /* 6: AReassignFormExpr < AReassignFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33441,13 +29608,13 @@ val_t NEW_AReassignFormExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_AOnceExpr[86] = {
-  {(bigint) 4075 /* 0: Identity */},
+  {(bigint) 4083 /* 0: Identity */},
   {(bigint) 3 /* 1: AOnceExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AOnceExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AOnceExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AOnceExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3779 /* 5: AOnceExpr < AProxyExpr: superclass typecheck marker */},
-  {(bigint) 4075 /* 6: AOnceExpr < AOnceExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AOnceExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AOnceExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AOnceExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3787 /* 5: AOnceExpr < AProxyExpr: superclass typecheck marker */},
+  {(bigint) 4083 /* 6: AOnceExpr < AOnceExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33566,15 +29733,15 @@ val_t NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr(val_t p0, val_t p1)
   return self;
 }
 const classtable_elt_t VFT_ASendExpr[110] = {
-  {(bigint) 4175 /* 0: Identity */},
+  {(bigint) 4183 /* 0: Identity */},
   {(bigint) 3 /* 1: ASendExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASendExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASendExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ASendExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ASendExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASendExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASendExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ASendExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ASendExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ASendExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ASendExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ASendExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ASendExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33722,16 +29889,16 @@ val_t NEW_ASendExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ABinopExpr[115] = {
-  {(bigint) 4207 /* 0: Identity */},
+  {(bigint) 4215 /* 0: Identity */},
   {(bigint) 3 /* 1: ABinopExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABinopExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABinopExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABinopExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ABinopExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABinopExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABinopExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABinopExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ABinopExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ABinopExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ABinopExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: ABinopExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ABinopExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ABinopExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: ABinopExpr < ABinopExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33897,12 +30064,12 @@ val_t NEW_ABinopExpr_parser_prod___ABinopExpr___init_abinopexpr(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_ABoolExpr[78] = {
-  {(bigint) 3939 /* 0: Identity */},
+  {(bigint) 3947 /* 0: Identity */},
   {(bigint) 3 /* 1: ABoolExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABoolExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABoolExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABoolExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: ABoolExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABoolExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABoolExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABoolExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: ABoolExpr < ABoolExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -33998,13 +30165,13 @@ val_t NEW_ABoolExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_AOrExpr[85] = {
-  {(bigint) 4071 /* 0: Identity */},
+  {(bigint) 4079 /* 0: Identity */},
   {(bigint) 3 /* 1: AOrExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AOrExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AOrExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AOrExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: AOrExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 4071 /* 6: AOrExpr < AOrExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AOrExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AOrExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AOrExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: AOrExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 4079 /* 6: AOrExpr < AOrExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34122,13 +30289,13 @@ val_t NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AAndExpr[85] = {
-  {(bigint) 4159 /* 0: Identity */},
+  {(bigint) 4167 /* 0: Identity */},
   {(bigint) 3 /* 1: AAndExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAndExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAndExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAndExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: AAndExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 4159 /* 6: AAndExpr < AAndExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAndExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAndExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAndExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: AAndExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 4167 /* 6: AAndExpr < AAndExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34246,13 +30413,13 @@ val_t NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ANotExpr[85] = {
-  {(bigint) 4079 /* 0: Identity */},
+  {(bigint) 4087 /* 0: Identity */},
   {(bigint) 3 /* 1: ANotExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ANotExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ANotExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ANotExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: ANotExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 4079 /* 6: ANotExpr < ANotExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ANotExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ANotExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ANotExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: ANotExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 4087 /* 6: ANotExpr < ANotExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34370,17 +30537,17 @@ val_t NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AEqExpr[118] = {
-  {(bigint) 4255 /* 0: Identity */},
+  {(bigint) 4263 /* 0: Identity */},
   {(bigint) 3 /* 1: AEqExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AEqExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AEqExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AEqExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AEqExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AEqExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AEqExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AEqExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AEqExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AEqExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AEqExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: AEqExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4255 /* 10: AEqExpr < AEqExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AEqExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AEqExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: AEqExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4263 /* 10: AEqExpr < AEqExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -34560,13 +30727,13 @@ val_t NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AEeExpr[85] = {
-  {(bigint) 4119 /* 0: Identity */},
+  {(bigint) 4127 /* 0: Identity */},
   {(bigint) 3 /* 1: AEeExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AEeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AEeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AEeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: AEeExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 4119 /* 6: AEeExpr < AEeExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AEeExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AEeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AEeExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: AEeExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 4127 /* 6: AEeExpr < AEeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -34684,17 +30851,17 @@ val_t NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ANeExpr[118] = {
-  {(bigint) 4231 /* 0: Identity */},
+  {(bigint) 4239 /* 0: Identity */},
   {(bigint) 3 /* 1: ANeExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ANeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ANeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ANeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ANeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ANeExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ANeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ANeExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ANeExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ANeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ANeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: ANeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4231 /* 10: ANeExpr < ANeExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ANeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ANeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: ANeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4239 /* 10: ANeExpr < ANeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -34874,17 +31041,17 @@ val_t NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ALtExpr[118] = {
-  {(bigint) 4239 /* 0: Identity */},
+  {(bigint) 4247 /* 0: Identity */},
   {(bigint) 3 /* 1: ALtExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ALtExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ALtExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ALtExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ALtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ALtExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ALtExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ALtExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ALtExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ALtExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ALtExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: ALtExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4239 /* 10: ALtExpr < ALtExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ALtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ALtExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: ALtExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4247 /* 10: ALtExpr < ALtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -35064,17 +31231,17 @@ val_t NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ALeExpr[118] = {
-  {(bigint) 4243 /* 0: Identity */},
+  {(bigint) 4251 /* 0: Identity */},
   {(bigint) 3 /* 1: ALeExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ALeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ALeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ALeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ALeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ALeExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ALeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ALeExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ALeExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ALeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ALeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: ALeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4243 /* 10: ALeExpr < ALeExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ALeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ALeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: ALeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4251 /* 10: ALeExpr < ALeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -35254,17 +31421,17 @@ val_t NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AGtExpr[118] = {
-  {(bigint) 4247 /* 0: Identity */},
+  {(bigint) 4255 /* 0: Identity */},
   {(bigint) 3 /* 1: AGtExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AGtExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AGtExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AGtExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AGtExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AGtExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AGtExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AGtExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AGtExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AGtExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AGtExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: AGtExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4247 /* 10: AGtExpr < AGtExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AGtExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AGtExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: AGtExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4255 /* 10: AGtExpr < AGtExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -35444,17 +31611,17 @@ val_t NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AGeExpr[118] = {
-  {(bigint) 4251 /* 0: Identity */},
+  {(bigint) 4259 /* 0: Identity */},
   {(bigint) 3 /* 1: AGeExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AGeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AGeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AGeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AGeExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AGeExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AGeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AGeExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AGeExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AGeExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AGeExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: AGeExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4251 /* 10: AGeExpr < AGeExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AGeExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AGeExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: AGeExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4259 /* 10: AGeExpr < AGeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -35634,13 +31801,13 @@ val_t NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AIsaExpr[85] = {
-  {(bigint) 4091 /* 0: Identity */},
+  {(bigint) 4099 /* 0: Identity */},
   {(bigint) 3 /* 1: AIsaExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AIsaExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AIsaExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AIsaExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: AIsaExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 4091 /* 6: AIsaExpr < AIsaExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AIsaExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AIsaExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AIsaExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: AIsaExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 4099 /* 6: AIsaExpr < AIsaExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -35758,17 +31925,17 @@ val_t NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_APlusExpr[118] = {
-  {(bigint) 4223 /* 0: Identity */},
+  {(bigint) 4231 /* 0: Identity */},
   {(bigint) 3 /* 1: APlusExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APlusExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APlusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: APlusExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: APlusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APlusExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APlusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: APlusExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: APlusExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: APlusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: APlusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: APlusExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4223 /* 10: APlusExpr < APlusExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: APlusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: APlusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: APlusExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4231 /* 10: APlusExpr < APlusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -35948,17 +32115,17 @@ val_t NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr(val_t p0, val_t p1)
   return self;
 }
 const classtable_elt_t VFT_AMinusExpr[118] = {
-  {(bigint) 4235 /* 0: Identity */},
+  {(bigint) 4243 /* 0: Identity */},
   {(bigint) 3 /* 1: AMinusExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AMinusExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AMinusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AMinusExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AMinusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AMinusExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AMinusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AMinusExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AMinusExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AMinusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AMinusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: AMinusExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4235 /* 10: AMinusExpr < AMinusExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AMinusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AMinusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: AMinusExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4243 /* 10: AMinusExpr < AMinusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -36138,17 +32305,17 @@ val_t NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_AStarshipExpr[118] = {
-  {(bigint) 4211 /* 0: Identity */},
+  {(bigint) 4219 /* 0: Identity */},
   {(bigint) 3 /* 1: AStarshipExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AStarshipExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AStarshipExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AStarshipExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AStarshipExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AStarshipExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AStarshipExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AStarshipExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AStarshipExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AStarshipExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AStarshipExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: AStarshipExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4211 /* 10: AStarshipExpr < AStarshipExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AStarshipExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AStarshipExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: AStarshipExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4219 /* 10: AStarshipExpr < AStarshipExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -36328,17 +32495,17 @@ val_t NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr(val_t p
   return self;
 }
 const classtable_elt_t VFT_AStarExpr[118] = {
-  {(bigint) 4215 /* 0: Identity */},
+  {(bigint) 4223 /* 0: Identity */},
   {(bigint) 3 /* 1: AStarExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AStarExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AStarExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AStarExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AStarExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AStarExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AStarExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AStarExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AStarExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AStarExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AStarExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: AStarExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4215 /* 10: AStarExpr < AStarExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AStarExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AStarExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: AStarExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4223 /* 10: AStarExpr < AStarExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -36518,17 +32685,17 @@ val_t NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr(val_t p0, val_t p1)
   return self;
 }
 const classtable_elt_t VFT_ASlashExpr[118] = {
-  {(bigint) 4219 /* 0: Identity */},
+  {(bigint) 4227 /* 0: Identity */},
   {(bigint) 3 /* 1: ASlashExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASlashExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASlashExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ASlashExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ASlashExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASlashExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASlashExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ASlashExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ASlashExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ASlashExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ASlashExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: ASlashExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4219 /* 10: ASlashExpr < ASlashExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ASlashExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ASlashExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: ASlashExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4227 /* 10: ASlashExpr < ASlashExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -36708,17 +32875,17 @@ val_t NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_APercentExpr[118] = {
-  {(bigint) 4227 /* 0: Identity */},
+  {(bigint) 4235 /* 0: Identity */},
   {(bigint) 3 /* 1: APercentExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APercentExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APercentExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: APercentExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: APercentExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APercentExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APercentExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: APercentExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: APercentExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: APercentExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: APercentExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4207 /* 9: APercentExpr < ABinopExpr: superclass typecheck marker */},
-  {(bigint) 4227 /* 10: APercentExpr < APercentExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: APercentExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: APercentExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4215 /* 9: APercentExpr < ABinopExpr: superclass typecheck marker */},
+  {(bigint) 4235 /* 10: APercentExpr < APercentExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -36898,16 +33065,16 @@ val_t NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_AUminusExpr[115] = {
-  {(bigint) 4187 /* 0: Identity */},
+  {(bigint) 4195 /* 0: Identity */},
   {(bigint) 3 /* 1: AUminusExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AUminusExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AUminusExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AUminusExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AUminusExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AUminusExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AUminusExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AUminusExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AUminusExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AUminusExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AUminusExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4187 /* 9: AUminusExpr < AUminusExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AUminusExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AUminusExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4195 /* 9: AUminusExpr < AUminusExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37073,13 +33240,13 @@ val_t NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_ANewExpr[110] = {
-  {(bigint) 4083 /* 0: Identity */},
+  {(bigint) 4091 /* 0: Identity */},
   {(bigint) 3 /* 1: ANewExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ANewExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ANewExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ANewExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ANewExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 4083 /* 6: ANewExpr < ANewExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ANewExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ANewExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ANewExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ANewExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 4091 /* 6: ANewExpr < ANewExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37235,12 +33402,12 @@ val_t NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr(val_t p0, val_t p1, va
   return self;
 }
 const classtable_elt_t VFT_AAttrFormExpr[97] = {
-  {(bigint) 3955 /* 0: Identity */},
+  {(bigint) 3963 /* 0: Identity */},
   {(bigint) 3 /* 1: AAttrFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAttrFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAttrFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAttrFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3955 /* 5: AAttrFormExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAttrFormExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAttrFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAttrFormExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3963 /* 5: AAttrFormExpr < AAttrFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37366,13 +33533,13 @@ val_t NEW_AAttrFormExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_AAttrExpr[100] = {
-  {(bigint) 4151 /* 0: Identity */},
+  {(bigint) 4159 /* 0: Identity */},
   {(bigint) 3 /* 1: AAttrExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAttrExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAttrExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAttrExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3955 /* 5: AAttrExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 4151 /* 6: AAttrExpr < AAttrExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAttrExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAttrExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAttrExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3963 /* 5: AAttrExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 4159 /* 6: AAttrExpr < AAttrExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37512,14 +33679,14 @@ val_t NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr(val_t p0, val_t p1)
   return self;
 }
 const classtable_elt_t VFT_AAttrAssignExpr[97] = {
-  {(bigint) 4155 /* 0: Identity */},
+  {(bigint) 4163 /* 0: Identity */},
   {(bigint) 3 /* 1: AAttrAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAttrAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAttrAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAttrAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3955 /* 5: AAttrAssignExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 3963 /* 6: AAttrAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 4155 /* 7: AAttrAssignExpr < AAttrAssignExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAttrAssignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAttrAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAttrAssignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3963 /* 5: AAttrAssignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 3971 /* 6: AAttrAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 4163 /* 7: AAttrAssignExpr < AAttrAssignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37657,17 +33824,17 @@ val_t NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr(v
   return self;
 }
 const classtable_elt_t VFT_ACallFormExpr[117] = {
-  {(bigint) 4199 /* 0: Identity */},
+  {(bigint) 4207 /* 0: Identity */},
   {(bigint) 3 /* 1: ACallFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ACallFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ACallFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ACallFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ACallFormExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ACallFormExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ACallFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ACallFormExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ACallFormExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ACallFormExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ACallFormExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ACallFormExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ACallFormExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4199 /* 10: ACallFormExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 4207 /* 10: ACallFormExpr < ACallFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -37825,14 +33992,14 @@ val_t NEW_ACallFormExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AAttrReassignExpr[97] = {
-  {(bigint) 4147 /* 0: Identity */},
+  {(bigint) 4155 /* 0: Identity */},
   {(bigint) 3 /* 1: AAttrReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAttrReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAttrReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAttrReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3955 /* 5: AAttrReassignExpr < AAttrFormExpr: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: AAttrReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 4147 /* 7: AAttrReassignExpr < AAttrReassignExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAttrReassignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAttrReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAttrReassignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3963 /* 5: AAttrReassignExpr < AAttrFormExpr: superclass typecheck marker */},
+  {(bigint) 3767 /* 6: AAttrReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 4155 /* 7: AAttrReassignExpr < AAttrReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -37970,18 +34137,18 @@ val_t NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassign
   return self;
 }
 const classtable_elt_t VFT_ACallExpr[120] = {
-  {(bigint) 4267 /* 0: Identity */},
+  {(bigint) 4275 /* 0: Identity */},
   {(bigint) 3 /* 1: ACallExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ACallExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ACallExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ACallExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ACallExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ACallExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ACallExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ACallExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ACallExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ACallExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ACallExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ACallExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ACallExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4199 /* 10: ACallExpr < ACallFormExpr: superclass typecheck marker */},
-  {(bigint) 4267 /* 11: ACallExpr < ACallExpr: superclass typecheck marker */},
+  {(bigint) 4207 /* 10: ACallExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 4275 /* 11: ACallExpr < ACallExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
@@ -38153,17 +34320,17 @@ val_t NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr(val_t p0, val_t p1,
   return self;
 }
 const classtable_elt_t VFT_ACallAssignExpr[117] = {
-  {(bigint) 4271 /* 0: Identity */},
+  {(bigint) 4279 /* 0: Identity */},
   {(bigint) 3 /* 1: ACallAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ACallAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ACallAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ACallAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ACallAssignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3963 /* 6: ACallAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 4051 /* 7: ACallAssignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ACallAssignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4271 /* 9: ACallAssignExpr < ACallAssignExpr: superclass typecheck marker */},
-  {(bigint) 4199 /* 10: ACallAssignExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ACallAssignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ACallAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ACallAssignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ACallAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3971 /* 6: ACallAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ACallAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ACallAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4279 /* 9: ACallAssignExpr < ACallAssignExpr: superclass typecheck marker */},
+  {(bigint) 4207 /* 10: ACallAssignExpr < ACallFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -38335,18 +34502,18 @@ val_t NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr(v
   return self;
 }
 const classtable_elt_t VFT_ACallReassignExpr[120] = {
-  {(bigint) 4263 /* 0: Identity */},
+  {(bigint) 4271 /* 0: Identity */},
   {(bigint) 3 /* 1: ACallReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ACallReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ACallReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ACallReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ACallReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: ACallReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 4051 /* 7: ACallReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ACallReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4191 /* 9: ACallReassignExpr < ASendReassignExpr: superclass typecheck marker */},
-  {(bigint) 4199 /* 10: ACallReassignExpr < ACallFormExpr: superclass typecheck marker */},
-  {(bigint) 4263 /* 11: ACallReassignExpr < ACallReassignExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ACallReassignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ACallReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ACallReassignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ACallReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3767 /* 6: ACallReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ACallReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ACallReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4199 /* 9: ACallReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(bigint) 4207 /* 10: ACallReassignExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 4271 /* 11: ACallReassignExpr < ACallReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
@@ -38520,15 +34687,15 @@ val_t NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassign
   return self;
 }
 const classtable_elt_t VFT_ASuperExpr[109] = {
-  {(bigint) 4171 /* 0: Identity */},
+  {(bigint) 4179 /* 0: Identity */},
   {(bigint) 3 /* 1: ASuperExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASuperExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASuperExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ASuperExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ASuperExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASuperExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASuperExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ASuperExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ASuperExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ASuperExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4171 /* 8: ASuperExpr < ASuperExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ASuperExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4179 /* 8: ASuperExpr < ASuperExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38680,16 +34847,16 @@ val_t NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_AInitExpr[117] = {
-  {(bigint) 4195 /* 0: Identity */},
+  {(bigint) 4203 /* 0: Identity */},
   {(bigint) 3 /* 1: AInitExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AInitExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AInitExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AInitExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AInitExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AInitExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AInitExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AInitExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AInitExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AInitExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AInitExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4195 /* 9: AInitExpr < AInitExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AInitExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AInitExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4203 /* 9: AInitExpr < AInitExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -38859,17 +35026,17 @@ val_t NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr(val_t p0, val_t p1,
   return self;
 }
 const classtable_elt_t VFT_ABraFormExpr[113] = {
-  {(bigint) 4203 /* 0: Identity */},
+  {(bigint) 4211 /* 0: Identity */},
   {(bigint) 3 /* 1: ABraFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABraFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABraFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABraFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ABraFormExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABraFormExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABraFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABraFormExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ABraFormExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ABraFormExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ABraFormExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ABraFormExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ABraFormExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4203 /* 10: ABraFormExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 4211 /* 10: ABraFormExpr < ABraFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -39021,18 +35188,18 @@ val_t NEW_ABraFormExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ABraExpr[116] = {
-  {(bigint) 4279 /* 0: Identity */},
+  {(bigint) 4287 /* 0: Identity */},
   {(bigint) 3 /* 1: ABraExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABraExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABraExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABraExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ABraExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABraExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABraExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABraExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ABraExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ABraExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ABraExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ABraExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ABraExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4203 /* 10: ABraExpr < ABraFormExpr: superclass typecheck marker */},
-  {(bigint) 4279 /* 11: ABraExpr < ABraExpr: superclass typecheck marker */},
+  {(bigint) 4211 /* 10: ABraExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 4287 /* 11: ABraExpr < ABraExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
@@ -39198,17 +35365,17 @@ val_t NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr(val_t p0, val_t p1, va
   return self;
 }
 const classtable_elt_t VFT_ABraAssignExpr[113] = {
-  {(bigint) 4283 /* 0: Identity */},
+  {(bigint) 4291 /* 0: Identity */},
   {(bigint) 3 /* 1: ABraAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABraAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABraAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABraAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ABraAssignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3963 /* 6: ABraAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 4051 /* 7: ABraAssignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ABraAssignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4283 /* 9: ABraAssignExpr < ABraAssignExpr: superclass typecheck marker */},
-  {(bigint) 4203 /* 10: ABraAssignExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABraAssignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABraAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABraAssignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ABraAssignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3971 /* 6: ABraAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ABraAssignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ABraAssignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4291 /* 9: ABraAssignExpr < ABraAssignExpr: superclass typecheck marker */},
+  {(bigint) 4211 /* 10: ABraAssignExpr < ABraFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
@@ -39374,12 +35541,12 @@ val_t NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr(val_
   return self;
 }
 const classtable_elt_t VFT_AVarFormExpr[82] = {
-  {(bigint) 3703 /* 0: Identity */},
+  {(bigint) 3711 /* 0: Identity */},
   {(bigint) 3 /* 1: AVarFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AVarFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AVarFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AVarFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3703 /* 5: AVarFormExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AVarFormExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AVarFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AVarFormExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3711 /* 5: AVarFormExpr < AVarFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39482,18 +35649,18 @@ val_t NEW_AVarFormExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_ABraReassignExpr[116] = {
-  {(bigint) 4275 /* 0: Identity */},
+  {(bigint) 4283 /* 0: Identity */},
   {(bigint) 3 /* 1: ABraReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABraReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABraReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABraReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ABraReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: ABraReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 4051 /* 7: ABraReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ABraReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4191 /* 9: ABraReassignExpr < ASendReassignExpr: superclass typecheck marker */},
-  {(bigint) 4203 /* 10: ABraReassignExpr < ABraFormExpr: superclass typecheck marker */},
-  {(bigint) 4275 /* 11: ABraReassignExpr < ABraReassignExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABraReassignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABraReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABraReassignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ABraReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3767 /* 6: ABraReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ABraReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ABraReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4199 /* 9: ABraReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(bigint) 4211 /* 10: ABraReassignExpr < ABraFormExpr: superclass typecheck marker */},
+  {(bigint) 4283 /* 11: ABraReassignExpr < ABraReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
@@ -39661,13 +35828,13 @@ val_t NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexp
   return self;
 }
 const classtable_elt_t VFT_AVarExpr[86] = {
-  {(bigint) 4039 /* 0: Identity */},
+  {(bigint) 4047 /* 0: Identity */},
   {(bigint) 3 /* 1: AVarExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AVarExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AVarExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AVarExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3703 /* 5: AVarExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 4039 /* 6: AVarExpr < AVarExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AVarExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AVarExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AVarExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3711 /* 5: AVarExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 4047 /* 6: AVarExpr < AVarExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39785,14 +35952,14 @@ val_t NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AVarAssignExpr[91] = {
-  {(bigint) 4043 /* 0: Identity */},
+  {(bigint) 4051 /* 0: Identity */},
   {(bigint) 3 /* 1: AVarAssignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AVarAssignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AVarAssignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AVarAssignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3703 /* 5: AVarAssignExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 3963 /* 6: AVarAssignExpr < AAssignFormExpr: superclass typecheck marker */},
-  {(bigint) 4043 /* 7: AVarAssignExpr < AVarAssignExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AVarAssignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AVarAssignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AVarAssignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3711 /* 5: AVarAssignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 3971 /* 6: AVarAssignExpr < AAssignFormExpr: superclass typecheck marker */},
+  {(bigint) 4051 /* 7: AVarAssignExpr < AVarAssignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -39918,14 +36085,14 @@ val_t NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(val_
   return self;
 }
 const classtable_elt_t VFT_AVarReassignExpr[93] = {
-  {(bigint) 4035 /* 0: Identity */},
+  {(bigint) 4043 /* 0: Identity */},
   {(bigint) 3 /* 1: AVarReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AVarReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AVarReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AVarReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3703 /* 5: AVarReassignExpr < AVarFormExpr: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: AVarReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 4035 /* 7: AVarReassignExpr < AVarReassignExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AVarReassignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AVarReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AVarReassignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3711 /* 5: AVarReassignExpr < AVarFormExpr: superclass typecheck marker */},
+  {(bigint) 3767 /* 6: AVarReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 4043 /* 7: AVarReassignExpr < AVarReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40054,18 +36221,18 @@ val_t NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexp
   return self;
 }
 const classtable_elt_t VFT_AClosureCallExpr[122] = {
-  {(bigint) 4259 /* 0: Identity */},
+  {(bigint) 4267 /* 0: Identity */},
   {(bigint) 3 /* 1: AClosureCallExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AClosureCallExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AClosureCallExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AClosureCallExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AClosureCallExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AClosureCallExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AClosureCallExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AClosureCallExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AClosureCallExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: AClosureCallExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: AClosureCallExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: AClosureCallExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: AClosureCallExpr < ASendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4199 /* 10: AClosureCallExpr < ACallFormExpr: superclass typecheck marker */},
-  {(bigint) 4259 /* 11: AClosureCallExpr < AClosureCallExpr: superclass typecheck marker */},
+  {(bigint) 4207 /* 10: AClosureCallExpr < ACallFormExpr: superclass typecheck marker */},
+  {(bigint) 4267 /* 11: AClosureCallExpr < AClosureCallExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {(bigint) utils___Object___cmangle},
   {(bigint) utils___Object___cmangle_table},
@@ -40216,12 +36383,12 @@ val_t NEW_AClosureCallExpr_parser_nodes___AClosureCallExpr___init(val_t p0, val_
   return self;
 }
 const classtable_elt_t VFT_ARangeExpr[85] = {
-  {(bigint) 3767 /* 0: Identity */},
+  {(bigint) 3775 /* 0: Identity */},
   {(bigint) 3 /* 1: ARangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ARangeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ARangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ARangeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3767 /* 5: ARangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ARangeExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ARangeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ARangeExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3775 /* 5: ARangeExpr < ARangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40293,7 +36460,7 @@ const classtable_elt_t VFT_ARangeExpr[85] = {
   {(bigint) typing___PExpr___is_self},
   {(bigint) typing___PExpr___its_variable},
   {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___ARangeExpr___propname},
+  {(bigint) typing___ARangeExpr___meth_init},
   {(bigint) parser_prod___ARangeExpr___empty_init},
   {(bigint) parser_prod___ARangeExpr___init_arangeexpr},
   {(bigint) 4 /* 80: ARangeExpr < ARangeExpr: superclass init_table position */},
@@ -40308,13 +36475,14 @@ const classtable_elt_t VFT_ARangeExpr[85] = {
 /* 3: Attribute ARangeExpr::_last_token */
 /* 4: Attribute ARangeExpr::_stype */
 /* 5: Attribute ARangeExpr::_if_true_variable_ctx */
-/* 6: Attribute ARangeExpr::_n_expr */
-/* 7: Attribute ARangeExpr::_n_expr2 */
+/* 6: Attribute ARangeExpr::_meth_init */
+/* 7: Attribute ARangeExpr::_n_expr */
+/* 8: Attribute ARangeExpr::_n_expr2 */
 val_t NEW_ARangeExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_ARangeExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___ARangeExpr____n_expr(obj) =  NIT_NULL /*null*/;
@@ -40339,14 +36507,14 @@ val_t NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t
   parser_prod___ARangeExpr___init_arangeexpr(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_ACrangeExpr[88] = {
-  {(bigint) 4127 /* 0: Identity */},
+const classtable_elt_t VFT_ACrangeExpr[89] = {
+  {(bigint) 4135 /* 0: Identity */},
   {(bigint) 3 /* 1: ACrangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ACrangeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ACrangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ACrangeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3767 /* 5: ACrangeExpr < ARangeExpr: superclass typecheck marker */},
-  {(bigint) 4127 /* 6: ACrangeExpr < ACrangeExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ACrangeExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ACrangeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ACrangeExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3775 /* 5: ACrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 4135 /* 6: ACrangeExpr < ACrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40401,7 +36569,7 @@ const classtable_elt_t VFT_ACrangeExpr[88] = {
   {(bigint) parser_nodes___PNode___init},
   {(bigint) control_flow___PNode___accept_control_flow},
   {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___ARangeExpr___after_typing},
+  {(bigint) typing___ACrangeExpr___after_typing},
   {(bigint) parser_prod___Prod___first_token},
   {(bigint) parser_prod___Prod___first_token__eq},
   {(bigint) parser_prod___Prod___last_token},
@@ -40417,7 +36585,7 @@ const classtable_elt_t VFT_ACrangeExpr[88] = {
   {(bigint) typing___PExpr___is_self},
   {(bigint) typing___PExpr___its_variable},
   {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___ACrangeExpr___propname},
+  {(bigint) typing___ARangeExpr___meth_init},
   {(bigint) parser_prod___ARangeExpr___empty_init},
   {(bigint) parser_prod___ARangeExpr___init_arangeexpr},
   {(bigint) 4 /* 80: ACrangeExpr < ARangeExpr: superclass init_table position */},
@@ -40425,9 +36593,10 @@ const classtable_elt_t VFT_ACrangeExpr[88] = {
   {(bigint) parser_prod___ACrangeExpr___n_expr__eq},
   {(bigint) parser_nodes___ARangeExpr___n_expr2},
   {(bigint) parser_prod___ACrangeExpr___n_expr2__eq},
+  {(bigint) typing___ARangeExpr___after_typing},
   {(bigint) parser_prod___ACrangeExpr___empty_init},
   {(bigint) parser_prod___ACrangeExpr___init_acrangeexpr},
-  {(bigint) 5 /* 87: ACrangeExpr < ACrangeExpr: superclass init_table position */},
+  {(bigint) 5 /* 88: ACrangeExpr < ACrangeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Attribute ACrangeExpr::_parent */
@@ -40435,13 +36604,14 @@ const classtable_elt_t VFT_ACrangeExpr[88] = {
 /* 3: Attribute ACrangeExpr::_last_token */
 /* 4: Attribute ACrangeExpr::_stype */
 /* 5: Attribute ACrangeExpr::_if_true_variable_ctx */
-/* 6: Attribute ACrangeExpr::_n_expr */
-/* 7: Attribute ACrangeExpr::_n_expr2 */
+/* 6: Attribute ACrangeExpr::_meth_init */
+/* 7: Attribute ACrangeExpr::_n_expr */
+/* 8: Attribute ACrangeExpr::_n_expr2 */
 val_t NEW_ACrangeExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_ACrangeExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___ARangeExpr____n_expr(obj) =  NIT_NULL /*null*/;
@@ -40478,14 +36648,14 @@ val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val
   parser_prod___ACrangeExpr___init_acrangeexpr(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_AOrangeExpr[88] = {
-  {(bigint) 4067 /* 0: Identity */},
+const classtable_elt_t VFT_AOrangeExpr[89] = {
+  {(bigint) 4075 /* 0: Identity */},
   {(bigint) 3 /* 1: AOrangeExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AOrangeExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AOrangeExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AOrangeExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3767 /* 5: AOrangeExpr < ARangeExpr: superclass typecheck marker */},
-  {(bigint) 4067 /* 6: AOrangeExpr < AOrangeExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AOrangeExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AOrangeExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AOrangeExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3775 /* 5: AOrangeExpr < ARangeExpr: superclass typecheck marker */},
+  {(bigint) 4075 /* 6: AOrangeExpr < AOrangeExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40540,7 +36710,7 @@ const classtable_elt_t VFT_AOrangeExpr[88] = {
   {(bigint) parser_nodes___PNode___init},
   {(bigint) control_flow___PNode___accept_control_flow},
   {(bigint) typing___PNode___accept_typing},
-  {(bigint) typing___ARangeExpr___after_typing},
+  {(bigint) typing___AOrangeExpr___after_typing},
   {(bigint) parser_prod___Prod___first_token},
   {(bigint) parser_prod___Prod___first_token__eq},
   {(bigint) parser_prod___Prod___last_token},
@@ -40556,7 +36726,7 @@ const classtable_elt_t VFT_AOrangeExpr[88] = {
   {(bigint) typing___PExpr___is_self},
   {(bigint) typing___PExpr___its_variable},
   {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) compiling_methods___AOrangeExpr___propname},
+  {(bigint) typing___ARangeExpr___meth_init},
   {(bigint) parser_prod___ARangeExpr___empty_init},
   {(bigint) parser_prod___ARangeExpr___init_arangeexpr},
   {(bigint) 4 /* 80: AOrangeExpr < ARangeExpr: superclass init_table position */},
@@ -40564,9 +36734,10 @@ const classtable_elt_t VFT_AOrangeExpr[88] = {
   {(bigint) parser_prod___AOrangeExpr___n_expr__eq},
   {(bigint) parser_nodes___ARangeExpr___n_expr2},
   {(bigint) parser_prod___AOrangeExpr___n_expr2__eq},
+  {(bigint) typing___ARangeExpr___after_typing},
   {(bigint) parser_prod___AOrangeExpr___empty_init},
   {(bigint) parser_prod___AOrangeExpr___init_aorangeexpr},
-  {(bigint) 5 /* 87: AOrangeExpr < AOrangeExpr: superclass init_table position */},
+  {(bigint) 5 /* 88: AOrangeExpr < AOrangeExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Attribute AOrangeExpr::_parent */
@@ -40574,13 +36745,14 @@ const classtable_elt_t VFT_AOrangeExpr[88] = {
 /* 3: Attribute AOrangeExpr::_last_token */
 /* 4: Attribute AOrangeExpr::_stype */
 /* 5: Attribute AOrangeExpr::_if_true_variable_ctx */
-/* 6: Attribute AOrangeExpr::_n_expr */
-/* 7: Attribute AOrangeExpr::_n_expr2 */
+/* 6: Attribute AOrangeExpr::_meth_init */
+/* 7: Attribute AOrangeExpr::_n_expr */
+/* 8: Attribute AOrangeExpr::_n_expr2 */
 val_t NEW_AOrangeExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_AOrangeExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___ARangeExpr____n_expr(obj) =  NIT_NULL /*null*/;
@@ -40617,13 +36789,13 @@ val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val
   parser_prod___AOrangeExpr___init_aorangeexpr(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_AArrayExpr[83] = {
-  {(bigint) 3975 /* 0: Identity */},
+const classtable_elt_t VFT_AArrayExpr[85] = {
+  {(bigint) 3983 /* 0: Identity */},
   {(bigint) 3 /* 1: AArrayExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AArrayExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AArrayExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AArrayExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3975 /* 5: AArrayExpr < AArrayExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AArrayExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AArrayExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AArrayExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3983 /* 5: AArrayExpr < AArrayExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40695,10 +36867,12 @@ const classtable_elt_t VFT_AArrayExpr[83] = {
   {(bigint) typing___PExpr___is_self},
   {(bigint) typing___PExpr___its_variable},
   {(bigint) typing___PExpr___if_true_variable_ctx},
-  {(bigint) typing___AArrayExpr___stype__eq},
+  {(bigint) typing___AArrayExpr___meth_with_capacity},
+  {(bigint) typing___AArrayExpr___meth_add},
+  {(bigint) typing___AArrayExpr___do_typing},
   {(bigint) parser_prod___AArrayExpr___empty_init},
   {(bigint) parser_prod___AArrayExpr___init_aarrayexpr},
-  {(bigint) 4 /* 80: AArrayExpr < AArrayExpr: superclass init_table position */},
+  {(bigint) 4 /* 82: AArrayExpr < AArrayExpr: superclass init_table position */},
   {(bigint) parser_nodes___AArrayExpr___n_exprs},
   {(bigint) parser_nodes___AArrayExpr___n_exprs__eq},
 };
@@ -40708,12 +36882,14 @@ const classtable_elt_t VFT_AArrayExpr[83] = {
 /* 3: Attribute AArrayExpr::_last_token */
 /* 4: Attribute AArrayExpr::_stype */
 /* 5: Attribute AArrayExpr::_if_true_variable_ctx */
-/* 6: Attribute AArrayExpr::_n_exprs */
+/* 6: Attribute AArrayExpr::_meth_with_capacity */
+/* 7: Attribute AArrayExpr::_meth_add */
+/* 8: Attribute AArrayExpr::_n_exprs */
 val_t NEW_AArrayExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_AArrayExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___AArrayExpr____n_exprs(obj) =  NIT_NULL /*null*/;
@@ -40738,12 +36914,12 @@ val_t NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ASelfExpr[84] = {
-  {(bigint) 3751 /* 0: Identity */},
+  {(bigint) 3759 /* 0: Identity */},
   {(bigint) 3 /* 1: ASelfExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASelfExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASelfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ASelfExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 5: ASelfExpr < ASelfExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASelfExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASelfExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ASelfExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3759 /* 5: ASelfExpr < ASelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40860,13 +37036,13 @@ val_t NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AImplicitSelfExpr[87] = {
-  {(bigint) 4099 /* 0: Identity */},
+  {(bigint) 4107 /* 0: Identity */},
   {(bigint) 3 /* 1: AImplicitSelfExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AImplicitSelfExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AImplicitSelfExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AImplicitSelfExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3751 /* 5: AImplicitSelfExpr < ASelfExpr: superclass typecheck marker */},
-  {(bigint) 4099 /* 6: AImplicitSelfExpr < AImplicitSelfExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AImplicitSelfExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AImplicitSelfExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AImplicitSelfExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3759 /* 5: AImplicitSelfExpr < ASelfExpr: superclass typecheck marker */},
+  {(bigint) 4107 /* 6: AImplicitSelfExpr < AImplicitSelfExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -40997,13 +37173,13 @@ val_t NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitself
   return self;
 }
 const classtable_elt_t VFT_ATrueExpr[83] = {
-  {(bigint) 4047 /* 0: Identity */},
+  {(bigint) 4055 /* 0: Identity */},
   {(bigint) 3 /* 1: ATrueExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ATrueExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ATrueExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ATrueExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: ATrueExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 4047 /* 6: ATrueExpr < ATrueExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ATrueExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ATrueExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ATrueExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: ATrueExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 4055 /* 6: ATrueExpr < ATrueExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41117,13 +37293,13 @@ val_t NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AFalseExpr[83] = {
-  {(bigint) 4107 /* 0: Identity */},
+  {(bigint) 4115 /* 0: Identity */},
   {(bigint) 3 /* 1: AFalseExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AFalseExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AFalseExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AFalseExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3939 /* 5: AFalseExpr < ABoolExpr: superclass typecheck marker */},
-  {(bigint) 4107 /* 6: AFalseExpr < AFalseExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AFalseExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AFalseExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AFalseExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3947 /* 5: AFalseExpr < ABoolExpr: superclass typecheck marker */},
+  {(bigint) 4115 /* 6: AFalseExpr < AFalseExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41237,12 +37413,12 @@ val_t NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ANullExpr[82] = {
-  {(bigint) 3811 /* 0: Identity */},
+  {(bigint) 3819 /* 0: Identity */},
   {(bigint) 3 /* 1: ANullExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ANullExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ANullExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ANullExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3811 /* 5: ANullExpr < ANullExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ANullExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ANullExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ANullExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3819 /* 5: ANullExpr < ANullExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41356,12 +37532,12 @@ val_t NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AIntExpr[82] = {
-  {(bigint) 3859 /* 0: Identity */},
+  {(bigint) 3867 /* 0: Identity */},
   {(bigint) 3 /* 1: AIntExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AIntExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AIntExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AIntExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3859 /* 5: AIntExpr < AIntExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AIntExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AIntExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AIntExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3867 /* 5: AIntExpr < AIntExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41475,12 +37651,12 @@ val_t NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AFloatExpr[82] = {
-  {(bigint) 3895 /* 0: Identity */},
+  {(bigint) 3903 /* 0: Identity */},
   {(bigint) 3 /* 1: AFloatExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AFloatExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AFloatExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AFloatExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3895 /* 5: AFloatExpr < AFloatExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AFloatExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AFloatExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AFloatExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3903 /* 5: AFloatExpr < AFloatExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41594,12 +37770,12 @@ val_t NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_ACharExpr[82] = {
-  {(bigint) 3927 /* 0: Identity */},
+  {(bigint) 3935 /* 0: Identity */},
   {(bigint) 3 /* 1: ACharExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ACharExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ACharExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ACharExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3927 /* 5: ACharExpr < ACharExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ACharExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ACharExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ACharExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3935 /* 5: ACharExpr < ACharExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41712,13 +37888,13 @@ val_t NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr(val_t p0) {
   parser_prod___ACharExpr___init_acharexpr(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_AStringFormExpr[80] = {
-  {(bigint) 3731 /* 0: Identity */},
+const classtable_elt_t VFT_AStringFormExpr[81] = {
+  {(bigint) 3739 /* 0: Identity */},
   {(bigint) 3 /* 1: AStringFormExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AStringFormExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AStringFormExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AStringFormExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3731 /* 5: AStringFormExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AStringFormExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AStringFormExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AStringFormExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3739 /* 5: AStringFormExpr < AStringFormExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41792,7 +37968,8 @@ const classtable_elt_t VFT_AStringFormExpr[80] = {
   {(bigint) typing___PExpr___if_true_variable_ctx},
   {(bigint) compiling_methods___AStringFormExpr___string_text},
   {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 79: AStringFormExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) typing___AStringFormExpr___meth_with_native},
+  {(bigint) 4 /* 80: AStringFormExpr < AStringFormExpr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 /* 1: Attribute AStringFormExpr::_parent */
@@ -41802,11 +37979,12 @@ const classtable_elt_t VFT_AStringFormExpr[80] = {
 /* 5: Attribute AStringFormExpr::_if_true_variable_ctx */
 /* 6: Attribute AStringFormExpr::_cstring */
 /* 7: Attribute AStringFormExpr::_cstring_length */
+/* 8: Attribute AStringFormExpr::_meth_with_native */
 val_t NEW_AStringFormExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 8);
+  obj = alloc(sizeof(val_t) * 9);
   obj->vft = (classtable_elt_t*)VFT_AStringFormExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_compiling_methods___AStringFormExpr____cstring_length(obj) = TAG_Int((bigint)0);
@@ -41818,14 +37996,14 @@ val_t NEW_AStringFormExpr_parser_nodes___PNode___init() {
   parser_nodes___PNode___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_AStringExpr[85] = {
-  {(bigint) 4055 /* 0: Identity */},
+const classtable_elt_t VFT_AStringExpr[86] = {
+  {(bigint) 4063 /* 0: Identity */},
   {(bigint) 3 /* 1: AStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3731 /* 5: AStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 4055 /* 6: AStringExpr < AStringExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AStringExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AStringExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AStringExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3739 /* 5: AStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 4063 /* 6: AStringExpr < AStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -41898,10 +38076,11 @@ const classtable_elt_t VFT_AStringExpr[85] = {
   {(bigint) typing___PExpr___if_true_variable_ctx},
   {(bigint) compiling_methods___AStringExpr___string_text},
   {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 79: AStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) typing___AStringFormExpr___meth_with_native},
+  {(bigint) 4 /* 80: AStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AStringExpr___empty_init},
   {(bigint) parser_prod___AStringExpr___init_astringexpr},
-  {(bigint) 5 /* 82: AStringExpr < AStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AStringExpr < AStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AStringExpr___n_string},
   {(bigint) parser_prod___AStringExpr___n_string__eq},
 };
@@ -41913,12 +38092,13 @@ const classtable_elt_t VFT_AStringExpr[85] = {
 /* 5: Attribute AStringExpr::_if_true_variable_ctx */
 /* 6: Attribute AStringExpr::_cstring */
 /* 7: Attribute AStringExpr::_cstring_length */
-/* 8: Attribute AStringExpr::_n_string */
+/* 8: Attribute AStringExpr::_meth_with_native */
+/* 9: Attribute AStringExpr::_n_string */
 val_t NEW_AStringExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 10);
   obj->vft = (classtable_elt_t*)VFT_AStringExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___AStringExpr____n_string(obj) =  NIT_NULL /*null*/;
@@ -41943,14 +38123,14 @@ val_t NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr(val_t p0) {
   parser_prod___AStringExpr___init_astringexpr(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_AStartStringExpr[85] = {
-  {(bigint) 4059 /* 0: Identity */},
+const classtable_elt_t VFT_AStartStringExpr[86] = {
+  {(bigint) 4067 /* 0: Identity */},
   {(bigint) 3 /* 1: AStartStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AStartStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AStartStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AStartStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3731 /* 5: AStartStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 4059 /* 6: AStartStringExpr < AStartStringExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AStartStringExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AStartStringExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AStartStringExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3739 /* 5: AStartStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 4067 /* 6: AStartStringExpr < AStartStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42023,10 +38203,11 @@ const classtable_elt_t VFT_AStartStringExpr[85] = {
   {(bigint) typing___PExpr___if_true_variable_ctx},
   {(bigint) compiling_methods___AStartStringExpr___string_text},
   {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 79: AStartStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) typing___AStringFormExpr___meth_with_native},
+  {(bigint) 4 /* 80: AStartStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AStartStringExpr___empty_init},
   {(bigint) parser_prod___AStartStringExpr___init_astartstringexpr},
-  {(bigint) 5 /* 82: AStartStringExpr < AStartStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AStartStringExpr < AStartStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AStartStringExpr___n_string},
   {(bigint) parser_prod___AStartStringExpr___n_string__eq},
 };
@@ -42038,12 +38219,13 @@ const classtable_elt_t VFT_AStartStringExpr[85] = {
 /* 5: Attribute AStartStringExpr::_if_true_variable_ctx */
 /* 6: Attribute AStartStringExpr::_cstring */
 /* 7: Attribute AStartStringExpr::_cstring_length */
-/* 8: Attribute AStartStringExpr::_n_string */
+/* 8: Attribute AStartStringExpr::_meth_with_native */
+/* 9: Attribute AStartStringExpr::_n_string */
 val_t NEW_AStartStringExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 10);
   obj->vft = (classtable_elt_t*)VFT_AStartStringExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___AStartStringExpr____n_string(obj) =  NIT_NULL /*null*/;
@@ -42068,14 +38250,14 @@ val_t NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexp
   parser_prod___AStartStringExpr___init_astartstringexpr(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_AMidStringExpr[85] = {
-  {(bigint) 4087 /* 0: Identity */},
+const classtable_elt_t VFT_AMidStringExpr[86] = {
+  {(bigint) 4095 /* 0: Identity */},
   {(bigint) 3 /* 1: AMidStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AMidStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AMidStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AMidStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3731 /* 5: AMidStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 4087 /* 6: AMidStringExpr < AMidStringExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AMidStringExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AMidStringExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AMidStringExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3739 /* 5: AMidStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 4095 /* 6: AMidStringExpr < AMidStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42148,10 +38330,11 @@ const classtable_elt_t VFT_AMidStringExpr[85] = {
   {(bigint) typing___PExpr___if_true_variable_ctx},
   {(bigint) compiling_methods___AMidStringExpr___string_text},
   {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 79: AMidStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) typing___AStringFormExpr___meth_with_native},
+  {(bigint) 4 /* 80: AMidStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AMidStringExpr___empty_init},
   {(bigint) parser_prod___AMidStringExpr___init_amidstringexpr},
-  {(bigint) 5 /* 82: AMidStringExpr < AMidStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AMidStringExpr < AMidStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AMidStringExpr___n_string},
   {(bigint) parser_prod___AMidStringExpr___n_string__eq},
 };
@@ -42163,12 +38346,13 @@ const classtable_elt_t VFT_AMidStringExpr[85] = {
 /* 5: Attribute AMidStringExpr::_if_true_variable_ctx */
 /* 6: Attribute AMidStringExpr::_cstring */
 /* 7: Attribute AMidStringExpr::_cstring_length */
-/* 8: Attribute AMidStringExpr::_n_string */
+/* 8: Attribute AMidStringExpr::_meth_with_native */
+/* 9: Attribute AMidStringExpr::_n_string */
 val_t NEW_AMidStringExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 10);
   obj->vft = (classtable_elt_t*)VFT_AMidStringExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___AMidStringExpr____n_string(obj) =  NIT_NULL /*null*/;
@@ -42193,14 +38377,14 @@ val_t NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr(val_
   parser_prod___AMidStringExpr___init_amidstringexpr(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_AEndStringExpr[85] = {
-  {(bigint) 4115 /* 0: Identity */},
+const classtable_elt_t VFT_AEndStringExpr[86] = {
+  {(bigint) 4123 /* 0: Identity */},
   {(bigint) 3 /* 1: AEndStringExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AEndStringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AEndStringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AEndStringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3731 /* 5: AEndStringExpr < AStringFormExpr: superclass typecheck marker */},
-  {(bigint) 4115 /* 6: AEndStringExpr < AEndStringExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AEndStringExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AEndStringExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AEndStringExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3739 /* 5: AEndStringExpr < AStringFormExpr: superclass typecheck marker */},
+  {(bigint) 4123 /* 6: AEndStringExpr < AEndStringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42273,10 +38457,11 @@ const classtable_elt_t VFT_AEndStringExpr[85] = {
   {(bigint) typing___PExpr___if_true_variable_ctx},
   {(bigint) compiling_methods___AEndStringExpr___string_text},
   {(bigint) compiling_methods___AStringFormExpr___compute_string_info},
-  {(bigint) 4 /* 79: AEndStringExpr < AStringFormExpr: superclass init_table position */},
+  {(bigint) typing___AStringFormExpr___meth_with_native},
+  {(bigint) 4 /* 80: AEndStringExpr < AStringFormExpr: superclass init_table position */},
   {(bigint) parser_prod___AEndStringExpr___empty_init},
   {(bigint) parser_prod___AEndStringExpr___init_aendstringexpr},
-  {(bigint) 5 /* 82: AEndStringExpr < AEndStringExpr: superclass init_table position */},
+  {(bigint) 5 /* 83: AEndStringExpr < AEndStringExpr: superclass init_table position */},
   {(bigint) parser_nodes___AEndStringExpr___n_string},
   {(bigint) parser_prod___AEndStringExpr___n_string__eq},
 };
@@ -42288,12 +38473,13 @@ const classtable_elt_t VFT_AEndStringExpr[85] = {
 /* 5: Attribute AEndStringExpr::_if_true_variable_ctx */
 /* 6: Attribute AEndStringExpr::_cstring */
 /* 7: Attribute AEndStringExpr::_cstring_length */
-/* 8: Attribute AEndStringExpr::_n_string */
+/* 8: Attribute AEndStringExpr::_meth_with_native */
+/* 9: Attribute AEndStringExpr::_n_string */
 val_t NEW_AEndStringExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 9);
+  obj = alloc(sizeof(val_t) * 10);
   obj->vft = (classtable_elt_t*)VFT_AEndStringExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___AEndStringExpr____n_string(obj) =  NIT_NULL /*null*/;
@@ -42318,13 +38504,13 @@ val_t NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr(val_
   parser_prod___AEndStringExpr___init_aendstringexpr(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_ASuperstringExpr[82] = {
-  {(bigint) 3723 /* 0: Identity */},
+const classtable_elt_t VFT_ASuperstringExpr[86] = {
+  {(bigint) 3731 /* 0: Identity */},
   {(bigint) 3 /* 1: ASuperstringExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASuperstringExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASuperstringExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ASuperstringExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3723 /* 5: ASuperstringExpr < ASuperstringExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASuperstringExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASuperstringExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ASuperstringExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3731 /* 5: ASuperstringExpr < ASuperstringExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42396,9 +38582,13 @@ const classtable_elt_t VFT_ASuperstringExpr[82] = {
   {(bigint) typing___PExpr___is_self},
   {(bigint) typing___PExpr___its_variable},
   {(bigint) typing___PExpr___if_true_variable_ctx},
+  {(bigint) typing___ASuperstringExpr___meth_with_capacity},
+  {(bigint) typing___ASuperstringExpr___meth_add},
+  {(bigint) typing___ASuperstringExpr___meth_to_s},
+  {(bigint) typing___ASuperstringExpr___atype},
   {(bigint) parser_prod___ASuperstringExpr___empty_init},
   {(bigint) parser_prod___ASuperstringExpr___init_asuperstringexpr},
-  {(bigint) 4 /* 79: ASuperstringExpr < ASuperstringExpr: superclass init_table position */},
+  {(bigint) 4 /* 83: ASuperstringExpr < ASuperstringExpr: superclass init_table position */},
   {(bigint) parser_nodes___ASuperstringExpr___n_exprs},
   {(bigint) parser_nodes___ASuperstringExpr___n_exprs__eq},
 };
@@ -42408,12 +38598,16 @@ const classtable_elt_t VFT_ASuperstringExpr[82] = {
 /* 3: Attribute ASuperstringExpr::_last_token */
 /* 4: Attribute ASuperstringExpr::_stype */
 /* 5: Attribute ASuperstringExpr::_if_true_variable_ctx */
-/* 6: Attribute ASuperstringExpr::_n_exprs */
+/* 6: Attribute ASuperstringExpr::_meth_with_capacity */
+/* 7: Attribute ASuperstringExpr::_meth_add */
+/* 8: Attribute ASuperstringExpr::_meth_to_s */
+/* 9: Attribute ASuperstringExpr::_atype */
+/* 10: Attribute ASuperstringExpr::_n_exprs */
 val_t NEW_ASuperstringExpr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 7);
+  obj = alloc(sizeof(val_t) * 11);
   obj->vft = (classtable_elt_t*)VFT_ASuperstringExpr;
   variable[0] = OBJ2VAL(obj);
   ATTR_parser_nodes___ASuperstringExpr____n_exprs(obj) =  NIT_NULL /*null*/;
@@ -42438,13 +38632,13 @@ val_t NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexp
   return self;
 }
 const classtable_elt_t VFT_AParExpr[83] = {
-  {(bigint) 4063 /* 0: Identity */},
+  {(bigint) 4071 /* 0: Identity */},
   {(bigint) 3 /* 1: AParExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AParExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AParExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AParExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3779 /* 5: AParExpr < AProxyExpr: superclass typecheck marker */},
-  {(bigint) 4063 /* 6: AParExpr < AParExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AParExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AParExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AParExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3787 /* 5: AParExpr < AProxyExpr: superclass typecheck marker */},
+  {(bigint) 4071 /* 6: AParExpr < AParExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42558,12 +38752,12 @@ val_t NEW_AParExpr_parser_prod___AParExpr___init_aparexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_AProxyExpr[80] = {
-  {(bigint) 3779 /* 0: Identity */},
+  {(bigint) 3787 /* 0: Identity */},
   {(bigint) 3 /* 1: AProxyExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AProxyExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AProxyExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AProxyExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3779 /* 5: AProxyExpr < AProxyExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AProxyExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AProxyExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AProxyExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3787 /* 5: AProxyExpr < AProxyExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42663,12 +38857,12 @@ val_t NEW_AProxyExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_AAsCastExpr[86] = {
-  {(bigint) 3971 /* 0: Identity */},
+  {(bigint) 3979 /* 0: Identity */},
   {(bigint) 3 /* 1: AAsCastExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAsCastExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAsCastExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAsCastExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3971 /* 5: AAsCastExpr < AAsCastExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAsCastExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAsCastExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAsCastExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3979 /* 5: AAsCastExpr < AAsCastExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42790,12 +38984,12 @@ val_t NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_APlusAssignOp[75] = {
-  {(bigint) 3795 /* 0: Identity */},
+  {(bigint) 3803 /* 0: Identity */},
   {(bigint) 3 /* 1: APlusAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: APlusAssignOp < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: APlusAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3479 /* 4: APlusAssignOp < PAssignOp: superclass typecheck marker */},
-  {(bigint) 3795 /* 5: APlusAssignOp < APlusAssignOp: superclass typecheck marker */},
+  {(bigint) 63 /* 2: APlusAssignOp < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: APlusAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 3487 /* 4: APlusAssignOp < PAssignOp: superclass typecheck marker */},
+  {(bigint) 3803 /* 5: APlusAssignOp < APlusAssignOp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -42900,12 +39094,12 @@ val_t NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop(val_t p
   return self;
 }
 const classtable_elt_t VFT_AMinusAssignOp[75] = {
-  {(bigint) 3831 /* 0: Identity */},
+  {(bigint) 3839 /* 0: Identity */},
   {(bigint) 3 /* 1: AMinusAssignOp < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AMinusAssignOp < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AMinusAssignOp < Prod: superclass typecheck marker */},
-  {(bigint) 3479 /* 4: AMinusAssignOp < PAssignOp: superclass typecheck marker */},
-  {(bigint) 3831 /* 5: AMinusAssignOp < AMinusAssignOp: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AMinusAssignOp < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AMinusAssignOp < Prod: superclass typecheck marker */},
+  {(bigint) 3487 /* 4: AMinusAssignOp < PAssignOp: superclass typecheck marker */},
+  {(bigint) 3839 /* 5: AMinusAssignOp < AMinusAssignOp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43010,14 +39204,14 @@ val_t NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop(val_
   return self;
 }
 const classtable_elt_t VFT_AClosureDef[104] = {
-  {(bigint) 4139 /* 0: Identity */},
+  {(bigint) 4147 /* 0: Identity */},
   {(bigint) 3 /* 1: AClosureDef < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AClosureDef < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AClosureDef < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AClosureDef < PExpr: superclass typecheck marker */},
-  {(bigint) 3463 /* 5: AClosureDef < PClosureDef: superclass typecheck marker */},
-  {(bigint) 3911 /* 6: AClosureDef < AControlableBlock: superclass typecheck marker */},
-  {(bigint) 4139 /* 7: AClosureDef < AClosureDef: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AClosureDef < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AClosureDef < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AClosureDef < PExpr: superclass typecheck marker */},
+  {(bigint) 3471 /* 5: AClosureDef < PClosureDef: superclass typecheck marker */},
+  {(bigint) 3919 /* 6: AClosureDef < AControlableBlock: superclass typecheck marker */},
+  {(bigint) 4147 /* 7: AClosureDef < AClosureDef: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43162,12 +39356,12 @@ val_t NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_AQualified[76] = {
-  {(bigint) 3771 /* 0: Identity */},
+  {(bigint) 3779 /* 0: Identity */},
   {(bigint) 3 /* 1: AQualified < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AQualified < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AQualified < Prod: superclass typecheck marker */},
-  {(bigint) 3423 /* 4: AQualified < PQualified: superclass typecheck marker */},
-  {(bigint) 3771 /* 5: AQualified < AQualified: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AQualified < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AQualified < Prod: superclass typecheck marker */},
+  {(bigint) 3431 /* 4: AQualified < PQualified: superclass typecheck marker */},
+  {(bigint) 3779 /* 5: AQualified < AQualified: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43275,12 +39469,12 @@ val_t NEW_AQualified_parser_prod___AQualified___init_aqualified(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_ADoc[74] = {
-  {(bigint) 3903 /* 0: Identity */},
+  {(bigint) 3911 /* 0: Identity */},
   {(bigint) 3 /* 1: ADoc < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ADoc < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ADoc < Prod: superclass typecheck marker */},
-  {(bigint) 3459 /* 4: ADoc < PDoc: superclass typecheck marker */},
-  {(bigint) 3903 /* 5: ADoc < ADoc: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ADoc < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ADoc < Prod: superclass typecheck marker */},
+  {(bigint) 3467 /* 4: ADoc < PDoc: superclass typecheck marker */},
+  {(bigint) 3911 /* 5: ADoc < ADoc: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43384,11 +39578,11 @@ val_t NEW_ADoc_parser_prod___ADoc___init_adoc(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_Start[74] = {
-  {(bigint) 3391 /* 0: Identity */},
+  {(bigint) 3399 /* 0: Identity */},
   {(bigint) 3 /* 1: Start < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: Start < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: Start < Prod: superclass typecheck marker */},
-  {(bigint) 3391 /* 4: Start < Start: superclass typecheck marker */},
+  {(bigint) 63 /* 2: Start < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: Start < Prod: superclass typecheck marker */},
+  {(bigint) 3399 /* 4: Start < Start: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43487,9 +39681,9 @@ val_t NEW_Start_parser_prod___Start___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_Lexer[52] = {
-  {(bigint) 139 /* 0: Identity */},
+  {(bigint) 135 /* 0: Identity */},
   {(bigint) 3 /* 1: Lexer < Object: superclass typecheck marker */},
-  {(bigint) 139 /* 2: Lexer < Lexer: superclass typecheck marker */},
+  {(bigint) 135 /* 2: Lexer < Lexer: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -43637,9 +39831,9 @@ val_t NEW_Visitor_parser_prod___Visitor___init() {
   return self;
 }
 const classtable_elt_t VFT_ParserTable[1347] = {
-  {(bigint) 63 /* 0: Identity */},
+  {(bigint) 59 /* 0: Identity */},
   {(bigint) 3 /* 1: ParserTable < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: ParserTable < ParserTable: superclass typecheck marker */},
+  {(bigint) 59 /* 2: ParserTable < ParserTable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45006,9 +41200,9 @@ val_t NEW_ParserTable_parser_tables___ParserTable___init() {
   return self;
 }
 const classtable_elt_t VFT_State[46] = {
-  {(bigint) 35 /* 0: Identity */},
+  {(bigint) 31 /* 0: Identity */},
   {(bigint) 3 /* 1: State < Object: superclass typecheck marker */},
-  {(bigint) 35 /* 2: State < State: superclass typecheck marker */},
+  {(bigint) 31 /* 2: State < State: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -45073,10 +41267,10 @@ val_t NEW_State_parser___State___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_Parser[1355] = {
-  {(bigint) 2863 /* 0: Identity */},
+  {(bigint) 2855 /* 0: Identity */},
   {(bigint) 3 /* 1: Parser < Object: superclass typecheck marker */},
-  {(bigint) 63 /* 2: Parser < ParserTable: superclass typecheck marker */},
-  {(bigint) 2863 /* 3: Parser < Parser: superclass typecheck marker */},
+  {(bigint) 59 /* 2: Parser < ParserTable: superclass typecheck marker */},
+  {(bigint) 2855 /* 3: Parser < Parser: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46455,10 +42649,10 @@ val_t NEW_Parser_parser___Parser___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_SearchTokensVisitor[45] = {
-  {(bigint) 227 /* 0: Identity */},
+  {(bigint) 219 /* 0: Identity */},
   {(bigint) 3 /* 1: SearchTokensVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: SearchTokensVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 227 /* 3: SearchTokensVisitor < SearchTokensVisitor: superclass typecheck marker */},
+  {(bigint) 219 /* 3: SearchTokensVisitor < SearchTokensVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46520,9 +42714,9 @@ val_t NEW_SearchTokensVisitor_parser___SearchTokensVisitor___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction[43] = {
-  {(bigint) 43 /* 0: Identity */},
+  {(bigint) 39 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction < ReduceAction: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction < ReduceAction: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46581,10 +42775,10 @@ val_t NEW_ReduceAction_parser___ReduceAction___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction0[45] = {
-  {(bigint) 2847 /* 0: Identity */},
+  {(bigint) 2839 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction0 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction0 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2847 /* 3: ReduceAction0 < ReduceAction0: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction0 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2839 /* 3: ReduceAction0 < ReduceAction0: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46644,10 +42838,10 @@ val_t NEW_ReduceAction0_parser___ReduceAction0___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction1[45] = {
-  {(bigint) 2843 /* 0: Identity */},
+  {(bigint) 2835 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction1 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction1 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2843 /* 3: ReduceAction1 < ReduceAction1: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction1 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2835 /* 3: ReduceAction1 < ReduceAction1: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46707,10 +42901,10 @@ val_t NEW_ReduceAction1_parser___ReduceAction1___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction2[45] = {
-  {(bigint) 2399 /* 0: Identity */},
+  {(bigint) 2391 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction2 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction2 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2399 /* 3: ReduceAction2 < ReduceAction2: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction2 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2391 /* 3: ReduceAction2 < ReduceAction2: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46770,10 +42964,10 @@ val_t NEW_ReduceAction2_parser___ReduceAction2___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction3[45] = {
-  {(bigint) 1955 /* 0: Identity */},
+  {(bigint) 1947 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction3 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction3 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1955 /* 3: ReduceAction3 < ReduceAction3: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction3 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1947 /* 3: ReduceAction3 < ReduceAction3: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46833,10 +43027,10 @@ val_t NEW_ReduceAction3_parser___ReduceAction3___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction4[45] = {
-  {(bigint) 1511 /* 0: Identity */},
+  {(bigint) 1503 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction4 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction4 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1511 /* 3: ReduceAction4 < ReduceAction4: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction4 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1503 /* 3: ReduceAction4 < ReduceAction4: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46896,10 +43090,10 @@ val_t NEW_ReduceAction4_parser___ReduceAction4___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction5[45] = {
-  {(bigint) 1067 /* 0: Identity */},
+  {(bigint) 1059 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction5 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction5 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1067 /* 3: ReduceAction5 < ReduceAction5: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction5 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1059 /* 3: ReduceAction5 < ReduceAction5: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -46959,10 +43153,10 @@ val_t NEW_ReduceAction5_parser___ReduceAction5___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction6[45] = {
-  {(bigint) 623 /* 0: Identity */},
+  {(bigint) 615 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction6 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction6 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 623 /* 3: ReduceAction6 < ReduceAction6: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction6 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 615 /* 3: ReduceAction6 < ReduceAction6: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47022,10 +43216,10 @@ val_t NEW_ReduceAction6_parser___ReduceAction6___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction7[45] = {
-  {(bigint) 363 /* 0: Identity */},
+  {(bigint) 355 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction7 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction7 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 363 /* 3: ReduceAction7 < ReduceAction7: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction7 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 355 /* 3: ReduceAction7 < ReduceAction7: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47085,10 +43279,10 @@ val_t NEW_ReduceAction7_parser___ReduceAction7___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction8[45] = {
-  {(bigint) 319 /* 0: Identity */},
+  {(bigint) 311 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction8 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction8 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 319 /* 3: ReduceAction8 < ReduceAction8: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction8 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 311 /* 3: ReduceAction8 < ReduceAction8: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47148,10 +43342,10 @@ val_t NEW_ReduceAction8_parser___ReduceAction8___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction9[45] = {
-  {(bigint) 275 /* 0: Identity */},
+  {(bigint) 267 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction9 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction9 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 275 /* 3: ReduceAction9 < ReduceAction9: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction9 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 267 /* 3: ReduceAction9 < ReduceAction9: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47211,10 +43405,10 @@ val_t NEW_ReduceAction9_parser___ReduceAction9___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction10[45] = {
-  {(bigint) 2839 /* 0: Identity */},
+  {(bigint) 2831 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction10 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction10 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2839 /* 3: ReduceAction10 < ReduceAction10: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction10 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2831 /* 3: ReduceAction10 < ReduceAction10: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47274,10 +43468,10 @@ val_t NEW_ReduceAction10_parser___ReduceAction10___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction11[45] = {
-  {(bigint) 2795 /* 0: Identity */},
+  {(bigint) 2787 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction11 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction11 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2795 /* 3: ReduceAction11 < ReduceAction11: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction11 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2787 /* 3: ReduceAction11 < ReduceAction11: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47337,10 +43531,10 @@ val_t NEW_ReduceAction11_parser___ReduceAction11___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction12[45] = {
-  {(bigint) 2751 /* 0: Identity */},
+  {(bigint) 2743 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction12 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction12 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2751 /* 3: ReduceAction12 < ReduceAction12: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction12 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2743 /* 3: ReduceAction12 < ReduceAction12: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47400,10 +43594,10 @@ val_t NEW_ReduceAction12_parser___ReduceAction12___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction13[45] = {
-  {(bigint) 2707 /* 0: Identity */},
+  {(bigint) 2699 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction13 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction13 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2707 /* 3: ReduceAction13 < ReduceAction13: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction13 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2699 /* 3: ReduceAction13 < ReduceAction13: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47463,10 +43657,10 @@ val_t NEW_ReduceAction13_parser___ReduceAction13___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction14[45] = {
-  {(bigint) 2663 /* 0: Identity */},
+  {(bigint) 2655 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction14 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction14 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2663 /* 3: ReduceAction14 < ReduceAction14: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction14 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2655 /* 3: ReduceAction14 < ReduceAction14: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47526,10 +43720,10 @@ val_t NEW_ReduceAction14_parser___ReduceAction14___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction15[45] = {
-  {(bigint) 2619 /* 0: Identity */},
+  {(bigint) 2611 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction15 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction15 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2619 /* 3: ReduceAction15 < ReduceAction15: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction15 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2611 /* 3: ReduceAction15 < ReduceAction15: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47589,10 +43783,10 @@ val_t NEW_ReduceAction15_parser___ReduceAction15___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction16[45] = {
-  {(bigint) 2575 /* 0: Identity */},
+  {(bigint) 2567 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction16 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction16 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2575 /* 3: ReduceAction16 < ReduceAction16: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction16 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2567 /* 3: ReduceAction16 < ReduceAction16: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47652,10 +43846,10 @@ val_t NEW_ReduceAction16_parser___ReduceAction16___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction17[45] = {
-  {(bigint) 2531 /* 0: Identity */},
+  {(bigint) 2523 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction17 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction17 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2531 /* 3: ReduceAction17 < ReduceAction17: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction17 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2523 /* 3: ReduceAction17 < ReduceAction17: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47715,10 +43909,10 @@ val_t NEW_ReduceAction17_parser___ReduceAction17___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction18[45] = {
-  {(bigint) 2487 /* 0: Identity */},
+  {(bigint) 2479 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction18 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction18 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2487 /* 3: ReduceAction18 < ReduceAction18: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction18 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2479 /* 3: ReduceAction18 < ReduceAction18: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47778,10 +43972,10 @@ val_t NEW_ReduceAction18_parser___ReduceAction18___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction19[45] = {
-  {(bigint) 2443 /* 0: Identity */},
+  {(bigint) 2435 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction19 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction19 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2443 /* 3: ReduceAction19 < ReduceAction19: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction19 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2435 /* 3: ReduceAction19 < ReduceAction19: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47841,10 +44035,10 @@ val_t NEW_ReduceAction19_parser___ReduceAction19___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction20[45] = {
-  {(bigint) 2395 /* 0: Identity */},
+  {(bigint) 2387 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction20 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction20 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2395 /* 3: ReduceAction20 < ReduceAction20: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction20 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2387 /* 3: ReduceAction20 < ReduceAction20: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47904,10 +44098,10 @@ val_t NEW_ReduceAction20_parser___ReduceAction20___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction21[45] = {
-  {(bigint) 2351 /* 0: Identity */},
+  {(bigint) 2343 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction21 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction21 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2351 /* 3: ReduceAction21 < ReduceAction21: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction21 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2343 /* 3: ReduceAction21 < ReduceAction21: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -47967,10 +44161,10 @@ val_t NEW_ReduceAction21_parser___ReduceAction21___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction22[45] = {
-  {(bigint) 2307 /* 0: Identity */},
+  {(bigint) 2299 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction22 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction22 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2307 /* 3: ReduceAction22 < ReduceAction22: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction22 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2299 /* 3: ReduceAction22 < ReduceAction22: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48030,10 +44224,10 @@ val_t NEW_ReduceAction22_parser___ReduceAction22___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction23[45] = {
-  {(bigint) 2263 /* 0: Identity */},
+  {(bigint) 2255 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction23 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction23 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2263 /* 3: ReduceAction23 < ReduceAction23: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction23 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2255 /* 3: ReduceAction23 < ReduceAction23: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48093,10 +44287,10 @@ val_t NEW_ReduceAction23_parser___ReduceAction23___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction24[45] = {
-  {(bigint) 2219 /* 0: Identity */},
+  {(bigint) 2211 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction24 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction24 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2219 /* 3: ReduceAction24 < ReduceAction24: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction24 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2211 /* 3: ReduceAction24 < ReduceAction24: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48156,10 +44350,10 @@ val_t NEW_ReduceAction24_parser___ReduceAction24___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction25[45] = {
-  {(bigint) 2175 /* 0: Identity */},
+  {(bigint) 2167 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction25 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction25 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2175 /* 3: ReduceAction25 < ReduceAction25: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction25 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2167 /* 3: ReduceAction25 < ReduceAction25: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48219,10 +44413,10 @@ val_t NEW_ReduceAction25_parser___ReduceAction25___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction26[45] = {
-  {(bigint) 2131 /* 0: Identity */},
+  {(bigint) 2123 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction26 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction26 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2131 /* 3: ReduceAction26 < ReduceAction26: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction26 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2123 /* 3: ReduceAction26 < ReduceAction26: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48282,10 +44476,10 @@ val_t NEW_ReduceAction26_parser___ReduceAction26___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction27[45] = {
-  {(bigint) 2087 /* 0: Identity */},
+  {(bigint) 2079 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction27 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction27 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2087 /* 3: ReduceAction27 < ReduceAction27: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction27 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2079 /* 3: ReduceAction27 < ReduceAction27: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48345,10 +44539,10 @@ val_t NEW_ReduceAction27_parser___ReduceAction27___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction28[45] = {
-  {(bigint) 2043 /* 0: Identity */},
+  {(bigint) 2035 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction28 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction28 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2043 /* 3: ReduceAction28 < ReduceAction28: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction28 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2035 /* 3: ReduceAction28 < ReduceAction28: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48408,10 +44602,10 @@ val_t NEW_ReduceAction28_parser___ReduceAction28___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction29[45] = {
-  {(bigint) 1999 /* 0: Identity */},
+  {(bigint) 1991 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction29 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction29 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1999 /* 3: ReduceAction29 < ReduceAction29: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction29 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1991 /* 3: ReduceAction29 < ReduceAction29: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48471,10 +44665,10 @@ val_t NEW_ReduceAction29_parser___ReduceAction29___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction30[45] = {
-  {(bigint) 1951 /* 0: Identity */},
+  {(bigint) 1943 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction30 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction30 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1951 /* 3: ReduceAction30 < ReduceAction30: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction30 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1943 /* 3: ReduceAction30 < ReduceAction30: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48534,10 +44728,10 @@ val_t NEW_ReduceAction30_parser___ReduceAction30___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction31[45] = {
-  {(bigint) 1907 /* 0: Identity */},
+  {(bigint) 1899 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction31 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction31 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1907 /* 3: ReduceAction31 < ReduceAction31: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction31 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1899 /* 3: ReduceAction31 < ReduceAction31: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48597,10 +44791,10 @@ val_t NEW_ReduceAction31_parser___ReduceAction31___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction32[45] = {
-  {(bigint) 1863 /* 0: Identity */},
+  {(bigint) 1855 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction32 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction32 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1863 /* 3: ReduceAction32 < ReduceAction32: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction32 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1855 /* 3: ReduceAction32 < ReduceAction32: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48660,10 +44854,10 @@ val_t NEW_ReduceAction32_parser___ReduceAction32___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction33[45] = {
-  {(bigint) 1819 /* 0: Identity */},
+  {(bigint) 1811 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction33 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction33 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1819 /* 3: ReduceAction33 < ReduceAction33: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction33 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1811 /* 3: ReduceAction33 < ReduceAction33: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48723,10 +44917,10 @@ val_t NEW_ReduceAction33_parser___ReduceAction33___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction34[45] = {
-  {(bigint) 1775 /* 0: Identity */},
+  {(bigint) 1767 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction34 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction34 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1775 /* 3: ReduceAction34 < ReduceAction34: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction34 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1767 /* 3: ReduceAction34 < ReduceAction34: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48786,10 +44980,10 @@ val_t NEW_ReduceAction34_parser___ReduceAction34___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction35[45] = {
-  {(bigint) 1731 /* 0: Identity */},
+  {(bigint) 1723 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction35 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction35 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1731 /* 3: ReduceAction35 < ReduceAction35: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction35 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1723 /* 3: ReduceAction35 < ReduceAction35: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48849,10 +45043,10 @@ val_t NEW_ReduceAction35_parser___ReduceAction35___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction36[45] = {
-  {(bigint) 1687 /* 0: Identity */},
+  {(bigint) 1679 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction36 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction36 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1687 /* 3: ReduceAction36 < ReduceAction36: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction36 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1679 /* 3: ReduceAction36 < ReduceAction36: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48912,10 +45106,10 @@ val_t NEW_ReduceAction36_parser___ReduceAction36___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction37[45] = {
-  {(bigint) 1643 /* 0: Identity */},
+  {(bigint) 1635 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction37 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction37 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1643 /* 3: ReduceAction37 < ReduceAction37: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction37 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1635 /* 3: ReduceAction37 < ReduceAction37: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -48975,10 +45169,10 @@ val_t NEW_ReduceAction37_parser___ReduceAction37___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction38[45] = {
-  {(bigint) 1599 /* 0: Identity */},
+  {(bigint) 1591 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction38 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction38 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1599 /* 3: ReduceAction38 < ReduceAction38: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction38 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1591 /* 3: ReduceAction38 < ReduceAction38: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49038,10 +45232,10 @@ val_t NEW_ReduceAction38_parser___ReduceAction38___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction39[45] = {
-  {(bigint) 1555 /* 0: Identity */},
+  {(bigint) 1547 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction39 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction39 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1555 /* 3: ReduceAction39 < ReduceAction39: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction39 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1547 /* 3: ReduceAction39 < ReduceAction39: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49101,10 +45295,10 @@ val_t NEW_ReduceAction39_parser___ReduceAction39___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction40[45] = {
-  {(bigint) 1507 /* 0: Identity */},
+  {(bigint) 1499 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction40 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction40 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1507 /* 3: ReduceAction40 < ReduceAction40: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction40 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1499 /* 3: ReduceAction40 < ReduceAction40: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49164,10 +45358,10 @@ val_t NEW_ReduceAction40_parser___ReduceAction40___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction41[45] = {
-  {(bigint) 1463 /* 0: Identity */},
+  {(bigint) 1455 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction41 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction41 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1463 /* 3: ReduceAction41 < ReduceAction41: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction41 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1455 /* 3: ReduceAction41 < ReduceAction41: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49227,10 +45421,10 @@ val_t NEW_ReduceAction41_parser___ReduceAction41___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction42[45] = {
-  {(bigint) 1419 /* 0: Identity */},
+  {(bigint) 1411 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction42 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction42 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1419 /* 3: ReduceAction42 < ReduceAction42: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction42 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1411 /* 3: ReduceAction42 < ReduceAction42: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49290,10 +45484,10 @@ val_t NEW_ReduceAction42_parser___ReduceAction42___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction43[45] = {
-  {(bigint) 1375 /* 0: Identity */},
+  {(bigint) 1367 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction43 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction43 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1375 /* 3: ReduceAction43 < ReduceAction43: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction43 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1367 /* 3: ReduceAction43 < ReduceAction43: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49353,10 +45547,10 @@ val_t NEW_ReduceAction43_parser___ReduceAction43___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction44[45] = {
-  {(bigint) 1331 /* 0: Identity */},
+  {(bigint) 1323 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction44 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction44 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1331 /* 3: ReduceAction44 < ReduceAction44: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction44 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1323 /* 3: ReduceAction44 < ReduceAction44: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49416,10 +45610,10 @@ val_t NEW_ReduceAction44_parser___ReduceAction44___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction45[45] = {
-  {(bigint) 1287 /* 0: Identity */},
+  {(bigint) 1279 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction45 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction45 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1287 /* 3: ReduceAction45 < ReduceAction45: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction45 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1279 /* 3: ReduceAction45 < ReduceAction45: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49479,10 +45673,10 @@ val_t NEW_ReduceAction45_parser___ReduceAction45___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction46[45] = {
-  {(bigint) 1243 /* 0: Identity */},
+  {(bigint) 1235 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction46 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction46 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1243 /* 3: ReduceAction46 < ReduceAction46: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction46 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1235 /* 3: ReduceAction46 < ReduceAction46: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49542,10 +45736,10 @@ val_t NEW_ReduceAction46_parser___ReduceAction46___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction47[45] = {
-  {(bigint) 1199 /* 0: Identity */},
+  {(bigint) 1191 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction47 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction47 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1199 /* 3: ReduceAction47 < ReduceAction47: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction47 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1191 /* 3: ReduceAction47 < ReduceAction47: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49605,10 +45799,10 @@ val_t NEW_ReduceAction47_parser___ReduceAction47___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction48[45] = {
-  {(bigint) 1155 /* 0: Identity */},
+  {(bigint) 1147 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction48 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction48 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1155 /* 3: ReduceAction48 < ReduceAction48: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction48 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1147 /* 3: ReduceAction48 < ReduceAction48: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49668,10 +45862,10 @@ val_t NEW_ReduceAction48_parser___ReduceAction48___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction49[45] = {
-  {(bigint) 1111 /* 0: Identity */},
+  {(bigint) 1103 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction49 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction49 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1111 /* 3: ReduceAction49 < ReduceAction49: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction49 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1103 /* 3: ReduceAction49 < ReduceAction49: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49731,10 +45925,10 @@ val_t NEW_ReduceAction49_parser___ReduceAction49___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction50[45] = {
-  {(bigint) 1063 /* 0: Identity */},
+  {(bigint) 1055 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction50 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction50 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1063 /* 3: ReduceAction50 < ReduceAction50: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction50 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1055 /* 3: ReduceAction50 < ReduceAction50: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49794,10 +45988,10 @@ val_t NEW_ReduceAction50_parser___ReduceAction50___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction51[45] = {
-  {(bigint) 1019 /* 0: Identity */},
+  {(bigint) 1011 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction51 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction51 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1019 /* 3: ReduceAction51 < ReduceAction51: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction51 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1011 /* 3: ReduceAction51 < ReduceAction51: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49857,10 +46051,10 @@ val_t NEW_ReduceAction51_parser___ReduceAction51___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction52[45] = {
-  {(bigint) 975 /* 0: Identity */},
+  {(bigint) 967 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction52 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction52 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 975 /* 3: ReduceAction52 < ReduceAction52: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction52 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 967 /* 3: ReduceAction52 < ReduceAction52: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49920,10 +46114,10 @@ val_t NEW_ReduceAction52_parser___ReduceAction52___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction53[45] = {
-  {(bigint) 931 /* 0: Identity */},
+  {(bigint) 923 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction53 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction53 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 931 /* 3: ReduceAction53 < ReduceAction53: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction53 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 923 /* 3: ReduceAction53 < ReduceAction53: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -49983,10 +46177,10 @@ val_t NEW_ReduceAction53_parser___ReduceAction53___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction54[45] = {
-  {(bigint) 887 /* 0: Identity */},
+  {(bigint) 879 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction54 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction54 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 887 /* 3: ReduceAction54 < ReduceAction54: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction54 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 879 /* 3: ReduceAction54 < ReduceAction54: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50046,10 +46240,10 @@ val_t NEW_ReduceAction54_parser___ReduceAction54___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction55[45] = {
-  {(bigint) 843 /* 0: Identity */},
+  {(bigint) 835 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction55 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction55 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 843 /* 3: ReduceAction55 < ReduceAction55: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction55 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 835 /* 3: ReduceAction55 < ReduceAction55: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50109,10 +46303,10 @@ val_t NEW_ReduceAction55_parser___ReduceAction55___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction56[45] = {
-  {(bigint) 799 /* 0: Identity */},
+  {(bigint) 791 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction56 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction56 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 799 /* 3: ReduceAction56 < ReduceAction56: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction56 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 791 /* 3: ReduceAction56 < ReduceAction56: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50172,10 +46366,10 @@ val_t NEW_ReduceAction56_parser___ReduceAction56___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction57[45] = {
-  {(bigint) 755 /* 0: Identity */},
+  {(bigint) 747 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction57 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction57 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 755 /* 3: ReduceAction57 < ReduceAction57: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction57 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 747 /* 3: ReduceAction57 < ReduceAction57: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50235,10 +46429,10 @@ val_t NEW_ReduceAction57_parser___ReduceAction57___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction58[45] = {
-  {(bigint) 711 /* 0: Identity */},
+  {(bigint) 703 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction58 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction58 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 711 /* 3: ReduceAction58 < ReduceAction58: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction58 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 703 /* 3: ReduceAction58 < ReduceAction58: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50298,10 +46492,10 @@ val_t NEW_ReduceAction58_parser___ReduceAction58___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction59[45] = {
-  {(bigint) 667 /* 0: Identity */},
+  {(bigint) 659 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction59 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction59 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 667 /* 3: ReduceAction59 < ReduceAction59: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction59 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 659 /* 3: ReduceAction59 < ReduceAction59: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50361,10 +46555,10 @@ val_t NEW_ReduceAction59_parser___ReduceAction59___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction60[45] = {
-  {(bigint) 619 /* 0: Identity */},
+  {(bigint) 611 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction60 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction60 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 619 /* 3: ReduceAction60 < ReduceAction60: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction60 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 611 /* 3: ReduceAction60 < ReduceAction60: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50424,10 +46618,10 @@ val_t NEW_ReduceAction60_parser___ReduceAction60___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction61[45] = {
-  {(bigint) 575 /* 0: Identity */},
+  {(bigint) 567 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction61 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction61 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 575 /* 3: ReduceAction61 < ReduceAction61: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction61 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 567 /* 3: ReduceAction61 < ReduceAction61: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50487,10 +46681,10 @@ val_t NEW_ReduceAction61_parser___ReduceAction61___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction62[45] = {
-  {(bigint) 531 /* 0: Identity */},
+  {(bigint) 523 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction62 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction62 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 531 /* 3: ReduceAction62 < ReduceAction62: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction62 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 523 /* 3: ReduceAction62 < ReduceAction62: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50550,10 +46744,10 @@ val_t NEW_ReduceAction62_parser___ReduceAction62___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction63[45] = {
-  {(bigint) 487 /* 0: Identity */},
+  {(bigint) 479 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction63 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction63 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 487 /* 3: ReduceAction63 < ReduceAction63: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction63 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 479 /* 3: ReduceAction63 < ReduceAction63: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50613,10 +46807,10 @@ val_t NEW_ReduceAction63_parser___ReduceAction63___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction64[45] = {
-  {(bigint) 443 /* 0: Identity */},
+  {(bigint) 435 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction64 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction64 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 443 /* 3: ReduceAction64 < ReduceAction64: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction64 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 435 /* 3: ReduceAction64 < ReduceAction64: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50676,10 +46870,10 @@ val_t NEW_ReduceAction64_parser___ReduceAction64___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction65[45] = {
-  {(bigint) 399 /* 0: Identity */},
+  {(bigint) 391 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction65 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction65 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 399 /* 3: ReduceAction65 < ReduceAction65: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction65 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 391 /* 3: ReduceAction65 < ReduceAction65: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50739,10 +46933,10 @@ val_t NEW_ReduceAction65_parser___ReduceAction65___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction66[45] = {
-  {(bigint) 379 /* 0: Identity */},
+  {(bigint) 371 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction66 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction66 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 379 /* 3: ReduceAction66 < ReduceAction66: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction66 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 371 /* 3: ReduceAction66 < ReduceAction66: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50802,10 +46996,10 @@ val_t NEW_ReduceAction66_parser___ReduceAction66___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction67[45] = {
-  {(bigint) 375 /* 0: Identity */},
+  {(bigint) 367 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction67 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction67 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 375 /* 3: ReduceAction67 < ReduceAction67: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction67 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 367 /* 3: ReduceAction67 < ReduceAction67: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50865,10 +47059,10 @@ val_t NEW_ReduceAction67_parser___ReduceAction67___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction68[45] = {
-  {(bigint) 371 /* 0: Identity */},
+  {(bigint) 363 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction68 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction68 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 371 /* 3: ReduceAction68 < ReduceAction68: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction68 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 363 /* 3: ReduceAction68 < ReduceAction68: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50928,10 +47122,10 @@ val_t NEW_ReduceAction68_parser___ReduceAction68___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction69[45] = {
-  {(bigint) 367 /* 0: Identity */},
+  {(bigint) 359 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction69 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction69 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 367 /* 3: ReduceAction69 < ReduceAction69: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction69 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 359 /* 3: ReduceAction69 < ReduceAction69: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -50991,10 +47185,10 @@ val_t NEW_ReduceAction69_parser___ReduceAction69___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction70[45] = {
-  {(bigint) 359 /* 0: Identity */},
+  {(bigint) 351 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction70 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction70 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 359 /* 3: ReduceAction70 < ReduceAction70: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction70 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 351 /* 3: ReduceAction70 < ReduceAction70: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51054,10 +47248,10 @@ val_t NEW_ReduceAction70_parser___ReduceAction70___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction71[45] = {
-  {(bigint) 355 /* 0: Identity */},
+  {(bigint) 347 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction71 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction71 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 355 /* 3: ReduceAction71 < ReduceAction71: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction71 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 347 /* 3: ReduceAction71 < ReduceAction71: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51117,10 +47311,10 @@ val_t NEW_ReduceAction71_parser___ReduceAction71___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction72[45] = {
-  {(bigint) 351 /* 0: Identity */},
+  {(bigint) 343 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction72 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction72 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 351 /* 3: ReduceAction72 < ReduceAction72: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction72 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 343 /* 3: ReduceAction72 < ReduceAction72: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51180,10 +47374,10 @@ val_t NEW_ReduceAction72_parser___ReduceAction72___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction73[45] = {
-  {(bigint) 347 /* 0: Identity */},
+  {(bigint) 339 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction73 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction73 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 347 /* 3: ReduceAction73 < ReduceAction73: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction73 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 339 /* 3: ReduceAction73 < ReduceAction73: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51243,10 +47437,10 @@ val_t NEW_ReduceAction73_parser___ReduceAction73___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction74[45] = {
-  {(bigint) 343 /* 0: Identity */},
+  {(bigint) 335 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction74 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction74 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 343 /* 3: ReduceAction74 < ReduceAction74: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction74 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 335 /* 3: ReduceAction74 < ReduceAction74: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51306,10 +47500,10 @@ val_t NEW_ReduceAction74_parser___ReduceAction74___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction75[45] = {
-  {(bigint) 339 /* 0: Identity */},
+  {(bigint) 331 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction75 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction75 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 339 /* 3: ReduceAction75 < ReduceAction75: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction75 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 331 /* 3: ReduceAction75 < ReduceAction75: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51369,10 +47563,10 @@ val_t NEW_ReduceAction75_parser___ReduceAction75___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction76[45] = {
-  {(bigint) 335 /* 0: Identity */},
+  {(bigint) 327 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction76 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction76 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 335 /* 3: ReduceAction76 < ReduceAction76: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction76 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 327 /* 3: ReduceAction76 < ReduceAction76: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51432,10 +47626,10 @@ val_t NEW_ReduceAction76_parser___ReduceAction76___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction77[45] = {
-  {(bigint) 331 /* 0: Identity */},
+  {(bigint) 323 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction77 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction77 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 331 /* 3: ReduceAction77 < ReduceAction77: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction77 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 323 /* 3: ReduceAction77 < ReduceAction77: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51495,10 +47689,10 @@ val_t NEW_ReduceAction77_parser___ReduceAction77___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction78[45] = {
-  {(bigint) 327 /* 0: Identity */},
+  {(bigint) 319 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction78 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction78 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 327 /* 3: ReduceAction78 < ReduceAction78: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction78 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 319 /* 3: ReduceAction78 < ReduceAction78: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51558,10 +47752,10 @@ val_t NEW_ReduceAction78_parser___ReduceAction78___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction79[45] = {
-  {(bigint) 323 /* 0: Identity */},
+  {(bigint) 315 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction79 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction79 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 323 /* 3: ReduceAction79 < ReduceAction79: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction79 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 315 /* 3: ReduceAction79 < ReduceAction79: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51621,10 +47815,10 @@ val_t NEW_ReduceAction79_parser___ReduceAction79___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction80[45] = {
-  {(bigint) 315 /* 0: Identity */},
+  {(bigint) 307 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction80 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction80 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 315 /* 3: ReduceAction80 < ReduceAction80: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction80 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 307 /* 3: ReduceAction80 < ReduceAction80: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51684,10 +47878,10 @@ val_t NEW_ReduceAction80_parser___ReduceAction80___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction81[45] = {
-  {(bigint) 311 /* 0: Identity */},
+  {(bigint) 303 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction81 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction81 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 311 /* 3: ReduceAction81 < ReduceAction81: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction81 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 303 /* 3: ReduceAction81 < ReduceAction81: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51747,10 +47941,10 @@ val_t NEW_ReduceAction81_parser___ReduceAction81___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction82[45] = {
-  {(bigint) 307 /* 0: Identity */},
+  {(bigint) 299 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction82 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction82 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 307 /* 3: ReduceAction82 < ReduceAction82: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction82 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 299 /* 3: ReduceAction82 < ReduceAction82: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51810,10 +48004,10 @@ val_t NEW_ReduceAction82_parser___ReduceAction82___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction83[45] = {
-  {(bigint) 303 /* 0: Identity */},
+  {(bigint) 295 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction83 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction83 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 303 /* 3: ReduceAction83 < ReduceAction83: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction83 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 295 /* 3: ReduceAction83 < ReduceAction83: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51873,10 +48067,10 @@ val_t NEW_ReduceAction83_parser___ReduceAction83___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction84[45] = {
-  {(bigint) 299 /* 0: Identity */},
+  {(bigint) 291 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction84 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction84 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 299 /* 3: ReduceAction84 < ReduceAction84: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction84 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 291 /* 3: ReduceAction84 < ReduceAction84: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51936,10 +48130,10 @@ val_t NEW_ReduceAction84_parser___ReduceAction84___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction85[45] = {
-  {(bigint) 295 /* 0: Identity */},
+  {(bigint) 287 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction85 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction85 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 295 /* 3: ReduceAction85 < ReduceAction85: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction85 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 287 /* 3: ReduceAction85 < ReduceAction85: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -51999,10 +48193,10 @@ val_t NEW_ReduceAction85_parser___ReduceAction85___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction86[45] = {
-  {(bigint) 291 /* 0: Identity */},
+  {(bigint) 283 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction86 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction86 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 291 /* 3: ReduceAction86 < ReduceAction86: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction86 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 283 /* 3: ReduceAction86 < ReduceAction86: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52062,10 +48256,10 @@ val_t NEW_ReduceAction86_parser___ReduceAction86___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction87[45] = {
-  {(bigint) 287 /* 0: Identity */},
+  {(bigint) 279 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction87 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction87 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 287 /* 3: ReduceAction87 < ReduceAction87: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction87 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 279 /* 3: ReduceAction87 < ReduceAction87: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52125,10 +48319,10 @@ val_t NEW_ReduceAction87_parser___ReduceAction87___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction88[45] = {
-  {(bigint) 283 /* 0: Identity */},
+  {(bigint) 275 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction88 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction88 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 283 /* 3: ReduceAction88 < ReduceAction88: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction88 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 275 /* 3: ReduceAction88 < ReduceAction88: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52188,10 +48382,10 @@ val_t NEW_ReduceAction88_parser___ReduceAction88___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction89[45] = {
-  {(bigint) 279 /* 0: Identity */},
+  {(bigint) 271 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction89 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction89 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 279 /* 3: ReduceAction89 < ReduceAction89: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction89 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 271 /* 3: ReduceAction89 < ReduceAction89: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52251,10 +48445,10 @@ val_t NEW_ReduceAction89_parser___ReduceAction89___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction90[45] = {
-  {(bigint) 271 /* 0: Identity */},
+  {(bigint) 263 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction90 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction90 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 271 /* 3: ReduceAction90 < ReduceAction90: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction90 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 263 /* 3: ReduceAction90 < ReduceAction90: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52314,10 +48508,10 @@ val_t NEW_ReduceAction90_parser___ReduceAction90___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction91[45] = {
-  {(bigint) 267 /* 0: Identity */},
+  {(bigint) 259 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction91 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction91 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 267 /* 3: ReduceAction91 < ReduceAction91: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction91 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 259 /* 3: ReduceAction91 < ReduceAction91: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52377,10 +48571,10 @@ val_t NEW_ReduceAction91_parser___ReduceAction91___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction92[45] = {
-  {(bigint) 263 /* 0: Identity */},
+  {(bigint) 255 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction92 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction92 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 263 /* 3: ReduceAction92 < ReduceAction92: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction92 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 255 /* 3: ReduceAction92 < ReduceAction92: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52440,10 +48634,10 @@ val_t NEW_ReduceAction92_parser___ReduceAction92___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction93[45] = {
-  {(bigint) 259 /* 0: Identity */},
+  {(bigint) 251 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction93 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction93 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 259 /* 3: ReduceAction93 < ReduceAction93: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction93 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 251 /* 3: ReduceAction93 < ReduceAction93: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52503,10 +48697,10 @@ val_t NEW_ReduceAction93_parser___ReduceAction93___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction94[45] = {
-  {(bigint) 255 /* 0: Identity */},
+  {(bigint) 247 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction94 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction94 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 255 /* 3: ReduceAction94 < ReduceAction94: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction94 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 247 /* 3: ReduceAction94 < ReduceAction94: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52566,10 +48760,10 @@ val_t NEW_ReduceAction94_parser___ReduceAction94___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction95[45] = {
-  {(bigint) 251 /* 0: Identity */},
+  {(bigint) 243 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction95 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction95 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 251 /* 3: ReduceAction95 < ReduceAction95: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction95 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 243 /* 3: ReduceAction95 < ReduceAction95: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52629,10 +48823,10 @@ val_t NEW_ReduceAction95_parser___ReduceAction95___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction96[45] = {
-  {(bigint) 247 /* 0: Identity */},
+  {(bigint) 239 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction96 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction96 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 247 /* 3: ReduceAction96 < ReduceAction96: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction96 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 239 /* 3: ReduceAction96 < ReduceAction96: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52692,10 +48886,10 @@ val_t NEW_ReduceAction96_parser___ReduceAction96___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction97[45] = {
-  {(bigint) 243 /* 0: Identity */},
+  {(bigint) 235 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction97 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction97 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 243 /* 3: ReduceAction97 < ReduceAction97: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction97 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 235 /* 3: ReduceAction97 < ReduceAction97: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52755,10 +48949,10 @@ val_t NEW_ReduceAction97_parser___ReduceAction97___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction98[45] = {
-  {(bigint) 239 /* 0: Identity */},
+  {(bigint) 231 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction98 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction98 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 239 /* 3: ReduceAction98 < ReduceAction98: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction98 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 231 /* 3: ReduceAction98 < ReduceAction98: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52818,10 +49012,10 @@ val_t NEW_ReduceAction98_parser___ReduceAction98___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction99[45] = {
-  {(bigint) 235 /* 0: Identity */},
+  {(bigint) 227 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction99 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction99 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 235 /* 3: ReduceAction99 < ReduceAction99: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction99 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 227 /* 3: ReduceAction99 < ReduceAction99: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52881,10 +49075,10 @@ val_t NEW_ReduceAction99_parser___ReduceAction99___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction100[45] = {
-  {(bigint) 2835 /* 0: Identity */},
+  {(bigint) 2827 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction100 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction100 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2835 /* 3: ReduceAction100 < ReduceAction100: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction100 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2827 /* 3: ReduceAction100 < ReduceAction100: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -52944,10 +49138,10 @@ val_t NEW_ReduceAction100_parser___ReduceAction100___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction101[45] = {
-  {(bigint) 2831 /* 0: Identity */},
+  {(bigint) 2823 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction101 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction101 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2831 /* 3: ReduceAction101 < ReduceAction101: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction101 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2823 /* 3: ReduceAction101 < ReduceAction101: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53007,10 +49201,10 @@ val_t NEW_ReduceAction101_parser___ReduceAction101___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction102[45] = {
-  {(bigint) 2827 /* 0: Identity */},
+  {(bigint) 2819 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction102 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction102 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2827 /* 3: ReduceAction102 < ReduceAction102: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction102 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2819 /* 3: ReduceAction102 < ReduceAction102: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53070,10 +49264,10 @@ val_t NEW_ReduceAction102_parser___ReduceAction102___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction103[45] = {
-  {(bigint) 2823 /* 0: Identity */},
+  {(bigint) 2815 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction103 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction103 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2823 /* 3: ReduceAction103 < ReduceAction103: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction103 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2815 /* 3: ReduceAction103 < ReduceAction103: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53133,10 +49327,10 @@ val_t NEW_ReduceAction103_parser___ReduceAction103___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction104[45] = {
-  {(bigint) 2819 /* 0: Identity */},
+  {(bigint) 2811 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction104 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction104 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2819 /* 3: ReduceAction104 < ReduceAction104: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction104 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2811 /* 3: ReduceAction104 < ReduceAction104: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53196,10 +49390,10 @@ val_t NEW_ReduceAction104_parser___ReduceAction104___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction105[45] = {
-  {(bigint) 2815 /* 0: Identity */},
+  {(bigint) 2807 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction105 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction105 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2815 /* 3: ReduceAction105 < ReduceAction105: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction105 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2807 /* 3: ReduceAction105 < ReduceAction105: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53259,10 +49453,10 @@ val_t NEW_ReduceAction105_parser___ReduceAction105___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction106[45] = {
-  {(bigint) 2811 /* 0: Identity */},
+  {(bigint) 2803 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction106 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction106 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2811 /* 3: ReduceAction106 < ReduceAction106: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction106 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2803 /* 3: ReduceAction106 < ReduceAction106: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53322,10 +49516,10 @@ val_t NEW_ReduceAction106_parser___ReduceAction106___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction107[45] = {
-  {(bigint) 2807 /* 0: Identity */},
+  {(bigint) 2799 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction107 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction107 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2807 /* 3: ReduceAction107 < ReduceAction107: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction107 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2799 /* 3: ReduceAction107 < ReduceAction107: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53385,10 +49579,10 @@ val_t NEW_ReduceAction107_parser___ReduceAction107___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction108[45] = {
-  {(bigint) 2803 /* 0: Identity */},
+  {(bigint) 2795 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction108 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction108 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2803 /* 3: ReduceAction108 < ReduceAction108: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction108 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2795 /* 3: ReduceAction108 < ReduceAction108: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53448,10 +49642,10 @@ val_t NEW_ReduceAction108_parser___ReduceAction108___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction109[45] = {
-  {(bigint) 2799 /* 0: Identity */},
+  {(bigint) 2791 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction109 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction109 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2799 /* 3: ReduceAction109 < ReduceAction109: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction109 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2791 /* 3: ReduceAction109 < ReduceAction109: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53511,10 +49705,10 @@ val_t NEW_ReduceAction109_parser___ReduceAction109___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction110[45] = {
-  {(bigint) 2791 /* 0: Identity */},
+  {(bigint) 2783 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction110 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction110 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2791 /* 3: ReduceAction110 < ReduceAction110: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction110 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2783 /* 3: ReduceAction110 < ReduceAction110: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53574,10 +49768,10 @@ val_t NEW_ReduceAction110_parser___ReduceAction110___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction111[45] = {
-  {(bigint) 2787 /* 0: Identity */},
+  {(bigint) 2779 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction111 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction111 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2787 /* 3: ReduceAction111 < ReduceAction111: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction111 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2779 /* 3: ReduceAction111 < ReduceAction111: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53637,10 +49831,10 @@ val_t NEW_ReduceAction111_parser___ReduceAction111___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction112[45] = {
-  {(bigint) 2783 /* 0: Identity */},
+  {(bigint) 2775 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction112 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction112 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2783 /* 3: ReduceAction112 < ReduceAction112: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction112 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2775 /* 3: ReduceAction112 < ReduceAction112: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53700,10 +49894,10 @@ val_t NEW_ReduceAction112_parser___ReduceAction112___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction113[45] = {
-  {(bigint) 2779 /* 0: Identity */},
+  {(bigint) 2771 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction113 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction113 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2779 /* 3: ReduceAction113 < ReduceAction113: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction113 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2771 /* 3: ReduceAction113 < ReduceAction113: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53763,10 +49957,10 @@ val_t NEW_ReduceAction113_parser___ReduceAction113___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction114[45] = {
-  {(bigint) 2775 /* 0: Identity */},
+  {(bigint) 2767 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction114 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction114 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2775 /* 3: ReduceAction114 < ReduceAction114: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction114 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2767 /* 3: ReduceAction114 < ReduceAction114: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53826,10 +50020,10 @@ val_t NEW_ReduceAction114_parser___ReduceAction114___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction115[45] = {
-  {(bigint) 2771 /* 0: Identity */},
+  {(bigint) 2763 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction115 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction115 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2771 /* 3: ReduceAction115 < ReduceAction115: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction115 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2763 /* 3: ReduceAction115 < ReduceAction115: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53889,10 +50083,10 @@ val_t NEW_ReduceAction115_parser___ReduceAction115___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction116[45] = {
-  {(bigint) 2767 /* 0: Identity */},
+  {(bigint) 2759 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction116 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction116 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2767 /* 3: ReduceAction116 < ReduceAction116: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction116 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2759 /* 3: ReduceAction116 < ReduceAction116: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -53952,10 +50146,10 @@ val_t NEW_ReduceAction116_parser___ReduceAction116___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction117[45] = {
-  {(bigint) 2763 /* 0: Identity */},
+  {(bigint) 2755 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction117 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction117 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2763 /* 3: ReduceAction117 < ReduceAction117: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction117 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2755 /* 3: ReduceAction117 < ReduceAction117: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54015,10 +50209,10 @@ val_t NEW_ReduceAction117_parser___ReduceAction117___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction118[45] = {
-  {(bigint) 2759 /* 0: Identity */},
+  {(bigint) 2751 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction118 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction118 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2759 /* 3: ReduceAction118 < ReduceAction118: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction118 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2751 /* 3: ReduceAction118 < ReduceAction118: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54078,10 +50272,10 @@ val_t NEW_ReduceAction118_parser___ReduceAction118___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction119[45] = {
-  {(bigint) 2755 /* 0: Identity */},
+  {(bigint) 2747 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction119 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction119 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2755 /* 3: ReduceAction119 < ReduceAction119: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction119 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2747 /* 3: ReduceAction119 < ReduceAction119: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54141,10 +50335,10 @@ val_t NEW_ReduceAction119_parser___ReduceAction119___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction120[45] = {
-  {(bigint) 2747 /* 0: Identity */},
+  {(bigint) 2739 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction120 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction120 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2747 /* 3: ReduceAction120 < ReduceAction120: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction120 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2739 /* 3: ReduceAction120 < ReduceAction120: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54204,10 +50398,10 @@ val_t NEW_ReduceAction120_parser___ReduceAction120___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction121[45] = {
-  {(bigint) 2743 /* 0: Identity */},
+  {(bigint) 2735 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction121 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction121 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2743 /* 3: ReduceAction121 < ReduceAction121: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction121 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2735 /* 3: ReduceAction121 < ReduceAction121: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54267,10 +50461,10 @@ val_t NEW_ReduceAction121_parser___ReduceAction121___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction122[45] = {
-  {(bigint) 2739 /* 0: Identity */},
+  {(bigint) 2731 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction122 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction122 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2739 /* 3: ReduceAction122 < ReduceAction122: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction122 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2731 /* 3: ReduceAction122 < ReduceAction122: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54330,10 +50524,10 @@ val_t NEW_ReduceAction122_parser___ReduceAction122___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction123[45] = {
-  {(bigint) 2735 /* 0: Identity */},
+  {(bigint) 2727 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction123 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction123 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2735 /* 3: ReduceAction123 < ReduceAction123: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction123 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2727 /* 3: ReduceAction123 < ReduceAction123: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54393,10 +50587,10 @@ val_t NEW_ReduceAction123_parser___ReduceAction123___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction124[45] = {
-  {(bigint) 2731 /* 0: Identity */},
+  {(bigint) 2723 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction124 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction124 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2731 /* 3: ReduceAction124 < ReduceAction124: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction124 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2723 /* 3: ReduceAction124 < ReduceAction124: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54456,10 +50650,10 @@ val_t NEW_ReduceAction124_parser___ReduceAction124___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction125[45] = {
-  {(bigint) 2727 /* 0: Identity */},
+  {(bigint) 2719 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction125 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction125 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2727 /* 3: ReduceAction125 < ReduceAction125: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction125 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2719 /* 3: ReduceAction125 < ReduceAction125: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54519,10 +50713,10 @@ val_t NEW_ReduceAction125_parser___ReduceAction125___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction126[45] = {
-  {(bigint) 2723 /* 0: Identity */},
+  {(bigint) 2715 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction126 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction126 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2723 /* 3: ReduceAction126 < ReduceAction126: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction126 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2715 /* 3: ReduceAction126 < ReduceAction126: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54582,10 +50776,10 @@ val_t NEW_ReduceAction126_parser___ReduceAction126___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction127[45] = {
-  {(bigint) 2719 /* 0: Identity */},
+  {(bigint) 2711 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction127 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction127 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2719 /* 3: ReduceAction127 < ReduceAction127: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction127 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2711 /* 3: ReduceAction127 < ReduceAction127: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54645,10 +50839,10 @@ val_t NEW_ReduceAction127_parser___ReduceAction127___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction128[45] = {
-  {(bigint) 2715 /* 0: Identity */},
+  {(bigint) 2707 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction128 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction128 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2715 /* 3: ReduceAction128 < ReduceAction128: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction128 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2707 /* 3: ReduceAction128 < ReduceAction128: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54708,10 +50902,10 @@ val_t NEW_ReduceAction128_parser___ReduceAction128___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction129[45] = {
-  {(bigint) 2711 /* 0: Identity */},
+  {(bigint) 2703 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction129 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction129 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2711 /* 3: ReduceAction129 < ReduceAction129: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction129 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2703 /* 3: ReduceAction129 < ReduceAction129: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54771,10 +50965,10 @@ val_t NEW_ReduceAction129_parser___ReduceAction129___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction130[45] = {
-  {(bigint) 2703 /* 0: Identity */},
+  {(bigint) 2695 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction130 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction130 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2703 /* 3: ReduceAction130 < ReduceAction130: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction130 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2695 /* 3: ReduceAction130 < ReduceAction130: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54834,10 +51028,10 @@ val_t NEW_ReduceAction130_parser___ReduceAction130___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction131[45] = {
-  {(bigint) 2699 /* 0: Identity */},
+  {(bigint) 2691 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction131 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction131 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2699 /* 3: ReduceAction131 < ReduceAction131: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction131 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2691 /* 3: ReduceAction131 < ReduceAction131: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54897,10 +51091,10 @@ val_t NEW_ReduceAction131_parser___ReduceAction131___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction132[45] = {
-  {(bigint) 2695 /* 0: Identity */},
+  {(bigint) 2687 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction132 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction132 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2695 /* 3: ReduceAction132 < ReduceAction132: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction132 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2687 /* 3: ReduceAction132 < ReduceAction132: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -54960,10 +51154,10 @@ val_t NEW_ReduceAction132_parser___ReduceAction132___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction133[45] = {
-  {(bigint) 2691 /* 0: Identity */},
+  {(bigint) 2683 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction133 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction133 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2691 /* 3: ReduceAction133 < ReduceAction133: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction133 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2683 /* 3: ReduceAction133 < ReduceAction133: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55023,10 +51217,10 @@ val_t NEW_ReduceAction133_parser___ReduceAction133___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction134[45] = {
-  {(bigint) 2687 /* 0: Identity */},
+  {(bigint) 2679 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction134 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction134 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2687 /* 3: ReduceAction134 < ReduceAction134: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction134 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2679 /* 3: ReduceAction134 < ReduceAction134: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55086,10 +51280,10 @@ val_t NEW_ReduceAction134_parser___ReduceAction134___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction135[45] = {
-  {(bigint) 2683 /* 0: Identity */},
+  {(bigint) 2675 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction135 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction135 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2683 /* 3: ReduceAction135 < ReduceAction135: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction135 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2675 /* 3: ReduceAction135 < ReduceAction135: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55149,10 +51343,10 @@ val_t NEW_ReduceAction135_parser___ReduceAction135___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction136[45] = {
-  {(bigint) 2679 /* 0: Identity */},
+  {(bigint) 2671 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction136 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction136 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2679 /* 3: ReduceAction136 < ReduceAction136: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction136 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2671 /* 3: ReduceAction136 < ReduceAction136: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55212,10 +51406,10 @@ val_t NEW_ReduceAction136_parser___ReduceAction136___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction137[45] = {
-  {(bigint) 2675 /* 0: Identity */},
+  {(bigint) 2667 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction137 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction137 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2675 /* 3: ReduceAction137 < ReduceAction137: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction137 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2667 /* 3: ReduceAction137 < ReduceAction137: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55275,10 +51469,10 @@ val_t NEW_ReduceAction137_parser___ReduceAction137___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction138[45] = {
-  {(bigint) 2671 /* 0: Identity */},
+  {(bigint) 2663 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction138 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction138 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2671 /* 3: ReduceAction138 < ReduceAction138: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction138 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2663 /* 3: ReduceAction138 < ReduceAction138: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55338,10 +51532,10 @@ val_t NEW_ReduceAction138_parser___ReduceAction138___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction139[45] = {
-  {(bigint) 2667 /* 0: Identity */},
+  {(bigint) 2659 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction139 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction139 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2667 /* 3: ReduceAction139 < ReduceAction139: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction139 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2659 /* 3: ReduceAction139 < ReduceAction139: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55401,10 +51595,10 @@ val_t NEW_ReduceAction139_parser___ReduceAction139___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction140[45] = {
-  {(bigint) 2659 /* 0: Identity */},
+  {(bigint) 2651 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction140 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction140 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2659 /* 3: ReduceAction140 < ReduceAction140: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction140 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2651 /* 3: ReduceAction140 < ReduceAction140: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55464,10 +51658,10 @@ val_t NEW_ReduceAction140_parser___ReduceAction140___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction141[45] = {
-  {(bigint) 2655 /* 0: Identity */},
+  {(bigint) 2647 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction141 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction141 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2655 /* 3: ReduceAction141 < ReduceAction141: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction141 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2647 /* 3: ReduceAction141 < ReduceAction141: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55527,10 +51721,10 @@ val_t NEW_ReduceAction141_parser___ReduceAction141___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction142[45] = {
-  {(bigint) 2651 /* 0: Identity */},
+  {(bigint) 2643 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction142 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction142 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2651 /* 3: ReduceAction142 < ReduceAction142: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction142 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2643 /* 3: ReduceAction142 < ReduceAction142: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55590,10 +51784,10 @@ val_t NEW_ReduceAction142_parser___ReduceAction142___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction143[45] = {
-  {(bigint) 2647 /* 0: Identity */},
+  {(bigint) 2639 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction143 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction143 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2647 /* 3: ReduceAction143 < ReduceAction143: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction143 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2639 /* 3: ReduceAction143 < ReduceAction143: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55653,10 +51847,10 @@ val_t NEW_ReduceAction143_parser___ReduceAction143___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction144[45] = {
-  {(bigint) 2643 /* 0: Identity */},
+  {(bigint) 2635 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction144 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction144 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2643 /* 3: ReduceAction144 < ReduceAction144: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction144 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2635 /* 3: ReduceAction144 < ReduceAction144: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55716,10 +51910,10 @@ val_t NEW_ReduceAction144_parser___ReduceAction144___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction145[45] = {
-  {(bigint) 2639 /* 0: Identity */},
+  {(bigint) 2631 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction145 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction145 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2639 /* 3: ReduceAction145 < ReduceAction145: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction145 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2631 /* 3: ReduceAction145 < ReduceAction145: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55779,10 +51973,10 @@ val_t NEW_ReduceAction145_parser___ReduceAction145___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction146[45] = {
-  {(bigint) 2635 /* 0: Identity */},
+  {(bigint) 2627 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction146 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction146 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2635 /* 3: ReduceAction146 < ReduceAction146: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction146 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2627 /* 3: ReduceAction146 < ReduceAction146: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55842,10 +52036,10 @@ val_t NEW_ReduceAction146_parser___ReduceAction146___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction147[45] = {
-  {(bigint) 2631 /* 0: Identity */},
+  {(bigint) 2623 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction147 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction147 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2631 /* 3: ReduceAction147 < ReduceAction147: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction147 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2623 /* 3: ReduceAction147 < ReduceAction147: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55905,10 +52099,10 @@ val_t NEW_ReduceAction147_parser___ReduceAction147___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction148[45] = {
-  {(bigint) 2627 /* 0: Identity */},
+  {(bigint) 2619 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction148 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction148 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2627 /* 3: ReduceAction148 < ReduceAction148: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction148 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2619 /* 3: ReduceAction148 < ReduceAction148: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -55968,10 +52162,10 @@ val_t NEW_ReduceAction148_parser___ReduceAction148___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction149[45] = {
-  {(bigint) 2623 /* 0: Identity */},
+  {(bigint) 2615 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction149 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction149 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2623 /* 3: ReduceAction149 < ReduceAction149: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction149 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2615 /* 3: ReduceAction149 < ReduceAction149: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56031,10 +52225,10 @@ val_t NEW_ReduceAction149_parser___ReduceAction149___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction150[45] = {
-  {(bigint) 2615 /* 0: Identity */},
+  {(bigint) 2607 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction150 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction150 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2615 /* 3: ReduceAction150 < ReduceAction150: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction150 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2607 /* 3: ReduceAction150 < ReduceAction150: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56094,10 +52288,10 @@ val_t NEW_ReduceAction150_parser___ReduceAction150___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction151[45] = {
-  {(bigint) 2611 /* 0: Identity */},
+  {(bigint) 2603 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction151 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction151 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2611 /* 3: ReduceAction151 < ReduceAction151: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction151 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2603 /* 3: ReduceAction151 < ReduceAction151: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56157,10 +52351,10 @@ val_t NEW_ReduceAction151_parser___ReduceAction151___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction152[45] = {
-  {(bigint) 2607 /* 0: Identity */},
+  {(bigint) 2599 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction152 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction152 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2607 /* 3: ReduceAction152 < ReduceAction152: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction152 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2599 /* 3: ReduceAction152 < ReduceAction152: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56220,10 +52414,10 @@ val_t NEW_ReduceAction152_parser___ReduceAction152___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction153[45] = {
-  {(bigint) 2603 /* 0: Identity */},
+  {(bigint) 2595 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction153 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction153 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2603 /* 3: ReduceAction153 < ReduceAction153: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction153 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2595 /* 3: ReduceAction153 < ReduceAction153: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56283,10 +52477,10 @@ val_t NEW_ReduceAction153_parser___ReduceAction153___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction154[45] = {
-  {(bigint) 2599 /* 0: Identity */},
+  {(bigint) 2591 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction154 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction154 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2599 /* 3: ReduceAction154 < ReduceAction154: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction154 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2591 /* 3: ReduceAction154 < ReduceAction154: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56346,10 +52540,10 @@ val_t NEW_ReduceAction154_parser___ReduceAction154___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction155[45] = {
-  {(bigint) 2595 /* 0: Identity */},
+  {(bigint) 2587 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction155 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction155 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2595 /* 3: ReduceAction155 < ReduceAction155: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction155 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2587 /* 3: ReduceAction155 < ReduceAction155: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56409,10 +52603,10 @@ val_t NEW_ReduceAction155_parser___ReduceAction155___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction156[45] = {
-  {(bigint) 2591 /* 0: Identity */},
+  {(bigint) 2583 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction156 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction156 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2591 /* 3: ReduceAction156 < ReduceAction156: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction156 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2583 /* 3: ReduceAction156 < ReduceAction156: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56472,10 +52666,10 @@ val_t NEW_ReduceAction156_parser___ReduceAction156___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction157[45] = {
-  {(bigint) 2587 /* 0: Identity */},
+  {(bigint) 2579 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction157 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction157 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2587 /* 3: ReduceAction157 < ReduceAction157: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction157 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2579 /* 3: ReduceAction157 < ReduceAction157: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56535,10 +52729,10 @@ val_t NEW_ReduceAction157_parser___ReduceAction157___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction158[45] = {
-  {(bigint) 2583 /* 0: Identity */},
+  {(bigint) 2575 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction158 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction158 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2583 /* 3: ReduceAction158 < ReduceAction158: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction158 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2575 /* 3: ReduceAction158 < ReduceAction158: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56598,10 +52792,10 @@ val_t NEW_ReduceAction158_parser___ReduceAction158___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction159[45] = {
-  {(bigint) 2579 /* 0: Identity */},
+  {(bigint) 2571 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction159 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction159 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2579 /* 3: ReduceAction159 < ReduceAction159: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction159 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2571 /* 3: ReduceAction159 < ReduceAction159: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56661,10 +52855,10 @@ val_t NEW_ReduceAction159_parser___ReduceAction159___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction160[45] = {
-  {(bigint) 2571 /* 0: Identity */},
+  {(bigint) 2563 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction160 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction160 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2571 /* 3: ReduceAction160 < ReduceAction160: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction160 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2563 /* 3: ReduceAction160 < ReduceAction160: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56724,10 +52918,10 @@ val_t NEW_ReduceAction160_parser___ReduceAction160___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction161[45] = {
-  {(bigint) 2567 /* 0: Identity */},
+  {(bigint) 2559 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction161 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction161 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2567 /* 3: ReduceAction161 < ReduceAction161: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction161 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2559 /* 3: ReduceAction161 < ReduceAction161: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56787,10 +52981,10 @@ val_t NEW_ReduceAction161_parser___ReduceAction161___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction162[45] = {
-  {(bigint) 2563 /* 0: Identity */},
+  {(bigint) 2555 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction162 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction162 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2563 /* 3: ReduceAction162 < ReduceAction162: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction162 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2555 /* 3: ReduceAction162 < ReduceAction162: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56850,10 +53044,10 @@ val_t NEW_ReduceAction162_parser___ReduceAction162___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction163[45] = {
-  {(bigint) 2559 /* 0: Identity */},
+  {(bigint) 2551 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction163 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction163 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2559 /* 3: ReduceAction163 < ReduceAction163: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction163 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2551 /* 3: ReduceAction163 < ReduceAction163: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56913,10 +53107,10 @@ val_t NEW_ReduceAction163_parser___ReduceAction163___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction164[45] = {
-  {(bigint) 2555 /* 0: Identity */},
+  {(bigint) 2547 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction164 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction164 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2555 /* 3: ReduceAction164 < ReduceAction164: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction164 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2547 /* 3: ReduceAction164 < ReduceAction164: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -56976,10 +53170,10 @@ val_t NEW_ReduceAction164_parser___ReduceAction164___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction165[45] = {
-  {(bigint) 2551 /* 0: Identity */},
+  {(bigint) 2543 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction165 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction165 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2551 /* 3: ReduceAction165 < ReduceAction165: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction165 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2543 /* 3: ReduceAction165 < ReduceAction165: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57039,10 +53233,10 @@ val_t NEW_ReduceAction165_parser___ReduceAction165___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction166[45] = {
-  {(bigint) 2547 /* 0: Identity */},
+  {(bigint) 2539 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction166 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction166 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2547 /* 3: ReduceAction166 < ReduceAction166: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction166 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2539 /* 3: ReduceAction166 < ReduceAction166: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57102,10 +53296,10 @@ val_t NEW_ReduceAction166_parser___ReduceAction166___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction167[45] = {
-  {(bigint) 2543 /* 0: Identity */},
+  {(bigint) 2535 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction167 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction167 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2543 /* 3: ReduceAction167 < ReduceAction167: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction167 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2535 /* 3: ReduceAction167 < ReduceAction167: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57165,10 +53359,10 @@ val_t NEW_ReduceAction167_parser___ReduceAction167___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction168[45] = {
-  {(bigint) 2539 /* 0: Identity */},
+  {(bigint) 2531 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction168 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction168 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2539 /* 3: ReduceAction168 < ReduceAction168: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction168 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2531 /* 3: ReduceAction168 < ReduceAction168: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57228,10 +53422,10 @@ val_t NEW_ReduceAction168_parser___ReduceAction168___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction169[45] = {
-  {(bigint) 2535 /* 0: Identity */},
+  {(bigint) 2527 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction169 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction169 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2535 /* 3: ReduceAction169 < ReduceAction169: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction169 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2527 /* 3: ReduceAction169 < ReduceAction169: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57291,10 +53485,10 @@ val_t NEW_ReduceAction169_parser___ReduceAction169___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction170[45] = {
-  {(bigint) 2527 /* 0: Identity */},
+  {(bigint) 2519 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction170 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction170 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2527 /* 3: ReduceAction170 < ReduceAction170: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction170 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2519 /* 3: ReduceAction170 < ReduceAction170: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57354,10 +53548,10 @@ val_t NEW_ReduceAction170_parser___ReduceAction170___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction171[45] = {
-  {(bigint) 2523 /* 0: Identity */},
+  {(bigint) 2515 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction171 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction171 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2523 /* 3: ReduceAction171 < ReduceAction171: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction171 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2515 /* 3: ReduceAction171 < ReduceAction171: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57417,10 +53611,10 @@ val_t NEW_ReduceAction171_parser___ReduceAction171___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction172[45] = {
-  {(bigint) 2519 /* 0: Identity */},
+  {(bigint) 2511 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction172 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction172 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2519 /* 3: ReduceAction172 < ReduceAction172: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction172 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2511 /* 3: ReduceAction172 < ReduceAction172: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57480,10 +53674,10 @@ val_t NEW_ReduceAction172_parser___ReduceAction172___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction173[45] = {
-  {(bigint) 2515 /* 0: Identity */},
+  {(bigint) 2507 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction173 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction173 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2515 /* 3: ReduceAction173 < ReduceAction173: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction173 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2507 /* 3: ReduceAction173 < ReduceAction173: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57543,10 +53737,10 @@ val_t NEW_ReduceAction173_parser___ReduceAction173___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction174[45] = {
-  {(bigint) 2511 /* 0: Identity */},
+  {(bigint) 2503 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction174 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction174 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2511 /* 3: ReduceAction174 < ReduceAction174: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction174 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2503 /* 3: ReduceAction174 < ReduceAction174: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57606,10 +53800,10 @@ val_t NEW_ReduceAction174_parser___ReduceAction174___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction175[45] = {
-  {(bigint) 2507 /* 0: Identity */},
+  {(bigint) 2499 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction175 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction175 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2507 /* 3: ReduceAction175 < ReduceAction175: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction175 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2499 /* 3: ReduceAction175 < ReduceAction175: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57669,10 +53863,10 @@ val_t NEW_ReduceAction175_parser___ReduceAction175___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction176[45] = {
-  {(bigint) 2503 /* 0: Identity */},
+  {(bigint) 2495 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction176 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction176 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2503 /* 3: ReduceAction176 < ReduceAction176: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction176 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2495 /* 3: ReduceAction176 < ReduceAction176: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57732,10 +53926,10 @@ val_t NEW_ReduceAction176_parser___ReduceAction176___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction177[45] = {
-  {(bigint) 2499 /* 0: Identity */},
+  {(bigint) 2491 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction177 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction177 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2499 /* 3: ReduceAction177 < ReduceAction177: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction177 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2491 /* 3: ReduceAction177 < ReduceAction177: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57795,10 +53989,10 @@ val_t NEW_ReduceAction177_parser___ReduceAction177___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction178[45] = {
-  {(bigint) 2495 /* 0: Identity */},
+  {(bigint) 2487 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction178 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction178 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2495 /* 3: ReduceAction178 < ReduceAction178: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction178 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2487 /* 3: ReduceAction178 < ReduceAction178: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57858,10 +54052,10 @@ val_t NEW_ReduceAction178_parser___ReduceAction178___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction179[45] = {
-  {(bigint) 2491 /* 0: Identity */},
+  {(bigint) 2483 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction179 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction179 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2491 /* 3: ReduceAction179 < ReduceAction179: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction179 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2483 /* 3: ReduceAction179 < ReduceAction179: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57921,10 +54115,10 @@ val_t NEW_ReduceAction179_parser___ReduceAction179___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction180[45] = {
-  {(bigint) 2483 /* 0: Identity */},
+  {(bigint) 2475 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction180 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction180 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2483 /* 3: ReduceAction180 < ReduceAction180: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction180 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2475 /* 3: ReduceAction180 < ReduceAction180: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -57984,10 +54178,10 @@ val_t NEW_ReduceAction180_parser___ReduceAction180___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction181[45] = {
-  {(bigint) 2479 /* 0: Identity */},
+  {(bigint) 2471 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction181 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction181 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2479 /* 3: ReduceAction181 < ReduceAction181: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction181 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2471 /* 3: ReduceAction181 < ReduceAction181: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58047,10 +54241,10 @@ val_t NEW_ReduceAction181_parser___ReduceAction181___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction182[45] = {
-  {(bigint) 2475 /* 0: Identity */},
+  {(bigint) 2467 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction182 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction182 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2475 /* 3: ReduceAction182 < ReduceAction182: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction182 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2467 /* 3: ReduceAction182 < ReduceAction182: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58110,10 +54304,10 @@ val_t NEW_ReduceAction182_parser___ReduceAction182___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction183[45] = {
-  {(bigint) 2471 /* 0: Identity */},
+  {(bigint) 2463 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction183 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction183 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2471 /* 3: ReduceAction183 < ReduceAction183: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction183 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2463 /* 3: ReduceAction183 < ReduceAction183: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58173,10 +54367,10 @@ val_t NEW_ReduceAction183_parser___ReduceAction183___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction184[45] = {
-  {(bigint) 2467 /* 0: Identity */},
+  {(bigint) 2459 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction184 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction184 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2467 /* 3: ReduceAction184 < ReduceAction184: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction184 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2459 /* 3: ReduceAction184 < ReduceAction184: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58236,10 +54430,10 @@ val_t NEW_ReduceAction184_parser___ReduceAction184___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction185[45] = {
-  {(bigint) 2463 /* 0: Identity */},
+  {(bigint) 2455 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction185 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction185 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2463 /* 3: ReduceAction185 < ReduceAction185: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction185 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2455 /* 3: ReduceAction185 < ReduceAction185: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58299,10 +54493,10 @@ val_t NEW_ReduceAction185_parser___ReduceAction185___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction186[45] = {
-  {(bigint) 2459 /* 0: Identity */},
+  {(bigint) 2451 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction186 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction186 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2459 /* 3: ReduceAction186 < ReduceAction186: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction186 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2451 /* 3: ReduceAction186 < ReduceAction186: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58362,10 +54556,10 @@ val_t NEW_ReduceAction186_parser___ReduceAction186___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction187[45] = {
-  {(bigint) 2455 /* 0: Identity */},
+  {(bigint) 2447 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction187 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction187 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2455 /* 3: ReduceAction187 < ReduceAction187: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction187 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2447 /* 3: ReduceAction187 < ReduceAction187: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58425,10 +54619,10 @@ val_t NEW_ReduceAction187_parser___ReduceAction187___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction188[45] = {
-  {(bigint) 2451 /* 0: Identity */},
+  {(bigint) 2443 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction188 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction188 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2451 /* 3: ReduceAction188 < ReduceAction188: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction188 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2443 /* 3: ReduceAction188 < ReduceAction188: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58488,10 +54682,10 @@ val_t NEW_ReduceAction188_parser___ReduceAction188___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction189[45] = {
-  {(bigint) 2447 /* 0: Identity */},
+  {(bigint) 2439 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction189 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction189 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2447 /* 3: ReduceAction189 < ReduceAction189: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction189 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2439 /* 3: ReduceAction189 < ReduceAction189: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58551,10 +54745,10 @@ val_t NEW_ReduceAction189_parser___ReduceAction189___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction190[45] = {
-  {(bigint) 2439 /* 0: Identity */},
+  {(bigint) 2431 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction190 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction190 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2439 /* 3: ReduceAction190 < ReduceAction190: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction190 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2431 /* 3: ReduceAction190 < ReduceAction190: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58614,10 +54808,10 @@ val_t NEW_ReduceAction190_parser___ReduceAction190___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction191[45] = {
-  {(bigint) 2435 /* 0: Identity */},
+  {(bigint) 2427 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction191 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction191 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2435 /* 3: ReduceAction191 < ReduceAction191: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction191 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2427 /* 3: ReduceAction191 < ReduceAction191: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58677,10 +54871,10 @@ val_t NEW_ReduceAction191_parser___ReduceAction191___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction192[45] = {
-  {(bigint) 2431 /* 0: Identity */},
+  {(bigint) 2423 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction192 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction192 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2431 /* 3: ReduceAction192 < ReduceAction192: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction192 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2423 /* 3: ReduceAction192 < ReduceAction192: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58740,10 +54934,10 @@ val_t NEW_ReduceAction192_parser___ReduceAction192___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction193[45] = {
-  {(bigint) 2427 /* 0: Identity */},
+  {(bigint) 2419 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction193 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction193 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2427 /* 3: ReduceAction193 < ReduceAction193: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction193 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2419 /* 3: ReduceAction193 < ReduceAction193: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58803,10 +54997,10 @@ val_t NEW_ReduceAction193_parser___ReduceAction193___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction194[45] = {
-  {(bigint) 2423 /* 0: Identity */},
+  {(bigint) 2415 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction194 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction194 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2423 /* 3: ReduceAction194 < ReduceAction194: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction194 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2415 /* 3: ReduceAction194 < ReduceAction194: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58866,10 +55060,10 @@ val_t NEW_ReduceAction194_parser___ReduceAction194___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction195[45] = {
-  {(bigint) 2419 /* 0: Identity */},
+  {(bigint) 2411 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction195 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction195 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2419 /* 3: ReduceAction195 < ReduceAction195: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction195 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2411 /* 3: ReduceAction195 < ReduceAction195: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58929,10 +55123,10 @@ val_t NEW_ReduceAction195_parser___ReduceAction195___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction196[45] = {
-  {(bigint) 2415 /* 0: Identity */},
+  {(bigint) 2407 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction196 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction196 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2415 /* 3: ReduceAction196 < ReduceAction196: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction196 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2407 /* 3: ReduceAction196 < ReduceAction196: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -58992,10 +55186,10 @@ val_t NEW_ReduceAction196_parser___ReduceAction196___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction197[45] = {
-  {(bigint) 2411 /* 0: Identity */},
+  {(bigint) 2403 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction197 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction197 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2411 /* 3: ReduceAction197 < ReduceAction197: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction197 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2403 /* 3: ReduceAction197 < ReduceAction197: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59055,10 +55249,10 @@ val_t NEW_ReduceAction197_parser___ReduceAction197___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction198[45] = {
-  {(bigint) 2407 /* 0: Identity */},
+  {(bigint) 2399 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction198 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction198 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2407 /* 3: ReduceAction198 < ReduceAction198: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction198 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2399 /* 3: ReduceAction198 < ReduceAction198: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59118,10 +55312,10 @@ val_t NEW_ReduceAction198_parser___ReduceAction198___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction199[45] = {
-  {(bigint) 2403 /* 0: Identity */},
+  {(bigint) 2395 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction199 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction199 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2403 /* 3: ReduceAction199 < ReduceAction199: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction199 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2395 /* 3: ReduceAction199 < ReduceAction199: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59181,10 +55375,10 @@ val_t NEW_ReduceAction199_parser___ReduceAction199___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction200[45] = {
-  {(bigint) 2391 /* 0: Identity */},
+  {(bigint) 2383 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction200 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction200 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2391 /* 3: ReduceAction200 < ReduceAction200: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction200 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2383 /* 3: ReduceAction200 < ReduceAction200: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59244,10 +55438,10 @@ val_t NEW_ReduceAction200_parser___ReduceAction200___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction201[45] = {
-  {(bigint) 2387 /* 0: Identity */},
+  {(bigint) 2379 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction201 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction201 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2387 /* 3: ReduceAction201 < ReduceAction201: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction201 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2379 /* 3: ReduceAction201 < ReduceAction201: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59307,10 +55501,10 @@ val_t NEW_ReduceAction201_parser___ReduceAction201___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction202[45] = {
-  {(bigint) 2383 /* 0: Identity */},
+  {(bigint) 2375 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction202 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction202 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2383 /* 3: ReduceAction202 < ReduceAction202: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction202 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2375 /* 3: ReduceAction202 < ReduceAction202: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59370,10 +55564,10 @@ val_t NEW_ReduceAction202_parser___ReduceAction202___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction203[45] = {
-  {(bigint) 2379 /* 0: Identity */},
+  {(bigint) 2371 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction203 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction203 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2379 /* 3: ReduceAction203 < ReduceAction203: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction203 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2371 /* 3: ReduceAction203 < ReduceAction203: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59433,10 +55627,10 @@ val_t NEW_ReduceAction203_parser___ReduceAction203___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction204[45] = {
-  {(bigint) 2375 /* 0: Identity */},
+  {(bigint) 2367 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction204 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction204 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2375 /* 3: ReduceAction204 < ReduceAction204: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction204 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2367 /* 3: ReduceAction204 < ReduceAction204: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59496,10 +55690,10 @@ val_t NEW_ReduceAction204_parser___ReduceAction204___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction205[45] = {
-  {(bigint) 2371 /* 0: Identity */},
+  {(bigint) 2363 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction205 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction205 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2371 /* 3: ReduceAction205 < ReduceAction205: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction205 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2363 /* 3: ReduceAction205 < ReduceAction205: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59559,10 +55753,10 @@ val_t NEW_ReduceAction205_parser___ReduceAction205___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction206[45] = {
-  {(bigint) 2367 /* 0: Identity */},
+  {(bigint) 2359 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction206 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction206 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2367 /* 3: ReduceAction206 < ReduceAction206: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction206 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2359 /* 3: ReduceAction206 < ReduceAction206: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59622,10 +55816,10 @@ val_t NEW_ReduceAction206_parser___ReduceAction206___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction207[45] = {
-  {(bigint) 2363 /* 0: Identity */},
+  {(bigint) 2355 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction207 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction207 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2363 /* 3: ReduceAction207 < ReduceAction207: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction207 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2355 /* 3: ReduceAction207 < ReduceAction207: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59685,10 +55879,10 @@ val_t NEW_ReduceAction207_parser___ReduceAction207___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction208[45] = {
-  {(bigint) 2359 /* 0: Identity */},
+  {(bigint) 2351 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction208 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction208 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2359 /* 3: ReduceAction208 < ReduceAction208: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction208 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2351 /* 3: ReduceAction208 < ReduceAction208: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59748,10 +55942,10 @@ val_t NEW_ReduceAction208_parser___ReduceAction208___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction209[45] = {
-  {(bigint) 2355 /* 0: Identity */},
+  {(bigint) 2347 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction209 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction209 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2355 /* 3: ReduceAction209 < ReduceAction209: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction209 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2347 /* 3: ReduceAction209 < ReduceAction209: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59811,10 +56005,10 @@ val_t NEW_ReduceAction209_parser___ReduceAction209___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction210[45] = {
-  {(bigint) 2347 /* 0: Identity */},
+  {(bigint) 2339 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction210 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction210 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2347 /* 3: ReduceAction210 < ReduceAction210: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction210 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2339 /* 3: ReduceAction210 < ReduceAction210: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59874,10 +56068,10 @@ val_t NEW_ReduceAction210_parser___ReduceAction210___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction211[45] = {
-  {(bigint) 2343 /* 0: Identity */},
+  {(bigint) 2335 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction211 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction211 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2343 /* 3: ReduceAction211 < ReduceAction211: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction211 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2335 /* 3: ReduceAction211 < ReduceAction211: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -59937,10 +56131,10 @@ val_t NEW_ReduceAction211_parser___ReduceAction211___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction212[45] = {
-  {(bigint) 2339 /* 0: Identity */},
+  {(bigint) 2331 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction212 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction212 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2339 /* 3: ReduceAction212 < ReduceAction212: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction212 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2331 /* 3: ReduceAction212 < ReduceAction212: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60000,10 +56194,10 @@ val_t NEW_ReduceAction212_parser___ReduceAction212___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction213[45] = {
-  {(bigint) 2335 /* 0: Identity */},
+  {(bigint) 2327 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction213 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction213 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2335 /* 3: ReduceAction213 < ReduceAction213: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction213 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2327 /* 3: ReduceAction213 < ReduceAction213: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60063,10 +56257,10 @@ val_t NEW_ReduceAction213_parser___ReduceAction213___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction214[45] = {
-  {(bigint) 2331 /* 0: Identity */},
+  {(bigint) 2323 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction214 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction214 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2331 /* 3: ReduceAction214 < ReduceAction214: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction214 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2323 /* 3: ReduceAction214 < ReduceAction214: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60126,10 +56320,10 @@ val_t NEW_ReduceAction214_parser___ReduceAction214___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction215[45] = {
-  {(bigint) 2327 /* 0: Identity */},
+  {(bigint) 2319 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction215 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction215 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2327 /* 3: ReduceAction215 < ReduceAction215: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction215 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2319 /* 3: ReduceAction215 < ReduceAction215: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60189,10 +56383,10 @@ val_t NEW_ReduceAction215_parser___ReduceAction215___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction216[45] = {
-  {(bigint) 2323 /* 0: Identity */},
+  {(bigint) 2315 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction216 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction216 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2323 /* 3: ReduceAction216 < ReduceAction216: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction216 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2315 /* 3: ReduceAction216 < ReduceAction216: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60252,10 +56446,10 @@ val_t NEW_ReduceAction216_parser___ReduceAction216___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction217[45] = {
-  {(bigint) 2319 /* 0: Identity */},
+  {(bigint) 2311 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction217 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction217 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2319 /* 3: ReduceAction217 < ReduceAction217: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction217 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2311 /* 3: ReduceAction217 < ReduceAction217: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60315,10 +56509,10 @@ val_t NEW_ReduceAction217_parser___ReduceAction217___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction218[45] = {
-  {(bigint) 2315 /* 0: Identity */},
+  {(bigint) 2307 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction218 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction218 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2315 /* 3: ReduceAction218 < ReduceAction218: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction218 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2307 /* 3: ReduceAction218 < ReduceAction218: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60378,10 +56572,10 @@ val_t NEW_ReduceAction218_parser___ReduceAction218___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction219[45] = {
-  {(bigint) 2311 /* 0: Identity */},
+  {(bigint) 2303 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction219 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction219 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2311 /* 3: ReduceAction219 < ReduceAction219: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction219 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2303 /* 3: ReduceAction219 < ReduceAction219: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60441,10 +56635,10 @@ val_t NEW_ReduceAction219_parser___ReduceAction219___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction220[45] = {
-  {(bigint) 2303 /* 0: Identity */},
+  {(bigint) 2295 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction220 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction220 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2303 /* 3: ReduceAction220 < ReduceAction220: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction220 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2295 /* 3: ReduceAction220 < ReduceAction220: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60504,10 +56698,10 @@ val_t NEW_ReduceAction220_parser___ReduceAction220___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction221[45] = {
-  {(bigint) 2299 /* 0: Identity */},
+  {(bigint) 2291 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction221 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction221 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2299 /* 3: ReduceAction221 < ReduceAction221: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction221 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2291 /* 3: ReduceAction221 < ReduceAction221: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60567,10 +56761,10 @@ val_t NEW_ReduceAction221_parser___ReduceAction221___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction222[45] = {
-  {(bigint) 2295 /* 0: Identity */},
+  {(bigint) 2287 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction222 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction222 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2295 /* 3: ReduceAction222 < ReduceAction222: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction222 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2287 /* 3: ReduceAction222 < ReduceAction222: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60630,10 +56824,10 @@ val_t NEW_ReduceAction222_parser___ReduceAction222___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction223[45] = {
-  {(bigint) 2291 /* 0: Identity */},
+  {(bigint) 2283 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction223 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction223 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2291 /* 3: ReduceAction223 < ReduceAction223: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction223 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2283 /* 3: ReduceAction223 < ReduceAction223: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60693,10 +56887,10 @@ val_t NEW_ReduceAction223_parser___ReduceAction223___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction224[45] = {
-  {(bigint) 2287 /* 0: Identity */},
+  {(bigint) 2279 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction224 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction224 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2287 /* 3: ReduceAction224 < ReduceAction224: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction224 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2279 /* 3: ReduceAction224 < ReduceAction224: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60756,10 +56950,10 @@ val_t NEW_ReduceAction224_parser___ReduceAction224___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction225[45] = {
-  {(bigint) 2283 /* 0: Identity */},
+  {(bigint) 2275 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction225 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction225 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2283 /* 3: ReduceAction225 < ReduceAction225: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction225 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2275 /* 3: ReduceAction225 < ReduceAction225: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60819,10 +57013,10 @@ val_t NEW_ReduceAction225_parser___ReduceAction225___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction226[45] = {
-  {(bigint) 2279 /* 0: Identity */},
+  {(bigint) 2271 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction226 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction226 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2279 /* 3: ReduceAction226 < ReduceAction226: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction226 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2271 /* 3: ReduceAction226 < ReduceAction226: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60882,10 +57076,10 @@ val_t NEW_ReduceAction226_parser___ReduceAction226___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction227[45] = {
-  {(bigint) 2275 /* 0: Identity */},
+  {(bigint) 2267 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction227 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction227 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2275 /* 3: ReduceAction227 < ReduceAction227: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction227 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2267 /* 3: ReduceAction227 < ReduceAction227: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -60945,10 +57139,10 @@ val_t NEW_ReduceAction227_parser___ReduceAction227___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction228[45] = {
-  {(bigint) 2271 /* 0: Identity */},
+  {(bigint) 2263 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction228 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction228 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2271 /* 3: ReduceAction228 < ReduceAction228: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction228 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2263 /* 3: ReduceAction228 < ReduceAction228: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61008,10 +57202,10 @@ val_t NEW_ReduceAction228_parser___ReduceAction228___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction229[45] = {
-  {(bigint) 2267 /* 0: Identity */},
+  {(bigint) 2259 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction229 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction229 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2267 /* 3: ReduceAction229 < ReduceAction229: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction229 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2259 /* 3: ReduceAction229 < ReduceAction229: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61071,10 +57265,10 @@ val_t NEW_ReduceAction229_parser___ReduceAction229___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction230[45] = {
-  {(bigint) 2259 /* 0: Identity */},
+  {(bigint) 2251 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction230 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction230 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2259 /* 3: ReduceAction230 < ReduceAction230: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction230 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2251 /* 3: ReduceAction230 < ReduceAction230: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61134,10 +57328,10 @@ val_t NEW_ReduceAction230_parser___ReduceAction230___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction231[45] = {
-  {(bigint) 2255 /* 0: Identity */},
+  {(bigint) 2247 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction231 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction231 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2255 /* 3: ReduceAction231 < ReduceAction231: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction231 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2247 /* 3: ReduceAction231 < ReduceAction231: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61197,10 +57391,10 @@ val_t NEW_ReduceAction231_parser___ReduceAction231___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction232[45] = {
-  {(bigint) 2251 /* 0: Identity */},
+  {(bigint) 2243 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction232 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction232 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2251 /* 3: ReduceAction232 < ReduceAction232: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction232 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2243 /* 3: ReduceAction232 < ReduceAction232: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61260,10 +57454,10 @@ val_t NEW_ReduceAction232_parser___ReduceAction232___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction233[45] = {
-  {(bigint) 2247 /* 0: Identity */},
+  {(bigint) 2239 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction233 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction233 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2247 /* 3: ReduceAction233 < ReduceAction233: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction233 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2239 /* 3: ReduceAction233 < ReduceAction233: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61323,10 +57517,10 @@ val_t NEW_ReduceAction233_parser___ReduceAction233___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction234[45] = {
-  {(bigint) 2243 /* 0: Identity */},
+  {(bigint) 2235 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction234 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction234 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2243 /* 3: ReduceAction234 < ReduceAction234: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction234 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2235 /* 3: ReduceAction234 < ReduceAction234: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61386,10 +57580,10 @@ val_t NEW_ReduceAction234_parser___ReduceAction234___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction235[45] = {
-  {(bigint) 2239 /* 0: Identity */},
+  {(bigint) 2231 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction235 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction235 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2239 /* 3: ReduceAction235 < ReduceAction235: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction235 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2231 /* 3: ReduceAction235 < ReduceAction235: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61449,10 +57643,10 @@ val_t NEW_ReduceAction235_parser___ReduceAction235___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction236[45] = {
-  {(bigint) 2235 /* 0: Identity */},
+  {(bigint) 2227 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction236 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction236 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2235 /* 3: ReduceAction236 < ReduceAction236: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction236 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2227 /* 3: ReduceAction236 < ReduceAction236: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61512,10 +57706,10 @@ val_t NEW_ReduceAction236_parser___ReduceAction236___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction237[45] = {
-  {(bigint) 2231 /* 0: Identity */},
+  {(bigint) 2223 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction237 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction237 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2231 /* 3: ReduceAction237 < ReduceAction237: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction237 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2223 /* 3: ReduceAction237 < ReduceAction237: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61575,10 +57769,10 @@ val_t NEW_ReduceAction237_parser___ReduceAction237___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction238[45] = {
-  {(bigint) 2227 /* 0: Identity */},
+  {(bigint) 2219 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction238 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction238 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2227 /* 3: ReduceAction238 < ReduceAction238: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction238 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2219 /* 3: ReduceAction238 < ReduceAction238: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61638,10 +57832,10 @@ val_t NEW_ReduceAction238_parser___ReduceAction238___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction239[45] = {
-  {(bigint) 2223 /* 0: Identity */},
+  {(bigint) 2215 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction239 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction239 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2223 /* 3: ReduceAction239 < ReduceAction239: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction239 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2215 /* 3: ReduceAction239 < ReduceAction239: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61701,10 +57895,10 @@ val_t NEW_ReduceAction239_parser___ReduceAction239___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction240[45] = {
-  {(bigint) 2215 /* 0: Identity */},
+  {(bigint) 2207 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction240 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction240 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2215 /* 3: ReduceAction240 < ReduceAction240: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction240 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2207 /* 3: ReduceAction240 < ReduceAction240: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61764,10 +57958,10 @@ val_t NEW_ReduceAction240_parser___ReduceAction240___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction241[45] = {
-  {(bigint) 2211 /* 0: Identity */},
+  {(bigint) 2203 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction241 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction241 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2211 /* 3: ReduceAction241 < ReduceAction241: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction241 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2203 /* 3: ReduceAction241 < ReduceAction241: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61827,10 +58021,10 @@ val_t NEW_ReduceAction241_parser___ReduceAction241___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction242[45] = {
-  {(bigint) 2207 /* 0: Identity */},
+  {(bigint) 2199 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction242 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction242 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2207 /* 3: ReduceAction242 < ReduceAction242: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction242 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2199 /* 3: ReduceAction242 < ReduceAction242: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61890,10 +58084,10 @@ val_t NEW_ReduceAction242_parser___ReduceAction242___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction243[45] = {
-  {(bigint) 2203 /* 0: Identity */},
+  {(bigint) 2195 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction243 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction243 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2203 /* 3: ReduceAction243 < ReduceAction243: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction243 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2195 /* 3: ReduceAction243 < ReduceAction243: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -61953,10 +58147,10 @@ val_t NEW_ReduceAction243_parser___ReduceAction243___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction244[45] = {
-  {(bigint) 2199 /* 0: Identity */},
+  {(bigint) 2191 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction244 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction244 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2199 /* 3: ReduceAction244 < ReduceAction244: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction244 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2191 /* 3: ReduceAction244 < ReduceAction244: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62016,10 +58210,10 @@ val_t NEW_ReduceAction244_parser___ReduceAction244___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction245[45] = {
-  {(bigint) 2195 /* 0: Identity */},
+  {(bigint) 2187 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction245 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction245 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2195 /* 3: ReduceAction245 < ReduceAction245: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction245 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2187 /* 3: ReduceAction245 < ReduceAction245: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62079,10 +58273,10 @@ val_t NEW_ReduceAction245_parser___ReduceAction245___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction246[45] = {
-  {(bigint) 2191 /* 0: Identity */},
+  {(bigint) 2183 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction246 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction246 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2191 /* 3: ReduceAction246 < ReduceAction246: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction246 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2183 /* 3: ReduceAction246 < ReduceAction246: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62142,10 +58336,10 @@ val_t NEW_ReduceAction246_parser___ReduceAction246___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction247[45] = {
-  {(bigint) 2187 /* 0: Identity */},
+  {(bigint) 2179 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction247 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction247 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2187 /* 3: ReduceAction247 < ReduceAction247: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction247 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2179 /* 3: ReduceAction247 < ReduceAction247: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62205,10 +58399,10 @@ val_t NEW_ReduceAction247_parser___ReduceAction247___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction248[45] = {
-  {(bigint) 2183 /* 0: Identity */},
+  {(bigint) 2175 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction248 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction248 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2183 /* 3: ReduceAction248 < ReduceAction248: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction248 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2175 /* 3: ReduceAction248 < ReduceAction248: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62268,10 +58462,10 @@ val_t NEW_ReduceAction248_parser___ReduceAction248___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction249[45] = {
-  {(bigint) 2179 /* 0: Identity */},
+  {(bigint) 2171 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction249 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction249 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2179 /* 3: ReduceAction249 < ReduceAction249: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction249 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2171 /* 3: ReduceAction249 < ReduceAction249: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62331,10 +58525,10 @@ val_t NEW_ReduceAction249_parser___ReduceAction249___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction250[45] = {
-  {(bigint) 2171 /* 0: Identity */},
+  {(bigint) 2163 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction250 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction250 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2171 /* 3: ReduceAction250 < ReduceAction250: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction250 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2163 /* 3: ReduceAction250 < ReduceAction250: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62394,10 +58588,10 @@ val_t NEW_ReduceAction250_parser___ReduceAction250___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction251[45] = {
-  {(bigint) 2167 /* 0: Identity */},
+  {(bigint) 2159 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction251 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction251 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2167 /* 3: ReduceAction251 < ReduceAction251: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction251 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2159 /* 3: ReduceAction251 < ReduceAction251: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62457,10 +58651,10 @@ val_t NEW_ReduceAction251_parser___ReduceAction251___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction252[45] = {
-  {(bigint) 2163 /* 0: Identity */},
+  {(bigint) 2155 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction252 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction252 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2163 /* 3: ReduceAction252 < ReduceAction252: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction252 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2155 /* 3: ReduceAction252 < ReduceAction252: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62520,10 +58714,10 @@ val_t NEW_ReduceAction252_parser___ReduceAction252___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction253[45] = {
-  {(bigint) 2159 /* 0: Identity */},
+  {(bigint) 2151 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction253 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction253 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2159 /* 3: ReduceAction253 < ReduceAction253: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction253 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2151 /* 3: ReduceAction253 < ReduceAction253: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62583,10 +58777,10 @@ val_t NEW_ReduceAction253_parser___ReduceAction253___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction254[45] = {
-  {(bigint) 2155 /* 0: Identity */},
+  {(bigint) 2147 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction254 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction254 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2155 /* 3: ReduceAction254 < ReduceAction254: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction254 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2147 /* 3: ReduceAction254 < ReduceAction254: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62646,10 +58840,10 @@ val_t NEW_ReduceAction254_parser___ReduceAction254___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction255[45] = {
-  {(bigint) 2151 /* 0: Identity */},
+  {(bigint) 2143 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction255 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction255 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2151 /* 3: ReduceAction255 < ReduceAction255: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction255 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2143 /* 3: ReduceAction255 < ReduceAction255: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62709,10 +58903,10 @@ val_t NEW_ReduceAction255_parser___ReduceAction255___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction256[45] = {
-  {(bigint) 2147 /* 0: Identity */},
+  {(bigint) 2139 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction256 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction256 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2147 /* 3: ReduceAction256 < ReduceAction256: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction256 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2139 /* 3: ReduceAction256 < ReduceAction256: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62772,10 +58966,10 @@ val_t NEW_ReduceAction256_parser___ReduceAction256___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction257[45] = {
-  {(bigint) 2143 /* 0: Identity */},
+  {(bigint) 2135 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction257 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction257 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2143 /* 3: ReduceAction257 < ReduceAction257: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction257 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2135 /* 3: ReduceAction257 < ReduceAction257: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62835,10 +59029,10 @@ val_t NEW_ReduceAction257_parser___ReduceAction257___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction258[45] = {
-  {(bigint) 2139 /* 0: Identity */},
+  {(bigint) 2131 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction258 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction258 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2139 /* 3: ReduceAction258 < ReduceAction258: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction258 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2131 /* 3: ReduceAction258 < ReduceAction258: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62898,10 +59092,10 @@ val_t NEW_ReduceAction258_parser___ReduceAction258___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction259[45] = {
-  {(bigint) 2135 /* 0: Identity */},
+  {(bigint) 2127 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction259 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction259 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2135 /* 3: ReduceAction259 < ReduceAction259: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction259 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2127 /* 3: ReduceAction259 < ReduceAction259: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -62961,10 +59155,10 @@ val_t NEW_ReduceAction259_parser___ReduceAction259___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction260[45] = {
-  {(bigint) 2127 /* 0: Identity */},
+  {(bigint) 2119 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction260 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction260 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2127 /* 3: ReduceAction260 < ReduceAction260: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction260 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2119 /* 3: ReduceAction260 < ReduceAction260: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63024,10 +59218,10 @@ val_t NEW_ReduceAction260_parser___ReduceAction260___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction261[45] = {
-  {(bigint) 2123 /* 0: Identity */},
+  {(bigint) 2115 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction261 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction261 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2123 /* 3: ReduceAction261 < ReduceAction261: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction261 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2115 /* 3: ReduceAction261 < ReduceAction261: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63087,10 +59281,10 @@ val_t NEW_ReduceAction261_parser___ReduceAction261___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction262[45] = {
-  {(bigint) 2119 /* 0: Identity */},
+  {(bigint) 2111 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction262 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction262 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2119 /* 3: ReduceAction262 < ReduceAction262: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction262 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2111 /* 3: ReduceAction262 < ReduceAction262: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63150,10 +59344,10 @@ val_t NEW_ReduceAction262_parser___ReduceAction262___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction263[45] = {
-  {(bigint) 2115 /* 0: Identity */},
+  {(bigint) 2107 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction263 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction263 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2115 /* 3: ReduceAction263 < ReduceAction263: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction263 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2107 /* 3: ReduceAction263 < ReduceAction263: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63213,10 +59407,10 @@ val_t NEW_ReduceAction263_parser___ReduceAction263___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction264[45] = {
-  {(bigint) 2111 /* 0: Identity */},
+  {(bigint) 2103 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction264 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction264 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2111 /* 3: ReduceAction264 < ReduceAction264: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction264 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2103 /* 3: ReduceAction264 < ReduceAction264: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63276,10 +59470,10 @@ val_t NEW_ReduceAction264_parser___ReduceAction264___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction265[45] = {
-  {(bigint) 2107 /* 0: Identity */},
+  {(bigint) 2099 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction265 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction265 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2107 /* 3: ReduceAction265 < ReduceAction265: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction265 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2099 /* 3: ReduceAction265 < ReduceAction265: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63339,10 +59533,10 @@ val_t NEW_ReduceAction265_parser___ReduceAction265___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction266[45] = {
-  {(bigint) 2103 /* 0: Identity */},
+  {(bigint) 2095 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction266 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction266 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2103 /* 3: ReduceAction266 < ReduceAction266: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction266 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2095 /* 3: ReduceAction266 < ReduceAction266: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63402,10 +59596,10 @@ val_t NEW_ReduceAction266_parser___ReduceAction266___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction267[45] = {
-  {(bigint) 2099 /* 0: Identity */},
+  {(bigint) 2091 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction267 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction267 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2099 /* 3: ReduceAction267 < ReduceAction267: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction267 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2091 /* 3: ReduceAction267 < ReduceAction267: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63465,10 +59659,10 @@ val_t NEW_ReduceAction267_parser___ReduceAction267___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction268[45] = {
-  {(bigint) 2095 /* 0: Identity */},
+  {(bigint) 2087 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction268 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction268 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2095 /* 3: ReduceAction268 < ReduceAction268: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction268 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2087 /* 3: ReduceAction268 < ReduceAction268: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63528,10 +59722,10 @@ val_t NEW_ReduceAction268_parser___ReduceAction268___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction269[45] = {
-  {(bigint) 2091 /* 0: Identity */},
+  {(bigint) 2083 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction269 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction269 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2091 /* 3: ReduceAction269 < ReduceAction269: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction269 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2083 /* 3: ReduceAction269 < ReduceAction269: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63591,10 +59785,10 @@ val_t NEW_ReduceAction269_parser___ReduceAction269___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction270[45] = {
-  {(bigint) 2083 /* 0: Identity */},
+  {(bigint) 2075 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction270 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction270 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2083 /* 3: ReduceAction270 < ReduceAction270: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction270 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2075 /* 3: ReduceAction270 < ReduceAction270: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63654,10 +59848,10 @@ val_t NEW_ReduceAction270_parser___ReduceAction270___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction271[45] = {
-  {(bigint) 2079 /* 0: Identity */},
+  {(bigint) 2071 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction271 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction271 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2079 /* 3: ReduceAction271 < ReduceAction271: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction271 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2071 /* 3: ReduceAction271 < ReduceAction271: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63717,10 +59911,10 @@ val_t NEW_ReduceAction271_parser___ReduceAction271___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction272[45] = {
-  {(bigint) 2075 /* 0: Identity */},
+  {(bigint) 2067 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction272 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction272 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2075 /* 3: ReduceAction272 < ReduceAction272: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction272 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2067 /* 3: ReduceAction272 < ReduceAction272: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63780,10 +59974,10 @@ val_t NEW_ReduceAction272_parser___ReduceAction272___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction273[45] = {
-  {(bigint) 2071 /* 0: Identity */},
+  {(bigint) 2063 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction273 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction273 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2071 /* 3: ReduceAction273 < ReduceAction273: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction273 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2063 /* 3: ReduceAction273 < ReduceAction273: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63843,10 +60037,10 @@ val_t NEW_ReduceAction273_parser___ReduceAction273___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction274[45] = {
-  {(bigint) 2067 /* 0: Identity */},
+  {(bigint) 2059 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction274 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction274 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2067 /* 3: ReduceAction274 < ReduceAction274: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction274 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2059 /* 3: ReduceAction274 < ReduceAction274: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63906,10 +60100,10 @@ val_t NEW_ReduceAction274_parser___ReduceAction274___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction275[45] = {
-  {(bigint) 2063 /* 0: Identity */},
+  {(bigint) 2055 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction275 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction275 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2063 /* 3: ReduceAction275 < ReduceAction275: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction275 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2055 /* 3: ReduceAction275 < ReduceAction275: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -63969,10 +60163,10 @@ val_t NEW_ReduceAction275_parser___ReduceAction275___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction276[45] = {
-  {(bigint) 2059 /* 0: Identity */},
+  {(bigint) 2051 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction276 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction276 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2059 /* 3: ReduceAction276 < ReduceAction276: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction276 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2051 /* 3: ReduceAction276 < ReduceAction276: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64032,10 +60226,10 @@ val_t NEW_ReduceAction276_parser___ReduceAction276___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction277[45] = {
-  {(bigint) 2055 /* 0: Identity */},
+  {(bigint) 2047 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction277 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction277 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2055 /* 3: ReduceAction277 < ReduceAction277: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction277 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2047 /* 3: ReduceAction277 < ReduceAction277: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64095,10 +60289,10 @@ val_t NEW_ReduceAction277_parser___ReduceAction277___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction278[45] = {
-  {(bigint) 2051 /* 0: Identity */},
+  {(bigint) 2043 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction278 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction278 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2051 /* 3: ReduceAction278 < ReduceAction278: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction278 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2043 /* 3: ReduceAction278 < ReduceAction278: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64158,10 +60352,10 @@ val_t NEW_ReduceAction278_parser___ReduceAction278___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction279[45] = {
-  {(bigint) 2047 /* 0: Identity */},
+  {(bigint) 2039 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction279 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction279 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2047 /* 3: ReduceAction279 < ReduceAction279: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction279 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2039 /* 3: ReduceAction279 < ReduceAction279: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64221,10 +60415,10 @@ val_t NEW_ReduceAction279_parser___ReduceAction279___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction280[45] = {
-  {(bigint) 2039 /* 0: Identity */},
+  {(bigint) 2031 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction280 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction280 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2039 /* 3: ReduceAction280 < ReduceAction280: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction280 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2031 /* 3: ReduceAction280 < ReduceAction280: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64284,10 +60478,10 @@ val_t NEW_ReduceAction280_parser___ReduceAction280___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction281[45] = {
-  {(bigint) 2035 /* 0: Identity */},
+  {(bigint) 2027 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction281 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction281 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2035 /* 3: ReduceAction281 < ReduceAction281: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction281 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2027 /* 3: ReduceAction281 < ReduceAction281: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64347,10 +60541,10 @@ val_t NEW_ReduceAction281_parser___ReduceAction281___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction282[45] = {
-  {(bigint) 2031 /* 0: Identity */},
+  {(bigint) 2023 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction282 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction282 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2031 /* 3: ReduceAction282 < ReduceAction282: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction282 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2023 /* 3: ReduceAction282 < ReduceAction282: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64410,10 +60604,10 @@ val_t NEW_ReduceAction282_parser___ReduceAction282___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction283[45] = {
-  {(bigint) 2027 /* 0: Identity */},
+  {(bigint) 2019 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction283 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction283 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2027 /* 3: ReduceAction283 < ReduceAction283: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction283 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2019 /* 3: ReduceAction283 < ReduceAction283: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64473,10 +60667,10 @@ val_t NEW_ReduceAction283_parser___ReduceAction283___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction284[45] = {
-  {(bigint) 2023 /* 0: Identity */},
+  {(bigint) 2015 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction284 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction284 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2023 /* 3: ReduceAction284 < ReduceAction284: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction284 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2015 /* 3: ReduceAction284 < ReduceAction284: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64536,10 +60730,10 @@ val_t NEW_ReduceAction284_parser___ReduceAction284___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction285[45] = {
-  {(bigint) 2019 /* 0: Identity */},
+  {(bigint) 2011 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction285 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction285 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2019 /* 3: ReduceAction285 < ReduceAction285: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction285 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2011 /* 3: ReduceAction285 < ReduceAction285: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64599,10 +60793,10 @@ val_t NEW_ReduceAction285_parser___ReduceAction285___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction286[45] = {
-  {(bigint) 2015 /* 0: Identity */},
+  {(bigint) 2007 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction286 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction286 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2015 /* 3: ReduceAction286 < ReduceAction286: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction286 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2007 /* 3: ReduceAction286 < ReduceAction286: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64662,10 +60856,10 @@ val_t NEW_ReduceAction286_parser___ReduceAction286___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction287[45] = {
-  {(bigint) 2011 /* 0: Identity */},
+  {(bigint) 2003 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction287 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction287 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2011 /* 3: ReduceAction287 < ReduceAction287: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction287 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 2003 /* 3: ReduceAction287 < ReduceAction287: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64725,10 +60919,10 @@ val_t NEW_ReduceAction287_parser___ReduceAction287___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction288[45] = {
-  {(bigint) 2007 /* 0: Identity */},
+  {(bigint) 1999 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction288 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction288 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2007 /* 3: ReduceAction288 < ReduceAction288: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction288 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1999 /* 3: ReduceAction288 < ReduceAction288: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64788,10 +60982,10 @@ val_t NEW_ReduceAction288_parser___ReduceAction288___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction289[45] = {
-  {(bigint) 2003 /* 0: Identity */},
+  {(bigint) 1995 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction289 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction289 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 2003 /* 3: ReduceAction289 < ReduceAction289: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction289 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1995 /* 3: ReduceAction289 < ReduceAction289: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64851,10 +61045,10 @@ val_t NEW_ReduceAction289_parser___ReduceAction289___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction290[45] = {
-  {(bigint) 1995 /* 0: Identity */},
+  {(bigint) 1987 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction290 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction290 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1995 /* 3: ReduceAction290 < ReduceAction290: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction290 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1987 /* 3: ReduceAction290 < ReduceAction290: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64914,10 +61108,10 @@ val_t NEW_ReduceAction290_parser___ReduceAction290___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction291[45] = {
-  {(bigint) 1991 /* 0: Identity */},
+  {(bigint) 1983 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction291 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction291 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1991 /* 3: ReduceAction291 < ReduceAction291: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction291 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1983 /* 3: ReduceAction291 < ReduceAction291: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -64977,10 +61171,10 @@ val_t NEW_ReduceAction291_parser___ReduceAction291___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction292[45] = {
-  {(bigint) 1987 /* 0: Identity */},
+  {(bigint) 1979 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction292 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction292 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1987 /* 3: ReduceAction292 < ReduceAction292: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction292 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1979 /* 3: ReduceAction292 < ReduceAction292: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65040,10 +61234,10 @@ val_t NEW_ReduceAction292_parser___ReduceAction292___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction293[45] = {
-  {(bigint) 1983 /* 0: Identity */},
+  {(bigint) 1975 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction293 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction293 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1983 /* 3: ReduceAction293 < ReduceAction293: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction293 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1975 /* 3: ReduceAction293 < ReduceAction293: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65103,10 +61297,10 @@ val_t NEW_ReduceAction293_parser___ReduceAction293___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction294[45] = {
-  {(bigint) 1979 /* 0: Identity */},
+  {(bigint) 1971 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction294 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction294 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1979 /* 3: ReduceAction294 < ReduceAction294: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction294 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1971 /* 3: ReduceAction294 < ReduceAction294: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65166,10 +61360,10 @@ val_t NEW_ReduceAction294_parser___ReduceAction294___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction295[45] = {
-  {(bigint) 1975 /* 0: Identity */},
+  {(bigint) 1967 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction295 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction295 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1975 /* 3: ReduceAction295 < ReduceAction295: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction295 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1967 /* 3: ReduceAction295 < ReduceAction295: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65229,10 +61423,10 @@ val_t NEW_ReduceAction295_parser___ReduceAction295___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction296[45] = {
-  {(bigint) 1971 /* 0: Identity */},
+  {(bigint) 1963 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction296 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction296 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1971 /* 3: ReduceAction296 < ReduceAction296: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction296 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1963 /* 3: ReduceAction296 < ReduceAction296: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65292,10 +61486,10 @@ val_t NEW_ReduceAction296_parser___ReduceAction296___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction297[45] = {
-  {(bigint) 1967 /* 0: Identity */},
+  {(bigint) 1959 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction297 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction297 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1967 /* 3: ReduceAction297 < ReduceAction297: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction297 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1959 /* 3: ReduceAction297 < ReduceAction297: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65355,10 +61549,10 @@ val_t NEW_ReduceAction297_parser___ReduceAction297___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction298[45] = {
-  {(bigint) 1963 /* 0: Identity */},
+  {(bigint) 1955 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction298 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction298 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1963 /* 3: ReduceAction298 < ReduceAction298: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction298 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1955 /* 3: ReduceAction298 < ReduceAction298: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65418,10 +61612,10 @@ val_t NEW_ReduceAction298_parser___ReduceAction298___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction299[45] = {
-  {(bigint) 1959 /* 0: Identity */},
+  {(bigint) 1951 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction299 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction299 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1959 /* 3: ReduceAction299 < ReduceAction299: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction299 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1951 /* 3: ReduceAction299 < ReduceAction299: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65481,10 +61675,10 @@ val_t NEW_ReduceAction299_parser___ReduceAction299___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction300[45] = {
-  {(bigint) 1947 /* 0: Identity */},
+  {(bigint) 1939 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction300 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction300 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1947 /* 3: ReduceAction300 < ReduceAction300: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction300 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1939 /* 3: ReduceAction300 < ReduceAction300: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65544,10 +61738,10 @@ val_t NEW_ReduceAction300_parser___ReduceAction300___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction301[45] = {
-  {(bigint) 1943 /* 0: Identity */},
+  {(bigint) 1935 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction301 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction301 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1943 /* 3: ReduceAction301 < ReduceAction301: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction301 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1935 /* 3: ReduceAction301 < ReduceAction301: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65607,10 +61801,10 @@ val_t NEW_ReduceAction301_parser___ReduceAction301___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction302[45] = {
-  {(bigint) 1939 /* 0: Identity */},
+  {(bigint) 1931 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction302 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction302 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1939 /* 3: ReduceAction302 < ReduceAction302: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction302 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1931 /* 3: ReduceAction302 < ReduceAction302: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65670,10 +61864,10 @@ val_t NEW_ReduceAction302_parser___ReduceAction302___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction303[45] = {
-  {(bigint) 1935 /* 0: Identity */},
+  {(bigint) 1927 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction303 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction303 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1935 /* 3: ReduceAction303 < ReduceAction303: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction303 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1927 /* 3: ReduceAction303 < ReduceAction303: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65733,10 +61927,10 @@ val_t NEW_ReduceAction303_parser___ReduceAction303___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction304[45] = {
-  {(bigint) 1931 /* 0: Identity */},
+  {(bigint) 1923 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction304 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction304 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1931 /* 3: ReduceAction304 < ReduceAction304: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction304 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1923 /* 3: ReduceAction304 < ReduceAction304: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65796,10 +61990,10 @@ val_t NEW_ReduceAction304_parser___ReduceAction304___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction305[45] = {
-  {(bigint) 1927 /* 0: Identity */},
+  {(bigint) 1919 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction305 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction305 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1927 /* 3: ReduceAction305 < ReduceAction305: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction305 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1919 /* 3: ReduceAction305 < ReduceAction305: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65859,10 +62053,10 @@ val_t NEW_ReduceAction305_parser___ReduceAction305___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction306[45] = {
-  {(bigint) 1923 /* 0: Identity */},
+  {(bigint) 1915 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction306 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction306 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1923 /* 3: ReduceAction306 < ReduceAction306: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction306 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1915 /* 3: ReduceAction306 < ReduceAction306: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65922,10 +62116,10 @@ val_t NEW_ReduceAction306_parser___ReduceAction306___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction307[45] = {
-  {(bigint) 1919 /* 0: Identity */},
+  {(bigint) 1911 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction307 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction307 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1919 /* 3: ReduceAction307 < ReduceAction307: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction307 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1911 /* 3: ReduceAction307 < ReduceAction307: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -65985,10 +62179,10 @@ val_t NEW_ReduceAction307_parser___ReduceAction307___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction308[45] = {
-  {(bigint) 1915 /* 0: Identity */},
+  {(bigint) 1907 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction308 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction308 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1915 /* 3: ReduceAction308 < ReduceAction308: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction308 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1907 /* 3: ReduceAction308 < ReduceAction308: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66048,10 +62242,10 @@ val_t NEW_ReduceAction308_parser___ReduceAction308___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction309[45] = {
-  {(bigint) 1911 /* 0: Identity */},
+  {(bigint) 1903 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction309 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction309 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1911 /* 3: ReduceAction309 < ReduceAction309: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction309 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1903 /* 3: ReduceAction309 < ReduceAction309: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66111,10 +62305,10 @@ val_t NEW_ReduceAction309_parser___ReduceAction309___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction310[45] = {
-  {(bigint) 1903 /* 0: Identity */},
+  {(bigint) 1895 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction310 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction310 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1903 /* 3: ReduceAction310 < ReduceAction310: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction310 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1895 /* 3: ReduceAction310 < ReduceAction310: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66174,10 +62368,10 @@ val_t NEW_ReduceAction310_parser___ReduceAction310___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction311[45] = {
-  {(bigint) 1899 /* 0: Identity */},
+  {(bigint) 1891 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction311 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction311 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1899 /* 3: ReduceAction311 < ReduceAction311: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction311 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1891 /* 3: ReduceAction311 < ReduceAction311: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66237,10 +62431,10 @@ val_t NEW_ReduceAction311_parser___ReduceAction311___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction312[45] = {
-  {(bigint) 1895 /* 0: Identity */},
+  {(bigint) 1887 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction312 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction312 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1895 /* 3: ReduceAction312 < ReduceAction312: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction312 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1887 /* 3: ReduceAction312 < ReduceAction312: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66300,10 +62494,10 @@ val_t NEW_ReduceAction312_parser___ReduceAction312___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction313[45] = {
-  {(bigint) 1891 /* 0: Identity */},
+  {(bigint) 1883 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction313 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction313 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1891 /* 3: ReduceAction313 < ReduceAction313: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction313 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1883 /* 3: ReduceAction313 < ReduceAction313: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66363,10 +62557,10 @@ val_t NEW_ReduceAction313_parser___ReduceAction313___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction314[45] = {
-  {(bigint) 1887 /* 0: Identity */},
+  {(bigint) 1879 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction314 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction314 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1887 /* 3: ReduceAction314 < ReduceAction314: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction314 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1879 /* 3: ReduceAction314 < ReduceAction314: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66426,10 +62620,10 @@ val_t NEW_ReduceAction314_parser___ReduceAction314___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction315[45] = {
-  {(bigint) 1883 /* 0: Identity */},
+  {(bigint) 1875 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction315 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction315 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1883 /* 3: ReduceAction315 < ReduceAction315: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction315 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1875 /* 3: ReduceAction315 < ReduceAction315: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66489,10 +62683,10 @@ val_t NEW_ReduceAction315_parser___ReduceAction315___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction316[45] = {
-  {(bigint) 1879 /* 0: Identity */},
+  {(bigint) 1871 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction316 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction316 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1879 /* 3: ReduceAction316 < ReduceAction316: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction316 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1871 /* 3: ReduceAction316 < ReduceAction316: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66552,10 +62746,10 @@ val_t NEW_ReduceAction316_parser___ReduceAction316___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction317[45] = {
-  {(bigint) 1875 /* 0: Identity */},
+  {(bigint) 1867 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction317 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction317 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1875 /* 3: ReduceAction317 < ReduceAction317: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction317 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1867 /* 3: ReduceAction317 < ReduceAction317: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66615,10 +62809,10 @@ val_t NEW_ReduceAction317_parser___ReduceAction317___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction318[45] = {
-  {(bigint) 1871 /* 0: Identity */},
+  {(bigint) 1863 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction318 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction318 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1871 /* 3: ReduceAction318 < ReduceAction318: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction318 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1863 /* 3: ReduceAction318 < ReduceAction318: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66678,10 +62872,10 @@ val_t NEW_ReduceAction318_parser___ReduceAction318___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction319[45] = {
-  {(bigint) 1867 /* 0: Identity */},
+  {(bigint) 1859 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction319 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction319 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1867 /* 3: ReduceAction319 < ReduceAction319: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction319 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1859 /* 3: ReduceAction319 < ReduceAction319: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66741,10 +62935,10 @@ val_t NEW_ReduceAction319_parser___ReduceAction319___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction320[45] = {
-  {(bigint) 1859 /* 0: Identity */},
+  {(bigint) 1851 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction320 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction320 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1859 /* 3: ReduceAction320 < ReduceAction320: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction320 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1851 /* 3: ReduceAction320 < ReduceAction320: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66804,10 +62998,10 @@ val_t NEW_ReduceAction320_parser___ReduceAction320___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction321[45] = {
-  {(bigint) 1855 /* 0: Identity */},
+  {(bigint) 1847 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction321 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction321 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1855 /* 3: ReduceAction321 < ReduceAction321: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction321 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1847 /* 3: ReduceAction321 < ReduceAction321: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66867,10 +63061,10 @@ val_t NEW_ReduceAction321_parser___ReduceAction321___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction322[45] = {
-  {(bigint) 1851 /* 0: Identity */},
+  {(bigint) 1843 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction322 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction322 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1851 /* 3: ReduceAction322 < ReduceAction322: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction322 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1843 /* 3: ReduceAction322 < ReduceAction322: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66930,10 +63124,10 @@ val_t NEW_ReduceAction322_parser___ReduceAction322___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction323[45] = {
-  {(bigint) 1847 /* 0: Identity */},
+  {(bigint) 1839 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction323 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction323 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1847 /* 3: ReduceAction323 < ReduceAction323: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction323 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1839 /* 3: ReduceAction323 < ReduceAction323: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -66993,10 +63187,10 @@ val_t NEW_ReduceAction323_parser___ReduceAction323___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction324[45] = {
-  {(bigint) 1843 /* 0: Identity */},
+  {(bigint) 1835 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction324 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction324 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1843 /* 3: ReduceAction324 < ReduceAction324: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction324 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1835 /* 3: ReduceAction324 < ReduceAction324: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67056,10 +63250,10 @@ val_t NEW_ReduceAction324_parser___ReduceAction324___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction325[45] = {
-  {(bigint) 1839 /* 0: Identity */},
+  {(bigint) 1831 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction325 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction325 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1839 /* 3: ReduceAction325 < ReduceAction325: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction325 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1831 /* 3: ReduceAction325 < ReduceAction325: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67119,10 +63313,10 @@ val_t NEW_ReduceAction325_parser___ReduceAction325___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction326[45] = {
-  {(bigint) 1835 /* 0: Identity */},
+  {(bigint) 1827 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction326 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction326 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1835 /* 3: ReduceAction326 < ReduceAction326: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction326 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1827 /* 3: ReduceAction326 < ReduceAction326: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67182,10 +63376,10 @@ val_t NEW_ReduceAction326_parser___ReduceAction326___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction327[45] = {
-  {(bigint) 1831 /* 0: Identity */},
+  {(bigint) 1823 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction327 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction327 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1831 /* 3: ReduceAction327 < ReduceAction327: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction327 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1823 /* 3: ReduceAction327 < ReduceAction327: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67245,10 +63439,10 @@ val_t NEW_ReduceAction327_parser___ReduceAction327___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction328[45] = {
-  {(bigint) 1827 /* 0: Identity */},
+  {(bigint) 1819 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction328 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction328 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1827 /* 3: ReduceAction328 < ReduceAction328: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction328 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1819 /* 3: ReduceAction328 < ReduceAction328: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67308,10 +63502,10 @@ val_t NEW_ReduceAction328_parser___ReduceAction328___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction329[45] = {
-  {(bigint) 1823 /* 0: Identity */},
+  {(bigint) 1815 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction329 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction329 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1823 /* 3: ReduceAction329 < ReduceAction329: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction329 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1815 /* 3: ReduceAction329 < ReduceAction329: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67371,10 +63565,10 @@ val_t NEW_ReduceAction329_parser___ReduceAction329___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction330[45] = {
-  {(bigint) 1815 /* 0: Identity */},
+  {(bigint) 1807 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction330 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction330 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1815 /* 3: ReduceAction330 < ReduceAction330: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction330 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1807 /* 3: ReduceAction330 < ReduceAction330: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67434,10 +63628,10 @@ val_t NEW_ReduceAction330_parser___ReduceAction330___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction331[45] = {
-  {(bigint) 1811 /* 0: Identity */},
+  {(bigint) 1803 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction331 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction331 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1811 /* 3: ReduceAction331 < ReduceAction331: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction331 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1803 /* 3: ReduceAction331 < ReduceAction331: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67497,10 +63691,10 @@ val_t NEW_ReduceAction331_parser___ReduceAction331___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction332[45] = {
-  {(bigint) 1807 /* 0: Identity */},
+  {(bigint) 1799 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction332 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction332 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1807 /* 3: ReduceAction332 < ReduceAction332: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction332 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1799 /* 3: ReduceAction332 < ReduceAction332: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67560,10 +63754,10 @@ val_t NEW_ReduceAction332_parser___ReduceAction332___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction333[45] = {
-  {(bigint) 1803 /* 0: Identity */},
+  {(bigint) 1795 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction333 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction333 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1803 /* 3: ReduceAction333 < ReduceAction333: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction333 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1795 /* 3: ReduceAction333 < ReduceAction333: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67623,10 +63817,10 @@ val_t NEW_ReduceAction333_parser___ReduceAction333___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction334[45] = {
-  {(bigint) 1799 /* 0: Identity */},
+  {(bigint) 1791 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction334 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction334 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1799 /* 3: ReduceAction334 < ReduceAction334: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction334 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1791 /* 3: ReduceAction334 < ReduceAction334: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67686,10 +63880,10 @@ val_t NEW_ReduceAction334_parser___ReduceAction334___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction335[45] = {
-  {(bigint) 1795 /* 0: Identity */},
+  {(bigint) 1787 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction335 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction335 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1795 /* 3: ReduceAction335 < ReduceAction335: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction335 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1787 /* 3: ReduceAction335 < ReduceAction335: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67749,10 +63943,10 @@ val_t NEW_ReduceAction335_parser___ReduceAction335___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction336[45] = {
-  {(bigint) 1791 /* 0: Identity */},
+  {(bigint) 1783 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction336 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction336 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1791 /* 3: ReduceAction336 < ReduceAction336: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction336 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1783 /* 3: ReduceAction336 < ReduceAction336: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67812,10 +64006,10 @@ val_t NEW_ReduceAction336_parser___ReduceAction336___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction337[45] = {
-  {(bigint) 1787 /* 0: Identity */},
+  {(bigint) 1779 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction337 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction337 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1787 /* 3: ReduceAction337 < ReduceAction337: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction337 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1779 /* 3: ReduceAction337 < ReduceAction337: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67875,10 +64069,10 @@ val_t NEW_ReduceAction337_parser___ReduceAction337___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction338[45] = {
-  {(bigint) 1783 /* 0: Identity */},
+  {(bigint) 1775 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction338 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction338 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1783 /* 3: ReduceAction338 < ReduceAction338: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction338 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1775 /* 3: ReduceAction338 < ReduceAction338: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -67938,10 +64132,10 @@ val_t NEW_ReduceAction338_parser___ReduceAction338___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction339[45] = {
-  {(bigint) 1779 /* 0: Identity */},
+  {(bigint) 1771 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction339 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction339 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1779 /* 3: ReduceAction339 < ReduceAction339: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction339 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1771 /* 3: ReduceAction339 < ReduceAction339: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68001,10 +64195,10 @@ val_t NEW_ReduceAction339_parser___ReduceAction339___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction340[45] = {
-  {(bigint) 1771 /* 0: Identity */},
+  {(bigint) 1763 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction340 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction340 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1771 /* 3: ReduceAction340 < ReduceAction340: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction340 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1763 /* 3: ReduceAction340 < ReduceAction340: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68064,10 +64258,10 @@ val_t NEW_ReduceAction340_parser___ReduceAction340___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction341[45] = {
-  {(bigint) 1767 /* 0: Identity */},
+  {(bigint) 1759 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction341 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction341 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1767 /* 3: ReduceAction341 < ReduceAction341: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction341 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1759 /* 3: ReduceAction341 < ReduceAction341: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68127,10 +64321,10 @@ val_t NEW_ReduceAction341_parser___ReduceAction341___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction342[45] = {
-  {(bigint) 1763 /* 0: Identity */},
+  {(bigint) 1755 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction342 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction342 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1763 /* 3: ReduceAction342 < ReduceAction342: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction342 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1755 /* 3: ReduceAction342 < ReduceAction342: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68190,10 +64384,10 @@ val_t NEW_ReduceAction342_parser___ReduceAction342___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction343[45] = {
-  {(bigint) 1759 /* 0: Identity */},
+  {(bigint) 1751 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction343 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction343 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1759 /* 3: ReduceAction343 < ReduceAction343: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction343 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1751 /* 3: ReduceAction343 < ReduceAction343: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68253,10 +64447,10 @@ val_t NEW_ReduceAction343_parser___ReduceAction343___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction344[45] = {
-  {(bigint) 1755 /* 0: Identity */},
+  {(bigint) 1747 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction344 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction344 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1755 /* 3: ReduceAction344 < ReduceAction344: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction344 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1747 /* 3: ReduceAction344 < ReduceAction344: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68316,10 +64510,10 @@ val_t NEW_ReduceAction344_parser___ReduceAction344___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction345[45] = {
-  {(bigint) 1751 /* 0: Identity */},
+  {(bigint) 1743 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction345 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction345 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1751 /* 3: ReduceAction345 < ReduceAction345: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction345 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1743 /* 3: ReduceAction345 < ReduceAction345: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68379,10 +64573,10 @@ val_t NEW_ReduceAction345_parser___ReduceAction345___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction346[45] = {
-  {(bigint) 1747 /* 0: Identity */},
+  {(bigint) 1739 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction346 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction346 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1747 /* 3: ReduceAction346 < ReduceAction346: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction346 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1739 /* 3: ReduceAction346 < ReduceAction346: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68442,10 +64636,10 @@ val_t NEW_ReduceAction346_parser___ReduceAction346___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction347[45] = {
-  {(bigint) 1743 /* 0: Identity */},
+  {(bigint) 1735 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction347 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction347 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1743 /* 3: ReduceAction347 < ReduceAction347: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction347 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1735 /* 3: ReduceAction347 < ReduceAction347: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68505,10 +64699,10 @@ val_t NEW_ReduceAction347_parser___ReduceAction347___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction348[45] = {
-  {(bigint) 1739 /* 0: Identity */},
+  {(bigint) 1731 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction348 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction348 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1739 /* 3: ReduceAction348 < ReduceAction348: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction348 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1731 /* 3: ReduceAction348 < ReduceAction348: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68568,10 +64762,10 @@ val_t NEW_ReduceAction348_parser___ReduceAction348___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction349[45] = {
-  {(bigint) 1735 /* 0: Identity */},
+  {(bigint) 1727 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction349 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction349 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1735 /* 3: ReduceAction349 < ReduceAction349: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction349 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1727 /* 3: ReduceAction349 < ReduceAction349: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68631,10 +64825,10 @@ val_t NEW_ReduceAction349_parser___ReduceAction349___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction350[45] = {
-  {(bigint) 1727 /* 0: Identity */},
+  {(bigint) 1719 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction350 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction350 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1727 /* 3: ReduceAction350 < ReduceAction350: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction350 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1719 /* 3: ReduceAction350 < ReduceAction350: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68694,10 +64888,10 @@ val_t NEW_ReduceAction350_parser___ReduceAction350___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction351[45] = {
-  {(bigint) 1723 /* 0: Identity */},
+  {(bigint) 1715 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction351 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction351 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1723 /* 3: ReduceAction351 < ReduceAction351: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction351 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1715 /* 3: ReduceAction351 < ReduceAction351: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68757,10 +64951,10 @@ val_t NEW_ReduceAction351_parser___ReduceAction351___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction352[45] = {
-  {(bigint) 1719 /* 0: Identity */},
+  {(bigint) 1711 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction352 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction352 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1719 /* 3: ReduceAction352 < ReduceAction352: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction352 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1711 /* 3: ReduceAction352 < ReduceAction352: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68820,10 +65014,10 @@ val_t NEW_ReduceAction352_parser___ReduceAction352___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction353[45] = {
-  {(bigint) 1715 /* 0: Identity */},
+  {(bigint) 1707 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction353 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction353 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1715 /* 3: ReduceAction353 < ReduceAction353: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction353 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1707 /* 3: ReduceAction353 < ReduceAction353: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68883,10 +65077,10 @@ val_t NEW_ReduceAction353_parser___ReduceAction353___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction354[45] = {
-  {(bigint) 1711 /* 0: Identity */},
+  {(bigint) 1703 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction354 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction354 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1711 /* 3: ReduceAction354 < ReduceAction354: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction354 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1703 /* 3: ReduceAction354 < ReduceAction354: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -68946,10 +65140,10 @@ val_t NEW_ReduceAction354_parser___ReduceAction354___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction355[45] = {
-  {(bigint) 1707 /* 0: Identity */},
+  {(bigint) 1699 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction355 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction355 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1707 /* 3: ReduceAction355 < ReduceAction355: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction355 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1699 /* 3: ReduceAction355 < ReduceAction355: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69009,10 +65203,10 @@ val_t NEW_ReduceAction355_parser___ReduceAction355___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction356[45] = {
-  {(bigint) 1703 /* 0: Identity */},
+  {(bigint) 1695 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction356 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction356 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1703 /* 3: ReduceAction356 < ReduceAction356: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction356 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1695 /* 3: ReduceAction356 < ReduceAction356: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69072,10 +65266,10 @@ val_t NEW_ReduceAction356_parser___ReduceAction356___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction357[45] = {
-  {(bigint) 1699 /* 0: Identity */},
+  {(bigint) 1691 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction357 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction357 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1699 /* 3: ReduceAction357 < ReduceAction357: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction357 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1691 /* 3: ReduceAction357 < ReduceAction357: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69135,10 +65329,10 @@ val_t NEW_ReduceAction357_parser___ReduceAction357___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction358[45] = {
-  {(bigint) 1695 /* 0: Identity */},
+  {(bigint) 1687 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction358 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction358 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1695 /* 3: ReduceAction358 < ReduceAction358: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction358 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1687 /* 3: ReduceAction358 < ReduceAction358: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69198,10 +65392,10 @@ val_t NEW_ReduceAction358_parser___ReduceAction358___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction359[45] = {
-  {(bigint) 1691 /* 0: Identity */},
+  {(bigint) 1683 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction359 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction359 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1691 /* 3: ReduceAction359 < ReduceAction359: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction359 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1683 /* 3: ReduceAction359 < ReduceAction359: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69261,10 +65455,10 @@ val_t NEW_ReduceAction359_parser___ReduceAction359___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction360[45] = {
-  {(bigint) 1683 /* 0: Identity */},
+  {(bigint) 1675 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction360 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction360 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1683 /* 3: ReduceAction360 < ReduceAction360: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction360 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1675 /* 3: ReduceAction360 < ReduceAction360: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69324,10 +65518,10 @@ val_t NEW_ReduceAction360_parser___ReduceAction360___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction361[45] = {
-  {(bigint) 1679 /* 0: Identity */},
+  {(bigint) 1671 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction361 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction361 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1679 /* 3: ReduceAction361 < ReduceAction361: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction361 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1671 /* 3: ReduceAction361 < ReduceAction361: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69387,10 +65581,10 @@ val_t NEW_ReduceAction361_parser___ReduceAction361___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction362[45] = {
-  {(bigint) 1675 /* 0: Identity */},
+  {(bigint) 1667 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction362 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction362 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1675 /* 3: ReduceAction362 < ReduceAction362: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction362 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1667 /* 3: ReduceAction362 < ReduceAction362: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69450,10 +65644,10 @@ val_t NEW_ReduceAction362_parser___ReduceAction362___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction363[45] = {
-  {(bigint) 1671 /* 0: Identity */},
+  {(bigint) 1663 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction363 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction363 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1671 /* 3: ReduceAction363 < ReduceAction363: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction363 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1663 /* 3: ReduceAction363 < ReduceAction363: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69513,10 +65707,10 @@ val_t NEW_ReduceAction363_parser___ReduceAction363___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction364[45] = {
-  {(bigint) 1667 /* 0: Identity */},
+  {(bigint) 1659 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction364 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction364 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1667 /* 3: ReduceAction364 < ReduceAction364: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction364 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1659 /* 3: ReduceAction364 < ReduceAction364: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69576,10 +65770,10 @@ val_t NEW_ReduceAction364_parser___ReduceAction364___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction365[45] = {
-  {(bigint) 1663 /* 0: Identity */},
+  {(bigint) 1655 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction365 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction365 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1663 /* 3: ReduceAction365 < ReduceAction365: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction365 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1655 /* 3: ReduceAction365 < ReduceAction365: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69639,10 +65833,10 @@ val_t NEW_ReduceAction365_parser___ReduceAction365___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction366[45] = {
-  {(bigint) 1659 /* 0: Identity */},
+  {(bigint) 1651 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction366 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction366 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1659 /* 3: ReduceAction366 < ReduceAction366: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction366 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1651 /* 3: ReduceAction366 < ReduceAction366: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69702,10 +65896,10 @@ val_t NEW_ReduceAction366_parser___ReduceAction366___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction367[45] = {
-  {(bigint) 1655 /* 0: Identity */},
+  {(bigint) 1647 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction367 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction367 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1655 /* 3: ReduceAction367 < ReduceAction367: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction367 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1647 /* 3: ReduceAction367 < ReduceAction367: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69765,10 +65959,10 @@ val_t NEW_ReduceAction367_parser___ReduceAction367___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction368[45] = {
-  {(bigint) 1651 /* 0: Identity */},
+  {(bigint) 1643 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction368 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction368 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1651 /* 3: ReduceAction368 < ReduceAction368: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction368 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1643 /* 3: ReduceAction368 < ReduceAction368: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69828,10 +66022,10 @@ val_t NEW_ReduceAction368_parser___ReduceAction368___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction369[45] = {
-  {(bigint) 1647 /* 0: Identity */},
+  {(bigint) 1639 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction369 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction369 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1647 /* 3: ReduceAction369 < ReduceAction369: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction369 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1639 /* 3: ReduceAction369 < ReduceAction369: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69891,10 +66085,10 @@ val_t NEW_ReduceAction369_parser___ReduceAction369___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction370[45] = {
-  {(bigint) 1639 /* 0: Identity */},
+  {(bigint) 1631 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction370 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction370 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1639 /* 3: ReduceAction370 < ReduceAction370: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction370 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1631 /* 3: ReduceAction370 < ReduceAction370: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -69954,10 +66148,10 @@ val_t NEW_ReduceAction370_parser___ReduceAction370___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction371[45] = {
-  {(bigint) 1635 /* 0: Identity */},
+  {(bigint) 1627 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction371 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction371 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1635 /* 3: ReduceAction371 < ReduceAction371: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction371 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1627 /* 3: ReduceAction371 < ReduceAction371: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70017,10 +66211,10 @@ val_t NEW_ReduceAction371_parser___ReduceAction371___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction372[45] = {
-  {(bigint) 1631 /* 0: Identity */},
+  {(bigint) 1623 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction372 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction372 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1631 /* 3: ReduceAction372 < ReduceAction372: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction372 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1623 /* 3: ReduceAction372 < ReduceAction372: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70080,10 +66274,10 @@ val_t NEW_ReduceAction372_parser___ReduceAction372___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction373[45] = {
-  {(bigint) 1627 /* 0: Identity */},
+  {(bigint) 1619 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction373 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction373 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1627 /* 3: ReduceAction373 < ReduceAction373: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction373 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1619 /* 3: ReduceAction373 < ReduceAction373: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70143,10 +66337,10 @@ val_t NEW_ReduceAction373_parser___ReduceAction373___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction374[45] = {
-  {(bigint) 1623 /* 0: Identity */},
+  {(bigint) 1615 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction374 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction374 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1623 /* 3: ReduceAction374 < ReduceAction374: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction374 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1615 /* 3: ReduceAction374 < ReduceAction374: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70206,10 +66400,10 @@ val_t NEW_ReduceAction374_parser___ReduceAction374___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction375[45] = {
-  {(bigint) 1619 /* 0: Identity */},
+  {(bigint) 1611 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction375 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction375 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1619 /* 3: ReduceAction375 < ReduceAction375: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction375 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1611 /* 3: ReduceAction375 < ReduceAction375: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70269,10 +66463,10 @@ val_t NEW_ReduceAction375_parser___ReduceAction375___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction376[45] = {
-  {(bigint) 1615 /* 0: Identity */},
+  {(bigint) 1607 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction376 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction376 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1615 /* 3: ReduceAction376 < ReduceAction376: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction376 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1607 /* 3: ReduceAction376 < ReduceAction376: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70332,10 +66526,10 @@ val_t NEW_ReduceAction376_parser___ReduceAction376___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction377[45] = {
-  {(bigint) 1611 /* 0: Identity */},
+  {(bigint) 1603 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction377 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction377 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1611 /* 3: ReduceAction377 < ReduceAction377: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction377 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1603 /* 3: ReduceAction377 < ReduceAction377: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70395,10 +66589,10 @@ val_t NEW_ReduceAction377_parser___ReduceAction377___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction378[45] = {
-  {(bigint) 1607 /* 0: Identity */},
+  {(bigint) 1599 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction378 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction378 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1607 /* 3: ReduceAction378 < ReduceAction378: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction378 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1599 /* 3: ReduceAction378 < ReduceAction378: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70458,10 +66652,10 @@ val_t NEW_ReduceAction378_parser___ReduceAction378___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction379[45] = {
-  {(bigint) 1603 /* 0: Identity */},
+  {(bigint) 1595 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction379 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction379 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1603 /* 3: ReduceAction379 < ReduceAction379: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction379 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1595 /* 3: ReduceAction379 < ReduceAction379: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70521,10 +66715,10 @@ val_t NEW_ReduceAction379_parser___ReduceAction379___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction380[45] = {
-  {(bigint) 1595 /* 0: Identity */},
+  {(bigint) 1587 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction380 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction380 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1595 /* 3: ReduceAction380 < ReduceAction380: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction380 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1587 /* 3: ReduceAction380 < ReduceAction380: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70584,10 +66778,10 @@ val_t NEW_ReduceAction380_parser___ReduceAction380___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction381[45] = {
-  {(bigint) 1591 /* 0: Identity */},
+  {(bigint) 1583 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction381 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction381 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1591 /* 3: ReduceAction381 < ReduceAction381: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction381 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1583 /* 3: ReduceAction381 < ReduceAction381: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70647,10 +66841,10 @@ val_t NEW_ReduceAction381_parser___ReduceAction381___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction382[45] = {
-  {(bigint) 1587 /* 0: Identity */},
+  {(bigint) 1579 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction382 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction382 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1587 /* 3: ReduceAction382 < ReduceAction382: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction382 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1579 /* 3: ReduceAction382 < ReduceAction382: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70710,10 +66904,10 @@ val_t NEW_ReduceAction382_parser___ReduceAction382___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction383[45] = {
-  {(bigint) 1583 /* 0: Identity */},
+  {(bigint) 1575 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction383 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction383 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1583 /* 3: ReduceAction383 < ReduceAction383: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction383 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1575 /* 3: ReduceAction383 < ReduceAction383: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70773,10 +66967,10 @@ val_t NEW_ReduceAction383_parser___ReduceAction383___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction384[45] = {
-  {(bigint) 1579 /* 0: Identity */},
+  {(bigint) 1571 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction384 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction384 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1579 /* 3: ReduceAction384 < ReduceAction384: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction384 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1571 /* 3: ReduceAction384 < ReduceAction384: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70836,10 +67030,10 @@ val_t NEW_ReduceAction384_parser___ReduceAction384___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction385[45] = {
-  {(bigint) 1575 /* 0: Identity */},
+  {(bigint) 1567 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction385 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction385 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1575 /* 3: ReduceAction385 < ReduceAction385: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction385 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1567 /* 3: ReduceAction385 < ReduceAction385: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70899,10 +67093,10 @@ val_t NEW_ReduceAction385_parser___ReduceAction385___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction386[45] = {
-  {(bigint) 1571 /* 0: Identity */},
+  {(bigint) 1563 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction386 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction386 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1571 /* 3: ReduceAction386 < ReduceAction386: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction386 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1563 /* 3: ReduceAction386 < ReduceAction386: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -70962,10 +67156,10 @@ val_t NEW_ReduceAction386_parser___ReduceAction386___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction387[45] = {
-  {(bigint) 1567 /* 0: Identity */},
+  {(bigint) 1559 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction387 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction387 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1567 /* 3: ReduceAction387 < ReduceAction387: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction387 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1559 /* 3: ReduceAction387 < ReduceAction387: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71025,10 +67219,10 @@ val_t NEW_ReduceAction387_parser___ReduceAction387___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction388[45] = {
-  {(bigint) 1563 /* 0: Identity */},
+  {(bigint) 1555 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction388 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction388 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1563 /* 3: ReduceAction388 < ReduceAction388: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction388 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1555 /* 3: ReduceAction388 < ReduceAction388: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71088,10 +67282,10 @@ val_t NEW_ReduceAction388_parser___ReduceAction388___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction389[45] = {
-  {(bigint) 1559 /* 0: Identity */},
+  {(bigint) 1551 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction389 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction389 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1559 /* 3: ReduceAction389 < ReduceAction389: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction389 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1551 /* 3: ReduceAction389 < ReduceAction389: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71151,10 +67345,10 @@ val_t NEW_ReduceAction389_parser___ReduceAction389___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction390[45] = {
-  {(bigint) 1551 /* 0: Identity */},
+  {(bigint) 1543 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction390 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction390 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1551 /* 3: ReduceAction390 < ReduceAction390: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction390 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1543 /* 3: ReduceAction390 < ReduceAction390: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71214,10 +67408,10 @@ val_t NEW_ReduceAction390_parser___ReduceAction390___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction391[45] = {
-  {(bigint) 1547 /* 0: Identity */},
+  {(bigint) 1539 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction391 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction391 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1547 /* 3: ReduceAction391 < ReduceAction391: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction391 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1539 /* 3: ReduceAction391 < ReduceAction391: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71277,10 +67471,10 @@ val_t NEW_ReduceAction391_parser___ReduceAction391___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction392[45] = {
-  {(bigint) 1543 /* 0: Identity */},
+  {(bigint) 1535 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction392 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction392 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1543 /* 3: ReduceAction392 < ReduceAction392: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction392 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1535 /* 3: ReduceAction392 < ReduceAction392: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71340,10 +67534,10 @@ val_t NEW_ReduceAction392_parser___ReduceAction392___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction393[45] = {
-  {(bigint) 1539 /* 0: Identity */},
+  {(bigint) 1531 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction393 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction393 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1539 /* 3: ReduceAction393 < ReduceAction393: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction393 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1531 /* 3: ReduceAction393 < ReduceAction393: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71403,10 +67597,10 @@ val_t NEW_ReduceAction393_parser___ReduceAction393___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction394[45] = {
-  {(bigint) 1535 /* 0: Identity */},
+  {(bigint) 1527 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction394 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction394 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1535 /* 3: ReduceAction394 < ReduceAction394: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction394 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1527 /* 3: ReduceAction394 < ReduceAction394: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71466,10 +67660,10 @@ val_t NEW_ReduceAction394_parser___ReduceAction394___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction395[45] = {
-  {(bigint) 1531 /* 0: Identity */},
+  {(bigint) 1523 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction395 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction395 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1531 /* 3: ReduceAction395 < ReduceAction395: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction395 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1523 /* 3: ReduceAction395 < ReduceAction395: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71529,10 +67723,10 @@ val_t NEW_ReduceAction395_parser___ReduceAction395___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction396[45] = {
-  {(bigint) 1527 /* 0: Identity */},
+  {(bigint) 1519 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction396 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction396 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1527 /* 3: ReduceAction396 < ReduceAction396: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction396 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1519 /* 3: ReduceAction396 < ReduceAction396: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71592,10 +67786,10 @@ val_t NEW_ReduceAction396_parser___ReduceAction396___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction397[45] = {
-  {(bigint) 1523 /* 0: Identity */},
+  {(bigint) 1515 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction397 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction397 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1523 /* 3: ReduceAction397 < ReduceAction397: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction397 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1515 /* 3: ReduceAction397 < ReduceAction397: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71655,10 +67849,10 @@ val_t NEW_ReduceAction397_parser___ReduceAction397___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction398[45] = {
-  {(bigint) 1519 /* 0: Identity */},
+  {(bigint) 1511 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction398 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction398 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1519 /* 3: ReduceAction398 < ReduceAction398: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction398 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1511 /* 3: ReduceAction398 < ReduceAction398: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71718,10 +67912,10 @@ val_t NEW_ReduceAction398_parser___ReduceAction398___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction399[45] = {
-  {(bigint) 1515 /* 0: Identity */},
+  {(bigint) 1507 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction399 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction399 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1515 /* 3: ReduceAction399 < ReduceAction399: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction399 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1507 /* 3: ReduceAction399 < ReduceAction399: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71781,10 +67975,10 @@ val_t NEW_ReduceAction399_parser___ReduceAction399___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction400[45] = {
-  {(bigint) 1503 /* 0: Identity */},
+  {(bigint) 1495 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction400 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction400 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1503 /* 3: ReduceAction400 < ReduceAction400: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction400 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1495 /* 3: ReduceAction400 < ReduceAction400: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71844,10 +68038,10 @@ val_t NEW_ReduceAction400_parser___ReduceAction400___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction401[45] = {
-  {(bigint) 1499 /* 0: Identity */},
+  {(bigint) 1491 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction401 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction401 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1499 /* 3: ReduceAction401 < ReduceAction401: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction401 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1491 /* 3: ReduceAction401 < ReduceAction401: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71907,10 +68101,10 @@ val_t NEW_ReduceAction401_parser___ReduceAction401___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction402[45] = {
-  {(bigint) 1495 /* 0: Identity */},
+  {(bigint) 1487 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction402 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction402 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1495 /* 3: ReduceAction402 < ReduceAction402: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction402 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1487 /* 3: ReduceAction402 < ReduceAction402: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -71970,10 +68164,10 @@ val_t NEW_ReduceAction402_parser___ReduceAction402___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction403[45] = {
-  {(bigint) 1491 /* 0: Identity */},
+  {(bigint) 1483 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction403 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction403 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1491 /* 3: ReduceAction403 < ReduceAction403: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction403 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1483 /* 3: ReduceAction403 < ReduceAction403: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72033,10 +68227,10 @@ val_t NEW_ReduceAction403_parser___ReduceAction403___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction404[45] = {
-  {(bigint) 1487 /* 0: Identity */},
+  {(bigint) 1479 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction404 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction404 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1487 /* 3: ReduceAction404 < ReduceAction404: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction404 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1479 /* 3: ReduceAction404 < ReduceAction404: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72096,10 +68290,10 @@ val_t NEW_ReduceAction404_parser___ReduceAction404___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction405[45] = {
-  {(bigint) 1483 /* 0: Identity */},
+  {(bigint) 1475 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction405 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction405 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1483 /* 3: ReduceAction405 < ReduceAction405: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction405 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1475 /* 3: ReduceAction405 < ReduceAction405: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72159,10 +68353,10 @@ val_t NEW_ReduceAction405_parser___ReduceAction405___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction406[45] = {
-  {(bigint) 1479 /* 0: Identity */},
+  {(bigint) 1471 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction406 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction406 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1479 /* 3: ReduceAction406 < ReduceAction406: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction406 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1471 /* 3: ReduceAction406 < ReduceAction406: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72222,10 +68416,10 @@ val_t NEW_ReduceAction406_parser___ReduceAction406___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction407[45] = {
-  {(bigint) 1475 /* 0: Identity */},
+  {(bigint) 1467 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction407 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction407 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1475 /* 3: ReduceAction407 < ReduceAction407: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction407 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1467 /* 3: ReduceAction407 < ReduceAction407: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72285,10 +68479,10 @@ val_t NEW_ReduceAction407_parser___ReduceAction407___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction408[45] = {
-  {(bigint) 1471 /* 0: Identity */},
+  {(bigint) 1463 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction408 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction408 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1471 /* 3: ReduceAction408 < ReduceAction408: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction408 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1463 /* 3: ReduceAction408 < ReduceAction408: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72348,10 +68542,10 @@ val_t NEW_ReduceAction408_parser___ReduceAction408___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction409[45] = {
-  {(bigint) 1467 /* 0: Identity */},
+  {(bigint) 1459 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction409 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction409 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1467 /* 3: ReduceAction409 < ReduceAction409: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction409 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1459 /* 3: ReduceAction409 < ReduceAction409: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72411,10 +68605,10 @@ val_t NEW_ReduceAction409_parser___ReduceAction409___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction410[45] = {
-  {(bigint) 1459 /* 0: Identity */},
+  {(bigint) 1451 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction410 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction410 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1459 /* 3: ReduceAction410 < ReduceAction410: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction410 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1451 /* 3: ReduceAction410 < ReduceAction410: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72474,10 +68668,10 @@ val_t NEW_ReduceAction410_parser___ReduceAction410___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction411[45] = {
-  {(bigint) 1455 /* 0: Identity */},
+  {(bigint) 1447 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction411 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction411 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1455 /* 3: ReduceAction411 < ReduceAction411: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction411 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1447 /* 3: ReduceAction411 < ReduceAction411: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72537,10 +68731,10 @@ val_t NEW_ReduceAction411_parser___ReduceAction411___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction412[45] = {
-  {(bigint) 1451 /* 0: Identity */},
+  {(bigint) 1443 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction412 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction412 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1451 /* 3: ReduceAction412 < ReduceAction412: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction412 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1443 /* 3: ReduceAction412 < ReduceAction412: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72600,10 +68794,10 @@ val_t NEW_ReduceAction412_parser___ReduceAction412___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction413[45] = {
-  {(bigint) 1447 /* 0: Identity */},
+  {(bigint) 1439 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction413 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction413 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1447 /* 3: ReduceAction413 < ReduceAction413: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction413 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1439 /* 3: ReduceAction413 < ReduceAction413: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72663,10 +68857,10 @@ val_t NEW_ReduceAction413_parser___ReduceAction413___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction414[45] = {
-  {(bigint) 1443 /* 0: Identity */},
+  {(bigint) 1435 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction414 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction414 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1443 /* 3: ReduceAction414 < ReduceAction414: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction414 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1435 /* 3: ReduceAction414 < ReduceAction414: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72726,10 +68920,10 @@ val_t NEW_ReduceAction414_parser___ReduceAction414___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction415[45] = {
-  {(bigint) 1439 /* 0: Identity */},
+  {(bigint) 1431 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction415 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction415 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1439 /* 3: ReduceAction415 < ReduceAction415: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction415 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1431 /* 3: ReduceAction415 < ReduceAction415: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72789,10 +68983,10 @@ val_t NEW_ReduceAction415_parser___ReduceAction415___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction416[45] = {
-  {(bigint) 1435 /* 0: Identity */},
+  {(bigint) 1427 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction416 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction416 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1435 /* 3: ReduceAction416 < ReduceAction416: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction416 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1427 /* 3: ReduceAction416 < ReduceAction416: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72852,10 +69046,10 @@ val_t NEW_ReduceAction416_parser___ReduceAction416___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction417[45] = {
-  {(bigint) 1431 /* 0: Identity */},
+  {(bigint) 1423 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction417 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction417 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1431 /* 3: ReduceAction417 < ReduceAction417: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction417 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1423 /* 3: ReduceAction417 < ReduceAction417: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72915,10 +69109,10 @@ val_t NEW_ReduceAction417_parser___ReduceAction417___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction418[45] = {
-  {(bigint) 1427 /* 0: Identity */},
+  {(bigint) 1419 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction418 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction418 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1427 /* 3: ReduceAction418 < ReduceAction418: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction418 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1419 /* 3: ReduceAction418 < ReduceAction418: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -72978,10 +69172,10 @@ val_t NEW_ReduceAction418_parser___ReduceAction418___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction419[45] = {
-  {(bigint) 1423 /* 0: Identity */},
+  {(bigint) 1415 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction419 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction419 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1423 /* 3: ReduceAction419 < ReduceAction419: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction419 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1415 /* 3: ReduceAction419 < ReduceAction419: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73041,10 +69235,10 @@ val_t NEW_ReduceAction419_parser___ReduceAction419___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction420[45] = {
-  {(bigint) 1415 /* 0: Identity */},
+  {(bigint) 1407 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction420 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction420 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1415 /* 3: ReduceAction420 < ReduceAction420: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction420 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1407 /* 3: ReduceAction420 < ReduceAction420: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73104,10 +69298,10 @@ val_t NEW_ReduceAction420_parser___ReduceAction420___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction421[45] = {
-  {(bigint) 1411 /* 0: Identity */},
+  {(bigint) 1403 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction421 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction421 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1411 /* 3: ReduceAction421 < ReduceAction421: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction421 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1403 /* 3: ReduceAction421 < ReduceAction421: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73167,10 +69361,10 @@ val_t NEW_ReduceAction421_parser___ReduceAction421___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction422[45] = {
-  {(bigint) 1407 /* 0: Identity */},
+  {(bigint) 1399 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction422 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction422 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1407 /* 3: ReduceAction422 < ReduceAction422: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction422 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1399 /* 3: ReduceAction422 < ReduceAction422: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73230,10 +69424,10 @@ val_t NEW_ReduceAction422_parser___ReduceAction422___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction423[45] = {
-  {(bigint) 1403 /* 0: Identity */},
+  {(bigint) 1395 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction423 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction423 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1403 /* 3: ReduceAction423 < ReduceAction423: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction423 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1395 /* 3: ReduceAction423 < ReduceAction423: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73293,10 +69487,10 @@ val_t NEW_ReduceAction423_parser___ReduceAction423___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction424[45] = {
-  {(bigint) 1399 /* 0: Identity */},
+  {(bigint) 1391 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction424 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction424 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1399 /* 3: ReduceAction424 < ReduceAction424: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction424 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1391 /* 3: ReduceAction424 < ReduceAction424: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73356,10 +69550,10 @@ val_t NEW_ReduceAction424_parser___ReduceAction424___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction425[45] = {
-  {(bigint) 1395 /* 0: Identity */},
+  {(bigint) 1387 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction425 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction425 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1395 /* 3: ReduceAction425 < ReduceAction425: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction425 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1387 /* 3: ReduceAction425 < ReduceAction425: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73419,10 +69613,10 @@ val_t NEW_ReduceAction425_parser___ReduceAction425___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction426[45] = {
-  {(bigint) 1391 /* 0: Identity */},
+  {(bigint) 1383 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction426 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction426 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1391 /* 3: ReduceAction426 < ReduceAction426: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction426 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1383 /* 3: ReduceAction426 < ReduceAction426: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73482,10 +69676,10 @@ val_t NEW_ReduceAction426_parser___ReduceAction426___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction427[45] = {
-  {(bigint) 1387 /* 0: Identity */},
+  {(bigint) 1379 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction427 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction427 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1387 /* 3: ReduceAction427 < ReduceAction427: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction427 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1379 /* 3: ReduceAction427 < ReduceAction427: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73545,10 +69739,10 @@ val_t NEW_ReduceAction427_parser___ReduceAction427___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction428[45] = {
-  {(bigint) 1383 /* 0: Identity */},
+  {(bigint) 1375 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction428 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction428 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1383 /* 3: ReduceAction428 < ReduceAction428: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction428 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1375 /* 3: ReduceAction428 < ReduceAction428: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73608,10 +69802,10 @@ val_t NEW_ReduceAction428_parser___ReduceAction428___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction429[45] = {
-  {(bigint) 1379 /* 0: Identity */},
+  {(bigint) 1371 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction429 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction429 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1379 /* 3: ReduceAction429 < ReduceAction429: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction429 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1371 /* 3: ReduceAction429 < ReduceAction429: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73671,10 +69865,10 @@ val_t NEW_ReduceAction429_parser___ReduceAction429___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction430[45] = {
-  {(bigint) 1371 /* 0: Identity */},
+  {(bigint) 1363 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction430 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction430 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1371 /* 3: ReduceAction430 < ReduceAction430: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction430 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1363 /* 3: ReduceAction430 < ReduceAction430: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73734,10 +69928,10 @@ val_t NEW_ReduceAction430_parser___ReduceAction430___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction431[45] = {
-  {(bigint) 1367 /* 0: Identity */},
+  {(bigint) 1359 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction431 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction431 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1367 /* 3: ReduceAction431 < ReduceAction431: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction431 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1359 /* 3: ReduceAction431 < ReduceAction431: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73797,10 +69991,10 @@ val_t NEW_ReduceAction431_parser___ReduceAction431___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction432[45] = {
-  {(bigint) 1363 /* 0: Identity */},
+  {(bigint) 1355 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction432 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction432 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1363 /* 3: ReduceAction432 < ReduceAction432: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction432 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1355 /* 3: ReduceAction432 < ReduceAction432: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73860,10 +70054,10 @@ val_t NEW_ReduceAction432_parser___ReduceAction432___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction433[45] = {
-  {(bigint) 1359 /* 0: Identity */},
+  {(bigint) 1351 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction433 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction433 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1359 /* 3: ReduceAction433 < ReduceAction433: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction433 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1351 /* 3: ReduceAction433 < ReduceAction433: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73923,10 +70117,10 @@ val_t NEW_ReduceAction433_parser___ReduceAction433___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction434[45] = {
-  {(bigint) 1355 /* 0: Identity */},
+  {(bigint) 1347 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction434 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction434 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1355 /* 3: ReduceAction434 < ReduceAction434: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction434 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1347 /* 3: ReduceAction434 < ReduceAction434: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -73986,10 +70180,10 @@ val_t NEW_ReduceAction434_parser___ReduceAction434___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction435[45] = {
-  {(bigint) 1351 /* 0: Identity */},
+  {(bigint) 1343 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction435 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction435 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1351 /* 3: ReduceAction435 < ReduceAction435: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction435 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1343 /* 3: ReduceAction435 < ReduceAction435: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74049,10 +70243,10 @@ val_t NEW_ReduceAction435_parser___ReduceAction435___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction436[45] = {
-  {(bigint) 1347 /* 0: Identity */},
+  {(bigint) 1339 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction436 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction436 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1347 /* 3: ReduceAction436 < ReduceAction436: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction436 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1339 /* 3: ReduceAction436 < ReduceAction436: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74112,10 +70306,10 @@ val_t NEW_ReduceAction436_parser___ReduceAction436___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction437[45] = {
-  {(bigint) 1343 /* 0: Identity */},
+  {(bigint) 1335 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction437 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction437 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1343 /* 3: ReduceAction437 < ReduceAction437: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction437 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1335 /* 3: ReduceAction437 < ReduceAction437: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74175,10 +70369,10 @@ val_t NEW_ReduceAction437_parser___ReduceAction437___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction438[45] = {
-  {(bigint) 1339 /* 0: Identity */},
+  {(bigint) 1331 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction438 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction438 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1339 /* 3: ReduceAction438 < ReduceAction438: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction438 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1331 /* 3: ReduceAction438 < ReduceAction438: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74238,10 +70432,10 @@ val_t NEW_ReduceAction438_parser___ReduceAction438___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction439[45] = {
-  {(bigint) 1335 /* 0: Identity */},
+  {(bigint) 1327 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction439 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction439 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1335 /* 3: ReduceAction439 < ReduceAction439: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction439 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1327 /* 3: ReduceAction439 < ReduceAction439: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74301,10 +70495,10 @@ val_t NEW_ReduceAction439_parser___ReduceAction439___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction440[45] = {
-  {(bigint) 1327 /* 0: Identity */},
+  {(bigint) 1319 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction440 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction440 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1327 /* 3: ReduceAction440 < ReduceAction440: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction440 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1319 /* 3: ReduceAction440 < ReduceAction440: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74364,10 +70558,10 @@ val_t NEW_ReduceAction440_parser___ReduceAction440___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction441[45] = {
-  {(bigint) 1323 /* 0: Identity */},
+  {(bigint) 1315 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction441 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction441 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1323 /* 3: ReduceAction441 < ReduceAction441: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction441 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1315 /* 3: ReduceAction441 < ReduceAction441: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74427,10 +70621,10 @@ val_t NEW_ReduceAction441_parser___ReduceAction441___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction442[45] = {
-  {(bigint) 1319 /* 0: Identity */},
+  {(bigint) 1311 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction442 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction442 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1319 /* 3: ReduceAction442 < ReduceAction442: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction442 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1311 /* 3: ReduceAction442 < ReduceAction442: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74490,10 +70684,10 @@ val_t NEW_ReduceAction442_parser___ReduceAction442___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction443[45] = {
-  {(bigint) 1315 /* 0: Identity */},
+  {(bigint) 1307 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction443 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction443 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1315 /* 3: ReduceAction443 < ReduceAction443: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction443 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1307 /* 3: ReduceAction443 < ReduceAction443: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74553,10 +70747,10 @@ val_t NEW_ReduceAction443_parser___ReduceAction443___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction444[45] = {
-  {(bigint) 1311 /* 0: Identity */},
+  {(bigint) 1303 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction444 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction444 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1311 /* 3: ReduceAction444 < ReduceAction444: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction444 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1303 /* 3: ReduceAction444 < ReduceAction444: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74616,10 +70810,10 @@ val_t NEW_ReduceAction444_parser___ReduceAction444___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction445[45] = {
-  {(bigint) 1307 /* 0: Identity */},
+  {(bigint) 1299 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction445 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction445 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1307 /* 3: ReduceAction445 < ReduceAction445: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction445 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1299 /* 3: ReduceAction445 < ReduceAction445: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74679,10 +70873,10 @@ val_t NEW_ReduceAction445_parser___ReduceAction445___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction446[45] = {
-  {(bigint) 1303 /* 0: Identity */},
+  {(bigint) 1295 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction446 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction446 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1303 /* 3: ReduceAction446 < ReduceAction446: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction446 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1295 /* 3: ReduceAction446 < ReduceAction446: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74742,10 +70936,10 @@ val_t NEW_ReduceAction446_parser___ReduceAction446___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction447[45] = {
-  {(bigint) 1299 /* 0: Identity */},
+  {(bigint) 1291 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction447 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction447 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1299 /* 3: ReduceAction447 < ReduceAction447: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction447 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1291 /* 3: ReduceAction447 < ReduceAction447: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74805,10 +70999,10 @@ val_t NEW_ReduceAction447_parser___ReduceAction447___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction448[45] = {
-  {(bigint) 1295 /* 0: Identity */},
+  {(bigint) 1287 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction448 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction448 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1295 /* 3: ReduceAction448 < ReduceAction448: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction448 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1287 /* 3: ReduceAction448 < ReduceAction448: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74868,10 +71062,10 @@ val_t NEW_ReduceAction448_parser___ReduceAction448___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction449[45] = {
-  {(bigint) 1291 /* 0: Identity */},
+  {(bigint) 1283 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction449 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction449 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1291 /* 3: ReduceAction449 < ReduceAction449: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction449 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1283 /* 3: ReduceAction449 < ReduceAction449: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74931,10 +71125,10 @@ val_t NEW_ReduceAction449_parser___ReduceAction449___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction450[45] = {
-  {(bigint) 1283 /* 0: Identity */},
+  {(bigint) 1275 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction450 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction450 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1283 /* 3: ReduceAction450 < ReduceAction450: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction450 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1275 /* 3: ReduceAction450 < ReduceAction450: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -74994,10 +71188,10 @@ val_t NEW_ReduceAction450_parser___ReduceAction450___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction451[45] = {
-  {(bigint) 1279 /* 0: Identity */},
+  {(bigint) 1271 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction451 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction451 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1279 /* 3: ReduceAction451 < ReduceAction451: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction451 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1271 /* 3: ReduceAction451 < ReduceAction451: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75057,10 +71251,10 @@ val_t NEW_ReduceAction451_parser___ReduceAction451___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction452[45] = {
-  {(bigint) 1275 /* 0: Identity */},
+  {(bigint) 1267 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction452 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction452 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1275 /* 3: ReduceAction452 < ReduceAction452: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction452 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1267 /* 3: ReduceAction452 < ReduceAction452: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75120,10 +71314,10 @@ val_t NEW_ReduceAction452_parser___ReduceAction452___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction453[45] = {
-  {(bigint) 1271 /* 0: Identity */},
+  {(bigint) 1263 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction453 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction453 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1271 /* 3: ReduceAction453 < ReduceAction453: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction453 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1263 /* 3: ReduceAction453 < ReduceAction453: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75183,10 +71377,10 @@ val_t NEW_ReduceAction453_parser___ReduceAction453___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction454[45] = {
-  {(bigint) 1267 /* 0: Identity */},
+  {(bigint) 1259 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction454 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction454 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1267 /* 3: ReduceAction454 < ReduceAction454: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction454 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1259 /* 3: ReduceAction454 < ReduceAction454: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75246,10 +71440,10 @@ val_t NEW_ReduceAction454_parser___ReduceAction454___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction455[45] = {
-  {(bigint) 1263 /* 0: Identity */},
+  {(bigint) 1255 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction455 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction455 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1263 /* 3: ReduceAction455 < ReduceAction455: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction455 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1255 /* 3: ReduceAction455 < ReduceAction455: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75309,10 +71503,10 @@ val_t NEW_ReduceAction455_parser___ReduceAction455___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction456[45] = {
-  {(bigint) 1259 /* 0: Identity */},
+  {(bigint) 1251 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction456 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction456 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1259 /* 3: ReduceAction456 < ReduceAction456: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction456 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1251 /* 3: ReduceAction456 < ReduceAction456: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75372,10 +71566,10 @@ val_t NEW_ReduceAction456_parser___ReduceAction456___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction457[45] = {
-  {(bigint) 1255 /* 0: Identity */},
+  {(bigint) 1247 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction457 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction457 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1255 /* 3: ReduceAction457 < ReduceAction457: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction457 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1247 /* 3: ReduceAction457 < ReduceAction457: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75435,10 +71629,10 @@ val_t NEW_ReduceAction457_parser___ReduceAction457___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction458[45] = {
-  {(bigint) 1251 /* 0: Identity */},
+  {(bigint) 1243 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction458 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction458 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1251 /* 3: ReduceAction458 < ReduceAction458: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction458 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1243 /* 3: ReduceAction458 < ReduceAction458: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75498,10 +71692,10 @@ val_t NEW_ReduceAction458_parser___ReduceAction458___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction459[45] = {
-  {(bigint) 1247 /* 0: Identity */},
+  {(bigint) 1239 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction459 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction459 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1247 /* 3: ReduceAction459 < ReduceAction459: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction459 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1239 /* 3: ReduceAction459 < ReduceAction459: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75561,10 +71755,10 @@ val_t NEW_ReduceAction459_parser___ReduceAction459___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction460[45] = {
-  {(bigint) 1239 /* 0: Identity */},
+  {(bigint) 1231 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction460 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction460 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1239 /* 3: ReduceAction460 < ReduceAction460: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction460 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1231 /* 3: ReduceAction460 < ReduceAction460: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75624,10 +71818,10 @@ val_t NEW_ReduceAction460_parser___ReduceAction460___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction461[45] = {
-  {(bigint) 1235 /* 0: Identity */},
+  {(bigint) 1227 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction461 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction461 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1235 /* 3: ReduceAction461 < ReduceAction461: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction461 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1227 /* 3: ReduceAction461 < ReduceAction461: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75687,10 +71881,10 @@ val_t NEW_ReduceAction461_parser___ReduceAction461___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction462[45] = {
-  {(bigint) 1231 /* 0: Identity */},
+  {(bigint) 1223 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction462 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction462 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1231 /* 3: ReduceAction462 < ReduceAction462: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction462 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1223 /* 3: ReduceAction462 < ReduceAction462: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75750,10 +71944,10 @@ val_t NEW_ReduceAction462_parser___ReduceAction462___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction463[45] = {
-  {(bigint) 1227 /* 0: Identity */},
+  {(bigint) 1219 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction463 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction463 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1227 /* 3: ReduceAction463 < ReduceAction463: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction463 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1219 /* 3: ReduceAction463 < ReduceAction463: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75813,10 +72007,10 @@ val_t NEW_ReduceAction463_parser___ReduceAction463___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction464[45] = {
-  {(bigint) 1223 /* 0: Identity */},
+  {(bigint) 1215 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction464 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction464 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1223 /* 3: ReduceAction464 < ReduceAction464: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction464 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1215 /* 3: ReduceAction464 < ReduceAction464: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75876,10 +72070,10 @@ val_t NEW_ReduceAction464_parser___ReduceAction464___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction465[45] = {
-  {(bigint) 1219 /* 0: Identity */},
+  {(bigint) 1211 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction465 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction465 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1219 /* 3: ReduceAction465 < ReduceAction465: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction465 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1211 /* 3: ReduceAction465 < ReduceAction465: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -75939,10 +72133,10 @@ val_t NEW_ReduceAction465_parser___ReduceAction465___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction466[45] = {
-  {(bigint) 1215 /* 0: Identity */},
+  {(bigint) 1207 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction466 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction466 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1215 /* 3: ReduceAction466 < ReduceAction466: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction466 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1207 /* 3: ReduceAction466 < ReduceAction466: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76002,10 +72196,10 @@ val_t NEW_ReduceAction466_parser___ReduceAction466___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction467[45] = {
-  {(bigint) 1211 /* 0: Identity */},
+  {(bigint) 1203 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction467 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction467 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1211 /* 3: ReduceAction467 < ReduceAction467: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction467 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1203 /* 3: ReduceAction467 < ReduceAction467: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76065,10 +72259,10 @@ val_t NEW_ReduceAction467_parser___ReduceAction467___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction468[45] = {
-  {(bigint) 1207 /* 0: Identity */},
+  {(bigint) 1199 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction468 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction468 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1207 /* 3: ReduceAction468 < ReduceAction468: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction468 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1199 /* 3: ReduceAction468 < ReduceAction468: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76128,10 +72322,10 @@ val_t NEW_ReduceAction468_parser___ReduceAction468___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction469[45] = {
-  {(bigint) 1203 /* 0: Identity */},
+  {(bigint) 1195 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction469 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction469 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1203 /* 3: ReduceAction469 < ReduceAction469: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction469 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1195 /* 3: ReduceAction469 < ReduceAction469: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76191,10 +72385,10 @@ val_t NEW_ReduceAction469_parser___ReduceAction469___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction470[45] = {
-  {(bigint) 1195 /* 0: Identity */},
+  {(bigint) 1187 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction470 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction470 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1195 /* 3: ReduceAction470 < ReduceAction470: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction470 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1187 /* 3: ReduceAction470 < ReduceAction470: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76254,10 +72448,10 @@ val_t NEW_ReduceAction470_parser___ReduceAction470___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction471[45] = {
-  {(bigint) 1191 /* 0: Identity */},
+  {(bigint) 1183 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction471 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction471 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1191 /* 3: ReduceAction471 < ReduceAction471: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction471 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1183 /* 3: ReduceAction471 < ReduceAction471: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76317,10 +72511,10 @@ val_t NEW_ReduceAction471_parser___ReduceAction471___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction472[45] = {
-  {(bigint) 1187 /* 0: Identity */},
+  {(bigint) 1179 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction472 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction472 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1187 /* 3: ReduceAction472 < ReduceAction472: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction472 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1179 /* 3: ReduceAction472 < ReduceAction472: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76380,10 +72574,10 @@ val_t NEW_ReduceAction472_parser___ReduceAction472___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction473[45] = {
-  {(bigint) 1183 /* 0: Identity */},
+  {(bigint) 1175 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction473 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction473 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1183 /* 3: ReduceAction473 < ReduceAction473: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction473 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1175 /* 3: ReduceAction473 < ReduceAction473: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76443,10 +72637,10 @@ val_t NEW_ReduceAction473_parser___ReduceAction473___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction474[45] = {
-  {(bigint) 1179 /* 0: Identity */},
+  {(bigint) 1171 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction474 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction474 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1179 /* 3: ReduceAction474 < ReduceAction474: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction474 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1171 /* 3: ReduceAction474 < ReduceAction474: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76506,10 +72700,10 @@ val_t NEW_ReduceAction474_parser___ReduceAction474___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction475[45] = {
-  {(bigint) 1175 /* 0: Identity */},
+  {(bigint) 1167 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction475 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction475 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1175 /* 3: ReduceAction475 < ReduceAction475: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction475 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1167 /* 3: ReduceAction475 < ReduceAction475: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76569,10 +72763,10 @@ val_t NEW_ReduceAction475_parser___ReduceAction475___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction476[45] = {
-  {(bigint) 1171 /* 0: Identity */},
+  {(bigint) 1163 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction476 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction476 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1171 /* 3: ReduceAction476 < ReduceAction476: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction476 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1163 /* 3: ReduceAction476 < ReduceAction476: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76632,10 +72826,10 @@ val_t NEW_ReduceAction476_parser___ReduceAction476___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction477[45] = {
-  {(bigint) 1167 /* 0: Identity */},
+  {(bigint) 1159 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction477 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction477 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1167 /* 3: ReduceAction477 < ReduceAction477: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction477 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1159 /* 3: ReduceAction477 < ReduceAction477: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76695,10 +72889,10 @@ val_t NEW_ReduceAction477_parser___ReduceAction477___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction478[45] = {
-  {(bigint) 1163 /* 0: Identity */},
+  {(bigint) 1155 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction478 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction478 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1163 /* 3: ReduceAction478 < ReduceAction478: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction478 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1155 /* 3: ReduceAction478 < ReduceAction478: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76758,10 +72952,10 @@ val_t NEW_ReduceAction478_parser___ReduceAction478___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction479[45] = {
-  {(bigint) 1159 /* 0: Identity */},
+  {(bigint) 1151 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction479 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction479 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1159 /* 3: ReduceAction479 < ReduceAction479: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction479 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1151 /* 3: ReduceAction479 < ReduceAction479: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76821,10 +73015,10 @@ val_t NEW_ReduceAction479_parser___ReduceAction479___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction480[45] = {
-  {(bigint) 1151 /* 0: Identity */},
+  {(bigint) 1143 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction480 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction480 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1151 /* 3: ReduceAction480 < ReduceAction480: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction480 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1143 /* 3: ReduceAction480 < ReduceAction480: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76884,10 +73078,10 @@ val_t NEW_ReduceAction480_parser___ReduceAction480___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction481[45] = {
-  {(bigint) 1147 /* 0: Identity */},
+  {(bigint) 1139 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction481 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction481 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1147 /* 3: ReduceAction481 < ReduceAction481: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction481 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1139 /* 3: ReduceAction481 < ReduceAction481: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -76947,10 +73141,10 @@ val_t NEW_ReduceAction481_parser___ReduceAction481___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction482[45] = {
-  {(bigint) 1143 /* 0: Identity */},
+  {(bigint) 1135 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction482 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction482 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1143 /* 3: ReduceAction482 < ReduceAction482: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction482 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1135 /* 3: ReduceAction482 < ReduceAction482: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77010,10 +73204,10 @@ val_t NEW_ReduceAction482_parser___ReduceAction482___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction483[45] = {
-  {(bigint) 1139 /* 0: Identity */},
+  {(bigint) 1131 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction483 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction483 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1139 /* 3: ReduceAction483 < ReduceAction483: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction483 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1131 /* 3: ReduceAction483 < ReduceAction483: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77073,10 +73267,10 @@ val_t NEW_ReduceAction483_parser___ReduceAction483___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction484[45] = {
-  {(bigint) 1135 /* 0: Identity */},
+  {(bigint) 1127 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction484 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction484 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1135 /* 3: ReduceAction484 < ReduceAction484: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction484 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1127 /* 3: ReduceAction484 < ReduceAction484: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77136,10 +73330,10 @@ val_t NEW_ReduceAction484_parser___ReduceAction484___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction485[45] = {
-  {(bigint) 1131 /* 0: Identity */},
+  {(bigint) 1123 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction485 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction485 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1131 /* 3: ReduceAction485 < ReduceAction485: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction485 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1123 /* 3: ReduceAction485 < ReduceAction485: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77199,10 +73393,10 @@ val_t NEW_ReduceAction485_parser___ReduceAction485___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction486[45] = {
-  {(bigint) 1127 /* 0: Identity */},
+  {(bigint) 1119 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction486 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction486 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1127 /* 3: ReduceAction486 < ReduceAction486: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction486 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1119 /* 3: ReduceAction486 < ReduceAction486: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77262,10 +73456,10 @@ val_t NEW_ReduceAction486_parser___ReduceAction486___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction487[45] = {
-  {(bigint) 1123 /* 0: Identity */},
+  {(bigint) 1115 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction487 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction487 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1123 /* 3: ReduceAction487 < ReduceAction487: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction487 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1115 /* 3: ReduceAction487 < ReduceAction487: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77325,10 +73519,10 @@ val_t NEW_ReduceAction487_parser___ReduceAction487___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction488[45] = {
-  {(bigint) 1119 /* 0: Identity */},
+  {(bigint) 1111 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction488 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction488 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1119 /* 3: ReduceAction488 < ReduceAction488: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction488 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1111 /* 3: ReduceAction488 < ReduceAction488: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77388,10 +73582,10 @@ val_t NEW_ReduceAction488_parser___ReduceAction488___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction489[45] = {
-  {(bigint) 1115 /* 0: Identity */},
+  {(bigint) 1107 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction489 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction489 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1115 /* 3: ReduceAction489 < ReduceAction489: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction489 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1107 /* 3: ReduceAction489 < ReduceAction489: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77451,10 +73645,10 @@ val_t NEW_ReduceAction489_parser___ReduceAction489___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction490[45] = {
-  {(bigint) 1107 /* 0: Identity */},
+  {(bigint) 1099 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction490 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction490 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1107 /* 3: ReduceAction490 < ReduceAction490: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction490 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1099 /* 3: ReduceAction490 < ReduceAction490: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77514,10 +73708,10 @@ val_t NEW_ReduceAction490_parser___ReduceAction490___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction491[45] = {
-  {(bigint) 1103 /* 0: Identity */},
+  {(bigint) 1095 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction491 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction491 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1103 /* 3: ReduceAction491 < ReduceAction491: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction491 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1095 /* 3: ReduceAction491 < ReduceAction491: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77577,10 +73771,10 @@ val_t NEW_ReduceAction491_parser___ReduceAction491___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction492[45] = {
-  {(bigint) 1099 /* 0: Identity */},
+  {(bigint) 1091 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction492 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction492 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1099 /* 3: ReduceAction492 < ReduceAction492: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction492 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1091 /* 3: ReduceAction492 < ReduceAction492: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77640,10 +73834,10 @@ val_t NEW_ReduceAction492_parser___ReduceAction492___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction493[45] = {
-  {(bigint) 1095 /* 0: Identity */},
+  {(bigint) 1087 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction493 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction493 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1095 /* 3: ReduceAction493 < ReduceAction493: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction493 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1087 /* 3: ReduceAction493 < ReduceAction493: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77703,10 +73897,10 @@ val_t NEW_ReduceAction493_parser___ReduceAction493___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction494[45] = {
-  {(bigint) 1091 /* 0: Identity */},
+  {(bigint) 1083 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction494 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction494 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1091 /* 3: ReduceAction494 < ReduceAction494: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction494 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1083 /* 3: ReduceAction494 < ReduceAction494: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77766,10 +73960,10 @@ val_t NEW_ReduceAction494_parser___ReduceAction494___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction495[45] = {
-  {(bigint) 1087 /* 0: Identity */},
+  {(bigint) 1079 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction495 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction495 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1087 /* 3: ReduceAction495 < ReduceAction495: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction495 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1079 /* 3: ReduceAction495 < ReduceAction495: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77829,10 +74023,10 @@ val_t NEW_ReduceAction495_parser___ReduceAction495___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction496[45] = {
-  {(bigint) 1083 /* 0: Identity */},
+  {(bigint) 1075 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction496 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction496 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1083 /* 3: ReduceAction496 < ReduceAction496: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction496 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1075 /* 3: ReduceAction496 < ReduceAction496: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77892,10 +74086,10 @@ val_t NEW_ReduceAction496_parser___ReduceAction496___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction497[45] = {
-  {(bigint) 1079 /* 0: Identity */},
+  {(bigint) 1071 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction497 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction497 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1079 /* 3: ReduceAction497 < ReduceAction497: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction497 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1071 /* 3: ReduceAction497 < ReduceAction497: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -77955,10 +74149,10 @@ val_t NEW_ReduceAction497_parser___ReduceAction497___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction498[45] = {
-  {(bigint) 1075 /* 0: Identity */},
+  {(bigint) 1067 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction498 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction498 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1075 /* 3: ReduceAction498 < ReduceAction498: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction498 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1067 /* 3: ReduceAction498 < ReduceAction498: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78018,10 +74212,10 @@ val_t NEW_ReduceAction498_parser___ReduceAction498___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction499[45] = {
-  {(bigint) 1071 /* 0: Identity */},
+  {(bigint) 1063 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction499 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction499 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1071 /* 3: ReduceAction499 < ReduceAction499: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction499 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1063 /* 3: ReduceAction499 < ReduceAction499: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78081,10 +74275,10 @@ val_t NEW_ReduceAction499_parser___ReduceAction499___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction500[45] = {
-  {(bigint) 1059 /* 0: Identity */},
+  {(bigint) 1051 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction500 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction500 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1059 /* 3: ReduceAction500 < ReduceAction500: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction500 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1051 /* 3: ReduceAction500 < ReduceAction500: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78144,10 +74338,10 @@ val_t NEW_ReduceAction500_parser___ReduceAction500___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction501[45] = {
-  {(bigint) 1055 /* 0: Identity */},
+  {(bigint) 1047 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction501 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction501 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1055 /* 3: ReduceAction501 < ReduceAction501: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction501 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1047 /* 3: ReduceAction501 < ReduceAction501: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78207,10 +74401,10 @@ val_t NEW_ReduceAction501_parser___ReduceAction501___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction502[45] = {
-  {(bigint) 1051 /* 0: Identity */},
+  {(bigint) 1043 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction502 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction502 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1051 /* 3: ReduceAction502 < ReduceAction502: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction502 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1043 /* 3: ReduceAction502 < ReduceAction502: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78270,10 +74464,10 @@ val_t NEW_ReduceAction502_parser___ReduceAction502___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction503[45] = {
-  {(bigint) 1047 /* 0: Identity */},
+  {(bigint) 1039 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction503 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction503 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1047 /* 3: ReduceAction503 < ReduceAction503: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction503 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1039 /* 3: ReduceAction503 < ReduceAction503: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78333,10 +74527,10 @@ val_t NEW_ReduceAction503_parser___ReduceAction503___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction504[45] = {
-  {(bigint) 1043 /* 0: Identity */},
+  {(bigint) 1035 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction504 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction504 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1043 /* 3: ReduceAction504 < ReduceAction504: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction504 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1035 /* 3: ReduceAction504 < ReduceAction504: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78396,10 +74590,10 @@ val_t NEW_ReduceAction504_parser___ReduceAction504___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction505[45] = {
-  {(bigint) 1039 /* 0: Identity */},
+  {(bigint) 1031 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction505 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction505 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1039 /* 3: ReduceAction505 < ReduceAction505: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction505 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1031 /* 3: ReduceAction505 < ReduceAction505: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78459,10 +74653,10 @@ val_t NEW_ReduceAction505_parser___ReduceAction505___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction506[45] = {
-  {(bigint) 1035 /* 0: Identity */},
+  {(bigint) 1027 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction506 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction506 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1035 /* 3: ReduceAction506 < ReduceAction506: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction506 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1027 /* 3: ReduceAction506 < ReduceAction506: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78522,10 +74716,10 @@ val_t NEW_ReduceAction506_parser___ReduceAction506___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction507[45] = {
-  {(bigint) 1031 /* 0: Identity */},
+  {(bigint) 1023 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction507 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction507 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1031 /* 3: ReduceAction507 < ReduceAction507: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction507 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1023 /* 3: ReduceAction507 < ReduceAction507: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78585,10 +74779,10 @@ val_t NEW_ReduceAction507_parser___ReduceAction507___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction508[45] = {
-  {(bigint) 1027 /* 0: Identity */},
+  {(bigint) 1019 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction508 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction508 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1027 /* 3: ReduceAction508 < ReduceAction508: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction508 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1019 /* 3: ReduceAction508 < ReduceAction508: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78648,10 +74842,10 @@ val_t NEW_ReduceAction508_parser___ReduceAction508___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction509[45] = {
-  {(bigint) 1023 /* 0: Identity */},
+  {(bigint) 1015 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction509 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction509 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1023 /* 3: ReduceAction509 < ReduceAction509: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction509 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1015 /* 3: ReduceAction509 < ReduceAction509: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78711,10 +74905,10 @@ val_t NEW_ReduceAction509_parser___ReduceAction509___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction510[45] = {
-  {(bigint) 1015 /* 0: Identity */},
+  {(bigint) 1007 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction510 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction510 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1015 /* 3: ReduceAction510 < ReduceAction510: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction510 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1007 /* 3: ReduceAction510 < ReduceAction510: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78774,10 +74968,10 @@ val_t NEW_ReduceAction510_parser___ReduceAction510___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction511[45] = {
-  {(bigint) 1011 /* 0: Identity */},
+  {(bigint) 1003 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction511 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction511 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1011 /* 3: ReduceAction511 < ReduceAction511: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction511 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 1003 /* 3: ReduceAction511 < ReduceAction511: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78837,10 +75031,10 @@ val_t NEW_ReduceAction511_parser___ReduceAction511___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction512[45] = {
-  {(bigint) 1007 /* 0: Identity */},
+  {(bigint) 999 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction512 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction512 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1007 /* 3: ReduceAction512 < ReduceAction512: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction512 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 999 /* 3: ReduceAction512 < ReduceAction512: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78900,10 +75094,10 @@ val_t NEW_ReduceAction512_parser___ReduceAction512___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction513[45] = {
-  {(bigint) 1003 /* 0: Identity */},
+  {(bigint) 995 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction513 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction513 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 1003 /* 3: ReduceAction513 < ReduceAction513: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction513 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 995 /* 3: ReduceAction513 < ReduceAction513: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -78963,10 +75157,10 @@ val_t NEW_ReduceAction513_parser___ReduceAction513___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction514[45] = {
-  {(bigint) 999 /* 0: Identity */},
+  {(bigint) 991 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction514 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction514 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 999 /* 3: ReduceAction514 < ReduceAction514: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction514 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 991 /* 3: ReduceAction514 < ReduceAction514: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79026,10 +75220,10 @@ val_t NEW_ReduceAction514_parser___ReduceAction514___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction515[45] = {
-  {(bigint) 995 /* 0: Identity */},
+  {(bigint) 987 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction515 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction515 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 995 /* 3: ReduceAction515 < ReduceAction515: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction515 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 987 /* 3: ReduceAction515 < ReduceAction515: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79089,10 +75283,10 @@ val_t NEW_ReduceAction515_parser___ReduceAction515___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction516[45] = {
-  {(bigint) 991 /* 0: Identity */},
+  {(bigint) 983 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction516 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction516 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 991 /* 3: ReduceAction516 < ReduceAction516: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction516 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 983 /* 3: ReduceAction516 < ReduceAction516: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79152,10 +75346,10 @@ val_t NEW_ReduceAction516_parser___ReduceAction516___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction517[45] = {
-  {(bigint) 987 /* 0: Identity */},
+  {(bigint) 979 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction517 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction517 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 987 /* 3: ReduceAction517 < ReduceAction517: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction517 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 979 /* 3: ReduceAction517 < ReduceAction517: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79215,10 +75409,10 @@ val_t NEW_ReduceAction517_parser___ReduceAction517___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction518[45] = {
-  {(bigint) 983 /* 0: Identity */},
+  {(bigint) 975 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction518 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction518 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 983 /* 3: ReduceAction518 < ReduceAction518: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction518 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 975 /* 3: ReduceAction518 < ReduceAction518: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79278,10 +75472,10 @@ val_t NEW_ReduceAction518_parser___ReduceAction518___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction519[45] = {
-  {(bigint) 979 /* 0: Identity */},
+  {(bigint) 971 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction519 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction519 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 979 /* 3: ReduceAction519 < ReduceAction519: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction519 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 971 /* 3: ReduceAction519 < ReduceAction519: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79341,10 +75535,10 @@ val_t NEW_ReduceAction519_parser___ReduceAction519___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction520[45] = {
-  {(bigint) 971 /* 0: Identity */},
+  {(bigint) 963 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction520 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction520 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 971 /* 3: ReduceAction520 < ReduceAction520: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction520 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 963 /* 3: ReduceAction520 < ReduceAction520: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79404,10 +75598,10 @@ val_t NEW_ReduceAction520_parser___ReduceAction520___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction521[45] = {
-  {(bigint) 967 /* 0: Identity */},
+  {(bigint) 959 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction521 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction521 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 967 /* 3: ReduceAction521 < ReduceAction521: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction521 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 959 /* 3: ReduceAction521 < ReduceAction521: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79467,10 +75661,10 @@ val_t NEW_ReduceAction521_parser___ReduceAction521___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction522[45] = {
-  {(bigint) 963 /* 0: Identity */},
+  {(bigint) 955 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction522 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction522 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 963 /* 3: ReduceAction522 < ReduceAction522: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction522 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 955 /* 3: ReduceAction522 < ReduceAction522: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79530,10 +75724,10 @@ val_t NEW_ReduceAction522_parser___ReduceAction522___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction523[45] = {
-  {(bigint) 959 /* 0: Identity */},
+  {(bigint) 951 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction523 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction523 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 959 /* 3: ReduceAction523 < ReduceAction523: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction523 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 951 /* 3: ReduceAction523 < ReduceAction523: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79593,10 +75787,10 @@ val_t NEW_ReduceAction523_parser___ReduceAction523___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction524[45] = {
-  {(bigint) 955 /* 0: Identity */},
+  {(bigint) 947 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction524 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction524 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 955 /* 3: ReduceAction524 < ReduceAction524: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction524 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 947 /* 3: ReduceAction524 < ReduceAction524: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79656,10 +75850,10 @@ val_t NEW_ReduceAction524_parser___ReduceAction524___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction525[45] = {
-  {(bigint) 951 /* 0: Identity */},
+  {(bigint) 943 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction525 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction525 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 951 /* 3: ReduceAction525 < ReduceAction525: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction525 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 943 /* 3: ReduceAction525 < ReduceAction525: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79719,10 +75913,10 @@ val_t NEW_ReduceAction525_parser___ReduceAction525___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction526[45] = {
-  {(bigint) 947 /* 0: Identity */},
+  {(bigint) 939 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction526 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction526 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 947 /* 3: ReduceAction526 < ReduceAction526: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction526 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 939 /* 3: ReduceAction526 < ReduceAction526: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79782,10 +75976,10 @@ val_t NEW_ReduceAction526_parser___ReduceAction526___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction527[45] = {
-  {(bigint) 943 /* 0: Identity */},
+  {(bigint) 935 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction527 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction527 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 943 /* 3: ReduceAction527 < ReduceAction527: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction527 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 935 /* 3: ReduceAction527 < ReduceAction527: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79845,10 +76039,10 @@ val_t NEW_ReduceAction527_parser___ReduceAction527___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction528[45] = {
-  {(bigint) 939 /* 0: Identity */},
+  {(bigint) 931 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction528 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction528 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 939 /* 3: ReduceAction528 < ReduceAction528: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction528 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 931 /* 3: ReduceAction528 < ReduceAction528: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79908,10 +76102,10 @@ val_t NEW_ReduceAction528_parser___ReduceAction528___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction529[45] = {
-  {(bigint) 935 /* 0: Identity */},
+  {(bigint) 927 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction529 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction529 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 935 /* 3: ReduceAction529 < ReduceAction529: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction529 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 927 /* 3: ReduceAction529 < ReduceAction529: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -79971,10 +76165,10 @@ val_t NEW_ReduceAction529_parser___ReduceAction529___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction530[45] = {
-  {(bigint) 927 /* 0: Identity */},
+  {(bigint) 919 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction530 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction530 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 927 /* 3: ReduceAction530 < ReduceAction530: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction530 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 919 /* 3: ReduceAction530 < ReduceAction530: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80034,10 +76228,10 @@ val_t NEW_ReduceAction530_parser___ReduceAction530___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction531[45] = {
-  {(bigint) 923 /* 0: Identity */},
+  {(bigint) 915 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction531 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction531 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 923 /* 3: ReduceAction531 < ReduceAction531: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction531 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 915 /* 3: ReduceAction531 < ReduceAction531: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80097,10 +76291,10 @@ val_t NEW_ReduceAction531_parser___ReduceAction531___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction532[45] = {
-  {(bigint) 919 /* 0: Identity */},
+  {(bigint) 911 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction532 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction532 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 919 /* 3: ReduceAction532 < ReduceAction532: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction532 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 911 /* 3: ReduceAction532 < ReduceAction532: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80160,10 +76354,10 @@ val_t NEW_ReduceAction532_parser___ReduceAction532___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction533[45] = {
-  {(bigint) 915 /* 0: Identity */},
+  {(bigint) 907 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction533 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction533 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 915 /* 3: ReduceAction533 < ReduceAction533: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction533 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 907 /* 3: ReduceAction533 < ReduceAction533: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80223,10 +76417,10 @@ val_t NEW_ReduceAction533_parser___ReduceAction533___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction534[45] = {
-  {(bigint) 911 /* 0: Identity */},
+  {(bigint) 903 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction534 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction534 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 911 /* 3: ReduceAction534 < ReduceAction534: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction534 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 903 /* 3: ReduceAction534 < ReduceAction534: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80286,10 +76480,10 @@ val_t NEW_ReduceAction534_parser___ReduceAction534___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction535[45] = {
-  {(bigint) 907 /* 0: Identity */},
+  {(bigint) 899 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction535 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction535 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 907 /* 3: ReduceAction535 < ReduceAction535: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction535 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 899 /* 3: ReduceAction535 < ReduceAction535: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80349,10 +76543,10 @@ val_t NEW_ReduceAction535_parser___ReduceAction535___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction536[45] = {
-  {(bigint) 903 /* 0: Identity */},
+  {(bigint) 895 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction536 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction536 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 903 /* 3: ReduceAction536 < ReduceAction536: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction536 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 895 /* 3: ReduceAction536 < ReduceAction536: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80412,10 +76606,10 @@ val_t NEW_ReduceAction536_parser___ReduceAction536___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction537[45] = {
-  {(bigint) 899 /* 0: Identity */},
+  {(bigint) 891 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction537 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction537 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 899 /* 3: ReduceAction537 < ReduceAction537: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction537 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 891 /* 3: ReduceAction537 < ReduceAction537: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80475,10 +76669,10 @@ val_t NEW_ReduceAction537_parser___ReduceAction537___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction538[45] = {
-  {(bigint) 895 /* 0: Identity */},
+  {(bigint) 887 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction538 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction538 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 895 /* 3: ReduceAction538 < ReduceAction538: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction538 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 887 /* 3: ReduceAction538 < ReduceAction538: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80538,10 +76732,10 @@ val_t NEW_ReduceAction538_parser___ReduceAction538___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction539[45] = {
-  {(bigint) 891 /* 0: Identity */},
+  {(bigint) 883 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction539 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction539 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 891 /* 3: ReduceAction539 < ReduceAction539: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction539 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 883 /* 3: ReduceAction539 < ReduceAction539: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80601,10 +76795,10 @@ val_t NEW_ReduceAction539_parser___ReduceAction539___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction540[45] = {
-  {(bigint) 883 /* 0: Identity */},
+  {(bigint) 875 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction540 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction540 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 883 /* 3: ReduceAction540 < ReduceAction540: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction540 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 875 /* 3: ReduceAction540 < ReduceAction540: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80664,10 +76858,10 @@ val_t NEW_ReduceAction540_parser___ReduceAction540___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction541[45] = {
-  {(bigint) 879 /* 0: Identity */},
+  {(bigint) 871 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction541 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction541 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 879 /* 3: ReduceAction541 < ReduceAction541: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction541 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 871 /* 3: ReduceAction541 < ReduceAction541: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80727,10 +76921,10 @@ val_t NEW_ReduceAction541_parser___ReduceAction541___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction542[45] = {
-  {(bigint) 875 /* 0: Identity */},
+  {(bigint) 867 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction542 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction542 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 875 /* 3: ReduceAction542 < ReduceAction542: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction542 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 867 /* 3: ReduceAction542 < ReduceAction542: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80790,10 +76984,10 @@ val_t NEW_ReduceAction542_parser___ReduceAction542___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction543[45] = {
-  {(bigint) 871 /* 0: Identity */},
+  {(bigint) 863 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction543 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction543 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 871 /* 3: ReduceAction543 < ReduceAction543: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction543 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 863 /* 3: ReduceAction543 < ReduceAction543: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80853,10 +77047,10 @@ val_t NEW_ReduceAction543_parser___ReduceAction543___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction544[45] = {
-  {(bigint) 867 /* 0: Identity */},
+  {(bigint) 859 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction544 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction544 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 867 /* 3: ReduceAction544 < ReduceAction544: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction544 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 859 /* 3: ReduceAction544 < ReduceAction544: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80916,10 +77110,10 @@ val_t NEW_ReduceAction544_parser___ReduceAction544___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction545[45] = {
-  {(bigint) 863 /* 0: Identity */},
+  {(bigint) 855 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction545 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction545 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 863 /* 3: ReduceAction545 < ReduceAction545: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction545 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 855 /* 3: ReduceAction545 < ReduceAction545: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -80979,10 +77173,10 @@ val_t NEW_ReduceAction545_parser___ReduceAction545___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction546[45] = {
-  {(bigint) 859 /* 0: Identity */},
+  {(bigint) 851 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction546 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction546 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 859 /* 3: ReduceAction546 < ReduceAction546: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction546 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 851 /* 3: ReduceAction546 < ReduceAction546: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81042,10 +77236,10 @@ val_t NEW_ReduceAction546_parser___ReduceAction546___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction547[45] = {
-  {(bigint) 855 /* 0: Identity */},
+  {(bigint) 847 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction547 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction547 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 855 /* 3: ReduceAction547 < ReduceAction547: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction547 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 847 /* 3: ReduceAction547 < ReduceAction547: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81105,10 +77299,10 @@ val_t NEW_ReduceAction547_parser___ReduceAction547___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction548[45] = {
-  {(bigint) 851 /* 0: Identity */},
+  {(bigint) 843 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction548 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction548 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 851 /* 3: ReduceAction548 < ReduceAction548: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction548 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 843 /* 3: ReduceAction548 < ReduceAction548: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81168,10 +77362,10 @@ val_t NEW_ReduceAction548_parser___ReduceAction548___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction549[45] = {
-  {(bigint) 847 /* 0: Identity */},
+  {(bigint) 839 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction549 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction549 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 847 /* 3: ReduceAction549 < ReduceAction549: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction549 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 839 /* 3: ReduceAction549 < ReduceAction549: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81231,10 +77425,10 @@ val_t NEW_ReduceAction549_parser___ReduceAction549___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction550[45] = {
-  {(bigint) 839 /* 0: Identity */},
+  {(bigint) 831 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction550 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction550 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 839 /* 3: ReduceAction550 < ReduceAction550: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction550 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 831 /* 3: ReduceAction550 < ReduceAction550: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81294,10 +77488,10 @@ val_t NEW_ReduceAction550_parser___ReduceAction550___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction551[45] = {
-  {(bigint) 835 /* 0: Identity */},
+  {(bigint) 827 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction551 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction551 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 835 /* 3: ReduceAction551 < ReduceAction551: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction551 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 827 /* 3: ReduceAction551 < ReduceAction551: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81357,10 +77551,10 @@ val_t NEW_ReduceAction551_parser___ReduceAction551___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction552[45] = {
-  {(bigint) 831 /* 0: Identity */},
+  {(bigint) 823 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction552 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction552 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 831 /* 3: ReduceAction552 < ReduceAction552: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction552 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 823 /* 3: ReduceAction552 < ReduceAction552: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81420,10 +77614,10 @@ val_t NEW_ReduceAction552_parser___ReduceAction552___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction553[45] = {
-  {(bigint) 827 /* 0: Identity */},
+  {(bigint) 819 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction553 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction553 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 827 /* 3: ReduceAction553 < ReduceAction553: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction553 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 819 /* 3: ReduceAction553 < ReduceAction553: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81483,10 +77677,10 @@ val_t NEW_ReduceAction553_parser___ReduceAction553___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction554[45] = {
-  {(bigint) 823 /* 0: Identity */},
+  {(bigint) 815 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction554 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction554 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 823 /* 3: ReduceAction554 < ReduceAction554: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction554 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 815 /* 3: ReduceAction554 < ReduceAction554: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81546,10 +77740,10 @@ val_t NEW_ReduceAction554_parser___ReduceAction554___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction555[45] = {
-  {(bigint) 819 /* 0: Identity */},
+  {(bigint) 811 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction555 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction555 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 819 /* 3: ReduceAction555 < ReduceAction555: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction555 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 811 /* 3: ReduceAction555 < ReduceAction555: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81609,10 +77803,10 @@ val_t NEW_ReduceAction555_parser___ReduceAction555___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction556[45] = {
-  {(bigint) 815 /* 0: Identity */},
+  {(bigint) 807 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction556 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction556 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 815 /* 3: ReduceAction556 < ReduceAction556: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction556 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 807 /* 3: ReduceAction556 < ReduceAction556: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81672,10 +77866,10 @@ val_t NEW_ReduceAction556_parser___ReduceAction556___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction557[45] = {
-  {(bigint) 811 /* 0: Identity */},
+  {(bigint) 803 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction557 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction557 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 811 /* 3: ReduceAction557 < ReduceAction557: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction557 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 803 /* 3: ReduceAction557 < ReduceAction557: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81735,10 +77929,10 @@ val_t NEW_ReduceAction557_parser___ReduceAction557___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction558[45] = {
-  {(bigint) 807 /* 0: Identity */},
+  {(bigint) 799 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction558 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction558 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 807 /* 3: ReduceAction558 < ReduceAction558: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction558 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 799 /* 3: ReduceAction558 < ReduceAction558: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81798,10 +77992,10 @@ val_t NEW_ReduceAction558_parser___ReduceAction558___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction559[45] = {
-  {(bigint) 803 /* 0: Identity */},
+  {(bigint) 795 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction559 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction559 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 803 /* 3: ReduceAction559 < ReduceAction559: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction559 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 795 /* 3: ReduceAction559 < ReduceAction559: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81861,10 +78055,10 @@ val_t NEW_ReduceAction559_parser___ReduceAction559___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction560[45] = {
-  {(bigint) 795 /* 0: Identity */},
+  {(bigint) 787 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction560 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction560 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 795 /* 3: ReduceAction560 < ReduceAction560: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction560 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 787 /* 3: ReduceAction560 < ReduceAction560: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81924,10 +78118,10 @@ val_t NEW_ReduceAction560_parser___ReduceAction560___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction561[45] = {
-  {(bigint) 791 /* 0: Identity */},
+  {(bigint) 783 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction561 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction561 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 791 /* 3: ReduceAction561 < ReduceAction561: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction561 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 783 /* 3: ReduceAction561 < ReduceAction561: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -81987,10 +78181,10 @@ val_t NEW_ReduceAction561_parser___ReduceAction561___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction562[45] = {
-  {(bigint) 787 /* 0: Identity */},
+  {(bigint) 779 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction562 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction562 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 787 /* 3: ReduceAction562 < ReduceAction562: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction562 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 779 /* 3: ReduceAction562 < ReduceAction562: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82050,10 +78244,10 @@ val_t NEW_ReduceAction562_parser___ReduceAction562___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction563[45] = {
-  {(bigint) 783 /* 0: Identity */},
+  {(bigint) 775 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction563 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction563 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 783 /* 3: ReduceAction563 < ReduceAction563: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction563 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 775 /* 3: ReduceAction563 < ReduceAction563: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82113,10 +78307,10 @@ val_t NEW_ReduceAction563_parser___ReduceAction563___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction564[45] = {
-  {(bigint) 779 /* 0: Identity */},
+  {(bigint) 771 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction564 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction564 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 779 /* 3: ReduceAction564 < ReduceAction564: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction564 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 771 /* 3: ReduceAction564 < ReduceAction564: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82176,10 +78370,10 @@ val_t NEW_ReduceAction564_parser___ReduceAction564___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction565[45] = {
-  {(bigint) 775 /* 0: Identity */},
+  {(bigint) 767 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction565 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction565 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 775 /* 3: ReduceAction565 < ReduceAction565: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction565 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 767 /* 3: ReduceAction565 < ReduceAction565: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82239,10 +78433,10 @@ val_t NEW_ReduceAction565_parser___ReduceAction565___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction566[45] = {
-  {(bigint) 771 /* 0: Identity */},
+  {(bigint) 763 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction566 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction566 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 771 /* 3: ReduceAction566 < ReduceAction566: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction566 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 763 /* 3: ReduceAction566 < ReduceAction566: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82302,10 +78496,10 @@ val_t NEW_ReduceAction566_parser___ReduceAction566___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction567[45] = {
-  {(bigint) 767 /* 0: Identity */},
+  {(bigint) 759 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction567 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction567 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 767 /* 3: ReduceAction567 < ReduceAction567: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction567 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 759 /* 3: ReduceAction567 < ReduceAction567: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82365,10 +78559,10 @@ val_t NEW_ReduceAction567_parser___ReduceAction567___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction568[45] = {
-  {(bigint) 763 /* 0: Identity */},
+  {(bigint) 755 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction568 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction568 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 763 /* 3: ReduceAction568 < ReduceAction568: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction568 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 755 /* 3: ReduceAction568 < ReduceAction568: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82428,10 +78622,10 @@ val_t NEW_ReduceAction568_parser___ReduceAction568___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction569[45] = {
-  {(bigint) 759 /* 0: Identity */},
+  {(bigint) 751 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction569 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction569 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 759 /* 3: ReduceAction569 < ReduceAction569: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction569 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 751 /* 3: ReduceAction569 < ReduceAction569: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82491,10 +78685,10 @@ val_t NEW_ReduceAction569_parser___ReduceAction569___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction570[45] = {
-  {(bigint) 751 /* 0: Identity */},
+  {(bigint) 743 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction570 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction570 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 751 /* 3: ReduceAction570 < ReduceAction570: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction570 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 743 /* 3: ReduceAction570 < ReduceAction570: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82554,10 +78748,10 @@ val_t NEW_ReduceAction570_parser___ReduceAction570___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction571[45] = {
-  {(bigint) 747 /* 0: Identity */},
+  {(bigint) 739 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction571 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction571 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 747 /* 3: ReduceAction571 < ReduceAction571: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction571 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 739 /* 3: ReduceAction571 < ReduceAction571: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82617,10 +78811,10 @@ val_t NEW_ReduceAction571_parser___ReduceAction571___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction572[45] = {
-  {(bigint) 743 /* 0: Identity */},
+  {(bigint) 735 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction572 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction572 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 743 /* 3: ReduceAction572 < ReduceAction572: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction572 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 735 /* 3: ReduceAction572 < ReduceAction572: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82680,10 +78874,10 @@ val_t NEW_ReduceAction572_parser___ReduceAction572___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction573[45] = {
-  {(bigint) 739 /* 0: Identity */},
+  {(bigint) 731 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction573 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction573 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 739 /* 3: ReduceAction573 < ReduceAction573: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction573 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 731 /* 3: ReduceAction573 < ReduceAction573: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82743,10 +78937,10 @@ val_t NEW_ReduceAction573_parser___ReduceAction573___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction574[45] = {
-  {(bigint) 735 /* 0: Identity */},
+  {(bigint) 727 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction574 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction574 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 735 /* 3: ReduceAction574 < ReduceAction574: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction574 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 727 /* 3: ReduceAction574 < ReduceAction574: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82806,10 +79000,10 @@ val_t NEW_ReduceAction574_parser___ReduceAction574___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction575[45] = {
-  {(bigint) 731 /* 0: Identity */},
+  {(bigint) 723 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction575 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction575 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 731 /* 3: ReduceAction575 < ReduceAction575: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction575 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 723 /* 3: ReduceAction575 < ReduceAction575: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82869,10 +79063,10 @@ val_t NEW_ReduceAction575_parser___ReduceAction575___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction576[45] = {
-  {(bigint) 727 /* 0: Identity */},
+  {(bigint) 719 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction576 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction576 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 727 /* 3: ReduceAction576 < ReduceAction576: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction576 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 719 /* 3: ReduceAction576 < ReduceAction576: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82932,10 +79126,10 @@ val_t NEW_ReduceAction576_parser___ReduceAction576___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction577[45] = {
-  {(bigint) 723 /* 0: Identity */},
+  {(bigint) 715 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction577 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction577 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 723 /* 3: ReduceAction577 < ReduceAction577: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction577 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 715 /* 3: ReduceAction577 < ReduceAction577: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -82995,10 +79189,10 @@ val_t NEW_ReduceAction577_parser___ReduceAction577___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction578[45] = {
-  {(bigint) 719 /* 0: Identity */},
+  {(bigint) 711 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction578 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction578 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 719 /* 3: ReduceAction578 < ReduceAction578: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction578 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 711 /* 3: ReduceAction578 < ReduceAction578: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83058,10 +79252,10 @@ val_t NEW_ReduceAction578_parser___ReduceAction578___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction579[45] = {
-  {(bigint) 715 /* 0: Identity */},
+  {(bigint) 707 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction579 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction579 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 715 /* 3: ReduceAction579 < ReduceAction579: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction579 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 707 /* 3: ReduceAction579 < ReduceAction579: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83121,10 +79315,10 @@ val_t NEW_ReduceAction579_parser___ReduceAction579___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction580[45] = {
-  {(bigint) 707 /* 0: Identity */},
+  {(bigint) 699 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction580 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction580 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 707 /* 3: ReduceAction580 < ReduceAction580: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction580 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 699 /* 3: ReduceAction580 < ReduceAction580: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83184,10 +79378,10 @@ val_t NEW_ReduceAction580_parser___ReduceAction580___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction581[45] = {
-  {(bigint) 703 /* 0: Identity */},
+  {(bigint) 695 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction581 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction581 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 703 /* 3: ReduceAction581 < ReduceAction581: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction581 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 695 /* 3: ReduceAction581 < ReduceAction581: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83247,10 +79441,10 @@ val_t NEW_ReduceAction581_parser___ReduceAction581___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction582[45] = {
-  {(bigint) 699 /* 0: Identity */},
+  {(bigint) 691 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction582 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction582 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 699 /* 3: ReduceAction582 < ReduceAction582: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction582 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 691 /* 3: ReduceAction582 < ReduceAction582: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83310,10 +79504,10 @@ val_t NEW_ReduceAction582_parser___ReduceAction582___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction583[45] = {
-  {(bigint) 695 /* 0: Identity */},
+  {(bigint) 687 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction583 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction583 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 695 /* 3: ReduceAction583 < ReduceAction583: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction583 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 687 /* 3: ReduceAction583 < ReduceAction583: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83373,10 +79567,10 @@ val_t NEW_ReduceAction583_parser___ReduceAction583___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction584[45] = {
-  {(bigint) 691 /* 0: Identity */},
+  {(bigint) 683 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction584 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction584 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 691 /* 3: ReduceAction584 < ReduceAction584: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction584 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 683 /* 3: ReduceAction584 < ReduceAction584: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83436,10 +79630,10 @@ val_t NEW_ReduceAction584_parser___ReduceAction584___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction585[45] = {
-  {(bigint) 687 /* 0: Identity */},
+  {(bigint) 679 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction585 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction585 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 687 /* 3: ReduceAction585 < ReduceAction585: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction585 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 679 /* 3: ReduceAction585 < ReduceAction585: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83499,10 +79693,10 @@ val_t NEW_ReduceAction585_parser___ReduceAction585___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction586[45] = {
-  {(bigint) 683 /* 0: Identity */},
+  {(bigint) 675 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction586 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction586 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 683 /* 3: ReduceAction586 < ReduceAction586: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction586 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 675 /* 3: ReduceAction586 < ReduceAction586: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83562,10 +79756,10 @@ val_t NEW_ReduceAction586_parser___ReduceAction586___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction587[45] = {
-  {(bigint) 679 /* 0: Identity */},
+  {(bigint) 671 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction587 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction587 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 679 /* 3: ReduceAction587 < ReduceAction587: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction587 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 671 /* 3: ReduceAction587 < ReduceAction587: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83625,10 +79819,10 @@ val_t NEW_ReduceAction587_parser___ReduceAction587___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction588[45] = {
-  {(bigint) 675 /* 0: Identity */},
+  {(bigint) 667 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction588 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction588 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 675 /* 3: ReduceAction588 < ReduceAction588: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction588 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 667 /* 3: ReduceAction588 < ReduceAction588: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83688,10 +79882,10 @@ val_t NEW_ReduceAction588_parser___ReduceAction588___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction589[45] = {
-  {(bigint) 671 /* 0: Identity */},
+  {(bigint) 663 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction589 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction589 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 671 /* 3: ReduceAction589 < ReduceAction589: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction589 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 663 /* 3: ReduceAction589 < ReduceAction589: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83751,10 +79945,10 @@ val_t NEW_ReduceAction589_parser___ReduceAction589___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction590[45] = {
-  {(bigint) 663 /* 0: Identity */},
+  {(bigint) 655 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction590 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction590 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 663 /* 3: ReduceAction590 < ReduceAction590: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction590 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 655 /* 3: ReduceAction590 < ReduceAction590: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83814,10 +80008,10 @@ val_t NEW_ReduceAction590_parser___ReduceAction590___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction591[45] = {
-  {(bigint) 659 /* 0: Identity */},
+  {(bigint) 651 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction591 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction591 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 659 /* 3: ReduceAction591 < ReduceAction591: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction591 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 651 /* 3: ReduceAction591 < ReduceAction591: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83877,10 +80071,10 @@ val_t NEW_ReduceAction591_parser___ReduceAction591___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction592[45] = {
-  {(bigint) 655 /* 0: Identity */},
+  {(bigint) 647 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction592 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction592 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 655 /* 3: ReduceAction592 < ReduceAction592: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction592 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 647 /* 3: ReduceAction592 < ReduceAction592: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -83940,10 +80134,10 @@ val_t NEW_ReduceAction592_parser___ReduceAction592___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction593[45] = {
-  {(bigint) 651 /* 0: Identity */},
+  {(bigint) 643 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction593 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction593 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 651 /* 3: ReduceAction593 < ReduceAction593: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction593 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 643 /* 3: ReduceAction593 < ReduceAction593: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84003,10 +80197,10 @@ val_t NEW_ReduceAction593_parser___ReduceAction593___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction594[45] = {
-  {(bigint) 647 /* 0: Identity */},
+  {(bigint) 639 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction594 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction594 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 647 /* 3: ReduceAction594 < ReduceAction594: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction594 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 639 /* 3: ReduceAction594 < ReduceAction594: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84066,10 +80260,10 @@ val_t NEW_ReduceAction594_parser___ReduceAction594___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction595[45] = {
-  {(bigint) 643 /* 0: Identity */},
+  {(bigint) 635 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction595 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction595 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 643 /* 3: ReduceAction595 < ReduceAction595: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction595 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 635 /* 3: ReduceAction595 < ReduceAction595: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84129,10 +80323,10 @@ val_t NEW_ReduceAction595_parser___ReduceAction595___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction596[45] = {
-  {(bigint) 639 /* 0: Identity */},
+  {(bigint) 631 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction596 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction596 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 639 /* 3: ReduceAction596 < ReduceAction596: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction596 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 631 /* 3: ReduceAction596 < ReduceAction596: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84192,10 +80386,10 @@ val_t NEW_ReduceAction596_parser___ReduceAction596___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction597[45] = {
-  {(bigint) 635 /* 0: Identity */},
+  {(bigint) 627 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction597 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction597 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 635 /* 3: ReduceAction597 < ReduceAction597: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction597 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 627 /* 3: ReduceAction597 < ReduceAction597: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84255,10 +80449,10 @@ val_t NEW_ReduceAction597_parser___ReduceAction597___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction598[45] = {
-  {(bigint) 631 /* 0: Identity */},
+  {(bigint) 623 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction598 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction598 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 631 /* 3: ReduceAction598 < ReduceAction598: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction598 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 623 /* 3: ReduceAction598 < ReduceAction598: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84318,10 +80512,10 @@ val_t NEW_ReduceAction598_parser___ReduceAction598___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction599[45] = {
-  {(bigint) 627 /* 0: Identity */},
+  {(bigint) 619 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction599 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction599 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 627 /* 3: ReduceAction599 < ReduceAction599: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction599 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 619 /* 3: ReduceAction599 < ReduceAction599: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84381,10 +80575,10 @@ val_t NEW_ReduceAction599_parser___ReduceAction599___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction600[45] = {
-  {(bigint) 615 /* 0: Identity */},
+  {(bigint) 607 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction600 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction600 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 615 /* 3: ReduceAction600 < ReduceAction600: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction600 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 607 /* 3: ReduceAction600 < ReduceAction600: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84444,10 +80638,10 @@ val_t NEW_ReduceAction600_parser___ReduceAction600___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction601[45] = {
-  {(bigint) 611 /* 0: Identity */},
+  {(bigint) 603 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction601 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction601 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 611 /* 3: ReduceAction601 < ReduceAction601: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction601 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 603 /* 3: ReduceAction601 < ReduceAction601: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84507,10 +80701,10 @@ val_t NEW_ReduceAction601_parser___ReduceAction601___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction602[45] = {
-  {(bigint) 607 /* 0: Identity */},
+  {(bigint) 599 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction602 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction602 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 607 /* 3: ReduceAction602 < ReduceAction602: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction602 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 599 /* 3: ReduceAction602 < ReduceAction602: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84570,10 +80764,10 @@ val_t NEW_ReduceAction602_parser___ReduceAction602___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction603[45] = {
-  {(bigint) 603 /* 0: Identity */},
+  {(bigint) 595 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction603 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction603 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 603 /* 3: ReduceAction603 < ReduceAction603: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction603 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 595 /* 3: ReduceAction603 < ReduceAction603: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84633,10 +80827,10 @@ val_t NEW_ReduceAction603_parser___ReduceAction603___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction604[45] = {
-  {(bigint) 599 /* 0: Identity */},
+  {(bigint) 591 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction604 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction604 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 599 /* 3: ReduceAction604 < ReduceAction604: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction604 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 591 /* 3: ReduceAction604 < ReduceAction604: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84696,10 +80890,10 @@ val_t NEW_ReduceAction604_parser___ReduceAction604___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction605[45] = {
-  {(bigint) 595 /* 0: Identity */},
+  {(bigint) 587 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction605 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction605 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 595 /* 3: ReduceAction605 < ReduceAction605: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction605 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 587 /* 3: ReduceAction605 < ReduceAction605: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84759,10 +80953,10 @@ val_t NEW_ReduceAction605_parser___ReduceAction605___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction606[45] = {
-  {(bigint) 591 /* 0: Identity */},
+  {(bigint) 583 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction606 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction606 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 591 /* 3: ReduceAction606 < ReduceAction606: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction606 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 583 /* 3: ReduceAction606 < ReduceAction606: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84822,10 +81016,10 @@ val_t NEW_ReduceAction606_parser___ReduceAction606___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction607[45] = {
-  {(bigint) 587 /* 0: Identity */},
+  {(bigint) 579 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction607 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction607 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 587 /* 3: ReduceAction607 < ReduceAction607: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction607 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 579 /* 3: ReduceAction607 < ReduceAction607: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84885,10 +81079,10 @@ val_t NEW_ReduceAction607_parser___ReduceAction607___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction608[45] = {
-  {(bigint) 583 /* 0: Identity */},
+  {(bigint) 575 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction608 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction608 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 583 /* 3: ReduceAction608 < ReduceAction608: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction608 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 575 /* 3: ReduceAction608 < ReduceAction608: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -84948,10 +81142,10 @@ val_t NEW_ReduceAction608_parser___ReduceAction608___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction609[45] = {
-  {(bigint) 579 /* 0: Identity */},
+  {(bigint) 571 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction609 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction609 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 579 /* 3: ReduceAction609 < ReduceAction609: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction609 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 571 /* 3: ReduceAction609 < ReduceAction609: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85011,10 +81205,10 @@ val_t NEW_ReduceAction609_parser___ReduceAction609___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction610[45] = {
-  {(bigint) 571 /* 0: Identity */},
+  {(bigint) 563 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction610 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction610 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 571 /* 3: ReduceAction610 < ReduceAction610: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction610 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 563 /* 3: ReduceAction610 < ReduceAction610: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85074,10 +81268,10 @@ val_t NEW_ReduceAction610_parser___ReduceAction610___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction611[45] = {
-  {(bigint) 567 /* 0: Identity */},
+  {(bigint) 559 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction611 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction611 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 567 /* 3: ReduceAction611 < ReduceAction611: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction611 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 559 /* 3: ReduceAction611 < ReduceAction611: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85137,10 +81331,10 @@ val_t NEW_ReduceAction611_parser___ReduceAction611___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction612[45] = {
-  {(bigint) 563 /* 0: Identity */},
+  {(bigint) 555 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction612 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction612 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 563 /* 3: ReduceAction612 < ReduceAction612: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction612 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 555 /* 3: ReduceAction612 < ReduceAction612: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85200,10 +81394,10 @@ val_t NEW_ReduceAction612_parser___ReduceAction612___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction613[45] = {
-  {(bigint) 559 /* 0: Identity */},
+  {(bigint) 551 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction613 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction613 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 559 /* 3: ReduceAction613 < ReduceAction613: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction613 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 551 /* 3: ReduceAction613 < ReduceAction613: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85263,10 +81457,10 @@ val_t NEW_ReduceAction613_parser___ReduceAction613___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction614[45] = {
-  {(bigint) 555 /* 0: Identity */},
+  {(bigint) 547 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction614 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction614 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 555 /* 3: ReduceAction614 < ReduceAction614: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction614 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 547 /* 3: ReduceAction614 < ReduceAction614: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85326,10 +81520,10 @@ val_t NEW_ReduceAction614_parser___ReduceAction614___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction615[45] = {
-  {(bigint) 551 /* 0: Identity */},
+  {(bigint) 543 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction615 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction615 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 551 /* 3: ReduceAction615 < ReduceAction615: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction615 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 543 /* 3: ReduceAction615 < ReduceAction615: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85389,10 +81583,10 @@ val_t NEW_ReduceAction615_parser___ReduceAction615___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction616[45] = {
-  {(bigint) 547 /* 0: Identity */},
+  {(bigint) 539 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction616 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction616 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 547 /* 3: ReduceAction616 < ReduceAction616: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction616 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 539 /* 3: ReduceAction616 < ReduceAction616: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85452,10 +81646,10 @@ val_t NEW_ReduceAction616_parser___ReduceAction616___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction617[45] = {
-  {(bigint) 543 /* 0: Identity */},
+  {(bigint) 535 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction617 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction617 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 543 /* 3: ReduceAction617 < ReduceAction617: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction617 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 535 /* 3: ReduceAction617 < ReduceAction617: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85515,10 +81709,10 @@ val_t NEW_ReduceAction617_parser___ReduceAction617___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction618[45] = {
-  {(bigint) 539 /* 0: Identity */},
+  {(bigint) 531 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction618 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction618 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 539 /* 3: ReduceAction618 < ReduceAction618: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction618 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 531 /* 3: ReduceAction618 < ReduceAction618: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85578,10 +81772,10 @@ val_t NEW_ReduceAction618_parser___ReduceAction618___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction619[45] = {
-  {(bigint) 535 /* 0: Identity */},
+  {(bigint) 527 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction619 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction619 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 535 /* 3: ReduceAction619 < ReduceAction619: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction619 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 527 /* 3: ReduceAction619 < ReduceAction619: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85641,10 +81835,10 @@ val_t NEW_ReduceAction619_parser___ReduceAction619___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction620[45] = {
-  {(bigint) 527 /* 0: Identity */},
+  {(bigint) 519 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction620 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction620 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 527 /* 3: ReduceAction620 < ReduceAction620: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction620 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 519 /* 3: ReduceAction620 < ReduceAction620: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85704,10 +81898,10 @@ val_t NEW_ReduceAction620_parser___ReduceAction620___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction621[45] = {
-  {(bigint) 523 /* 0: Identity */},
+  {(bigint) 515 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction621 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction621 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 523 /* 3: ReduceAction621 < ReduceAction621: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction621 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 515 /* 3: ReduceAction621 < ReduceAction621: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85767,10 +81961,10 @@ val_t NEW_ReduceAction621_parser___ReduceAction621___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction622[45] = {
-  {(bigint) 519 /* 0: Identity */},
+  {(bigint) 511 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction622 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction622 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 519 /* 3: ReduceAction622 < ReduceAction622: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction622 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 511 /* 3: ReduceAction622 < ReduceAction622: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85830,10 +82024,10 @@ val_t NEW_ReduceAction622_parser___ReduceAction622___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction623[45] = {
-  {(bigint) 515 /* 0: Identity */},
+  {(bigint) 507 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction623 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction623 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 515 /* 3: ReduceAction623 < ReduceAction623: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction623 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 507 /* 3: ReduceAction623 < ReduceAction623: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85893,10 +82087,10 @@ val_t NEW_ReduceAction623_parser___ReduceAction623___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction624[45] = {
-  {(bigint) 511 /* 0: Identity */},
+  {(bigint) 503 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction624 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction624 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 511 /* 3: ReduceAction624 < ReduceAction624: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction624 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 503 /* 3: ReduceAction624 < ReduceAction624: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -85956,10 +82150,10 @@ val_t NEW_ReduceAction624_parser___ReduceAction624___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction625[45] = {
-  {(bigint) 507 /* 0: Identity */},
+  {(bigint) 499 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction625 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction625 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 507 /* 3: ReduceAction625 < ReduceAction625: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction625 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 499 /* 3: ReduceAction625 < ReduceAction625: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86019,10 +82213,10 @@ val_t NEW_ReduceAction625_parser___ReduceAction625___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction626[45] = {
-  {(bigint) 503 /* 0: Identity */},
+  {(bigint) 495 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction626 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction626 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 503 /* 3: ReduceAction626 < ReduceAction626: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction626 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 495 /* 3: ReduceAction626 < ReduceAction626: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86082,10 +82276,10 @@ val_t NEW_ReduceAction626_parser___ReduceAction626___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction627[45] = {
-  {(bigint) 499 /* 0: Identity */},
+  {(bigint) 491 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction627 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction627 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 499 /* 3: ReduceAction627 < ReduceAction627: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction627 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 491 /* 3: ReduceAction627 < ReduceAction627: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86145,10 +82339,10 @@ val_t NEW_ReduceAction627_parser___ReduceAction627___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction628[45] = {
-  {(bigint) 495 /* 0: Identity */},
+  {(bigint) 487 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction628 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction628 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 495 /* 3: ReduceAction628 < ReduceAction628: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction628 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 487 /* 3: ReduceAction628 < ReduceAction628: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86208,10 +82402,10 @@ val_t NEW_ReduceAction628_parser___ReduceAction628___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction629[45] = {
-  {(bigint) 491 /* 0: Identity */},
+  {(bigint) 483 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction629 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction629 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 491 /* 3: ReduceAction629 < ReduceAction629: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction629 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 483 /* 3: ReduceAction629 < ReduceAction629: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86271,10 +82465,10 @@ val_t NEW_ReduceAction629_parser___ReduceAction629___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction630[45] = {
-  {(bigint) 483 /* 0: Identity */},
+  {(bigint) 475 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction630 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction630 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 483 /* 3: ReduceAction630 < ReduceAction630: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction630 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 475 /* 3: ReduceAction630 < ReduceAction630: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86334,10 +82528,10 @@ val_t NEW_ReduceAction630_parser___ReduceAction630___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction631[45] = {
-  {(bigint) 479 /* 0: Identity */},
+  {(bigint) 471 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction631 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction631 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 479 /* 3: ReduceAction631 < ReduceAction631: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction631 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 471 /* 3: ReduceAction631 < ReduceAction631: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86397,10 +82591,10 @@ val_t NEW_ReduceAction631_parser___ReduceAction631___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction632[45] = {
-  {(bigint) 475 /* 0: Identity */},
+  {(bigint) 467 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction632 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction632 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 475 /* 3: ReduceAction632 < ReduceAction632: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction632 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 467 /* 3: ReduceAction632 < ReduceAction632: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86460,10 +82654,10 @@ val_t NEW_ReduceAction632_parser___ReduceAction632___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction633[45] = {
-  {(bigint) 471 /* 0: Identity */},
+  {(bigint) 463 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction633 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction633 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 471 /* 3: ReduceAction633 < ReduceAction633: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction633 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 463 /* 3: ReduceAction633 < ReduceAction633: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86523,10 +82717,10 @@ val_t NEW_ReduceAction633_parser___ReduceAction633___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction634[45] = {
-  {(bigint) 467 /* 0: Identity */},
+  {(bigint) 459 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction634 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction634 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 467 /* 3: ReduceAction634 < ReduceAction634: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction634 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 459 /* 3: ReduceAction634 < ReduceAction634: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86586,10 +82780,10 @@ val_t NEW_ReduceAction634_parser___ReduceAction634___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction635[45] = {
-  {(bigint) 463 /* 0: Identity */},
+  {(bigint) 455 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction635 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction635 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 463 /* 3: ReduceAction635 < ReduceAction635: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction635 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 455 /* 3: ReduceAction635 < ReduceAction635: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86649,10 +82843,10 @@ val_t NEW_ReduceAction635_parser___ReduceAction635___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction636[45] = {
-  {(bigint) 459 /* 0: Identity */},
+  {(bigint) 451 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction636 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction636 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 459 /* 3: ReduceAction636 < ReduceAction636: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction636 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 451 /* 3: ReduceAction636 < ReduceAction636: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86712,10 +82906,10 @@ val_t NEW_ReduceAction636_parser___ReduceAction636___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction637[45] = {
-  {(bigint) 455 /* 0: Identity */},
+  {(bigint) 447 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction637 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction637 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 455 /* 3: ReduceAction637 < ReduceAction637: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction637 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 447 /* 3: ReduceAction637 < ReduceAction637: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86775,10 +82969,10 @@ val_t NEW_ReduceAction637_parser___ReduceAction637___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction638[45] = {
-  {(bigint) 451 /* 0: Identity */},
+  {(bigint) 443 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction638 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction638 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 451 /* 3: ReduceAction638 < ReduceAction638: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction638 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 443 /* 3: ReduceAction638 < ReduceAction638: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86838,10 +83032,10 @@ val_t NEW_ReduceAction638_parser___ReduceAction638___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction639[45] = {
-  {(bigint) 447 /* 0: Identity */},
+  {(bigint) 439 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction639 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction639 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 447 /* 3: ReduceAction639 < ReduceAction639: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction639 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 439 /* 3: ReduceAction639 < ReduceAction639: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86901,10 +83095,10 @@ val_t NEW_ReduceAction639_parser___ReduceAction639___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction640[45] = {
-  {(bigint) 439 /* 0: Identity */},
+  {(bigint) 431 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction640 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction640 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 439 /* 3: ReduceAction640 < ReduceAction640: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction640 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 431 /* 3: ReduceAction640 < ReduceAction640: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -86964,10 +83158,10 @@ val_t NEW_ReduceAction640_parser___ReduceAction640___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction641[45] = {
-  {(bigint) 435 /* 0: Identity */},
+  {(bigint) 427 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction641 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction641 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 435 /* 3: ReduceAction641 < ReduceAction641: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction641 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 427 /* 3: ReduceAction641 < ReduceAction641: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87027,10 +83221,10 @@ val_t NEW_ReduceAction641_parser___ReduceAction641___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction642[45] = {
-  {(bigint) 431 /* 0: Identity */},
+  {(bigint) 423 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction642 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction642 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 431 /* 3: ReduceAction642 < ReduceAction642: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction642 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 423 /* 3: ReduceAction642 < ReduceAction642: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87090,10 +83284,10 @@ val_t NEW_ReduceAction642_parser___ReduceAction642___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction643[45] = {
-  {(bigint) 427 /* 0: Identity */},
+  {(bigint) 419 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction643 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction643 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 427 /* 3: ReduceAction643 < ReduceAction643: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction643 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 419 /* 3: ReduceAction643 < ReduceAction643: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87153,10 +83347,10 @@ val_t NEW_ReduceAction643_parser___ReduceAction643___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction644[45] = {
-  {(bigint) 423 /* 0: Identity */},
+  {(bigint) 415 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction644 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction644 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 423 /* 3: ReduceAction644 < ReduceAction644: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction644 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 415 /* 3: ReduceAction644 < ReduceAction644: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87216,10 +83410,10 @@ val_t NEW_ReduceAction644_parser___ReduceAction644___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction645[45] = {
-  {(bigint) 419 /* 0: Identity */},
+  {(bigint) 411 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction645 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction645 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 419 /* 3: ReduceAction645 < ReduceAction645: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction645 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 411 /* 3: ReduceAction645 < ReduceAction645: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87279,10 +83473,10 @@ val_t NEW_ReduceAction645_parser___ReduceAction645___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction646[45] = {
-  {(bigint) 415 /* 0: Identity */},
+  {(bigint) 407 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction646 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction646 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 415 /* 3: ReduceAction646 < ReduceAction646: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction646 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 407 /* 3: ReduceAction646 < ReduceAction646: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87342,10 +83536,10 @@ val_t NEW_ReduceAction646_parser___ReduceAction646___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction647[45] = {
-  {(bigint) 411 /* 0: Identity */},
+  {(bigint) 403 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction647 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction647 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 411 /* 3: ReduceAction647 < ReduceAction647: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction647 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 403 /* 3: ReduceAction647 < ReduceAction647: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87405,10 +83599,10 @@ val_t NEW_ReduceAction647_parser___ReduceAction647___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction648[45] = {
-  {(bigint) 407 /* 0: Identity */},
+  {(bigint) 399 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction648 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction648 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 407 /* 3: ReduceAction648 < ReduceAction648: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction648 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 399 /* 3: ReduceAction648 < ReduceAction648: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87468,10 +83662,10 @@ val_t NEW_ReduceAction648_parser___ReduceAction648___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction649[45] = {
-  {(bigint) 403 /* 0: Identity */},
+  {(bigint) 395 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction649 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction649 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 403 /* 3: ReduceAction649 < ReduceAction649: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction649 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 395 /* 3: ReduceAction649 < ReduceAction649: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87531,10 +83725,10 @@ val_t NEW_ReduceAction649_parser___ReduceAction649___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction650[45] = {
-  {(bigint) 395 /* 0: Identity */},
+  {(bigint) 387 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction650 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction650 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 395 /* 3: ReduceAction650 < ReduceAction650: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction650 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 387 /* 3: ReduceAction650 < ReduceAction650: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87594,10 +83788,10 @@ val_t NEW_ReduceAction650_parser___ReduceAction650___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction651[45] = {
-  {(bigint) 391 /* 0: Identity */},
+  {(bigint) 383 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction651 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction651 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 391 /* 3: ReduceAction651 < ReduceAction651: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction651 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 383 /* 3: ReduceAction651 < ReduceAction651: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87657,10 +83851,10 @@ val_t NEW_ReduceAction651_parser___ReduceAction651___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction652[45] = {
-  {(bigint) 387 /* 0: Identity */},
+  {(bigint) 379 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction652 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction652 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 387 /* 3: ReduceAction652 < ReduceAction652: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction652 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 379 /* 3: ReduceAction652 < ReduceAction652: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87720,10 +83914,10 @@ val_t NEW_ReduceAction652_parser___ReduceAction652___init() {
   return self;
 }
 const classtable_elt_t VFT_ReduceAction653[45] = {
-  {(bigint) 383 /* 0: Identity */},
+  {(bigint) 375 /* 0: Identity */},
   {(bigint) 3 /* 1: ReduceAction653 < Object: superclass typecheck marker */},
-  {(bigint) 43 /* 2: ReduceAction653 < ReduceAction: superclass typecheck marker */},
-  {(bigint) 383 /* 3: ReduceAction653 < ReduceAction653: superclass typecheck marker */},
+  {(bigint) 39 /* 2: ReduceAction653 < ReduceAction: superclass typecheck marker */},
+  {(bigint) 375 /* 3: ReduceAction653 < ReduceAction653: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87783,13 +83977,13 @@ val_t NEW_ReduceAction653_parser___ReduceAction653___init() {
   return self;
 }
 const classtable_elt_t VFT_PartialOrder[82] = {
-  {(bigint) 2859 /* 0: Identity */},
+  {(bigint) 2851 /* 0: Identity */},
   {(bigint) 3 /* 1: PartialOrder < Object: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
-  {(bigint) 175 /* 5: PartialOrder < Collection: superclass typecheck marker */},
-  {(bigint) 2859 /* 6: PartialOrder < PartialOrder: superclass typecheck marker */},
+  {(bigint) 171 /* 5: PartialOrder < Collection: superclass typecheck marker */},
+  {(bigint) 2851 /* 6: PartialOrder < PartialOrder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87886,9 +84080,9 @@ val_t NEW_PartialOrder_partial_order___PartialOrder___init() {
   return self;
 }
 const classtable_elt_t VFT_PartialOrderElement[57] = {
-  {(bigint) 59 /* 0: Identity */},
+  {(bigint) 55 /* 0: Identity */},
   {(bigint) 3 /* 1: PartialOrderElement < Object: superclass typecheck marker */},
-  {(bigint) 59 /* 2: PartialOrderElement < PartialOrderElement: superclass typecheck marker */},
+  {(bigint) 55 /* 2: PartialOrderElement < PartialOrderElement: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -87974,9 +84168,9 @@ val_t NEW_PartialOrderElement_partial_order___PartialOrderElement___init(val_t p
   return self;
 }
 const classtable_elt_t VFT_MMContext[48] = {
-  {(bigint) 127 /* 0: Identity */},
+  {(bigint) 123 /* 0: Identity */},
   {(bigint) 3 /* 1: MMContext < Object: superclass typecheck marker */},
-  {(bigint) 127 /* 2: MMContext < MMContext: superclass typecheck marker */},
+  {(bigint) 123 /* 2: MMContext < MMContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88052,9 +84246,9 @@ val_t NEW_MMContext_abstractmetamodel___MMContext___init() {
   return self;
 }
 const classtable_elt_t VFT_MMDirectory[51] = {
-  {(bigint) 123 /* 0: Identity */},
+  {(bigint) 119 /* 0: Identity */},
   {(bigint) 3 /* 1: MMDirectory < Object: superclass typecheck marker */},
-  {(bigint) 123 /* 2: MMDirectory < MMDirectory: superclass typecheck marker */},
+  {(bigint) 119 /* 2: MMDirectory < MMDirectory: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88129,9 +84323,9 @@ val_t NEW_MMDirectory_abstractmetamodel___MMDirectory___init(val_t p0, val_t p1,
   return self;
 }
 const classtable_elt_t VFT_MMModule[70] = {
-  {(bigint) 103 /* 0: Identity */},
+  {(bigint) 99 /* 0: Identity */},
   {(bigint) 3 /* 1: MMModule < Object: superclass typecheck marker */},
-  {(bigint) 103 /* 2: MMModule < MMModule: superclass typecheck marker */},
+  {(bigint) 99 /* 2: MMModule < MMModule: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88256,9 +84450,9 @@ val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_MMGlobalClass[62] = {
-  {(bigint) 119 /* 0: Identity */},
+  {(bigint) 115 /* 0: Identity */},
   {(bigint) 3 /* 1: MMGlobalClass < Object: superclass typecheck marker */},
-  {(bigint) 119 /* 2: MMGlobalClass < MMGlobalClass: superclass typecheck marker */},
+  {(bigint) 115 /* 2: MMGlobalClass < MMGlobalClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88350,9 +84544,9 @@ val_t NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_MMLocalClass[103] = {
-  {(bigint) 111 /* 0: Identity */},
+  {(bigint) 107 /* 0: Identity */},
   {(bigint) 3 /* 1: MMLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 111 /* 2: MMLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 107 /* 2: MMLocalClass < MMLocalClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88497,10 +84691,10 @@ val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p
   abstractmetamodel___MMLocalClass___init(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_MMGlobalProperty[60] = {
-  {(bigint) 115 /* 0: Identity */},
+const classtable_elt_t VFT_MMGlobalProperty[57] = {
+  {(bigint) 111 /* 0: Identity */},
   {(bigint) 3 /* 1: MMGlobalProperty < Object: superclass typecheck marker */},
-  {(bigint) 115 /* 2: MMGlobalProperty < MMGlobalProperty: superclass typecheck marker */},
+  {(bigint) 111 /* 2: MMGlobalProperty < MMGlobalProperty: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88538,14 +84732,11 @@ const classtable_elt_t VFT_MMGlobalProperty[60] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) compiling_global___MMGlobalProperty___pos_of},
-  {(bigint) compiling_global___MMGlobalProperty___pos_of__eq},
   {(bigint) compiling_base___MMGlobalProperty___meth_call},
   {(bigint) compiling_base___MMGlobalProperty___attr_access},
-  {(bigint) compiling_base___MMGlobalProperty___color_id},
   {(bigint) syntax_base___MMGlobalProperty___check_visibility},
   {(bigint) virtualtype___MMGlobalProperty___is_virtual_type},
-  {(bigint) 1 /* 47: MMGlobalProperty < MMGlobalProperty: superclass init_table position */},
+  {(bigint) 1 /* 44: MMGlobalProperty < MMGlobalProperty: superclass init_table position */},
   {(bigint) abstractmetamodel___MMGlobalProperty___intro},
   {(bigint) abstractmetamodel___MMGlobalProperty___local_class},
   {(bigint) abstractmetamodel___MMGlobalProperty___property_hierarchy},
@@ -88560,23 +84751,21 @@ const classtable_elt_t VFT_MMGlobalProperty[60] = {
   {(bigint) abstractmetamodel___MMGlobalProperty___visibility_level__eq},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute MMGlobalProperty::_pos_of */
-/* 2: Attribute MMGlobalProperty::_intro */
-/* 3: Attribute MMGlobalProperty::_property_hierarchy */
-/* 4: Attribute MMGlobalProperty::_is_init */
-/* 5: Attribute MMGlobalProperty::_visibility_level */
+/* 1: Attribute MMGlobalProperty::_intro */
+/* 2: Attribute MMGlobalProperty::_property_hierarchy */
+/* 3: Attribute MMGlobalProperty::_is_init */
+/* 4: Attribute MMGlobalProperty::_visibility_level */
 val_t NEW_MMGlobalProperty(void) {
   val_t variable[2];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 6);
+  obj = alloc(sizeof(val_t) * 5);
   obj->vft = (classtable_elt_t*)VFT_MMGlobalProperty;
   variable[0] = OBJ2VAL(obj);
   variable[1] = NEW_PartialOrder_partial_order___PartialOrder___init(); /*new PartialOrder[MMLocalProperty]*/
   ATTR_abstractmetamodel___MMGlobalProperty____property_hierarchy(obj) = variable[1];
   ATTR_abstractmetamodel___MMGlobalProperty____is_init(obj) = TAG_Bool((int)0);
   ATTR_abstractmetamodel___MMGlobalProperty____visibility_level(obj) =  TAG_Int(1);
-  ATTR_compiling_global___MMGlobalProperty____pos_of(obj) = TAG_Int((bigint)0);
   return OBJ2VAL(obj);
 }
 val_t NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(val_t p0) {
@@ -88586,9 +84775,9 @@ val_t NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(val_t p0)
   return self;
 }
 const classtable_elt_t VFT_MMLocalProperty[62] = {
-  {(bigint) 107 /* 0: Identity */},
+  {(bigint) 103 /* 0: Identity */},
   {(bigint) 3 /* 1: MMLocalProperty < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMLocalProperty < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMLocalProperty < MMLocalProperty: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88628,7 +84817,7 @@ const classtable_elt_t VFT_MMLocalProperty[62] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMLocalProperty___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -88677,10 +84866,10 @@ val_t NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, v
   return self;
 }
 const classtable_elt_t VFT_MMAttribute[64] = {
-  {(bigint) 2947 /* 0: Identity */},
+  {(bigint) 2943 /* 0: Identity */},
   {(bigint) 3 /* 1: MMAttribute < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMAttribute < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2947 /* 3: MMAttribute < MMAttribute: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2943 /* 3: MMAttribute < MMAttribute: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88719,7 +84908,7 @@ const classtable_elt_t VFT_MMAttribute[64] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMLocalProperty___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -88770,10 +84959,10 @@ val_t NEW_MMAttribute_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_MMMethod[67] = {
-  {(bigint) 2931 /* 0: Identity */},
+  {(bigint) 2927 /* 0: Identity */},
   {(bigint) 3 /* 1: MMMethod < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2931 /* 3: MMMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2927 /* 3: MMMethod < MMMethod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -88812,7 +85001,7 @@ const classtable_elt_t VFT_MMMethod[67] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMLocalProperty___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -88866,10 +85055,10 @@ val_t NEW_MMMethod_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1
   return self;
 }
 const classtable_elt_t VFT_MMConcreteClass[104] = {
-  {(bigint) 2943 /* 0: Identity */},
+  {(bigint) 2939 /* 0: Identity */},
   {(bigint) 3 /* 1: MMConcreteClass < Object: superclass typecheck marker */},
-  {(bigint) 111 /* 2: MMConcreteClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2943 /* 3: MMConcreteClass < MMConcreteClass: superclass typecheck marker */},
+  {(bigint) 107 /* 2: MMConcreteClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 2939 /* 3: MMConcreteClass < MMConcreteClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89015,9 +85204,9 @@ val_t NEW_MMConcreteClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_
   return self;
 }
 const classtable_elt_t VFT_MMSignature[56] = {
-  {(bigint) 99 /* 0: Identity */},
+  {(bigint) 95 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSignature < Object: superclass typecheck marker */},
-  {(bigint) 99 /* 2: MMSignature < MMSignature: superclass typecheck marker */},
+  {(bigint) 95 /* 2: MMSignature < MMSignature: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89099,9 +85288,9 @@ val_t NEW_MMSignature_static_type___MMSignature___init(val_t p0, val_t p1, val_t
   return self;
 }
 const classtable_elt_t VFT_MMClosure[47] = {
-  {(bigint) 131 /* 0: Identity */},
+  {(bigint) 127 /* 0: Identity */},
   {(bigint) 3 /* 1: MMClosure < Object: superclass typecheck marker */},
-  {(bigint) 131 /* 2: MMClosure < MMClosure: superclass typecheck marker */},
+  {(bigint) 127 /* 2: MMClosure < MMClosure: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89169,9 +85358,9 @@ val_t NEW_MMClosure_static_type___MMClosure___init(val_t p0, val_t p1, val_t p2)
   return self;
 }
 const classtable_elt_t VFT_MMAncestor[50] = {
-  {(bigint) 135 /* 0: Identity */},
+  {(bigint) 131 /* 0: Identity */},
   {(bigint) 3 /* 1: MMAncestor < Object: superclass typecheck marker */},
-  {(bigint) 135 /* 2: MMAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 131 /* 2: MMAncestor < MMAncestor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89241,9 +85430,9 @@ val_t NEW_MMAncestor_static_type___MMAncestor___init() {
   return self;
 }
 const classtable_elt_t VFT_MMType[58] = {
-  {(bigint) 95 /* 0: Identity */},
+  {(bigint) 91 /* 0: Identity */},
   {(bigint) 3 /* 1: MMType < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMType < MMType: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMType < MMType: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89317,10 +85506,10 @@ val_t NEW_MMType_static_type___MMType___init() {
   return self;
 }
 const classtable_elt_t VFT_MMTypeClass[60] = {
-  {(bigint) 2911 /* 0: Identity */},
+  {(bigint) 2907 /* 0: Identity */},
   {(bigint) 3 /* 1: MMTypeClass < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMTypeClass < MMType: superclass typecheck marker */},
-  {(bigint) 2911 /* 3: MMTypeClass < MMTypeClass: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMTypeClass < MMType: superclass typecheck marker */},
+  {(bigint) 2907 /* 3: MMTypeClass < MMTypeClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89396,11 +85585,11 @@ val_t NEW_MMTypeClass_static_type___MMTypeClass___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_MMTypeSimpleClass[62] = {
-  {(bigint) 3519 /* 0: Identity */},
+  {(bigint) 3531 /* 0: Identity */},
   {(bigint) 3 /* 1: MMTypeSimpleClass < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMTypeSimpleClass < MMType: superclass typecheck marker */},
-  {(bigint) 2911 /* 3: MMTypeSimpleClass < MMTypeClass: superclass typecheck marker */},
-  {(bigint) 3519 /* 4: MMTypeSimpleClass < MMTypeSimpleClass: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMTypeSimpleClass < MMType: superclass typecheck marker */},
+  {(bigint) 2907 /* 3: MMTypeSimpleClass < MMTypeClass: superclass typecheck marker */},
+  {(bigint) 3531 /* 4: MMTypeSimpleClass < MMTypeSimpleClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89477,10 +85666,10 @@ val_t NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_MMTypeNone[60] = {
-  {(bigint) 2903 /* 0: Identity */},
+  {(bigint) 2899 /* 0: Identity */},
   {(bigint) 3 /* 1: MMTypeNone < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMTypeNone < MMType: superclass typecheck marker */},
-  {(bigint) 2903 /* 3: MMTypeNone < MMTypeNone: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMTypeNone < MMType: superclass typecheck marker */},
+  {(bigint) 2899 /* 3: MMTypeNone < MMTypeNone: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89556,10 +85745,10 @@ val_t NEW_MMTypeNone_static_type___MMTypeNone___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_MMImplicitLocalClass[105] = {
-  {(bigint) 2935 /* 0: Identity */},
+  {(bigint) 2931 /* 0: Identity */},
   {(bigint) 3 /* 1: MMImplicitLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 111 /* 2: MMImplicitLocalClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2935 /* 3: MMImplicitLocalClass < MMImplicitLocalClass: superclass typecheck marker */},
+  {(bigint) 107 /* 2: MMImplicitLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 2931 /* 3: MMImplicitLocalClass < MMImplicitLocalClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89706,10 +85895,10 @@ val_t NEW_MMImplicitLocalClass_inheritance___MMImplicitLocalClass___init(val_t p
   return self;
 }
 const classtable_elt_t VFT_MMRefineAncestor[52] = {
-  {(bigint) 2927 /* 0: Identity */},
+  {(bigint) 2923 /* 0: Identity */},
   {(bigint) 3 /* 1: MMRefineAncestor < Object: superclass typecheck marker */},
-  {(bigint) 135 /* 2: MMRefineAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2927 /* 3: MMRefineAncestor < MMRefineAncestor: superclass typecheck marker */},
+  {(bigint) 131 /* 2: MMRefineAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2923 /* 3: MMRefineAncestor < MMRefineAncestor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89781,10 +85970,10 @@ val_t NEW_MMRefineAncestor_inheritance___MMRefineAncestor___init(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_MMSpecAncestor[52] = {
-  {(bigint) 2923 /* 0: Identity */},
+  {(bigint) 2919 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSpecAncestor < Object: superclass typecheck marker */},
-  {(bigint) 135 /* 2: MMSpecAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2923 /* 3: MMSpecAncestor < MMSpecAncestor: superclass typecheck marker */},
+  {(bigint) 131 /* 2: MMSpecAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2919 /* 3: MMSpecAncestor < MMSpecAncestor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89855,10 +86044,10 @@ val_t NEW_MMSpecAncestor_inheritance___MMSpecAncestor___init(val_t p0, val_t p1)
   return self;
 }
 const classtable_elt_t VFT_MMDefaultAncestor[52] = {
-  {(bigint) 2939 /* 0: Identity */},
+  {(bigint) 2935 /* 0: Identity */},
   {(bigint) 3 /* 1: MMDefaultAncestor < Object: superclass typecheck marker */},
-  {(bigint) 135 /* 2: MMDefaultAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2939 /* 3: MMDefaultAncestor < MMDefaultAncestor: superclass typecheck marker */},
+  {(bigint) 131 /* 2: MMDefaultAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2935 /* 3: MMDefaultAncestor < MMDefaultAncestor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -89929,10 +86118,10 @@ val_t NEW_MMDefaultAncestor_inheritance___MMDefaultAncestor___init(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_MMTypeFormal[62] = {
-  {(bigint) 2907 /* 0: Identity */},
+  {(bigint) 2903 /* 0: Identity */},
   {(bigint) 3 /* 1: MMTypeFormal < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMTypeFormal < MMType: superclass typecheck marker */},
-  {(bigint) 2907 /* 3: MMTypeFormal < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMTypeFormal < MMType: superclass typecheck marker */},
+  {(bigint) 2903 /* 3: MMTypeFormal < MMTypeFormal: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90011,11 +86200,11 @@ val_t NEW_MMTypeFormal_type_formal___MMTypeFormal___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_MMTypeGeneric[67] = {
-  {(bigint) 3523 /* 0: Identity */},
+  {(bigint) 3535 /* 0: Identity */},
   {(bigint) 3 /* 1: MMTypeGeneric < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMTypeGeneric < MMType: superclass typecheck marker */},
-  {(bigint) 2911 /* 3: MMTypeGeneric < MMTypeClass: superclass typecheck marker */},
-  {(bigint) 3523 /* 4: MMTypeGeneric < MMTypeGeneric: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMTypeGeneric < MMType: superclass typecheck marker */},
+  {(bigint) 2907 /* 3: MMTypeGeneric < MMTypeClass: superclass typecheck marker */},
+  {(bigint) 3535 /* 4: MMTypeGeneric < MMTypeGeneric: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90098,11 +86287,11 @@ val_t NEW_MMTypeGeneric_genericity___MMTypeGeneric___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_MMTypeFormalParameter[68] = {
-  {(bigint) 3527 /* 0: Identity */},
+  {(bigint) 3539 /* 0: Identity */},
   {(bigint) 3 /* 1: MMTypeFormalParameter < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMTypeFormalParameter < MMType: superclass typecheck marker */},
-  {(bigint) 2907 /* 3: MMTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 3527 /* 4: MMTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMTypeFormalParameter < MMType: superclass typecheck marker */},
+  {(bigint) 2903 /* 3: MMTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 3539 /* 4: MMTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90195,10 +86384,10 @@ val_t NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(val_t
   return self;
 }
 const classtable_elt_t VFT_MMTypeProperty[65] = {
-  {(bigint) 2899 /* 0: Identity */},
+  {(bigint) 2895 /* 0: Identity */},
   {(bigint) 3 /* 1: MMTypeProperty < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMTypeProperty < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2899 /* 3: MMTypeProperty < MMTypeProperty: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMTypeProperty < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2895 /* 3: MMTypeProperty < MMTypeProperty: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90237,7 +86426,7 @@ const classtable_elt_t VFT_MMTypeProperty[65] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMLocalProperty___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -90292,11 +86481,11 @@ val_t NEW_MMTypeProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, va
   return self;
 }
 const classtable_elt_t VFT_MMVirtualType[66] = {
-  {(bigint) 3515 /* 0: Identity */},
+  {(bigint) 3527 /* 0: Identity */},
   {(bigint) 3 /* 1: MMVirtualType < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMVirtualType < MMType: superclass typecheck marker */},
-  {(bigint) 2907 /* 3: MMVirtualType < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 3515 /* 4: MMVirtualType < MMVirtualType: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMVirtualType < MMType: superclass typecheck marker */},
+  {(bigint) 2903 /* 3: MMVirtualType < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 3527 /* 4: MMVirtualType < MMVirtualType: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90380,9 +86569,9 @@ val_t NEW_MMVirtualType_virtualtype___MMVirtualType___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_Option[56] = {
-  {(bigint) 75 /* 0: Identity */},
+  {(bigint) 71 /* 0: Identity */},
   {(bigint) 3 /* 1: Option < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: Option < Option: superclass typecheck marker */},
+  {(bigint) 71 /* 2: Option < Option: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90461,10 +86650,10 @@ val_t NEW_Option_opts___Option___init_opt(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_OptionText[58] = {
-  {(bigint) 2871 /* 0: Identity */},
+  {(bigint) 2863 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionText < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OptionText < Option: superclass typecheck marker */},
-  {(bigint) 2871 /* 3: OptionText < OptionText: superclass typecheck marker */},
+  {(bigint) 71 /* 2: OptionText < Option: superclass typecheck marker */},
+  {(bigint) 2863 /* 3: OptionText < OptionText: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90544,10 +86733,10 @@ val_t NEW_OptionText_opts___OptionText___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_OptionBool[58] = {
-  {(bigint) 2879 /* 0: Identity */},
+  {(bigint) 2871 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionBool < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OptionBool < Option: superclass typecheck marker */},
-  {(bigint) 2879 /* 3: OptionBool < OptionBool: superclass typecheck marker */},
+  {(bigint) 71 /* 2: OptionBool < Option: superclass typecheck marker */},
+  {(bigint) 2871 /* 3: OptionBool < OptionBool: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90627,10 +86816,10 @@ val_t NEW_OptionBool_opts___OptionBool___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_OptionParameter[59] = {
-  {(bigint) 2875 /* 0: Identity */},
+  {(bigint) 2867 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionParameter < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OptionParameter < Option: superclass typecheck marker */},
-  {(bigint) 2875 /* 3: OptionParameter < OptionParameter: superclass typecheck marker */},
+  {(bigint) 71 /* 2: OptionParameter < Option: superclass typecheck marker */},
+  {(bigint) 2867 /* 3: OptionParameter < OptionParameter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90711,11 +86900,11 @@ val_t NEW_OptionParameter_opts___OptionParameter___init_opt(val_t p0, val_t p1,
   return self;
 }
 const classtable_elt_t VFT_OptionString[61] = {
-  {(bigint) 3487 /* 0: Identity */},
+  {(bigint) 3495 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionString < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OptionString < Option: superclass typecheck marker */},
-  {(bigint) 2875 /* 3: OptionString < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3487 /* 4: OptionString < OptionString: superclass typecheck marker */},
+  {(bigint) 71 /* 2: OptionString < Option: superclass typecheck marker */},
+  {(bigint) 2867 /* 3: OptionString < OptionParameter: superclass typecheck marker */},
+  {(bigint) 3495 /* 4: OptionString < OptionString: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90797,11 +86986,11 @@ val_t NEW_OptionString_opts___OptionString___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_OptionEnum[61] = {
-  {(bigint) 3495 /* 0: Identity */},
+  {(bigint) 3503 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionEnum < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OptionEnum < Option: superclass typecheck marker */},
-  {(bigint) 2875 /* 3: OptionEnum < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3495 /* 4: OptionEnum < OptionEnum: superclass typecheck marker */},
+  {(bigint) 71 /* 2: OptionEnum < Option: superclass typecheck marker */},
+  {(bigint) 2867 /* 3: OptionEnum < OptionParameter: superclass typecheck marker */},
+  {(bigint) 3503 /* 4: OptionEnum < OptionEnum: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90884,11 +87073,11 @@ val_t NEW_OptionEnum_opts___OptionEnum___init(val_t p0, val_t p1, val_t p2, val_
   return self;
 }
 const classtable_elt_t VFT_OptionInt[61] = {
-  {(bigint) 3491 /* 0: Identity */},
+  {(bigint) 3499 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionInt < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OptionInt < Option: superclass typecheck marker */},
-  {(bigint) 2875 /* 3: OptionInt < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3491 /* 4: OptionInt < OptionInt: superclass typecheck marker */},
+  {(bigint) 71 /* 2: OptionInt < Option: superclass typecheck marker */},
+  {(bigint) 2867 /* 3: OptionInt < OptionParameter: superclass typecheck marker */},
+  {(bigint) 3499 /* 4: OptionInt < OptionInt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -90970,11 +87159,11 @@ val_t NEW_OptionInt_opts___OptionInt___init(val_t p0, val_t p1, val_t p2) {
   return self;
 }
 const classtable_elt_t VFT_OptionArray[61] = {
-  {(bigint) 3499 /* 0: Identity */},
+  {(bigint) 3507 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionArray < Object: superclass typecheck marker */},
-  {(bigint) 75 /* 2: OptionArray < Option: superclass typecheck marker */},
-  {(bigint) 2875 /* 3: OptionArray < OptionParameter: superclass typecheck marker */},
-  {(bigint) 3499 /* 4: OptionArray < OptionArray: superclass typecheck marker */},
+  {(bigint) 71 /* 2: OptionArray < Option: superclass typecheck marker */},
+  {(bigint) 2867 /* 3: OptionArray < OptionParameter: superclass typecheck marker */},
+  {(bigint) 3507 /* 4: OptionArray < OptionArray: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91057,9 +87246,9 @@ val_t NEW_OptionArray_opts___OptionArray___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_OptionContext[49] = {
-  {(bigint) 71 /* 0: Identity */},
+  {(bigint) 67 /* 0: Identity */},
   {(bigint) 3 /* 1: OptionContext < Object: superclass typecheck marker */},
-  {(bigint) 71 /* 2: OptionContext < OptionContext: superclass typecheck marker */},
+  {(bigint) 67 /* 2: OptionContext < OptionContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91126,10 +87315,10 @@ val_t NEW_OptionContext_opts___OptionContext___init() {
   opts___OptionContext___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_ToolContext[86] = {
+const classtable_elt_t VFT_ToolContext[84] = {
   {(bigint) 199 /* 0: Identity */},
   {(bigint) 3 /* 1: ToolContext < Object: superclass typecheck marker */},
-  {(bigint) 127 /* 2: ToolContext < MMContext: superclass typecheck marker */},
+  {(bigint) 123 /* 2: ToolContext < MMContext: superclass typecheck marker */},
   {(bigint) 199 /* 3: ToolContext < ToolContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91177,8 +87366,6 @@ const classtable_elt_t VFT_ToolContext[86] = {
   {(bigint) abstractmetamodel___MMContext___add_local_class},
   {(bigint) compiling_base___ToolContext___global},
   {(bigint) compiling_base___ToolContext___global__eq},
-  {(bigint) compiling_base___ToolContext___attr_sim},
-  {(bigint) compiling_base___ToolContext___attr_sim__eq},
   {(bigint) compiling_base___ToolContext___compdir},
   {(bigint) compiling_base___ToolContext___compdir__eq},
   {(bigint) compiling_base___ToolContext___clibdir},
@@ -91193,7 +87380,7 @@ const classtable_elt_t VFT_ToolContext[86] = {
   {(bigint) compiling_base___ToolContext___no_cc__eq},
   {(bigint) compiling_base___ToolContext___ext_prefix},
   {(bigint) compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 2 /* 66: ToolContext < ToolContext: superclass init_table position */},
+  {(bigint) 2 /* 64: ToolContext < ToolContext: superclass init_table position */},
   {(bigint) mmloader___ToolContext___error_count},
   {(bigint) mmloader___ToolContext___warning_count},
   {(bigint) mmloader___ToolContext___error},
@@ -91220,32 +87407,31 @@ const classtable_elt_t VFT_ToolContext[86] = {
 /* 3: Attribute ToolContext::_global_classes */
 /* 4: Attribute ToolContext::_modules */
 /* 5: Attribute ToolContext::_global */
-/* 6: Attribute ToolContext::_attr_sim */
-/* 7: Attribute ToolContext::_compdir */
-/* 8: Attribute ToolContext::_clibdir */
-/* 9: Attribute ToolContext::_bindir */
-/* 10: Attribute ToolContext::_output_file */
-/* 11: Attribute ToolContext::_boost */
-/* 12: Attribute ToolContext::_no_cc */
-/* 13: Attribute ToolContext::_ext_prefix */
-/* 14: Attribute ToolContext::_error_count */
-/* 15: Attribute ToolContext::_warning_count */
-/* 16: Attribute ToolContext::_paths */
-/* 17: Attribute ToolContext::_loaders */
-/* 18: Attribute ToolContext::_option_context */
-/* 19: Attribute ToolContext::_opt_warn */
-/* 20: Attribute ToolContext::_opt_path */
-/* 21: Attribute ToolContext::_opt_log */
-/* 22: Attribute ToolContext::_opt_only_metamodel */
-/* 23: Attribute ToolContext::_opt_only_parse */
-/* 24: Attribute ToolContext::_opt_help */
-/* 25: Attribute ToolContext::_processing_modules */
-/* 26: Attribute ToolContext::_path_dirs */
+/* 6: Attribute ToolContext::_compdir */
+/* 7: Attribute ToolContext::_clibdir */
+/* 8: Attribute ToolContext::_bindir */
+/* 9: Attribute ToolContext::_output_file */
+/* 10: Attribute ToolContext::_boost */
+/* 11: Attribute ToolContext::_no_cc */
+/* 12: Attribute ToolContext::_ext_prefix */
+/* 13: Attribute ToolContext::_error_count */
+/* 14: Attribute ToolContext::_warning_count */
+/* 15: Attribute ToolContext::_paths */
+/* 16: Attribute ToolContext::_loaders */
+/* 17: Attribute ToolContext::_option_context */
+/* 18: Attribute ToolContext::_opt_warn */
+/* 19: Attribute ToolContext::_opt_path */
+/* 20: Attribute ToolContext::_opt_log */
+/* 21: Attribute ToolContext::_opt_only_metamodel */
+/* 22: Attribute ToolContext::_opt_only_parse */
+/* 23: Attribute ToolContext::_opt_help */
+/* 24: Attribute ToolContext::_processing_modules */
+/* 25: Attribute ToolContext::_path_dirs */
 val_t NEW_ToolContext(void) {
   val_t variable[27];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 27);
+  obj = alloc(sizeof(val_t) * 26);
   obj->vft = (classtable_elt_t*)VFT_ToolContext;
   variable[0] = OBJ2VAL(obj);
   variable[1] = NEW_PartialOrder_partial_order___PartialOrder___init(); /*new PartialOrder[MMModule]*/
@@ -91265,45 +87451,45 @@ val_t NEW_ToolContext(void) {
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
   variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[10]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[9] = NEW_OptionBool_opts___OptionBool___init(variable[7], variable[8]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_warn(obj) = variable[9];
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
   variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[12]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[13]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
   variable[12] = NEW_OptionArray_opts___OptionArray___init(variable[10], variable[11]); /*new OptionArray*/
   ATTR_mmloader___ToolContext____opt_path(obj) = variable[12];
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
   variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[15]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
   variable[15] = NEW_OptionBool_opts___OptionBool___init(variable[13], variable[14]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_log(obj) = variable[15];
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
   variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17], variable[18]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/;
   variable[18] = NEW_OptionBool_opts___OptionBool___init(variable[16], variable[17]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable[18];
   variable[19] = NEW_String_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
   variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20], variable[21]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
   variable[21] = NEW_OptionBool_opts___OptionBool___init(variable[19], variable[20]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable[21];
   variable[22] = NEW_String_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
   variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[24] = NEW_String_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[24]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
   variable[25] = NEW_String_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[25]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
   variable[26] = NEW_String_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[26]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[26]) /*AbstractArray::add*/;
   variable[24] = NEW_OptionBool_opts___OptionBool___init(variable[22], variable[23]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_help(obj) = variable[24];
   variable[25] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[Symbol]*/
@@ -91311,7 +87497,6 @@ val_t NEW_ToolContext(void) {
   variable[26] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[String, MMDirectory]*/
   ATTR_mmloader___ToolContext____path_dirs(obj) = variable[26];
   ATTR_compiling_base___ToolContext____global(obj) =  TAG_Bool(false);
-  ATTR_compiling_base___ToolContext____attr_sim(obj) =  TAG_Bool(false);
   ATTR_compiling_base___ToolContext____boost(obj) =  TAG_Bool(false);
   ATTR_compiling_base___ToolContext____no_cc(obj) =  TAG_Bool(false);
   return OBJ2VAL(obj);
@@ -91323,9 +87508,9 @@ val_t NEW_ToolContext_mmloader___ToolContext___init() {
   return self;
 }
 const classtable_elt_t VFT_ModuleLoader[49] = {
-  {(bigint) 87 /* 0: Identity */},
+  {(bigint) 83 /* 0: Identity */},
   {(bigint) 3 /* 1: ModuleLoader < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: ModuleLoader < ModuleLoader: superclass typecheck marker */},
+  {(bigint) 83 /* 2: ModuleLoader < ModuleLoader: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91390,10 +87575,10 @@ val_t NEW_ModuleLoader_mmloader___ModuleLoader___init() {
   return self;
 }
 const classtable_elt_t VFT_MMSrcModule[93] = {
-  {(bigint) 2915 /* 0: Identity */},
+  {(bigint) 2911 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSrcModule < Object: superclass typecheck marker */},
-  {(bigint) 103 /* 2: MMSrcModule < MMModule: superclass typecheck marker */},
-  {(bigint) 2915 /* 3: MMSrcModule < MMSrcModule: superclass typecheck marker */},
+  {(bigint) 99 /* 2: MMSrcModule < MMModule: superclass typecheck marker */},
+  {(bigint) 2911 /* 3: MMSrcModule < MMSrcModule: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91542,12 +87727,12 @@ val_t NEW_MMSrcModule_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t
   syntax_base___MMSrcModule___init(self, p0, p1, p2, p3, init_table);
   return self;
 }
-const classtable_elt_t VFT_MMSrcLocalClass[117] = {
-  {(bigint) 3539 /* 0: Identity */},
+const classtable_elt_t VFT_MMSrcLocalClass[116] = {
+  {(bigint) 3551 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSrcLocalClass < Object: superclass typecheck marker */},
-  {(bigint) 111 /* 2: MMSrcLocalClass < MMLocalClass: superclass typecheck marker */},
-  {(bigint) 2943 /* 3: MMSrcLocalClass < MMConcreteClass: superclass typecheck marker */},
-  {(bigint) 3539 /* 4: MMSrcLocalClass < MMSrcLocalClass: superclass typecheck marker */},
+  {(bigint) 107 /* 2: MMSrcLocalClass < MMLocalClass: superclass typecheck marker */},
+  {(bigint) 2939 /* 3: MMSrcLocalClass < MMConcreteClass: superclass typecheck marker */},
+  {(bigint) 3551 /* 4: MMSrcLocalClass < MMSrcLocalClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91647,14 +87832,13 @@ const classtable_elt_t VFT_MMSrcLocalClass[117] = {
   {(bigint) compiling_base___MMLocalClass___primitive_info},
   {(bigint) compiling_base___MMLocalClass___primitive_ctypes},
   {(bigint) 2 /* 103: MMSrcLocalClass < MMConcreteClass: superclass init_table position */},
-  {(bigint) compiling_global___MMSrcLocalClass___base_attr_pos},
   {(bigint) compiling_global___MMSrcLocalClass___class_color_pos},
   {(bigint) compiling_global___MMSrcLocalClass___class_layout},
   {(bigint) compiling_global___MMSrcLocalClass___instance_layout},
   {(bigint) compiling_global___MMSrcLocalClass___build_layout_in},
   {(bigint) mmbuilder___MMSrcLocalClass___process_default_constructors},
   {(bigint) mmbuilder___MMSrcLocalClass___add_src_local_property},
-  {(bigint) 3 /* 111: MMSrcLocalClass < MMSrcLocalClass: superclass init_table position */},
+  {(bigint) 3 /* 110: MMSrcLocalClass < MMSrcLocalClass: superclass init_table position */},
   {(bigint) syntax_base___MMSrcLocalClass___nodes},
   {(bigint) syntax_base___MMSrcLocalClass___formal_dict},
   {(bigint) syntax_base___MMSrcLocalClass___formal_dict__eq},
@@ -91680,18 +87864,17 @@ const classtable_elt_t VFT_MMSrcLocalClass[117] = {
 /* 16: Attribute MMSrcLocalClass::_properties_by_name */
 /* 17: Attribute MMSrcLocalClass::_primitive_info_cache */
 /* 18: Attribute MMSrcLocalClass::_primitive_info_b */
-/* 19: Attribute MMSrcLocalClass::_base_attr_pos */
-/* 20: Attribute MMSrcLocalClass::_class_color_pos */
-/* 21: Attribute MMSrcLocalClass::_class_layout */
-/* 22: Attribute MMSrcLocalClass::_instance_layout */
-/* 23: Attribute MMSrcLocalClass::_nodes */
-/* 24: Attribute MMSrcLocalClass::_formal_dict */
-/* 25: Attribute MMSrcLocalClass::_src_local_properties */
+/* 19: Attribute MMSrcLocalClass::_class_color_pos */
+/* 20: Attribute MMSrcLocalClass::_class_layout */
+/* 21: Attribute MMSrcLocalClass::_instance_layout */
+/* 22: Attribute MMSrcLocalClass::_nodes */
+/* 23: Attribute MMSrcLocalClass::_formal_dict */
+/* 24: Attribute MMSrcLocalClass::_src_local_properties */
 val_t NEW_MMSrcLocalClass(void) {
   val_t variable[4];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 26);
+  obj = alloc(sizeof(val_t) * 25);
   obj->vft = (classtable_elt_t*)VFT_MMSrcLocalClass;
   variable[0] = OBJ2VAL(obj);
   ATTR_abstractmetamodel___MMLocalClass____arity(obj) = TAG_Int((bigint)0);
@@ -91712,11 +87895,11 @@ val_t NEW_MMSrcLocalClass_syntax_base___MMSrcLocalClass___init(val_t p0, val_t p
   return self;
 }
 const classtable_elt_t VFT_MMSrcAttribute[66] = {
-  {(bigint) 3543 /* 0: Identity */},
+  {(bigint) 3555 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSrcAttribute < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMSrcAttribute < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2947 /* 3: MMSrcAttribute < MMAttribute: superclass typecheck marker */},
-  {(bigint) 3543 /* 4: MMSrcAttribute < MMSrcAttribute: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMSrcAttribute < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2943 /* 3: MMSrcAttribute < MMAttribute: superclass typecheck marker */},
+  {(bigint) 3555 /* 4: MMSrcAttribute < MMSrcAttribute: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91754,7 +87937,7 @@ const classtable_elt_t VFT_MMSrcAttribute[66] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMSrcAttribute___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -91808,11 +87991,11 @@ val_t NEW_MMSrcAttribute_syntax_base___MMSrcAttribute___init(val_t p0, val_t p1,
   return self;
 }
 const classtable_elt_t VFT_MMSrcMethod[70] = {
-  {(bigint) 3535 /* 0: Identity */},
+  {(bigint) 3547 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSrcMethod < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMSrcMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2931 /* 3: MMSrcMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3535 /* 4: MMSrcMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMSrcMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2927 /* 3: MMSrcMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 3547 /* 4: MMSrcMethod < MMSrcMethod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91850,7 +88033,7 @@ const classtable_elt_t VFT_MMSrcMethod[70] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMLocalProperty___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -91907,12 +88090,12 @@ val_t NEW_MMSrcMethod_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_MMAttrImplementationMethod[72] = {
-  {(bigint) 3663 /* 0: Identity */},
+  {(bigint) 3671 /* 0: Identity */},
   {(bigint) 3 /* 1: MMAttrImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMAttrImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2931 /* 3: MMAttrImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3535 /* 4: MMAttrImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3663 /* 5: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMAttrImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2927 /* 3: MMAttrImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 3547 /* 4: MMAttrImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3671 /* 5: MMAttrImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -91949,7 +88132,7 @@ const classtable_elt_t VFT_MMAttrImplementationMethod[72] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMAttrImplementationMethod___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -92009,13 +88192,13 @@ val_t NEW_MMAttrImplementationMethod_syntax_base___MMAttrImplementationMethod___
   return self;
 }
 const classtable_elt_t VFT_MMReadImplementationMethod[74] = {
-  {(bigint) 3999 /* 0: Identity */},
+  {(bigint) 4007 /* 0: Identity */},
   {(bigint) 3 /* 1: MMReadImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMReadImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2931 /* 3: MMReadImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3535 /* 4: MMReadImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3663 /* 5: MMReadImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
-  {(bigint) 3999 /* 6: MMReadImplementationMethod < MMReadImplementationMethod: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMReadImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2927 /* 3: MMReadImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 3547 /* 4: MMReadImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3671 /* 5: MMReadImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) 4007 /* 6: MMReadImplementationMethod < MMReadImplementationMethod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92051,7 +88234,7 @@ const classtable_elt_t VFT_MMReadImplementationMethod[74] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMAttrImplementationMethod___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -92113,13 +88296,13 @@ val_t NEW_MMReadImplementationMethod_syntax_base___MMReadImplementationMethod___
   return self;
 }
 const classtable_elt_t VFT_MMWriteImplementationMethod[74] = {
-  {(bigint) 3995 /* 0: Identity */},
+  {(bigint) 4003 /* 0: Identity */},
   {(bigint) 3 /* 1: MMWriteImplementationMethod < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMWriteImplementationMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2931 /* 3: MMWriteImplementationMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3535 /* 4: MMWriteImplementationMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3663 /* 5: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
-  {(bigint) 3995 /* 6: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMWriteImplementationMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2927 /* 3: MMWriteImplementationMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 3547 /* 4: MMWriteImplementationMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3671 /* 5: MMWriteImplementationMethod < MMAttrImplementationMethod: superclass typecheck marker */},
+  {(bigint) 4003 /* 6: MMWriteImplementationMethod < MMWriteImplementationMethod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92155,7 +88338,7 @@ const classtable_elt_t VFT_MMWriteImplementationMethod[74] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMAttrImplementationMethod___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -92217,12 +88400,12 @@ val_t NEW_MMWriteImplementationMethod_syntax_base___MMWriteImplementationMethod_
   return self;
 }
 const classtable_elt_t VFT_MMMethSrcMethod[72] = {
-  {(bigint) 3659 /* 0: Identity */},
+  {(bigint) 3667 /* 0: Identity */},
   {(bigint) 3 /* 1: MMMethSrcMethod < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMMethSrcMethod < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2931 /* 3: MMMethSrcMethod < MMMethod: superclass typecheck marker */},
-  {(bigint) 3535 /* 4: MMMethSrcMethod < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3659 /* 5: MMMethSrcMethod < MMMethSrcMethod: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMMethSrcMethod < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2927 /* 3: MMMethSrcMethod < MMMethod: superclass typecheck marker */},
+  {(bigint) 3547 /* 4: MMMethSrcMethod < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3667 /* 5: MMMethSrcMethod < MMMethSrcMethod: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92259,7 +88442,7 @@ const classtable_elt_t VFT_MMMethSrcMethod[72] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMMethSrcMethod___node},
   {(bigint) syntax_base___MMMethSrcMethod___is_init},
@@ -92319,11 +88502,11 @@ val_t NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(val_t p0, val_t p
   return self;
 }
 const classtable_elt_t VFT_MMSrcTypeProperty[67] = {
-  {(bigint) 3531 /* 0: Identity */},
+  {(bigint) 3543 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSrcTypeProperty < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMSrcTypeProperty < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2899 /* 3: MMSrcTypeProperty < MMTypeProperty: superclass typecheck marker */},
-  {(bigint) 3531 /* 4: MMSrcTypeProperty < MMSrcTypeProperty: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMSrcTypeProperty < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2895 /* 3: MMSrcTypeProperty < MMTypeProperty: superclass typecheck marker */},
+  {(bigint) 3543 /* 4: MMSrcTypeProperty < MMSrcTypeProperty: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92361,7 +88544,7 @@ const classtable_elt_t VFT_MMSrcTypeProperty[67] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMLocalProperty___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMLocalProperty___accept_property_visitor},
   {(bigint) syntax_base___MMSrcTypeProperty___node},
   {(bigint) syntax_base___MMLocalProperty___is_init},
@@ -92419,13 +88602,13 @@ val_t NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(val_t p0, val
   return self;
 }
 const classtable_elt_t VFT_MMImplicitInit[77] = {
-  {(bigint) 4003 /* 0: Identity */},
+  {(bigint) 4011 /* 0: Identity */},
   {(bigint) 3 /* 1: MMImplicitInit < Object: superclass typecheck marker */},
-  {(bigint) 107 /* 2: MMImplicitInit < MMLocalProperty: superclass typecheck marker */},
-  {(bigint) 2931 /* 3: MMImplicitInit < MMMethod: superclass typecheck marker */},
-  {(bigint) 3535 /* 4: MMImplicitInit < MMSrcMethod: superclass typecheck marker */},
-  {(bigint) 3659 /* 5: MMImplicitInit < MMMethSrcMethod: superclass typecheck marker */},
-  {(bigint) 4003 /* 6: MMImplicitInit < MMImplicitInit: superclass typecheck marker */},
+  {(bigint) 103 /* 2: MMImplicitInit < MMLocalProperty: superclass typecheck marker */},
+  {(bigint) 2927 /* 3: MMImplicitInit < MMMethod: superclass typecheck marker */},
+  {(bigint) 3547 /* 4: MMImplicitInit < MMSrcMethod: superclass typecheck marker */},
+  {(bigint) 3667 /* 5: MMImplicitInit < MMMethSrcMethod: superclass typecheck marker */},
+  {(bigint) 4011 /* 6: MMImplicitInit < MMImplicitInit: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92461,7 +88644,7 @@ const classtable_elt_t VFT_MMImplicitInit[77] = {
   {(bigint) math___Object___srand},
   {(bigint) compiling_methods___MMSrcMethod___compile_property_to_c},
   {(bigint) compiling_base___MMLocalProperty___cname},
-  {(bigint) compiling_base___MMLocalProperty___color_id_for_super},
+  {(bigint) compiling_base___MMLocalProperty___super_meth_call},
   {(bigint) mmbuilder___MMImplicitInit___accept_property_visitor},
   {(bigint) syntax_base___MMMethSrcMethod___node},
   {(bigint) syntax_base___MMImplicitInit___is_init},
@@ -92670,10 +88853,10 @@ val_t NEW_VarVariable_syntax_base___VarVariable___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ParamVariable[50] = {
-  {(bigint) 2867 /* 0: Identity */},
+  {(bigint) 2859 /* 0: Identity */},
   {(bigint) 3 /* 1: ParamVariable < Object: superclass typecheck marker */},
   {(bigint) 15 /* 2: ParamVariable < Variable: superclass typecheck marker */},
-  {(bigint) 2867 /* 3: ParamVariable < ParamVariable: superclass typecheck marker */},
+  {(bigint) 2859 /* 3: ParamVariable < ParamVariable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92741,10 +88924,10 @@ val_t NEW_ParamVariable_syntax_base___ParamVariable___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_AutoVariable[50] = {
-  {(bigint) 3027 /* 0: Identity */},
+  {(bigint) 3019 /* 0: Identity */},
   {(bigint) 3 /* 1: AutoVariable < Object: superclass typecheck marker */},
   {(bigint) 15 /* 2: AutoVariable < Variable: superclass typecheck marker */},
-  {(bigint) 3027 /* 3: AutoVariable < AutoVariable: superclass typecheck marker */},
+  {(bigint) 3019 /* 3: AutoVariable < AutoVariable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92812,10 +88995,10 @@ val_t NEW_AutoVariable_syntax_base___AutoVariable___init(val_t p0, val_t p1) {
   return self;
 }
 const classtable_elt_t VFT_ClosureVariable[53] = {
-  {(bigint) 3011 /* 0: Identity */},
+  {(bigint) 3003 /* 0: Identity */},
   {(bigint) 3 /* 1: ClosureVariable < Object: superclass typecheck marker */},
   {(bigint) 15 /* 2: ClosureVariable < Variable: superclass typecheck marker */},
-  {(bigint) 3011 /* 3: ClosureVariable < ClosureVariable: superclass typecheck marker */},
+  {(bigint) 3003 /* 3: ClosureVariable < ClosureVariable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92887,11 +89070,11 @@ val_t NEW_ClosureVariable_syntax_base___ClosureVariable___init(val_t p0, val_t p
   syntax_base___ClosureVariable___init(self, p0, p1, p2, init_table);
   return self;
 }
-const classtable_elt_t VFT_AbsSyntaxVisitor[68] = {
-  {(bigint) 3035 /* 0: Identity */},
+const classtable_elt_t VFT_AbsSyntaxVisitor[69] = {
+  {(bigint) 3031 /* 0: Identity */},
   {(bigint) 3 /* 1: AbsSyntaxVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: AbsSyntaxVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -92932,6 +89115,7 @@ const classtable_elt_t VFT_AbsSyntaxVisitor[68] = {
   {(bigint) parser_prod___Visitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: AbsSyntaxVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -92978,10 +89162,10 @@ val_t NEW_AbsSyntaxVisitor_syntax_base___AbsSyntaxVisitor___init(val_t p0, val_t
   return self;
 }
 const classtable_elt_t VFT_CSHSorter[49] = {
-  {(bigint) 3019 /* 0: Identity */},
+  {(bigint) 3011 /* 0: Identity */},
   {(bigint) 3 /* 1: CSHSorter < Object: superclass typecheck marker */},
-  {(bigint) 191 /* 2: CSHSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 3019 /* 3: CSHSorter < CSHSorter: superclass typecheck marker */},
+  {(bigint) 187 /* 2: CSHSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 3011 /* 3: CSHSorter < CSHSorter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93045,10 +89229,10 @@ val_t NEW_CSHSorter_mmbuilder___CSHSorter___init() {
   return self;
 }
 const classtable_elt_t VFT_MMSrcAncestor[53] = {
-  {(bigint) 2919 /* 0: Identity */},
+  {(bigint) 2915 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSrcAncestor < Object: superclass typecheck marker */},
-  {(bigint) 135 /* 2: MMSrcAncestor < MMAncestor: superclass typecheck marker */},
-  {(bigint) 2919 /* 3: MMSrcAncestor < MMSrcAncestor: superclass typecheck marker */},
+  {(bigint) 131 /* 2: MMSrcAncestor < MMAncestor: superclass typecheck marker */},
+  {(bigint) 2915 /* 3: MMSrcAncestor < MMSrcAncestor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93121,12 +89305,12 @@ val_t NEW_MMSrcAncestor_mmbuilder___MMSrcAncestor___init(val_t p0, val_t p1) {
   mmbuilder___MMSrcAncestor___init(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_ClassBuilderVisitor[74] = {
-  {(bigint) 3595 /* 0: Identity */},
+const classtable_elt_t VFT_ClassBuilderVisitor[75] = {
+  {(bigint) 3607 /* 0: Identity */},
   {(bigint) 3 /* 1: ClassBuilderVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: ClassBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: ClassBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3595 /* 4: ClassBuilderVisitor < ClassBuilderVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: ClassBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3607 /* 4: ClassBuilderVisitor < ClassBuilderVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93166,6 +89350,7 @@ const classtable_elt_t VFT_ClassBuilderVisitor[74] = {
   {(bigint) mmbuilder___ClassBuilderVisitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: ClassBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -93190,7 +89375,7 @@ const classtable_elt_t VFT_ClassBuilderVisitor[74] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: ClassBuilderVisitor < ClassBuilderVisitor: superclass init_table position */},
+  {(bigint) 3 /* 69: ClassBuilderVisitor < ClassBuilderVisitor: superclass init_table position */},
   {(bigint) mmbuilder___ClassBuilderVisitor___local_class_arity},
   {(bigint) mmbuilder___ClassBuilderVisitor___local_class_arity__eq},
   {(bigint) mmbuilder___ClassBuilderVisitor___formals},
@@ -93220,12 +89405,12 @@ val_t NEW_ClassBuilderVisitor_mmbuilder___ClassBuilderVisitor___init(val_t p0, v
   mmbuilder___ClassBuilderVisitor___init(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[70] = {
-  {(bigint) 3591 /* 0: Identity */},
+const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[71] = {
+  {(bigint) 3603 /* 0: Identity */},
   {(bigint) 3 /* 1: ClassSpecializationBuilderVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: ClassSpecializationBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3591 /* 4: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3603 /* 4: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93265,6 +89450,7 @@ const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[70] = {
   {(bigint) mmbuilder___ClassSpecializationBuilderVisitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: ClassSpecializationBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -93289,7 +89475,7 @@ const classtable_elt_t VFT_ClassSpecializationBuilderVisitor[70] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass init_table position */},
+  {(bigint) 3 /* 69: ClassSpecializationBuilderVisitor < ClassSpecializationBuilderVisitor: superclass init_table position */},
   {(bigint) mmbuilder___ClassSpecializationBuilderVisitor___init},
 };
 /* 0: Pointer to the classtable */
@@ -93312,12 +89498,12 @@ val_t NEW_ClassSpecializationBuilderVisitor_mmbuilder___ClassSpecializationBuild
   mmbuilder___ClassSpecializationBuilderVisitor___init(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_ClassAncestorBuilder[70] = {
-  {(bigint) 3599 /* 0: Identity */},
+const classtable_elt_t VFT_ClassAncestorBuilder[71] = {
+  {(bigint) 3611 /* 0: Identity */},
   {(bigint) 3 /* 1: ClassAncestorBuilder < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: ClassAncestorBuilder < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: ClassAncestorBuilder < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3599 /* 4: ClassAncestorBuilder < ClassAncestorBuilder: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: ClassAncestorBuilder < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3611 /* 4: ClassAncestorBuilder < ClassAncestorBuilder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93357,6 +89543,7 @@ const classtable_elt_t VFT_ClassAncestorBuilder[70] = {
   {(bigint) mmbuilder___ClassAncestorBuilder___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: ClassAncestorBuilder < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -93381,7 +89568,7 @@ const classtable_elt_t VFT_ClassAncestorBuilder[70] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: ClassAncestorBuilder < ClassAncestorBuilder: superclass init_table position */},
+  {(bigint) 3 /* 69: ClassAncestorBuilder < ClassAncestorBuilder: superclass init_table position */},
   {(bigint) mmbuilder___ClassAncestorBuilder___init},
 };
 /* 0: Pointer to the classtable */
@@ -93404,12 +89591,12 @@ val_t NEW_ClassAncestorBuilder_mmbuilder___ClassAncestorBuilder___init(val_t p0,
   mmbuilder___ClassAncestorBuilder___init(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_ClassVerifierVisitor[70] = {
-  {(bigint) 3587 /* 0: Identity */},
+const classtable_elt_t VFT_ClassVerifierVisitor[71] = {
+  {(bigint) 3599 /* 0: Identity */},
   {(bigint) 3 /* 1: ClassVerifierVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: ClassVerifierVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: ClassVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3587 /* 4: ClassVerifierVisitor < ClassVerifierVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: ClassVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3599 /* 4: ClassVerifierVisitor < ClassVerifierVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93449,6 +89636,7 @@ const classtable_elt_t VFT_ClassVerifierVisitor[70] = {
   {(bigint) mmbuilder___ClassVerifierVisitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: ClassVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -93473,7 +89661,7 @@ const classtable_elt_t VFT_ClassVerifierVisitor[70] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: ClassVerifierVisitor < ClassVerifierVisitor: superclass init_table position */},
+  {(bigint) 3 /* 69: ClassVerifierVisitor < ClassVerifierVisitor: superclass init_table position */},
   {(bigint) mmbuilder___ClassVerifierVisitor___init},
 };
 /* 0: Pointer to the classtable */
@@ -93496,12 +89684,12 @@ val_t NEW_ClassVerifierVisitor_mmbuilder___ClassVerifierVisitor___init(val_t p0,
   mmbuilder___ClassVerifierVisitor___init(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_PropertyBuilderVisitor[70] = {
-  {(bigint) 3403 /* 0: Identity */},
+const classtable_elt_t VFT_PropertyBuilderVisitor[71] = {
+  {(bigint) 3411 /* 0: Identity */},
   {(bigint) 3 /* 1: PropertyBuilderVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: PropertyBuilderVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3403 /* 4: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3411 /* 4: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93541,6 +89729,7 @@ const classtable_elt_t VFT_PropertyBuilderVisitor[70] = {
   {(bigint) mmbuilder___PropertyBuilderVisitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: PropertyBuilderVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -93565,7 +89754,7 @@ const classtable_elt_t VFT_PropertyBuilderVisitor[70] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass init_table position */},
+  {(bigint) 3 /* 69: PropertyBuilderVisitor < PropertyBuilderVisitor: superclass init_table position */},
   {(bigint) mmbuilder___PropertyBuilderVisitor___init},
 };
 /* 0: Pointer to the classtable */
@@ -93588,12 +89777,12 @@ val_t NEW_PropertyBuilderVisitor_mmbuilder___PropertyBuilderVisitor___init(val_t
   mmbuilder___PropertyBuilderVisitor___init(self, p0, p1, init_table);
   return self;
 }
-const classtable_elt_t VFT_PropertyVerifierVisitor[72] = {
-  {(bigint) 3399 /* 0: Identity */},
+const classtable_elt_t VFT_PropertyVerifierVisitor[73] = {
+  {(bigint) 3407 /* 0: Identity */},
   {(bigint) 3 /* 1: PropertyVerifierVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: PropertyVerifierVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3399 /* 4: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3407 /* 4: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93633,6 +89822,7 @@ const classtable_elt_t VFT_PropertyVerifierVisitor[72] = {
   {(bigint) mmbuilder___PropertyVerifierVisitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: PropertyVerifierVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -93657,7 +89847,7 @@ const classtable_elt_t VFT_PropertyVerifierVisitor[72] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass init_table position */},
+  {(bigint) 3 /* 69: PropertyVerifierVisitor < PropertyVerifierVisitor: superclass init_table position */},
   {(bigint) mmbuilder___PropertyVerifierVisitor___signature_builder},
   {(bigint) mmbuilder___PropertyVerifierVisitor___signature_builder__eq},
   {(bigint) mmbuilder___PropertyVerifierVisitor___init},
@@ -93684,9 +89874,9 @@ val_t NEW_PropertyVerifierVisitor_mmbuilder___PropertyVerifierVisitor___init(val
   return self;
 }
 const classtable_elt_t VFT_SignatureBuilder[52] = {
-  {(bigint) 39 /* 0: Identity */},
+  {(bigint) 35 /* 0: Identity */},
   {(bigint) 3 /* 1: SignatureBuilder < Object: superclass typecheck marker */},
-  {(bigint) 39 /* 2: SignatureBuilder < SignatureBuilder: superclass typecheck marker */},
+  {(bigint) 35 /* 2: SignatureBuilder < SignatureBuilder: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93767,12 +89957,12 @@ val_t NEW_SignatureBuilder_mmbuilder___SignatureBuilder___init() {
   return self;
 }
 const classtable_elt_t VFT_MMSrcTypeFormalParameter[71] = {
-  {(bigint) 3655 /* 0: Identity */},
+  {(bigint) 3663 /* 0: Identity */},
   {(bigint) 3 /* 1: MMSrcTypeFormalParameter < Object: superclass typecheck marker */},
-  {(bigint) 95 /* 2: MMSrcTypeFormalParameter < MMType: superclass typecheck marker */},
-  {(bigint) 2907 /* 3: MMSrcTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
-  {(bigint) 3527 /* 4: MMSrcTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
-  {(bigint) 3655 /* 5: MMSrcTypeFormalParameter < MMSrcTypeFormalParameter: superclass typecheck marker */},
+  {(bigint) 91 /* 2: MMSrcTypeFormalParameter < MMType: superclass typecheck marker */},
+  {(bigint) 2903 /* 3: MMSrcTypeFormalParameter < MMTypeFormal: superclass typecheck marker */},
+  {(bigint) 3539 /* 4: MMSrcTypeFormalParameter < MMTypeFormalParameter: superclass typecheck marker */},
+  {(bigint) 3663 /* 5: MMSrcTypeFormalParameter < MMSrcTypeFormalParameter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93862,10 +90052,10 @@ val_t NEW_MMSrcTypeFormalParameter_mmbuilder___MMSrcTypeFormalParameter___init(v
   return self;
 }
 const classtable_elt_t VFT_MethidAccumulator[46] = {
-  {(bigint) 2891 /* 0: Identity */},
+  {(bigint) 2887 /* 0: Identity */},
   {(bigint) 3 /* 1: MethidAccumulator < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: MethidAccumulator < Visitor: superclass typecheck marker */},
-  {(bigint) 2891 /* 3: MethidAccumulator < MethidAccumulator: superclass typecheck marker */},
+  {(bigint) 2887 /* 3: MethidAccumulator < MethidAccumulator: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93926,12 +90116,12 @@ val_t NEW_MethidAccumulator_mmbuilder___MethidAccumulator___init() {
   mmbuilder___MethidAccumulator___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_ControlFlowVisitor[76] = {
-  {(bigint) 3583 /* 0: Identity */},
+const classtable_elt_t VFT_ControlFlowVisitor[77] = {
+  {(bigint) 3595 /* 0: Identity */},
   {(bigint) 3 /* 1: ControlFlowVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: ControlFlowVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: ControlFlowVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3583 /* 4: ControlFlowVisitor < ControlFlowVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: ControlFlowVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3595 /* 4: ControlFlowVisitor < ControlFlowVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -93971,6 +90161,7 @@ const classtable_elt_t VFT_ControlFlowVisitor[76] = {
   {(bigint) control_flow___ControlFlowVisitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: ControlFlowVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -93995,7 +90186,7 @@ const classtable_elt_t VFT_ControlFlowVisitor[76] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: ControlFlowVisitor < ControlFlowVisitor: superclass init_table position */},
+  {(bigint) 3 /* 69: ControlFlowVisitor < ControlFlowVisitor: superclass init_table position */},
   {(bigint) control_flow___ControlFlowVisitor___once_count},
   {(bigint) control_flow___ControlFlowVisitor___once_count__eq},
   {(bigint) control_flow___ControlFlowVisitor___control_flow_ctx},
@@ -94028,9 +90219,9 @@ val_t NEW_ControlFlowVisitor_control_flow___ControlFlowVisitor___init(val_t p0,
   return self;
 }
 const classtable_elt_t VFT_ControlFlowContext[53] = {
-  {(bigint) 159 /* 0: Identity */},
+  {(bigint) 155 /* 0: Identity */},
   {(bigint) 3 /* 1: ControlFlowContext < Object: superclass typecheck marker */},
-  {(bigint) 159 /* 2: ControlFlowContext < ControlFlowContext: superclass typecheck marker */},
+  {(bigint) 155 /* 2: ControlFlowContext < ControlFlowContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94115,12 +90306,12 @@ val_t NEW_ControlFlowContext_control_flow___ControlFlowContext___with_prev(val_t
   return self;
 }
 const classtable_elt_t VFT_ABlockControler[79] = {
-  {(bigint) 3947 /* 0: Identity */},
+  {(bigint) 3955 /* 0: Identity */},
   {(bigint) 3 /* 1: ABlockControler < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ABlockControler < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ABlockControler < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ABlockControler < PExpr: superclass typecheck marker */},
-  {(bigint) 3947 /* 5: ABlockControler < ABlockControler: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ABlockControler < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ABlockControler < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ABlockControler < PExpr: superclass typecheck marker */},
+  {(bigint) 3955 /* 5: ABlockControler < ABlockControler: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94218,13 +90409,13 @@ val_t NEW_ABlockControler_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_AControlableBlock[90] = {
-  {(bigint) 3911 /* 0: Identity */},
+  {(bigint) 3919 /* 0: Identity */},
   {(bigint) 3 /* 1: AControlableBlock < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AControlableBlock < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AControlableBlock < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AControlableBlock < PExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AControlableBlock < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AControlableBlock < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AControlableBlock < PExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 3911 /* 6: AControlableBlock < AControlableBlock: superclass typecheck marker */},
+  {(bigint) 3919 /* 6: AControlableBlock < AControlableBlock: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94330,12 +90521,12 @@ val_t NEW_AControlableBlock_parser_nodes___PNode___init() {
   parser_nodes___PNode___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_TypingVisitor[87] = {
-  {(bigint) 3039 /* 0: Identity */},
+const classtable_elt_t VFT_TypingVisitor[88] = {
+  {(bigint) 3035 /* 0: Identity */},
   {(bigint) 3 /* 1: TypingVisitor < Object: superclass typecheck marker */},
   {(bigint) 7 /* 2: TypingVisitor < Visitor: superclass typecheck marker */},
-  {(bigint) 3035 /* 3: TypingVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
-  {(bigint) 3039 /* 4: TypingVisitor < TypingVisitor: superclass typecheck marker */},
+  {(bigint) 3031 /* 3: TypingVisitor < AbsSyntaxVisitor: superclass typecheck marker */},
+  {(bigint) 3035 /* 4: TypingVisitor < TypingVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94375,6 +90566,7 @@ const classtable_elt_t VFT_TypingVisitor[87] = {
   {(bigint) typing___TypingVisitor___visit},
   {(bigint) parser_prod___Visitor___init},
   {(bigint) 2 /* 43: TypingVisitor < AbsSyntaxVisitor: superclass init_table position */},
+  {(bigint) syntax_base___AbsSyntaxVisitor___type_object},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_bool},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_int},
   {(bigint) syntax_base___AbsSyntaxVisitor___type_float},
@@ -94399,7 +90591,7 @@ const classtable_elt_t VFT_TypingVisitor[87] = {
   {(bigint) syntax_base___AbsSyntaxVisitor___check_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___check_conform_expr},
   {(bigint) syntax_base___AbsSyntaxVisitor___init},
-  {(bigint) 3 /* 68: TypingVisitor < TypingVisitor: superclass init_table position */},
+  {(bigint) 3 /* 69: TypingVisitor < TypingVisitor: superclass init_table position */},
   {(bigint) typing___TypingVisitor___variable_ctx},
   {(bigint) typing___TypingVisitor___variable_ctx__eq},
   {(bigint) typing___TypingVisitor___self_var},
@@ -94516,10 +90708,10 @@ val_t NEW_VariableContext_typing___VariableContext___init() {
   return self;
 }
 const classtable_elt_t VFT_SubVariableContext[50] = {
-  {(bigint) 219 /* 0: Identity */},
+  {(bigint) 211 /* 0: Identity */},
   {(bigint) 3 /* 1: SubVariableContext < Object: superclass typecheck marker */},
   {(bigint) 11 /* 2: SubVariableContext < VariableContext: superclass typecheck marker */},
-  {(bigint) 219 /* 3: SubVariableContext < SubVariableContext: superclass typecheck marker */},
+  {(bigint) 211 /* 3: SubVariableContext < SubVariableContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94588,12 +90780,12 @@ val_t NEW_SubVariableContext_typing___SubVariableContext___with_prev(val_t p0, v
   return self;
 }
 const classtable_elt_t VFT_AAbsSendExpr[99] = {
-  {(bigint) 3983 /* 0: Identity */},
+  {(bigint) 3991 /* 0: Identity */},
   {(bigint) 3 /* 1: AAbsSendExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: AAbsSendExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: AAbsSendExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: AAbsSendExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: AAbsSendExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: AAbsSendExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: AAbsSendExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: AAbsSendExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: AAbsSendExpr < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94719,14 +90911,14 @@ val_t NEW_AAbsSendExpr_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_ASuperInitCall[99] = {
-  {(bigint) 4051 /* 0: Identity */},
+  {(bigint) 4059 /* 0: Identity */},
   {(bigint) 3 /* 1: ASuperInitCall < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASuperInitCall < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASuperInitCall < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ASuperInitCall < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ASuperInitCall < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASuperInitCall < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASuperInitCall < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ASuperInitCall < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ASuperInitCall < AAbsSendExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
-  {(bigint) 4051 /* 7: ASuperInitCall < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ASuperInitCall < ASuperInitCall: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -94850,16 +91042,16 @@ val_t NEW_ASuperInitCall_parser_nodes___PNode___init() {
   return self;
 }
 const classtable_elt_t VFT_ASendReassignExpr[110] = {
-  {(bigint) 4191 /* 0: Identity */},
+  {(bigint) 4199 /* 0: Identity */},
   {(bigint) 3 /* 1: ASendReassignExpr < Object: superclass typecheck marker */},
-  {(bigint) 67 /* 2: ASendReassignExpr < PNode: superclass typecheck marker */},
-  {(bigint) 2855 /* 3: ASendReassignExpr < Prod: superclass typecheck marker */},
-  {(bigint) 3455 /* 4: ASendReassignExpr < PExpr: superclass typecheck marker */},
-  {(bigint) 3983 /* 5: ASendReassignExpr < AAbsSendExpr: superclass typecheck marker */},
-  {(bigint) 3759 /* 6: ASendReassignExpr < AReassignFormExpr: superclass typecheck marker */},
-  {(bigint) 4051 /* 7: ASendReassignExpr < ASuperInitCall: superclass typecheck marker */},
-  {(bigint) 4175 /* 8: ASendReassignExpr < ASendExpr: superclass typecheck marker */},
-  {(bigint) 4191 /* 9: ASendReassignExpr < ASendReassignExpr: superclass typecheck marker */},
+  {(bigint) 63 /* 2: ASendReassignExpr < PNode: superclass typecheck marker */},
+  {(bigint) 2847 /* 3: ASendReassignExpr < Prod: superclass typecheck marker */},
+  {(bigint) 3463 /* 4: ASendReassignExpr < PExpr: superclass typecheck marker */},
+  {(bigint) 3991 /* 5: ASendReassignExpr < AAbsSendExpr: superclass typecheck marker */},
+  {(bigint) 3767 /* 6: ASendReassignExpr < AReassignFormExpr: superclass typecheck marker */},
+  {(bigint) 4059 /* 7: ASendReassignExpr < ASuperInitCall: superclass typecheck marker */},
+  {(bigint) 4183 /* 8: ASendReassignExpr < ASendExpr: superclass typecheck marker */},
+  {(bigint) 4199 /* 9: ASendReassignExpr < ASendReassignExpr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95009,10 +91201,10 @@ val_t NEW_ASendReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_SrcModuleLoader[51] = {
-  {(bigint) 223 /* 0: Identity */},
+  {(bigint) 215 /* 0: Identity */},
   {(bigint) 3 /* 1: SrcModuleLoader < Object: superclass typecheck marker */},
-  {(bigint) 87 /* 2: SrcModuleLoader < ModuleLoader: superclass typecheck marker */},
-  {(bigint) 223 /* 3: SrcModuleLoader < SrcModuleLoader: superclass typecheck marker */},
+  {(bigint) 83 /* 2: SrcModuleLoader < ModuleLoader: superclass typecheck marker */},
+  {(bigint) 215 /* 3: SrcModuleLoader < SrcModuleLoader: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95077,12 +91269,12 @@ val_t NEW_SrcModuleLoader_syntax___SrcModuleLoader___init() {
   syntax___SrcModuleLoader___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_AbstractCompiler[91] = {
-  {(bigint) 3607 /* 0: Identity */},
+const classtable_elt_t VFT_AbstractCompiler[89] = {
+  {(bigint) 3619 /* 0: Identity */},
   {(bigint) 3 /* 1: AbstractCompiler < Object: superclass typecheck marker */},
-  {(bigint) 127 /* 2: AbstractCompiler < MMContext: superclass typecheck marker */},
+  {(bigint) 123 /* 2: AbstractCompiler < MMContext: superclass typecheck marker */},
   {(bigint) 199 /* 3: AbstractCompiler < ToolContext: superclass typecheck marker */},
-  {(bigint) 3607 /* 4: AbstractCompiler < AbstractCompiler: superclass typecheck marker */},
+  {(bigint) 3619 /* 4: AbstractCompiler < AbstractCompiler: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95128,8 +91320,6 @@ const classtable_elt_t VFT_AbstractCompiler[91] = {
   {(bigint) abstractmetamodel___MMContext___add_local_class},
   {(bigint) compiling_base___ToolContext___global},
   {(bigint) compiling_base___ToolContext___global__eq},
-  {(bigint) compiling_base___ToolContext___attr_sim},
-  {(bigint) compiling_base___ToolContext___attr_sim__eq},
   {(bigint) compiling_base___ToolContext___compdir},
   {(bigint) compiling_base___ToolContext___compdir__eq},
   {(bigint) compiling_base___ToolContext___clibdir},
@@ -95144,7 +91334,7 @@ const classtable_elt_t VFT_AbstractCompiler[91] = {
   {(bigint) compiling_base___ToolContext___no_cc__eq},
   {(bigint) compiling_base___ToolContext___ext_prefix},
   {(bigint) compiling_base___ToolContext___ext_prefix__eq},
-  {(bigint) 2 /* 66: AbstractCompiler < ToolContext: superclass init_table position */},
+  {(bigint) 2 /* 64: AbstractCompiler < ToolContext: superclass init_table position */},
   {(bigint) mmloader___ToolContext___error_count},
   {(bigint) mmloader___ToolContext___warning_count},
   {(bigint) mmloader___ToolContext___error},
@@ -95164,7 +91354,7 @@ const classtable_elt_t VFT_AbstractCompiler[91] = {
   {(bigint) mmloader___ToolContext___get_module},
   {(bigint) mmloader___ToolContext___directory_for},
   {(bigint) mmloader___ToolContext___register_loader},
-  {(bigint) 3 /* 86: AbstractCompiler < AbstractCompiler: superclass init_table position */},
+  {(bigint) 3 /* 84: AbstractCompiler < AbstractCompiler: superclass init_table position */},
   {(bigint) abstracttool___AbstractCompiler___init},
   {(bigint) abstracttool___AbstractCompiler___exec_cmd_line},
   {(bigint) abstracttool___AbstractCompiler___perform_work},
@@ -95176,32 +91366,31 @@ const classtable_elt_t VFT_AbstractCompiler[91] = {
 /* 3: Attribute AbstractCompiler::_global_classes */
 /* 4: Attribute AbstractCompiler::_modules */
 /* 5: Attribute AbstractCompiler::_global */
-/* 6: Attribute AbstractCompiler::_attr_sim */
-/* 7: Attribute AbstractCompiler::_compdir */
-/* 8: Attribute AbstractCompiler::_clibdir */
-/* 9: Attribute AbstractCompiler::_bindir */
-/* 10: Attribute AbstractCompiler::_output_file */
-/* 11: Attribute AbstractCompiler::_boost */
-/* 12: Attribute AbstractCompiler::_no_cc */
-/* 13: Attribute AbstractCompiler::_ext_prefix */
-/* 14: Attribute AbstractCompiler::_error_count */
-/* 15: Attribute AbstractCompiler::_warning_count */
-/* 16: Attribute AbstractCompiler::_paths */
-/* 17: Attribute AbstractCompiler::_loaders */
-/* 18: Attribute AbstractCompiler::_option_context */
-/* 19: Attribute AbstractCompiler::_opt_warn */
-/* 20: Attribute AbstractCompiler::_opt_path */
-/* 21: Attribute AbstractCompiler::_opt_log */
-/* 22: Attribute AbstractCompiler::_opt_only_metamodel */
-/* 23: Attribute AbstractCompiler::_opt_only_parse */
-/* 24: Attribute AbstractCompiler::_opt_help */
-/* 25: Attribute AbstractCompiler::_processing_modules */
-/* 26: Attribute AbstractCompiler::_path_dirs */
+/* 6: Attribute AbstractCompiler::_compdir */
+/* 7: Attribute AbstractCompiler::_clibdir */
+/* 8: Attribute AbstractCompiler::_bindir */
+/* 9: Attribute AbstractCompiler::_output_file */
+/* 10: Attribute AbstractCompiler::_boost */
+/* 11: Attribute AbstractCompiler::_no_cc */
+/* 12: Attribute AbstractCompiler::_ext_prefix */
+/* 13: Attribute AbstractCompiler::_error_count */
+/* 14: Attribute AbstractCompiler::_warning_count */
+/* 15: Attribute AbstractCompiler::_paths */
+/* 16: Attribute AbstractCompiler::_loaders */
+/* 17: Attribute AbstractCompiler::_option_context */
+/* 18: Attribute AbstractCompiler::_opt_warn */
+/* 19: Attribute AbstractCompiler::_opt_path */
+/* 20: Attribute AbstractCompiler::_opt_log */
+/* 21: Attribute AbstractCompiler::_opt_only_metamodel */
+/* 22: Attribute AbstractCompiler::_opt_only_parse */
+/* 23: Attribute AbstractCompiler::_opt_help */
+/* 24: Attribute AbstractCompiler::_processing_modules */
+/* 25: Attribute AbstractCompiler::_path_dirs */
 val_t NEW_AbstractCompiler(void) {
   val_t variable[27];
   void **closurevariable = NULL;
   obj_t obj;
-  obj = alloc(sizeof(val_t) * 27);
+  obj = alloc(sizeof(val_t) * 26);
   obj->vft = (classtable_elt_t*)VFT_AbstractCompiler;
   variable[0] = OBJ2VAL(obj);
   variable[1] = NEW_PartialOrder_partial_order___PartialOrder___init(); /*new PartialOrder[MMModule]*/
@@ -95221,45 +91410,45 @@ val_t NEW_AbstractCompiler(void) {
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Show warnings"), TAG_Int(13)); /*new String*/
   variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString("-W"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("--warn"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[10]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
   variable[9] = NEW_OptionBool_opts___OptionBool___init(variable[7], variable[8]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_warn(obj) = variable[9];
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Set include path for loaders (may be used more than once)"), TAG_Int(57)); /*new String*/
   variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[String]*/
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("-I"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[12]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("--path"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[13]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
   variable[12] = NEW_OptionArray_opts___OptionArray___init(variable[10], variable[11]); /*new OptionArray*/
   ATTR_mmloader___ToolContext____opt_path(obj) = variable[12];
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString("Generate various log files"), TAG_Int(26)); /*new String*/
   variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("--log"), TAG_Int(5)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[15]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
   variable[15] = NEW_OptionBool_opts___OptionBool___init(variable[13], variable[14]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_log(obj) = variable[15];
   variable[16] = NEW_String_string___String___with_native(BOX_NativeString("Stop after meta-model processing"), TAG_Int(32)); /*new String*/
   variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[18] = NEW_String_string___String___with_native(BOX_NativeString("--only-metamodel"), TAG_Int(16)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17], variable[18]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/;
   variable[18] = NEW_OptionBool_opts___OptionBool___init(variable[16], variable[17]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_only_metamodel(obj) = variable[18];
   variable[19] = NEW_String_string___String___with_native(BOX_NativeString("Only proceed to parse step of loaders"), TAG_Int(37)); /*new String*/
   variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[String]*/
   variable[21] = NEW_String_string___String___with_native(BOX_NativeString("--only-parse"), TAG_Int(12)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20], variable[21]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
   variable[21] = NEW_OptionBool_opts___OptionBool___init(variable[19], variable[20]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_only_parse(obj) = variable[21];
   variable[22] = NEW_String_string___String___with_native(BOX_NativeString("Show Help (This screen)"), TAG_Int(23)); /*new String*/
   variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[24] = NEW_String_string___String___with_native(BOX_NativeString("-h"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[24]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
   variable[25] = NEW_String_string___String___with_native(BOX_NativeString("-?"), TAG_Int(2)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[25]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[25]) /*AbstractArray::add*/;
   variable[26] = NEW_String_string___String___with_native(BOX_NativeString("--help"), TAG_Int(6)); /*new String*/
-  ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[26]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[26]) /*AbstractArray::add*/;
   variable[24] = NEW_OptionBool_opts___OptionBool___init(variable[22], variable[23]); /*new OptionBool*/
   ATTR_mmloader___ToolContext____opt_help(obj) = variable[24];
   variable[25] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[Symbol]*/
@@ -95267,7 +91456,6 @@ val_t NEW_AbstractCompiler(void) {
   variable[26] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[String, MMDirectory]*/
   ATTR_mmloader___ToolContext____path_dirs(obj) = variable[26];
   ATTR_compiling_base___ToolContext____global(obj) =  TAG_Bool(false);
-  ATTR_compiling_base___ToolContext____attr_sim(obj) =  TAG_Bool(false);
   ATTR_compiling_base___ToolContext____boost(obj) =  TAG_Bool(false);
   ATTR_compiling_base___ToolContext____no_cc(obj) =  TAG_Bool(false);
   return OBJ2VAL(obj);
@@ -95279,9 +91467,9 @@ val_t NEW_AbstractCompiler_abstracttool___AbstractCompiler___init() {
   return self;
 }
 const classtable_elt_t VFT_CompilerVisitor[70] = {
-  {(bigint) 163 /* 0: Identity */},
+  {(bigint) 159 /* 0: Identity */},
   {(bigint) 3 /* 1: CompilerVisitor < Object: superclass typecheck marker */},
-  {(bigint) 163 /* 2: CompilerVisitor < CompilerVisitor: superclass typecheck marker */},
+  {(bigint) 159 /* 2: CompilerVisitor < CompilerVisitor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95382,9 +91570,9 @@ val_t NEW_CompilerVisitor_compiling_base___CompilerVisitor___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_CContext[46] = {
-  {(bigint) 183 /* 0: Identity */},
+  {(bigint) 179 /* 0: Identity */},
   {(bigint) 3 /* 1: CContext < Object: superclass typecheck marker */},
-  {(bigint) 183 /* 2: CContext < CContext: superclass typecheck marker */},
+  {(bigint) 179 /* 2: CContext < CContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95452,9 +91640,9 @@ val_t NEW_CContext_compiling_base___CContext___init() {
   return self;
 }
 const classtable_elt_t VFT_PrimitiveInfo[48] = {
-  {(bigint) 51 /* 0: Identity */},
+  {(bigint) 47 /* 0: Identity */},
   {(bigint) 3 /* 1: PrimitiveInfo < Object: superclass typecheck marker */},
-  {(bigint) 51 /* 2: PrimitiveInfo < PrimitiveInfo: superclass typecheck marker */},
+  {(bigint) 47 /* 2: PrimitiveInfo < PrimitiveInfo: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95522,9 +91710,9 @@ val_t NEW_PrimitiveInfo_compiling_base___PrimitiveInfo___init() {
   return self;
 }
 const classtable_elt_t VFT_CFunctionContext[52] = {
-  {(bigint) 179 /* 0: Identity */},
+  {(bigint) 175 /* 0: Identity */},
   {(bigint) 3 /* 1: CFunctionContext < Object: superclass typecheck marker */},
-  {(bigint) 179 /* 2: CFunctionContext < CFunctionContext: superclass typecheck marker */},
+  {(bigint) 175 /* 2: CFunctionContext < CFunctionContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95604,9 +91792,9 @@ val_t NEW_CFunctionContext_compiling_methods___CFunctionContext___init(val_t p0)
   return self;
 }
 const classtable_elt_t VFT_NitMethodContext[57] = {
-  {(bigint) 79 /* 0: Identity */},
+  {(bigint) 75 /* 0: Identity */},
   {(bigint) 3 /* 1: NitMethodContext < Object: superclass typecheck marker */},
-  {(bigint) 79 /* 2: NitMethodContext < NitMethodContext: superclass typecheck marker */},
+  {(bigint) 75 /* 2: NitMethodContext < NitMethodContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95687,9 +91875,9 @@ val_t NEW_NitMethodContext_compiling_methods___NitMethodContext___init(val_t p0)
   return self;
 }
 const classtable_elt_t VFT_ColorContext[45] = {
-  {(bigint) 171 /* 0: Identity */},
+  {(bigint) 167 /* 0: Identity */},
   {(bigint) 3 /* 1: ColorContext < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: ColorContext < ColorContext: superclass typecheck marker */},
+  {(bigint) 167 /* 2: ColorContext < ColorContext: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95752,10 +91940,10 @@ val_t NEW_ColorContext_compiling_global___ColorContext___init() {
   return self;
 }
 const classtable_elt_t VFT_GlobalAnalysis[51] = {
-  {(bigint) 2979 /* 0: Identity */},
+  {(bigint) 2971 /* 0: Identity */},
   {(bigint) 3 /* 1: GlobalAnalysis < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: GlobalAnalysis < ColorContext: superclass typecheck marker */},
-  {(bigint) 2979 /* 3: GlobalAnalysis < GlobalAnalysis: superclass typecheck marker */},
+  {(bigint) 167 /* 2: GlobalAnalysis < ColorContext: superclass typecheck marker */},
+  {(bigint) 2971 /* 3: GlobalAnalysis < GlobalAnalysis: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95827,10 +92015,10 @@ val_t NEW_GlobalAnalysis_compiling_global___GlobalAnalysis___init(val_t p0) {
   return self;
 }
 const classtable_elt_t VFT_CompiledClass[58] = {
-  {(bigint) 3003 /* 0: Identity */},
+  {(bigint) 2995 /* 0: Identity */},
   {(bigint) 3 /* 1: CompiledClass < Object: superclass typecheck marker */},
-  {(bigint) 171 /* 2: CompiledClass < ColorContext: superclass typecheck marker */},
-  {(bigint) 3003 /* 3: CompiledClass < CompiledClass: superclass typecheck marker */},
+  {(bigint) 167 /* 2: CompiledClass < ColorContext: superclass typecheck marker */},
+  {(bigint) 2995 /* 3: CompiledClass < CompiledClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95911,10 +92099,13 @@ val_t NEW_CompiledClass_compiling_global___CompiledClass___init(val_t p0) {
   compiling_global___CompiledClass___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableElt[46] = {
-  {(bigint) 19 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableElt < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableElt < TableElt: superclass typecheck marker */},
+const classtable_elt_t VFT_AbsTableElt[43] = {
+  {(bigint) 191 /* 0: Identity */},
+  {(bigint) 3 /* 1: AbsTableElt < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: AbsTableElt < AbsTableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95922,6 +92113,64 @@ const classtable_elt_t VFT_TableElt[46] = {
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) hash___Object___hash},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) 0 /* 20: AbsTableElt < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) time___Object___get_time},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) 1 /* 40: AbsTableElt < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+};
+/* 0: Pointer to the classtable */
+val_t NEW_AbsTableElt(void) {
+  val_t variable[1];
+  void **closurevariable = NULL;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 1);
+  obj->vft = (classtable_elt_t*)VFT_AbsTableElt;
+  variable[0] = OBJ2VAL(obj);
+  return OBJ2VAL(obj);
+}
+val_t NEW_AbsTableElt_compiling_global___AbsTableElt___init() {
+  int init_table[2] = {0, 0};
+  val_t self = NEW_AbsTableElt();
+  compiling_global___AbsTableElt___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_TableElt[48] = {
+  {(bigint) 207 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableElt < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableElt < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableElt < TableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95952,12 +92201,14 @@ const classtable_elt_t VFT_TableElt[46] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableElt < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableElt < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableElt < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableElt___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
   {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
 };
 /* 0: Pointer to the classtable */
 val_t NEW_TableElt(void) {
@@ -95969,18 +92220,18 @@ val_t NEW_TableElt(void) {
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableElt_compiling_global___TableElt___init() {
-  int init_table[2] = {0, 0};
+val_t NEW_TableElt_compiling_global___AbsTableElt___init() {
+  int init_table[3] = {0, 0, 0};
   val_t self = NEW_TableElt();
-  compiling_global___TableElt___init(self, init_table);
+  compiling_global___AbsTableElt___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_LocalTableElt[49] = {
-  {(bigint) 2951 /* 0: Identity */},
-  {(bigint) 3 /* 1: LocalTableElt < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: LocalTableElt < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: LocalTableElt < LocalTableElt: superclass typecheck marker */},
+const classtable_elt_t VFT_ModuleTableElt[50] = {
+  {(bigint) 2883 /* 0: Identity */},
+  {(bigint) 3 /* 1: ModuleTableElt < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: ModuleTableElt < AbsTableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 2883 /* 4: ModuleTableElt < ModuleTableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -95996,7 +92247,7 @@ const classtable_elt_t VFT_LocalTableElt[49] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: LocalTableElt < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: ModuleTableElt < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96016,38 +92267,112 @@ const classtable_elt_t VFT_LocalTableElt[49] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: LocalTableElt < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: LocalTableElt < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___LocalTableElt___symbol},
-  {(bigint) compiling_global___LocalTableElt___value},
+  {(bigint) 1 /* 40: ModuleTableElt < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 48: ModuleTableElt < ModuleTableElt: superclass init_table position */},
+  {(bigint) compiling_global___ModuleTableElt___value},
 };
 /* 0: Pointer to the classtable */
-val_t NEW_LocalTableElt(void) {
+val_t NEW_ModuleTableElt(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 1);
-  obj->vft = (classtable_elt_t*)VFT_LocalTableElt;
+  obj->vft = (classtable_elt_t*)VFT_ModuleTableElt;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_LocalTableElt_compiling_global___TableElt___init() {
+val_t NEW_ModuleTableElt_compiling_global___AbsTableElt___init() {
   int init_table[3] = {0, 0, 0};
-  val_t self = NEW_LocalTableElt();
-  compiling_global___TableElt___init(self, init_table);
+  val_t self = NEW_ModuleTableElt();
+  compiling_global___AbsTableElt___init(self, init_table);
+  return self;
+}
+const classtable_elt_t VFT_ModuleTableEltGroup[52] = {
+  {(bigint) 3519 /* 0: Identity */},
+  {(bigint) 3 /* 1: ModuleTableEltGroup < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: ModuleTableEltGroup < AbsTableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {(bigint) 2883 /* 4: ModuleTableEltGroup < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 3519 /* 5: ModuleTableEltGroup < ModuleTableEltGroup: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) utils___Object___cmangle},
+  {(bigint) utils___Object___cmangle_table},
+  {(bigint) hash___Object___hash},
+  {(bigint) string___Object___to_s},
+  {(bigint) string___Object___inspect},
+  {(bigint) string___Object___inspect_head},
+  {(bigint) string___Object___args},
+  {(bigint) 0 /* 20: ModuleTableEltGroup < Object: superclass init_table position */},
+  {(bigint) kernel___Object___object_id},
+  {(bigint) kernel___Object___is_same_type},
+  {(bigint) kernel___Object_____eqeq},
+  {(bigint) kernel___Object_____neq},
+  {(bigint) kernel___Object___output},
+  {(bigint) kernel___Object___exit},
+  {(bigint) kernel___Object___sys},
+  {(bigint) time___Object___get_time},
+  {(bigint) file___Object___printn},
+  {(bigint) file___Object___print},
+  {(bigint) file___Object___getc},
+  {(bigint) file___Object___gets},
+  {(bigint) file___Object___stdin},
+  {(bigint) file___Object___stdout},
+  {(bigint) file___Object___stderr},
+  {(bigint) math___Object___atan2},
+  {(bigint) math___Object___pi},
+  {(bigint) math___Object___srand_from},
+  {(bigint) math___Object___srand},
+  {(bigint) 1 /* 40: ModuleTableEltGroup < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___ModuleTableEltGroup___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 48: ModuleTableEltGroup < ModuleTableElt: superclass init_table position */},
+  {(bigint) compiling_global___ModuleTableEltGroup___value},
+  {(bigint) 3 /* 50: ModuleTableEltGroup < ModuleTableEltGroup: superclass init_table position */},
+  {(bigint) compiling_global___ModuleTableEltGroup___elements},
+};
+/* 0: Pointer to the classtable */
+/* 1: Attribute ModuleTableEltGroup::_elements */
+val_t NEW_ModuleTableEltGroup(void) {
+  val_t variable[2];
+  void **closurevariable = NULL;
+  obj_t obj;
+  obj = alloc(sizeof(val_t) * 2);
+  obj->vft = (classtable_elt_t*)VFT_ModuleTableEltGroup;
+  variable[0] = OBJ2VAL(obj);
+  variable[1] = NEW_Array_array___Array___init(); /*new Array[TableElt]*/
+  ATTR_compiling_global___ModuleTableEltGroup____elements(obj) = variable[1];
+  return OBJ2VAL(obj);
+}
+val_t NEW_ModuleTableEltGroup_compiling_global___AbsTableElt___init() {
+  int init_table[4] = {0, 0, 0, 0};
+  val_t self = NEW_ModuleTableEltGroup();
+  compiling_global___AbsTableElt___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltPropPos[51] = {
+const classtable_elt_t VFT_TableEltProp[50] = {
   {(bigint) 3043 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltPropPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltPropPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltPropPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3043 /* 4: TableEltPropPos < TableEltPropPos: superclass typecheck marker */},
+  {(bigint) 3 /* 1: TableEltProp < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltProp < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltProp < TableElt: superclass typecheck marker */},
+  {(bigint) 3043 /* 4: TableEltProp < TableEltProp: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96063,7 +92388,7 @@ const classtable_elt_t VFT_TableEltPropPos[51] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltPropPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltProp < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96083,42 +92408,41 @@ const classtable_elt_t VFT_TableEltPropPos[51] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltPropPos < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableEltProp < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltProp < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableElt___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
   {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltPropPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 49: TableEltPropPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
+  {(bigint) 3 /* 48: TableEltProp < TableEltProp: superclass init_table position */},
+  {(bigint) compiling_global___TableEltProp___init},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltPropPos::_property */
-val_t NEW_TableEltPropPos(void) {
+/* 1: Attribute TableEltProp::_property */
+val_t NEW_TableEltProp(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltPropPos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltProp;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltPropPos_compiling_global___TableEltPropPos___init(val_t p0) {
+val_t NEW_TableEltProp_compiling_global___TableEltProp___init(val_t p0) {
   int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TableEltPropPos();
-  compiling_global___TableEltPropPos___init(self, p0, init_table);
+  val_t self = NEW_TableEltProp();
+  compiling_global___TableEltProp___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltMethPos[53] = {
-  {(bigint) 3615 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltMethPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltMethPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltMethPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3043 /* 4: TableEltMethPos < TableEltPropPos: superclass typecheck marker */},
-  {(bigint) 3615 /* 5: TableEltMethPos < TableEltMethPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltMeth[51] = {
+  {(bigint) 3627 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableEltMeth < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltMeth < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltMeth < TableElt: superclass typecheck marker */},
+  {(bigint) 3043 /* 4: TableEltMeth < TableEltProp: superclass typecheck marker */},
+  {(bigint) 3627 /* 5: TableEltMeth < TableEltMeth: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96133,7 +92457,7 @@ const classtable_elt_t VFT_TableEltMethPos[53] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltMethPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltMeth < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96153,44 +92477,42 @@ const classtable_elt_t VFT_TableEltMethPos[53] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltMethPos < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableEltMeth < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltMeth___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltMeth < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableElt___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltMethPos___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltMethPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 49: TableEltMethPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
-  {(bigint) 4 /* 51: TableEltMethPos < TableEltMethPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltMethPos___init},
+  {(bigint) compiling_global___TableEltMeth___compile_to_c},
+  {(bigint) 3 /* 48: TableEltMeth < TableEltProp: superclass init_table position */},
+  {(bigint) compiling_global___TableEltProp___init},
+  {(bigint) 4 /* 50: TableEltMeth < TableEltMeth: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltMethPos::_property */
-val_t NEW_TableEltMethPos(void) {
+/* 1: Attribute TableEltMeth::_property */
+val_t NEW_TableEltMeth(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltMethPos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltMeth;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltMethPos_compiling_global___TableEltMethPos___init(val_t p0) {
+val_t NEW_TableEltMeth_compiling_global___TableEltProp___init(val_t p0) {
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltMethPos();
-  compiling_global___TableEltMethPos___init(self, p0, init_table);
+  val_t self = NEW_TableEltMeth();
+  compiling_global___TableEltProp___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltSuperPos[53] = {
-  {(bigint) 3611 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltSuperPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltSuperPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltSuperPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3043 /* 4: TableEltSuperPos < TableEltPropPos: superclass typecheck marker */},
-  {(bigint) 3611 /* 5: TableEltSuperPos < TableEltSuperPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltSuper[51] = {
+  {(bigint) 3623 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableEltSuper < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltSuper < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltSuper < TableElt: superclass typecheck marker */},
+  {(bigint) 3043 /* 4: TableEltSuper < TableEltProp: superclass typecheck marker */},
+  {(bigint) 3623 /* 5: TableEltSuper < TableEltSuper: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96205,7 +92527,7 @@ const classtable_elt_t VFT_TableEltSuperPos[53] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltSuperPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltSuper < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96225,44 +92547,42 @@ const classtable_elt_t VFT_TableEltSuperPos[53] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltSuperPos < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableEltSuper < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltSuper___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltSuper < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableElt___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltSuperPos___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltSuperPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltSuperPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 49: TableEltSuperPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
-  {(bigint) 4 /* 51: TableEltSuperPos < TableEltSuperPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltSuperPos___init},
+  {(bigint) compiling_global___TableEltSuper___compile_to_c},
+  {(bigint) 3 /* 48: TableEltSuper < TableEltProp: superclass init_table position */},
+  {(bigint) compiling_global___TableEltProp___init},
+  {(bigint) 4 /* 50: TableEltSuper < TableEltSuper: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltSuperPos::_property */
-val_t NEW_TableEltSuperPos(void) {
+/* 1: Attribute TableEltSuper::_property */
+val_t NEW_TableEltSuper(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltSuperPos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltSuper;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltSuperPos_compiling_global___TableEltSuperPos___init(val_t p0) {
+val_t NEW_TableEltSuper_compiling_global___TableEltProp___init(val_t p0) {
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltSuperPos();
-  compiling_global___TableEltSuperPos___init(self, p0, init_table);
+  val_t self = NEW_TableEltSuper();
+  compiling_global___TableEltProp___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltAttrPos[53] = {
-  {(bigint) 3631 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltAttrPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltAttrPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltAttrPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3043 /* 4: TableEltAttrPos < TableEltPropPos: superclass typecheck marker */},
-  {(bigint) 3631 /* 5: TableEltAttrPos < TableEltAttrPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltAttr[51] = {
+  {(bigint) 3639 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableEltAttr < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltAttr < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltAttr < TableElt: superclass typecheck marker */},
+  {(bigint) 3043 /* 4: TableEltAttr < TableEltProp: superclass typecheck marker */},
+  {(bigint) 3639 /* 5: TableEltAttr < TableEltAttr: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96277,7 +92597,7 @@ const classtable_elt_t VFT_TableEltAttrPos[53] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltAttrPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltAttr < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96297,44 +92617,42 @@ const classtable_elt_t VFT_TableEltAttrPos[53] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltAttrPos < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableEltAttr < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltAttr___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltAttr < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableElt___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltAttrPos___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltAttrPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___symbol},
-  {(bigint) compiling_global___TableEltPropPos___value},
-  {(bigint) 3 /* 49: TableEltAttrPos < TableEltPropPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltPropPos___init},
-  {(bigint) 4 /* 51: TableEltAttrPos < TableEltAttrPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltAttrPos___init},
+  {(bigint) compiling_global___TableEltAttr___compile_to_c},
+  {(bigint) 3 /* 48: TableEltAttr < TableEltProp: superclass init_table position */},
+  {(bigint) compiling_global___TableEltProp___init},
+  {(bigint) 4 /* 50: TableEltAttr < TableEltAttr: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltAttrPos::_property */
-val_t NEW_TableEltAttrPos(void) {
+/* 1: Attribute TableEltAttr::_property */
+val_t NEW_TableEltAttr(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltAttrPos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltAttr;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltAttrPos_compiling_global___TableEltAttrPos___init(val_t p0) {
+val_t NEW_TableEltAttr_compiling_global___TableEltProp___init(val_t p0) {
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltAttrPos();
-  compiling_global___TableEltAttrPos___init(self, p0, init_table);
+  val_t self = NEW_TableEltAttr();
+  compiling_global___TableEltProp___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltClassPos[51] = {
-  {(bigint) 3047 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltClassPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: TableEltClassPos < TableEltClassPos: superclass typecheck marker */},
+const classtable_elt_t VFT_AbsTableEltClass[53] = {
+  {(bigint) 3027 /* 0: Identity */},
+  {(bigint) 3 /* 1: AbsTableEltClass < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: AbsTableEltClass < AbsTableElt: superclass typecheck marker */},
+  {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
+  {(bigint) 3027 /* 5: AbsTableEltClass < AbsTableEltClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96349,7 +92667,7 @@ const classtable_elt_t VFT_TableEltClassPos[51] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: AbsTableEltClass < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96369,43 +92687,45 @@ const classtable_elt_t VFT_TableEltClassPos[51] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltClassPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___LocalTableElt___symbol},
-  {(bigint) compiling_global___LocalTableElt___value},
-  {(bigint) 3 /* 49: TableEltClassPos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
+  {(bigint) 1 /* 40: AbsTableEltClass < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 50: AbsTableEltClass < AbsTableEltClass: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___init},
+  {(bigint) compiling_global___AbsTableEltClass___symbol},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassPos::_local_class */
-val_t NEW_TableEltClassPos(void) {
+/* 1: Attribute AbsTableEltClass::_local_class */
+val_t NEW_AbsTableEltClass(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassPos;
+  obj->vft = (classtable_elt_t*)VFT_AbsTableEltClass;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltClassPos_compiling_global___TableEltClassPos___init(val_t p0) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TableEltClassPos();
-  compiling_global___TableEltClassPos___init(self, p0, init_table);
+val_t NEW_AbsTableEltClass_compiling_global___AbsTableEltClass___init(val_t p0) {
+  int init_table[3] = {0, 0, 0};
+  val_t self = NEW_AbsTableEltClass();
+  compiling_global___AbsTableEltClass___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltClassIdPos[53] = {
-  {(bigint) 3623 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassIdPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassIdPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltClassIdPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: TableEltClassIdPos < TableEltClassPos: superclass typecheck marker */},
-  {(bigint) 3623 /* 5: TableEltClassIdPos < TableEltClassIdPos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltClass[54] = {
+  {(bigint) 3059 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableEltClass < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltClass < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltClass < TableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 3027 /* 5: TableEltClass < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 3059 /* 6: TableEltClass < TableEltClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96419,7 +92739,7 @@ const classtable_elt_t VFT_TableEltClassIdPos[53] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassIdPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltClass < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96439,44 +92759,45 @@ const classtable_elt_t VFT_TableEltClassIdPos[53] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassIdPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
+  {(bigint) 1 /* 40: TableEltClass < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltClass < TableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltClass___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
   {(bigint) compiling_global___TableElt___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltClassIdPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassIdPos___symbol},
-  {(bigint) compiling_global___TableEltClassIdPos___value},
-  {(bigint) 3 /* 49: TableEltClassIdPos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
-  {(bigint) 4 /* 51: TableEltClassIdPos < TableEltClassIdPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassIdPos___init},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 50: TableEltClass < AbsTableEltClass: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___init},
+  {(bigint) compiling_global___AbsTableEltClass___symbol},
+  {(bigint) 4 /* 53: TableEltClass < TableEltClass: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassIdPos::_local_class */
-val_t NEW_TableEltClassIdPos(void) {
+/* 1: Attribute TableEltClass::_local_class */
+val_t NEW_TableEltClass(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassIdPos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltClass;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltClassIdPos_compiling_global___TableEltClassIdPos___init(val_t p0) {
+val_t NEW_TableEltClass_compiling_global___AbsTableEltClass___init(val_t p0) {
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltClassIdPos();
-  compiling_global___TableEltClassIdPos___init(self, p0, init_table);
+  val_t self = NEW_TableEltClass();
+  compiling_global___AbsTableEltClass___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltClassInitTablePos[53] = {
-  {(bigint) 3619 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassInitTablePos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassInitTablePos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltClassInitTablePos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: TableEltClassInitTablePos < TableEltClassPos: superclass typecheck marker */},
-  {(bigint) 3619 /* 5: TableEltClassInitTablePos < TableEltClassInitTablePos: superclass typecheck marker */},
+const classtable_elt_t VFT_TableEltClassId[53] = {
+  {(bigint) 3055 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableEltClassId < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltClassId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 3055 /* 3: TableEltClassId < TableEltClassId: superclass typecheck marker */},
+  {(bigint) 2883 /* 4: TableEltClassId < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 3027 /* 5: TableEltClassId < AbsTableEltClass: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96491,7 +92812,7 @@ const classtable_elt_t VFT_TableEltClassInitTablePos[53] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassInitTablePos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltClassId < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96511,46 +92832,46 @@ const classtable_elt_t VFT_TableEltClassInitTablePos[53] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassInitTablePos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
-  {(bigint) compiling_global___TableElt___length},
-  {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltClassInitTablePos___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltClassInitTablePos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassInitTablePos___symbol},
-  {(bigint) compiling_global___TableEltClassInitTablePos___value},
-  {(bigint) 3 /* 49: TableEltClassInitTablePos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
-  {(bigint) 4 /* 51: TableEltClassInitTablePos < TableEltClassInitTablePos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassInitTablePos___init},
+  {(bigint) 1 /* 40: TableEltClassId < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 4 /* 43: TableEltClassId < TableEltClassId: superclass init_table position */},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 2 /* 48: TableEltClassId < ModuleTableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltClassId___value},
+  {(bigint) 3 /* 50: TableEltClassId < AbsTableEltClass: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___init},
+  {(bigint) compiling_global___TableEltClassId___symbol},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassInitTablePos::_local_class */
-val_t NEW_TableEltClassInitTablePos(void) {
+/* 1: Attribute TableEltClassId::_local_class */
+val_t NEW_TableEltClassId(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassInitTablePos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassId;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltClassInitTablePos_compiling_global___TableEltClassInitTablePos___init(val_t p0) {
+val_t NEW_TableEltClassId_compiling_global___AbsTableEltClass___init(val_t p0) {
   int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltClassInitTablePos();
-  compiling_global___TableEltClassInitTablePos___init(self, p0, init_table);
+  val_t self = NEW_TableEltClassId();
+  compiling_global___AbsTableEltClass___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltClassColorPos[53] = {
-  {(bigint) 3627 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltClassColorPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassColorPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltClassColorPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3047 /* 4: TableEltClassColorPos < TableEltClassPos: superclass typecheck marker */},
-  {(bigint) 3627 /* 5: TableEltClassColorPos < TableEltClassColorPos: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_TableEltClassInitTable[55] = {
+  {(bigint) 3631 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableEltClassInitTable < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltClassInitTable < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltClassInitTable < TableElt: superclass typecheck marker */},
   {0} /* Class Hole :( */,
+  {(bigint) 3027 /* 5: TableEltClassInitTable < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 3059 /* 6: TableEltClassInitTable < TableEltClass: superclass typecheck marker */},
+  {(bigint) 3631 /* 7: TableEltClassInitTable < TableEltClassInitTable: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96563,7 +92884,7 @@ const classtable_elt_t VFT_TableEltClassColorPos[53] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltClassColorPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltClassInitTable < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96583,46 +92904,48 @@ const classtable_elt_t VFT_TableEltClassColorPos[53] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassColorPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___is_related_to},
+  {(bigint) 1 /* 40: TableEltClassInitTable < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltClassInitTable < TableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltClass___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltClassColorPos___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltClassColorPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassColorPos___symbol},
-  {(bigint) compiling_global___TableEltClassColorPos___value},
-  {(bigint) 3 /* 49: TableEltClassColorPos < TableEltClassPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassPos___init},
-  {(bigint) 4 /* 51: TableEltClassColorPos < TableEltClassColorPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassColorPos___init},
+  {(bigint) compiling_global___TableEltClassInitTable___compile_to_c},
+  {0} /* Class Hole :( */,
+  {0} /* Class Hole :( */,
+  {(bigint) 3 /* 50: TableEltClassInitTable < AbsTableEltClass: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___init},
+  {(bigint) compiling_global___TableEltClassInitTable___symbol},
+  {(bigint) 4 /* 53: TableEltClassInitTable < TableEltClass: superclass init_table position */},
+  {(bigint) 5 /* 54: TableEltClassInitTable < TableEltClassInitTable: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltClassColorPos::_local_class */
-val_t NEW_TableEltClassColorPos(void) {
+/* 1: Attribute TableEltClassInitTable::_local_class */
+val_t NEW_TableEltClassInitTable(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltClassColorPos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassInitTable;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltClassColorPos_compiling_global___TableEltClassColorPos___init(val_t p0) {
-  int init_table[5] = {0, 0, 0, 0, 0};
-  val_t self = NEW_TableEltClassColorPos();
-  compiling_global___TableEltClassColorPos___init(self, p0, init_table);
+val_t NEW_TableEltClassInitTable_compiling_global___AbsTableEltClass___init(val_t p0) {
+  int init_table[6] = {0, 0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltClassInitTable();
+  compiling_global___AbsTableEltClass___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltBaseAttrPos[51] = {
-  {(bigint) 3051 /* 0: Identity */},
-  {(bigint) 3 /* 1: TableEltBaseAttrPos < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltBaseAttrPos < TableElt: superclass typecheck marker */},
-  {(bigint) 2951 /* 3: TableEltBaseAttrPos < LocalTableElt: superclass typecheck marker */},
-  {(bigint) 3051 /* 4: TableEltBaseAttrPos < TableEltBaseAttrPos: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
-  {0} /* Class Hole :( */,
+const classtable_elt_t VFT_TableEltClassColor[55] = {
+  {(bigint) 3635 /* 0: Identity */},
+  {(bigint) 3 /* 1: TableEltClassColor < Object: superclass typecheck marker */},
+  {(bigint) 191 /* 2: TableEltClassColor < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltClassColor < TableElt: superclass typecheck marker */},
+  {(bigint) 2883 /* 4: TableEltClassColor < ModuleTableElt: superclass typecheck marker */},
+  {(bigint) 3027 /* 5: TableEltClassColor < AbsTableEltClass: superclass typecheck marker */},
+  {(bigint) 3059 /* 6: TableEltClassColor < TableEltClass: superclass typecheck marker */},
+  {(bigint) 3635 /* 7: TableEltClassColor < TableEltClassColor: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96635,7 +92958,7 @@ const classtable_elt_t VFT_TableEltBaseAttrPos[51] = {
   {(bigint) string___Object___inspect},
   {(bigint) string___Object___inspect_head},
   {(bigint) string___Object___args},
-  {(bigint) 0 /* 20: TableEltBaseAttrPos < Object: superclass init_table position */},
+  {(bigint) 0 /* 20: TableEltClassColor < Object: superclass init_table position */},
   {(bigint) kernel___Object___object_id},
   {(bigint) kernel___Object___is_same_type},
   {(bigint) kernel___Object_____eqeq},
@@ -96655,41 +92978,45 @@ const classtable_elt_t VFT_TableEltBaseAttrPos[51] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltBaseAttrPos < TableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableElt___is_related_to},
+  {(bigint) 1 /* 40: TableEltClassColor < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltClassColor < TableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltClass___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
-  {(bigint) compiling_global___TableEltBaseAttrPos___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltBaseAttrPos < LocalTableElt: superclass init_table position */},
-  {(bigint) compiling_global___TableEltBaseAttrPos___symbol},
-  {(bigint) compiling_global___TableEltBaseAttrPos___value},
-  {(bigint) 3 /* 49: TableEltBaseAttrPos < TableEltBaseAttrPos: superclass init_table position */},
-  {(bigint) compiling_global___TableEltBaseAttrPos___init},
+  {(bigint) compiling_global___TableEltClassColor___compile_to_c},
+  {(bigint) 5 /* 48: TableEltClassColor < ModuleTableElt: superclass init_table position */},
+  {(bigint) compiling_global___TableEltClassColor___value},
+  {(bigint) 3 /* 50: TableEltClassColor < AbsTableEltClass: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableEltClass___init},
+  {(bigint) compiling_global___TableEltClassColor___symbol},
+  {(bigint) 4 /* 53: TableEltClassColor < TableEltClass: superclass init_table position */},
+  {(bigint) 6 /* 54: TableEltClassColor < TableEltClassColor: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
-/* 1: Attribute TableEltBaseAttrPos::_local_class */
-val_t NEW_TableEltBaseAttrPos(void) {
+/* 1: Attribute TableEltClassColor::_local_class */
+val_t NEW_TableEltClassColor(void) {
   val_t variable[1];
   void **closurevariable = NULL;
   obj_t obj;
   obj = alloc(sizeof(val_t) * 2);
-  obj->vft = (classtable_elt_t*)VFT_TableEltBaseAttrPos;
+  obj->vft = (classtable_elt_t*)VFT_TableEltClassColor;
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltBaseAttrPos_compiling_global___TableEltBaseAttrPos___init(val_t p0) {
-  int init_table[4] = {0, 0, 0, 0};
-  val_t self = NEW_TableEltBaseAttrPos();
-  compiling_global___TableEltBaseAttrPos___init(self, p0, init_table);
+val_t NEW_TableEltClassColor_compiling_global___AbsTableEltClass___init(val_t p0) {
+  int init_table[7] = {0, 0, 0, 0, 0, 0, 0};
+  val_t self = NEW_TableEltClassColor();
+  compiling_global___AbsTableEltClass___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltComposite[49] = {
-  {(bigint) 211 /* 0: Identity */},
+const classtable_elt_t VFT_TableEltComposite[51] = {
+  {(bigint) 3047 /* 0: Identity */},
   {(bigint) 3 /* 1: TableEltComposite < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltComposite < TableElt: superclass typecheck marker */},
-  {(bigint) 211 /* 3: TableEltComposite < TableEltComposite: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+  {(bigint) 191 /* 2: TableEltComposite < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltComposite < TableElt: superclass typecheck marker */},
+  {(bigint) 3047 /* 4: TableEltComposite < TableEltComposite: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96725,13 +93052,15 @@ const classtable_elt_t VFT_TableEltComposite[49] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltComposite < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableEltComposite < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltComposite < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableEltComposite___is_related_to},
   {(bigint) compiling_global___TableEltComposite___length},
   {(bigint) compiling_global___TableEltComposite___item},
   {(bigint) compiling_global___TableEltComposite___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltComposite < TableEltComposite: superclass init_table position */},
+  {(bigint) 3 /* 48: TableEltComposite < TableEltComposite: superclass init_table position */},
   {(bigint) compiling_global___TableEltComposite___add},
   {(bigint) compiling_global___TableEltComposite___init},
 };
@@ -96749,17 +93078,17 @@ val_t NEW_TableEltComposite(void) {
   return OBJ2VAL(obj);
 }
 val_t NEW_TableEltComposite_compiling_global___TableEltComposite___init(val_t p0) {
-  int init_table[3] = {0, 0, 0};
+  int init_table[4] = {0, 0, 0, 0};
   val_t self = NEW_TableEltComposite();
   compiling_global___TableEltComposite___init(self, p0, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltClassSelfId[48] = {
-  {(bigint) 215 /* 0: Identity */},
+const classtable_elt_t VFT_TableEltClassSelfId[49] = {
+  {(bigint) 3051 /* 0: Identity */},
   {(bigint) 3 /* 1: TableEltClassSelfId < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltClassSelfId < TableElt: superclass typecheck marker */},
-  {(bigint) 215 /* 3: TableEltClassSelfId < TableEltClassSelfId: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+  {(bigint) 191 /* 2: TableEltClassSelfId < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltClassSelfId < TableElt: superclass typecheck marker */},
+  {(bigint) 3051 /* 4: TableEltClassSelfId < TableEltClassSelfId: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96795,14 +93124,15 @@ const classtable_elt_t VFT_TableEltClassSelfId[48] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltClassSelfId < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableEltClassSelfId < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltClassSelfId < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableEltClassSelfId___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
   {(bigint) compiling_global___TableEltClassSelfId___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltClassSelfId < TableEltClassSelfId: superclass init_table position */},
-  {(bigint) compiling_global___TableEltClassSelfId___init},
+  {(bigint) 3 /* 48: TableEltClassSelfId < TableEltClassSelfId: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 val_t NEW_TableEltClassSelfId(void) {
@@ -96814,18 +93144,18 @@ val_t NEW_TableEltClassSelfId(void) {
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltClassSelfId_compiling_global___TableEltClassSelfId___init() {
-  int init_table[3] = {0, 0, 0};
+val_t NEW_TableEltClassSelfId_compiling_global___AbsTableElt___init() {
+  int init_table[4] = {0, 0, 0, 0};
   val_t self = NEW_TableEltClassSelfId();
-  compiling_global___TableEltClassSelfId___init(self, init_table);
+  compiling_global___AbsTableElt___init(self, init_table);
   return self;
 }
-const classtable_elt_t VFT_TableEltVftPointer[48] = {
-  {(bigint) 207 /* 0: Identity */},
+const classtable_elt_t VFT_TableEltVftPointer[49] = {
+  {(bigint) 3039 /* 0: Identity */},
   {(bigint) 3 /* 1: TableEltVftPointer < Object: superclass typecheck marker */},
-  {(bigint) 19 /* 2: TableEltVftPointer < TableElt: superclass typecheck marker */},
-  {(bigint) 207 /* 3: TableEltVftPointer < TableEltVftPointer: superclass typecheck marker */},
-  {0} /* Class Hole :( */,
+  {(bigint) 191 /* 2: TableEltVftPointer < AbsTableElt: superclass typecheck marker */},
+  {(bigint) 207 /* 3: TableEltVftPointer < TableElt: superclass typecheck marker */},
+  {(bigint) 3039 /* 4: TableEltVftPointer < TableEltVftPointer: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
@@ -96861,14 +93191,15 @@ const classtable_elt_t VFT_TableEltVftPointer[48] = {
   {(bigint) math___Object___pi},
   {(bigint) math___Object___srand_from},
   {(bigint) math___Object___srand},
-  {(bigint) 1 /* 40: TableEltVftPointer < TableElt: superclass init_table position */},
+  {(bigint) 1 /* 40: TableEltVftPointer < AbsTableElt: superclass init_table position */},
+  {(bigint) compiling_global___AbsTableElt___compile_macros},
+  {(bigint) compiling_global___AbsTableElt___init},
+  {(bigint) 2 /* 43: TableEltVftPointer < TableElt: superclass init_table position */},
   {(bigint) compiling_global___TableEltVftPointer___is_related_to},
   {(bigint) compiling_global___TableElt___length},
   {(bigint) compiling_global___TableElt___item},
   {(bigint) compiling_global___TableEltVftPointer___compile_to_c},
-  {(bigint) compiling_global___TableElt___init},
-  {(bigint) 2 /* 46: TableEltVftPointer < TableEltVftPointer: superclass init_table position */},
-  {(bigint) compiling_global___TableEltVftPointer___init},
+  {(bigint) 3 /* 48: TableEltVftPointer < TableEltVftPointer: superclass init_table position */},
 };
 /* 0: Pointer to the classtable */
 val_t NEW_TableEltVftPointer(void) {
@@ -96880,17 +93211,17 @@ val_t NEW_TableEltVftPointer(void) {
   variable[0] = OBJ2VAL(obj);
   return OBJ2VAL(obj);
 }
-val_t NEW_TableEltVftPointer_compiling_global___TableEltVftPointer___init() {
-  int init_table[3] = {0, 0, 0};
+val_t NEW_TableEltVftPointer_compiling_global___AbsTableElt___init() {
+  int init_table[4] = {0, 0, 0, 0};
   val_t self = NEW_TableEltVftPointer();
-  compiling_global___TableEltVftPointer___init(self, init_table);
+  compiling_global___AbsTableElt___init(self, init_table);
   return self;
 }
 const classtable_elt_t VFT_ClassSorter[49] = {
-  {(bigint) 3015 /* 0: Identity */},
+  {(bigint) 3007 /* 0: Identity */},
   {(bigint) 3 /* 1: ClassSorter < Object: superclass typecheck marker */},
-  {(bigint) 191 /* 2: ClassSorter < AbstractSorter: superclass typecheck marker */},
-  {(bigint) 3015 /* 3: ClassSorter < ClassSorter: superclass typecheck marker */},
+  {(bigint) 187 /* 2: ClassSorter < AbstractSorter: superclass typecheck marker */},
+  {(bigint) 3007 /* 3: ClassSorter < ClassSorter: superclass typecheck marker */},
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
   {0} /* Class Hole :( */,
index 689fe59..68623ef 100644 (file)
@@ -8,7 +8,7 @@ val_t opts___Option___to_s(val_t  self) {
   trace.file = LOCATE_opts;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((opts___Option___pretty_t)CALL(variable[2],COLOR_opts___Option___pretty))(variable[2],  TAG_Int(2)) /*Option::pretty*/;
+  variable[2] = CALL_opts___Option___pretty(variable[2])(variable[2],  TAG_Int(2)) /*Option::pretty*/;
   variable[1] = variable[2];
   goto return_label0;
   return_label0: while(false);
@@ -120,14 +120,14 @@ void opts___Option___init_opt(val_t  self, val_t  param0, val_t  param1, val_t
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Option].i]) return;
-  variable[5] = TAG_Bool(( variable[3] /*names*/ ==  NIT_NULL /*null*/) || (( variable[3] /*names*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[3] /*names*/,COLOR_kernel___Object_____eqeq))( variable[3] /*names*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[5] = TAG_Bool(( variable[3] /*names*/ ==  NIT_NULL /*null*/) || (( variable[3] /*names*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*names*/)( variable[3] /*names*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[6] = NEW_Array_array___Array___init(); /*new Array[String]*/
     ATTR_opts___Option____names(variable[5]) /*Option::_names*/ = variable[6];
   } else { /*if*/
     variable[5] = variable[0];
-    variable[6] = ((array___Collection___to_a_t)CALL( variable[3] /*names*/,COLOR_array___Collection___to_a))( variable[3] /*names*/) /*Collection::to_a*/;
+    variable[6] = CALL_array___Collection___to_a( variable[3] /*names*/)( variable[3] /*names*/) /*Collection::to_a*/;
     ATTR_opts___Option____names(variable[5]) /*Option::_names*/ = variable[6];
   }
   variable[5] = variable[0];
@@ -155,7 +155,7 @@ void opts___Option___add_aliases(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_opts___Option____names(variable[3]) /*Option::_names*/;
-  ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add_all))(variable[3],  variable[1] /*names*/) /*SimpleCollection::add_all*/;
+  CALL_abstract_collection___SimpleCollection___add_all(variable[3])(variable[3],  variable[1] /*names*/) /*SimpleCollection::add_all*/;
   return_label2: while(false);
   tracehead = trace.prev;
   return;
@@ -173,22 +173,22 @@ val_t opts___Option___pretty(val_t  self, val_t  param0) {
   variable[4] = variable[0];
   variable[4] = ATTR_opts___Option____names(variable[4]) /*Option::_names*/;
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[4] = ((string___Collection___join_t)CALL(variable[4],COLOR_string___Collection___join))(variable[4], variable[5]) /*Collection::join*/;
-  ((string___String___append_t)CALL( variable[3] /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*text*/, variable[4]) /*String::append*/;
+  variable[4] = CALL_string___Collection___join(variable[4])(variable[4], variable[5]) /*Collection::join*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*text*/)( variable[3] /*text*/, variable[4]) /*String::append*/;
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("  "), TAG_Int(2)); /*new String*/
-  ((string___String___append_t)CALL( variable[3] /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*text*/, variable[4]) /*String::append*/;
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[3] /*text*/,COLOR_abstract_collection___Collection___length))( variable[3] /*text*/) /*AbstractArray::length*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*text*/)( variable[3] /*text*/, variable[4]) /*String::append*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[3] /*text*/)( variable[3] /*text*/) /*AbstractArray::length*/;
   variable[5] = TAG_Int(UNTAG_Int( variable[1] /*off*/)-UNTAG_Int(variable[5]));
   variable[4] = variable[5];
   variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*rest*/)>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString(" "), TAG_Int(1)); /*new String*/
-    variable[5] = ((string___String_____star_t)CALL(variable[5],COLOR_string___String_____star))(variable[5],  variable[4] /*rest*/) /*String::**/;
-    ((string___String___append_t)CALL( variable[3] /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*text*/, variable[5]) /*String::append*/;
+    variable[5] = CALL_string___String_____star(variable[5])(variable[5],  variable[4] /*rest*/) /*String::**/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*text*/)( variable[3] /*text*/, variable[5]) /*String::append*/;
   }
   variable[5] = variable[0];
-  variable[5] = ((opts___Option___helptext_t)CALL(variable[5],COLOR_opts___Option___helptext))(variable[5]) /*Option::helptext*/;
-  ((string___String___append_t)CALL( variable[3] /*text*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*text*/, variable[5]) /*String::append*/;
+  variable[5] = CALL_opts___Option___helptext(variable[5])(variable[5]) /*Option::helptext*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*text*/)( variable[3] /*text*/, variable[5]) /*String::append*/;
   variable[2] =  variable[3] /*text*/;
   goto return_label3;
   return_label3: while(false);
@@ -203,21 +203,22 @@ val_t opts___Option___pretty_default(val_t  self) {
   trace.file = LOCATE_opts;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((opts___Option___default_value_t)CALL(variable[2],COLOR_opts___Option___default_value))(variable[2]) /*Option::default_value*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = CALL_opts___Option___default_value(variable[2])(variable[2]) /*Option::default_value*/;
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[2])) { /*if*/
-    variable[2] = NEW_String_string___String___init(); /*new String*/
+    variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/
     variable[4] = variable[3];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
     variable[5] = variable[0];
-    variable[5] = ((opts___Option___default_value_t)CALL(variable[5],COLOR_opts___Option___default_value))(variable[5]) /*Option::default_value*/;
+    variable[5] = CALL_opts___Option___default_value(variable[5])(variable[5]) /*Option::default_value*/;
     variable[6] = variable[5];
-    variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+    variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
     variable[1] = variable[2];
     goto return_label4;
   }
@@ -248,7 +249,7 @@ val_t opts___OptionText___to_s(val_t  self) {
   trace.file = LOCATE_opts;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((opts___Option___helptext_t)CALL(variable[2],COLOR_opts___Option___helptext))(variable[2]) /*Option::helptext*/;
+  variable[2] = CALL_opts___Option___helptext(variable[2])(variable[2]) /*Option::helptext*/;
   variable[1] = variable[2];
   goto return_label5;
   return_label5: while(false);
@@ -264,7 +265,7 @@ val_t opts___OptionText___pretty(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((opts___OptionText___to_s_t)CALL(variable[3],COLOR_string___Object___to_s))(variable[3]) /*OptionText::to_s*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*OptionText::to_s*/;
   variable[2] = variable[3];
   goto return_label6;
   return_label6: while(false);
@@ -281,7 +282,7 @@ void opts___OptionText___init(val_t  self, val_t  param0, int* init_table) {
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionText].i]) return;
   variable[3] = variable[0];
-  ((opts___Option___init_opt_t)CALL(variable[3],COLOR_opts___Option___init_opt))(variable[3],  variable[1] /*text*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/, init_table /*YYY*/) /*Option::init_opt*/;
+  CALL_opts___Option___init_opt(variable[3])(variable[3],  variable[1] /*text*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/, init_table /*YYY*/) /*Option::init_opt*/;
   return_label7: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionText].i] = 1;
   tracehead = trace.prev;
@@ -296,7 +297,7 @@ void opts___OptionBool___read_param(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((opts___Option___value__eq_t)CALL(variable[3],COLOR_opts___Option___value__eq))(variable[3],  TAG_Bool(true)) /*Option::value=*/;
+  CALL_opts___Option___value__eq(variable[3])(variable[3],  TAG_Bool(true)) /*Option::value=*/;
   return_label8: while(false);
   tracehead = trace.prev;
   return;
@@ -314,7 +315,7 @@ void opts___OptionBool___init(val_t  self, val_t  param0, val_t  param1, int* in
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionBool].i]) return;
   variable[4] = variable[0];
-  ((opts___Option___init_opt_t)CALL(variable[4],COLOR_opts___Option___init_opt))(variable[4],  variable[1] /*help*/,  TAG_Bool(false),  variable[2] /*names*/, init_table /*YYY*/) /*Option::init_opt*/;
+  CALL_opts___Option___init_opt(variable[4])(variable[4],  variable[1] /*help*/,  TAG_Bool(false),  variable[2] /*names*/, init_table /*YYY*/) /*Option::init_opt*/;
   return_label9: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionBool].i] = 1;
   tracehead = trace.prev;
@@ -329,17 +330,17 @@ void opts___OptionParameter___read_param(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((opts___Option___context_t)CALL(variable[3],COLOR_opts___Option___context))(variable[3]) /*Option::context*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_opts___Option___context(variable[3])(variable[3]) /*Option::context*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_opts___OptionParameter___read_param, LOCATE_opts, 107); nit_exit(1);}
-  variable[3] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable[1] /*it*/) /*Iterator::is_ok*/;
+  variable[3] = CALL_abstract_collection___Iterator___is_ok( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::is_ok*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = variable[0];
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[1] /*it*/) /*Iterator::item*/;
-    variable[4] = ((opts___OptionParameter___convert_t)CALL(variable[4],COLOR_opts___OptionParameter___convert))(variable[4], variable[5]) /*OptionParameter::convert*/;
-    ((opts___Option___value__eq_t)CALL(variable[3],COLOR_opts___Option___value__eq))(variable[3], variable[4]) /*Option::value=*/;
-    ((abstract_collection___Iterator___next_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___next))( variable[1] /*it*/) /*Iterator::next*/;
+    variable[5] = CALL_abstract_collection___Iterator___item( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::item*/;
+    variable[4] = CALL_opts___OptionParameter___convert(variable[4])(variable[4], variable[5]) /*OptionParameter::convert*/;
+    CALL_opts___Option___value__eq(variable[3])(variable[3], variable[4]) /*Option::value=*/;
+    CALL_abstract_collection___Iterator___next( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::next*/;
   } else { /*if*/
   }
   return_label10: while(false);
@@ -369,7 +370,7 @@ void opts___OptionParameter___init_opt(val_t  self, val_t  param0, val_t  param1
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionParameter].i]) return;
-  ((opts___Option___init_opt_t)CALL(variable[0],COLOR_opts___Option___init_opt))(variable[0], variable[1], variable[2], variable[3], init_table /*YYY*/) /*Option::init_opt*/;
+  CALL_opts___Option___init_opt(variable[0])(variable[0], variable[1], variable[2], variable[3], init_table /*YYY*/) /*Option::init_opt*/;
   return_label11: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionParameter].i] = 1;
   tracehead = trace.prev;
@@ -402,7 +403,7 @@ void opts___OptionString___init(val_t  self, val_t  param0, val_t  param1, int*
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionString].i]) return;
   variable[4] = variable[0];
-  ((opts___OptionParameter___init_opt_t)CALL(variable[4],COLOR_opts___OptionParameter___init_opt))(variable[4],  variable[1] /*help*/,  NIT_NULL /*null*/,  variable[2] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
+  CALL_opts___OptionParameter___init_opt(variable[4])(variable[4],  variable[1] /*help*/,  NIT_NULL /*null*/,  variable[2] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
   return_label13: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionString].i] = 1;
   tracehead = trace.prev;
@@ -416,17 +417,17 @@ val_t opts___OptionEnum___pretty_default(val_t  self) {
   trace.file = LOCATE_opts;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((opts___Option___default_value_t)CALL(variable[2],COLOR_opts___Option___default_value))(variable[2]) /*Option::default_value*/;
+  variable[2] = CALL_opts___Option___default_value(variable[2])(variable[2]) /*Option::default_value*/;
   variable[2] = TAG_Bool((variable[2])!=( NIT_NULL /*null*/));
   if (UNTAG_Bool(variable[2])) { /*if*/
-    variable[2] = NEW_String_string___String___init(); /*new String*/
+    variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString(" ("), TAG_Int(2)); /*new String*/
     variable[4] = variable[3];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
     variable[5] = variable[0];
     variable[5] = ATTR_opts___OptionEnum____enum(variable[5]) /*OptionEnum::_enum*/;
     variable[6] = variable[0];
-    variable[6] = ((opts___Option___default_value_t)CALL(variable[6],COLOR_opts___Option___default_value))(variable[6]) /*Option::default_value*/;
+    variable[6] = CALL_opts___Option___default_value(variable[6])(variable[6]) /*Option::default_value*/;
     variable[7] = variable[5];
     variable[8] = variable[6];
     variable[10] = TAG_Bool(UNTAG_Int( variable[8] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -446,10 +447,11 @@ val_t opts___OptionEnum___pretty_default(val_t  self) {
     return_label15: while(false);
     variable[5] = variable[9];
     variable[6] = variable[5];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+    variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
     variable[1] = variable[2];
     goto return_label14;
   } else { /*if*/
@@ -471,7 +473,7 @@ val_t opts___OptionEnum___convert(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_opts___OptionEnum____enum(variable[4]) /*OptionEnum::_enum*/;
-  variable[4] = ((array___AbstractArray___index_of_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___index_of))(variable[4],  variable[1] /*str*/) /*AbstractArray::index_of*/;
+  variable[4] = CALL_abstract_collection___IndexedCollection___index_of(variable[4])(variable[4],  variable[1] /*str*/) /*AbstractArray::index_of*/;
   variable[3] = variable[4];
   variable[2] =  variable[3] /*id*/;
   goto return_label16;
@@ -493,35 +495,36 @@ void opts___OptionEnum___init(val_t  self, val_t  param0, val_t  param1, val_t
   if (( param3!=NIT_NULL) && !VAL_ISA( param3, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_opts___OptionEnum___init, LOCATE_opts, 133); nit_exit(1); } /*cast Array[String]*/;
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionEnum].i]) return;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*enum*/ ==  NIT_NULL /*null*/) || (( variable[1] /*enum*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*enum*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*enum*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*enum*/,COLOR_kernel___Object_____eqeq))( variable[1] /*enum*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*enum*/ ==  NIT_NULL /*null*/) || (( variable[1] /*enum*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*enum*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*enum*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*enum*/)( variable[1] /*enum*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[7] = variable[6];
   if (UNTAG_Bool(variable[7])) { /* and */
-    variable[7] = ((array___AbstractArray___length_t)CALL( variable[1] /*enum*/,COLOR_abstract_collection___Collection___length))( variable[1] /*enum*/) /*AbstractArray::length*/;
+    variable[7] = CALL_abstract_collection___Collection___length( variable[1] /*enum*/)( variable[1] /*enum*/) /*AbstractArray::length*/;
     variable[7] = TAG_Bool(UNTAG_Int(variable[7])>UNTAG_Int( TAG_Int(0)));
   }
   variable[6] = variable[7];
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_opts___OptionEnum___init, LOCATE_opts, 135); nit_exit(1);}
   variable[6] = variable[0];
-  variable[7] = ((array___Collection___to_a_t)CALL( variable[1] /*enum*/,COLOR_array___Collection___to_a))( variable[1] /*enum*/) /*Collection::to_a*/;
+  variable[7] = CALL_array___Collection___to_a( variable[1] /*enum*/)( variable[1] /*enum*/) /*Collection::to_a*/;
   ATTR_opts___OptionEnum____enum(variable[6]) /*OptionEnum::_enum*/ = variable[7];
   variable[6] = variable[0];
-  variable[7] = NEW_String_string___String___init(); /*new String*/
+  variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
   variable[10] =  variable[2] /*help*/;
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" <"), TAG_Int(2)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-  variable[13] = ((string___Collection___join_t)CALL( variable[1] /*enum*/,COLOR_string___Collection___join))( variable[1] /*enum*/, variable[13]) /*Collection::join*/;
+  variable[13] = CALL_string___Collection___join( variable[1] /*enum*/)( variable[1] /*enum*/, variable[13]) /*Collection::join*/;
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[16]) /*String::append*/;
-  ((opts___OptionParameter___init_opt_t)CALL(variable[6],COLOR_opts___OptionParameter___init_opt))(variable[6], variable[7],  variable[3] /*default*/,  variable[4] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_opts___OptionParameter___init_opt(variable[6])(variable[6], variable[7],  variable[3] /*default*/,  variable[4] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
   return_label17: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionEnum].i] = 1;
   tracehead = trace.prev;
@@ -535,7 +538,7 @@ val_t opts___OptionInt___convert(val_t  self, val_t  param0) {
   trace.file = LOCATE_opts;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((string___String___to_i_t)CALL( variable[1] /*str*/,COLOR_string___String___to_i))( variable[1] /*str*/) /*String::to_i*/;
+  variable[3] = CALL_string___String___to_i( variable[1] /*str*/)( variable[1] /*str*/) /*String::to_i*/;
   variable[2] = variable[3];
   goto return_label18;
   return_label18: while(false);
@@ -556,7 +559,7 @@ void opts___OptionInt___init(val_t  self, val_t  param0, val_t  param1, val_t  p
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionInt].i]) return;
   variable[5] = variable[0];
-  ((opts___OptionParameter___init_opt_t)CALL(variable[5],COLOR_opts___OptionParameter___init_opt))(variable[5],  variable[1] /*help*/,  variable[2] /*default*/,  variable[3] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
+  CALL_opts___OptionParameter___init_opt(variable[5])(variable[5],  variable[1] /*help*/,  variable[2] /*default*/,  variable[3] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
   return_label19: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionInt].i] = 1;
   tracehead = trace.prev;
@@ -572,7 +575,7 @@ val_t opts___OptionArray___convert(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_opts___OptionArray____values(variable[3]) /*OptionArray::_values*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*str*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*str*/) /*AbstractArray::add*/;
   variable[3] = variable[0];
   variable[3] = ATTR_opts___OptionArray____values(variable[3]) /*OptionArray::_values*/;
   variable[2] = variable[3];
@@ -599,7 +602,7 @@ void opts___OptionArray___init(val_t  self, val_t  param0, val_t  param1, int* i
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_opts___OptionArray____values(variable[5]) /*OptionArray::_values*/;
-  ((opts___OptionParameter___init_opt_t)CALL(variable[4],COLOR_opts___OptionParameter___init_opt))(variable[4],  variable[1] /*help*/, variable[5],  variable[2] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
+  CALL_opts___OptionParameter___init_opt(variable[4])(variable[4],  variable[1] /*help*/, variable[5],  variable[2] /*names*/, init_table /*YYY*/) /*OptionParameter::init_opt*/;
   return_label21: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_OptionArray].i] = 1;
   tracehead = trace.prev;
@@ -633,25 +636,25 @@ void opts___OptionContext___usage(val_t  self) {
   variable[2] =  TAG_Int(1);
   variable[3] = variable[0];
   variable[3] = ATTR_opts___OptionContext____options(variable[3]) /*OptionContext::_options*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] =  TAG_Int(3);
-    variable[7] = ((opts___Option___names_t)CALL( variable[5] /*i*/,COLOR_opts___Option___names))( variable[5] /*i*/) /*Option::names*/;
-    variable[7] = ((array___AbstractArray___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*AbstractArray::iterator*/;
+    variable[7] = CALL_opts___Option___names( variable[5] /*i*/)( variable[5] /*i*/) /*Option::names*/;
+    variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+      variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[8])) break; /*for*/
-      variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+      variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
       variable[9] = variable[8];
-      variable[10] = ((array___AbstractArray___length_t)CALL( variable[9] /*n*/,COLOR_abstract_collection___Collection___length))( variable[9] /*n*/) /*AbstractArray::length*/;
+      variable[10] = CALL_abstract_collection___Collection___length( variable[9] /*n*/)( variable[9] /*n*/) /*AbstractArray::length*/;
       variable[10] = TAG_Int(UNTAG_Int(variable[10])+UNTAG_Int( TAG_Int(2)));
       variable[6] = TAG_Int(UNTAG_Int(variable[6])+UNTAG_Int(variable[10])) /*l*/;
       continue_24: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
     }
     break_24: while(0);
     variable[7] = TAG_Bool(UNTAG_Int( variable[2] /*lmax*/)<UNTAG_Int( variable[6] /*l*/));
@@ -659,22 +662,22 @@ void opts___OptionContext___usage(val_t  self) {
       variable[2] =  variable[6] /*l*/ /*lmax=*/;
     }
     continue_23: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_23: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_opts___OptionContext____options(variable[3]) /*OptionContext::_options*/;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = variable[0];
-    variable[7] = ((opts___Option___pretty_t)CALL( variable[5] /*i*/,COLOR_opts___Option___pretty))( variable[5] /*i*/,  variable[2] /*lmax*/) /*Option::pretty*/;
-    ((file___Object___print_t)CALL(variable[6],COLOR_file___Object___print))(variable[6], variable[7]) /*Object::print*/;
+    variable[7] = CALL_opts___Option___pretty( variable[5] /*i*/)( variable[5] /*i*/,  variable[2] /*lmax*/) /*Option::pretty*/;
+    CALL_file___Object___print(variable[6])(variable[6], variable[7]) /*Object::print*/;
     continue_25: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_25: while(0);
   return_label22: while(false);
@@ -689,10 +692,10 @@ void opts___OptionContext___parse(val_t  self, val_t  param0) {
   trace.file = LOCATE_opts;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*argv*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*argv*/) /*Collection::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*argv*/)( variable[1] /*argv*/) /*Collection::iterator*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((opts___OptionContext___parse_intern_t)CALL(variable[4],COLOR_opts___OptionContext___parse_intern))(variable[4],  variable[3] /*it*/) /*OptionContext::parse_intern*/;
+  CALL_opts___OptionContext___parse_intern(variable[4])(variable[4],  variable[3] /*it*/) /*OptionContext::parse_intern*/;
   return_label26: while(false);
   tracehead = trace.prev;
   return;
@@ -707,40 +710,40 @@ void opts___OptionContext___parse_intern(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] =  TAG_Bool(true);
   variable[4] = variable[0];
-  ((opts___OptionContext___build_t)CALL(variable[4],COLOR_opts___OptionContext___build))(variable[4]) /*OptionContext::build*/;
+  CALL_opts___OptionContext___build(variable[4])(variable[4]) /*OptionContext::build*/;
   variable[5] = variable[0];
   variable[5] = ATTR_opts___OptionContext____rest(variable[5]) /*OptionContext::_rest*/;
   variable[4] = variable[5];
   while (true) { /*while*/
     variable[5] =  variable[3] /*parseargs*/;
     if (UNTAG_Bool(variable[5])) { /* and */
-      variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___is_ok))( variable[1] /*it*/) /*Iterator::is_ok*/;
+      variable[5] = CALL_abstract_collection___Iterator___is_ok( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::is_ok*/;
     }
     if (!UNTAG_Bool(variable[5])) break; /* while*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[1] /*it*/) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::item*/;
     variable[5] = variable[6];
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
-    variable[6] = TAG_Bool(( variable[5] /*str*/ == variable[6]) || (( variable[5] /*str*/ != NIT_NULL) && UNTAG_Bool(((string___String_____eqeq_t)CALL( variable[5] /*str*/,COLOR_kernel___Object_____eqeq))( variable[5] /*str*/, variable[6]) /*String::==*/)));
+    variable[6] = TAG_Bool(( variable[5] /*str*/ == variable[6]) || (( variable[5] /*str*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*str*/)( variable[5] /*str*/, variable[6]) /*String::==*/)));
     if (UNTAG_Bool(variable[6])) { /*if*/
-      ((abstract_collection___Iterator___next_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___next))( variable[1] /*it*/) /*Iterator::next*/;
-      variable[6] = ((array___Iterator___to_a_t)CALL( variable[1] /*it*/,COLOR_array___Iterator___to_a))( variable[1] /*it*/) /*Iterator::to_a*/;
-      ((abstract_collection___SimpleCollection___add_all_t)CALL( variable[4] /*rest*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable[4] /*rest*/, variable[6]) /*SimpleCollection::add_all*/;
+      CALL_abstract_collection___Iterator___next( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::next*/;
+      variable[6] = CALL_array___Iterator___to_a( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::to_a*/;
+      CALL_abstract_collection___SimpleCollection___add_all( variable[4] /*rest*/)( variable[4] /*rest*/, variable[6]) /*SimpleCollection::add_all*/;
       variable[3] =  TAG_Bool(false) /*parseargs=*/;
     } else { /*if*/
       variable[6] = variable[0];
       variable[6] = ATTR_opts___OptionContext____optmap(variable[6]) /*OptionContext::_optmap*/;
-      variable[6] = ((abstract_collection___Map___has_key_t)CALL(variable[6],COLOR_abstract_collection___Map___has_key))(variable[6],  variable[5] /*str*/) /*Map::has_key*/;
+      variable[6] = CALL_abstract_collection___Map___has_key(variable[6])(variable[6],  variable[5] /*str*/) /*Map::has_key*/;
       if (UNTAG_Bool(variable[6])) { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_opts___OptionContext____optmap(variable[7]) /*OptionContext::_optmap*/;
-        variable[7] = ((abstract_collection___Map_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[5] /*str*/) /*Map::[]*/;
+        variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[5] /*str*/) /*Map::[]*/;
         variable[6] = variable[7];
-        ((abstract_collection___Iterator___next_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___next))( variable[1] /*it*/) /*Iterator::next*/;
-        ((opts___Option___read_param_t)CALL( variable[6] /*opt*/,COLOR_opts___Option___read_param))( variable[6] /*opt*/,  variable[1] /*it*/) /*Option::read_param*/;
+        CALL_abstract_collection___Iterator___next( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::next*/;
+        CALL_opts___Option___read_param( variable[6] /*opt*/)( variable[6] /*opt*/,  variable[1] /*it*/) /*Option::read_param*/;
       } else { /*if*/
-        variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___item))( variable[1] /*it*/) /*Iterator::item*/;
-        ((array___AbstractArray___add_t)CALL( variable[4] /*rest*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*rest*/, variable[6]) /*AbstractArray::add*/;
-        ((abstract_collection___Iterator___next_t)CALL( variable[1] /*it*/,COLOR_abstract_collection___Iterator___next))( variable[1] /*it*/) /*Iterator::next*/;
+        variable[6] = CALL_abstract_collection___Iterator___item( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::item*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[4] /*rest*/)( variable[4] /*rest*/, variable[6]) /*AbstractArray::add*/;
+        CALL_abstract_collection___Iterator___next( variable[1] /*it*/)( variable[1] /*it*/) /*Iterator::next*/;
       }
     }
     continue_28: while(0);
@@ -760,19 +763,19 @@ void opts___OptionContext___add_option(val_t  self, val_t  param0) {
   /* check if p<Array[Option] with p:Option */
   if (( param0!=NIT_NULL) && !VAL_ISA( param0, COLOR_Array, ID_Array)) { fprintf(stderr, "Cast failled"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_opts___OptionContext___add_option, LOCATE_opts, 237); nit_exit(1); } /*cast Array[Option]*/;
   variable[1] =  param0;
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*opts*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*opts*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*opts*/)( variable[1] /*opts*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = variable[0];
-    ((opts___Option___context__eq_t)CALL( variable[5] /*opt*/,COLOR_opts___Option___context__eq))( variable[5] /*opt*/, variable[6]) /*Option::context=*/;
+    CALL_opts___Option___context__eq( variable[5] /*opt*/)( variable[5] /*opt*/, variable[6]) /*Option::context=*/;
     variable[6] = variable[0];
     variable[6] = ATTR_opts___OptionContext____options(variable[6]) /*OptionContext::_options*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*opt*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*opt*/) /*AbstractArray::add*/;
     continue_30: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_30: while(0);
   return_label29: while(false);
@@ -810,28 +813,28 @@ void opts___OptionContext___build(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_opts___OptionContext____options(variable[2]) /*OptionContext::_options*/;
-  variable[2] = ((array___AbstractArray___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*AbstractArray::iterator*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[3] = ((array___ArrayIterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*ArrayIterator::is_ok*/;
+    variable[3] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[3])) break; /*for*/
-    variable[3] = ((array___ArrayIterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*ArrayIterator::item*/;
+    variable[3] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*ArrayIterator::item*/;
     variable[4] = variable[3];
-    variable[5] = ((opts___Option___names_t)CALL( variable[4] /*o*/,COLOR_opts___Option___names))( variable[4] /*o*/) /*Option::names*/;
-    variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+    variable[5] = CALL_opts___Option___names( variable[4] /*o*/)( variable[4] /*o*/) /*Option::names*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
       variable[7] = variable[6];
       variable[8] = variable[0];
       variable[8] = ATTR_opts___OptionContext____optmap(variable[8]) /*OptionContext::_optmap*/;
-      ((abstract_collection___Map_____braeq_t)CALL(variable[8],COLOR_abstract_collection___Map_____braeq))(variable[8],  variable[7] /*n*/,  variable[4] /*o*/) /*Map::[]=*/;
+      CALL_abstract_collection___Map_____braeq(variable[8])(variable[8],  variable[7] /*n*/,  variable[4] /*o*/) /*Map::[]=*/;
       continue_34: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
     }
     break_34: while(0);
     continue_33: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*ArrayIterator::next*/;
   }
   break_33: while(0);
   return_label32: while(false);
index 16015b7..b9d115b 100644 (file)
@@ -23,108 +23,102 @@ extern const classtable_elt_t VFT_OptionArray[];
 extern const classtable_elt_t VFT_OptionContext[];
 extern const char *LOCATE_opts;
 extern const int SFT_opts[];
-#define ID_Option SFT_opts[0]
-#define COLOR_Option SFT_opts[1]
-#define COLOR_opts___Option____names SFT_opts[2]
-#define COLOR_opts___Option____helptext SFT_opts[3]
-#define COLOR_opts___Option____mandatory SFT_opts[4]
-#define COLOR_opts___Option____context SFT_opts[5]
-#define COLOR_opts___Option____value SFT_opts[6]
-#define COLOR_opts___Option____default_value SFT_opts[7]
-#define INIT_TABLE_POS_Option SFT_opts[8]
-#define COLOR_opts___Option___names SFT_opts[9]
-#define COLOR_opts___Option___helptext SFT_opts[10]
-#define COLOR_opts___Option___mandatory SFT_opts[11]
-#define COLOR_opts___Option___mandatory__eq SFT_opts[12]
-#define COLOR_opts___Option___context SFT_opts[13]
-#define COLOR_opts___Option___context__eq SFT_opts[14]
-#define COLOR_opts___Option___value SFT_opts[15]
-#define COLOR_opts___Option___value__eq SFT_opts[16]
-#define COLOR_opts___Option___default_value SFT_opts[17]
-#define COLOR_opts___Option___default_value__eq SFT_opts[18]
-#define COLOR_opts___Option___init_opt SFT_opts[19]
-#define COLOR_opts___Option___add_aliases SFT_opts[20]
-#define COLOR_opts___Option___pretty SFT_opts[21]
-#define COLOR_opts___Option___pretty_default SFT_opts[22]
-#define COLOR_opts___Option___read_param SFT_opts[23]
-#define ID_OptionText SFT_opts[24]
-#define COLOR_OptionText SFT_opts[25]
-#define INIT_TABLE_POS_OptionText SFT_opts[26]
-#define COLOR_opts___OptionText___init SFT_opts[27]
-#define ID_OptionBool SFT_opts[28]
-#define COLOR_OptionBool SFT_opts[29]
-#define INIT_TABLE_POS_OptionBool SFT_opts[30]
-#define COLOR_opts___OptionBool___init SFT_opts[31]
-#define ID_OptionParameter SFT_opts[32]
-#define COLOR_OptionParameter SFT_opts[33]
-#define INIT_TABLE_POS_OptionParameter SFT_opts[34]
-#define COLOR_opts___OptionParameter___convert SFT_opts[35]
-#define COLOR_opts___OptionParameter___init_opt SFT_opts[36]
-#define ID_OptionString SFT_opts[37]
-#define COLOR_OptionString SFT_opts[38]
-#define INIT_TABLE_POS_OptionString SFT_opts[39]
-#define COLOR_opts___OptionString___init SFT_opts[40]
-#define ID_OptionEnum SFT_opts[41]
-#define COLOR_OptionEnum SFT_opts[42]
-#define COLOR_opts___OptionEnum____enum SFT_opts[43]
-#define INIT_TABLE_POS_OptionEnum SFT_opts[44]
-#define COLOR_opts___OptionEnum___init SFT_opts[45]
-#define ID_OptionInt SFT_opts[46]
-#define COLOR_OptionInt SFT_opts[47]
-#define INIT_TABLE_POS_OptionInt SFT_opts[48]
-#define COLOR_opts___OptionInt___init SFT_opts[49]
-#define ID_OptionArray SFT_opts[50]
-#define COLOR_OptionArray SFT_opts[51]
-#define COLOR_opts___OptionArray____values SFT_opts[52]
-#define INIT_TABLE_POS_OptionArray SFT_opts[53]
-#define COLOR_opts___OptionArray___init SFT_opts[54]
-#define ID_OptionContext SFT_opts[55]
-#define COLOR_OptionContext SFT_opts[56]
-#define COLOR_opts___OptionContext____options SFT_opts[57]
-#define COLOR_opts___OptionContext____rest SFT_opts[58]
-#define COLOR_opts___OptionContext____optmap SFT_opts[59]
-#define INIT_TABLE_POS_OptionContext SFT_opts[60]
-#define COLOR_opts___OptionContext___options SFT_opts[61]
-#define COLOR_opts___OptionContext___rest SFT_opts[62]
-#define COLOR_opts___OptionContext___usage SFT_opts[63]
-#define COLOR_opts___OptionContext___parse SFT_opts[64]
-#define COLOR_opts___OptionContext___parse_intern SFT_opts[65]
-#define COLOR_opts___OptionContext___add_option SFT_opts[66]
-#define COLOR_opts___OptionContext___init SFT_opts[67]
-#define COLOR_opts___OptionContext___build SFT_opts[68]
+#define ID_Option (SFT_opts[0])
+#define COLOR_Option (SFT_opts[1])
+#define ATTR_opts___Option____names(recv) ATTR(recv, (SFT_opts[2] + 0))
+#define ATTR_opts___Option____helptext(recv) ATTR(recv, (SFT_opts[2] + 1))
+#define ATTR_opts___Option____mandatory(recv) ATTR(recv, (SFT_opts[2] + 2))
+#define ATTR_opts___Option____context(recv) ATTR(recv, (SFT_opts[2] + 3))
+#define ATTR_opts___Option____value(recv) ATTR(recv, (SFT_opts[2] + 4))
+#define ATTR_opts___Option____default_value(recv) ATTR(recv, (SFT_opts[2] + 5))
+#define INIT_TABLE_POS_Option (SFT_opts[3] + 0)
+#define CALL_opts___Option___names(recv) ((opts___Option___names_t)CALL((recv), (SFT_opts[3] + 1)))
+#define CALL_opts___Option___helptext(recv) ((opts___Option___helptext_t)CALL((recv), (SFT_opts[3] + 2)))
+#define CALL_opts___Option___mandatory(recv) ((opts___Option___mandatory_t)CALL((recv), (SFT_opts[3] + 3)))
+#define CALL_opts___Option___mandatory__eq(recv) ((opts___Option___mandatory__eq_t)CALL((recv), (SFT_opts[3] + 4)))
+#define CALL_opts___Option___context(recv) ((opts___Option___context_t)CALL((recv), (SFT_opts[3] + 5)))
+#define CALL_opts___Option___context__eq(recv) ((opts___Option___context__eq_t)CALL((recv), (SFT_opts[3] + 6)))
+#define CALL_opts___Option___value(recv) ((opts___Option___value_t)CALL((recv), (SFT_opts[3] + 7)))
+#define CALL_opts___Option___value__eq(recv) ((opts___Option___value__eq_t)CALL((recv), (SFT_opts[3] + 8)))
+#define CALL_opts___Option___default_value(recv) ((opts___Option___default_value_t)CALL((recv), (SFT_opts[3] + 9)))
+#define CALL_opts___Option___default_value__eq(recv) ((opts___Option___default_value__eq_t)CALL((recv), (SFT_opts[3] + 10)))
+#define CALL_opts___Option___init_opt(recv) ((opts___Option___init_opt_t)CALL((recv), (SFT_opts[3] + 11)))
+#define CALL_opts___Option___add_aliases(recv) ((opts___Option___add_aliases_t)CALL((recv), (SFT_opts[3] + 12)))
+#define CALL_opts___Option___pretty(recv) ((opts___Option___pretty_t)CALL((recv), (SFT_opts[3] + 13)))
+#define CALL_opts___Option___pretty_default(recv) ((opts___Option___pretty_default_t)CALL((recv), (SFT_opts[3] + 14)))
+#define CALL_opts___Option___read_param(recv) ((opts___Option___read_param_t)CALL((recv), (SFT_opts[3] + 15)))
+#define ID_OptionText (SFT_opts[4])
+#define COLOR_OptionText (SFT_opts[5])
+#define INIT_TABLE_POS_OptionText (SFT_opts[6] + 0)
+#define CALL_opts___OptionText___init(recv) ((opts___OptionText___init_t)CALL((recv), (SFT_opts[6] + 1)))
+#define ID_OptionBool (SFT_opts[7])
+#define COLOR_OptionBool (SFT_opts[8])
+#define INIT_TABLE_POS_OptionBool (SFT_opts[9] + 0)
+#define CALL_opts___OptionBool___init(recv) ((opts___OptionBool___init_t)CALL((recv), (SFT_opts[9] + 1)))
+#define ID_OptionParameter (SFT_opts[10])
+#define COLOR_OptionParameter (SFT_opts[11])
+#define INIT_TABLE_POS_OptionParameter (SFT_opts[12] + 0)
+#define CALL_opts___OptionParameter___convert(recv) ((opts___OptionParameter___convert_t)CALL((recv), (SFT_opts[12] + 1)))
+#define CALL_opts___OptionParameter___init_opt(recv) ((opts___OptionParameter___init_opt_t)CALL((recv), (SFT_opts[12] + 2)))
+#define ID_OptionString (SFT_opts[13])
+#define COLOR_OptionString (SFT_opts[14])
+#define INIT_TABLE_POS_OptionString (SFT_opts[15] + 0)
+#define CALL_opts___OptionString___init(recv) ((opts___OptionString___init_t)CALL((recv), (SFT_opts[15] + 1)))
+#define ID_OptionEnum (SFT_opts[16])
+#define COLOR_OptionEnum (SFT_opts[17])
+#define ATTR_opts___OptionEnum____enum(recv) ATTR(recv, (SFT_opts[18] + 0))
+#define INIT_TABLE_POS_OptionEnum (SFT_opts[19] + 0)
+#define CALL_opts___OptionEnum___init(recv) ((opts___OptionEnum___init_t)CALL((recv), (SFT_opts[19] + 1)))
+#define ID_OptionInt (SFT_opts[20])
+#define COLOR_OptionInt (SFT_opts[21])
+#define INIT_TABLE_POS_OptionInt (SFT_opts[22] + 0)
+#define CALL_opts___OptionInt___init(recv) ((opts___OptionInt___init_t)CALL((recv), (SFT_opts[22] + 1)))
+#define ID_OptionArray (SFT_opts[23])
+#define COLOR_OptionArray (SFT_opts[24])
+#define ATTR_opts___OptionArray____values(recv) ATTR(recv, (SFT_opts[25] + 0))
+#define INIT_TABLE_POS_OptionArray (SFT_opts[26] + 0)
+#define CALL_opts___OptionArray___init(recv) ((opts___OptionArray___init_t)CALL((recv), (SFT_opts[26] + 1)))
+#define ID_OptionContext (SFT_opts[27])
+#define COLOR_OptionContext (SFT_opts[28])
+#define ATTR_opts___OptionContext____options(recv) ATTR(recv, (SFT_opts[29] + 0))
+#define ATTR_opts___OptionContext____rest(recv) ATTR(recv, (SFT_opts[29] + 1))
+#define ATTR_opts___OptionContext____optmap(recv) ATTR(recv, (SFT_opts[29] + 2))
+#define INIT_TABLE_POS_OptionContext (SFT_opts[30] + 0)
+#define CALL_opts___OptionContext___options(recv) ((opts___OptionContext___options_t)CALL((recv), (SFT_opts[30] + 1)))
+#define CALL_opts___OptionContext___rest(recv) ((opts___OptionContext___rest_t)CALL((recv), (SFT_opts[30] + 2)))
+#define CALL_opts___OptionContext___usage(recv) ((opts___OptionContext___usage_t)CALL((recv), (SFT_opts[30] + 3)))
+#define CALL_opts___OptionContext___parse(recv) ((opts___OptionContext___parse_t)CALL((recv), (SFT_opts[30] + 4)))
+#define CALL_opts___OptionContext___parse_intern(recv) ((opts___OptionContext___parse_intern_t)CALL((recv), (SFT_opts[30] + 5)))
+#define CALL_opts___OptionContext___add_option(recv) ((opts___OptionContext___add_option_t)CALL((recv), (SFT_opts[30] + 6)))
+#define CALL_opts___OptionContext___init(recv) ((opts___OptionContext___init_t)CALL((recv), (SFT_opts[30] + 7)))
+#define CALL_opts___OptionContext___build(recv) ((opts___OptionContext___build_t)CALL((recv), (SFT_opts[30] + 8)))
 typedef val_t (* opts___Option___to_s_t)(val_t  self);
 val_t opts___Option___to_s(val_t  self);
 #define LOCATE_opts___Option___to_s "opts::Option::(string::Object::to_s)"
-#define ATTR_opts___Option____names(recv) ATTR(recv, COLOR_opts___Option____names)
 typedef val_t (* opts___Option___names_t)(val_t  self);
 val_t opts___Option___names(val_t  self);
 #define LOCATE_opts___Option___names "opts::Option::names"
-#define ATTR_opts___Option____helptext(recv) ATTR(recv, COLOR_opts___Option____helptext)
 typedef val_t (* opts___Option___helptext_t)(val_t  self);
 val_t opts___Option___helptext(val_t  self);
 #define LOCATE_opts___Option___helptext "opts::Option::helptext"
-#define ATTR_opts___Option____mandatory(recv) ATTR(recv, COLOR_opts___Option____mandatory)
 typedef val_t (* opts___Option___mandatory_t)(val_t  self);
 val_t opts___Option___mandatory(val_t  self);
 #define LOCATE_opts___Option___mandatory "opts::Option::mandatory"
 typedef void (* opts___Option___mandatory__eq_t)(val_t  self, val_t  param0);
 void opts___Option___mandatory__eq(val_t  self, val_t  param0);
 #define LOCATE_opts___Option___mandatory__eq "opts::Option::mandatory="
-#define ATTR_opts___Option____context(recv) ATTR(recv, COLOR_opts___Option____context)
 typedef val_t (* opts___Option___context_t)(val_t  self);
 val_t opts___Option___context(val_t  self);
 #define LOCATE_opts___Option___context "opts::Option::context"
 typedef void (* opts___Option___context__eq_t)(val_t  self, val_t  param0);
 void opts___Option___context__eq(val_t  self, val_t  param0);
 #define LOCATE_opts___Option___context__eq "opts::Option::context="
-#define ATTR_opts___Option____value(recv) ATTR(recv, COLOR_opts___Option____value)
 typedef val_t (* opts___Option___value_t)(val_t  self);
 val_t opts___Option___value(val_t  self);
 #define LOCATE_opts___Option___value "opts::Option::value"
 typedef void (* opts___Option___value__eq_t)(val_t  self, val_t  param0);
 void opts___Option___value__eq(val_t  self, val_t  param0);
 #define LOCATE_opts___Option___value__eq "opts::Option::value="
-#define ATTR_opts___Option____default_value(recv) ATTR(recv, COLOR_opts___Option____default_value)
 typedef val_t (* opts___Option___default_value_t)(val_t  self);
 val_t opts___Option___default_value(val_t  self);
 #define LOCATE_opts___Option___default_value "opts::Option::default_value"
@@ -187,7 +181,6 @@ val_t opts___OptionEnum___pretty_default(val_t  self);
 typedef val_t (* opts___OptionEnum___convert_t)(val_t  self, val_t  param0);
 val_t opts___OptionEnum___convert(val_t  self, val_t  param0);
 #define LOCATE_opts___OptionEnum___convert "opts::OptionEnum::(opts::OptionParameter::convert)"
-#define ATTR_opts___OptionEnum____enum(recv) ATTR(recv, COLOR_opts___OptionEnum____enum)
 typedef void (* opts___OptionEnum___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
 void opts___OptionEnum___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, int* init_table);
 #define LOCATE_opts___OptionEnum___init "opts::OptionEnum::init"
@@ -206,16 +199,12 @@ typedef void (* opts___OptionArray___init_t)(val_t  self, val_t  param0, val_t
 void opts___OptionArray___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_opts___OptionArray___init "opts::OptionArray::init"
 val_t NEW_OptionArray_opts___OptionArray___init(val_t p0, val_t p1);
-#define ATTR_opts___OptionArray____values(recv) ATTR(recv, COLOR_opts___OptionArray____values)
-#define ATTR_opts___OptionContext____options(recv) ATTR(recv, COLOR_opts___OptionContext____options)
 typedef val_t (* opts___OptionContext___options_t)(val_t  self);
 val_t opts___OptionContext___options(val_t  self);
 #define LOCATE_opts___OptionContext___options "opts::OptionContext::options"
-#define ATTR_opts___OptionContext____rest(recv) ATTR(recv, COLOR_opts___OptionContext____rest)
 typedef val_t (* opts___OptionContext___rest_t)(val_t  self);
 val_t opts___OptionContext___rest(val_t  self);
 #define LOCATE_opts___OptionContext___rest "opts::OptionContext::rest"
-#define ATTR_opts___OptionContext____optmap(recv) ATTR(recv, COLOR_opts___OptionContext____optmap)
 typedef void (* opts___OptionContext___usage_t)(val_t  self);
 void opts___OptionContext___usage(val_t  self);
 #define LOCATE_opts___OptionContext___usage "opts::OptionContext::usage"
index 03b00e5..e767634 100644 (file)
@@ -75,11 +75,11 @@ void parser___Parser___init(val_t  self, val_t  param0, int* init_table) {
   variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
   ATTR_parser___Parser____stack_pos(variable[3]) /*Parser::_stack_pos*/ = variable[4];
   variable[3] = variable[0];
-  ((parser_tables___ParserTable___build_goto_table_t)CALL(variable[3],COLOR_parser_tables___ParserTable___build_goto_table))(variable[3]) /*ParserTable::build_goto_table*/;
+  CALL_parser_tables___ParserTable___build_goto_table(variable[3])(variable[3]) /*ParserTable::build_goto_table*/;
   variable[3] = variable[0];
-  ((parser_tables___ParserTable___build_action_table_t)CALL(variable[3],COLOR_parser_tables___ParserTable___build_action_table))(variable[3]) /*ParserTable::build_action_table*/;
+  CALL_parser_tables___ParserTable___build_action_table(variable[3])(variable[3]) /*ParserTable::build_action_table*/;
   variable[3] = variable[0];
-  ((parser___Parser___build_reduce_table_t)CALL(variable[3],COLOR_parser___Parser___build_reduce_table))(variable[3]) /*Parser::build_reduce_table*/;
+  CALL_parser___Parser___build_reduce_table(variable[3])(variable[3]) /*Parser::build_reduce_table*/;
   return_label1: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Parser].i] = 1;
   tracehead = trace.prev;
@@ -94,7 +94,7 @@ val_t parser___Parser___go_to(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser___Parser___state_t)CALL(variable[4],COLOR_parser___Parser___state))(variable[4]) /*Parser::state*/;
+  variable[4] = CALL_parser___Parser___state(variable[4])(variable[4]) /*Parser::state*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
   variable[5] = ATTR_parser_tables___ParserTable____goto_table(variable[5]) /*ParserTable::_goto_table*/;
@@ -118,7 +118,7 @@ val_t parser___Parser___go_to(val_t  self, val_t  param0) {
   variable[5] = variable[8];
   variable[4] = variable[5];
   variable[5] =  TAG_Int(1);
-  variable[7] = ((array___AbstractArray___length_t)CALL( variable[4] /*table*/,COLOR_abstract_collection___Collection___length))( variable[4] /*table*/) /*AbstractArray::length*/;
+  variable[7] = CALL_abstract_collection___Collection___length( variable[4] /*table*/)( variable[4] /*table*/) /*AbstractArray::length*/;
   variable[7] = TAG_Int(UNTAG_Int(variable[7])/UNTAG_Int( TAG_Int(2)));
   variable[7] = TAG_Int(UNTAG_Int(variable[7])-UNTAG_Int( TAG_Int(1)));
   variable[6] = variable[7];
@@ -243,7 +243,7 @@ void parser___Parser___push(val_t  self, val_t  param0, val_t  param1) {
   ATTR_parser___Parser____stack_pos(variable[5]) /*Parser::_stack_pos*/ =  variable[4] /*pos*/;
   variable[5] = variable[0];
   variable[5] = ATTR_parser___Parser____stack(variable[5]) /*Parser::_stack*/;
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
   variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*pos*/)<UNTAG_Int(variable[5]));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[6] = variable[0];
@@ -267,13 +267,13 @@ void parser___Parser___push(val_t  self, val_t  param0, val_t  param1) {
     return_label10: while(false);
     variable[6] = variable[9];
     variable[5] = variable[6];
-    ((parser___State___state__eq_t)CALL( variable[5] /*state*/,COLOR_parser___State___state__eq))( variable[5] /*state*/,  variable[1] /*numstate*/) /*State::state=*/;
-    ((parser___State___nodes__eq_t)CALL( variable[5] /*state*/,COLOR_parser___State___nodes__eq))( variable[5] /*state*/,  variable[2] /*list_node*/) /*State::nodes=*/;
+    CALL_parser___State___state__eq( variable[5] /*state*/)( variable[5] /*state*/,  variable[1] /*numstate*/) /*State::state=*/;
+    CALL_parser___State___nodes__eq( variable[5] /*state*/)( variable[5] /*state*/,  variable[2] /*list_node*/) /*State::nodes=*/;
   } else { /*if*/
     variable[5] = variable[0];
     variable[5] = ATTR_parser___Parser____stack(variable[5]) /*Parser::_stack*/;
     variable[6] = NEW_State_parser___State___init( variable[1] /*numstate*/,  variable[2] /*list_node*/); /*new State*/
-    ((array___AbstractArray___push_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___push))(variable[5], variable[6]) /*AbstractArray::push*/;
+    CALL_abstract_collection___IndexedCollection___push(variable[5])(variable[5], variable[6]) /*AbstractArray::push*/;
   }
   return_label9: while(false);
   tracehead = trace.prev;
@@ -308,7 +308,7 @@ val_t parser___Parser___state(val_t  self) {
   goto return_label12;
   return_label12: while(false);
   variable[2] = variable[6];
-  variable[2] = ((parser___State___state_t)CALL(variable[2],COLOR_parser___State___state))(variable[2]) /*State::state*/;
+  variable[2] = CALL_parser___State___state(variable[2])(variable[2]) /*State::state*/;
   variable[1] = variable[2];
   goto return_label11;
   return_label11: while(false);
@@ -344,7 +344,7 @@ val_t parser___Parser___pop(val_t  self) {
   goto return_label14;
   return_label14: while(false);
   variable[3] = variable[7];
-  variable[3] = ((parser___State___nodes_t)CALL(variable[3],COLOR_parser___State___nodes))(variable[3]) /*State::nodes*/;
+  variable[3] = CALL_parser___State___nodes(variable[3])(variable[3]) /*State::nodes*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   variable[4] = variable[0];
@@ -365,18 +365,18 @@ val_t parser___Parser___parse(val_t  self) {
   trace.file = LOCATE_parser;
   variable[0] =  self;
   variable[2] = variable[0];
-  ((parser___Parser___push_t)CALL(variable[2],COLOR_parser___Parser___push))(variable[2],  TAG_Int(0),  NIT_NULL /*null*/) /*Parser::push*/;
+  CALL_parser___Parser___push(variable[2])(variable[2],  TAG_Int(0),  NIT_NULL /*null*/) /*Parser::push*/;
   variable[2] =  NIT_NULL /*null*/;
   variable[4] = variable[0];
   variable[4] = ATTR_parser___Parser____lexer(variable[4]) /*Parser::_lexer*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
-    variable[5] = ((lexer___Lexer___peek_t)CALL( variable[3] /*lexer*/,COLOR_lexer___Lexer___peek))( variable[3] /*lexer*/) /*Lexer::peek*/;
+    variable[5] = CALL_lexer___Lexer___peek( variable[3] /*lexer*/)( variable[3] /*lexer*/) /*Lexer::peek*/;
     variable[4] = variable[5];
-    variable[6] = ((lexer___Token___pos_t)CALL( variable[4] /*token*/,COLOR_lexer___Token___pos))( variable[4] /*token*/) /*Token::pos*/;
+    variable[6] = CALL_lexer___Token___pos( variable[4] /*token*/)( variable[4] /*token*/) /*Token::pos*/;
     variable[5] = variable[6];
-    variable[7] = ((lexer___Token___line_t)CALL( variable[4] /*token*/,COLOR_lexer___Token___line))( variable[4] /*token*/) /*Token::line*/;
+    variable[7] = CALL_lexer___Token___line( variable[4] /*token*/)( variable[4] /*token*/) /*Token::line*/;
     variable[6] = variable[7];
     variable[7] = TAG_Bool(( variable[4] /*token*/==NIT_NULL) || VAL_ISA( variable[4] /*token*/, COLOR_PError, ID_PError)) /*cast PError*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
@@ -386,12 +386,12 @@ val_t parser___Parser___parse(val_t  self) {
       variable[1] = variable[7];
       goto return_label15;
     }
-    variable[8] = ((lexer___Token___parser_index_t)CALL( variable[4] /*token*/,COLOR_lexer___Token___parser_index))( variable[4] /*token*/) /*Token::parser_index*/;
+    variable[8] = CALL_lexer___Token___parser_index( variable[4] /*token*/)( variable[4] /*token*/) /*Token::parser_index*/;
     variable[7] = variable[8];
     variable[9] = variable[0];
     variable[9] = ATTR_parser_tables___ParserTable____action_table(variable[9]) /*ParserTable::_action_table*/;
     variable[10] = variable[0];
-    variable[10] = ((parser___Parser___state_t)CALL(variable[10],COLOR_parser___Parser___state))(variable[10]) /*Parser::state*/;
+    variable[10] = CALL_parser___Parser___state(variable[10])(variable[10]) /*Parser::state*/;
     variable[11] = variable[9];
     variable[12] = variable[10];
     variable[14] = TAG_Bool(UNTAG_Int( variable[12] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -450,7 +450,7 @@ val_t parser___Parser___parse(val_t  self) {
     variable[11] = variable[13];
     variable[10] = variable[11];
     variable[11] =  TAG_Int(1);
-    variable[13] = ((array___AbstractArray___length_t)CALL( variable[8] /*table*/,COLOR_abstract_collection___Collection___length))( variable[8] /*table*/) /*AbstractArray::length*/;
+    variable[13] = CALL_abstract_collection___Collection___length( variable[8] /*table*/)( variable[8] /*table*/) /*AbstractArray::length*/;
     variable[13] = TAG_Int(UNTAG_Int(variable[13])/UNTAG_Int( TAG_Int(3)));
     variable[13] = TAG_Int(UNTAG_Int(variable[13])-UNTAG_Int( TAG_Int(1)));
     variable[12] = variable[13];
@@ -558,8 +558,8 @@ val_t parser___Parser___parse(val_t  self) {
     variable[13] = TAG_Bool(( variable[9] /*action_type*/)==( TAG_Int(0)));
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[13] = variable[0];
-      variable[14] = ((lexer___Lexer___next_t)CALL( variable[3] /*lexer*/,COLOR_lexer___Lexer___next))( variable[3] /*lexer*/) /*Lexer::next*/;
-      ((parser___Parser___push_t)CALL(variable[13],COLOR_parser___Parser___push))(variable[13],  variable[10] /*action_value*/, variable[14]) /*Parser::push*/;
+      variable[14] = CALL_lexer___Lexer___next( variable[3] /*lexer*/)( variable[3] /*lexer*/) /*Lexer::next*/;
+      CALL_parser___Parser___push(variable[13])(variable[13],  variable[10] /*action_value*/, variable[14]) /*Parser::push*/;
     } else { /*if*/
       variable[13] = TAG_Bool(( variable[9] /*action_type*/)==( TAG_Int(1)));
       if (UNTAG_Bool(variable[13])) { /*if*/
@@ -584,33 +584,33 @@ val_t parser___Parser___parse(val_t  self) {
         return_label25: while(false);
         variable[13] = variable[16];
         variable[14] = variable[0];
-        ((parser___ReduceAction___action_t)CALL(variable[13],COLOR_parser___ReduceAction___action))(variable[13], variable[14]) /*ReduceAction::action*/;
+        CALL_parser___ReduceAction___action(variable[13])(variable[13], variable[14]) /*ReduceAction::action*/;
       } else { /*if*/
         variable[13] = TAG_Bool(( variable[9] /*action_type*/)==( TAG_Int(2)));
         if (UNTAG_Bool(variable[13])) { /*if*/
-          variable[14] = ((lexer___Lexer___next_t)CALL( variable[3] /*lexer*/,COLOR_lexer___Lexer___next))( variable[3] /*lexer*/) /*Lexer::next*/;
+          variable[14] = CALL_lexer___Lexer___next( variable[3] /*lexer*/)( variable[3] /*lexer*/) /*Lexer::next*/;
           variable[13] = variable[14];
           variable[14] = TAG_Bool(( variable[13] /*node2*/==NIT_NULL) || VAL_ISA( variable[13] /*node2*/, COLOR_EOF, ID_EOF)) /*cast EOF*/;
           if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___Parser___parse, LOCATE_parser, 143); nit_exit(1);}
           variable[15] = variable[0];
-          variable[15] = ((parser___Parser___pop_t)CALL(variable[15],COLOR_parser___Parser___pop))(variable[15]) /*Parser::pop*/;
+          variable[15] = CALL_parser___Parser___pop(variable[15])(variable[15]) /*Parser::pop*/;
           variable[14] = variable[15];
           variable[15] = TAG_Bool(( variable[14] /*node1*/==NIT_NULL) || VAL_ISA( variable[14] /*node1*/, COLOR_PModule, ID_PModule)) /*cast PModule*/;
           if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___Parser___parse, LOCATE_parser, 145); nit_exit(1);}
           variable[16] = NEW_Start_parser_prod___Start___init( variable[14] /*node1*/,  variable[13] /*node2*/); /*new Start*/
           variable[15] = variable[16];
           variable[16] = NEW_SearchTokensVisitor_parser___SearchTokensVisitor___init(); /*new SearchTokensVisitor*/
-          ((parser___SearchTokensVisitor___visit_t)CALL(variable[16],COLOR_parser_prod___Visitor___visit))(variable[16],  variable[15] /*node*/) /*SearchTokensVisitor::visit*/;
+          CALL_parser_prod___Visitor___visit(variable[16])(variable[16],  variable[15] /*node*/) /*SearchTokensVisitor::visit*/;
           variable[1] =  variable[15] /*node*/;
           goto return_label15;
         } else { /*if*/
           variable[13] = TAG_Bool(( variable[9] /*action_type*/)==( TAG_Int(3)));
           if (UNTAG_Bool(variable[13])) { /*if*/
-            variable[14] = ((lexer___Lexer___filename_t)CALL( variable[3] /*lexer*/,COLOR_lexer___Lexer___filename))( variable[3] /*lexer*/) /*Lexer::filename*/;
+            variable[14] = CALL_lexer___Lexer___filename( variable[3] /*lexer*/)( variable[3] /*lexer*/) /*Lexer::filename*/;
             variable[15] = variable[0];
-            variable[15] = ((parser_tables___ParserTable___error_messages_t)CALL(variable[15],COLOR_parser_tables___ParserTable___error_messages))(variable[15]) /*ParserTable::error_messages*/;
+            variable[15] = CALL_parser_tables___ParserTable___error_messages(variable[15])(variable[15]) /*ParserTable::error_messages*/;
             variable[16] = variable[0];
-            variable[16] = ((parser_tables___ParserTable___errors_t)CALL(variable[16],COLOR_parser_tables___ParserTable___errors))(variable[16]) /*ParserTable::errors*/;
+            variable[16] = CALL_parser_tables___ParserTable___errors(variable[16])(variable[16]) /*ParserTable::errors*/;
             variable[17] = variable[16];
             variable[18] =  variable[10] /*action_value*/;
             variable[20] = TAG_Bool(UNTAG_Int( variable[18] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -677,1313 +677,1313 @@ void parser___Parser___build_reduce_table(val_t  self) {
   variable[2] = variable[0];
   variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(654)); /*new Array[ReduceAction]*/
   variable[4] = NEW_ReduceAction0_parser___ReduceAction0___init(); /*new ReduceAction0*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
   variable[5] = NEW_ReduceAction1_parser___ReduceAction1___init(); /*new ReduceAction1*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[5]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] = NEW_ReduceAction2_parser___ReduceAction2___init(); /*new ReduceAction2*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[6]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_ReduceAction3_parser___ReduceAction3___init(); /*new ReduceAction3*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[7]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_ReduceAction4_parser___ReduceAction4___init(); /*new ReduceAction4*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[8]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_ReduceAction5_parser___ReduceAction5___init(); /*new ReduceAction5*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[9]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_ReduceAction6_parser___ReduceAction6___init(); /*new ReduceAction6*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[10]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_ReduceAction7_parser___ReduceAction7___init(); /*new ReduceAction7*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[11]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_ReduceAction8_parser___ReduceAction8___init(); /*new ReduceAction8*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[12]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_ReduceAction9_parser___ReduceAction9___init(); /*new ReduceAction9*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[13]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
   variable[14] = NEW_ReduceAction10_parser___ReduceAction10___init(); /*new ReduceAction10*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[14]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_ReduceAction11_parser___ReduceAction11___init(); /*new ReduceAction11*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[15]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[15]) /*AbstractArray::add*/;
   variable[16] = NEW_ReduceAction12_parser___ReduceAction12___init(); /*new ReduceAction12*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[16]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[16]) /*AbstractArray::add*/;
   variable[17] = NEW_ReduceAction13_parser___ReduceAction13___init(); /*new ReduceAction13*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[17]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[17]) /*AbstractArray::add*/;
   variable[18] = NEW_ReduceAction14_parser___ReduceAction14___init(); /*new ReduceAction14*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[18]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[18]) /*AbstractArray::add*/;
   variable[19] = NEW_ReduceAction15_parser___ReduceAction15___init(); /*new ReduceAction15*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[19]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[19]) /*AbstractArray::add*/;
   variable[20] = NEW_ReduceAction16_parser___ReduceAction16___init(); /*new ReduceAction16*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[20]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[20]) /*AbstractArray::add*/;
   variable[21] = NEW_ReduceAction17_parser___ReduceAction17___init(); /*new ReduceAction17*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[21]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[21]) /*AbstractArray::add*/;
   variable[22] = NEW_ReduceAction18_parser___ReduceAction18___init(); /*new ReduceAction18*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[22]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[22]) /*AbstractArray::add*/;
   variable[23] = NEW_ReduceAction19_parser___ReduceAction19___init(); /*new ReduceAction19*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[23]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[23]) /*AbstractArray::add*/;
   variable[24] = NEW_ReduceAction20_parser___ReduceAction20___init(); /*new ReduceAction20*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[24]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[24]) /*AbstractArray::add*/;
   variable[25] = NEW_ReduceAction21_parser___ReduceAction21___init(); /*new ReduceAction21*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[25]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[25]) /*AbstractArray::add*/;
   variable[26] = NEW_ReduceAction22_parser___ReduceAction22___init(); /*new ReduceAction22*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[26]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[26]) /*AbstractArray::add*/;
   variable[27] = NEW_ReduceAction23_parser___ReduceAction23___init(); /*new ReduceAction23*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[27]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[27]) /*AbstractArray::add*/;
   variable[28] = NEW_ReduceAction24_parser___ReduceAction24___init(); /*new ReduceAction24*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[28]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[28]) /*AbstractArray::add*/;
   variable[29] = NEW_ReduceAction25_parser___ReduceAction25___init(); /*new ReduceAction25*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[29]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[29]) /*AbstractArray::add*/;
   variable[30] = NEW_ReduceAction26_parser___ReduceAction26___init(); /*new ReduceAction26*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[30]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[30]) /*AbstractArray::add*/;
   variable[31] = NEW_ReduceAction27_parser___ReduceAction27___init(); /*new ReduceAction27*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[31]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[31]) /*AbstractArray::add*/;
   variable[32] = NEW_ReduceAction28_parser___ReduceAction28___init(); /*new ReduceAction28*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[32]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[32]) /*AbstractArray::add*/;
   variable[33] = NEW_ReduceAction29_parser___ReduceAction29___init(); /*new ReduceAction29*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[33]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[33]) /*AbstractArray::add*/;
   variable[34] = NEW_ReduceAction30_parser___ReduceAction30___init(); /*new ReduceAction30*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[34]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[34]) /*AbstractArray::add*/;
   variable[35] = NEW_ReduceAction31_parser___ReduceAction31___init(); /*new ReduceAction31*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[35]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[35]) /*AbstractArray::add*/;
   variable[36] = NEW_ReduceAction32_parser___ReduceAction32___init(); /*new ReduceAction32*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[36]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[36]) /*AbstractArray::add*/;
   variable[37] = NEW_ReduceAction33_parser___ReduceAction33___init(); /*new ReduceAction33*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[37]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[37]) /*AbstractArray::add*/;
   variable[38] = NEW_ReduceAction34_parser___ReduceAction34___init(); /*new ReduceAction34*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[38]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[38]) /*AbstractArray::add*/;
   variable[39] = NEW_ReduceAction35_parser___ReduceAction35___init(); /*new ReduceAction35*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[39]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[39]) /*AbstractArray::add*/;
   variable[40] = NEW_ReduceAction36_parser___ReduceAction36___init(); /*new ReduceAction36*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[40]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[40]) /*AbstractArray::add*/;
   variable[41] = NEW_ReduceAction37_parser___ReduceAction37___init(); /*new ReduceAction37*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[41]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[41]) /*AbstractArray::add*/;
   variable[42] = NEW_ReduceAction38_parser___ReduceAction38___init(); /*new ReduceAction38*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[42]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[42]) /*AbstractArray::add*/;
   variable[43] = NEW_ReduceAction39_parser___ReduceAction39___init(); /*new ReduceAction39*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[43]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[43]) /*AbstractArray::add*/;
   variable[44] = NEW_ReduceAction40_parser___ReduceAction40___init(); /*new ReduceAction40*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[44]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[44]) /*AbstractArray::add*/;
   variable[45] = NEW_ReduceAction41_parser___ReduceAction41___init(); /*new ReduceAction41*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[45]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[45]) /*AbstractArray::add*/;
   variable[46] = NEW_ReduceAction42_parser___ReduceAction42___init(); /*new ReduceAction42*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[46]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[46]) /*AbstractArray::add*/;
   variable[47] = NEW_ReduceAction43_parser___ReduceAction43___init(); /*new ReduceAction43*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[47]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[47]) /*AbstractArray::add*/;
   variable[48] = NEW_ReduceAction44_parser___ReduceAction44___init(); /*new ReduceAction44*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[48]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[48]) /*AbstractArray::add*/;
   variable[49] = NEW_ReduceAction45_parser___ReduceAction45___init(); /*new ReduceAction45*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[49]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[49]) /*AbstractArray::add*/;
   variable[50] = NEW_ReduceAction46_parser___ReduceAction46___init(); /*new ReduceAction46*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[50]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[50]) /*AbstractArray::add*/;
   variable[51] = NEW_ReduceAction47_parser___ReduceAction47___init(); /*new ReduceAction47*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[51]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[51]) /*AbstractArray::add*/;
   variable[52] = NEW_ReduceAction48_parser___ReduceAction48___init(); /*new ReduceAction48*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[52]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[52]) /*AbstractArray::add*/;
   variable[53] = NEW_ReduceAction49_parser___ReduceAction49___init(); /*new ReduceAction49*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[53]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[53]) /*AbstractArray::add*/;
   variable[54] = NEW_ReduceAction50_parser___ReduceAction50___init(); /*new ReduceAction50*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[54]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[54]) /*AbstractArray::add*/;
   variable[55] = NEW_ReduceAction51_parser___ReduceAction51___init(); /*new ReduceAction51*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[55]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[55]) /*AbstractArray::add*/;
   variable[56] = NEW_ReduceAction52_parser___ReduceAction52___init(); /*new ReduceAction52*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[56]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[56]) /*AbstractArray::add*/;
   variable[57] = NEW_ReduceAction53_parser___ReduceAction53___init(); /*new ReduceAction53*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[57]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[57]) /*AbstractArray::add*/;
   variable[58] = NEW_ReduceAction54_parser___ReduceAction54___init(); /*new ReduceAction54*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[58]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[58]) /*AbstractArray::add*/;
   variable[59] = NEW_ReduceAction55_parser___ReduceAction55___init(); /*new ReduceAction55*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[59]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[59]) /*AbstractArray::add*/;
   variable[60] = NEW_ReduceAction56_parser___ReduceAction56___init(); /*new ReduceAction56*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[60]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[60]) /*AbstractArray::add*/;
   variable[61] = NEW_ReduceAction57_parser___ReduceAction57___init(); /*new ReduceAction57*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[61]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[61]) /*AbstractArray::add*/;
   variable[62] = NEW_ReduceAction58_parser___ReduceAction58___init(); /*new ReduceAction58*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[62]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[62]) /*AbstractArray::add*/;
   variable[63] = NEW_ReduceAction59_parser___ReduceAction59___init(); /*new ReduceAction59*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[63]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[63]) /*AbstractArray::add*/;
   variable[64] = NEW_ReduceAction60_parser___ReduceAction60___init(); /*new ReduceAction60*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[64]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[64]) /*AbstractArray::add*/;
   variable[65] = NEW_ReduceAction61_parser___ReduceAction61___init(); /*new ReduceAction61*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[65]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[65]) /*AbstractArray::add*/;
   variable[66] = NEW_ReduceAction62_parser___ReduceAction62___init(); /*new ReduceAction62*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[66]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[66]) /*AbstractArray::add*/;
   variable[67] = NEW_ReduceAction63_parser___ReduceAction63___init(); /*new ReduceAction63*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[67]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[67]) /*AbstractArray::add*/;
   variable[68] = NEW_ReduceAction64_parser___ReduceAction64___init(); /*new ReduceAction64*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[68]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[68]) /*AbstractArray::add*/;
   variable[69] = NEW_ReduceAction65_parser___ReduceAction65___init(); /*new ReduceAction65*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[69]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[69]) /*AbstractArray::add*/;
   variable[70] = NEW_ReduceAction66_parser___ReduceAction66___init(); /*new ReduceAction66*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[70]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[70]) /*AbstractArray::add*/;
   variable[71] = NEW_ReduceAction67_parser___ReduceAction67___init(); /*new ReduceAction67*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[71]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[71]) /*AbstractArray::add*/;
   variable[72] = NEW_ReduceAction68_parser___ReduceAction68___init(); /*new ReduceAction68*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[72]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[72]) /*AbstractArray::add*/;
   variable[73] = NEW_ReduceAction69_parser___ReduceAction69___init(); /*new ReduceAction69*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[73]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[73]) /*AbstractArray::add*/;
   variable[74] = NEW_ReduceAction70_parser___ReduceAction70___init(); /*new ReduceAction70*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[74]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[74]) /*AbstractArray::add*/;
   variable[75] = NEW_ReduceAction71_parser___ReduceAction71___init(); /*new ReduceAction71*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[75]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[75]) /*AbstractArray::add*/;
   variable[76] = NEW_ReduceAction72_parser___ReduceAction72___init(); /*new ReduceAction72*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[76]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[76]) /*AbstractArray::add*/;
   variable[77] = NEW_ReduceAction73_parser___ReduceAction73___init(); /*new ReduceAction73*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[77]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[77]) /*AbstractArray::add*/;
   variable[78] = NEW_ReduceAction74_parser___ReduceAction74___init(); /*new ReduceAction74*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[78]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[78]) /*AbstractArray::add*/;
   variable[79] = NEW_ReduceAction75_parser___ReduceAction75___init(); /*new ReduceAction75*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[79]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[79]) /*AbstractArray::add*/;
   variable[80] = NEW_ReduceAction76_parser___ReduceAction76___init(); /*new ReduceAction76*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[80]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[80]) /*AbstractArray::add*/;
   variable[81] = NEW_ReduceAction77_parser___ReduceAction77___init(); /*new ReduceAction77*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[81]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[81]) /*AbstractArray::add*/;
   variable[82] = NEW_ReduceAction78_parser___ReduceAction78___init(); /*new ReduceAction78*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[82]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[82]) /*AbstractArray::add*/;
   variable[83] = NEW_ReduceAction79_parser___ReduceAction79___init(); /*new ReduceAction79*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[83]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[83]) /*AbstractArray::add*/;
   variable[84] = NEW_ReduceAction80_parser___ReduceAction80___init(); /*new ReduceAction80*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[84]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[84]) /*AbstractArray::add*/;
   variable[85] = NEW_ReduceAction81_parser___ReduceAction81___init(); /*new ReduceAction81*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[85]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[85]) /*AbstractArray::add*/;
   variable[86] = NEW_ReduceAction82_parser___ReduceAction82___init(); /*new ReduceAction82*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[86]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[86]) /*AbstractArray::add*/;
   variable[87] = NEW_ReduceAction83_parser___ReduceAction83___init(); /*new ReduceAction83*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[87]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[87]) /*AbstractArray::add*/;
   variable[88] = NEW_ReduceAction84_parser___ReduceAction84___init(); /*new ReduceAction84*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[88]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[88]) /*AbstractArray::add*/;
   variable[89] = NEW_ReduceAction85_parser___ReduceAction85___init(); /*new ReduceAction85*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[89]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[89]) /*AbstractArray::add*/;
   variable[90] = NEW_ReduceAction86_parser___ReduceAction86___init(); /*new ReduceAction86*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[90]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[90]) /*AbstractArray::add*/;
   variable[91] = NEW_ReduceAction87_parser___ReduceAction87___init(); /*new ReduceAction87*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[91]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[91]) /*AbstractArray::add*/;
   variable[92] = NEW_ReduceAction88_parser___ReduceAction88___init(); /*new ReduceAction88*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[92]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[92]) /*AbstractArray::add*/;
   variable[93] = NEW_ReduceAction89_parser___ReduceAction89___init(); /*new ReduceAction89*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[93]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[93]) /*AbstractArray::add*/;
   variable[94] = NEW_ReduceAction90_parser___ReduceAction90___init(); /*new ReduceAction90*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[94]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[94]) /*AbstractArray::add*/;
   variable[95] = NEW_ReduceAction91_parser___ReduceAction91___init(); /*new ReduceAction91*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[95]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[95]) /*AbstractArray::add*/;
   variable[96] = NEW_ReduceAction92_parser___ReduceAction92___init(); /*new ReduceAction92*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[96]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[96]) /*AbstractArray::add*/;
   variable[97] = NEW_ReduceAction93_parser___ReduceAction93___init(); /*new ReduceAction93*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[97]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[97]) /*AbstractArray::add*/;
   variable[98] = NEW_ReduceAction94_parser___ReduceAction94___init(); /*new ReduceAction94*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[98]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[98]) /*AbstractArray::add*/;
   variable[99] = NEW_ReduceAction95_parser___ReduceAction95___init(); /*new ReduceAction95*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[99]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[99]) /*AbstractArray::add*/;
   variable[100] = NEW_ReduceAction96_parser___ReduceAction96___init(); /*new ReduceAction96*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[100]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[100]) /*AbstractArray::add*/;
   variable[101] = NEW_ReduceAction97_parser___ReduceAction97___init(); /*new ReduceAction97*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[101]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[101]) /*AbstractArray::add*/;
   variable[102] = NEW_ReduceAction98_parser___ReduceAction98___init(); /*new ReduceAction98*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[102]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[102]) /*AbstractArray::add*/;
   variable[103] = NEW_ReduceAction99_parser___ReduceAction99___init(); /*new ReduceAction99*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[103]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[103]) /*AbstractArray::add*/;
   variable[104] = NEW_ReduceAction100_parser___ReduceAction100___init(); /*new ReduceAction100*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[104]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[104]) /*AbstractArray::add*/;
   variable[105] = NEW_ReduceAction101_parser___ReduceAction101___init(); /*new ReduceAction101*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[105]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[105]) /*AbstractArray::add*/;
   variable[106] = NEW_ReduceAction102_parser___ReduceAction102___init(); /*new ReduceAction102*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[106]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[106]) /*AbstractArray::add*/;
   variable[107] = NEW_ReduceAction103_parser___ReduceAction103___init(); /*new ReduceAction103*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[107]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[107]) /*AbstractArray::add*/;
   variable[108] = NEW_ReduceAction104_parser___ReduceAction104___init(); /*new ReduceAction104*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[108]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[108]) /*AbstractArray::add*/;
   variable[109] = NEW_ReduceAction105_parser___ReduceAction105___init(); /*new ReduceAction105*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[109]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[109]) /*AbstractArray::add*/;
   variable[110] = NEW_ReduceAction106_parser___ReduceAction106___init(); /*new ReduceAction106*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[110]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[110]) /*AbstractArray::add*/;
   variable[111] = NEW_ReduceAction107_parser___ReduceAction107___init(); /*new ReduceAction107*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[111]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[111]) /*AbstractArray::add*/;
   variable[112] = NEW_ReduceAction108_parser___ReduceAction108___init(); /*new ReduceAction108*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[112]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[112]) /*AbstractArray::add*/;
   variable[113] = NEW_ReduceAction109_parser___ReduceAction109___init(); /*new ReduceAction109*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[113]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[113]) /*AbstractArray::add*/;
   variable[114] = NEW_ReduceAction110_parser___ReduceAction110___init(); /*new ReduceAction110*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[114]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[114]) /*AbstractArray::add*/;
   variable[115] = NEW_ReduceAction111_parser___ReduceAction111___init(); /*new ReduceAction111*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[115]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[115]) /*AbstractArray::add*/;
   variable[116] = NEW_ReduceAction112_parser___ReduceAction112___init(); /*new ReduceAction112*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[116]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[116]) /*AbstractArray::add*/;
   variable[117] = NEW_ReduceAction113_parser___ReduceAction113___init(); /*new ReduceAction113*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[117]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[117]) /*AbstractArray::add*/;
   variable[118] = NEW_ReduceAction114_parser___ReduceAction114___init(); /*new ReduceAction114*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[118]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[118]) /*AbstractArray::add*/;
   variable[119] = NEW_ReduceAction115_parser___ReduceAction115___init(); /*new ReduceAction115*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[119]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[119]) /*AbstractArray::add*/;
   variable[120] = NEW_ReduceAction116_parser___ReduceAction116___init(); /*new ReduceAction116*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[120]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[120]) /*AbstractArray::add*/;
   variable[121] = NEW_ReduceAction117_parser___ReduceAction117___init(); /*new ReduceAction117*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[121]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[121]) /*AbstractArray::add*/;
   variable[122] = NEW_ReduceAction118_parser___ReduceAction118___init(); /*new ReduceAction118*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[122]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[122]) /*AbstractArray::add*/;
   variable[123] = NEW_ReduceAction119_parser___ReduceAction119___init(); /*new ReduceAction119*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[123]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[123]) /*AbstractArray::add*/;
   variable[124] = NEW_ReduceAction120_parser___ReduceAction120___init(); /*new ReduceAction120*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[124]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[124]) /*AbstractArray::add*/;
   variable[125] = NEW_ReduceAction121_parser___ReduceAction121___init(); /*new ReduceAction121*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[125]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[125]) /*AbstractArray::add*/;
   variable[126] = NEW_ReduceAction122_parser___ReduceAction122___init(); /*new ReduceAction122*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[126]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[126]) /*AbstractArray::add*/;
   variable[127] = NEW_ReduceAction123_parser___ReduceAction123___init(); /*new ReduceAction123*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[127]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[127]) /*AbstractArray::add*/;
   variable[128] = NEW_ReduceAction124_parser___ReduceAction124___init(); /*new ReduceAction124*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[128]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[128]) /*AbstractArray::add*/;
   variable[129] = NEW_ReduceAction125_parser___ReduceAction125___init(); /*new ReduceAction125*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[129]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[129]) /*AbstractArray::add*/;
   variable[130] = NEW_ReduceAction126_parser___ReduceAction126___init(); /*new ReduceAction126*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[130]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[130]) /*AbstractArray::add*/;
   variable[131] = NEW_ReduceAction127_parser___ReduceAction127___init(); /*new ReduceAction127*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[131]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[131]) /*AbstractArray::add*/;
   variable[132] = NEW_ReduceAction128_parser___ReduceAction128___init(); /*new ReduceAction128*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[132]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[132]) /*AbstractArray::add*/;
   variable[133] = NEW_ReduceAction129_parser___ReduceAction129___init(); /*new ReduceAction129*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[133]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[133]) /*AbstractArray::add*/;
   variable[134] = NEW_ReduceAction130_parser___ReduceAction130___init(); /*new ReduceAction130*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[134]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[134]) /*AbstractArray::add*/;
   variable[135] = NEW_ReduceAction131_parser___ReduceAction131___init(); /*new ReduceAction131*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[135]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[135]) /*AbstractArray::add*/;
   variable[136] = NEW_ReduceAction132_parser___ReduceAction132___init(); /*new ReduceAction132*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[136]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[136]) /*AbstractArray::add*/;
   variable[137] = NEW_ReduceAction133_parser___ReduceAction133___init(); /*new ReduceAction133*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[137]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[137]) /*AbstractArray::add*/;
   variable[138] = NEW_ReduceAction134_parser___ReduceAction134___init(); /*new ReduceAction134*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[138]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[138]) /*AbstractArray::add*/;
   variable[139] = NEW_ReduceAction135_parser___ReduceAction135___init(); /*new ReduceAction135*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[139]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[139]) /*AbstractArray::add*/;
   variable[140] = NEW_ReduceAction136_parser___ReduceAction136___init(); /*new ReduceAction136*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[140]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[140]) /*AbstractArray::add*/;
   variable[141] = NEW_ReduceAction137_parser___ReduceAction137___init(); /*new ReduceAction137*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[141]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[141]) /*AbstractArray::add*/;
   variable[142] = NEW_ReduceAction138_parser___ReduceAction138___init(); /*new ReduceAction138*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[142]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[142]) /*AbstractArray::add*/;
   variable[143] = NEW_ReduceAction139_parser___ReduceAction139___init(); /*new ReduceAction139*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[143]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[143]) /*AbstractArray::add*/;
   variable[144] = NEW_ReduceAction140_parser___ReduceAction140___init(); /*new ReduceAction140*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[144]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[144]) /*AbstractArray::add*/;
   variable[145] = NEW_ReduceAction141_parser___ReduceAction141___init(); /*new ReduceAction141*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[145]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[145]) /*AbstractArray::add*/;
   variable[146] = NEW_ReduceAction142_parser___ReduceAction142___init(); /*new ReduceAction142*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[146]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[146]) /*AbstractArray::add*/;
   variable[147] = NEW_ReduceAction143_parser___ReduceAction143___init(); /*new ReduceAction143*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[147]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[147]) /*AbstractArray::add*/;
   variable[148] = NEW_ReduceAction144_parser___ReduceAction144___init(); /*new ReduceAction144*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[148]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[148]) /*AbstractArray::add*/;
   variable[149] = NEW_ReduceAction145_parser___ReduceAction145___init(); /*new ReduceAction145*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[149]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[149]) /*AbstractArray::add*/;
   variable[150] = NEW_ReduceAction146_parser___ReduceAction146___init(); /*new ReduceAction146*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[150]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[150]) /*AbstractArray::add*/;
   variable[151] = NEW_ReduceAction147_parser___ReduceAction147___init(); /*new ReduceAction147*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[151]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[151]) /*AbstractArray::add*/;
   variable[152] = NEW_ReduceAction148_parser___ReduceAction148___init(); /*new ReduceAction148*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[152]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[152]) /*AbstractArray::add*/;
   variable[153] = NEW_ReduceAction149_parser___ReduceAction149___init(); /*new ReduceAction149*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[153]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[153]) /*AbstractArray::add*/;
   variable[154] = NEW_ReduceAction150_parser___ReduceAction150___init(); /*new ReduceAction150*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[154]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[154]) /*AbstractArray::add*/;
   variable[155] = NEW_ReduceAction151_parser___ReduceAction151___init(); /*new ReduceAction151*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[155]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[155]) /*AbstractArray::add*/;
   variable[156] = NEW_ReduceAction152_parser___ReduceAction152___init(); /*new ReduceAction152*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[156]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[156]) /*AbstractArray::add*/;
   variable[157] = NEW_ReduceAction153_parser___ReduceAction153___init(); /*new ReduceAction153*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[157]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[157]) /*AbstractArray::add*/;
   variable[158] = NEW_ReduceAction154_parser___ReduceAction154___init(); /*new ReduceAction154*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[158]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[158]) /*AbstractArray::add*/;
   variable[159] = NEW_ReduceAction155_parser___ReduceAction155___init(); /*new ReduceAction155*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[159]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[159]) /*AbstractArray::add*/;
   variable[160] = NEW_ReduceAction156_parser___ReduceAction156___init(); /*new ReduceAction156*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[160]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[160]) /*AbstractArray::add*/;
   variable[161] = NEW_ReduceAction157_parser___ReduceAction157___init(); /*new ReduceAction157*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[161]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[161]) /*AbstractArray::add*/;
   variable[162] = NEW_ReduceAction158_parser___ReduceAction158___init(); /*new ReduceAction158*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[162]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[162]) /*AbstractArray::add*/;
   variable[163] = NEW_ReduceAction159_parser___ReduceAction159___init(); /*new ReduceAction159*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[163]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[163]) /*AbstractArray::add*/;
   variable[164] = NEW_ReduceAction160_parser___ReduceAction160___init(); /*new ReduceAction160*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[164]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[164]) /*AbstractArray::add*/;
   variable[165] = NEW_ReduceAction161_parser___ReduceAction161___init(); /*new ReduceAction161*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[165]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[165]) /*AbstractArray::add*/;
   variable[166] = NEW_ReduceAction162_parser___ReduceAction162___init(); /*new ReduceAction162*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[166]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[166]) /*AbstractArray::add*/;
   variable[167] = NEW_ReduceAction163_parser___ReduceAction163___init(); /*new ReduceAction163*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[167]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[167]) /*AbstractArray::add*/;
   variable[168] = NEW_ReduceAction164_parser___ReduceAction164___init(); /*new ReduceAction164*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[168]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[168]) /*AbstractArray::add*/;
   variable[169] = NEW_ReduceAction165_parser___ReduceAction165___init(); /*new ReduceAction165*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[169]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[169]) /*AbstractArray::add*/;
   variable[170] = NEW_ReduceAction166_parser___ReduceAction166___init(); /*new ReduceAction166*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[170]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[170]) /*AbstractArray::add*/;
   variable[171] = NEW_ReduceAction167_parser___ReduceAction167___init(); /*new ReduceAction167*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[171]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[171]) /*AbstractArray::add*/;
   variable[172] = NEW_ReduceAction168_parser___ReduceAction168___init(); /*new ReduceAction168*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[172]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[172]) /*AbstractArray::add*/;
   variable[173] = NEW_ReduceAction169_parser___ReduceAction169___init(); /*new ReduceAction169*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[173]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[173]) /*AbstractArray::add*/;
   variable[174] = NEW_ReduceAction170_parser___ReduceAction170___init(); /*new ReduceAction170*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[174]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[174]) /*AbstractArray::add*/;
   variable[175] = NEW_ReduceAction171_parser___ReduceAction171___init(); /*new ReduceAction171*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[175]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[175]) /*AbstractArray::add*/;
   variable[176] = NEW_ReduceAction172_parser___ReduceAction172___init(); /*new ReduceAction172*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[176]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[176]) /*AbstractArray::add*/;
   variable[177] = NEW_ReduceAction173_parser___ReduceAction173___init(); /*new ReduceAction173*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[177]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[177]) /*AbstractArray::add*/;
   variable[178] = NEW_ReduceAction174_parser___ReduceAction174___init(); /*new ReduceAction174*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[178]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[178]) /*AbstractArray::add*/;
   variable[179] = NEW_ReduceAction175_parser___ReduceAction175___init(); /*new ReduceAction175*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[179]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[179]) /*AbstractArray::add*/;
   variable[180] = NEW_ReduceAction176_parser___ReduceAction176___init(); /*new ReduceAction176*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[180]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[180]) /*AbstractArray::add*/;
   variable[181] = NEW_ReduceAction177_parser___ReduceAction177___init(); /*new ReduceAction177*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[181]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[181]) /*AbstractArray::add*/;
   variable[182] = NEW_ReduceAction178_parser___ReduceAction178___init(); /*new ReduceAction178*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[182]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[182]) /*AbstractArray::add*/;
   variable[183] = NEW_ReduceAction179_parser___ReduceAction179___init(); /*new ReduceAction179*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[183]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[183]) /*AbstractArray::add*/;
   variable[184] = NEW_ReduceAction180_parser___ReduceAction180___init(); /*new ReduceAction180*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[184]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[184]) /*AbstractArray::add*/;
   variable[185] = NEW_ReduceAction181_parser___ReduceAction181___init(); /*new ReduceAction181*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[185]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[185]) /*AbstractArray::add*/;
   variable[186] = NEW_ReduceAction182_parser___ReduceAction182___init(); /*new ReduceAction182*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[186]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[186]) /*AbstractArray::add*/;
   variable[187] = NEW_ReduceAction183_parser___ReduceAction183___init(); /*new ReduceAction183*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[187]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[187]) /*AbstractArray::add*/;
   variable[188] = NEW_ReduceAction184_parser___ReduceAction184___init(); /*new ReduceAction184*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[188]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[188]) /*AbstractArray::add*/;
   variable[189] = NEW_ReduceAction185_parser___ReduceAction185___init(); /*new ReduceAction185*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[189]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[189]) /*AbstractArray::add*/;
   variable[190] = NEW_ReduceAction186_parser___ReduceAction186___init(); /*new ReduceAction186*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[190]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[190]) /*AbstractArray::add*/;
   variable[191] = NEW_ReduceAction187_parser___ReduceAction187___init(); /*new ReduceAction187*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[191]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[191]) /*AbstractArray::add*/;
   variable[192] = NEW_ReduceAction188_parser___ReduceAction188___init(); /*new ReduceAction188*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[192]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[192]) /*AbstractArray::add*/;
   variable[193] = NEW_ReduceAction189_parser___ReduceAction189___init(); /*new ReduceAction189*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[193]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[193]) /*AbstractArray::add*/;
   variable[194] = NEW_ReduceAction190_parser___ReduceAction190___init(); /*new ReduceAction190*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[194]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[194]) /*AbstractArray::add*/;
   variable[195] = NEW_ReduceAction191_parser___ReduceAction191___init(); /*new ReduceAction191*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[195]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[195]) /*AbstractArray::add*/;
   variable[196] = NEW_ReduceAction192_parser___ReduceAction192___init(); /*new ReduceAction192*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[196]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[196]) /*AbstractArray::add*/;
   variable[197] = NEW_ReduceAction193_parser___ReduceAction193___init(); /*new ReduceAction193*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[197]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[197]) /*AbstractArray::add*/;
   variable[198] = NEW_ReduceAction194_parser___ReduceAction194___init(); /*new ReduceAction194*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[198]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[198]) /*AbstractArray::add*/;
   variable[199] = NEW_ReduceAction195_parser___ReduceAction195___init(); /*new ReduceAction195*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[199]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[199]) /*AbstractArray::add*/;
   variable[200] = NEW_ReduceAction196_parser___ReduceAction196___init(); /*new ReduceAction196*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[200]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[200]) /*AbstractArray::add*/;
   variable[201] = NEW_ReduceAction197_parser___ReduceAction197___init(); /*new ReduceAction197*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[201]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[201]) /*AbstractArray::add*/;
   variable[202] = NEW_ReduceAction198_parser___ReduceAction198___init(); /*new ReduceAction198*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[202]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[202]) /*AbstractArray::add*/;
   variable[203] = NEW_ReduceAction199_parser___ReduceAction199___init(); /*new ReduceAction199*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[203]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[203]) /*AbstractArray::add*/;
   variable[204] = NEW_ReduceAction200_parser___ReduceAction200___init(); /*new ReduceAction200*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[204]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[204]) /*AbstractArray::add*/;
   variable[205] = NEW_ReduceAction201_parser___ReduceAction201___init(); /*new ReduceAction201*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[205]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[205]) /*AbstractArray::add*/;
   variable[206] = NEW_ReduceAction202_parser___ReduceAction202___init(); /*new ReduceAction202*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[206]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[206]) /*AbstractArray::add*/;
   variable[207] = NEW_ReduceAction203_parser___ReduceAction203___init(); /*new ReduceAction203*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[207]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[207]) /*AbstractArray::add*/;
   variable[208] = NEW_ReduceAction204_parser___ReduceAction204___init(); /*new ReduceAction204*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[208]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[208]) /*AbstractArray::add*/;
   variable[209] = NEW_ReduceAction205_parser___ReduceAction205___init(); /*new ReduceAction205*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[209]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[209]) /*AbstractArray::add*/;
   variable[210] = NEW_ReduceAction206_parser___ReduceAction206___init(); /*new ReduceAction206*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[210]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[210]) /*AbstractArray::add*/;
   variable[211] = NEW_ReduceAction207_parser___ReduceAction207___init(); /*new ReduceAction207*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[211]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[211]) /*AbstractArray::add*/;
   variable[212] = NEW_ReduceAction208_parser___ReduceAction208___init(); /*new ReduceAction208*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[212]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[212]) /*AbstractArray::add*/;
   variable[213] = NEW_ReduceAction209_parser___ReduceAction209___init(); /*new ReduceAction209*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[213]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[213]) /*AbstractArray::add*/;
   variable[214] = NEW_ReduceAction210_parser___ReduceAction210___init(); /*new ReduceAction210*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[214]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[214]) /*AbstractArray::add*/;
   variable[215] = NEW_ReduceAction211_parser___ReduceAction211___init(); /*new ReduceAction211*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[215]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[215]) /*AbstractArray::add*/;
   variable[216] = NEW_ReduceAction212_parser___ReduceAction212___init(); /*new ReduceAction212*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[216]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[216]) /*AbstractArray::add*/;
   variable[217] = NEW_ReduceAction213_parser___ReduceAction213___init(); /*new ReduceAction213*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[217]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[217]) /*AbstractArray::add*/;
   variable[218] = NEW_ReduceAction214_parser___ReduceAction214___init(); /*new ReduceAction214*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[218]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[218]) /*AbstractArray::add*/;
   variable[219] = NEW_ReduceAction215_parser___ReduceAction215___init(); /*new ReduceAction215*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[219]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[219]) /*AbstractArray::add*/;
   variable[220] = NEW_ReduceAction216_parser___ReduceAction216___init(); /*new ReduceAction216*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[220]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[220]) /*AbstractArray::add*/;
   variable[221] = NEW_ReduceAction217_parser___ReduceAction217___init(); /*new ReduceAction217*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[221]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[221]) /*AbstractArray::add*/;
   variable[222] = NEW_ReduceAction218_parser___ReduceAction218___init(); /*new ReduceAction218*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[222]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[222]) /*AbstractArray::add*/;
   variable[223] = NEW_ReduceAction219_parser___ReduceAction219___init(); /*new ReduceAction219*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[223]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[223]) /*AbstractArray::add*/;
   variable[224] = NEW_ReduceAction220_parser___ReduceAction220___init(); /*new ReduceAction220*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[224]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[224]) /*AbstractArray::add*/;
   variable[225] = NEW_ReduceAction221_parser___ReduceAction221___init(); /*new ReduceAction221*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[225]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[225]) /*AbstractArray::add*/;
   variable[226] = NEW_ReduceAction222_parser___ReduceAction222___init(); /*new ReduceAction222*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[226]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[226]) /*AbstractArray::add*/;
   variable[227] = NEW_ReduceAction223_parser___ReduceAction223___init(); /*new ReduceAction223*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[227]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[227]) /*AbstractArray::add*/;
   variable[228] = NEW_ReduceAction224_parser___ReduceAction224___init(); /*new ReduceAction224*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[228]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[228]) /*AbstractArray::add*/;
   variable[229] = NEW_ReduceAction225_parser___ReduceAction225___init(); /*new ReduceAction225*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[229]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[229]) /*AbstractArray::add*/;
   variable[230] = NEW_ReduceAction226_parser___ReduceAction226___init(); /*new ReduceAction226*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[230]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[230]) /*AbstractArray::add*/;
   variable[231] = NEW_ReduceAction227_parser___ReduceAction227___init(); /*new ReduceAction227*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[231]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[231]) /*AbstractArray::add*/;
   variable[232] = NEW_ReduceAction228_parser___ReduceAction228___init(); /*new ReduceAction228*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[232]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[232]) /*AbstractArray::add*/;
   variable[233] = NEW_ReduceAction229_parser___ReduceAction229___init(); /*new ReduceAction229*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[233]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[233]) /*AbstractArray::add*/;
   variable[234] = NEW_ReduceAction230_parser___ReduceAction230___init(); /*new ReduceAction230*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[234]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[234]) /*AbstractArray::add*/;
   variable[235] = NEW_ReduceAction231_parser___ReduceAction231___init(); /*new ReduceAction231*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[235]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[235]) /*AbstractArray::add*/;
   variable[236] = NEW_ReduceAction232_parser___ReduceAction232___init(); /*new ReduceAction232*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[236]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[236]) /*AbstractArray::add*/;
   variable[237] = NEW_ReduceAction233_parser___ReduceAction233___init(); /*new ReduceAction233*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[237]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[237]) /*AbstractArray::add*/;
   variable[238] = NEW_ReduceAction234_parser___ReduceAction234___init(); /*new ReduceAction234*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[238]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[238]) /*AbstractArray::add*/;
   variable[239] = NEW_ReduceAction235_parser___ReduceAction235___init(); /*new ReduceAction235*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[239]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[239]) /*AbstractArray::add*/;
   variable[240] = NEW_ReduceAction236_parser___ReduceAction236___init(); /*new ReduceAction236*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[240]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[240]) /*AbstractArray::add*/;
   variable[241] = NEW_ReduceAction237_parser___ReduceAction237___init(); /*new ReduceAction237*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[241]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[241]) /*AbstractArray::add*/;
   variable[242] = NEW_ReduceAction238_parser___ReduceAction238___init(); /*new ReduceAction238*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[242]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[242]) /*AbstractArray::add*/;
   variable[243] = NEW_ReduceAction239_parser___ReduceAction239___init(); /*new ReduceAction239*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[243]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[243]) /*AbstractArray::add*/;
   variable[244] = NEW_ReduceAction240_parser___ReduceAction240___init(); /*new ReduceAction240*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[244]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[244]) /*AbstractArray::add*/;
   variable[245] = NEW_ReduceAction241_parser___ReduceAction241___init(); /*new ReduceAction241*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[245]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[245]) /*AbstractArray::add*/;
   variable[246] = NEW_ReduceAction242_parser___ReduceAction242___init(); /*new ReduceAction242*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[246]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[246]) /*AbstractArray::add*/;
   variable[247] = NEW_ReduceAction243_parser___ReduceAction243___init(); /*new ReduceAction243*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[247]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[247]) /*AbstractArray::add*/;
   variable[248] = NEW_ReduceAction244_parser___ReduceAction244___init(); /*new ReduceAction244*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[248]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[248]) /*AbstractArray::add*/;
   variable[249] = NEW_ReduceAction245_parser___ReduceAction245___init(); /*new ReduceAction245*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[249]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[249]) /*AbstractArray::add*/;
   variable[250] = NEW_ReduceAction246_parser___ReduceAction246___init(); /*new ReduceAction246*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[250]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[250]) /*AbstractArray::add*/;
   variable[251] = NEW_ReduceAction247_parser___ReduceAction247___init(); /*new ReduceAction247*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[251]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[251]) /*AbstractArray::add*/;
   variable[252] = NEW_ReduceAction248_parser___ReduceAction248___init(); /*new ReduceAction248*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[252]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[252]) /*AbstractArray::add*/;
   variable[253] = NEW_ReduceAction249_parser___ReduceAction249___init(); /*new ReduceAction249*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[253]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[253]) /*AbstractArray::add*/;
   variable[254] = NEW_ReduceAction250_parser___ReduceAction250___init(); /*new ReduceAction250*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[254]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[254]) /*AbstractArray::add*/;
   variable[255] = NEW_ReduceAction251_parser___ReduceAction251___init(); /*new ReduceAction251*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[255]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[255]) /*AbstractArray::add*/;
   variable[256] = NEW_ReduceAction252_parser___ReduceAction252___init(); /*new ReduceAction252*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[256]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[256]) /*AbstractArray::add*/;
   variable[257] = NEW_ReduceAction253_parser___ReduceAction253___init(); /*new ReduceAction253*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[257]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[257]) /*AbstractArray::add*/;
   variable[258] = NEW_ReduceAction254_parser___ReduceAction254___init(); /*new ReduceAction254*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[258]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[258]) /*AbstractArray::add*/;
   variable[259] = NEW_ReduceAction255_parser___ReduceAction255___init(); /*new ReduceAction255*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[259]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[259]) /*AbstractArray::add*/;
   variable[260] = NEW_ReduceAction256_parser___ReduceAction256___init(); /*new ReduceAction256*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[260]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[260]) /*AbstractArray::add*/;
   variable[261] = NEW_ReduceAction257_parser___ReduceAction257___init(); /*new ReduceAction257*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[261]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[261]) /*AbstractArray::add*/;
   variable[262] = NEW_ReduceAction258_parser___ReduceAction258___init(); /*new ReduceAction258*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[262]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[262]) /*AbstractArray::add*/;
   variable[263] = NEW_ReduceAction259_parser___ReduceAction259___init(); /*new ReduceAction259*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[263]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[263]) /*AbstractArray::add*/;
   variable[264] = NEW_ReduceAction260_parser___ReduceAction260___init(); /*new ReduceAction260*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[264]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[264]) /*AbstractArray::add*/;
   variable[265] = NEW_ReduceAction261_parser___ReduceAction261___init(); /*new ReduceAction261*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[265]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[265]) /*AbstractArray::add*/;
   variable[266] = NEW_ReduceAction262_parser___ReduceAction262___init(); /*new ReduceAction262*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[266]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[266]) /*AbstractArray::add*/;
   variable[267] = NEW_ReduceAction263_parser___ReduceAction263___init(); /*new ReduceAction263*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[267]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[267]) /*AbstractArray::add*/;
   variable[268] = NEW_ReduceAction264_parser___ReduceAction264___init(); /*new ReduceAction264*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[268]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[268]) /*AbstractArray::add*/;
   variable[269] = NEW_ReduceAction265_parser___ReduceAction265___init(); /*new ReduceAction265*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[269]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[269]) /*AbstractArray::add*/;
   variable[270] = NEW_ReduceAction266_parser___ReduceAction266___init(); /*new ReduceAction266*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[270]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[270]) /*AbstractArray::add*/;
   variable[271] = NEW_ReduceAction267_parser___ReduceAction267___init(); /*new ReduceAction267*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[271]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[271]) /*AbstractArray::add*/;
   variable[272] = NEW_ReduceAction268_parser___ReduceAction268___init(); /*new ReduceAction268*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[272]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[272]) /*AbstractArray::add*/;
   variable[273] = NEW_ReduceAction269_parser___ReduceAction269___init(); /*new ReduceAction269*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[273]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[273]) /*AbstractArray::add*/;
   variable[274] = NEW_ReduceAction270_parser___ReduceAction270___init(); /*new ReduceAction270*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[274]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[274]) /*AbstractArray::add*/;
   variable[275] = NEW_ReduceAction271_parser___ReduceAction271___init(); /*new ReduceAction271*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[275]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[275]) /*AbstractArray::add*/;
   variable[276] = NEW_ReduceAction272_parser___ReduceAction272___init(); /*new ReduceAction272*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[276]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[276]) /*AbstractArray::add*/;
   variable[277] = NEW_ReduceAction273_parser___ReduceAction273___init(); /*new ReduceAction273*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[277]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[277]) /*AbstractArray::add*/;
   variable[278] = NEW_ReduceAction274_parser___ReduceAction274___init(); /*new ReduceAction274*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[278]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[278]) /*AbstractArray::add*/;
   variable[279] = NEW_ReduceAction275_parser___ReduceAction275___init(); /*new ReduceAction275*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[279]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[279]) /*AbstractArray::add*/;
   variable[280] = NEW_ReduceAction276_parser___ReduceAction276___init(); /*new ReduceAction276*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[280]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[280]) /*AbstractArray::add*/;
   variable[281] = NEW_ReduceAction277_parser___ReduceAction277___init(); /*new ReduceAction277*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[281]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[281]) /*AbstractArray::add*/;
   variable[282] = NEW_ReduceAction278_parser___ReduceAction278___init(); /*new ReduceAction278*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[282]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[282]) /*AbstractArray::add*/;
   variable[283] = NEW_ReduceAction279_parser___ReduceAction279___init(); /*new ReduceAction279*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[283]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[283]) /*AbstractArray::add*/;
   variable[284] = NEW_ReduceAction280_parser___ReduceAction280___init(); /*new ReduceAction280*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[284]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[284]) /*AbstractArray::add*/;
   variable[285] = NEW_ReduceAction281_parser___ReduceAction281___init(); /*new ReduceAction281*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[285]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[285]) /*AbstractArray::add*/;
   variable[286] = NEW_ReduceAction282_parser___ReduceAction282___init(); /*new ReduceAction282*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[286]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[286]) /*AbstractArray::add*/;
   variable[287] = NEW_ReduceAction283_parser___ReduceAction283___init(); /*new ReduceAction283*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[287]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[287]) /*AbstractArray::add*/;
   variable[288] = NEW_ReduceAction284_parser___ReduceAction284___init(); /*new ReduceAction284*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[288]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[288]) /*AbstractArray::add*/;
   variable[289] = NEW_ReduceAction285_parser___ReduceAction285___init(); /*new ReduceAction285*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[289]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[289]) /*AbstractArray::add*/;
   variable[290] = NEW_ReduceAction286_parser___ReduceAction286___init(); /*new ReduceAction286*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[290]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[290]) /*AbstractArray::add*/;
   variable[291] = NEW_ReduceAction287_parser___ReduceAction287___init(); /*new ReduceAction287*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[291]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[291]) /*AbstractArray::add*/;
   variable[292] = NEW_ReduceAction288_parser___ReduceAction288___init(); /*new ReduceAction288*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[292]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[292]) /*AbstractArray::add*/;
   variable[293] = NEW_ReduceAction289_parser___ReduceAction289___init(); /*new ReduceAction289*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[293]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[293]) /*AbstractArray::add*/;
   variable[294] = NEW_ReduceAction290_parser___ReduceAction290___init(); /*new ReduceAction290*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[294]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[294]) /*AbstractArray::add*/;
   variable[295] = NEW_ReduceAction291_parser___ReduceAction291___init(); /*new ReduceAction291*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[295]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[295]) /*AbstractArray::add*/;
   variable[296] = NEW_ReduceAction292_parser___ReduceAction292___init(); /*new ReduceAction292*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[296]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[296]) /*AbstractArray::add*/;
   variable[297] = NEW_ReduceAction293_parser___ReduceAction293___init(); /*new ReduceAction293*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[297]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[297]) /*AbstractArray::add*/;
   variable[298] = NEW_ReduceAction294_parser___ReduceAction294___init(); /*new ReduceAction294*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[298]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[298]) /*AbstractArray::add*/;
   variable[299] = NEW_ReduceAction295_parser___ReduceAction295___init(); /*new ReduceAction295*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[299]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[299]) /*AbstractArray::add*/;
   variable[300] = NEW_ReduceAction296_parser___ReduceAction296___init(); /*new ReduceAction296*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[300]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[300]) /*AbstractArray::add*/;
   variable[301] = NEW_ReduceAction297_parser___ReduceAction297___init(); /*new ReduceAction297*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[301]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[301]) /*AbstractArray::add*/;
   variable[302] = NEW_ReduceAction298_parser___ReduceAction298___init(); /*new ReduceAction298*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[302]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[302]) /*AbstractArray::add*/;
   variable[303] = NEW_ReduceAction299_parser___ReduceAction299___init(); /*new ReduceAction299*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[303]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[303]) /*AbstractArray::add*/;
   variable[304] = NEW_ReduceAction300_parser___ReduceAction300___init(); /*new ReduceAction300*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[304]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[304]) /*AbstractArray::add*/;
   variable[305] = NEW_ReduceAction301_parser___ReduceAction301___init(); /*new ReduceAction301*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[305]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[305]) /*AbstractArray::add*/;
   variable[306] = NEW_ReduceAction302_parser___ReduceAction302___init(); /*new ReduceAction302*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[306]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[306]) /*AbstractArray::add*/;
   variable[307] = NEW_ReduceAction303_parser___ReduceAction303___init(); /*new ReduceAction303*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[307]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[307]) /*AbstractArray::add*/;
   variable[308] = NEW_ReduceAction304_parser___ReduceAction304___init(); /*new ReduceAction304*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[308]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[308]) /*AbstractArray::add*/;
   variable[309] = NEW_ReduceAction305_parser___ReduceAction305___init(); /*new ReduceAction305*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[309]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[309]) /*AbstractArray::add*/;
   variable[310] = NEW_ReduceAction306_parser___ReduceAction306___init(); /*new ReduceAction306*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[310]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[310]) /*AbstractArray::add*/;
   variable[311] = NEW_ReduceAction307_parser___ReduceAction307___init(); /*new ReduceAction307*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[311]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[311]) /*AbstractArray::add*/;
   variable[312] = NEW_ReduceAction308_parser___ReduceAction308___init(); /*new ReduceAction308*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[312]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[312]) /*AbstractArray::add*/;
   variable[313] = NEW_ReduceAction309_parser___ReduceAction309___init(); /*new ReduceAction309*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[313]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[313]) /*AbstractArray::add*/;
   variable[314] = NEW_ReduceAction310_parser___ReduceAction310___init(); /*new ReduceAction310*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[314]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[314]) /*AbstractArray::add*/;
   variable[315] = NEW_ReduceAction311_parser___ReduceAction311___init(); /*new ReduceAction311*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[315]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[315]) /*AbstractArray::add*/;
   variable[316] = NEW_ReduceAction312_parser___ReduceAction312___init(); /*new ReduceAction312*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[316]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[316]) /*AbstractArray::add*/;
   variable[317] = NEW_ReduceAction313_parser___ReduceAction313___init(); /*new ReduceAction313*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[317]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[317]) /*AbstractArray::add*/;
   variable[318] = NEW_ReduceAction314_parser___ReduceAction314___init(); /*new ReduceAction314*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[318]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[318]) /*AbstractArray::add*/;
   variable[319] = NEW_ReduceAction315_parser___ReduceAction315___init(); /*new ReduceAction315*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[319]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[319]) /*AbstractArray::add*/;
   variable[320] = NEW_ReduceAction316_parser___ReduceAction316___init(); /*new ReduceAction316*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[320]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[320]) /*AbstractArray::add*/;
   variable[321] = NEW_ReduceAction317_parser___ReduceAction317___init(); /*new ReduceAction317*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[321]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[321]) /*AbstractArray::add*/;
   variable[322] = NEW_ReduceAction318_parser___ReduceAction318___init(); /*new ReduceAction318*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[322]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[322]) /*AbstractArray::add*/;
   variable[323] = NEW_ReduceAction319_parser___ReduceAction319___init(); /*new ReduceAction319*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[323]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[323]) /*AbstractArray::add*/;
   variable[324] = NEW_ReduceAction320_parser___ReduceAction320___init(); /*new ReduceAction320*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[324]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[324]) /*AbstractArray::add*/;
   variable[325] = NEW_ReduceAction321_parser___ReduceAction321___init(); /*new ReduceAction321*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[325]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[325]) /*AbstractArray::add*/;
   variable[326] = NEW_ReduceAction322_parser___ReduceAction322___init(); /*new ReduceAction322*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[326]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[326]) /*AbstractArray::add*/;
   variable[327] = NEW_ReduceAction323_parser___ReduceAction323___init(); /*new ReduceAction323*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[327]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[327]) /*AbstractArray::add*/;
   variable[328] = NEW_ReduceAction324_parser___ReduceAction324___init(); /*new ReduceAction324*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[328]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[328]) /*AbstractArray::add*/;
   variable[329] = NEW_ReduceAction325_parser___ReduceAction325___init(); /*new ReduceAction325*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[329]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[329]) /*AbstractArray::add*/;
   variable[330] = NEW_ReduceAction326_parser___ReduceAction326___init(); /*new ReduceAction326*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[330]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[330]) /*AbstractArray::add*/;
   variable[331] = NEW_ReduceAction327_parser___ReduceAction327___init(); /*new ReduceAction327*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[331]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[331]) /*AbstractArray::add*/;
   variable[332] = NEW_ReduceAction328_parser___ReduceAction328___init(); /*new ReduceAction328*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[332]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[332]) /*AbstractArray::add*/;
   variable[333] = NEW_ReduceAction329_parser___ReduceAction329___init(); /*new ReduceAction329*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[333]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[333]) /*AbstractArray::add*/;
   variable[334] = NEW_ReduceAction330_parser___ReduceAction330___init(); /*new ReduceAction330*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[334]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[334]) /*AbstractArray::add*/;
   variable[335] = NEW_ReduceAction331_parser___ReduceAction331___init(); /*new ReduceAction331*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[335]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[335]) /*AbstractArray::add*/;
   variable[336] = NEW_ReduceAction332_parser___ReduceAction332___init(); /*new ReduceAction332*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[336]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[336]) /*AbstractArray::add*/;
   variable[337] = NEW_ReduceAction333_parser___ReduceAction333___init(); /*new ReduceAction333*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[337]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[337]) /*AbstractArray::add*/;
   variable[338] = NEW_ReduceAction334_parser___ReduceAction334___init(); /*new ReduceAction334*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[338]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[338]) /*AbstractArray::add*/;
   variable[339] = NEW_ReduceAction335_parser___ReduceAction335___init(); /*new ReduceAction335*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[339]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[339]) /*AbstractArray::add*/;
   variable[340] = NEW_ReduceAction336_parser___ReduceAction336___init(); /*new ReduceAction336*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[340]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[340]) /*AbstractArray::add*/;
   variable[341] = NEW_ReduceAction337_parser___ReduceAction337___init(); /*new ReduceAction337*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[341]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[341]) /*AbstractArray::add*/;
   variable[342] = NEW_ReduceAction338_parser___ReduceAction338___init(); /*new ReduceAction338*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[342]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[342]) /*AbstractArray::add*/;
   variable[343] = NEW_ReduceAction339_parser___ReduceAction339___init(); /*new ReduceAction339*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[343]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[343]) /*AbstractArray::add*/;
   variable[344] = NEW_ReduceAction340_parser___ReduceAction340___init(); /*new ReduceAction340*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[344]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[344]) /*AbstractArray::add*/;
   variable[345] = NEW_ReduceAction341_parser___ReduceAction341___init(); /*new ReduceAction341*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[345]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[345]) /*AbstractArray::add*/;
   variable[346] = NEW_ReduceAction342_parser___ReduceAction342___init(); /*new ReduceAction342*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[346]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[346]) /*AbstractArray::add*/;
   variable[347] = NEW_ReduceAction343_parser___ReduceAction343___init(); /*new ReduceAction343*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[347]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[347]) /*AbstractArray::add*/;
   variable[348] = NEW_ReduceAction344_parser___ReduceAction344___init(); /*new ReduceAction344*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[348]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[348]) /*AbstractArray::add*/;
   variable[349] = NEW_ReduceAction345_parser___ReduceAction345___init(); /*new ReduceAction345*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[349]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[349]) /*AbstractArray::add*/;
   variable[350] = NEW_ReduceAction346_parser___ReduceAction346___init(); /*new ReduceAction346*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[350]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[350]) /*AbstractArray::add*/;
   variable[351] = NEW_ReduceAction347_parser___ReduceAction347___init(); /*new ReduceAction347*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[351]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[351]) /*AbstractArray::add*/;
   variable[352] = NEW_ReduceAction348_parser___ReduceAction348___init(); /*new ReduceAction348*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[352]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[352]) /*AbstractArray::add*/;
   variable[353] = NEW_ReduceAction349_parser___ReduceAction349___init(); /*new ReduceAction349*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[353]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[353]) /*AbstractArray::add*/;
   variable[354] = NEW_ReduceAction350_parser___ReduceAction350___init(); /*new ReduceAction350*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[354]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[354]) /*AbstractArray::add*/;
   variable[355] = NEW_ReduceAction351_parser___ReduceAction351___init(); /*new ReduceAction351*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[355]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[355]) /*AbstractArray::add*/;
   variable[356] = NEW_ReduceAction352_parser___ReduceAction352___init(); /*new ReduceAction352*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[356]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[356]) /*AbstractArray::add*/;
   variable[357] = NEW_ReduceAction353_parser___ReduceAction353___init(); /*new ReduceAction353*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[357]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[357]) /*AbstractArray::add*/;
   variable[358] = NEW_ReduceAction354_parser___ReduceAction354___init(); /*new ReduceAction354*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[358]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[358]) /*AbstractArray::add*/;
   variable[359] = NEW_ReduceAction355_parser___ReduceAction355___init(); /*new ReduceAction355*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[359]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[359]) /*AbstractArray::add*/;
   variable[360] = NEW_ReduceAction356_parser___ReduceAction356___init(); /*new ReduceAction356*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[360]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[360]) /*AbstractArray::add*/;
   variable[361] = NEW_ReduceAction357_parser___ReduceAction357___init(); /*new ReduceAction357*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[361]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[361]) /*AbstractArray::add*/;
   variable[362] = NEW_ReduceAction358_parser___ReduceAction358___init(); /*new ReduceAction358*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[362]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[362]) /*AbstractArray::add*/;
   variable[363] = NEW_ReduceAction359_parser___ReduceAction359___init(); /*new ReduceAction359*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[363]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[363]) /*AbstractArray::add*/;
   variable[364] = NEW_ReduceAction360_parser___ReduceAction360___init(); /*new ReduceAction360*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[364]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[364]) /*AbstractArray::add*/;
   variable[365] = NEW_ReduceAction361_parser___ReduceAction361___init(); /*new ReduceAction361*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[365]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[365]) /*AbstractArray::add*/;
   variable[366] = NEW_ReduceAction362_parser___ReduceAction362___init(); /*new ReduceAction362*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[366]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[366]) /*AbstractArray::add*/;
   variable[367] = NEW_ReduceAction363_parser___ReduceAction363___init(); /*new ReduceAction363*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[367]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[367]) /*AbstractArray::add*/;
   variable[368] = NEW_ReduceAction364_parser___ReduceAction364___init(); /*new ReduceAction364*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[368]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[368]) /*AbstractArray::add*/;
   variable[369] = NEW_ReduceAction365_parser___ReduceAction365___init(); /*new ReduceAction365*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[369]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[369]) /*AbstractArray::add*/;
   variable[370] = NEW_ReduceAction366_parser___ReduceAction366___init(); /*new ReduceAction366*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[370]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[370]) /*AbstractArray::add*/;
   variable[371] = NEW_ReduceAction367_parser___ReduceAction367___init(); /*new ReduceAction367*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[371]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[371]) /*AbstractArray::add*/;
   variable[372] = NEW_ReduceAction368_parser___ReduceAction368___init(); /*new ReduceAction368*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[372]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[372]) /*AbstractArray::add*/;
   variable[373] = NEW_ReduceAction369_parser___ReduceAction369___init(); /*new ReduceAction369*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[373]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[373]) /*AbstractArray::add*/;
   variable[374] = NEW_ReduceAction370_parser___ReduceAction370___init(); /*new ReduceAction370*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[374]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[374]) /*AbstractArray::add*/;
   variable[375] = NEW_ReduceAction371_parser___ReduceAction371___init(); /*new ReduceAction371*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[375]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[375]) /*AbstractArray::add*/;
   variable[376] = NEW_ReduceAction372_parser___ReduceAction372___init(); /*new ReduceAction372*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[376]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[376]) /*AbstractArray::add*/;
   variable[377] = NEW_ReduceAction373_parser___ReduceAction373___init(); /*new ReduceAction373*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[377]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[377]) /*AbstractArray::add*/;
   variable[378] = NEW_ReduceAction374_parser___ReduceAction374___init(); /*new ReduceAction374*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[378]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[378]) /*AbstractArray::add*/;
   variable[379] = NEW_ReduceAction375_parser___ReduceAction375___init(); /*new ReduceAction375*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[379]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[379]) /*AbstractArray::add*/;
   variable[380] = NEW_ReduceAction376_parser___ReduceAction376___init(); /*new ReduceAction376*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[380]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[380]) /*AbstractArray::add*/;
   variable[381] = NEW_ReduceAction377_parser___ReduceAction377___init(); /*new ReduceAction377*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[381]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[381]) /*AbstractArray::add*/;
   variable[382] = NEW_ReduceAction378_parser___ReduceAction378___init(); /*new ReduceAction378*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[382]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[382]) /*AbstractArray::add*/;
   variable[383] = NEW_ReduceAction379_parser___ReduceAction379___init(); /*new ReduceAction379*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[383]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[383]) /*AbstractArray::add*/;
   variable[384] = NEW_ReduceAction380_parser___ReduceAction380___init(); /*new ReduceAction380*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[384]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[384]) /*AbstractArray::add*/;
   variable[385] = NEW_ReduceAction381_parser___ReduceAction381___init(); /*new ReduceAction381*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[385]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[385]) /*AbstractArray::add*/;
   variable[386] = NEW_ReduceAction382_parser___ReduceAction382___init(); /*new ReduceAction382*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[386]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[386]) /*AbstractArray::add*/;
   variable[387] = NEW_ReduceAction383_parser___ReduceAction383___init(); /*new ReduceAction383*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[387]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[387]) /*AbstractArray::add*/;
   variable[388] = NEW_ReduceAction384_parser___ReduceAction384___init(); /*new ReduceAction384*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[388]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[388]) /*AbstractArray::add*/;
   variable[389] = NEW_ReduceAction385_parser___ReduceAction385___init(); /*new ReduceAction385*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[389]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[389]) /*AbstractArray::add*/;
   variable[390] = NEW_ReduceAction386_parser___ReduceAction386___init(); /*new ReduceAction386*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[390]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[390]) /*AbstractArray::add*/;
   variable[391] = NEW_ReduceAction387_parser___ReduceAction387___init(); /*new ReduceAction387*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[391]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[391]) /*AbstractArray::add*/;
   variable[392] = NEW_ReduceAction388_parser___ReduceAction388___init(); /*new ReduceAction388*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[392]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[392]) /*AbstractArray::add*/;
   variable[393] = NEW_ReduceAction389_parser___ReduceAction389___init(); /*new ReduceAction389*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[393]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[393]) /*AbstractArray::add*/;
   variable[394] = NEW_ReduceAction390_parser___ReduceAction390___init(); /*new ReduceAction390*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[394]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[394]) /*AbstractArray::add*/;
   variable[395] = NEW_ReduceAction391_parser___ReduceAction391___init(); /*new ReduceAction391*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[395]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[395]) /*AbstractArray::add*/;
   variable[396] = NEW_ReduceAction392_parser___ReduceAction392___init(); /*new ReduceAction392*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[396]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[396]) /*AbstractArray::add*/;
   variable[397] = NEW_ReduceAction393_parser___ReduceAction393___init(); /*new ReduceAction393*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[397]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[397]) /*AbstractArray::add*/;
   variable[398] = NEW_ReduceAction394_parser___ReduceAction394___init(); /*new ReduceAction394*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[398]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[398]) /*AbstractArray::add*/;
   variable[399] = NEW_ReduceAction395_parser___ReduceAction395___init(); /*new ReduceAction395*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[399]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[399]) /*AbstractArray::add*/;
   variable[400] = NEW_ReduceAction396_parser___ReduceAction396___init(); /*new ReduceAction396*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[400]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[400]) /*AbstractArray::add*/;
   variable[401] = NEW_ReduceAction397_parser___ReduceAction397___init(); /*new ReduceAction397*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[401]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[401]) /*AbstractArray::add*/;
   variable[402] = NEW_ReduceAction398_parser___ReduceAction398___init(); /*new ReduceAction398*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[402]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[402]) /*AbstractArray::add*/;
   variable[403] = NEW_ReduceAction399_parser___ReduceAction399___init(); /*new ReduceAction399*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[403]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[403]) /*AbstractArray::add*/;
   variable[404] = NEW_ReduceAction400_parser___ReduceAction400___init(); /*new ReduceAction400*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[404]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[404]) /*AbstractArray::add*/;
   variable[405] = NEW_ReduceAction401_parser___ReduceAction401___init(); /*new ReduceAction401*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[405]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[405]) /*AbstractArray::add*/;
   variable[406] = NEW_ReduceAction402_parser___ReduceAction402___init(); /*new ReduceAction402*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[406]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[406]) /*AbstractArray::add*/;
   variable[407] = NEW_ReduceAction403_parser___ReduceAction403___init(); /*new ReduceAction403*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[407]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[407]) /*AbstractArray::add*/;
   variable[408] = NEW_ReduceAction404_parser___ReduceAction404___init(); /*new ReduceAction404*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[408]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[408]) /*AbstractArray::add*/;
   variable[409] = NEW_ReduceAction405_parser___ReduceAction405___init(); /*new ReduceAction405*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[409]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[409]) /*AbstractArray::add*/;
   variable[410] = NEW_ReduceAction406_parser___ReduceAction406___init(); /*new ReduceAction406*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[410]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[410]) /*AbstractArray::add*/;
   variable[411] = NEW_ReduceAction407_parser___ReduceAction407___init(); /*new ReduceAction407*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[411]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[411]) /*AbstractArray::add*/;
   variable[412] = NEW_ReduceAction408_parser___ReduceAction408___init(); /*new ReduceAction408*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[412]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[412]) /*AbstractArray::add*/;
   variable[413] = NEW_ReduceAction409_parser___ReduceAction409___init(); /*new ReduceAction409*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[413]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[413]) /*AbstractArray::add*/;
   variable[414] = NEW_ReduceAction410_parser___ReduceAction410___init(); /*new ReduceAction410*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[414]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[414]) /*AbstractArray::add*/;
   variable[415] = NEW_ReduceAction411_parser___ReduceAction411___init(); /*new ReduceAction411*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[415]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[415]) /*AbstractArray::add*/;
   variable[416] = NEW_ReduceAction412_parser___ReduceAction412___init(); /*new ReduceAction412*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[416]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[416]) /*AbstractArray::add*/;
   variable[417] = NEW_ReduceAction413_parser___ReduceAction413___init(); /*new ReduceAction413*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[417]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[417]) /*AbstractArray::add*/;
   variable[418] = NEW_ReduceAction414_parser___ReduceAction414___init(); /*new ReduceAction414*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[418]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[418]) /*AbstractArray::add*/;
   variable[419] = NEW_ReduceAction415_parser___ReduceAction415___init(); /*new ReduceAction415*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[419]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[419]) /*AbstractArray::add*/;
   variable[420] = NEW_ReduceAction416_parser___ReduceAction416___init(); /*new ReduceAction416*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[420]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[420]) /*AbstractArray::add*/;
   variable[421] = NEW_ReduceAction417_parser___ReduceAction417___init(); /*new ReduceAction417*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[421]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[421]) /*AbstractArray::add*/;
   variable[422] = NEW_ReduceAction418_parser___ReduceAction418___init(); /*new ReduceAction418*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[422]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[422]) /*AbstractArray::add*/;
   variable[423] = NEW_ReduceAction419_parser___ReduceAction419___init(); /*new ReduceAction419*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[423]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[423]) /*AbstractArray::add*/;
   variable[424] = NEW_ReduceAction420_parser___ReduceAction420___init(); /*new ReduceAction420*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[424]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[424]) /*AbstractArray::add*/;
   variable[425] = NEW_ReduceAction421_parser___ReduceAction421___init(); /*new ReduceAction421*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[425]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[425]) /*AbstractArray::add*/;
   variable[426] = NEW_ReduceAction422_parser___ReduceAction422___init(); /*new ReduceAction422*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[426]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[426]) /*AbstractArray::add*/;
   variable[427] = NEW_ReduceAction423_parser___ReduceAction423___init(); /*new ReduceAction423*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[427]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[427]) /*AbstractArray::add*/;
   variable[428] = NEW_ReduceAction424_parser___ReduceAction424___init(); /*new ReduceAction424*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[428]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[428]) /*AbstractArray::add*/;
   variable[429] = NEW_ReduceAction425_parser___ReduceAction425___init(); /*new ReduceAction425*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[429]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[429]) /*AbstractArray::add*/;
   variable[430] = NEW_ReduceAction426_parser___ReduceAction426___init(); /*new ReduceAction426*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[430]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[430]) /*AbstractArray::add*/;
   variable[431] = NEW_ReduceAction427_parser___ReduceAction427___init(); /*new ReduceAction427*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[431]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[431]) /*AbstractArray::add*/;
   variable[432] = NEW_ReduceAction428_parser___ReduceAction428___init(); /*new ReduceAction428*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[432]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[432]) /*AbstractArray::add*/;
   variable[433] = NEW_ReduceAction429_parser___ReduceAction429___init(); /*new ReduceAction429*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[433]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[433]) /*AbstractArray::add*/;
   variable[434] = NEW_ReduceAction430_parser___ReduceAction430___init(); /*new ReduceAction430*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[434]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[434]) /*AbstractArray::add*/;
   variable[435] = NEW_ReduceAction431_parser___ReduceAction431___init(); /*new ReduceAction431*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[435]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[435]) /*AbstractArray::add*/;
   variable[436] = NEW_ReduceAction432_parser___ReduceAction432___init(); /*new ReduceAction432*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[436]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[436]) /*AbstractArray::add*/;
   variable[437] = NEW_ReduceAction433_parser___ReduceAction433___init(); /*new ReduceAction433*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[437]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[437]) /*AbstractArray::add*/;
   variable[438] = NEW_ReduceAction434_parser___ReduceAction434___init(); /*new ReduceAction434*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[438]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[438]) /*AbstractArray::add*/;
   variable[439] = NEW_ReduceAction435_parser___ReduceAction435___init(); /*new ReduceAction435*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[439]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[439]) /*AbstractArray::add*/;
   variable[440] = NEW_ReduceAction436_parser___ReduceAction436___init(); /*new ReduceAction436*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[440]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[440]) /*AbstractArray::add*/;
   variable[441] = NEW_ReduceAction437_parser___ReduceAction437___init(); /*new ReduceAction437*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[441]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[441]) /*AbstractArray::add*/;
   variable[442] = NEW_ReduceAction438_parser___ReduceAction438___init(); /*new ReduceAction438*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[442]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[442]) /*AbstractArray::add*/;
   variable[443] = NEW_ReduceAction439_parser___ReduceAction439___init(); /*new ReduceAction439*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[443]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[443]) /*AbstractArray::add*/;
   variable[444] = NEW_ReduceAction440_parser___ReduceAction440___init(); /*new ReduceAction440*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[444]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[444]) /*AbstractArray::add*/;
   variable[445] = NEW_ReduceAction441_parser___ReduceAction441___init(); /*new ReduceAction441*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[445]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[445]) /*AbstractArray::add*/;
   variable[446] = NEW_ReduceAction442_parser___ReduceAction442___init(); /*new ReduceAction442*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[446]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[446]) /*AbstractArray::add*/;
   variable[447] = NEW_ReduceAction443_parser___ReduceAction443___init(); /*new ReduceAction443*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[447]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[447]) /*AbstractArray::add*/;
   variable[448] = NEW_ReduceAction444_parser___ReduceAction444___init(); /*new ReduceAction444*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[448]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[448]) /*AbstractArray::add*/;
   variable[449] = NEW_ReduceAction445_parser___ReduceAction445___init(); /*new ReduceAction445*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[449]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[449]) /*AbstractArray::add*/;
   variable[450] = NEW_ReduceAction446_parser___ReduceAction446___init(); /*new ReduceAction446*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[450]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[450]) /*AbstractArray::add*/;
   variable[451] = NEW_ReduceAction447_parser___ReduceAction447___init(); /*new ReduceAction447*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[451]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[451]) /*AbstractArray::add*/;
   variable[452] = NEW_ReduceAction448_parser___ReduceAction448___init(); /*new ReduceAction448*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[452]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[452]) /*AbstractArray::add*/;
   variable[453] = NEW_ReduceAction449_parser___ReduceAction449___init(); /*new ReduceAction449*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[453]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[453]) /*AbstractArray::add*/;
   variable[454] = NEW_ReduceAction450_parser___ReduceAction450___init(); /*new ReduceAction450*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[454]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[454]) /*AbstractArray::add*/;
   variable[455] = NEW_ReduceAction451_parser___ReduceAction451___init(); /*new ReduceAction451*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[455]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[455]) /*AbstractArray::add*/;
   variable[456] = NEW_ReduceAction452_parser___ReduceAction452___init(); /*new ReduceAction452*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[456]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[456]) /*AbstractArray::add*/;
   variable[457] = NEW_ReduceAction453_parser___ReduceAction453___init(); /*new ReduceAction453*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[457]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[457]) /*AbstractArray::add*/;
   variable[458] = NEW_ReduceAction454_parser___ReduceAction454___init(); /*new ReduceAction454*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[458]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[458]) /*AbstractArray::add*/;
   variable[459] = NEW_ReduceAction455_parser___ReduceAction455___init(); /*new ReduceAction455*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[459]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[459]) /*AbstractArray::add*/;
   variable[460] = NEW_ReduceAction456_parser___ReduceAction456___init(); /*new ReduceAction456*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[460]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[460]) /*AbstractArray::add*/;
   variable[461] = NEW_ReduceAction457_parser___ReduceAction457___init(); /*new ReduceAction457*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[461]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[461]) /*AbstractArray::add*/;
   variable[462] = NEW_ReduceAction458_parser___ReduceAction458___init(); /*new ReduceAction458*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[462]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[462]) /*AbstractArray::add*/;
   variable[463] = NEW_ReduceAction459_parser___ReduceAction459___init(); /*new ReduceAction459*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[463]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[463]) /*AbstractArray::add*/;
   variable[464] = NEW_ReduceAction460_parser___ReduceAction460___init(); /*new ReduceAction460*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[464]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[464]) /*AbstractArray::add*/;
   variable[465] = NEW_ReduceAction461_parser___ReduceAction461___init(); /*new ReduceAction461*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[465]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[465]) /*AbstractArray::add*/;
   variable[466] = NEW_ReduceAction462_parser___ReduceAction462___init(); /*new ReduceAction462*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[466]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[466]) /*AbstractArray::add*/;
   variable[467] = NEW_ReduceAction463_parser___ReduceAction463___init(); /*new ReduceAction463*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[467]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[467]) /*AbstractArray::add*/;
   variable[468] = NEW_ReduceAction464_parser___ReduceAction464___init(); /*new ReduceAction464*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[468]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[468]) /*AbstractArray::add*/;
   variable[469] = NEW_ReduceAction465_parser___ReduceAction465___init(); /*new ReduceAction465*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[469]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[469]) /*AbstractArray::add*/;
   variable[470] = NEW_ReduceAction466_parser___ReduceAction466___init(); /*new ReduceAction466*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[470]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[470]) /*AbstractArray::add*/;
   variable[471] = NEW_ReduceAction467_parser___ReduceAction467___init(); /*new ReduceAction467*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[471]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[471]) /*AbstractArray::add*/;
   variable[472] = NEW_ReduceAction468_parser___ReduceAction468___init(); /*new ReduceAction468*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[472]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[472]) /*AbstractArray::add*/;
   variable[473] = NEW_ReduceAction469_parser___ReduceAction469___init(); /*new ReduceAction469*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[473]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[473]) /*AbstractArray::add*/;
   variable[474] = NEW_ReduceAction470_parser___ReduceAction470___init(); /*new ReduceAction470*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[474]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[474]) /*AbstractArray::add*/;
   variable[475] = NEW_ReduceAction471_parser___ReduceAction471___init(); /*new ReduceAction471*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[475]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[475]) /*AbstractArray::add*/;
   variable[476] = NEW_ReduceAction472_parser___ReduceAction472___init(); /*new ReduceAction472*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[476]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[476]) /*AbstractArray::add*/;
   variable[477] = NEW_ReduceAction473_parser___ReduceAction473___init(); /*new ReduceAction473*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[477]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[477]) /*AbstractArray::add*/;
   variable[478] = NEW_ReduceAction474_parser___ReduceAction474___init(); /*new ReduceAction474*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[478]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[478]) /*AbstractArray::add*/;
   variable[479] = NEW_ReduceAction475_parser___ReduceAction475___init(); /*new ReduceAction475*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[479]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[479]) /*AbstractArray::add*/;
   variable[480] = NEW_ReduceAction476_parser___ReduceAction476___init(); /*new ReduceAction476*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[480]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[480]) /*AbstractArray::add*/;
   variable[481] = NEW_ReduceAction477_parser___ReduceAction477___init(); /*new ReduceAction477*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[481]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[481]) /*AbstractArray::add*/;
   variable[482] = NEW_ReduceAction478_parser___ReduceAction478___init(); /*new ReduceAction478*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[482]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[482]) /*AbstractArray::add*/;
   variable[483] = NEW_ReduceAction479_parser___ReduceAction479___init(); /*new ReduceAction479*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[483]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[483]) /*AbstractArray::add*/;
   variable[484] = NEW_ReduceAction480_parser___ReduceAction480___init(); /*new ReduceAction480*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[484]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[484]) /*AbstractArray::add*/;
   variable[485] = NEW_ReduceAction481_parser___ReduceAction481___init(); /*new ReduceAction481*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[485]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[485]) /*AbstractArray::add*/;
   variable[486] = NEW_ReduceAction482_parser___ReduceAction482___init(); /*new ReduceAction482*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[486]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[486]) /*AbstractArray::add*/;
   variable[487] = NEW_ReduceAction483_parser___ReduceAction483___init(); /*new ReduceAction483*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[487]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[487]) /*AbstractArray::add*/;
   variable[488] = NEW_ReduceAction484_parser___ReduceAction484___init(); /*new ReduceAction484*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[488]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[488]) /*AbstractArray::add*/;
   variable[489] = NEW_ReduceAction485_parser___ReduceAction485___init(); /*new ReduceAction485*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[489]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[489]) /*AbstractArray::add*/;
   variable[490] = NEW_ReduceAction486_parser___ReduceAction486___init(); /*new ReduceAction486*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[490]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[490]) /*AbstractArray::add*/;
   variable[491] = NEW_ReduceAction487_parser___ReduceAction487___init(); /*new ReduceAction487*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[491]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[491]) /*AbstractArray::add*/;
   variable[492] = NEW_ReduceAction488_parser___ReduceAction488___init(); /*new ReduceAction488*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[492]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[492]) /*AbstractArray::add*/;
   variable[493] = NEW_ReduceAction489_parser___ReduceAction489___init(); /*new ReduceAction489*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[493]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[493]) /*AbstractArray::add*/;
   variable[494] = NEW_ReduceAction490_parser___ReduceAction490___init(); /*new ReduceAction490*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[494]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[494]) /*AbstractArray::add*/;
   variable[495] = NEW_ReduceAction491_parser___ReduceAction491___init(); /*new ReduceAction491*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[495]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[495]) /*AbstractArray::add*/;
   variable[496] = NEW_ReduceAction492_parser___ReduceAction492___init(); /*new ReduceAction492*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[496]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[496]) /*AbstractArray::add*/;
   variable[497] = NEW_ReduceAction493_parser___ReduceAction493___init(); /*new ReduceAction493*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[497]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[497]) /*AbstractArray::add*/;
   variable[498] = NEW_ReduceAction494_parser___ReduceAction494___init(); /*new ReduceAction494*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[498]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[498]) /*AbstractArray::add*/;
   variable[499] = NEW_ReduceAction495_parser___ReduceAction495___init(); /*new ReduceAction495*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[499]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[499]) /*AbstractArray::add*/;
   variable[500] = NEW_ReduceAction496_parser___ReduceAction496___init(); /*new ReduceAction496*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[500]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[500]) /*AbstractArray::add*/;
   variable[501] = NEW_ReduceAction497_parser___ReduceAction497___init(); /*new ReduceAction497*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[501]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[501]) /*AbstractArray::add*/;
   variable[502] = NEW_ReduceAction498_parser___ReduceAction498___init(); /*new ReduceAction498*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[502]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[502]) /*AbstractArray::add*/;
   variable[503] = NEW_ReduceAction499_parser___ReduceAction499___init(); /*new ReduceAction499*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[503]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[503]) /*AbstractArray::add*/;
   variable[504] = NEW_ReduceAction500_parser___ReduceAction500___init(); /*new ReduceAction500*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[504]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[504]) /*AbstractArray::add*/;
   variable[505] = NEW_ReduceAction501_parser___ReduceAction501___init(); /*new ReduceAction501*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[505]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[505]) /*AbstractArray::add*/;
   variable[506] = NEW_ReduceAction502_parser___ReduceAction502___init(); /*new ReduceAction502*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[506]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[506]) /*AbstractArray::add*/;
   variable[507] = NEW_ReduceAction503_parser___ReduceAction503___init(); /*new ReduceAction503*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[507]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[507]) /*AbstractArray::add*/;
   variable[508] = NEW_ReduceAction504_parser___ReduceAction504___init(); /*new ReduceAction504*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[508]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[508]) /*AbstractArray::add*/;
   variable[509] = NEW_ReduceAction505_parser___ReduceAction505___init(); /*new ReduceAction505*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[509]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[509]) /*AbstractArray::add*/;
   variable[510] = NEW_ReduceAction506_parser___ReduceAction506___init(); /*new ReduceAction506*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[510]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[510]) /*AbstractArray::add*/;
   variable[511] = NEW_ReduceAction507_parser___ReduceAction507___init(); /*new ReduceAction507*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[511]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[511]) /*AbstractArray::add*/;
   variable[512] = NEW_ReduceAction508_parser___ReduceAction508___init(); /*new ReduceAction508*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[512]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[512]) /*AbstractArray::add*/;
   variable[513] = NEW_ReduceAction509_parser___ReduceAction509___init(); /*new ReduceAction509*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[513]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[513]) /*AbstractArray::add*/;
   variable[514] = NEW_ReduceAction510_parser___ReduceAction510___init(); /*new ReduceAction510*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[514]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[514]) /*AbstractArray::add*/;
   variable[515] = NEW_ReduceAction511_parser___ReduceAction511___init(); /*new ReduceAction511*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[515]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[515]) /*AbstractArray::add*/;
   variable[516] = NEW_ReduceAction512_parser___ReduceAction512___init(); /*new ReduceAction512*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[516]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[516]) /*AbstractArray::add*/;
   variable[517] = NEW_ReduceAction513_parser___ReduceAction513___init(); /*new ReduceAction513*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[517]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[517]) /*AbstractArray::add*/;
   variable[518] = NEW_ReduceAction514_parser___ReduceAction514___init(); /*new ReduceAction514*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[518]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[518]) /*AbstractArray::add*/;
   variable[519] = NEW_ReduceAction515_parser___ReduceAction515___init(); /*new ReduceAction515*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[519]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[519]) /*AbstractArray::add*/;
   variable[520] = NEW_ReduceAction516_parser___ReduceAction516___init(); /*new ReduceAction516*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[520]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[520]) /*AbstractArray::add*/;
   variable[521] = NEW_ReduceAction517_parser___ReduceAction517___init(); /*new ReduceAction517*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[521]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[521]) /*AbstractArray::add*/;
   variable[522] = NEW_ReduceAction518_parser___ReduceAction518___init(); /*new ReduceAction518*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[522]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[522]) /*AbstractArray::add*/;
   variable[523] = NEW_ReduceAction519_parser___ReduceAction519___init(); /*new ReduceAction519*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[523]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[523]) /*AbstractArray::add*/;
   variable[524] = NEW_ReduceAction520_parser___ReduceAction520___init(); /*new ReduceAction520*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[524]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[524]) /*AbstractArray::add*/;
   variable[525] = NEW_ReduceAction521_parser___ReduceAction521___init(); /*new ReduceAction521*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[525]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[525]) /*AbstractArray::add*/;
   variable[526] = NEW_ReduceAction522_parser___ReduceAction522___init(); /*new ReduceAction522*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[526]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[526]) /*AbstractArray::add*/;
   variable[527] = NEW_ReduceAction523_parser___ReduceAction523___init(); /*new ReduceAction523*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[527]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[527]) /*AbstractArray::add*/;
   variable[528] = NEW_ReduceAction524_parser___ReduceAction524___init(); /*new ReduceAction524*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[528]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[528]) /*AbstractArray::add*/;
   variable[529] = NEW_ReduceAction525_parser___ReduceAction525___init(); /*new ReduceAction525*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[529]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[529]) /*AbstractArray::add*/;
   variable[530] = NEW_ReduceAction526_parser___ReduceAction526___init(); /*new ReduceAction526*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[530]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[530]) /*AbstractArray::add*/;
   variable[531] = NEW_ReduceAction527_parser___ReduceAction527___init(); /*new ReduceAction527*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[531]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[531]) /*AbstractArray::add*/;
   variable[532] = NEW_ReduceAction528_parser___ReduceAction528___init(); /*new ReduceAction528*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[532]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[532]) /*AbstractArray::add*/;
   variable[533] = NEW_ReduceAction529_parser___ReduceAction529___init(); /*new ReduceAction529*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[533]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[533]) /*AbstractArray::add*/;
   variable[534] = NEW_ReduceAction530_parser___ReduceAction530___init(); /*new ReduceAction530*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[534]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[534]) /*AbstractArray::add*/;
   variable[535] = NEW_ReduceAction531_parser___ReduceAction531___init(); /*new ReduceAction531*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[535]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[535]) /*AbstractArray::add*/;
   variable[536] = NEW_ReduceAction532_parser___ReduceAction532___init(); /*new ReduceAction532*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[536]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[536]) /*AbstractArray::add*/;
   variable[537] = NEW_ReduceAction533_parser___ReduceAction533___init(); /*new ReduceAction533*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[537]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[537]) /*AbstractArray::add*/;
   variable[538] = NEW_ReduceAction534_parser___ReduceAction534___init(); /*new ReduceAction534*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[538]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[538]) /*AbstractArray::add*/;
   variable[539] = NEW_ReduceAction535_parser___ReduceAction535___init(); /*new ReduceAction535*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[539]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[539]) /*AbstractArray::add*/;
   variable[540] = NEW_ReduceAction536_parser___ReduceAction536___init(); /*new ReduceAction536*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[540]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[540]) /*AbstractArray::add*/;
   variable[541] = NEW_ReduceAction537_parser___ReduceAction537___init(); /*new ReduceAction537*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[541]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[541]) /*AbstractArray::add*/;
   variable[542] = NEW_ReduceAction538_parser___ReduceAction538___init(); /*new ReduceAction538*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[542]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[542]) /*AbstractArray::add*/;
   variable[543] = NEW_ReduceAction539_parser___ReduceAction539___init(); /*new ReduceAction539*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[543]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[543]) /*AbstractArray::add*/;
   variable[544] = NEW_ReduceAction540_parser___ReduceAction540___init(); /*new ReduceAction540*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[544]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[544]) /*AbstractArray::add*/;
   variable[545] = NEW_ReduceAction541_parser___ReduceAction541___init(); /*new ReduceAction541*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[545]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[545]) /*AbstractArray::add*/;
   variable[546] = NEW_ReduceAction542_parser___ReduceAction542___init(); /*new ReduceAction542*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[546]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[546]) /*AbstractArray::add*/;
   variable[547] = NEW_ReduceAction543_parser___ReduceAction543___init(); /*new ReduceAction543*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[547]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[547]) /*AbstractArray::add*/;
   variable[548] = NEW_ReduceAction544_parser___ReduceAction544___init(); /*new ReduceAction544*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[548]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[548]) /*AbstractArray::add*/;
   variable[549] = NEW_ReduceAction545_parser___ReduceAction545___init(); /*new ReduceAction545*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[549]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[549]) /*AbstractArray::add*/;
   variable[550] = NEW_ReduceAction546_parser___ReduceAction546___init(); /*new ReduceAction546*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[550]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[550]) /*AbstractArray::add*/;
   variable[551] = NEW_ReduceAction547_parser___ReduceAction547___init(); /*new ReduceAction547*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[551]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[551]) /*AbstractArray::add*/;
   variable[552] = NEW_ReduceAction548_parser___ReduceAction548___init(); /*new ReduceAction548*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[552]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[552]) /*AbstractArray::add*/;
   variable[553] = NEW_ReduceAction549_parser___ReduceAction549___init(); /*new ReduceAction549*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[553]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[553]) /*AbstractArray::add*/;
   variable[554] = NEW_ReduceAction550_parser___ReduceAction550___init(); /*new ReduceAction550*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[554]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[554]) /*AbstractArray::add*/;
   variable[555] = NEW_ReduceAction551_parser___ReduceAction551___init(); /*new ReduceAction551*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[555]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[555]) /*AbstractArray::add*/;
   variable[556] = NEW_ReduceAction552_parser___ReduceAction552___init(); /*new ReduceAction552*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[556]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[556]) /*AbstractArray::add*/;
   variable[557] = NEW_ReduceAction553_parser___ReduceAction553___init(); /*new ReduceAction553*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[557]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[557]) /*AbstractArray::add*/;
   variable[558] = NEW_ReduceAction554_parser___ReduceAction554___init(); /*new ReduceAction554*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[558]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[558]) /*AbstractArray::add*/;
   variable[559] = NEW_ReduceAction555_parser___ReduceAction555___init(); /*new ReduceAction555*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[559]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[559]) /*AbstractArray::add*/;
   variable[560] = NEW_ReduceAction556_parser___ReduceAction556___init(); /*new ReduceAction556*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[560]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[560]) /*AbstractArray::add*/;
   variable[561] = NEW_ReduceAction557_parser___ReduceAction557___init(); /*new ReduceAction557*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[561]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[561]) /*AbstractArray::add*/;
   variable[562] = NEW_ReduceAction558_parser___ReduceAction558___init(); /*new ReduceAction558*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[562]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[562]) /*AbstractArray::add*/;
   variable[563] = NEW_ReduceAction559_parser___ReduceAction559___init(); /*new ReduceAction559*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[563]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[563]) /*AbstractArray::add*/;
   variable[564] = NEW_ReduceAction560_parser___ReduceAction560___init(); /*new ReduceAction560*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[564]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[564]) /*AbstractArray::add*/;
   variable[565] = NEW_ReduceAction561_parser___ReduceAction561___init(); /*new ReduceAction561*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[565]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[565]) /*AbstractArray::add*/;
   variable[566] = NEW_ReduceAction562_parser___ReduceAction562___init(); /*new ReduceAction562*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[566]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[566]) /*AbstractArray::add*/;
   variable[567] = NEW_ReduceAction563_parser___ReduceAction563___init(); /*new ReduceAction563*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[567]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[567]) /*AbstractArray::add*/;
   variable[568] = NEW_ReduceAction564_parser___ReduceAction564___init(); /*new ReduceAction564*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[568]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[568]) /*AbstractArray::add*/;
   variable[569] = NEW_ReduceAction565_parser___ReduceAction565___init(); /*new ReduceAction565*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[569]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[569]) /*AbstractArray::add*/;
   variable[570] = NEW_ReduceAction566_parser___ReduceAction566___init(); /*new ReduceAction566*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[570]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[570]) /*AbstractArray::add*/;
   variable[571] = NEW_ReduceAction567_parser___ReduceAction567___init(); /*new ReduceAction567*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[571]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[571]) /*AbstractArray::add*/;
   variable[572] = NEW_ReduceAction568_parser___ReduceAction568___init(); /*new ReduceAction568*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[572]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[572]) /*AbstractArray::add*/;
   variable[573] = NEW_ReduceAction569_parser___ReduceAction569___init(); /*new ReduceAction569*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[573]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[573]) /*AbstractArray::add*/;
   variable[574] = NEW_ReduceAction570_parser___ReduceAction570___init(); /*new ReduceAction570*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[574]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[574]) /*AbstractArray::add*/;
   variable[575] = NEW_ReduceAction571_parser___ReduceAction571___init(); /*new ReduceAction571*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[575]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[575]) /*AbstractArray::add*/;
   variable[576] = NEW_ReduceAction572_parser___ReduceAction572___init(); /*new ReduceAction572*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[576]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[576]) /*AbstractArray::add*/;
   variable[577] = NEW_ReduceAction573_parser___ReduceAction573___init(); /*new ReduceAction573*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[577]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[577]) /*AbstractArray::add*/;
   variable[578] = NEW_ReduceAction574_parser___ReduceAction574___init(); /*new ReduceAction574*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[578]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[578]) /*AbstractArray::add*/;
   variable[579] = NEW_ReduceAction575_parser___ReduceAction575___init(); /*new ReduceAction575*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[579]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[579]) /*AbstractArray::add*/;
   variable[580] = NEW_ReduceAction576_parser___ReduceAction576___init(); /*new ReduceAction576*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[580]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[580]) /*AbstractArray::add*/;
   variable[581] = NEW_ReduceAction577_parser___ReduceAction577___init(); /*new ReduceAction577*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[581]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[581]) /*AbstractArray::add*/;
   variable[582] = NEW_ReduceAction578_parser___ReduceAction578___init(); /*new ReduceAction578*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[582]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[582]) /*AbstractArray::add*/;
   variable[583] = NEW_ReduceAction579_parser___ReduceAction579___init(); /*new ReduceAction579*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[583]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[583]) /*AbstractArray::add*/;
   variable[584] = NEW_ReduceAction580_parser___ReduceAction580___init(); /*new ReduceAction580*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[584]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[584]) /*AbstractArray::add*/;
   variable[585] = NEW_ReduceAction581_parser___ReduceAction581___init(); /*new ReduceAction581*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[585]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[585]) /*AbstractArray::add*/;
   variable[586] = NEW_ReduceAction582_parser___ReduceAction582___init(); /*new ReduceAction582*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[586]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[586]) /*AbstractArray::add*/;
   variable[587] = NEW_ReduceAction583_parser___ReduceAction583___init(); /*new ReduceAction583*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[587]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[587]) /*AbstractArray::add*/;
   variable[588] = NEW_ReduceAction584_parser___ReduceAction584___init(); /*new ReduceAction584*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[588]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[588]) /*AbstractArray::add*/;
   variable[589] = NEW_ReduceAction585_parser___ReduceAction585___init(); /*new ReduceAction585*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[589]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[589]) /*AbstractArray::add*/;
   variable[590] = NEW_ReduceAction586_parser___ReduceAction586___init(); /*new ReduceAction586*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[590]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[590]) /*AbstractArray::add*/;
   variable[591] = NEW_ReduceAction587_parser___ReduceAction587___init(); /*new ReduceAction587*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[591]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[591]) /*AbstractArray::add*/;
   variable[592] = NEW_ReduceAction588_parser___ReduceAction588___init(); /*new ReduceAction588*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[592]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[592]) /*AbstractArray::add*/;
   variable[593] = NEW_ReduceAction589_parser___ReduceAction589___init(); /*new ReduceAction589*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[593]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[593]) /*AbstractArray::add*/;
   variable[594] = NEW_ReduceAction590_parser___ReduceAction590___init(); /*new ReduceAction590*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[594]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[594]) /*AbstractArray::add*/;
   variable[595] = NEW_ReduceAction591_parser___ReduceAction591___init(); /*new ReduceAction591*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[595]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[595]) /*AbstractArray::add*/;
   variable[596] = NEW_ReduceAction592_parser___ReduceAction592___init(); /*new ReduceAction592*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[596]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[596]) /*AbstractArray::add*/;
   variable[597] = NEW_ReduceAction593_parser___ReduceAction593___init(); /*new ReduceAction593*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[597]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[597]) /*AbstractArray::add*/;
   variable[598] = NEW_ReduceAction594_parser___ReduceAction594___init(); /*new ReduceAction594*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[598]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[598]) /*AbstractArray::add*/;
   variable[599] = NEW_ReduceAction595_parser___ReduceAction595___init(); /*new ReduceAction595*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[599]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[599]) /*AbstractArray::add*/;
   variable[600] = NEW_ReduceAction596_parser___ReduceAction596___init(); /*new ReduceAction596*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[600]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[600]) /*AbstractArray::add*/;
   variable[601] = NEW_ReduceAction597_parser___ReduceAction597___init(); /*new ReduceAction597*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[601]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[601]) /*AbstractArray::add*/;
   variable[602] = NEW_ReduceAction598_parser___ReduceAction598___init(); /*new ReduceAction598*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[602]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[602]) /*AbstractArray::add*/;
   variable[603] = NEW_ReduceAction599_parser___ReduceAction599___init(); /*new ReduceAction599*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[603]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[603]) /*AbstractArray::add*/;
   variable[604] = NEW_ReduceAction600_parser___ReduceAction600___init(); /*new ReduceAction600*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[604]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[604]) /*AbstractArray::add*/;
   variable[605] = NEW_ReduceAction601_parser___ReduceAction601___init(); /*new ReduceAction601*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[605]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[605]) /*AbstractArray::add*/;
   variable[606] = NEW_ReduceAction602_parser___ReduceAction602___init(); /*new ReduceAction602*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[606]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[606]) /*AbstractArray::add*/;
   variable[607] = NEW_ReduceAction603_parser___ReduceAction603___init(); /*new ReduceAction603*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[607]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[607]) /*AbstractArray::add*/;
   variable[608] = NEW_ReduceAction604_parser___ReduceAction604___init(); /*new ReduceAction604*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[608]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[608]) /*AbstractArray::add*/;
   variable[609] = NEW_ReduceAction605_parser___ReduceAction605___init(); /*new ReduceAction605*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[609]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[609]) /*AbstractArray::add*/;
   variable[610] = NEW_ReduceAction606_parser___ReduceAction606___init(); /*new ReduceAction606*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[610]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[610]) /*AbstractArray::add*/;
   variable[611] = NEW_ReduceAction607_parser___ReduceAction607___init(); /*new ReduceAction607*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[611]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[611]) /*AbstractArray::add*/;
   variable[612] = NEW_ReduceAction608_parser___ReduceAction608___init(); /*new ReduceAction608*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[612]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[612]) /*AbstractArray::add*/;
   variable[613] = NEW_ReduceAction609_parser___ReduceAction609___init(); /*new ReduceAction609*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[613]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[613]) /*AbstractArray::add*/;
   variable[614] = NEW_ReduceAction610_parser___ReduceAction610___init(); /*new ReduceAction610*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[614]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[614]) /*AbstractArray::add*/;
   variable[615] = NEW_ReduceAction611_parser___ReduceAction611___init(); /*new ReduceAction611*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[615]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[615]) /*AbstractArray::add*/;
   variable[616] = NEW_ReduceAction612_parser___ReduceAction612___init(); /*new ReduceAction612*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[616]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[616]) /*AbstractArray::add*/;
   variable[617] = NEW_ReduceAction613_parser___ReduceAction613___init(); /*new ReduceAction613*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[617]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[617]) /*AbstractArray::add*/;
   variable[618] = NEW_ReduceAction614_parser___ReduceAction614___init(); /*new ReduceAction614*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[618]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[618]) /*AbstractArray::add*/;
   variable[619] = NEW_ReduceAction615_parser___ReduceAction615___init(); /*new ReduceAction615*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[619]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[619]) /*AbstractArray::add*/;
   variable[620] = NEW_ReduceAction616_parser___ReduceAction616___init(); /*new ReduceAction616*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[620]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[620]) /*AbstractArray::add*/;
   variable[621] = NEW_ReduceAction617_parser___ReduceAction617___init(); /*new ReduceAction617*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[621]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[621]) /*AbstractArray::add*/;
   variable[622] = NEW_ReduceAction618_parser___ReduceAction618___init(); /*new ReduceAction618*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[622]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[622]) /*AbstractArray::add*/;
   variable[623] = NEW_ReduceAction619_parser___ReduceAction619___init(); /*new ReduceAction619*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[623]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[623]) /*AbstractArray::add*/;
   variable[624] = NEW_ReduceAction620_parser___ReduceAction620___init(); /*new ReduceAction620*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[624]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[624]) /*AbstractArray::add*/;
   variable[625] = NEW_ReduceAction621_parser___ReduceAction621___init(); /*new ReduceAction621*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[625]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[625]) /*AbstractArray::add*/;
   variable[626] = NEW_ReduceAction622_parser___ReduceAction622___init(); /*new ReduceAction622*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[626]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[626]) /*AbstractArray::add*/;
   variable[627] = NEW_ReduceAction623_parser___ReduceAction623___init(); /*new ReduceAction623*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[627]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[627]) /*AbstractArray::add*/;
   variable[628] = NEW_ReduceAction624_parser___ReduceAction624___init(); /*new ReduceAction624*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[628]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[628]) /*AbstractArray::add*/;
   variable[629] = NEW_ReduceAction625_parser___ReduceAction625___init(); /*new ReduceAction625*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[629]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[629]) /*AbstractArray::add*/;
   variable[630] = NEW_ReduceAction626_parser___ReduceAction626___init(); /*new ReduceAction626*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[630]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[630]) /*AbstractArray::add*/;
   variable[631] = NEW_ReduceAction627_parser___ReduceAction627___init(); /*new ReduceAction627*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[631]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[631]) /*AbstractArray::add*/;
   variable[632] = NEW_ReduceAction628_parser___ReduceAction628___init(); /*new ReduceAction628*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[632]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[632]) /*AbstractArray::add*/;
   variable[633] = NEW_ReduceAction629_parser___ReduceAction629___init(); /*new ReduceAction629*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[633]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[633]) /*AbstractArray::add*/;
   variable[634] = NEW_ReduceAction630_parser___ReduceAction630___init(); /*new ReduceAction630*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[634]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[634]) /*AbstractArray::add*/;
   variable[635] = NEW_ReduceAction631_parser___ReduceAction631___init(); /*new ReduceAction631*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[635]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[635]) /*AbstractArray::add*/;
   variable[636] = NEW_ReduceAction632_parser___ReduceAction632___init(); /*new ReduceAction632*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[636]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[636]) /*AbstractArray::add*/;
   variable[637] = NEW_ReduceAction633_parser___ReduceAction633___init(); /*new ReduceAction633*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[637]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[637]) /*AbstractArray::add*/;
   variable[638] = NEW_ReduceAction634_parser___ReduceAction634___init(); /*new ReduceAction634*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[638]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[638]) /*AbstractArray::add*/;
   variable[639] = NEW_ReduceAction635_parser___ReduceAction635___init(); /*new ReduceAction635*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[639]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[639]) /*AbstractArray::add*/;
   variable[640] = NEW_ReduceAction636_parser___ReduceAction636___init(); /*new ReduceAction636*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[640]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[640]) /*AbstractArray::add*/;
   variable[641] = NEW_ReduceAction637_parser___ReduceAction637___init(); /*new ReduceAction637*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[641]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[641]) /*AbstractArray::add*/;
   variable[642] = NEW_ReduceAction638_parser___ReduceAction638___init(); /*new ReduceAction638*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[642]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[642]) /*AbstractArray::add*/;
   variable[643] = NEW_ReduceAction639_parser___ReduceAction639___init(); /*new ReduceAction639*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[643]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[643]) /*AbstractArray::add*/;
   variable[644] = NEW_ReduceAction640_parser___ReduceAction640___init(); /*new ReduceAction640*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[644]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[644]) /*AbstractArray::add*/;
   variable[645] = NEW_ReduceAction641_parser___ReduceAction641___init(); /*new ReduceAction641*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[645]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[645]) /*AbstractArray::add*/;
   variable[646] = NEW_ReduceAction642_parser___ReduceAction642___init(); /*new ReduceAction642*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[646]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[646]) /*AbstractArray::add*/;
   variable[647] = NEW_ReduceAction643_parser___ReduceAction643___init(); /*new ReduceAction643*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[647]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[647]) /*AbstractArray::add*/;
   variable[648] = NEW_ReduceAction644_parser___ReduceAction644___init(); /*new ReduceAction644*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[648]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[648]) /*AbstractArray::add*/;
   variable[649] = NEW_ReduceAction645_parser___ReduceAction645___init(); /*new ReduceAction645*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[649]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[649]) /*AbstractArray::add*/;
   variable[650] = NEW_ReduceAction646_parser___ReduceAction646___init(); /*new ReduceAction646*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[650]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[650]) /*AbstractArray::add*/;
   variable[651] = NEW_ReduceAction647_parser___ReduceAction647___init(); /*new ReduceAction647*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[651]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[651]) /*AbstractArray::add*/;
   variable[652] = NEW_ReduceAction648_parser___ReduceAction648___init(); /*new ReduceAction648*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[652]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[652]) /*AbstractArray::add*/;
   variable[653] = NEW_ReduceAction649_parser___ReduceAction649___init(); /*new ReduceAction649*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[653]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[653]) /*AbstractArray::add*/;
   variable[654] = NEW_ReduceAction650_parser___ReduceAction650___init(); /*new ReduceAction650*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[654]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[654]) /*AbstractArray::add*/;
   variable[655] = NEW_ReduceAction651_parser___ReduceAction651___init(); /*new ReduceAction651*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[655]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[655]) /*AbstractArray::add*/;
   variable[656] = NEW_ReduceAction652_parser___ReduceAction652___init(); /*new ReduceAction652*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[656]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[656]) /*AbstractArray::add*/;
   variable[657] = NEW_ReduceAction653_parser___ReduceAction653___init(); /*new ReduceAction653*/
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[657]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[657]) /*AbstractArray::add*/;
   variable[4] = NEW_Array_array___Array___with_items(variable[3]); /*new Array[ReduceAction]*/
   variable[3] = variable[4];
   ATTR_parser___Parser____reduce_table(variable[2]) /*Parser::_reduce_table*/ = variable[3];
@@ -2007,31 +2007,31 @@ void parser___SearchTokensVisitor___visit(val_t  self, val_t  param0) {
     ATTR_parser___SearchTokensVisitor____last_token(variable[3]) /*SearchTokensVisitor::_last_token*/ =  variable[1] /*n*/;
     variable[3] = variable[0];
     variable[3] = ATTR_parser___SearchTokensVisitor____untokenned_nodes(variable[3]) /*SearchTokensVisitor::_untokenned_nodes*/;
-    variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+    variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+      variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[4])) break; /*for*/
-      variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+      variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
       variable[5] = variable[4];
-      ((parser_prod___Prod___first_token__eq_t)CALL( variable[5] /*no*/,COLOR_parser_prod___Prod___first_token__eq))( variable[5] /*no*/,  variable[1] /*n*/) /*Prod::first_token=*/;
+      CALL_parser_prod___Prod___first_token__eq( variable[5] /*no*/)( variable[5] /*no*/,  variable[1] /*n*/) /*Prod::first_token=*/;
       continue_30: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
     }
     break_30: while(0);
     variable[3] = variable[0];
     variable[3] = ATTR_parser___SearchTokensVisitor____untokenned_nodes(variable[3]) /*SearchTokensVisitor::_untokenned_nodes*/;
-    ((array___AbstractArray___clear_t)CALL(variable[3],COLOR_abstract_collection___RemovableCollection___clear))(variable[3]) /*AbstractArray::clear*/;
+    CALL_abstract_collection___RemovableCollection___clear(variable[3])(variable[3]) /*AbstractArray::clear*/;
   } else { /*if*/
     variable[3] = TAG_Bool(( variable[1] /*n*/==NIT_NULL) || VAL_ISA( variable[1] /*n*/, COLOR_Prod, ID_Prod)) /*cast Prod*/;
     if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___SearchTokensVisitor___visit, LOCATE_parser, 835); nit_exit(1);}
     variable[3] = variable[0];
     variable[3] = ATTR_parser___SearchTokensVisitor____untokenned_nodes(variable[3]) /*SearchTokensVisitor::_untokenned_nodes*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*n*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*n*/) /*AbstractArray::add*/;
     variable[3] = variable[0];
-    ((parser_prod___PNode___visit_all_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___visit_all))( variable[1] /*n*/, variable[3]) /*PNode::visit_all*/;
+    CALL_parser_prod___PNode___visit_all( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::visit_all*/;
     variable[3] = variable[0];
     variable[3] = ATTR_parser___SearchTokensVisitor____last_token(variable[3]) /*SearchTokensVisitor::_last_token*/;
-    ((parser_prod___Prod___last_token__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___Prod___last_token__eq))( variable[1] /*n*/, variable[3]) /*Prod::last_token=*/;
+    CALL_parser_prod___Prod___last_token__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*Prod::last_token=*/;
   }
   return_label29: while(false);
   tracehead = trace.prev;
@@ -2090,8 +2090,8 @@ void parser___ReduceAction0___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[4] /*listnode3*/,  variable[5] /*listnode4*/); /*new AModule*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmodulenode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label32: while(false);
   tracehead = trace.prev;
   return;
@@ -2118,7 +2118,7 @@ void parser___ReduceAction1___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -2130,8 +2130,8 @@ void parser___ReduceAction1___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AModule_parser_prod___AModule___init_amodule( variable[7] /*ppackagedeclnode2*/,  variable[5] /*listnode3*/,  variable[6] /*listnode4*/); /*new AModule*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pmodulenode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label34: while(false);
   tracehead = trace.prev;
   return;
@@ -2158,7 +2158,7 @@ void parser___ReduceAction2___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -2167,20 +2167,20 @@ void parser___ReduceAction2___action(val_t  self, val_t  param0) {
   variable[7] =  variable[4] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction2___action, LOCATE_parser, 898); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode3*/)( variable[7] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[5] /*listnode4*/)( variable[5] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[5] =  variable[7] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[5] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*listnode4*/,  variable[7] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[5] /*listnode4*/)( variable[5] /*listnode4*/,  variable[7] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[5] /*listnode4*/,  variable[6] /*listnode5*/); /*new AModule*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pmodulenode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label36: while(false);
   tracehead = trace.prev;
   return;
@@ -2207,9 +2207,9 @@ void parser___ReduceAction3___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -2221,20 +2221,20 @@ void parser___ReduceAction3___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction3___action, LOCATE_parser, 928); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode4*/)( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[6] =  variable[9] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode4*/)( variable[6] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AModule_parser_prod___AModule___init_amodule( variable[8] /*ppackagedeclnode2*/,  variable[6] /*listnode4*/,  variable[7] /*listnode5*/); /*new AModule*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pmodulenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label38: while(false);
   tracehead = trace.prev;
   return;
@@ -2261,7 +2261,7 @@ void parser___ReduceAction4___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -2270,20 +2270,20 @@ void parser___ReduceAction4___action(val_t  self, val_t  param0) {
   variable[7] =  variable[4] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction4___action, LOCATE_parser, 955); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[6] =  variable[7] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[7] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[7] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[5] /*listnode3*/,  variable[6] /*listnode5*/); /*new AModule*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pmodulenode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label40: while(false);
   tracehead = trace.prev;
   return;
@@ -2310,9 +2310,9 @@ void parser___ReduceAction5___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -2324,20 +2324,20 @@ void parser___ReduceAction5___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction5___action, LOCATE_parser, 985); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AModule_parser_prod___AModule___init_amodule( variable[8] /*ppackagedeclnode2*/,  variable[6] /*listnode3*/,  variable[7] /*listnode5*/); /*new AModule*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pmodulenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label42: while(false);
   tracehead = trace.prev;
   return;
@@ -2364,9 +2364,9 @@ void parser___ReduceAction6___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -2375,32 +2375,32 @@ void parser___ReduceAction6___action(val_t  self, val_t  param0) {
   variable[8] =  variable[5] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction6___action, LOCATE_parser, 1013); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode4*/)( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode4*/,  variable[8] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode4*/)( variable[6] /*listnode4*/,  variable[8] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction6___action, LOCATE_parser, 1022); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode6*/)( variable[7] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode6*/,  variable[9] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode6*/)( variable[7] /*listnode6*/,  variable[9] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[6] /*listnode4*/,  variable[7] /*listnode6*/); /*new AModule*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pmodulenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label44: while(false);
   tracehead = trace.prev;
   return;
@@ -2427,11 +2427,11 @@ void parser___ReduceAction7___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -2443,32 +2443,32 @@ void parser___ReduceAction7___action(val_t  self, val_t  param0) {
   variable[10] =  variable[5] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction7___action, LOCATE_parser, 1053); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode4*/)( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction7___action, LOCATE_parser, 1062); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_AModule_parser_prod___AModule___init_amodule( variable[9] /*ppackagedeclnode2*/,  variable[7] /*listnode4*/,  variable[8] /*listnode6*/); /*new AModule*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pmodulenode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label46: while(false);
   tracehead = trace.prev;
   return;
@@ -2495,9 +2495,9 @@ void parser___ReduceAction8___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -2508,21 +2508,21 @@ void parser___ReduceAction8___action(val_t  self, val_t  param0) {
   variable[9] =  variable[5] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable[9] /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction8___action, LOCATE_parser, 1091); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[9] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*ppropdefnode5*/)( variable[9] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode6*/,  variable[9] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[9] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
   variable[11] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[8] /*listnode6*/); /*new ATopClassdef*/
   variable[10] = variable[11];
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pclassdefnode4*/)( variable[10] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[7] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*listnode7*/,  variable[10] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[7] /*listnode7*/)( variable[7] /*listnode7*/,  variable[10] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
   variable[12] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[6] /*listnode3*/,  variable[7] /*listnode7*/); /*new AModule*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pmodulenode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label48: while(false);
   tracehead = trace.prev;
   return;
@@ -2549,11 +2549,11 @@ void parser___ReduceAction9___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -2567,30 +2567,30 @@ void parser___ReduceAction9___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction9___action, LOCATE_parser, 1125); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[10] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*ppropdefnode5*/)( variable[10] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode7*/,  variable[10] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode7*/)( variable[9] /*listnode7*/,  variable[10] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode6*/)( variable[11] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode7*/)( variable[9] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[9] =  variable[11] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode7*/,  variable[11] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode7*/)( variable[9] /*listnode7*/,  variable[11] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[9] /*listnode7*/); /*new ATopClassdef*/
   variable[12] = variable[13];
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode4*/)( variable[12] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode8*/)( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[7] /*listnode3*/,  variable[8] /*listnode8*/); /*new AModule*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pmodulenode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label50: while(false);
   tracehead = trace.prev;
   return;
@@ -2617,11 +2617,11 @@ void parser___ReduceAction10___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -2635,21 +2635,21 @@ void parser___ReduceAction10___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction10___action, LOCATE_parser, 1166); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode5*/)( variable[11] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode6*/,  variable[11] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode6*/)( variable[10] /*listnode6*/,  variable[11] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
   variable[13] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[10] /*listnode6*/); /*new ATopClassdef*/
   variable[12] = variable[13];
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode4*/)( variable[12] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode7*/,  variable[12] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_AModule_parser_prod___AModule___init_amodule( variable[9] /*ppackagedeclnode2*/,  variable[7] /*listnode3*/,  variable[8] /*listnode7*/); /*new AModule*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pmodulenode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label52: while(false);
   tracehead = trace.prev;
   return;
@@ -2676,13 +2676,13 @@ void parser___ReduceAction11___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -2699,30 +2699,30 @@ void parser___ReduceAction11___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist4*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction11___action, LOCATE_parser, 1203); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[12] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode5*/)( variable[12] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode7*/,  variable[12] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[12] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode6*/)( variable[13] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[11] =  variable[13] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[13] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[13] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[11] /*listnode7*/); /*new ATopClassdef*/
   variable[14] = variable[15];
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode4*/)( variable[14] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode8*/)( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( variable[10] /*ppackagedeclnode2*/,  variable[8] /*listnode3*/,  variable[9] /*listnode8*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label54: while(false);
   tracehead = trace.prev;
   return;
@@ -2749,11 +2749,11 @@ void parser___ReduceAction12___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -2762,13 +2762,13 @@ void parser___ReduceAction12___action(val_t  self, val_t  param0) {
   variable[9] =  variable[6] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction12___action, LOCATE_parser, 1241); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode4*/)( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -2776,21 +2776,21 @@ void parser___ReduceAction12___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[11] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction12___action, LOCATE_parser, 1251); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[11] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode6*/)( variable[11] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode7*/,  variable[11] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode7*/)( variable[10] /*listnode7*/,  variable[11] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[13] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[10] /*listnode7*/); /*new ATopClassdef*/
   variable[12] = variable[13];
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[12] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode5*/)( variable[12] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode8*/)( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[7] /*listnode4*/,  variable[8] /*listnode8*/); /*new AModule*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pmodulenode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label56: while(false);
   tracehead = trace.prev;
   return;
@@ -2817,13 +2817,13 @@ void parser___ReduceAction13___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -2832,13 +2832,13 @@ void parser___ReduceAction13___action(val_t  self, val_t  param0) {
   variable[10] =  variable[7] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction13___action, LOCATE_parser, 1283); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -2849,30 +2849,30 @@ void parser___ReduceAction13___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist4*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction13___action, LOCATE_parser, 1295); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode8*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode8*/)( variable[11] /*listnode8*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode7*/)( variable[13] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode8*/)( variable[11] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[11] =  variable[13] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode8*/,  variable[13] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode8*/)( variable[11] /*listnode8*/,  variable[13] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[11] /*listnode8*/); /*new ATopClassdef*/
   variable[14] = variable[15];
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[8] /*listnode4*/,  variable[9] /*listnode9*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label58: while(false);
   tracehead = trace.prev;
   return;
@@ -2899,13 +2899,13 @@ void parser___ReduceAction14___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -2917,13 +2917,13 @@ void parser___ReduceAction14___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction14___action, LOCATE_parser, 1336); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -2931,21 +2931,21 @@ void parser___ReduceAction14___action(val_t  self, val_t  param0) {
   variable[13] =  variable[5] /*nodearraylist3*/;
   variable[14] = TAG_Bool(( variable[13] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[13] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction14___action, LOCATE_parser, 1346); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode7*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode7*/)( variable[12] /*listnode7*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[15] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[12] /*listnode7*/); /*new ATopClassdef*/
   variable[14] = variable[15];
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode8*/)( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( variable[10] /*ppackagedeclnode2*/,  variable[8] /*listnode4*/,  variable[9] /*listnode8*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label60: while(false);
   tracehead = trace.prev;
   return;
@@ -2972,15 +2972,15 @@ void parser___ReduceAction15___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -2992,13 +2992,13 @@ void parser___ReduceAction15___action(val_t  self, val_t  param0) {
   variable[12] =  variable[7] /*nodearraylist2*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction15___action, LOCATE_parser, 1381); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -3009,30 +3009,30 @@ void parser___ReduceAction15___action(val_t  self, val_t  param0) {
   variable[15] =  variable[4] /*nodearraylist5*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction15___action, LOCATE_parser, 1393); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[13] /*listnode8*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode7*/)( variable[15] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[13] /*listnode8*/)( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[13] =  variable[15] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[13] /*listnode8*/,  variable[15] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[15] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[13] /*listnode8*/); /*new ATopClassdef*/
   variable[16] = variable[17];
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode5*/)( variable[16] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( variable[11] /*ppackagedeclnode2*/,  variable[9] /*listnode4*/,  variable[10] /*listnode9*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label62: while(false);
   tracehead = trace.prev;
   return;
@@ -3059,11 +3059,11 @@ void parser___ReduceAction16___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -3077,30 +3077,30 @@ void parser___ReduceAction16___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[11] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction16___action, LOCATE_parser, 1434); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[11] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode6*/)( variable[11] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode7*/,  variable[11] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode7*/)( variable[10] /*listnode7*/,  variable[11] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[13] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[10] /*listnode7*/); /*new ATopClassdef*/
   variable[12] = variable[13];
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode8*/)( variable[8] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[9] /*listnode4*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode8*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode8*/)( variable[8] /*listnode8*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[12] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode5*/)( variable[12] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode8*/)( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[7] /*listnode3*/,  variable[8] /*listnode8*/); /*new AModule*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pmodulenode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label64: while(false);
   tracehead = trace.prev;
   return;
@@ -3127,13 +3127,13 @@ void parser___ReduceAction17___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -3150,39 +3150,39 @@ void parser___ReduceAction17___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist4*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction17___action, LOCATE_parser, 1478); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode8*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode8*/)( variable[11] /*listnode8*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode7*/)( variable[13] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode8*/)( variable[11] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[11] =  variable[13] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode8*/,  variable[13] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode8*/)( variable[11] /*listnode8*/,  variable[13] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[11] /*listnode8*/); /*new ATopClassdef*/
   variable[14] = variable[15];
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode9*/)( variable[9] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[9] =  variable[10] /*listnode4*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode9*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[8] /*listnode3*/,  variable[9] /*listnode9*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label66: while(false);
   tracehead = trace.prev;
   return;
@@ -3209,13 +3209,13 @@ void parser___ReduceAction18___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -3232,30 +3232,30 @@ void parser___ReduceAction18___action(val_t  self, val_t  param0) {
   variable[13] =  variable[5] /*nodearraylist3*/;
   variable[14] = TAG_Bool(( variable[13] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[13] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction18___action, LOCATE_parser, 1529); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode7*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode7*/)( variable[12] /*listnode7*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[15] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[12] /*listnode7*/); /*new ATopClassdef*/
   variable[14] = variable[15];
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode8*/)( variable[9] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[9] =  variable[11] /*listnode4*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode8*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode8*/)( variable[9] /*listnode8*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode5*/)( variable[14] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode8*/)( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( variable[10] /*ppackagedeclnode2*/,  variable[8] /*listnode3*/,  variable[9] /*listnode8*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label68: while(false);
   tracehead = trace.prev;
   return;
@@ -3282,15 +3282,15 @@ void parser___ReduceAction19___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -3310,39 +3310,39 @@ void parser___ReduceAction19___action(val_t  self, val_t  param0) {
   variable[15] =  variable[4] /*nodearraylist5*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction19___action, LOCATE_parser, 1576); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[13] /*listnode8*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode7*/)( variable[15] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[13] /*listnode8*/)( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[13] =  variable[15] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[13] /*listnode8*/,  variable[15] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[15] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[13] /*listnode8*/); /*new ATopClassdef*/
   variable[16] = variable[17];
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode9*/)( variable[10] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[10] =  variable[12] /*listnode4*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode9*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode5*/)( variable[16] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( variable[11] /*ppackagedeclnode2*/,  variable[9] /*listnode3*/,  variable[10] /*listnode9*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label70: while(false);
   tracehead = trace.prev;
   return;
@@ -3369,13 +3369,13 @@ void parser___ReduceAction20___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -3384,13 +3384,13 @@ void parser___ReduceAction20___action(val_t  self, val_t  param0) {
   variable[10] =  variable[7] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction20___action, LOCATE_parser, 1622); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[6] /*nodearraylist2*/;
@@ -3401,30 +3401,30 @@ void parser___ReduceAction20___action(val_t  self, val_t  param0) {
   variable[13] =  variable[5] /*nodearraylist3*/;
   variable[14] = TAG_Bool(( variable[13] /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable[13] /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction20___action, LOCATE_parser, 1634); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[13] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode7*/)( variable[13] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode8*/,  variable[13] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode8*/)( variable[12] /*listnode8*/,  variable[13] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
   variable[15] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[12] /*listnode8*/); /*new ATopClassdef*/
   variable[14] = variable[15];
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode9*/)( variable[9] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[9] =  variable[11] /*listnode5*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode9*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode6*/)( variable[14] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[8] /*listnode4*/,  variable[9] /*listnode9*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label72: while(false);
   tracehead = trace.prev;
   return;
@@ -3451,15 +3451,15 @@ void parser___ReduceAction21___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -3468,13 +3468,13 @@ void parser___ReduceAction21___action(val_t  self, val_t  param0) {
   variable[11] =  variable[8] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction21___action, LOCATE_parser, 1674); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[9] =  variable[11] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[7] /*nodearraylist2*/;
@@ -3488,39 +3488,39 @@ void parser___ReduceAction21___action(val_t  self, val_t  param0) {
   variable[15] =  variable[4] /*nodearraylist5*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction21___action, LOCATE_parser, 1688); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[14] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode7*/)( variable[14] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[13] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[13] /*listnode9*/,  variable[14] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[13] /*listnode9*/)( variable[13] /*listnode9*/,  variable[14] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode8*/)( variable[15] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[13] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[13] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[13] /*listnode9*/)( variable[13] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[13] =  variable[15] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[13] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[13] /*listnode9*/,  variable[15] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[13] /*listnode9*/)( variable[13] /*listnode9*/,  variable[15] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[13] /*listnode9*/); /*new ATopClassdef*/
   variable[16] = variable[17];
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode5*/)( variable[12] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode10*/)( variable[10] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[10] =  variable[12] /*listnode5*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode10*/,  variable[12] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[12] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode6*/)( variable[16] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[9] /*listnode4*/,  variable[10] /*listnode10*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label74: while(false);
   tracehead = trace.prev;
   return;
@@ -3547,15 +3547,15 @@ void parser___ReduceAction22___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -3567,13 +3567,13 @@ void parser___ReduceAction22___action(val_t  self, val_t  param0) {
   variable[12] =  variable[7] /*nodearraylist2*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction22___action, LOCATE_parser, 1737); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] =  variable[6] /*nodearraylist3*/;
@@ -3584,30 +3584,30 @@ void parser___ReduceAction22___action(val_t  self, val_t  param0) {
   variable[15] =  variable[5] /*nodearraylist4*/;
   variable[16] = TAG_Bool(( variable[15] /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable[15] /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction22___action, LOCATE_parser, 1749); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[15] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode7*/)( variable[15] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[14] /*listnode8*/,  variable[15] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[15] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
   variable[17] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[14] /*listnode8*/); /*new ATopClassdef*/
   variable[16] = variable[17];
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode5*/)( variable[13] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode9*/)( variable[10] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[10] =  variable[13] /*listnode5*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode9*/,  variable[13] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[13] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode6*/)( variable[16] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( variable[11] /*ppackagedeclnode2*/,  variable[9] /*listnode4*/,  variable[10] /*listnode9*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label76: while(false);
   tracehead = trace.prev;
   return;
@@ -3634,17 +3634,17 @@ void parser___ReduceAction23___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -3656,13 +3656,13 @@ void parser___ReduceAction23___action(val_t  self, val_t  param0) {
   variable[13] =  variable[8] /*nodearraylist2*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction23___action, LOCATE_parser, 1792); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode4*/)( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[10] =  variable[13] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] =  variable[7] /*nodearraylist3*/;
@@ -3676,39 +3676,39 @@ void parser___ReduceAction23___action(val_t  self, val_t  param0) {
   variable[17] =  variable[4] /*nodearraylist6*/;
   variable[18] = TAG_Bool(( variable[17] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[17] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction23___action, LOCATE_parser, 1806); nit_exit(1);}
-  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[16] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*ppropdefnode7*/)( variable[16] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[18])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[15] /*listnode9*/,  variable[16] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[15] /*listnode9*/)( variable[15] /*listnode9*/,  variable[16] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
-  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[17] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[17] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[17] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*listnode8*/)( variable[17] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[18])) { /*if*/
-    variable[18] = ((array___AbstractArray___is_empty_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[15] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[18] = CALL_abstract_collection___Collection___is_empty( variable[15] /*listnode9*/)( variable[15] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[18])) { /*if*/
       variable[15] =  variable[17] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[15] /*listnode9*/,  variable[17] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[15] /*listnode9*/)( variable[15] /*listnode9*/,  variable[17] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[19] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[15] /*listnode9*/); /*new ATopClassdef*/
   variable[18] = variable[19];
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode5*/)( variable[14] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    variable[19] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[19] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode10*/)( variable[11] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[19])) { /*if*/
       variable[11] =  variable[14] /*listnode5*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode10*/,  variable[14] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[14] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[18] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode6*/)( variable[18] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
   variable[20] = NEW_AModule_parser_prod___AModule___init_amodule( variable[12] /*ppackagedeclnode2*/,  variable[10] /*listnode4*/,  variable[11] /*listnode10*/); /*new AModule*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*pmodulenode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label78: while(false);
   tracehead = trace.prev;
   return;
@@ -3735,7 +3735,7 @@ void parser___ReduceAction24___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -3744,15 +3744,15 @@ void parser___ReduceAction24___action(val_t  self, val_t  param0) {
   variable[7] =  variable[4] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*pclassdefnode4*/==NIT_NULL) || VAL_ISA( variable[7] /*pclassdefnode4*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction24___action, LOCATE_parser, 1849); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[7] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*pclassdefnode4*/)( variable[7] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode5*/,  variable[7] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[7] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
   variable[9] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[5] /*listnode3*/,  variable[6] /*listnode5*/); /*new AModule*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pmodulenode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label80: while(false);
   tracehead = trace.prev;
   return;
@@ -3779,9 +3779,9 @@ void parser___ReduceAction25___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -3793,15 +3793,15 @@ void parser___ReduceAction25___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*pclassdefnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*pclassdefnode4*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction25___action, LOCATE_parser, 1875); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pclassdefnode4*/)( variable[9] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*listnode5*/,  variable[9] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[9] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
   variable[11] = NEW_AModule_parser_prod___AModule___init_amodule( variable[8] /*ppackagedeclnode2*/,  variable[6] /*listnode3*/,  variable[7] /*listnode5*/); /*new AModule*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pmodulenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label82: while(false);
   tracehead = trace.prev;
   return;
@@ -3828,9 +3828,9 @@ void parser___ReduceAction26___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -3839,27 +3839,27 @@ void parser___ReduceAction26___action(val_t  self, val_t  param0) {
   variable[8] =  variable[5] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction26___action, LOCATE_parser, 1899); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode4*/)( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode4*/,  variable[8] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode4*/)( variable[6] /*listnode4*/,  variable[8] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable[9] /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction26___action, LOCATE_parser, 1908); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pclassdefnode5*/)( variable[9] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*listnode6*/,  variable[9] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[7] /*listnode6*/)( variable[7] /*listnode6*/,  variable[9] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[11] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[6] /*listnode4*/,  variable[7] /*listnode6*/); /*new AModule*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pmodulenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label84: while(false);
   tracehead = trace.prev;
   return;
@@ -3886,11 +3886,11 @@ void parser___ReduceAction27___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -3902,27 +3902,27 @@ void parser___ReduceAction27___action(val_t  self, val_t  param0) {
   variable[10] =  variable[5] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction27___action, LOCATE_parser, 1935); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode4*/)( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction27___action, LOCATE_parser, 1944); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode5*/)( variable[11] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode6*/,  variable[11] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[13] = NEW_AModule_parser_prod___AModule___init_amodule( variable[9] /*ppackagedeclnode2*/,  variable[7] /*listnode4*/,  variable[8] /*listnode6*/); /*new AModule*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pmodulenode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label86: while(false);
   tracehead = trace.prev;
   return;
@@ -3949,9 +3949,9 @@ void parser___ReduceAction28___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -3963,24 +3963,24 @@ void parser___ReduceAction28___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable[9] /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction28___action, LOCATE_parser, 1970); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode6*/)( variable[7] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[8] /*listnode4*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode6*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode6*/)( variable[7] /*listnode6*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pclassdefnode5*/)( variable[9] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*listnode6*/,  variable[9] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[7] /*listnode6*/)( variable[7] /*listnode6*/,  variable[9] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[11] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[6] /*listnode3*/,  variable[7] /*listnode6*/); /*new AModule*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pmodulenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label88: while(false);
   tracehead = trace.prev;
   return;
@@ -4007,11 +4007,11 @@ void parser___ReduceAction29___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -4026,24 +4026,24 @@ void parser___ReduceAction29___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*pclassdefnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*pclassdefnode5*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction29___action, LOCATE_parser, 2006); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[10] /*listnode4*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode5*/)( variable[11] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode6*/,  variable[11] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
   variable[13] = NEW_AModule_parser_prod___AModule___init_amodule( variable[9] /*ppackagedeclnode2*/,  variable[7] /*listnode3*/,  variable[8] /*listnode6*/); /*new AModule*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pmodulenode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label90: while(false);
   tracehead = trace.prev;
   return;
@@ -4070,11 +4070,11 @@ void parser___ReduceAction30___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -4083,13 +4083,13 @@ void parser___ReduceAction30___action(val_t  self, val_t  param0) {
   variable[9] =  variable[6] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction30___action, LOCATE_parser, 2038); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode4*/)( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] =  variable[5] /*nodearraylist2*/;
@@ -4098,24 +4098,24 @@ void parser___ReduceAction30___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*pclassdefnode6*/==NIT_NULL) || VAL_ISA( variable[11] /*pclassdefnode6*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction30___action, LOCATE_parser, 2049); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[10] /*listnode5*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[10] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[10] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode6*/)( variable[11] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode7*/,  variable[11] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[11] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
   variable[13] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[7] /*listnode4*/,  variable[8] /*listnode7*/); /*new AModule*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pmodulenode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label92: while(false);
   tracehead = trace.prev;
   return;
@@ -4142,13 +4142,13 @@ void parser___ReduceAction31___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -4160,13 +4160,13 @@ void parser___ReduceAction31___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction31___action, LOCATE_parser, 2084); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[5] /*nodearraylist3*/;
@@ -4175,24 +4175,24 @@ void parser___ReduceAction31___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist4*/;
   variable[14] = TAG_Bool(( variable[13] /*pclassdefnode6*/==NIT_NULL) || VAL_ISA( variable[13] /*pclassdefnode6*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction31___action, LOCATE_parser, 2095); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode5*/)( variable[12] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode7*/)( variable[9] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[9] =  variable[12] /*listnode5*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode7*/,  variable[12] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode7*/)( variable[9] /*listnode7*/,  variable[12] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[13] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode6*/)( variable[13] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode7*/,  variable[13] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode7*/)( variable[9] /*listnode7*/,  variable[13] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
   variable[15] = NEW_AModule_parser_prod___AModule___init_amodule( variable[10] /*ppackagedeclnode2*/,  variable[8] /*listnode4*/,  variable[9] /*listnode7*/); /*new AModule*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pmodulenode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label94: while(false);
   tracehead = trace.prev;
   return;
@@ -4219,11 +4219,11 @@ void parser___ReduceAction32___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -4234,28 +4234,28 @@ void parser___ReduceAction32___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable[10] /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction32___action, LOCATE_parser, 2128); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[10] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*ppropdefnode5*/)( variable[10] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode6*/,  variable[10] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode6*/)( variable[9] /*listnode6*/,  variable[10] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
   variable[12] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[9] /*listnode6*/); /*new ATopClassdef*/
   variable[11] = variable[12];
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*pclassdefnode7*/==NIT_NULL) || VAL_ISA( variable[12] /*pclassdefnode7*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction32___action, LOCATE_parser, 2136); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pclassdefnode4*/)( variable[11] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode8*/,  variable[11] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode8*/)( variable[8] /*listnode8*/,  variable[11] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[12] /*pclassdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*pclassdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[12] /*pclassdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*pclassdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*pclassdefnode7*/)( variable[12] /*pclassdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode8*/)( variable[8] /*listnode8*/,  variable[12] /*pclassdefnode7*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[7] /*listnode3*/,  variable[8] /*listnode8*/); /*new AModule*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pmodulenode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label96: while(false);
   tracehead = trace.prev;
   return;
@@ -4282,13 +4282,13 @@ void parser___ReduceAction33___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -4302,17 +4302,17 @@ void parser___ReduceAction33___action(val_t  self, val_t  param0) {
   variable[12] =  variable[5] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction33___action, LOCATE_parser, 2168); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*ppropdefnode5*/)( variable[11] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode7*/,  variable[11] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode7*/)( variable[10] /*listnode7*/,  variable[11] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode7*/)( variable[10] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode7*/)( variable[10] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[10] /*listnode7*/); /*new ATopClassdef*/
@@ -4320,19 +4320,19 @@ void parser___ReduceAction33___action(val_t  self, val_t  param0) {
   variable[14] =  variable[4] /*nodearraylist4*/;
   variable[15] = TAG_Bool(( variable[14] /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable[14] /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction33___action, LOCATE_parser, 2183); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode4*/)( variable[13] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[13] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[13] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode8*/)( variable[14] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode8*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode8*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[8] /*listnode3*/,  variable[9] /*listnode9*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label98: while(false);
   tracehead = trace.prev;
   return;
@@ -4359,13 +4359,13 @@ void parser___ReduceAction34___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -4379,28 +4379,28 @@ void parser___ReduceAction34___action(val_t  self, val_t  param0) {
   variable[12] =  variable[6] /*nodearraylist2*/;
   variable[13] = TAG_Bool(( variable[12] /*ppropdefnode5*/==NIT_NULL) || VAL_ISA( variable[12] /*ppropdefnode5*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction34___action, LOCATE_parser, 2215); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[12] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode5*/)( variable[12] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode6*/,  variable[12] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode6*/)( variable[11] /*listnode6*/,  variable[12] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[11] /*listnode6*/); /*new ATopClassdef*/
   variable[13] = variable[14];
   variable[14] =  variable[4] /*nodearraylist4*/;
   variable[15] = TAG_Bool(( variable[14] /*pclassdefnode7*/==NIT_NULL) || VAL_ISA( variable[14] /*pclassdefnode7*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction34___action, LOCATE_parser, 2223); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode4*/)( variable[13] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode8*/,  variable[13] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode8*/)( variable[9] /*listnode8*/,  variable[13] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode7*/)( variable[14] /*pclassdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode8*/)( variable[9] /*listnode8*/,  variable[14] /*pclassdefnode7*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( variable[10] /*ppackagedeclnode2*/,  variable[8] /*listnode3*/,  variable[9] /*listnode8*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label100: while(false);
   tracehead = trace.prev;
   return;
@@ -4427,15 +4427,15 @@ void parser___ReduceAction35___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -4452,17 +4452,17 @@ void parser___ReduceAction35___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist4*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction35___action, LOCATE_parser, 2258); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[13] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode5*/)( variable[13] /*ppropdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode7*/,  variable[13] /*ppropdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode7*/)( variable[12] /*listnode7*/,  variable[13] /*ppropdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode6*/)( variable[14] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[12] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[12] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[12] /*listnode7*/)( variable[12] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[12] =  variable[14] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[12] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[12] /*listnode7*/,  variable[14] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[12] /*listnode7*/)( variable[12] /*listnode7*/,  variable[14] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[16] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[12] /*listnode7*/); /*new ATopClassdef*/
@@ -4470,19 +4470,19 @@ void parser___ReduceAction35___action(val_t  self, val_t  param0) {
   variable[16] =  variable[4] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable[16] /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction35___action, LOCATE_parser, 2273); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode4*/,COLOR_kernel___Object_____eqeq))( variable[15] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode4*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode4*/)( variable[15] /*pclassdefnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[15] /*pclassdefnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[15] /*pclassdefnode4*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode8*/)( variable[16] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode8*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode8*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( variable[11] /*ppackagedeclnode2*/,  variable[9] /*listnode3*/,  variable[10] /*listnode9*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label102: while(false);
   tracehead = trace.prev;
   return;
@@ -4509,13 +4509,13 @@ void parser___ReduceAction36___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -4524,13 +4524,13 @@ void parser___ReduceAction36___action(val_t  self, val_t  param0) {
   variable[10] =  variable[7] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction36___action, LOCATE_parser, 2302); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -4538,28 +4538,28 @@ void parser___ReduceAction36___action(val_t  self, val_t  param0) {
   variable[12] =  variable[6] /*nodearraylist2*/;
   variable[13] = TAG_Bool(( variable[12] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction36___action, LOCATE_parser, 2312); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode7*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[11] /*listnode7*/); /*new ATopClassdef*/
   variable[13] = variable[14];
   variable[14] =  variable[4] /*nodearraylist4*/;
   variable[15] = TAG_Bool(( variable[14] /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable[14] /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction36___action, LOCATE_parser, 2320); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[13] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode5*/)( variable[13] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[13] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[13] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode8*/)( variable[14] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode8*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode8*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[8] /*listnode4*/,  variable[9] /*listnode9*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label104: while(false);
   tracehead = trace.prev;
   return;
@@ -4586,15 +4586,15 @@ void parser___ReduceAction37___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -4603,13 +4603,13 @@ void parser___ReduceAction37___action(val_t  self, val_t  param0) {
   variable[11] =  variable[8] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction37___action, LOCATE_parser, 2350); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[9] =  variable[11] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -4620,17 +4620,17 @@ void parser___ReduceAction37___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist4*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction37___action, LOCATE_parser, 2362); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode8*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode8*/)( variable[12] /*listnode8*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode7*/)( variable[14] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[12] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[12] /*listnode8*/)( variable[12] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[12] =  variable[14] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[12] /*listnode8*/,  variable[14] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[12] /*listnode8*/)( variable[12] /*listnode8*/,  variable[14] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[16] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[12] /*listnode8*/); /*new ATopClassdef*/
@@ -4638,19 +4638,19 @@ void parser___ReduceAction37___action(val_t  self, val_t  param0) {
   variable[16] =  variable[4] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable[16] /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction37___action, LOCATE_parser, 2377); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode10*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode9*/)( variable[16] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode9*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[9] /*listnode4*/,  variable[10] /*listnode10*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label106: while(false);
   tracehead = trace.prev;
   return;
@@ -4677,15 +4677,15 @@ void parser___ReduceAction38___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -4697,13 +4697,13 @@ void parser___ReduceAction38___action(val_t  self, val_t  param0) {
   variable[12] =  variable[7] /*nodearraylist2*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction38___action, LOCATE_parser, 2409); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -4711,28 +4711,28 @@ void parser___ReduceAction38___action(val_t  self, val_t  param0) {
   variable[14] =  variable[6] /*nodearraylist3*/;
   variable[15] = TAG_Bool(( variable[14] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[14] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction38___action, LOCATE_parser, 2419); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[13] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[13] /*listnode7*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[13] /*listnode7*/)( variable[13] /*listnode7*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[13] /*listnode7*/); /*new ATopClassdef*/
   variable[15] = variable[16];
   variable[16] =  variable[4] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable[16] /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction38___action, LOCATE_parser, 2427); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode8*/)( variable[16] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode8*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode8*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( variable[11] /*ppackagedeclnode2*/,  variable[9] /*listnode4*/,  variable[10] /*listnode9*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label108: while(false);
   tracehead = trace.prev;
   return;
@@ -4759,17 +4759,17 @@ void parser___ReduceAction39___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -4781,13 +4781,13 @@ void parser___ReduceAction39___action(val_t  self, val_t  param0) {
   variable[13] =  variable[8] /*nodearraylist2*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction39___action, LOCATE_parser, 2460); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode4*/)( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[10] =  variable[13] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_Array_array___Array___init(); /*new Array[Object]*/
@@ -4798,17 +4798,17 @@ void parser___ReduceAction39___action(val_t  self, val_t  param0) {
   variable[16] =  variable[5] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[16] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction39___action, LOCATE_parser, 2472); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode6*/)( variable[15] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[14] /*listnode8*/,  variable[15] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[15] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[16] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*listnode7*/)( variable[16] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[14] /*listnode8*/)( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[14] =  variable[16] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[14] /*listnode8*/,  variable[16] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[16] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[18] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[14] /*listnode8*/); /*new ATopClassdef*/
@@ -4816,19 +4816,19 @@ void parser___ReduceAction39___action(val_t  self, val_t  param0) {
   variable[18] =  variable[4] /*nodearraylist6*/;
   variable[19] = TAG_Bool(( variable[18] /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable[18] /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction39___action, LOCATE_parser, 2487); nit_exit(1);}
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[17] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode5*/)( variable[17] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode10*/,  variable[17] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[17] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[18] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode9*/)( variable[18] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode9*/) /*AbstractArray::add*/;
   }
   variable[20] = NEW_AModule_parser_prod___AModule___init_amodule( variable[12] /*ppackagedeclnode2*/,  variable[10] /*listnode4*/,  variable[11] /*listnode10*/); /*new AModule*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*pmodulenode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label110: while(false);
   tracehead = trace.prev;
   return;
@@ -4855,13 +4855,13 @@ void parser___ReduceAction40___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -4875,37 +4875,37 @@ void parser___ReduceAction40___action(val_t  self, val_t  param0) {
   variable[12] =  variable[6] /*nodearraylist2*/;
   variable[13] = TAG_Bool(( variable[12] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction40___action, LOCATE_parser, 2519); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*ppropdefnode6*/)( variable[12] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode7*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[12] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[14] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[11] /*listnode7*/); /*new ATopClassdef*/
   variable[13] = variable[14];
   variable[14] =  variable[4] /*nodearraylist4*/;
   variable[15] = TAG_Bool(( variable[14] /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable[14] /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction40___action, LOCATE_parser, 2527); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode9*/)( variable[9] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[9] =  variable[10] /*listnode4*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode9*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[13] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*pclassdefnode5*/)( variable[13] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[13] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[13] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pclassdefnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pclassdefnode8*/)( variable[14] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode8*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode9*/)( variable[9] /*listnode9*/,  variable[14] /*pclassdefnode8*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[8] /*listnode3*/,  variable[9] /*listnode9*/); /*new AModule*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pmodulenode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label112: while(false);
   tracehead = trace.prev;
   return;
@@ -4932,15 +4932,15 @@ void parser___ReduceAction41___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -4957,17 +4957,17 @@ void parser___ReduceAction41___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist4*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction41___action, LOCATE_parser, 2569); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*ppropdefnode6*/)( variable[13] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode8*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode8*/)( variable[12] /*listnode8*/,  variable[13] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode7*/)( variable[14] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[12] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[12] /*listnode8*/)( variable[12] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[12] =  variable[14] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[12] /*listnode8*/,  variable[14] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[12] /*listnode8*/)( variable[12] /*listnode8*/,  variable[14] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[16] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[12] /*listnode8*/); /*new ATopClassdef*/
@@ -4975,28 +4975,28 @@ void parser___ReduceAction41___action(val_t  self, val_t  param0) {
   variable[16] =  variable[4] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable[16] /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction41___action, LOCATE_parser, 2584); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode10*/)( variable[10] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[10] =  variable[11] /*listnode4*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode10*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode10*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode9*/)( variable[16] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode9*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[9] /*listnode3*/,  variable[10] /*listnode10*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label114: while(false);
   tracehead = trace.prev;
   return;
@@ -5023,15 +5023,15 @@ void parser___ReduceAction42___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -5048,37 +5048,37 @@ void parser___ReduceAction42___action(val_t  self, val_t  param0) {
   variable[14] =  variable[6] /*nodearraylist3*/;
   variable[15] = TAG_Bool(( variable[14] /*ppropdefnode6*/==NIT_NULL) || VAL_ISA( variable[14] /*ppropdefnode6*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction42___action, LOCATE_parser, 2626); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode6*/)( variable[14] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[13] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[13] /*listnode7*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[13] /*listnode7*/)( variable[13] /*listnode7*/,  variable[14] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[13] /*listnode7*/); /*new ATopClassdef*/
   variable[15] = variable[16];
   variable[16] =  variable[4] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*pclassdefnode8*/==NIT_NULL) || VAL_ISA( variable[16] /*pclassdefnode8*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction42___action, LOCATE_parser, 2634); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode9*/)( variable[10] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[10] =  variable[12] /*listnode4*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode9*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode5*/)( variable[15] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[15] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode8*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode8*/)( variable[16] /*pclassdefnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode8*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode9*/)( variable[10] /*listnode9*/,  variable[16] /*pclassdefnode8*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( variable[11] /*ppackagedeclnode2*/,  variable[9] /*listnode3*/,  variable[10] /*listnode9*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label116: while(false);
   tracehead = trace.prev;
   return;
@@ -5105,17 +5105,17 @@ void parser___ReduceAction43___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -5135,17 +5135,17 @@ void parser___ReduceAction43___action(val_t  self, val_t  param0) {
   variable[16] =  variable[5] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[16] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction43___action, LOCATE_parser, 2679); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode6*/)( variable[15] /*ppropdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[14] /*listnode8*/,  variable[15] /*ppropdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[15] /*ppropdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[16] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*listnode7*/)( variable[16] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[14] /*listnode8*/)( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[14] =  variable[16] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[14] /*listnode8*/,  variable[16] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[16] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[18] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[14] /*listnode8*/); /*new ATopClassdef*/
@@ -5153,28 +5153,28 @@ void parser___ReduceAction43___action(val_t  self, val_t  param0) {
   variable[18] =  variable[4] /*nodearraylist6*/;
   variable[19] = TAG_Bool(( variable[18] /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable[18] /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction43___action, LOCATE_parser, 2694); nit_exit(1);}
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    variable[19] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[19] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode10*/)( variable[11] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[19])) { /*if*/
       variable[11] =  variable[13] /*listnode4*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode10*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode5*/,COLOR_kernel___Object_____eqeq))( variable[17] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode5*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode5*/)( variable[17] /*pclassdefnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode10*/,  variable[17] /*pclassdefnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[17] /*pclassdefnode5*/) /*AbstractArray::add*/;
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[18] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode9*/)( variable[18] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode9*/) /*AbstractArray::add*/;
   }
   variable[20] = NEW_AModule_parser_prod___AModule___init_amodule( variable[12] /*ppackagedeclnode2*/,  variable[10] /*listnode3*/,  variable[11] /*listnode10*/); /*new AModule*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*pmodulenode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label118: while(false);
   tracehead = trace.prev;
   return;
@@ -5201,15 +5201,15 @@ void parser___ReduceAction44___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -5218,13 +5218,13 @@ void parser___ReduceAction44___action(val_t  self, val_t  param0) {
   variable[11] =  variable[8] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction44___action, LOCATE_parser, 2731); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[9] =  variable[11] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[7] /*nodearraylist2*/;
@@ -5235,37 +5235,37 @@ void parser___ReduceAction44___action(val_t  self, val_t  param0) {
   variable[14] =  variable[6] /*nodearraylist3*/;
   variable[15] = TAG_Bool(( variable[14] /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable[14] /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction44___action, LOCATE_parser, 2743); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[14] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[14] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*ppropdefnode7*/)( variable[14] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[13] /*listnode8*/,  variable[14] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[14] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
   variable[16] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[13] /*listnode8*/); /*new ATopClassdef*/
   variable[15] = variable[16];
   variable[16] =  variable[4] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable[16] /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction44___action, LOCATE_parser, 2751); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode5*/)( variable[12] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode10*/)( variable[10] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[10] =  variable[12] /*listnode5*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode10*/,  variable[12] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[12] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*pclassdefnode6*/)( variable[15] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode10*/,  variable[15] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[15] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pclassdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pclassdefnode9*/)( variable[16] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode10*/)( variable[10] /*listnode10*/,  variable[16] /*pclassdefnode9*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[9] /*listnode4*/,  variable[10] /*listnode10*/); /*new AModule*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pmodulenode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label120: while(false);
   tracehead = trace.prev;
   return;
@@ -5292,17 +5292,17 @@ void parser___ReduceAction45___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -5311,13 +5311,13 @@ void parser___ReduceAction45___action(val_t  self, val_t  param0) {
   variable[12] =  variable[9] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction45___action, LOCATE_parser, 2789); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode4*/)( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] =  variable[8] /*nodearraylist2*/;
@@ -5331,17 +5331,17 @@ void parser___ReduceAction45___action(val_t  self, val_t  param0) {
   variable[16] =  variable[5] /*nodearraylist5*/;
   variable[17] = TAG_Bool(( variable[16] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[16] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction45___action, LOCATE_parser, 2803); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[15] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*ppropdefnode7*/)( variable[15] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[14] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[14] /*listnode9*/,  variable[15] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[14] /*listnode9*/)( variable[14] /*listnode9*/,  variable[15] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[16] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[16] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*listnode8*/)( variable[16] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    variable[17] = ((array___AbstractArray___is_empty_t)CALL( variable[14] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[14] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[17] = CALL_abstract_collection___Collection___is_empty( variable[14] /*listnode9*/)( variable[14] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[17])) { /*if*/
       variable[14] =  variable[16] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[14] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[14] /*listnode9*/,  variable[16] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[14] /*listnode9*/)( variable[14] /*listnode9*/,  variable[16] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[18] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[14] /*listnode9*/); /*new ATopClassdef*/
@@ -5349,28 +5349,28 @@ void parser___ReduceAction45___action(val_t  self, val_t  param0) {
   variable[18] =  variable[4] /*nodearraylist6*/;
   variable[19] = TAG_Bool(( variable[18] /*pclassdefnode10*/==NIT_NULL) || VAL_ISA( variable[18] /*pclassdefnode10*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction45___action, LOCATE_parser, 2818); nit_exit(1);}
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode5*/)( variable[13] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    variable[19] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode11*/) /*AbstractArray::is_empty*/;
+    variable[19] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode11*/)( variable[11] /*listnode11*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[19])) { /*if*/
       variable[11] =  variable[13] /*listnode5*/ /*listnode11=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode11*/,  variable[13] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode11*/)( variable[11] /*listnode11*/,  variable[13] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[17] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode6*/)( variable[17] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode11*/,  variable[17] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode11*/)( variable[11] /*listnode11*/,  variable[17] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[18] /*pclassdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode10*/)( variable[18] /*pclassdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode11*/,  variable[18] /*pclassdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode11*/)( variable[11] /*listnode11*/,  variable[18] /*pclassdefnode10*/) /*AbstractArray::add*/;
   }
   variable[20] = NEW_AModule_parser_prod___AModule___init_amodule( NIT_NULL /*null*/,  variable[10] /*listnode4*/,  variable[11] /*listnode11*/); /*new AModule*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*pmodulenode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label122: while(false);
   tracehead = trace.prev;
   return;
@@ -5397,17 +5397,17 @@ void parser___ReduceAction46___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -5419,13 +5419,13 @@ void parser___ReduceAction46___action(val_t  self, val_t  param0) {
   variable[13] =  variable[8] /*nodearraylist2*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction46___action, LOCATE_parser, 2858); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode4*/)( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[10] =  variable[13] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] =  variable[7] /*nodearraylist3*/;
@@ -5436,37 +5436,37 @@ void parser___ReduceAction46___action(val_t  self, val_t  param0) {
   variable[16] =  variable[6] /*nodearraylist4*/;
   variable[17] = TAG_Bool(( variable[16] /*ppropdefnode7*/==NIT_NULL) || VAL_ISA( variable[16] /*ppropdefnode7*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction46___action, LOCATE_parser, 2870); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[16] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*ppropdefnode7*/)( variable[16] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[15] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[15] /*listnode8*/,  variable[16] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[15] /*listnode8*/)( variable[15] /*listnode8*/,  variable[16] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[15] /*listnode8*/); /*new ATopClassdef*/
   variable[17] = variable[18];
   variable[18] =  variable[4] /*nodearraylist6*/;
   variable[19] = TAG_Bool(( variable[18] /*pclassdefnode9*/==NIT_NULL) || VAL_ISA( variable[18] /*pclassdefnode9*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction46___action, LOCATE_parser, 2878); nit_exit(1);}
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode5*/)( variable[14] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    variable[19] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[19] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode10*/)( variable[11] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[19])) { /*if*/
       variable[11] =  variable[14] /*listnode5*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode10*/,  variable[14] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[14] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[17] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*pclassdefnode6*/)( variable[17] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode10*/,  variable[17] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[17] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*pclassdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[18] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*pclassdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[18] /*pclassdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*pclassdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*pclassdefnode9*/)( variable[18] /*pclassdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[11] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[11] /*listnode10*/)( variable[11] /*listnode10*/,  variable[18] /*pclassdefnode9*/) /*AbstractArray::add*/;
   }
   variable[20] = NEW_AModule_parser_prod___AModule___init_amodule( variable[12] /*ppackagedeclnode2*/,  variable[10] /*listnode4*/,  variable[11] /*listnode10*/); /*new AModule*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*pmodulenode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label124: while(false);
   tracehead = trace.prev;
   return;
@@ -5493,19 +5493,19 @@ void parser___ReduceAction47___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -5517,13 +5517,13 @@ void parser___ReduceAction47___action(val_t  self, val_t  param0) {
   variable[14] =  variable[9] /*nodearraylist2*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction47___action, LOCATE_parser, 2919); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode3*/)( variable[14] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode4*/)( variable[11] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[11] =  variable[14] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode4*/,  variable[14] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  variable[14] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[8] /*nodearraylist3*/;
@@ -5537,17 +5537,17 @@ void parser___ReduceAction47___action(val_t  self, val_t  param0) {
   variable[18] =  variable[5] /*nodearraylist6*/;
   variable[19] = TAG_Bool(( variable[18] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[18] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction47___action, LOCATE_parser, 2933); nit_exit(1);}
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[17] /*ppropdefnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*ppropdefnode7*/,COLOR_kernel___Object_____eqeq))( variable[17] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*ppropdefnode7*/ ==  NIT_NULL /*null*/) || (( variable[17] /*ppropdefnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*ppropdefnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*ppropdefnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*ppropdefnode7*/)( variable[17] /*ppropdefnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[16] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*listnode9*/,  variable[17] /*ppropdefnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[16] /*listnode9*/)( variable[16] /*listnode9*/,  variable[17] /*ppropdefnode7*/) /*AbstractArray::add*/;
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[18] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[18] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[18] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*listnode8*/)( variable[18] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    variable[19] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[19] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode9*/)( variable[16] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[19])) { /*if*/
       variable[16] =  variable[18] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode9*/,  variable[18] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode9*/)( variable[16] /*listnode9*/,  variable[18] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[20] = NEW_ATopClassdef_parser_prod___ATopClassdef___init_atopclassdef( variable[16] /*listnode9*/); /*new ATopClassdef*/
@@ -5555,28 +5555,28 @@ void parser___ReduceAction47___action(val_t  self, val_t  param0) {
   variable[20] =  variable[4] /*nodearraylist7*/;
   variable[21] = TAG_Bool(( variable[20] /*pclassdefnode10*/==NIT_NULL) || VAL_ISA( variable[20] /*pclassdefnode10*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction47___action, LOCATE_parser, 2948); nit_exit(1);}
-  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[21])) { /*if*/
-    variable[21] = ((array___AbstractArray___is_empty_t)CALL( variable[12] /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable[12] /*listnode11*/) /*AbstractArray::is_empty*/;
+    variable[21] = CALL_abstract_collection___Collection___is_empty( variable[12] /*listnode11*/)( variable[12] /*listnode11*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[21])) { /*if*/
       variable[12] =  variable[15] /*listnode5*/ /*listnode11=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[12] /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable[12] /*listnode11*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[12] /*listnode11*/)( variable[12] /*listnode11*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
-  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[19] /*pclassdefnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[19] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[19] /*pclassdefnode6*/,COLOR_kernel___Object_____eqeq))( variable[19] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*pclassdefnode6*/ ==  NIT_NULL /*null*/) || (( variable[19] /*pclassdefnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[19] /*pclassdefnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*pclassdefnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[19] /*pclassdefnode6*/)( variable[19] /*pclassdefnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[21])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode11*/,  variable[19] /*pclassdefnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode11*/)( variable[12] /*listnode11*/,  variable[19] /*pclassdefnode6*/) /*AbstractArray::add*/;
   }
-  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[20] /*pclassdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[20] /*pclassdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[20] /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[20] /*pclassdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[20] /*pclassdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[20] /*pclassdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[20] /*pclassdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[20] /*pclassdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[20] /*pclassdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[20] /*pclassdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[20] /*pclassdefnode10*/)( variable[20] /*pclassdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[21])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode11*/,  variable[20] /*pclassdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode11*/)( variable[12] /*listnode11*/,  variable[20] /*pclassdefnode10*/) /*AbstractArray::add*/;
   }
   variable[22] = NEW_AModule_parser_prod___AModule___init_amodule( variable[13] /*ppackagedeclnode2*/,  variable[11] /*listnode4*/,  variable[12] /*listnode11*/); /*new AModule*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*pmodulenode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(0)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label126: while(false);
   tracehead = trace.prev;
   return;
@@ -5603,15 +5603,15 @@ void parser___ReduceAction48___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -5625,8 +5625,8 @@ void parser___ReduceAction48___action(val_t  self, val_t  param0) {
   variable[13] = NEW_APackagedecl_parser_prod___APackagedecl___init_apackagedecl( variable[9] /*pdocnode2*/,  variable[10] /*tkwpackagenode3*/,  variable[11] /*tidnode4*/); /*new APackagedecl*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*ppackagedeclnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(1)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(1)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label128: while(false);
   tracehead = trace.prev;
   return;
@@ -5653,17 +5653,17 @@ void parser___ReduceAction49___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[8] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*pvisibilitynode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pvisibilitynode2*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
@@ -5677,8 +5677,8 @@ void parser___ReduceAction49___action(val_t  self, val_t  param0) {
   variable[14] = NEW_AImport_parser_prod___AImport___init_aimport( variable[10] /*pvisibilitynode2*/,  variable[11] /*tkwimportnode3*/,  variable[12] /*tidnode4*/); /*new AImport*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pimportnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(2)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(2)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label130: while(false);
   tracehead = trace.prev;
   return;
@@ -5705,17 +5705,17 @@ void parser___ReduceAction50___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[8] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*pvisibilitynode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pvisibilitynode2*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
@@ -5729,8 +5729,8 @@ void parser___ReduceAction50___action(val_t  self, val_t  param0) {
   variable[14] = NEW_ANoImport_parser_prod___ANoImport___init_anoimport( variable[10] /*pvisibilitynode2*/,  variable[11] /*tkwimportnode3*/,  variable[12] /*tkwendnode4*/); /*new ANoImport*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pimportnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(2)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(2)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label132: while(false);
   tracehead = trace.prev;
   return;
@@ -5757,22 +5757,22 @@ void parser___ReduceAction51___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction51___action, LOCATE_parser, 3060); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))( variable[6] /*ppropdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode2*/)( variable[6] /*ppropdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode3*/,  variable[6] /*ppropdefnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode3*/)( variable[5] /*listnode3*/,  variable[6] /*ppropdefnode2*/) /*AbstractArray::add*/;
   }
   variable[8] = NEW_AMainClassdef_parser_prod___AMainClassdef___init_amainclassdef( variable[5] /*listnode3*/); /*new AMainClassdef*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pclassdefnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(3)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(3)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label134: while(false);
   tracehead = trace.prev;
   return;
@@ -5799,11 +5799,11 @@ void parser___ReduceAction52___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[3] =  NIT_NULL /*null*/ /*node_list=*/;
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(3)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(3)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label136: while(false);
   tracehead = trace.prev;
   return;
@@ -5830,28 +5830,28 @@ void parser___ReduceAction53___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
   variable[8] =  variable[5] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction53___action, LOCATE_parser, 3093); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pexprnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pexprnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pexprnode4*/)( variable[8] /*pexprnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*listnode5*/,  variable[8] /*pexprnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[8] /*pexprnode4*/) /*AbstractArray::add*/;
   }
   variable[10] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[7] /*listnode5*/); /*new ABlockExpr*/
   variable[9] = variable[10];
   variable[11] = NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef( NIT_NULL /*null*/,  variable[9] /*pexprnode3*/); /*new AMainMethPropdef*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*ppropdefnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(4)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(4)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label138: while(false);
   tracehead = trace.prev;
   return;
@@ -5878,13 +5878,13 @@ void parser___ReduceAction54___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -5894,17 +5894,17 @@ void parser___ReduceAction54___action(val_t  self, val_t  param0) {
   variable[10] =  variable[5] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction54___action, LOCATE_parser, 3122); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pexprnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pexprnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pexprnode4*/)( variable[9] /*pexprnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode6*/,  variable[9] /*pexprnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[9] /*pexprnode4*/) /*AbstractArray::add*/;
   }
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[10] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[10] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[8] /*listnode6*/); /*new ABlockExpr*/
@@ -5912,8 +5912,8 @@ void parser___ReduceAction54___action(val_t  self, val_t  param0) {
   variable[13] = NEW_AMainMethPropdef_parser_prod___AMainMethPropdef___init_amainmethpropdef( NIT_NULL /*null*/,  variable[11] /*pexprnode3*/); /*new AMainMethPropdef*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*ppropdefnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(4)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(4)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label140: while(false);
   tracehead = trace.prev;
   return;
@@ -5940,19 +5940,19 @@ void parser___ReduceAction55___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -5975,8 +5975,8 @@ void parser___ReduceAction55___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[14] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[15] /*pvisibilitynode4*/,  variable[16] /*pclasskindnode5*/,  variable[17] /*tclassidnode6*/,  variable[11] /*listnode7*/,  variable[12] /*listnode8*/,  variable[13] /*listnode9*/); /*new AClassdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*pclassdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label142: while(false);
   tracehead = trace.prev;
   return;
@@ -6003,21 +6003,21 @@ void parser___ReduceAction56___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[13] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[12] = variable[13];
@@ -6043,8 +6043,8 @@ void parser___ReduceAction56___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[15] /*pdocnode2*/,  variable[16] /*tkwredefnode3*/,  variable[17] /*pvisibilitynode4*/,  variable[18] /*pclasskindnode5*/,  variable[19] /*tclassidnode6*/,  variable[12] /*listnode7*/,  variable[13] /*listnode8*/,  variable[14] /*listnode9*/); /*new AClassdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*pclassdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label144: while(false);
   tracehead = trace.prev;
   return;
@@ -6071,21 +6071,21 @@ void parser___ReduceAction57___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[13] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[12] = variable[13];
@@ -6108,20 +6108,20 @@ void parser___ReduceAction57___action(val_t  self, val_t  param0) {
   variable[19] =  variable[6] /*nodearraylist6*/;
   variable[20] = TAG_Bool(( variable[19] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[19] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction57___action, LOCATE_parser, 3249); nit_exit(1);}
-  variable[20] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[19] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[19] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[19] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[19] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[20] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[19] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[19] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[19] /*listnode7*/)( variable[19] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[20])) { /*if*/
-    variable[20] = ((array___AbstractArray___is_empty_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[12] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[20] = CALL_abstract_collection___Collection___is_empty( variable[12] /*listnode8*/)( variable[12] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[20])) { /*if*/
       variable[12] =  variable[19] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[12] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[12] /*listnode8*/,  variable[19] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[12] /*listnode8*/)( variable[12] /*listnode8*/,  variable[19] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[21] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[15] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[16] /*pvisibilitynode4*/,  variable[17] /*pclasskindnode5*/,  variable[18] /*tclassidnode6*/,  variable[12] /*listnode8*/,  variable[13] /*listnode9*/,  variable[14] /*listnode10*/); /*new AClassdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*pclassdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label146: while(false);
   tracehead = trace.prev;
   return;
@@ -6148,23 +6148,23 @@ void parser___ReduceAction58___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[14] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[13] = variable[14];
@@ -6190,20 +6190,20 @@ void parser___ReduceAction58___action(val_t  self, val_t  param0) {
   variable[21] =  variable[6] /*nodearraylist7*/;
   variable[22] = TAG_Bool(( variable[21] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[21] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction58___action, LOCATE_parser, 3300); nit_exit(1);}
-  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[21] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[21] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[21] /*listnode7*/)( variable[21] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[22])) { /*if*/
-    variable[22] = ((array___AbstractArray___is_empty_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[22] = CALL_abstract_collection___Collection___is_empty( variable[13] /*listnode8*/)( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[22])) { /*if*/
       variable[13] =  variable[21] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[13] /*listnode8*/,  variable[21] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[21] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[23] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[16] /*pdocnode2*/,  variable[17] /*tkwredefnode3*/,  variable[18] /*pvisibilitynode4*/,  variable[19] /*pclasskindnode5*/,  variable[20] /*tclassidnode6*/,  variable[13] /*listnode8*/,  variable[14] /*listnode9*/,  variable[15] /*listnode10*/); /*new AClassdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*pclassdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label148: while(false);
   tracehead = trace.prev;
   return;
@@ -6230,21 +6230,21 @@ void parser___ReduceAction59___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[13] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[12] = variable[13];
@@ -6267,20 +6267,20 @@ void parser___ReduceAction59___action(val_t  self, val_t  param0) {
   variable[19] =  variable[6] /*nodearraylist6*/;
   variable[20] = TAG_Bool(( variable[19] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[19] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[20])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction59___action, LOCATE_parser, 3348); nit_exit(1);}
-  variable[20] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[19] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[19] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[19] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[19] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[20] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[19] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[19] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[19] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[19] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[19] /*listnode8*/)( variable[19] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[20])) { /*if*/
-    variable[20] = ((array___AbstractArray___is_empty_t)CALL( variable[13] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[13] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[20] = CALL_abstract_collection___Collection___is_empty( variable[13] /*listnode9*/)( variable[13] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[20])) { /*if*/
       variable[13] =  variable[19] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[13] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[13] /*listnode9*/,  variable[19] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[13] /*listnode9*/)( variable[13] /*listnode9*/,  variable[19] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[21] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[15] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[16] /*pvisibilitynode4*/,  variable[17] /*pclasskindnode5*/,  variable[18] /*tclassidnode6*/,  variable[12] /*listnode7*/,  variable[13] /*listnode9*/,  variable[14] /*listnode10*/); /*new AClassdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*pclassdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label150: while(false);
   tracehead = trace.prev;
   return;
@@ -6307,23 +6307,23 @@ void parser___ReduceAction60___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[14] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[13] = variable[14];
@@ -6349,20 +6349,20 @@ void parser___ReduceAction60___action(val_t  self, val_t  param0) {
   variable[21] =  variable[6] /*nodearraylist7*/;
   variable[22] = TAG_Bool(( variable[21] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[21] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction60___action, LOCATE_parser, 3399); nit_exit(1);}
-  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[21] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[21] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[21] /*listnode8*/)( variable[21] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[22])) { /*if*/
-    variable[22] = ((array___AbstractArray___is_empty_t)CALL( variable[14] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[14] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[22] = CALL_abstract_collection___Collection___is_empty( variable[14] /*listnode9*/)( variable[14] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[22])) { /*if*/
       variable[14] =  variable[21] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[14] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[14] /*listnode9*/,  variable[21] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[14] /*listnode9*/)( variable[14] /*listnode9*/,  variable[21] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[23] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[16] /*pdocnode2*/,  variable[17] /*tkwredefnode3*/,  variable[18] /*pvisibilitynode4*/,  variable[19] /*pclasskindnode5*/,  variable[20] /*tclassidnode6*/,  variable[13] /*listnode7*/,  variable[14] /*listnode9*/,  variable[15] /*listnode10*/); /*new AClassdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*pclassdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label152: while(false);
   tracehead = trace.prev;
   return;
@@ -6389,23 +6389,23 @@ void parser___ReduceAction61___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[14] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[13] = variable[14];
@@ -6428,32 +6428,32 @@ void parser___ReduceAction61___action(val_t  self, val_t  param0) {
   variable[20] =  variable[7] /*nodearraylist6*/;
   variable[21] = TAG_Bool(( variable[20] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[20] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction61___action, LOCATE_parser, 3448); nit_exit(1);}
-  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[20] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[20] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[20] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[20] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[20] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[20] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[20] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[20] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[20] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[20] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[20] /*listnode7*/)( variable[20] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[21])) { /*if*/
-    variable[21] = ((array___AbstractArray___is_empty_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[21] = CALL_abstract_collection___Collection___is_empty( variable[13] /*listnode8*/)( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[21])) { /*if*/
       variable[13] =  variable[20] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[13] /*listnode8*/,  variable[20] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[20] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[21] =  variable[6] /*nodearraylist7*/;
   variable[22] = TAG_Bool(( variable[21] /*listnode9*/==NIT_NULL) || VAL_ISA( variable[21] /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction61___action, LOCATE_parser, 3457); nit_exit(1);}
-  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable[21] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[21] /*listnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[21] /*listnode9*/)( variable[21] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[22])) { /*if*/
-    variable[22] = ((array___AbstractArray___is_empty_t)CALL( variable[14] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[14] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[22] = CALL_abstract_collection___Collection___is_empty( variable[14] /*listnode10*/)( variable[14] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[22])) { /*if*/
       variable[14] =  variable[21] /*listnode9*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[14] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[14] /*listnode10*/,  variable[21] /*listnode9*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[14] /*listnode10*/)( variable[14] /*listnode10*/,  variable[21] /*listnode9*/) /*IndexedCollection::append*/;
     }
   }
   variable[23] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[16] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[17] /*pvisibilitynode4*/,  variable[18] /*pclasskindnode5*/,  variable[19] /*tclassidnode6*/,  variable[13] /*listnode8*/,  variable[14] /*listnode10*/,  variable[15] /*listnode11*/); /*new AClassdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*pclassdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label154: while(false);
   tracehead = trace.prev;
   return;
@@ -6480,25 +6480,25 @@ void parser___ReduceAction62___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[15] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[14] = variable[15];
@@ -6524,32 +6524,32 @@ void parser___ReduceAction62___action(val_t  self, val_t  param0) {
   variable[22] =  variable[7] /*nodearraylist7*/;
   variable[23] = TAG_Bool(( variable[22] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[22] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction62___action, LOCATE_parser, 3509); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[22] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*listnode7*/)( variable[22] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    variable[23] = ((array___AbstractArray___is_empty_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[23] = CALL_abstract_collection___Collection___is_empty( variable[14] /*listnode8*/)( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[23])) { /*if*/
       variable[14] =  variable[22] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[14] /*listnode8*/,  variable[22] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[22] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[23] =  variable[6] /*nodearraylist8*/;
   variable[24] = TAG_Bool(( variable[23] /*listnode9*/==NIT_NULL) || VAL_ISA( variable[23] /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[24])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction62___action, LOCATE_parser, 3518); nit_exit(1);}
-  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable[23] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*listnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*listnode9*/)( variable[23] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[24])) { /*if*/
-    variable[24] = ((array___AbstractArray___is_empty_t)CALL( variable[15] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[15] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[24] = CALL_abstract_collection___Collection___is_empty( variable[15] /*listnode10*/)( variable[15] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[24])) { /*if*/
       variable[15] =  variable[23] /*listnode9*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[15] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[15] /*listnode10*/,  variable[23] /*listnode9*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[15] /*listnode10*/)( variable[15] /*listnode10*/,  variable[23] /*listnode9*/) /*IndexedCollection::append*/;
     }
   }
   variable[25] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[17] /*pdocnode2*/,  variable[18] /*tkwredefnode3*/,  variable[19] /*pvisibilitynode4*/,  variable[20] /*pclasskindnode5*/,  variable[21] /*tclassidnode6*/,  variable[14] /*listnode8*/,  variable[15] /*listnode10*/,  variable[16] /*listnode11*/); /*new AClassdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*pclassdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label156: while(false);
   tracehead = trace.prev;
   return;
@@ -6576,23 +6576,23 @@ void parser___ReduceAction63___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[14] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[13] = variable[14];
@@ -6615,15 +6615,15 @@ void parser___ReduceAction63___action(val_t  self, val_t  param0) {
   variable[20] =  variable[7] /*nodearraylist6*/;
   variable[21] = TAG_Bool(( variable[20] /*ppropdefnode9*/==NIT_NULL) || VAL_ISA( variable[20] /*ppropdefnode9*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[21])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction63___action, LOCATE_parser, 3567); nit_exit(1);}
-  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[20] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[20] /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[20] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[20] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[20] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[20] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[21] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[20] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[20] /*ppropdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[20] /*ppropdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[20] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[20] /*ppropdefnode9*/)( variable[20] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[21])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[15] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[15] /*listnode10*/,  variable[20] /*ppropdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[15] /*listnode10*/)( variable[15] /*listnode10*/,  variable[20] /*ppropdefnode9*/) /*AbstractArray::add*/;
   }
   variable[22] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[16] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[17] /*pvisibilitynode4*/,  variable[18] /*pclasskindnode5*/,  variable[19] /*tclassidnode6*/,  variable[13] /*listnode7*/,  variable[14] /*listnode8*/,  variable[15] /*listnode10*/); /*new AClassdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*pclassdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label158: while(false);
   tracehead = trace.prev;
   return;
@@ -6650,25 +6650,25 @@ void parser___ReduceAction64___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[15] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[14] = variable[15];
@@ -6694,24 +6694,24 @@ void parser___ReduceAction64___action(val_t  self, val_t  param0) {
   variable[22] =  variable[6] /*nodearraylist8*/;
   variable[23] = TAG_Bool(( variable[22] /*listnode10*/==NIT_NULL) || VAL_ISA( variable[22] /*listnode10*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction64___action, LOCATE_parser, 3615); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[21] /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[21] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[21] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[21] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[21] /*ppropdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[21] /*ppropdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[21] /*ppropdefnode9*/)( variable[21] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[16] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*listnode11*/,  variable[21] /*ppropdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[16] /*listnode11*/)( variable[16] /*listnode11*/,  variable[21] /*ppropdefnode9*/) /*AbstractArray::add*/;
   }
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode10*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode10*/,COLOR_kernel___Object_____eqeq))( variable[22] /*listnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode10*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*listnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*listnode10*/)( variable[22] /*listnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    variable[23] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode11*/) /*AbstractArray::is_empty*/;
+    variable[23] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode11*/)( variable[16] /*listnode11*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[23])) { /*if*/
       variable[16] =  variable[22] /*listnode10*/ /*listnode11=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode11*/,  variable[22] /*listnode10*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode11*/)( variable[16] /*listnode11*/,  variable[22] /*listnode10*/) /*IndexedCollection::append*/;
     }
   }
   variable[24] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[17] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode4*/,  variable[19] /*pclasskindnode5*/,  variable[20] /*tclassidnode6*/,  variable[14] /*listnode7*/,  variable[15] /*listnode8*/,  variable[16] /*listnode11*/); /*new AClassdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*pclassdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label160: while(false);
   tracehead = trace.prev;
   return;
@@ -6738,25 +6738,25 @@ void parser___ReduceAction65___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[15] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[14] = variable[15];
@@ -6782,15 +6782,15 @@ void parser___ReduceAction65___action(val_t  self, val_t  param0) {
   variable[22] =  variable[7] /*nodearraylist7*/;
   variable[23] = TAG_Bool(( variable[22] /*ppropdefnode9*/==NIT_NULL) || VAL_ISA( variable[22] /*ppropdefnode9*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction65___action, LOCATE_parser, 3670); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[22] /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[22] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[22] /*ppropdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*ppropdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*ppropdefnode9*/)( variable[22] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[16] /*listnode10*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*listnode10*/,  variable[22] /*ppropdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[16] /*listnode10*/)( variable[16] /*listnode10*/,  variable[22] /*ppropdefnode9*/) /*AbstractArray::add*/;
   }
   variable[24] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[17] /*pdocnode2*/,  variable[18] /*tkwredefnode3*/,  variable[19] /*pvisibilitynode4*/,  variable[20] /*pclasskindnode5*/,  variable[21] /*tclassidnode6*/,  variable[14] /*listnode7*/,  variable[15] /*listnode8*/,  variable[16] /*listnode10*/); /*new AClassdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*pclassdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label162: while(false);
   tracehead = trace.prev;
   return;
@@ -6817,27 +6817,27 @@ void parser___ReduceAction66___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[16] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[15] = variable[16];
@@ -6866,24 +6866,24 @@ void parser___ReduceAction66___action(val_t  self, val_t  param0) {
   variable[24] =  variable[6] /*nodearraylist9*/;
   variable[25] = TAG_Bool(( variable[24] /*listnode10*/==NIT_NULL) || VAL_ISA( variable[24] /*listnode10*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction66___action, LOCATE_parser, 3721); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[23] /*ppropdefnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*ppropdefnode9*/,COLOR_kernel___Object_____eqeq))( variable[23] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*ppropdefnode9*/ ==  NIT_NULL /*null*/) || (( variable[23] /*ppropdefnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*ppropdefnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*ppropdefnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*ppropdefnode9*/)( variable[23] /*ppropdefnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[17] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[17] /*listnode11*/,  variable[23] /*ppropdefnode9*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[17] /*listnode11*/)( variable[17] /*listnode11*/,  variable[23] /*ppropdefnode9*/) /*AbstractArray::add*/;
   }
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode10*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode10*/,COLOR_kernel___Object_____eqeq))( variable[24] /*listnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode10*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*listnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*listnode10*/)( variable[24] /*listnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    variable[25] = ((array___AbstractArray___is_empty_t)CALL( variable[17] /*listnode11*/,COLOR_abstract_collection___Collection___is_empty))( variable[17] /*listnode11*/) /*AbstractArray::is_empty*/;
+    variable[25] = CALL_abstract_collection___Collection___is_empty( variable[17] /*listnode11*/)( variable[17] /*listnode11*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[25])) { /*if*/
       variable[17] =  variable[24] /*listnode10*/ /*listnode11=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[17] /*listnode11*/,COLOR_abstract_collection___IndexedCollection___append))( variable[17] /*listnode11*/,  variable[24] /*listnode10*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[17] /*listnode11*/)( variable[17] /*listnode11*/,  variable[24] /*listnode10*/) /*IndexedCollection::append*/;
     }
   }
   variable[26] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[18] /*pdocnode2*/,  variable[19] /*tkwredefnode3*/,  variable[20] /*pvisibilitynode4*/,  variable[21] /*pclasskindnode5*/,  variable[22] /*tclassidnode6*/,  variable[15] /*listnode7*/,  variable[16] /*listnode8*/,  variable[17] /*listnode11*/); /*new AClassdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*pclassdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label164: while(false);
   tracehead = trace.prev;
   return;
@@ -6910,25 +6910,25 @@ void parser___ReduceAction67___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[15] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[14] = variable[15];
@@ -6951,27 +6951,27 @@ void parser___ReduceAction67___action(val_t  self, val_t  param0) {
   variable[21] =  variable[8] /*nodearraylist6*/;
   variable[22] = TAG_Bool(( variable[21] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[21] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction67___action, LOCATE_parser, 3774); nit_exit(1);}
-  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[21] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[21] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[21] /*listnode7*/)( variable[21] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[22])) { /*if*/
-    variable[22] = ((array___AbstractArray___is_empty_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[22] = CALL_abstract_collection___Collection___is_empty( variable[14] /*listnode8*/)( variable[14] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[22])) { /*if*/
       variable[14] =  variable[21] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[14] /*listnode8*/,  variable[21] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[21] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[22] =  variable[7] /*nodearraylist7*/;
   variable[23] = TAG_Bool(( variable[22] /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable[22] /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction67___action, LOCATE_parser, 3783); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[22] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[22] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[22] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*ppropdefnode10*/)( variable[22] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[16] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*listnode11*/,  variable[22] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[16] /*listnode11*/)( variable[16] /*listnode11*/,  variable[22] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
   variable[24] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[17] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode4*/,  variable[19] /*pclasskindnode5*/,  variable[20] /*tclassidnode6*/,  variable[14] /*listnode8*/,  variable[15] /*listnode9*/,  variable[16] /*listnode11*/); /*new AClassdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*pclassdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label166: while(false);
   tracehead = trace.prev;
   return;
@@ -6998,27 +6998,27 @@ void parser___ReduceAction68___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[16] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[15] = variable[16];
@@ -7041,13 +7041,13 @@ void parser___ReduceAction68___action(val_t  self, val_t  param0) {
   variable[22] =  variable[9] /*nodearraylist6*/;
   variable[23] = TAG_Bool(( variable[22] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[22] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction68___action, LOCATE_parser, 3830); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[22] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*listnode7*/)( variable[22] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    variable[23] = ((array___AbstractArray___is_empty_t)CALL( variable[15] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[15] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[23] = CALL_abstract_collection___Collection___is_empty( variable[15] /*listnode8*/)( variable[15] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[23])) { /*if*/
       variable[15] =  variable[22] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[15] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[15] /*listnode8*/,  variable[22] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[15] /*listnode8*/)( variable[15] /*listnode8*/,  variable[22] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[23] =  variable[8] /*nodearraylist7*/;
@@ -7056,24 +7056,24 @@ void parser___ReduceAction68___action(val_t  self, val_t  param0) {
   variable[24] =  variable[6] /*nodearraylist9*/;
   variable[25] = TAG_Bool(( variable[24] /*listnode11*/==NIT_NULL) || VAL_ISA( variable[24] /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction68___action, LOCATE_parser, 3841); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[23] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[23] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[23] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*ppropdefnode10*/)( variable[23] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[17] /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable[17] /*listnode12*/,  variable[23] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[17] /*listnode12*/)( variable[17] /*listnode12*/,  variable[23] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable[24] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*listnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*listnode11*/)( variable[24] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    variable[25] = ((array___AbstractArray___is_empty_t)CALL( variable[17] /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable[17] /*listnode12*/) /*AbstractArray::is_empty*/;
+    variable[25] = CALL_abstract_collection___Collection___is_empty( variable[17] /*listnode12*/)( variable[17] /*listnode12*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[25])) { /*if*/
       variable[17] =  variable[24] /*listnode11*/ /*listnode12=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[17] /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable[17] /*listnode12*/,  variable[24] /*listnode11*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[17] /*listnode12*/)( variable[17] /*listnode12*/,  variable[24] /*listnode11*/) /*IndexedCollection::append*/;
     }
   }
   variable[26] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[18] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[19] /*pvisibilitynode4*/,  variable[20] /*pclasskindnode5*/,  variable[21] /*tclassidnode6*/,  variable[15] /*listnode8*/,  variable[16] /*listnode9*/,  variable[17] /*listnode12*/); /*new AClassdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*pclassdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label168: while(false);
   tracehead = trace.prev;
   return;
@@ -7100,27 +7100,27 @@ void parser___ReduceAction69___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[16] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[15] = variable[16];
@@ -7146,27 +7146,27 @@ void parser___ReduceAction69___action(val_t  self, val_t  param0) {
   variable[23] =  variable[8] /*nodearraylist7*/;
   variable[24] = TAG_Bool(( variable[23] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[23] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[24])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction69___action, LOCATE_parser, 3897); nit_exit(1);}
-  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[23] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*listnode7*/)( variable[23] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[24])) { /*if*/
-    variable[24] = ((array___AbstractArray___is_empty_t)CALL( variable[15] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[15] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[24] = CALL_abstract_collection___Collection___is_empty( variable[15] /*listnode8*/)( variable[15] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[24])) { /*if*/
       variable[15] =  variable[23] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[15] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[15] /*listnode8*/,  variable[23] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[15] /*listnode8*/)( variable[15] /*listnode8*/,  variable[23] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[24] =  variable[7] /*nodearraylist8*/;
   variable[25] = TAG_Bool(( variable[24] /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable[24] /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction69___action, LOCATE_parser, 3906); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[24] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[24] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[24] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*ppropdefnode10*/)( variable[24] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[17] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[17] /*listnode11*/,  variable[24] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[17] /*listnode11*/)( variable[17] /*listnode11*/,  variable[24] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
   variable[26] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[18] /*pdocnode2*/,  variable[19] /*tkwredefnode3*/,  variable[20] /*pvisibilitynode4*/,  variable[21] /*pclasskindnode5*/,  variable[22] /*tclassidnode6*/,  variable[15] /*listnode8*/,  variable[16] /*listnode9*/,  variable[17] /*listnode11*/); /*new AClassdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*pclassdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label170: while(false);
   tracehead = trace.prev;
   return;
@@ -7193,29 +7193,29 @@ void parser___ReduceAction70___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[17] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[16] = variable[17];
@@ -7241,13 +7241,13 @@ void parser___ReduceAction70___action(val_t  self, val_t  param0) {
   variable[24] =  variable[9] /*nodearraylist7*/;
   variable[25] = TAG_Bool(( variable[24] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[24] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction70___action, LOCATE_parser, 3956); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[24] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*listnode7*/)( variable[24] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    variable[25] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[25] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode8*/)( variable[16] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[25])) { /*if*/
       variable[16] =  variable[24] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode8*/,  variable[24] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode8*/)( variable[16] /*listnode8*/,  variable[24] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[25] =  variable[8] /*nodearraylist8*/;
@@ -7256,24 +7256,24 @@ void parser___ReduceAction70___action(val_t  self, val_t  param0) {
   variable[26] =  variable[6] /*nodearraylist10*/;
   variable[27] = TAG_Bool(( variable[26] /*listnode11*/==NIT_NULL) || VAL_ISA( variable[26] /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[27])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction70___action, LOCATE_parser, 3967); nit_exit(1);}
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[25] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[25] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[25] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[25] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[25] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[25] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[25] /*ppropdefnode10*/)( variable[25] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[18] /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable[18] /*listnode12*/,  variable[25] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[18] /*listnode12*/)( variable[18] /*listnode12*/,  variable[25] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable[26] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[26] /*listnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[26] /*listnode11*/)( variable[26] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    variable[27] = ((array___AbstractArray___is_empty_t)CALL( variable[18] /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable[18] /*listnode12*/) /*AbstractArray::is_empty*/;
+    variable[27] = CALL_abstract_collection___Collection___is_empty( variable[18] /*listnode12*/)( variable[18] /*listnode12*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[27])) { /*if*/
       variable[18] =  variable[26] /*listnode11*/ /*listnode12=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[18] /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable[18] /*listnode12*/,  variable[26] /*listnode11*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[18] /*listnode12*/)( variable[18] /*listnode12*/,  variable[26] /*listnode11*/) /*IndexedCollection::append*/;
     }
   }
   variable[28] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[19] /*pdocnode2*/,  variable[20] /*tkwredefnode3*/,  variable[21] /*pvisibilitynode4*/,  variable[22] /*pclasskindnode5*/,  variable[23] /*tclassidnode6*/,  variable[16] /*listnode8*/,  variable[17] /*listnode9*/,  variable[18] /*listnode12*/); /*new AClassdef*/
   variable[27] = variable[28];
   variable[3] =  variable[27] /*pclassdefnode1*/ /*node_list=*/;
-  variable[28] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[28] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label172: while(false);
   tracehead = trace.prev;
   return;
@@ -7300,25 +7300,25 @@ void parser___ReduceAction71___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[15] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[14] = variable[15];
@@ -7341,27 +7341,27 @@ void parser___ReduceAction71___action(val_t  self, val_t  param0) {
   variable[21] =  variable[8] /*nodearraylist6*/;
   variable[22] = TAG_Bool(( variable[21] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[21] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[22])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction71___action, LOCATE_parser, 4020); nit_exit(1);}
-  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[21] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[21] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[22] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[21] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[21] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[21] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[21] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[21] /*listnode8*/)( variable[21] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[22])) { /*if*/
-    variable[22] = ((array___AbstractArray___is_empty_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[15] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[22] = CALL_abstract_collection___Collection___is_empty( variable[15] /*listnode9*/)( variable[15] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[22])) { /*if*/
       variable[15] =  variable[21] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[15] /*listnode9*/,  variable[21] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[15] /*listnode9*/)( variable[15] /*listnode9*/,  variable[21] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[22] =  variable[7] /*nodearraylist7*/;
   variable[23] = TAG_Bool(( variable[22] /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable[22] /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction71___action, LOCATE_parser, 4029); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[22] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[22] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[22] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*ppropdefnode10*/)( variable[22] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[16] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*listnode11*/,  variable[22] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[16] /*listnode11*/)( variable[16] /*listnode11*/,  variable[22] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
   variable[24] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[17] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode4*/,  variable[19] /*pclasskindnode5*/,  variable[20] /*tclassidnode6*/,  variable[14] /*listnode7*/,  variable[15] /*listnode9*/,  variable[16] /*listnode11*/); /*new AClassdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*pclassdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label174: while(false);
   tracehead = trace.prev;
   return;
@@ -7388,27 +7388,27 @@ void parser___ReduceAction72___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[16] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[15] = variable[16];
@@ -7431,13 +7431,13 @@ void parser___ReduceAction72___action(val_t  self, val_t  param0) {
   variable[22] =  variable[9] /*nodearraylist6*/;
   variable[23] = TAG_Bool(( variable[22] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[22] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction72___action, LOCATE_parser, 4076); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[22] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*listnode8*/)( variable[22] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    variable[23] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[23] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode9*/)( variable[16] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[23])) { /*if*/
       variable[16] =  variable[22] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode9*/,  variable[22] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode9*/)( variable[16] /*listnode9*/,  variable[22] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[23] =  variable[8] /*nodearraylist7*/;
@@ -7446,24 +7446,24 @@ void parser___ReduceAction72___action(val_t  self, val_t  param0) {
   variable[24] =  variable[6] /*nodearraylist9*/;
   variable[25] = TAG_Bool(( variable[24] /*listnode11*/==NIT_NULL) || VAL_ISA( variable[24] /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction72___action, LOCATE_parser, 4087); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[23] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[23] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[23] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*ppropdefnode10*/)( variable[23] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[17] /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable[17] /*listnode12*/,  variable[23] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[17] /*listnode12*/)( variable[17] /*listnode12*/,  variable[23] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable[24] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*listnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*listnode11*/)( variable[24] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    variable[25] = ((array___AbstractArray___is_empty_t)CALL( variable[17] /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable[17] /*listnode12*/) /*AbstractArray::is_empty*/;
+    variable[25] = CALL_abstract_collection___Collection___is_empty( variable[17] /*listnode12*/)( variable[17] /*listnode12*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[25])) { /*if*/
       variable[17] =  variable[24] /*listnode11*/ /*listnode12=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[17] /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable[17] /*listnode12*/,  variable[24] /*listnode11*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[17] /*listnode12*/)( variable[17] /*listnode12*/,  variable[24] /*listnode11*/) /*IndexedCollection::append*/;
     }
   }
   variable[26] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[18] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[19] /*pvisibilitynode4*/,  variable[20] /*pclasskindnode5*/,  variable[21] /*tclassidnode6*/,  variable[15] /*listnode7*/,  variable[16] /*listnode9*/,  variable[17] /*listnode12*/); /*new AClassdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*pclassdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label176: while(false);
   tracehead = trace.prev;
   return;
@@ -7490,27 +7490,27 @@ void parser___ReduceAction73___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[16] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[15] = variable[16];
@@ -7536,27 +7536,27 @@ void parser___ReduceAction73___action(val_t  self, val_t  param0) {
   variable[23] =  variable[8] /*nodearraylist7*/;
   variable[24] = TAG_Bool(( variable[23] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[23] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[24])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction73___action, LOCATE_parser, 4143); nit_exit(1);}
-  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[23] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*listnode8*/)( variable[23] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[24])) { /*if*/
-    variable[24] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[24] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode9*/)( variable[16] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[24])) { /*if*/
       variable[16] =  variable[23] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode9*/,  variable[23] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode9*/)( variable[16] /*listnode9*/,  variable[23] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[24] =  variable[7] /*nodearraylist8*/;
   variable[25] = TAG_Bool(( variable[24] /*ppropdefnode10*/==NIT_NULL) || VAL_ISA( variable[24] /*ppropdefnode10*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction73___action, LOCATE_parser, 4152); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[24] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[24] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[24] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*ppropdefnode10*/)( variable[24] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[17] /*listnode11*/,COLOR_abstract_collection___SimpleCollection___add))( variable[17] /*listnode11*/,  variable[24] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[17] /*listnode11*/)( variable[17] /*listnode11*/,  variable[24] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
   variable[26] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[18] /*pdocnode2*/,  variable[19] /*tkwredefnode3*/,  variable[20] /*pvisibilitynode4*/,  variable[21] /*pclasskindnode5*/,  variable[22] /*tclassidnode6*/,  variable[15] /*listnode7*/,  variable[16] /*listnode9*/,  variable[17] /*listnode11*/); /*new AClassdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*pclassdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label178: while(false);
   tracehead = trace.prev;
   return;
@@ -7583,29 +7583,29 @@ void parser___ReduceAction74___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[17] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[16] = variable[17];
@@ -7631,13 +7631,13 @@ void parser___ReduceAction74___action(val_t  self, val_t  param0) {
   variable[24] =  variable[9] /*nodearraylist7*/;
   variable[25] = TAG_Bool(( variable[24] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[24] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction74___action, LOCATE_parser, 4202); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[24] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*listnode8*/)( variable[24] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    variable[25] = ((array___AbstractArray___is_empty_t)CALL( variable[17] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[17] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[25] = CALL_abstract_collection___Collection___is_empty( variable[17] /*listnode9*/)( variable[17] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[25])) { /*if*/
       variable[17] =  variable[24] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[17] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[17] /*listnode9*/,  variable[24] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[17] /*listnode9*/)( variable[17] /*listnode9*/,  variable[24] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[25] =  variable[8] /*nodearraylist8*/;
@@ -7646,24 +7646,24 @@ void parser___ReduceAction74___action(val_t  self, val_t  param0) {
   variable[26] =  variable[6] /*nodearraylist10*/;
   variable[27] = TAG_Bool(( variable[26] /*listnode11*/==NIT_NULL) || VAL_ISA( variable[26] /*listnode11*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[27])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction74___action, LOCATE_parser, 4213); nit_exit(1);}
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[25] /*ppropdefnode10*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[25] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[25] /*ppropdefnode10*/,COLOR_kernel___Object_____eqeq))( variable[25] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*ppropdefnode10*/ ==  NIT_NULL /*null*/) || (( variable[25] /*ppropdefnode10*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[25] /*ppropdefnode10*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*ppropdefnode10*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[25] /*ppropdefnode10*/)( variable[25] /*ppropdefnode10*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[18] /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable[18] /*listnode12*/,  variable[25] /*ppropdefnode10*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[18] /*listnode12*/)( variable[18] /*listnode12*/,  variable[25] /*ppropdefnode10*/) /*AbstractArray::add*/;
   }
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode11*/,COLOR_kernel___Object_____eqeq))( variable[26] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode11*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[26] /*listnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[26] /*listnode11*/)( variable[26] /*listnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    variable[27] = ((array___AbstractArray___is_empty_t)CALL( variable[18] /*listnode12*/,COLOR_abstract_collection___Collection___is_empty))( variable[18] /*listnode12*/) /*AbstractArray::is_empty*/;
+    variable[27] = CALL_abstract_collection___Collection___is_empty( variable[18] /*listnode12*/)( variable[18] /*listnode12*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[27])) { /*if*/
       variable[18] =  variable[26] /*listnode11*/ /*listnode12=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[18] /*listnode12*/,COLOR_abstract_collection___IndexedCollection___append))( variable[18] /*listnode12*/,  variable[26] /*listnode11*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[18] /*listnode12*/)( variable[18] /*listnode12*/,  variable[26] /*listnode11*/) /*IndexedCollection::append*/;
     }
   }
   variable[28] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[19] /*pdocnode2*/,  variable[20] /*tkwredefnode3*/,  variable[21] /*pvisibilitynode4*/,  variable[22] /*pclasskindnode5*/,  variable[23] /*tclassidnode6*/,  variable[16] /*listnode7*/,  variable[17] /*listnode9*/,  variable[18] /*listnode12*/); /*new AClassdef*/
   variable[27] = variable[28];
   variable[3] =  variable[27] /*pclassdefnode1*/ /*node_list=*/;
-  variable[28] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[28] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label180: while(false);
   tracehead = trace.prev;
   return;
@@ -7690,27 +7690,27 @@ void parser___ReduceAction75___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[16] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[15] = variable[16];
@@ -7733,39 +7733,39 @@ void parser___ReduceAction75___action(val_t  self, val_t  param0) {
   variable[22] =  variable[9] /*nodearraylist6*/;
   variable[23] = TAG_Bool(( variable[22] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[22] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[23])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction75___action, LOCATE_parser, 4267); nit_exit(1);}
-  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[22] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[22] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[23] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[22] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[22] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[22] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[22] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[22] /*listnode7*/)( variable[22] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[23])) { /*if*/
-    variable[23] = ((array___AbstractArray___is_empty_t)CALL( variable[15] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[15] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[23] = CALL_abstract_collection___Collection___is_empty( variable[15] /*listnode8*/)( variable[15] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[23])) { /*if*/
       variable[15] =  variable[22] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[15] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[15] /*listnode8*/,  variable[22] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[15] /*listnode8*/)( variable[15] /*listnode8*/,  variable[22] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[23] =  variable[8] /*nodearraylist7*/;
   variable[24] = TAG_Bool(( variable[23] /*listnode9*/==NIT_NULL) || VAL_ISA( variable[23] /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[24])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction75___action, LOCATE_parser, 4276); nit_exit(1);}
-  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable[23] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*listnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*listnode9*/)( variable[23] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[24])) { /*if*/
-    variable[24] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[24] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode10*/)( variable[16] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[24])) { /*if*/
       variable[16] =  variable[23] /*listnode9*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode10*/,  variable[23] /*listnode9*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode10*/)( variable[16] /*listnode10*/,  variable[23] /*listnode9*/) /*IndexedCollection::append*/;
     }
   }
   variable[24] =  variable[7] /*nodearraylist8*/;
   variable[25] = TAG_Bool(( variable[24] /*ppropdefnode11*/==NIT_NULL) || VAL_ISA( variable[24] /*ppropdefnode11*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction75___action, LOCATE_parser, 4285); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[24] /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable[24] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[24] /*ppropdefnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*ppropdefnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*ppropdefnode11*/)( variable[24] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[17] /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable[17] /*listnode12*/,  variable[24] /*ppropdefnode11*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[17] /*listnode12*/)( variable[17] /*listnode12*/,  variable[24] /*ppropdefnode11*/) /*AbstractArray::add*/;
   }
   variable[26] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[18] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[19] /*pvisibilitynode4*/,  variable[20] /*pclasskindnode5*/,  variable[21] /*tclassidnode6*/,  variable[15] /*listnode8*/,  variable[16] /*listnode10*/,  variable[17] /*listnode12*/); /*new AClassdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*pclassdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label182: while(false);
   tracehead = trace.prev;
   return;
@@ -7792,29 +7792,29 @@ void parser___ReduceAction76___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[17] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[16] = variable[17];
@@ -7837,25 +7837,25 @@ void parser___ReduceAction76___action(val_t  self, val_t  param0) {
   variable[23] =  variable[10] /*nodearraylist6*/;
   variable[24] = TAG_Bool(( variable[23] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[23] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[24])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction76___action, LOCATE_parser, 4333); nit_exit(1);}
-  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[23] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[23] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[24] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[23] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[23] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[23] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[23] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[23] /*listnode7*/)( variable[23] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[24])) { /*if*/
-    variable[24] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[24] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode8*/)( variable[16] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[24])) { /*if*/
       variable[16] =  variable[23] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode8*/,  variable[23] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode8*/)( variable[16] /*listnode8*/,  variable[23] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[24] =  variable[9] /*nodearraylist7*/;
   variable[25] = TAG_Bool(( variable[24] /*listnode9*/==NIT_NULL) || VAL_ISA( variable[24] /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction76___action, LOCATE_parser, 4342); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable[24] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*listnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*listnode9*/)( variable[24] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    variable[25] = ((array___AbstractArray___is_empty_t)CALL( variable[17] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[17] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[25] = CALL_abstract_collection___Collection___is_empty( variable[17] /*listnode10*/)( variable[17] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[25])) { /*if*/
       variable[17] =  variable[24] /*listnode9*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[17] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[17] /*listnode10*/,  variable[24] /*listnode9*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[17] /*listnode10*/)( variable[17] /*listnode10*/,  variable[24] /*listnode9*/) /*IndexedCollection::append*/;
     }
   }
   variable[25] =  variable[8] /*nodearraylist8*/;
@@ -7864,24 +7864,24 @@ void parser___ReduceAction76___action(val_t  self, val_t  param0) {
   variable[26] =  variable[6] /*nodearraylist10*/;
   variable[27] = TAG_Bool(( variable[26] /*listnode12*/==NIT_NULL) || VAL_ISA( variable[26] /*listnode12*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[27])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction76___action, LOCATE_parser, 4353); nit_exit(1);}
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[25] /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[25] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[25] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable[25] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[25] /*ppropdefnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[25] /*ppropdefnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[25] /*ppropdefnode11*/)( variable[25] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[18] /*listnode13*/,COLOR_abstract_collection___SimpleCollection___add))( variable[18] /*listnode13*/,  variable[25] /*ppropdefnode11*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[18] /*listnode13*/)( variable[18] /*listnode13*/,  variable[25] /*ppropdefnode11*/) /*AbstractArray::add*/;
   }
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode12*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode12*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode12*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode12*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode12*/,COLOR_kernel___Object_____eqeq))( variable[26] /*listnode12*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode12*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode12*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[26] /*listnode12*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode12*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[26] /*listnode12*/)( variable[26] /*listnode12*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    variable[27] = ((array___AbstractArray___is_empty_t)CALL( variable[18] /*listnode13*/,COLOR_abstract_collection___Collection___is_empty))( variable[18] /*listnode13*/) /*AbstractArray::is_empty*/;
+    variable[27] = CALL_abstract_collection___Collection___is_empty( variable[18] /*listnode13*/)( variable[18] /*listnode13*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[27])) { /*if*/
       variable[18] =  variable[26] /*listnode12*/ /*listnode13=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[18] /*listnode13*/,COLOR_abstract_collection___IndexedCollection___append))( variable[18] /*listnode13*/,  variable[26] /*listnode12*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[18] /*listnode13*/)( variable[18] /*listnode13*/,  variable[26] /*listnode12*/) /*IndexedCollection::append*/;
     }
   }
   variable[28] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[19] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[20] /*pvisibilitynode4*/,  variable[21] /*pclasskindnode5*/,  variable[22] /*tclassidnode6*/,  variable[16] /*listnode8*/,  variable[17] /*listnode10*/,  variable[18] /*listnode13*/); /*new AClassdef*/
   variable[27] = variable[28];
   variable[3] =  variable[27] /*pclassdefnode1*/ /*node_list=*/;
-  variable[28] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[28] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label184: while(false);
   tracehead = trace.prev;
   return;
@@ -7908,29 +7908,29 @@ void parser___ReduceAction77___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[17] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[16] = variable[17];
@@ -7956,39 +7956,39 @@ void parser___ReduceAction77___action(val_t  self, val_t  param0) {
   variable[24] =  variable[9] /*nodearraylist7*/;
   variable[25] = TAG_Bool(( variable[24] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[24] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[25])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction77___action, LOCATE_parser, 4410); nit_exit(1);}
-  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[24] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[24] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[25] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[24] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[24] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[24] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[24] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[24] /*listnode7*/)( variable[24] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[25])) { /*if*/
-    variable[25] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[25] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode8*/)( variable[16] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[25])) { /*if*/
       variable[16] =  variable[24] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode8*/,  variable[24] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode8*/)( variable[16] /*listnode8*/,  variable[24] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[25] =  variable[8] /*nodearraylist8*/;
   variable[26] = TAG_Bool(( variable[25] /*listnode9*/==NIT_NULL) || VAL_ISA( variable[25] /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[26])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction77___action, LOCATE_parser, 4419); nit_exit(1);}
-  variable[26] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[25] /*listnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[25] /*listnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[25] /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable[25] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[26] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[25] /*listnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[25] /*listnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[25] /*listnode9*/)( variable[25] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[26])) { /*if*/
-    variable[26] = ((array___AbstractArray___is_empty_t)CALL( variable[17] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[17] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[26] = CALL_abstract_collection___Collection___is_empty( variable[17] /*listnode10*/)( variable[17] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[26])) { /*if*/
       variable[17] =  variable[25] /*listnode9*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[17] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[17] /*listnode10*/,  variable[25] /*listnode9*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[17] /*listnode10*/)( variable[17] /*listnode10*/,  variable[25] /*listnode9*/) /*IndexedCollection::append*/;
     }
   }
   variable[26] =  variable[7] /*nodearraylist9*/;
   variable[27] = TAG_Bool(( variable[26] /*ppropdefnode11*/==NIT_NULL) || VAL_ISA( variable[26] /*ppropdefnode11*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[27])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction77___action, LOCATE_parser, 4428); nit_exit(1);}
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[26] /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[26] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[26] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable[26] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[26] /*ppropdefnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[26] /*ppropdefnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[26] /*ppropdefnode11*/)( variable[26] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[18] /*listnode12*/,COLOR_abstract_collection___SimpleCollection___add))( variable[18] /*listnode12*/,  variable[26] /*ppropdefnode11*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[18] /*listnode12*/)( variable[18] /*listnode12*/,  variable[26] /*ppropdefnode11*/) /*AbstractArray::add*/;
   }
   variable[28] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[19] /*pdocnode2*/,  variable[20] /*tkwredefnode3*/,  variable[21] /*pvisibilitynode4*/,  variable[22] /*pclasskindnode5*/,  variable[23] /*tclassidnode6*/,  variable[16] /*listnode8*/,  variable[17] /*listnode10*/,  variable[18] /*listnode12*/); /*new AClassdef*/
   variable[27] = variable[28];
   variable[3] =  variable[27] /*pclassdefnode1*/ /*node_list=*/;
-  variable[28] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[28] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[28],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label186: while(false);
   tracehead = trace.prev;
   return;
@@ -8015,31 +8015,31 @@ void parser___ReduceAction78___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
-  variable[17] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[17] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[16] = variable[17];
   variable[18] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[17] = variable[18];
@@ -8065,25 +8065,25 @@ void parser___ReduceAction78___action(val_t  self, val_t  param0) {
   variable[25] =  variable[10] /*nodearraylist7*/;
   variable[26] = TAG_Bool(( variable[25] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[25] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[26])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction78___action, LOCATE_parser, 4479); nit_exit(1);}
-  variable[26] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[25] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[25] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[25] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[25] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[26] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[25] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[25] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[25] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[25] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[25] /*listnode7*/)( variable[25] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[26])) { /*if*/
-    variable[26] = ((array___AbstractArray___is_empty_t)CALL( variable[17] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[17] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[26] = CALL_abstract_collection___Collection___is_empty( variable[17] /*listnode8*/)( variable[17] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[26])) { /*if*/
       variable[17] =  variable[25] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[17] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[17] /*listnode8*/,  variable[25] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[17] /*listnode8*/)( variable[17] /*listnode8*/,  variable[25] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[26] =  variable[9] /*nodearraylist8*/;
   variable[27] = TAG_Bool(( variable[26] /*listnode9*/==NIT_NULL) || VAL_ISA( variable[26] /*listnode9*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[27])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction78___action, LOCATE_parser, 4488); nit_exit(1);}
-  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode9*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode9*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[26] /*listnode9*/,COLOR_kernel___Object_____eqeq))( variable[26] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[27] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[26] /*listnode9*/ ==  NIT_NULL /*null*/) || (( variable[26] /*listnode9*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[26] /*listnode9*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[26] /*listnode9*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[26] /*listnode9*/)( variable[26] /*listnode9*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[27])) { /*if*/
-    variable[27] = ((array___AbstractArray___is_empty_t)CALL( variable[18] /*listnode10*/,COLOR_abstract_collection___Collection___is_empty))( variable[18] /*listnode10*/) /*AbstractArray::is_empty*/;
+    variable[27] = CALL_abstract_collection___Collection___is_empty( variable[18] /*listnode10*/)( variable[18] /*listnode10*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[27])) { /*if*/
       variable[18] =  variable[26] /*listnode9*/ /*listnode10=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[18] /*listnode10*/,COLOR_abstract_collection___IndexedCollection___append))( variable[18] /*listnode10*/,  variable[26] /*listnode9*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[18] /*listnode10*/)( variable[18] /*listnode10*/,  variable[26] /*listnode9*/) /*IndexedCollection::append*/;
     }
   }
   variable[27] =  variable[8] /*nodearraylist9*/;
@@ -8092,24 +8092,24 @@ void parser___ReduceAction78___action(val_t  self, val_t  param0) {
   variable[28] =  variable[6] /*nodearraylist11*/;
   variable[29] = TAG_Bool(( variable[28] /*listnode12*/==NIT_NULL) || VAL_ISA( variable[28] /*listnode12*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[29])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction78___action, LOCATE_parser, 4499); nit_exit(1);}
-  variable[29] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[27] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[27] /*ppropdefnode11*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[27] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[27] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[27] /*ppropdefnode11*/,COLOR_kernel___Object_____eqeq))( variable[27] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[29] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[27] /*ppropdefnode11*/ ==  NIT_NULL /*null*/) || (( variable[27] /*ppropdefnode11*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[27] /*ppropdefnode11*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[27] /*ppropdefnode11*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[27] /*ppropdefnode11*/)( variable[27] /*ppropdefnode11*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[29])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[19] /*listnode13*/,COLOR_abstract_collection___SimpleCollection___add))( variable[19] /*listnode13*/,  variable[27] /*ppropdefnode11*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[19] /*listnode13*/)( variable[19] /*listnode13*/,  variable[27] /*ppropdefnode11*/) /*AbstractArray::add*/;
   }
-  variable[29] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[28] /*listnode12*/ ==  NIT_NULL /*null*/) || (( variable[28] /*listnode12*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[28] /*listnode12*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[28] /*listnode12*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[28] /*listnode12*/,COLOR_kernel___Object_____eqeq))( variable[28] /*listnode12*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[29] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[28] /*listnode12*/ ==  NIT_NULL /*null*/) || (( variable[28] /*listnode12*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[28] /*listnode12*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[28] /*listnode12*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[28] /*listnode12*/)( variable[28] /*listnode12*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[29])) { /*if*/
-    variable[29] = ((array___AbstractArray___is_empty_t)CALL( variable[19] /*listnode13*/,COLOR_abstract_collection___Collection___is_empty))( variable[19] /*listnode13*/) /*AbstractArray::is_empty*/;
+    variable[29] = CALL_abstract_collection___Collection___is_empty( variable[19] /*listnode13*/)( variable[19] /*listnode13*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[29])) { /*if*/
       variable[19] =  variable[28] /*listnode12*/ /*listnode13=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[19] /*listnode13*/,COLOR_abstract_collection___IndexedCollection___append))( variable[19] /*listnode13*/,  variable[28] /*listnode12*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[19] /*listnode13*/)( variable[19] /*listnode13*/,  variable[28] /*listnode12*/) /*IndexedCollection::append*/;
     }
   }
   variable[30] = NEW_AClassdef_parser_prod___AClassdef___init_aclassdef( variable[20] /*pdocnode2*/,  variable[21] /*tkwredefnode3*/,  variable[22] /*pvisibilitynode4*/,  variable[23] /*pclasskindnode5*/,  variable[24] /*tclassidnode6*/,  variable[17] /*listnode8*/,  variable[18] /*listnode10*/,  variable[19] /*listnode13*/); /*new AClassdef*/
   variable[29] = variable[30];
   variable[3] =  variable[29] /*pclassdefnode1*/ /*node_list=*/;
-  variable[30] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[30],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[30] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(5)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[30],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label188: while(false);
   tracehead = trace.prev;
   return;
@@ -8136,7 +8136,7 @@ void parser___ReduceAction79___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwclassnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwclassnode2*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
@@ -8144,8 +8144,8 @@ void parser___ReduceAction79___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AConcreteClasskind_parser_prod___AConcreteClasskind___init_aconcreteclasskind( variable[5] /*tkwclassnode2*/); /*new AConcreteClasskind*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pclasskindnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label190: while(false);
   tracehead = trace.prev;
   return;
@@ -8172,9 +8172,9 @@ void parser___ReduceAction80___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwabstractnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwabstractnode2*/, COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
@@ -8185,8 +8185,8 @@ void parser___ReduceAction80___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AAbstractClasskind_parser_prod___AAbstractClasskind___init_aabstractclasskind( variable[6] /*tkwabstractnode2*/,  variable[7] /*tkwclassnode3*/); /*new AAbstractClasskind*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pclasskindnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label192: while(false);
   tracehead = trace.prev;
   return;
@@ -8213,7 +8213,7 @@ void parser___ReduceAction81___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwinterfacenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwinterfacenode2*/, COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
@@ -8221,8 +8221,8 @@ void parser___ReduceAction81___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AInterfaceClasskind_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind( variable[5] /*tkwinterfacenode2*/); /*new AInterfaceClasskind*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pclasskindnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label194: while(false);
   tracehead = trace.prev;
   return;
@@ -8249,7 +8249,7 @@ void parser___ReduceAction82___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwuniversalnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwuniversalnode2*/, COLOR_TKwuniversal, ID_TKwuniversal)) /*cast TKwuniversal*/;
@@ -8257,8 +8257,8 @@ void parser___ReduceAction82___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AUniversalClasskind_parser_prod___AUniversalClasskind___init_auniversalclasskind( variable[5] /*tkwuniversalnode2*/); /*new AUniversalClasskind*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pclasskindnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(6)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label196: while(false);
   tracehead = trace.prev;
   return;
@@ -8285,28 +8285,28 @@ void parser___ReduceAction83___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
   variable[10] =  variable[6] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable[10] /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction83___action, LOCATE_parser, 4605); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pformaldefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pformaldefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pformaldefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pformaldefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pformaldefnode1*/)( variable[10] /*pformaldefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode2*/,  variable[10] /*pformaldefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode2*/)( variable[9] /*listnode2*/,  variable[10] /*pformaldefnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[9] /*listnode2*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(7)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(7)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label198: while(false);
   tracehead = trace.prev;
   return;
@@ -8333,17 +8333,17 @@ void parser___ReduceAction84___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -8353,22 +8353,22 @@ void parser___ReduceAction84___action(val_t  self, val_t  param0) {
   variable[12] =  variable[6] /*nodearraylist4*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction84___action, LOCATE_parser, 4629); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pformaldefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pformaldefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pformaldefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pformaldefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pformaldefnode1*/)( variable[11] /*pformaldefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode3*/,  variable[11] /*pformaldefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[11] /*pformaldefnode1*/) /*AbstractArray::add*/;
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode3*/)( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[10] /*listnode3*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(7)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(7)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label200: while(false);
   tracehead = trace.prev;
   return;
@@ -8395,18 +8395,18 @@ void parser___ReduceAction85___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[4] /*nodearraylist3*/;
   variable[8] = TAG_Bool(( variable[7] /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction85___action, LOCATE_parser, 4654); nit_exit(1);}
   variable[3] =  variable[7] /*pformaldefnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(8)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(8)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label202: while(false);
   tracehead = trace.prev;
   return;
@@ -8433,7 +8433,7 @@ void parser___ReduceAction86___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
@@ -8441,8 +8441,8 @@ void parser___ReduceAction86___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef( variable[5] /*tclassidnode2*/,  NIT_NULL /*null*/); /*new AFormaldef*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pformaldefnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(9)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(9)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label204: while(false);
   tracehead = trace.prev;
   return;
@@ -8469,9 +8469,9 @@ void parser___ReduceAction87___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tclassidnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tclassidnode2*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
@@ -8482,8 +8482,8 @@ void parser___ReduceAction87___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AFormaldef_parser_prod___AFormaldef___init_aformaldef( variable[6] /*tclassidnode2*/,  variable[7] /*ptypenode3*/); /*new AFormaldef*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pformaldefnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(9)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(9)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label206: while(false);
   tracehead = trace.prev;
   return;
@@ -8510,13 +8510,13 @@ void parser___ReduceAction88___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[6] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*tkwspecialnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*tkwspecialnode2*/, COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
@@ -8527,8 +8527,8 @@ void parser___ReduceAction88___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ASuperclass_parser_prod___ASuperclass___init_asuperclass( variable[8] /*tkwspecialnode2*/,  variable[9] /*ptypenode3*/); /*new ASuperclass*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*psuperclassnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(10)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(10)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label208: while(false);
   tracehead = trace.prev;
   return;
@@ -8555,16 +8555,16 @@ void parser___ReduceAction89___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction89___action, LOCATE_parser, 4727); nit_exit(1);}
   variable[3] =  variable[6] /*ppropdefnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(11)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(11)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label210: while(false);
   tracehead = trace.prev;
   return;
@@ -8591,17 +8591,17 @@ void parser___ReduceAction90___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -8628,8 +8628,8 @@ void parser___ReduceAction90___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  variable[12] /*pablenode3*/,  variable[14] /*pablenode6*/,  NIT_NULL /*null*/,  variable[15] /*pvisibilitynode10*/,  variable[16] /*tkwattrnode11*/,  variable[17] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label212: while(false);
   tracehead = trace.prev;
   return;
@@ -8656,19 +8656,19 @@ void parser___ReduceAction91___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -8698,8 +8698,8 @@ void parser___ReduceAction91___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  variable[13] /*pablenode3*/,  variable[16] /*pablenode6*/,  NIT_NULL /*null*/,  variable[17] /*pvisibilitynode10*/,  variable[18] /*tkwattrnode11*/,  variable[19] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label214: while(false);
   tracehead = trace.prev;
   return;
@@ -8726,15 +8726,15 @@ void parser___ReduceAction92___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -8756,8 +8756,8 @@ void parser___ReduceAction92___action(val_t  self, val_t  param0) {
   variable[16] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[9] /*pdocnode2*/,  variable[11] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode8*/,  variable[13] /*tkwattrnode9*/,  variable[14] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*ppropdefnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label216: while(false);
   tracehead = trace.prev;
   return;
@@ -8784,19 +8784,19 @@ void parser___ReduceAction93___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -8826,8 +8826,8 @@ void parser___ReduceAction93___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  variable[14] /*pablenode3*/,  variable[16] /*pablenode6*/,  NIT_NULL /*null*/,  variable[17] /*pvisibilitynode10*/,  variable[18] /*tkwattrnode11*/,  variable[19] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label218: while(false);
   tracehead = trace.prev;
   return;
@@ -8854,21 +8854,21 @@ void parser___ReduceAction94___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -8901,8 +8901,8 @@ void parser___ReduceAction94___action(val_t  self, val_t  param0) {
   variable[23] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[15] /*pablenode3*/,  variable[18] /*pablenode6*/,  NIT_NULL /*null*/,  variable[19] /*pvisibilitynode10*/,  variable[20] /*tkwattrnode11*/,  variable[21] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*ppropdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label220: while(false);
   tracehead = trace.prev;
   return;
@@ -8929,17 +8929,17 @@ void parser___ReduceAction95___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -8964,8 +8964,8 @@ void parser___ReduceAction95___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  variable[13] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[14] /*pvisibilitynode8*/,  variable[15] /*tkwattrnode9*/,  variable[16] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label222: while(false);
   tracehead = trace.prev;
   return;
@@ -8992,15 +8992,15 @@ void parser___ReduceAction96___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9022,8 +9022,8 @@ void parser___ReduceAction96___action(val_t  self, val_t  param0) {
   variable[16] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[9] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[11] /*pablenode4*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode8*/,  variable[13] /*tkwattrnode9*/,  variable[14] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*ppropdefnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label224: while(false);
   tracehead = trace.prev;
   return;
@@ -9050,17 +9050,17 @@ void parser___ReduceAction97___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9085,8 +9085,8 @@ void parser___ReduceAction97___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[13] /*pablenode4*/,  NIT_NULL /*null*/,  variable[14] /*pvisibilitynode8*/,  variable[15] /*tkwattrnode9*/,  variable[16] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label226: while(false);
   tracehead = trace.prev;
   return;
@@ -9113,13 +9113,13 @@ void parser___ReduceAction98___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9136,8 +9136,8 @@ void parser___ReduceAction98___action(val_t  self, val_t  param0) {
   variable[13] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[8] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[9] /*pvisibilitynode6*/,  variable[10] /*tkwattrnode7*/,  variable[11] /*tattridnode8*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*ppropdefnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label228: while(false);
   tracehead = trace.prev;
   return;
@@ -9164,19 +9164,19 @@ void parser___ReduceAction99___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9206,8 +9206,8 @@ void parser___ReduceAction99___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  variable[13] /*pablenode3*/,  variable[15] /*pablenode6*/,  variable[16] /*tkwredefnode9*/,  variable[17] /*pvisibilitynode10*/,  variable[18] /*tkwattrnode11*/,  variable[19] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label230: while(false);
   tracehead = trace.prev;
   return;
@@ -9234,21 +9234,21 @@ void parser___ReduceAction100___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9281,8 +9281,8 @@ void parser___ReduceAction100___action(val_t  self, val_t  param0) {
   variable[23] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[14] /*pablenode3*/,  variable[17] /*pablenode6*/,  variable[18] /*tkwredefnode9*/,  variable[19] /*pvisibilitynode10*/,  variable[20] /*tkwattrnode11*/,  variable[21] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*ppropdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label232: while(false);
   tracehead = trace.prev;
   return;
@@ -9309,17 +9309,17 @@ void parser___ReduceAction101___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9344,8 +9344,8 @@ void parser___ReduceAction101___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  variable[12] /*pablenode3*/,  NIT_NULL /*null*/,  variable[13] /*tkwredefnode7*/,  variable[14] /*pvisibilitynode8*/,  variable[15] /*tkwattrnode9*/,  variable[16] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label234: while(false);
   tracehead = trace.prev;
   return;
@@ -9372,21 +9372,21 @@ void parser___ReduceAction102___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9419,8 +9419,8 @@ void parser___ReduceAction102___action(val_t  self, val_t  param0) {
   variable[23] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[15] /*pablenode3*/,  variable[17] /*pablenode6*/,  variable[18] /*tkwredefnode9*/,  variable[19] /*pvisibilitynode10*/,  variable[20] /*tkwattrnode11*/,  variable[21] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*ppropdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label236: while(false);
   tracehead = trace.prev;
   return;
@@ -9447,23 +9447,23 @@ void parser___ReduceAction103___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9499,8 +9499,8 @@ void parser___ReduceAction103___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[16] /*pablenode3*/,  variable[19] /*pablenode6*/,  variable[20] /*tkwredefnode9*/,  variable[21] /*pvisibilitynode10*/,  variable[22] /*tkwattrnode11*/,  variable[23] /*tattridnode12*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label238: while(false);
   tracehead = trace.prev;
   return;
@@ -9527,19 +9527,19 @@ void parser___ReduceAction104___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9567,8 +9567,8 @@ void parser___ReduceAction104___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  variable[14] /*pablenode3*/,  NIT_NULL /*null*/,  variable[15] /*tkwredefnode7*/,  variable[16] /*pvisibilitynode8*/,  variable[17] /*tkwattrnode9*/,  variable[18] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label240: while(false);
   tracehead = trace.prev;
   return;
@@ -9595,17 +9595,17 @@ void parser___ReduceAction105___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9630,8 +9630,8 @@ void parser___ReduceAction105___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pablenode4*/,  variable[13] /*tkwredefnode7*/,  variable[14] /*pvisibilitynode8*/,  variable[15] /*tkwattrnode9*/,  variable[16] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label242: while(false);
   tracehead = trace.prev;
   return;
@@ -9658,19 +9658,19 @@ void parser___ReduceAction106___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9698,8 +9698,8 @@ void parser___ReduceAction106___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[14] /*pablenode4*/,  variable[15] /*tkwredefnode7*/,  variable[16] /*pvisibilitynode8*/,  variable[17] /*tkwattrnode9*/,  variable[18] /*tattridnode10*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label244: while(false);
   tracehead = trace.prev;
   return;
@@ -9726,15 +9726,15 @@ void parser___ReduceAction107___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9754,8 +9754,8 @@ void parser___ReduceAction107___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[9] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[10] /*tkwredefnode5*/,  variable[11] /*pvisibilitynode6*/,  variable[12] /*tkwattrnode7*/,  variable[13] /*tattridnode8*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*ppropdefnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label246: while(false);
   tracehead = trace.prev;
   return;
@@ -9782,19 +9782,19 @@ void parser___ReduceAction108___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9824,8 +9824,8 @@ void parser___ReduceAction108___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  variable[13] /*pablenode3*/,  variable[15] /*pablenode6*/,  NIT_NULL /*null*/,  variable[16] /*pvisibilitynode10*/,  variable[17] /*tkwattrnode11*/,  variable[18] /*tattridnode12*/,  variable[19] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label248: while(false);
   tracehead = trace.prev;
   return;
@@ -9852,21 +9852,21 @@ void parser___ReduceAction109___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9899,8 +9899,8 @@ void parser___ReduceAction109___action(val_t  self, val_t  param0) {
   variable[23] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[14] /*pablenode3*/,  variable[17] /*pablenode6*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode10*/,  variable[19] /*tkwattrnode11*/,  variable[20] /*tattridnode12*/,  variable[21] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*ppropdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label250: while(false);
   tracehead = trace.prev;
   return;
@@ -9927,17 +9927,17 @@ void parser___ReduceAction110___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -9962,8 +9962,8 @@ void parser___ReduceAction110___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  variable[12] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[13] /*pvisibilitynode8*/,  variable[14] /*tkwattrnode9*/,  variable[15] /*tattridnode10*/,  variable[16] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label252: while(false);
   tracehead = trace.prev;
   return;
@@ -9990,21 +9990,21 @@ void parser___ReduceAction111___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10037,8 +10037,8 @@ void parser___ReduceAction111___action(val_t  self, val_t  param0) {
   variable[23] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[15] /*pablenode3*/,  variable[17] /*pablenode6*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode10*/,  variable[19] /*tkwattrnode11*/,  variable[20] /*tattridnode12*/,  variable[21] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*ppropdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label254: while(false);
   tracehead = trace.prev;
   return;
@@ -10065,23 +10065,23 @@ void parser___ReduceAction112___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10117,8 +10117,8 @@ void parser___ReduceAction112___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[16] /*pablenode3*/,  variable[19] /*pablenode6*/,  NIT_NULL /*null*/,  variable[20] /*pvisibilitynode10*/,  variable[21] /*tkwattrnode11*/,  variable[22] /*tattridnode12*/,  variable[23] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label256: while(false);
   tracehead = trace.prev;
   return;
@@ -10145,19 +10145,19 @@ void parser___ReduceAction113___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10185,8 +10185,8 @@ void parser___ReduceAction113___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  variable[14] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[15] /*pvisibilitynode8*/,  variable[16] /*tkwattrnode9*/,  variable[17] /*tattridnode10*/,  variable[18] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label258: while(false);
   tracehead = trace.prev;
   return;
@@ -10213,17 +10213,17 @@ void parser___ReduceAction114___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10248,8 +10248,8 @@ void parser___ReduceAction114___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pablenode4*/,  NIT_NULL /*null*/,  variable[13] /*pvisibilitynode8*/,  variable[14] /*tkwattrnode9*/,  variable[15] /*tattridnode10*/,  variable[16] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label260: while(false);
   tracehead = trace.prev;
   return;
@@ -10276,19 +10276,19 @@ void parser___ReduceAction115___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10316,8 +10316,8 @@ void parser___ReduceAction115___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[14] /*pablenode4*/,  NIT_NULL /*null*/,  variable[15] /*pvisibilitynode8*/,  variable[16] /*tkwattrnode9*/,  variable[17] /*tattridnode10*/,  variable[18] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label262: while(false);
   tracehead = trace.prev;
   return;
@@ -10344,15 +10344,15 @@ void parser___ReduceAction116___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10372,8 +10372,8 @@ void parser___ReduceAction116___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[9] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[10] /*pvisibilitynode6*/,  variable[11] /*tkwattrnode7*/,  variable[12] /*tattridnode8*/,  variable[13] /*ptypenode9*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*ppropdefnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label264: while(false);
   tracehead = trace.prev;
   return;
@@ -10400,21 +10400,21 @@ void parser___ReduceAction117___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10447,8 +10447,8 @@ void parser___ReduceAction117___action(val_t  self, val_t  param0) {
   variable[23] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[14] /*pablenode3*/,  variable[16] /*pablenode6*/,  variable[17] /*tkwredefnode9*/,  variable[18] /*pvisibilitynode10*/,  variable[19] /*tkwattrnode11*/,  variable[20] /*tattridnode12*/,  variable[21] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*ppropdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label266: while(false);
   tracehead = trace.prev;
   return;
@@ -10475,23 +10475,23 @@ void parser___ReduceAction118___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10527,8 +10527,8 @@ void parser___ReduceAction118___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[15] /*pablenode3*/,  variable[18] /*pablenode6*/,  variable[19] /*tkwredefnode9*/,  variable[20] /*pvisibilitynode10*/,  variable[21] /*tkwattrnode11*/,  variable[22] /*tattridnode12*/,  variable[23] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label268: while(false);
   tracehead = trace.prev;
   return;
@@ -10555,19 +10555,19 @@ void parser___ReduceAction119___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10595,8 +10595,8 @@ void parser___ReduceAction119___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  variable[13] /*pablenode3*/,  NIT_NULL /*null*/,  variable[14] /*tkwredefnode7*/,  variable[15] /*pvisibilitynode8*/,  variable[16] /*tkwattrnode9*/,  variable[17] /*tattridnode10*/,  variable[18] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label270: while(false);
   tracehead = trace.prev;
   return;
@@ -10623,23 +10623,23 @@ void parser___ReduceAction120___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10675,8 +10675,8 @@ void parser___ReduceAction120___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[16] /*pablenode3*/,  variable[18] /*pablenode6*/,  variable[19] /*tkwredefnode9*/,  variable[20] /*pvisibilitynode10*/,  variable[21] /*tkwattrnode11*/,  variable[22] /*tattridnode12*/,  variable[23] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label272: while(false);
   tracehead = trace.prev;
   return;
@@ -10703,25 +10703,25 @@ void parser___ReduceAction121___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10760,8 +10760,8 @@ void parser___ReduceAction121___action(val_t  self, val_t  param0) {
   variable[27] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[17] /*pablenode3*/,  variable[20] /*pablenode6*/,  variable[21] /*tkwredefnode9*/,  variable[22] /*pvisibilitynode10*/,  variable[23] /*tkwattrnode11*/,  variable[24] /*tattridnode12*/,  variable[25] /*ptypenode13*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[26] = variable[27];
   variable[3] =  variable[26] /*ppropdefnode1*/ /*node_list=*/;
-  variable[27] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[27] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label274: while(false);
   tracehead = trace.prev;
   return;
@@ -10788,21 +10788,21 @@ void parser___ReduceAction122___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10833,8 +10833,8 @@ void parser___ReduceAction122___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[15] /*pablenode3*/,  NIT_NULL /*null*/,  variable[16] /*tkwredefnode7*/,  variable[17] /*pvisibilitynode8*/,  variable[18] /*tkwattrnode9*/,  variable[19] /*tattridnode10*/,  variable[20] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label276: while(false);
   tracehead = trace.prev;
   return;
@@ -10861,19 +10861,19 @@ void parser___ReduceAction123___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10901,8 +10901,8 @@ void parser___ReduceAction123___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[13] /*pablenode4*/,  variable[14] /*tkwredefnode7*/,  variable[15] /*pvisibilitynode8*/,  variable[16] /*tkwattrnode9*/,  variable[17] /*tattridnode10*/,  variable[18] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label278: while(false);
   tracehead = trace.prev;
   return;
@@ -10929,21 +10929,21 @@ void parser___ReduceAction124___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -10974,8 +10974,8 @@ void parser___ReduceAction124___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[15] /*pablenode4*/,  variable[16] /*tkwredefnode7*/,  variable[17] /*pvisibilitynode8*/,  variable[18] /*tkwattrnode9*/,  variable[19] /*tattridnode10*/,  variable[20] /*ptypenode11*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label280: while(false);
   tracehead = trace.prev;
   return;
@@ -11002,17 +11002,17 @@ void parser___ReduceAction125___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11035,8 +11035,8 @@ void parser___ReduceAction125___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[10] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[11] /*tkwredefnode5*/,  variable[12] /*pvisibilitynode6*/,  variable[13] /*tkwattrnode7*/,  variable[14] /*tattridnode8*/,  variable[15] /*ptypenode9*/,  NIT_NULL /*null*/); /*new AAttrPropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label282: while(false);
   tracehead = trace.prev;
   return;
@@ -11063,23 +11063,23 @@ void parser___ReduceAction126___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11109,8 +11109,8 @@ void parser___ReduceAction126___action(val_t  self, val_t  param0) {
   variable[23] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[15] /*pablenode3*/,  variable[17] /*pablenode6*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode10*/,  variable[19] /*tkwattrnode11*/,  variable[20] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[21] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[22] = variable[23];
   variable[3] =  variable[22] /*ppropdefnode1*/ /*node_list=*/;
-  variable[23] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[23] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[23],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label284: while(false);
   tracehead = trace.prev;
   return;
@@ -11137,25 +11137,25 @@ void parser___ReduceAction127___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11188,8 +11188,8 @@ void parser___ReduceAction127___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[16] /*pablenode3*/,  variable[19] /*pablenode6*/,  NIT_NULL /*null*/,  variable[20] /*pvisibilitynode10*/,  variable[21] /*tkwattrnode11*/,  variable[22] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[23] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label286: while(false);
   tracehead = trace.prev;
   return;
@@ -11216,21 +11216,21 @@ void parser___ReduceAction128___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11255,8 +11255,8 @@ void parser___ReduceAction128___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  variable[14] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[15] /*pvisibilitynode8*/,  variable[16] /*tkwattrnode9*/,  variable[17] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[18] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label288: while(false);
   tracehead = trace.prev;
   return;
@@ -11283,25 +11283,25 @@ void parser___ReduceAction129___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11334,8 +11334,8 @@ void parser___ReduceAction129___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[17] /*pablenode3*/,  variable[19] /*pablenode6*/,  NIT_NULL /*null*/,  variable[20] /*pvisibilitynode10*/,  variable[21] /*tkwattrnode11*/,  variable[22] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[23] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label290: while(false);
   tracehead = trace.prev;
   return;
@@ -11362,27 +11362,27 @@ void parser___ReduceAction130___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11418,8 +11418,8 @@ void parser___ReduceAction130___action(val_t  self, val_t  param0) {
   variable[27] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  variable[18] /*pablenode3*/,  variable[21] /*pablenode6*/,  NIT_NULL /*null*/,  variable[22] /*pvisibilitynode10*/,  variable[23] /*tkwattrnode11*/,  variable[24] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[25] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[26] = variable[27];
   variable[3] =  variable[26] /*ppropdefnode1*/ /*node_list=*/;
-  variable[27] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[27] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label292: while(false);
   tracehead = trace.prev;
   return;
@@ -11446,23 +11446,23 @@ void parser___ReduceAction131___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11490,8 +11490,8 @@ void parser___ReduceAction131___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[16] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[17] /*pvisibilitynode8*/,  variable[18] /*tkwattrnode9*/,  variable[19] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[20] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label294: while(false);
   tracehead = trace.prev;
   return;
@@ -11518,21 +11518,21 @@ void parser___ReduceAction132___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11557,8 +11557,8 @@ void parser___ReduceAction132___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[14] /*pablenode4*/,  NIT_NULL /*null*/,  variable[15] /*pvisibilitynode8*/,  variable[16] /*tkwattrnode9*/,  variable[17] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[18] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label296: while(false);
   tracehead = trace.prev;
   return;
@@ -11585,23 +11585,23 @@ void parser___ReduceAction133___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11629,8 +11629,8 @@ void parser___ReduceAction133___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[16] /*pablenode4*/,  NIT_NULL /*null*/,  variable[17] /*pvisibilitynode8*/,  variable[18] /*tkwattrnode9*/,  variable[19] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[20] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label298: while(false);
   tracehead = trace.prev;
   return;
@@ -11657,19 +11657,19 @@ void parser___ReduceAction134___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11689,8 +11689,8 @@ void parser___ReduceAction134___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode6*/,  variable[13] /*tkwattrnode7*/,  variable[14] /*tattridnode8*/,  NIT_NULL /*null*/,  variable[15] /*pexprnode10*/); /*new AAttrPropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label300: while(false);
   tracehead = trace.prev;
   return;
@@ -11717,25 +11717,25 @@ void parser___ReduceAction135___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11768,8 +11768,8 @@ void parser___ReduceAction135___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[16] /*pablenode3*/,  variable[18] /*pablenode6*/,  variable[19] /*tkwredefnode9*/,  variable[20] /*pvisibilitynode10*/,  variable[21] /*tkwattrnode11*/,  variable[22] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[23] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label302: while(false);
   tracehead = trace.prev;
   return;
@@ -11796,27 +11796,27 @@ void parser___ReduceAction136___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11852,8 +11852,8 @@ void parser___ReduceAction136___action(val_t  self, val_t  param0) {
   variable[27] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  variable[17] /*pablenode3*/,  variable[20] /*pablenode6*/,  variable[21] /*tkwredefnode9*/,  variable[22] /*pvisibilitynode10*/,  variable[23] /*tkwattrnode11*/,  variable[24] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[25] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[26] = variable[27];
   variable[3] =  variable[26] /*ppropdefnode1*/ /*node_list=*/;
-  variable[27] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[27] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label304: while(false);
   tracehead = trace.prev;
   return;
@@ -11880,23 +11880,23 @@ void parser___ReduceAction137___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -11924,8 +11924,8 @@ void parser___ReduceAction137___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[15] /*pablenode3*/,  NIT_NULL /*null*/,  variable[16] /*tkwredefnode7*/,  variable[17] /*pvisibilitynode8*/,  variable[18] /*tkwattrnode9*/,  variable[19] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[20] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label306: while(false);
   tracehead = trace.prev;
   return;
@@ -11952,27 +11952,27 @@ void parser___ReduceAction138___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12008,8 +12008,8 @@ void parser___ReduceAction138___action(val_t  self, val_t  param0) {
   variable[27] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  variable[18] /*pablenode3*/,  variable[20] /*pablenode6*/,  variable[21] /*tkwredefnode9*/,  variable[22] /*pvisibilitynode10*/,  variable[23] /*tkwattrnode11*/,  variable[24] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[25] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[26] = variable[27];
   variable[3] =  variable[26] /*ppropdefnode1*/ /*node_list=*/;
-  variable[27] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[27] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label308: while(false);
   tracehead = trace.prev;
   return;
@@ -12036,29 +12036,29 @@ void parser___ReduceAction139___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[16] =  variable[15] /*nodearraylist1*/;
   variable[17] = TAG_Bool(( variable[16] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[16] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12097,8 +12097,8 @@ void parser___ReduceAction139___action(val_t  self, val_t  param0) {
   variable[29] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[16] /*pdocnode2*/,  variable[19] /*pablenode3*/,  variable[22] /*pablenode6*/,  variable[23] /*tkwredefnode9*/,  variable[24] /*pvisibilitynode10*/,  variable[25] /*tkwattrnode11*/,  variable[26] /*tattridnode12*/,  NIT_NULL /*null*/,  variable[27] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[28] = variable[29];
   variable[3] =  variable[28] /*ppropdefnode1*/ /*node_list=*/;
-  variable[29] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[29] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label310: while(false);
   tracehead = trace.prev;
   return;
@@ -12125,25 +12125,25 @@ void parser___ReduceAction140___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12174,8 +12174,8 @@ void parser___ReduceAction140___action(val_t  self, val_t  param0) {
   variable[24] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[17] /*pablenode3*/,  NIT_NULL /*null*/,  variable[18] /*tkwredefnode7*/,  variable[19] /*pvisibilitynode8*/,  variable[20] /*tkwattrnode9*/,  variable[21] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[22] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*ppropdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label312: while(false);
   tracehead = trace.prev;
   return;
@@ -12202,23 +12202,23 @@ void parser___ReduceAction141___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12246,8 +12246,8 @@ void parser___ReduceAction141___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[15] /*pablenode4*/,  variable[16] /*tkwredefnode7*/,  variable[17] /*pvisibilitynode8*/,  variable[18] /*tkwattrnode9*/,  variable[19] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[20] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label314: while(false);
   tracehead = trace.prev;
   return;
@@ -12274,25 +12274,25 @@ void parser___ReduceAction142___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12323,8 +12323,8 @@ void parser___ReduceAction142___action(val_t  self, val_t  param0) {
   variable[24] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[17] /*pablenode4*/,  variable[18] /*tkwredefnode7*/,  variable[19] /*pvisibilitynode8*/,  variable[20] /*tkwattrnode9*/,  variable[21] /*tattridnode10*/,  NIT_NULL /*null*/,  variable[22] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*ppropdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label316: while(false);
   tracehead = trace.prev;
   return;
@@ -12351,21 +12351,21 @@ void parser___ReduceAction143___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12388,8 +12388,8 @@ void parser___ReduceAction143___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[13] /*tkwredefnode5*/,  variable[14] /*pvisibilitynode6*/,  variable[15] /*tkwattrnode7*/,  variable[16] /*tattridnode8*/,  NIT_NULL /*null*/,  variable[17] /*pexprnode10*/); /*new AAttrPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label318: while(false);
   tracehead = trace.prev;
   return;
@@ -12416,25 +12416,25 @@ void parser___ReduceAction144___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12467,8 +12467,8 @@ void parser___ReduceAction144___action(val_t  self, val_t  param0) {
   variable[25] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[16] /*pablenode3*/,  variable[18] /*pablenode6*/,  NIT_NULL /*null*/,  variable[19] /*pvisibilitynode10*/,  variable[20] /*tkwattrnode11*/,  variable[21] /*tattridnode12*/,  variable[22] /*ptypenode13*/,  variable[23] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[24] = variable[25];
   variable[3] =  variable[24] /*ppropdefnode1*/ /*node_list=*/;
-  variable[25] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[25] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[25],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label320: while(false);
   tracehead = trace.prev;
   return;
@@ -12495,27 +12495,27 @@ void parser___ReduceAction145___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12551,8 +12551,8 @@ void parser___ReduceAction145___action(val_t  self, val_t  param0) {
   variable[27] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  variable[17] /*pablenode3*/,  variable[20] /*pablenode6*/,  NIT_NULL /*null*/,  variable[21] /*pvisibilitynode10*/,  variable[22] /*tkwattrnode11*/,  variable[23] /*tattridnode12*/,  variable[24] /*ptypenode13*/,  variable[25] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[26] = variable[27];
   variable[3] =  variable[26] /*ppropdefnode1*/ /*node_list=*/;
-  variable[27] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[27] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label322: while(false);
   tracehead = trace.prev;
   return;
@@ -12579,23 +12579,23 @@ void parser___ReduceAction146___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12623,8 +12623,8 @@ void parser___ReduceAction146___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  variable[15] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[16] /*pvisibilitynode8*/,  variable[17] /*tkwattrnode9*/,  variable[18] /*tattridnode10*/,  variable[19] /*ptypenode11*/,  variable[20] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label324: while(false);
   tracehead = trace.prev;
   return;
@@ -12651,27 +12651,27 @@ void parser___ReduceAction147___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12707,8 +12707,8 @@ void parser___ReduceAction147___action(val_t  self, val_t  param0) {
   variable[27] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  variable[18] /*pablenode3*/,  variable[20] /*pablenode6*/,  NIT_NULL /*null*/,  variable[21] /*pvisibilitynode10*/,  variable[22] /*tkwattrnode11*/,  variable[23] /*tattridnode12*/,  variable[24] /*ptypenode13*/,  variable[25] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[26] = variable[27];
   variable[3] =  variable[26] /*ppropdefnode1*/ /*node_list=*/;
-  variable[27] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[27] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label326: while(false);
   tracehead = trace.prev;
   return;
@@ -12735,29 +12735,29 @@ void parser___ReduceAction148___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[16] =  variable[15] /*nodearraylist1*/;
   variable[17] = TAG_Bool(( variable[16] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[16] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12796,8 +12796,8 @@ void parser___ReduceAction148___action(val_t  self, val_t  param0) {
   variable[29] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[16] /*pdocnode2*/,  variable[19] /*pablenode3*/,  variable[22] /*pablenode6*/,  NIT_NULL /*null*/,  variable[23] /*pvisibilitynode10*/,  variable[24] /*tkwattrnode11*/,  variable[25] /*tattridnode12*/,  variable[26] /*ptypenode13*/,  variable[27] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[28] = variable[29];
   variable[3] =  variable[28] /*ppropdefnode1*/ /*node_list=*/;
-  variable[29] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[29] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label328: while(false);
   tracehead = trace.prev;
   return;
@@ -12824,25 +12824,25 @@ void parser___ReduceAction149___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12873,8 +12873,8 @@ void parser___ReduceAction149___action(val_t  self, val_t  param0) {
   variable[24] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[17] /*pablenode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode8*/,  variable[19] /*tkwattrnode9*/,  variable[20] /*tattridnode10*/,  variable[21] /*ptypenode11*/,  variable[22] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*ppropdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label330: while(false);
   tracehead = trace.prev;
   return;
@@ -12901,23 +12901,23 @@ void parser___ReduceAction150___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -12945,8 +12945,8 @@ void parser___ReduceAction150___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[15] /*pablenode4*/,  NIT_NULL /*null*/,  variable[16] /*pvisibilitynode8*/,  variable[17] /*tkwattrnode9*/,  variable[18] /*tattridnode10*/,  variable[19] /*ptypenode11*/,  variable[20] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*ppropdefnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label332: while(false);
   tracehead = trace.prev;
   return;
@@ -12973,25 +12973,25 @@ void parser___ReduceAction151___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13022,8 +13022,8 @@ void parser___ReduceAction151___action(val_t  self, val_t  param0) {
   variable[24] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[17] /*pablenode4*/,  NIT_NULL /*null*/,  variable[18] /*pvisibilitynode8*/,  variable[19] /*tkwattrnode9*/,  variable[20] /*tattridnode10*/,  variable[21] /*ptypenode11*/,  variable[22] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*ppropdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label334: while(false);
   tracehead = trace.prev;
   return;
@@ -13050,21 +13050,21 @@ void parser___ReduceAction152___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13087,8 +13087,8 @@ void parser___ReduceAction152___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[13] /*pvisibilitynode6*/,  variable[14] /*tkwattrnode7*/,  variable[15] /*tattridnode8*/,  variable[16] /*ptypenode9*/,  variable[17] /*pexprnode10*/); /*new AAttrPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label336: while(false);
   tracehead = trace.prev;
   return;
@@ -13115,27 +13115,27 @@ void parser___ReduceAction153___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13171,8 +13171,8 @@ void parser___ReduceAction153___action(val_t  self, val_t  param0) {
   variable[27] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  variable[17] /*pablenode3*/,  variable[19] /*pablenode6*/,  variable[20] /*tkwredefnode9*/,  variable[21] /*pvisibilitynode10*/,  variable[22] /*tkwattrnode11*/,  variable[23] /*tattridnode12*/,  variable[24] /*ptypenode13*/,  variable[25] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[26] = variable[27];
   variable[3] =  variable[26] /*ppropdefnode1*/ /*node_list=*/;
-  variable[27] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[27] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[27],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label338: while(false);
   tracehead = trace.prev;
   return;
@@ -13199,29 +13199,29 @@ void parser___ReduceAction154___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[16] =  variable[15] /*nodearraylist1*/;
   variable[17] = TAG_Bool(( variable[16] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[16] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13260,8 +13260,8 @@ void parser___ReduceAction154___action(val_t  self, val_t  param0) {
   variable[29] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[16] /*pdocnode2*/,  variable[18] /*pablenode3*/,  variable[21] /*pablenode6*/,  variable[22] /*tkwredefnode9*/,  variable[23] /*pvisibilitynode10*/,  variable[24] /*tkwattrnode11*/,  variable[25] /*tattridnode12*/,  variable[26] /*ptypenode13*/,  variable[27] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[28] = variable[29];
   variable[3] =  variable[28] /*ppropdefnode1*/ /*node_list=*/;
-  variable[29] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[29] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label340: while(false);
   tracehead = trace.prev;
   return;
@@ -13288,25 +13288,25 @@ void parser___ReduceAction155___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13337,8 +13337,8 @@ void parser___ReduceAction155___action(val_t  self, val_t  param0) {
   variable[24] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  variable[16] /*pablenode3*/,  NIT_NULL /*null*/,  variable[17] /*tkwredefnode7*/,  variable[18] /*pvisibilitynode8*/,  variable[19] /*tkwattrnode9*/,  variable[20] /*tattridnode10*/,  variable[21] /*ptypenode11*/,  variable[22] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*ppropdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label342: while(false);
   tracehead = trace.prev;
   return;
@@ -13365,29 +13365,29 @@ void parser___ReduceAction156___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
   variable[16] =  variable[15] /*nodearraylist1*/;
   variable[17] = TAG_Bool(( variable[16] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[16] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13426,8 +13426,8 @@ void parser___ReduceAction156___action(val_t  self, val_t  param0) {
   variable[29] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[16] /*pdocnode2*/,  variable[19] /*pablenode3*/,  variable[21] /*pablenode6*/,  variable[22] /*tkwredefnode9*/,  variable[23] /*pvisibilitynode10*/,  variable[24] /*tkwattrnode11*/,  variable[25] /*tattridnode12*/,  variable[26] /*ptypenode13*/,  variable[27] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[28] = variable[29];
   variable[3] =  variable[28] /*ppropdefnode1*/ /*node_list=*/;
-  variable[29] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[29] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[29],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label344: while(false);
   tracehead = trace.prev;
   return;
@@ -13454,31 +13454,31 @@ void parser___ReduceAction157___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
-  variable[16] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[16] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[15] = variable[16];
-  variable[17] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[17] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[16] = variable[17];
   variable[17] =  variable[16] /*nodearraylist1*/;
   variable[18] = TAG_Bool(( variable[17] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[17] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13520,8 +13520,8 @@ void parser___ReduceAction157___action(val_t  self, val_t  param0) {
   variable[31] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[17] /*pdocnode2*/,  variable[20] /*pablenode3*/,  variable[23] /*pablenode6*/,  variable[24] /*tkwredefnode9*/,  variable[25] /*pvisibilitynode10*/,  variable[26] /*tkwattrnode11*/,  variable[27] /*tattridnode12*/,  variable[28] /*ptypenode13*/,  variable[29] /*pexprnode14*/); /*new AAttrPropdef*/
   variable[30] = variable[31];
   variable[3] =  variable[30] /*ppropdefnode1*/ /*node_list=*/;
-  variable[31] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[31],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[31] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[31],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label346: while(false);
   tracehead = trace.prev;
   return;
@@ -13548,27 +13548,27 @@ void parser___ReduceAction158___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13602,8 +13602,8 @@ void parser___ReduceAction158___action(val_t  self, val_t  param0) {
   variable[26] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  variable[18] /*pablenode3*/,  NIT_NULL /*null*/,  variable[19] /*tkwredefnode7*/,  variable[20] /*pvisibilitynode8*/,  variable[21] /*tkwattrnode9*/,  variable[22] /*tattridnode10*/,  variable[23] /*ptypenode11*/,  variable[24] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*ppropdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label348: while(false);
   tracehead = trace.prev;
   return;
@@ -13630,25 +13630,25 @@ void parser___ReduceAction159___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13679,8 +13679,8 @@ void parser___ReduceAction159___action(val_t  self, val_t  param0) {
   variable[24] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[14] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[16] /*pablenode4*/,  variable[17] /*tkwredefnode7*/,  variable[18] /*pvisibilitynode8*/,  variable[19] /*tkwattrnode9*/,  variable[20] /*tattridnode10*/,  variable[21] /*ptypenode11*/,  variable[22] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[23] = variable[24];
   variable[3] =  variable[23] /*ppropdefnode1*/ /*node_list=*/;
-  variable[24] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[24] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[24],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label350: while(false);
   tracehead = trace.prev;
   return;
@@ -13707,27 +13707,27 @@ void parser___ReduceAction160___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13761,8 +13761,8 @@ void parser___ReduceAction160___action(val_t  self, val_t  param0) {
   variable[26] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[15] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[18] /*pablenode4*/,  variable[19] /*tkwredefnode7*/,  variable[20] /*pvisibilitynode8*/,  variable[21] /*tkwattrnode9*/,  variable[22] /*tattridnode10*/,  variable[23] /*ptypenode11*/,  variable[24] /*pexprnode12*/); /*new AAttrPropdef*/
   variable[25] = variable[26];
   variable[3] =  variable[25] /*ppropdefnode1*/ /*node_list=*/;
-  variable[26] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[26] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[26],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label352: while(false);
   tracehead = trace.prev;
   return;
@@ -13789,23 +13789,23 @@ void parser___ReduceAction161___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13831,8 +13831,8 @@ void parser___ReduceAction161___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AAttrPropdef_parser_prod___AAttrPropdef___init_aattrpropdef( variable[13] /*pdocnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  variable[14] /*tkwredefnode5*/,  variable[15] /*pvisibilitynode6*/,  variable[16] /*tkwattrnode7*/,  variable[17] /*tattridnode8*/,  variable[18] /*ptypenode9*/,  variable[19] /*pexprnode10*/); /*new AAttrPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label354: while(false);
   tracehead = trace.prev;
   return;
@@ -13859,19 +13859,19 @@ void parser___ReduceAction162___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13891,8 +13891,8 @@ void parser___ReduceAction162___action(val_t  self, val_t  param0) {
   variable[17] = NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwmethnode5*/,  variable[14] /*pmethidnode6*/,  variable[15] /*psignaturenode7*/); /*new ADeferredMethPropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label356: while(false);
   tracehead = trace.prev;
   return;
@@ -13919,21 +13919,21 @@ void parser___ReduceAction163___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -13956,8 +13956,8 @@ void parser___ReduceAction163___action(val_t  self, val_t  param0) {
   variable[19] = NEW_ADeferredMethPropdef_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwmethnode5*/,  variable[16] /*pmethidnode6*/,  variable[17] /*psignaturenode7*/); /*new ADeferredMethPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label358: while(false);
   tracehead = trace.prev;
   return;
@@ -13984,19 +13984,19 @@ void parser___ReduceAction164___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14016,8 +14016,8 @@ void parser___ReduceAction164___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwmethnode5*/,  variable[14] /*pmethidnode6*/,  variable[15] /*psignaturenode7*/); /*new AInternMethPropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label360: while(false);
   tracehead = trace.prev;
   return;
@@ -14044,21 +14044,21 @@ void parser___ReduceAction165___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14081,8 +14081,8 @@ void parser___ReduceAction165___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AInternMethPropdef_parser_prod___AInternMethPropdef___init_ainternmethpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwmethnode5*/,  variable[16] /*pmethidnode6*/,  variable[17] /*psignaturenode7*/); /*new AInternMethPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label362: while(false);
   tracehead = trace.prev;
   return;
@@ -14109,19 +14109,19 @@ void parser___ReduceAction166___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14141,8 +14141,8 @@ void parser___ReduceAction166___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwmethnode5*/,  variable[14] /*pmethidnode6*/,  variable[15] /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label364: while(false);
   tracehead = trace.prev;
   return;
@@ -14169,21 +14169,21 @@ void parser___ReduceAction167___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14206,8 +14206,8 @@ void parser___ReduceAction167___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwmethnode5*/,  variable[16] /*pmethidnode6*/,  variable[17] /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label366: while(false);
   tracehead = trace.prev;
   return;
@@ -14234,21 +14234,21 @@ void parser___ReduceAction168___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14271,8 +14271,8 @@ void parser___ReduceAction168___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[13] /*pvisibilitynode4*/,  variable[14] /*tkwmethnode5*/,  variable[15] /*pmethidnode6*/,  variable[16] /*psignaturenode7*/,  variable[17] /*tstringnode8*/); /*new AExternMethPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label368: while(false);
   tracehead = trace.prev;
   return;
@@ -14299,23 +14299,23 @@ void parser___ReduceAction169___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14341,8 +14341,8 @@ void parser___ReduceAction169___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[13] /*pdocnode2*/,  variable[14] /*tkwredefnode3*/,  variable[15] /*pvisibilitynode4*/,  variable[16] /*tkwmethnode5*/,  variable[17] /*pmethidnode6*/,  variable[18] /*psignaturenode7*/,  variable[19] /*tstringnode8*/); /*new AExternMethPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label370: while(false);
   tracehead = trace.prev;
   return;
@@ -14369,19 +14369,19 @@ void parser___ReduceAction170___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14404,8 +14404,8 @@ void parser___ReduceAction170___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwmethnode5*/,  variable[14] /*pmethidnode6*/,  variable[15] /*psignaturenode7*/,  variable[16] /*pexprnode8*/); /*new AConcreteMethPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label372: while(false);
   tracehead = trace.prev;
   return;
@@ -14432,21 +14432,21 @@ void parser___ReduceAction171___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14472,8 +14472,8 @@ void parser___ReduceAction171___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwmethnode5*/,  variable[16] /*pmethidnode6*/,  variable[17] /*psignaturenode7*/,  variable[18] /*pexprnode8*/); /*new AConcreteMethPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label374: while(false);
   tracehead = trace.prev;
   return;
@@ -14500,21 +14500,21 @@ void parser___ReduceAction172___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14537,8 +14537,8 @@ void parser___ReduceAction172___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[13] /*pvisibilitynode4*/,  variable[14] /*tkwmethnode5*/,  variable[15] /*pmethidnode6*/,  variable[16] /*psignaturenode7*/,  variable[17] /*pexprnode8*/); /*new AConcreteMethPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label376: while(false);
   tracehead = trace.prev;
   return;
@@ -14565,23 +14565,23 @@ void parser___ReduceAction173___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14607,8 +14607,8 @@ void parser___ReduceAction173___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable[13] /*pdocnode2*/,  variable[14] /*tkwredefnode3*/,  variable[15] /*pvisibilitynode4*/,  variable[16] /*tkwmethnode5*/,  variable[17] /*pmethidnode6*/,  variable[18] /*psignaturenode7*/,  variable[19] /*pexprnode8*/); /*new AConcreteMethPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label378: while(false);
   tracehead = trace.prev;
   return;
@@ -14635,17 +14635,17 @@ void parser___ReduceAction174___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14665,8 +14665,8 @@ void parser___ReduceAction174___action(val_t  self, val_t  param0) {
   variable[16] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[10] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[11] /*pvisibilitynode4*/,  variable[12] /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable[13] /*psignaturenode7*/,  variable[14] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*ppropdefnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label380: while(false);
   tracehead = trace.prev;
   return;
@@ -14693,19 +14693,19 @@ void parser___ReduceAction175___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14728,8 +14728,8 @@ void parser___ReduceAction175___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[11] /*pdocnode2*/,  variable[12] /*tkwredefnode3*/,  variable[13] /*pvisibilitynode4*/,  variable[14] /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable[15] /*psignaturenode7*/,  variable[16] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label382: while(false);
   tracehead = trace.prev;
   return;
@@ -14756,19 +14756,19 @@ void parser___ReduceAction176___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14791,8 +14791,8 @@ void parser___ReduceAction176___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwinitnode5*/,  variable[14] /*pmethidnode6*/,  variable[15] /*psignaturenode7*/,  variable[16] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label384: while(false);
   tracehead = trace.prev;
   return;
@@ -14819,21 +14819,21 @@ void parser___ReduceAction177___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14859,8 +14859,8 @@ void parser___ReduceAction177___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwinitnode5*/,  variable[16] /*pmethidnode6*/,  variable[17] /*psignaturenode7*/,  variable[18] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label386: while(false);
   tracehead = trace.prev;
   return;
@@ -14887,19 +14887,19 @@ void parser___ReduceAction178___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14919,8 +14919,8 @@ void parser___ReduceAction178___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable[14] /*psignaturenode7*/,  variable[15] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label388: while(false);
   tracehead = trace.prev;
   return;
@@ -14947,21 +14947,21 @@ void parser___ReduceAction179___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -14984,8 +14984,8 @@ void parser___ReduceAction179___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwinitnode5*/,  NIT_NULL /*null*/,  variable[16] /*psignaturenode7*/,  variable[17] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label390: while(false);
   tracehead = trace.prev;
   return;
@@ -15012,21 +15012,21 @@ void parser___ReduceAction180___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15049,8 +15049,8 @@ void parser___ReduceAction180___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[13] /*pvisibilitynode4*/,  variable[14] /*tkwinitnode5*/,  variable[15] /*pmethidnode6*/,  variable[16] /*psignaturenode7*/,  variable[17] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label392: while(false);
   tracehead = trace.prev;
   return;
@@ -15077,23 +15077,23 @@ void parser___ReduceAction181___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15119,8 +15119,8 @@ void parser___ReduceAction181___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef( variable[13] /*pdocnode2*/,  variable[14] /*tkwredefnode3*/,  variable[15] /*pvisibilitynode4*/,  variable[16] /*tkwinitnode5*/,  variable[17] /*pmethidnode6*/,  variable[18] /*psignaturenode7*/,  variable[19] /*pexprnode8*/); /*new AConcreteInitPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label394: while(false);
   tracehead = trace.prev;
   return;
@@ -15147,15 +15147,15 @@ void parser___ReduceAction182___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15175,8 +15175,8 @@ void parser___ReduceAction182___action(val_t  self, val_t  param0) {
   variable[15] = NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef( variable[9] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[10] /*pvisibilitynode4*/,  variable[11] /*tkwtypenode5*/,  variable[12] /*tclassidnode6*/,  variable[13] /*ptypenode7*/); /*new ATypePropdef*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*ppropdefnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label396: while(false);
   tracehead = trace.prev;
   return;
@@ -15203,17 +15203,17 @@ void parser___ReduceAction183___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15236,8 +15236,8 @@ void parser___ReduceAction183___action(val_t  self, val_t  param0) {
   variable[17] = NEW_ATypePropdef_parser_prod___ATypePropdef___init_atypepropdef( variable[10] /*pdocnode2*/,  variable[11] /*tkwredefnode3*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwtypenode5*/,  variable[14] /*tclassidnode6*/,  variable[15] /*ptypenode7*/); /*new ATypePropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(12)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label398: while(false);
   tracehead = trace.prev;
   return;
@@ -15264,16 +15264,16 @@ void parser___ReduceAction184___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction184___action, LOCATE_parser, 9168); nit_exit(1);}
   variable[3] =  variable[6] /*ppropdefnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(13)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(13)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label400: while(false);
   tracehead = trace.prev;
   return;
@@ -15300,19 +15300,19 @@ void parser___ReduceAction185___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15332,8 +15332,8 @@ void parser___ReduceAction185___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwmethnode5*/,  variable[14] /*pmethidnode6*/,  variable[15] /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*ppropdefnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label402: while(false);
   tracehead = trace.prev;
   return;
@@ -15360,21 +15360,21 @@ void parser___ReduceAction186___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15397,8 +15397,8 @@ void parser___ReduceAction186___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwmethnode5*/,  variable[16] /*pmethidnode6*/,  variable[17] /*psignaturenode7*/,  NIT_NULL /*null*/); /*new AExternMethPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label404: while(false);
   tracehead = trace.prev;
   return;
@@ -15425,21 +15425,21 @@ void parser___ReduceAction187___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15462,8 +15462,8 @@ void parser___ReduceAction187___action(val_t  self, val_t  param0) {
   variable[19] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[12] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[13] /*pvisibilitynode4*/,  variable[14] /*tkwmethnode5*/,  variable[15] /*pmethidnode6*/,  variable[16] /*psignaturenode7*/,  variable[17] /*tstringnode8*/); /*new AExternMethPropdef*/
   variable[18] = variable[19];
   variable[3] =  variable[18] /*ppropdefnode1*/ /*node_list=*/;
-  variable[19] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[19] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[19],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label406: while(false);
   tracehead = trace.prev;
   return;
@@ -15490,23 +15490,23 @@ void parser___ReduceAction188___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15532,8 +15532,8 @@ void parser___ReduceAction188___action(val_t  self, val_t  param0) {
   variable[21] = NEW_AExternMethPropdef_parser_prod___AExternMethPropdef___init_aexternmethpropdef( variable[13] /*pdocnode2*/,  variable[14] /*tkwredefnode3*/,  variable[15] /*pvisibilitynode4*/,  variable[16] /*tkwmethnode5*/,  variable[17] /*pmethidnode6*/,  variable[18] /*psignaturenode7*/,  variable[19] /*tstringnode8*/); /*new AExternMethPropdef*/
   variable[20] = variable[21];
   variable[3] =  variable[20] /*ppropdefnode1*/ /*node_list=*/;
-  variable[21] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[21] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[21],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label408: while(false);
   tracehead = trace.prev;
   return;
@@ -15560,19 +15560,19 @@ void parser___ReduceAction189___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15595,8 +15595,8 @@ void parser___ReduceAction189___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable[11] /*pdocnode2*/,  NIT_NULL /*null*/,  variable[12] /*pvisibilitynode4*/,  variable[13] /*tkwmethnode5*/,  variable[14] /*pmethidnode6*/,  variable[15] /*psignaturenode7*/,  variable[16] /*pexprnode8*/); /*new AConcreteMethPropdef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*ppropdefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label410: while(false);
   tracehead = trace.prev;
   return;
@@ -15623,21 +15623,21 @@ void parser___ReduceAction190___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*pdocnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*pdocnode2*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
@@ -15663,8 +15663,8 @@ void parser___ReduceAction190___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AConcreteMethPropdef_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef( variable[12] /*pdocnode2*/,  variable[13] /*tkwredefnode3*/,  variable[14] /*pvisibilitynode4*/,  variable[15] /*tkwmethnode5*/,  variable[16] /*pmethidnode6*/,  variable[17] /*psignaturenode7*/,  variable[18] /*pexprnode8*/); /*new AConcreteMethPropdef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*ppropdefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(14)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label412: while(false);
   tracehead = trace.prev;
   return;
@@ -15694,8 +15694,8 @@ void parser___ReduceAction191___action(val_t  self, val_t  param0) {
   variable[5] = NEW_APublicVisibility_parser_prod___APublicVisibility___init_apublicvisibility(); /*new APublicVisibility*/
   variable[4] = variable[5];
   variable[3] =  variable[4] /*pvisibilitynode1*/ /*node_list=*/;
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label414: while(false);
   tracehead = trace.prev;
   return;
@@ -15722,9 +15722,9 @@ void parser___ReduceAction192___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwprivatenode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwprivatenode2*/, COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
@@ -15732,8 +15732,8 @@ void parser___ReduceAction192___action(val_t  self, val_t  param0) {
   variable[8] = NEW_APrivateVisibility_parser_prod___APrivateVisibility___init_aprivatevisibility( variable[6] /*tkwprivatenode2*/); /*new APrivateVisibility*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pvisibilitynode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label416: while(false);
   tracehead = trace.prev;
   return;
@@ -15760,9 +15760,9 @@ void parser___ReduceAction193___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwprotectednode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwprotectednode2*/, COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
@@ -15770,8 +15770,8 @@ void parser___ReduceAction193___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AProtectedVisibility_parser_prod___AProtectedVisibility___init_aprotectedvisibility( variable[6] /*tkwprotectednode2*/); /*new AProtectedVisibility*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pvisibilitynode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label418: while(false);
   tracehead = trace.prev;
   return;
@@ -15798,9 +15798,9 @@ void parser___ReduceAction194___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwintrudenode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwintrudenode2*/, COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
@@ -15808,8 +15808,8 @@ void parser___ReduceAction194___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AIntrudeVisibility_parser_prod___AIntrudeVisibility___init_aintrudevisibility( variable[6] /*tkwintrudenode2*/); /*new AIntrudeVisibility*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pvisibilitynode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(15)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label420: while(false);
   tracehead = trace.prev;
   return;
@@ -15836,7 +15836,7 @@ void parser___ReduceAction195___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
@@ -15844,8 +15844,8 @@ void parser___ReduceAction195___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AIdMethid_parser_prod___AIdMethid___init_aidmethid( variable[5] /*tidnode2*/); /*new AIdMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label422: while(false);
   tracehead = trace.prev;
   return;
@@ -15872,7 +15872,7 @@ void parser___ReduceAction196___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tplusnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tplusnode2*/, COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
@@ -15880,8 +15880,8 @@ void parser___ReduceAction196___action(val_t  self, val_t  param0) {
   variable[7] = NEW_APlusMethid_parser_prod___APlusMethid___init_aplusmethid( variable[5] /*tplusnode2*/); /*new APlusMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label424: while(false);
   tracehead = trace.prev;
   return;
@@ -15908,7 +15908,7 @@ void parser___ReduceAction197___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
@@ -15916,8 +15916,8 @@ void parser___ReduceAction197___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AMinusMethid_parser_prod___AMinusMethid___init_aminusmethid( variable[5] /*tminusnode2*/); /*new AMinusMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label426: while(false);
   tracehead = trace.prev;
   return;
@@ -15944,7 +15944,7 @@ void parser___ReduceAction198___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tstarnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstarnode2*/, COLOR_TStar, ID_TStar)) /*cast TStar*/;
@@ -15952,8 +15952,8 @@ void parser___ReduceAction198___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AStarMethid_parser_prod___AStarMethid___init_astarmethid( variable[5] /*tstarnode2*/); /*new AStarMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label428: while(false);
   tracehead = trace.prev;
   return;
@@ -15980,7 +15980,7 @@ void parser___ReduceAction199___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tslashnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tslashnode2*/, COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
@@ -15988,8 +15988,8 @@ void parser___ReduceAction199___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ASlashMethid_parser_prod___ASlashMethid___init_aslashmethid( variable[5] /*tslashnode2*/); /*new ASlashMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label430: while(false);
   tracehead = trace.prev;
   return;
@@ -16016,7 +16016,7 @@ void parser___ReduceAction200___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tpercentnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tpercentnode2*/, COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
@@ -16024,8 +16024,8 @@ void parser___ReduceAction200___action(val_t  self, val_t  param0) {
   variable[7] = NEW_APercentMethid_parser_prod___APercentMethid___init_apercentmethid( variable[5] /*tpercentnode2*/); /*new APercentMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label432: while(false);
   tracehead = trace.prev;
   return;
@@ -16052,7 +16052,7 @@ void parser___ReduceAction201___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*teqnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*teqnode2*/, COLOR_TEq, ID_TEq)) /*cast TEq*/;
@@ -16060,8 +16060,8 @@ void parser___ReduceAction201___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AEqMethid_parser_prod___AEqMethid___init_aeqmethid( variable[5] /*teqnode2*/); /*new AEqMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label434: while(false);
   tracehead = trace.prev;
   return;
@@ -16088,7 +16088,7 @@ void parser___ReduceAction202___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tnenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tnenode2*/, COLOR_TNe, ID_TNe)) /*cast TNe*/;
@@ -16096,8 +16096,8 @@ void parser___ReduceAction202___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ANeMethid_parser_prod___ANeMethid___init_anemethid( variable[5] /*tnenode2*/); /*new ANeMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label436: while(false);
   tracehead = trace.prev;
   return;
@@ -16124,7 +16124,7 @@ void parser___ReduceAction203___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tlenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tlenode2*/, COLOR_TLe, ID_TLe)) /*cast TLe*/;
@@ -16132,8 +16132,8 @@ void parser___ReduceAction203___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ALeMethid_parser_prod___ALeMethid___init_alemethid( variable[5] /*tlenode2*/); /*new ALeMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label438: while(false);
   tracehead = trace.prev;
   return;
@@ -16160,7 +16160,7 @@ void parser___ReduceAction204___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tgenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tgenode2*/, COLOR_TGe, ID_TGe)) /*cast TGe*/;
@@ -16168,8 +16168,8 @@ void parser___ReduceAction204___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AGeMethid_parser_prod___AGeMethid___init_agemethid( variable[5] /*tgenode2*/); /*new AGeMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label440: while(false);
   tracehead = trace.prev;
   return;
@@ -16196,7 +16196,7 @@ void parser___ReduceAction205___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tltnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tltnode2*/, COLOR_TLt, ID_TLt)) /*cast TLt*/;
@@ -16204,8 +16204,8 @@ void parser___ReduceAction205___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ALtMethid_parser_prod___ALtMethid___init_altmethid( variable[5] /*tltnode2*/); /*new ALtMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label442: while(false);
   tracehead = trace.prev;
   return;
@@ -16232,7 +16232,7 @@ void parser___ReduceAction206___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tgtnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tgtnode2*/, COLOR_TGt, ID_TGt)) /*cast TGt*/;
@@ -16240,8 +16240,8 @@ void parser___ReduceAction206___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AGtMethid_parser_prod___AGtMethid___init_agtmethid( variable[5] /*tgtnode2*/); /*new AGtMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label444: while(false);
   tracehead = trace.prev;
   return;
@@ -16268,9 +16268,9 @@ void parser___ReduceAction207___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tobranode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tobranode2*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
@@ -16281,8 +16281,8 @@ void parser___ReduceAction207___action(val_t  self, val_t  param0) {
   variable[9] = NEW_ABraMethid_parser_prod___ABraMethid___init_abramethid( variable[6] /*tobranode2*/,  variable[7] /*tcbranode3*/); /*new ABraMethid*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pmethidnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label446: while(false);
   tracehead = trace.prev;
   return;
@@ -16309,7 +16309,7 @@ void parser___ReduceAction208___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tstarshipnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstarshipnode2*/, COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
@@ -16317,8 +16317,8 @@ void parser___ReduceAction208___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AStarshipMethid_parser_prod___AStarshipMethid___init_astarshipmethid( variable[5] /*tstarshipnode2*/); /*new AStarshipMethid*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pmethidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label448: while(false);
   tracehead = trace.prev;
   return;
@@ -16345,9 +16345,9 @@ void parser___ReduceAction209___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
@@ -16358,8 +16358,8 @@ void parser___ReduceAction209___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AAssignMethid_parser_prod___AAssignMethid___init_aassignmethid( variable[6] /*tidnode2*/,  variable[7] /*tassignnode3*/); /*new AAssignMethid*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pmethidnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label450: while(false);
   tracehead = trace.prev;
   return;
@@ -16386,11 +16386,11 @@ void parser___ReduceAction210___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tobranode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tobranode2*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
@@ -16404,8 +16404,8 @@ void parser___ReduceAction210___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ABraassignMethid_parser_prod___ABraassignMethid___init_abraassignmethid( variable[7] /*tobranode2*/,  variable[8] /*tcbranode3*/,  variable[9] /*tassignnode4*/); /*new ABraassignMethid*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pmethidnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(16)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label452: while(false);
   tracehead = trace.prev;
   return;
@@ -16432,7 +16432,7 @@ void parser___ReduceAction211___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -16441,20 +16441,20 @@ void parser___ReduceAction211___action(val_t  self, val_t  param0) {
   variable[7] =  variable[4] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction211___action, LOCATE_parser, 9753); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[6] =  variable[7] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[7] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[7] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[5] /*listnode2*/,  NIT_NULL /*null*/,  variable[6] /*listnode5*/); /*new ASignature*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*psignaturenode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label454: while(false);
   tracehead = trace.prev;
   return;
@@ -16481,9 +16481,9 @@ void parser___ReduceAction212___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -16492,32 +16492,32 @@ void parser___ReduceAction212___action(val_t  self, val_t  param0) {
   variable[8] =  variable[5] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction212___action, LOCATE_parser, 9781); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction212___action, LOCATE_parser, 9790); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode6*/)( variable[7] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode6*/,  variable[9] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode6*/)( variable[7] /*listnode6*/,  variable[9] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[6] /*listnode3*/,  NIT_NULL /*null*/,  variable[7] /*listnode6*/); /*new ASignature*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*psignaturenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label456: while(false);
   tracehead = trace.prev;
   return;
@@ -16544,9 +16544,9 @@ void parser___ReduceAction213___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -16558,20 +16558,20 @@ void parser___ReduceAction213___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction213___action, LOCATE_parser, 9820); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[6] /*listnode2*/,  variable[8] /*ptypenode3*/,  variable[7] /*listnode5*/); /*new ASignature*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*psignaturenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label458: while(false);
   tracehead = trace.prev;
   return;
@@ -16598,11 +16598,11 @@ void parser___ReduceAction214___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -16611,13 +16611,13 @@ void parser___ReduceAction214___action(val_t  self, val_t  param0) {
   variable[9] =  variable[6] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction214___action, LOCATE_parser, 9849); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode2*/)( variable[9] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode3*/)( variable[7] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode3*/,  variable[9] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode3*/)( variable[7] /*listnode3*/,  variable[9] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] =  variable[5] /*nodearraylist2*/;
@@ -16626,20 +16626,20 @@ void parser___ReduceAction214___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction214___action, LOCATE_parser, 9860); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[7] /*listnode3*/,  variable[10] /*ptypenode4*/,  variable[8] /*listnode6*/); /*new ASignature*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*psignaturenode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label460: while(false);
   tracehead = trace.prev;
   return;
@@ -16666,7 +16666,7 @@ void parser___ReduceAction215___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -16675,8 +16675,8 @@ void parser___ReduceAction215___action(val_t  self, val_t  param0) {
   variable[8] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[5] /*listnode2*/,  NIT_NULL /*null*/,  variable[6] /*listnode4*/); /*new ASignature*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*psignaturenode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label462: while(false);
   tracehead = trace.prev;
   return;
@@ -16703,9 +16703,9 @@ void parser___ReduceAction216___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -16714,20 +16714,20 @@ void parser___ReduceAction216___action(val_t  self, val_t  param0) {
   variable[8] =  variable[5] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction216___action, LOCATE_parser, 9906); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[6] /*listnode3*/,  NIT_NULL /*null*/,  variable[7] /*listnode5*/); /*new ASignature*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*psignaturenode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label464: while(false);
   tracehead = trace.prev;
   return;
@@ -16754,9 +16754,9 @@ void parser___ReduceAction217___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -16768,8 +16768,8 @@ void parser___ReduceAction217___action(val_t  self, val_t  param0) {
   variable[10] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[6] /*listnode2*/,  variable[8] /*ptypenode3*/,  variable[7] /*listnode4*/); /*new ASignature*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*psignaturenode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label466: while(false);
   tracehead = trace.prev;
   return;
@@ -16796,11 +16796,11 @@ void parser___ReduceAction218___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -16809,13 +16809,13 @@ void parser___ReduceAction218___action(val_t  self, val_t  param0) {
   variable[9] =  variable[6] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction218___action, LOCATE_parser, 9956); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode2*/)( variable[9] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode3*/)( variable[7] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[7] =  variable[9] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode3*/,  variable[9] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode3*/)( variable[7] /*listnode3*/,  variable[9] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] =  variable[5] /*nodearraylist2*/;
@@ -16824,8 +16824,8 @@ void parser___ReduceAction218___action(val_t  self, val_t  param0) {
   variable[12] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[7] /*listnode3*/,  variable[10] /*ptypenode4*/,  variable[8] /*listnode5*/); /*new ASignature*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*psignaturenode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(17)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label468: while(false);
   tracehead = trace.prev;
   return;
@@ -16859,8 +16859,8 @@ void parser___ReduceAction219___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[4] /*listnode2*/,  NIT_NULL /*null*/,  variable[5] /*listnode4*/); /*new ASignature*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*psignaturenode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label470: while(false);
   tracehead = trace.prev;
   return;
@@ -16887,7 +16887,7 @@ void parser___ReduceAction220___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -16896,20 +16896,20 @@ void parser___ReduceAction220___action(val_t  self, val_t  param0) {
   variable[7] =  variable[4] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction220___action, LOCATE_parser, 10002); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[5] /*listnode3*/)( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[5] =  variable[7] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*listnode3*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[5] /*listnode3*/)( variable[5] /*listnode3*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[5] /*listnode3*/,  NIT_NULL /*null*/,  variable[6] /*listnode5*/); /*new ASignature*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*psignaturenode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label472: while(false);
   tracehead = trace.prev;
   return;
@@ -16936,7 +16936,7 @@ void parser___ReduceAction221___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -16948,8 +16948,8 @@ void parser___ReduceAction221___action(val_t  self, val_t  param0) {
   variable[9] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[5] /*listnode2*/,  variable[7] /*ptypenode3*/,  variable[6] /*listnode4*/); /*new ASignature*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*psignaturenode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label474: while(false);
   tracehead = trace.prev;
   return;
@@ -16976,9 +16976,9 @@ void parser___ReduceAction222___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -16987,13 +16987,13 @@ void parser___ReduceAction222___action(val_t  self, val_t  param0) {
   variable[8] =  variable[5] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction222___action, LOCATE_parser, 10050); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] =  variable[4] /*nodearraylist2*/;
@@ -17002,8 +17002,8 @@ void parser___ReduceAction222___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ASignature_parser_prod___ASignature___init_asignature( variable[6] /*listnode3*/,  variable[9] /*ptypenode4*/,  variable[7] /*listnode5*/); /*new ASignature*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*psignaturenode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(18)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label476: while(false);
   tracehead = trace.prev;
   return;
@@ -17030,28 +17030,28 @@ void parser___ReduceAction223___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
   variable[10] =  variable[6] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable[10] /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction223___action, LOCATE_parser, 10082); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pparamnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pparamnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pparamnode1*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pparamnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pparamnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pparamnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pparamnode1*/)( variable[10] /*pparamnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode2*/,  variable[10] /*pparamnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode2*/)( variable[9] /*listnode2*/,  variable[10] /*pparamnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[9] /*listnode2*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(19)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(19)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label478: while(false);
   tracehead = trace.prev;
   return;
@@ -17078,17 +17078,17 @@ void parser___ReduceAction224___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -17098,22 +17098,22 @@ void parser___ReduceAction224___action(val_t  self, val_t  param0) {
   variable[12] =  variable[6] /*nodearraylist4*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction224___action, LOCATE_parser, 10106); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pparamnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pparamnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pparamnode1*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pparamnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pparamnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pparamnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pparamnode1*/)( variable[11] /*pparamnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode3*/,  variable[11] /*pparamnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[11] /*pparamnode1*/) /*AbstractArray::add*/;
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode3*/)( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[10] /*listnode3*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(19)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(19)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label480: while(false);
   tracehead = trace.prev;
   return;
@@ -17140,17 +17140,17 @@ void parser___ReduceAction225___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*listnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(19)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(19)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label482: while(false);
   tracehead = trace.prev;
   return;
@@ -17177,18 +17177,18 @@ void parser___ReduceAction226___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[4] /*nodearraylist3*/;
   variable[8] = TAG_Bool(( variable[7] /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction226___action, LOCATE_parser, 10145); nit_exit(1);}
   variable[3] =  variable[7] /*pparamnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(20)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(20)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label484: while(false);
   tracehead = trace.prev;
   return;
@@ -17215,7 +17215,7 @@ void parser___ReduceAction227___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
@@ -17223,8 +17223,8 @@ void parser___ReduceAction227___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AParam_parser_prod___AParam___init_aparam( variable[5] /*tidnode2*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AParam*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pparamnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label486: while(false);
   tracehead = trace.prev;
   return;
@@ -17251,9 +17251,9 @@ void parser___ReduceAction228___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
@@ -17264,8 +17264,8 @@ void parser___ReduceAction228___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AParam_parser_prod___AParam___init_aparam( variable[6] /*tidnode2*/,  variable[7] /*ptypenode3*/,  NIT_NULL /*null*/); /*new AParam*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pparamnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label488: while(false);
   tracehead = trace.prev;
   return;
@@ -17292,11 +17292,11 @@ void parser___ReduceAction229___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
@@ -17310,8 +17310,8 @@ void parser___ReduceAction229___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AParam_parser_prod___AParam___init_aparam( variable[7] /*tidnode2*/,  variable[8] /*ptypenode3*/,  variable[9] /*tdotdotdotnode4*/); /*new AParam*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pparamnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(21)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label490: while(false);
   tracehead = trace.prev;
   return;
@@ -17338,27 +17338,27 @@ void parser___ReduceAction230___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
   variable[7] =  variable[4] /*nodearraylist2*/;
   variable[8] = TAG_Bool(( variable[7] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction230___action, LOCATE_parser, 10223); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode2*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode2*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode2*/)( variable[6] /*listnode2*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode2=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode2*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode2*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode2*/)( variable[6] /*listnode2*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[6] /*listnode2*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(22)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(22)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label492: while(false);
   tracehead = trace.prev;
   return;
@@ -17385,15 +17385,15 @@ void parser___ReduceAction231___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*tkwwithnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*tkwwithnode2*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
@@ -17407,8 +17407,8 @@ void parser___ReduceAction231___action(val_t  self, val_t  param0) {
   variable[13] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl( variable[9] /*tkwwithnode2*/,  NIT_NULL /*null*/,  variable[10] /*tidnode4*/,  variable[11] /*psignaturenode5*/,  NIT_NULL /*null*/); /*new AClosureDecl*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pclosuredeclnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label494: while(false);
   tracehead = trace.prev;
   return;
@@ -17435,17 +17435,17 @@ void parser___ReduceAction232___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*tkwwithnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*tkwwithnode2*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
@@ -17462,8 +17462,8 @@ void parser___ReduceAction232___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl( variable[10] /*tkwwithnode2*/,  variable[11] /*tkwbreaknode3*/,  variable[12] /*tidnode4*/,  variable[13] /*psignaturenode5*/,  NIT_NULL /*null*/); /*new AClosureDecl*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pclosuredeclnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label496: while(false);
   tracehead = trace.prev;
   return;
@@ -17490,19 +17490,19 @@ void parser___ReduceAction233___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*tkwwithnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*tkwwithnode2*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
@@ -17519,8 +17519,8 @@ void parser___ReduceAction233___action(val_t  self, val_t  param0) {
   variable[16] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl( variable[11] /*tkwwithnode2*/,  NIT_NULL /*null*/,  variable[12] /*tidnode4*/,  variable[13] /*psignaturenode5*/,  variable[14] /*pexprnode6*/); /*new AClosureDecl*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pclosuredeclnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label498: while(false);
   tracehead = trace.prev;
   return;
@@ -17547,21 +17547,21 @@ void parser___ReduceAction234___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*tkwwithnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*tkwwithnode2*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
@@ -17581,8 +17581,8 @@ void parser___ReduceAction234___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AClosureDecl_parser_prod___AClosureDecl___init_aclosuredecl( variable[12] /*tkwwithnode2*/,  variable[13] /*tkwbreaknode3*/,  variable[14] /*tidnode4*/,  variable[15] /*psignaturenode5*/,  variable[16] /*pexprnode6*/); /*new AClosureDecl*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pclosuredeclnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(23)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label500: while(false);
   tracehead = trace.prev;
   return;
@@ -17609,7 +17609,7 @@ void parser___ReduceAction235___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -17619,8 +17619,8 @@ void parser___ReduceAction235___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AType_parser_prod___AType___init_atype( variable[6] /*tclassidnode2*/,  variable[5] /*listnode3*/); /*new AType*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*ptypenode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(24)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(24)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label502: while(false);
   tracehead = trace.prev;
   return;
@@ -17647,17 +17647,17 @@ void parser___ReduceAction236___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -17667,20 +17667,20 @@ void parser___ReduceAction236___action(val_t  self, val_t  param0) {
   variable[12] =  variable[6] /*nodearraylist4*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction236___action, LOCATE_parser, 10395); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode4*/)( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_AType_parser_prod___AType___init_atype( variable[11] /*tclassidnode2*/,  variable[10] /*listnode4*/); /*new AType*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*ptypenode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(24)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(24)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label504: while(false);
   tracehead = trace.prev;
   return;
@@ -17707,20 +17707,20 @@ void parser___ReduceAction237___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction237___action, LOCATE_parser, 10420); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ptypenode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*ptypenode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*ptypenode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*ptypenode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ptypenode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ptypenode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ptypenode1*/)( variable[6] /*ptypenode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*ptypenode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*ptypenode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label506: while(false);
   tracehead = trace.prev;
   return;
@@ -17747,9 +17747,9 @@ void parser___ReduceAction238___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -17759,22 +17759,22 @@ void parser___ReduceAction238___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction238___action, LOCATE_parser, 10440); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*ptypenode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*ptypenode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*ptypenode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*ptypenode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*ptypenode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*ptypenode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*ptypenode1*/)( variable[7] /*ptypenode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[7] /*ptypenode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*ptypenode1*/) /*AbstractArray::add*/;
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(25)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label508: while(false);
   tracehead = trace.prev;
   return;
@@ -17801,18 +17801,18 @@ void parser___ReduceAction239___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[4] /*nodearraylist3*/;
   variable[8] = TAG_Bool(( variable[7] /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable[7] /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction239___action, LOCATE_parser, 10465); nit_exit(1);}
   variable[3] =  variable[7] /*ptypenode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(26)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(26)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label510: while(false);
   tracehead = trace.prev;
   return;
@@ -17839,18 +17839,18 @@ void parser___ReduceAction240___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[4] /*nodearraylist3*/;
   variable[8] = TAG_Bool(( variable[7] /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable[7] /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction240___action, LOCATE_parser, 10480); nit_exit(1);}
   variable[3] =  variable[7] /*ptypenode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(27)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label512: while(false);
   tracehead = trace.prev;
   return;
@@ -17877,14 +17877,14 @@ void parser___ReduceAction241___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction241___action, LOCATE_parser, 10493); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label514: while(false);
   tracehead = trace.prev;
   return;
@@ -17911,28 +17911,28 @@ void parser___ReduceAction242___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
   variable[9] =  variable[6] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction242___action, LOCATE_parser, 10510); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pexprnode2*/)( variable[9] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode3*/,  variable[9] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  variable[9] /*pexprnode2*/) /*AbstractArray::add*/;
   }
   variable[11] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[8] /*listnode3*/); /*new ABlockExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label516: while(false);
   tracehead = trace.prev;
   return;
@@ -17959,15 +17959,15 @@ void parser___ReduceAction243___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -17977,24 +17977,24 @@ void parser___ReduceAction243___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction243___action, LOCATE_parser, 10536); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode4*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
   }
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[9] =  variable[11] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[9] /*listnode4*/); /*new ABlockExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label518: while(false);
   tracehead = trace.prev;
   return;
@@ -18021,17 +18021,17 @@ void parser___ReduceAction244___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
   variable[8] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[6] /*listnode2*/); /*new ABlockExpr*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label520: while(false);
   tracehead = trace.prev;
   return;
@@ -18058,15 +18058,15 @@ void parser___ReduceAction245___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[7] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[5] /*listnode2*/); /*new ABlockExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(28)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label522: while(false);
   tracehead = trace.prev;
   return;
@@ -18093,16 +18093,16 @@ void parser___ReduceAction246___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist2*/;
   variable[7] = TAG_Bool(( variable[6] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction246___action, LOCATE_parser, 10594); nit_exit(1);}
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(29)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label524: while(false);
   tracehead = trace.prev;
   return;
@@ -18129,14 +18129,14 @@ void parser___ReduceAction247___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction247___action, LOCATE_parser, 10607); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label526: while(false);
   tracehead = trace.prev;
   return;
@@ -18163,14 +18163,14 @@ void parser___ReduceAction248___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction248___action, LOCATE_parser, 10620); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label528: while(false);
   tracehead = trace.prev;
   return;
@@ -18197,7 +18197,7 @@ void parser___ReduceAction249___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
@@ -18205,8 +18205,8 @@ void parser___ReduceAction249___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr( variable[5] /*tkwreturnnode2*/,  NIT_NULL /*null*/); /*new AReturnExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label530: while(false);
   tracehead = trace.prev;
   return;
@@ -18233,9 +18233,9 @@ void parser___ReduceAction250___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
@@ -18246,8 +18246,8 @@ void parser___ReduceAction250___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr( variable[6] /*tkwreturnnode2*/,  variable[7] /*pexprnode3*/); /*new AReturnExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label532: while(false);
   tracehead = trace.prev;
   return;
@@ -18274,7 +18274,7 @@ void parser___ReduceAction251___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwbreaknode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwbreaknode2*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
@@ -18282,8 +18282,8 @@ void parser___ReduceAction251___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr( variable[5] /*tkwbreaknode2*/,  NIT_NULL /*null*/); /*new ABreakExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label534: while(false);
   tracehead = trace.prev;
   return;
@@ -18310,9 +18310,9 @@ void parser___ReduceAction252___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwbreaknode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwbreaknode2*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
@@ -18323,8 +18323,8 @@ void parser___ReduceAction252___action(val_t  self, val_t  param0) {
   variable[9] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr( variable[6] /*tkwbreaknode2*/,  variable[7] /*pexprnode3*/); /*new ABreakExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label536: while(false);
   tracehead = trace.prev;
   return;
@@ -18351,7 +18351,7 @@ void parser___ReduceAction253___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwabortnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwabortnode2*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
@@ -18359,8 +18359,8 @@ void parser___ReduceAction253___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr( variable[5] /*tkwabortnode2*/); /*new AAbortExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label538: while(false);
   tracehead = trace.prev;
   return;
@@ -18387,7 +18387,7 @@ void parser___ReduceAction254___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwcontinuenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwcontinuenode2*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
@@ -18395,8 +18395,8 @@ void parser___ReduceAction254___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr( variable[5] /*tkwcontinuenode2*/,  NIT_NULL /*null*/); /*new AContinueExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label540: while(false);
   tracehead = trace.prev;
   return;
@@ -18423,9 +18423,9 @@ void parser___ReduceAction255___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwcontinuenode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwcontinuenode2*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
@@ -18436,8 +18436,8 @@ void parser___ReduceAction255___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr( variable[6] /*tkwcontinuenode2*/,  variable[7] /*pexprnode3*/); /*new AContinueExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label542: while(false);
   tracehead = trace.prev;
   return;
@@ -18464,14 +18464,14 @@ void parser___ReduceAction256___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction256___action, LOCATE_parser, 10760); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label544: while(false);
   tracehead = trace.prev;
   return;
@@ -18498,14 +18498,14 @@ void parser___ReduceAction257___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction257___action, LOCATE_parser, 10773); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label546: while(false);
   tracehead = trace.prev;
   return;
@@ -18532,14 +18532,14 @@ void parser___ReduceAction258___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction258___action, LOCATE_parser, 10786); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label548: while(false);
   tracehead = trace.prev;
   return;
@@ -18566,14 +18566,14 @@ void parser___ReduceAction259___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction259___action, LOCATE_parser, 10799); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label550: while(false);
   tracehead = trace.prev;
   return;
@@ -18600,14 +18600,14 @@ void parser___ReduceAction260___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction260___action, LOCATE_parser, 10812); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label552: while(false);
   tracehead = trace.prev;
   return;
@@ -18634,15 +18634,15 @@ void parser___ReduceAction261___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -18657,20 +18657,20 @@ void parser___ReduceAction261___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist5*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction261___action, LOCATE_parser, 10835); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[9] =  variable[13] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[11] /*pexprnode2*/,  variable[12] /*tidnode3*/,  variable[9] /*listnode5*/,  variable[10] /*listnode6*/); /*new ACallExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label554: while(false);
   tracehead = trace.prev;
   return;
@@ -18697,9 +18697,9 @@ void parser___ReduceAction262___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -18713,20 +18713,20 @@ void parser___ReduceAction262___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction262___action, LOCATE_parser, 10868); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[6] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[8] /*pexprnode2*/,  variable[9] /*tidnode3*/,  variable[6] /*listnode5*/,  variable[7] /*listnode6*/); /*new ACallExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label556: while(false);
   tracehead = trace.prev;
   return;
@@ -18753,17 +18753,17 @@ void parser___ReduceAction263___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -18778,32 +18778,32 @@ void parser___ReduceAction263___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction263___action, LOCATE_parser, 10905); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction263___action, LOCATE_parser, 10914); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label558: while(false);
   tracehead = trace.prev;
   return;
@@ -18830,11 +18830,11 @@ void parser___ReduceAction264___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -18848,32 +18848,32 @@ void parser___ReduceAction264___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction264___action, LOCATE_parser, 10948); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction264___action, LOCATE_parser, 10957); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label560: while(false);
   tracehead = trace.prev;
   return;
@@ -18900,9 +18900,9 @@ void parser___ReduceAction265___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -18912,20 +18912,20 @@ void parser___ReduceAction265___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction265___action, LOCATE_parser, 10987); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable[7] /*tkwsupernode3*/,  variable[6] /*listnode5*/); /*new ASuperExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label562: while(false);
   tracehead = trace.prev;
   return;
@@ -18952,11 +18952,11 @@ void parser___ReduceAction266___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -18969,20 +18969,20 @@ void parser___ReduceAction266___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction266___action, LOCATE_parser, 11019); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( variable[8] /*pqualifiednode2*/,  variable[9] /*tkwsupernode3*/,  variable[7] /*listnode5*/); /*new ASuperExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label564: while(false);
   tracehead = trace.prev;
   return;
@@ -19009,15 +19009,15 @@ void parser___ReduceAction267___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -19030,20 +19030,20 @@ void parser___ReduceAction267___action(val_t  self, val_t  param0) {
   variable[12] =  variable[4] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction267___action, LOCATE_parser, 11053); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[10] /*pexprnode2*/,  variable[11] /*tkwinitnode3*/,  variable[9] /*listnode5*/); /*new AInitExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label566: while(false);
   tracehead = trace.prev;
   return;
@@ -19070,9 +19070,9 @@ void parser___ReduceAction268___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -19084,20 +19084,20 @@ void parser___ReduceAction268___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction268___action, LOCATE_parser, 11084); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[6] =  variable[9] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[7] /*pexprnode2*/,  variable[8] /*tkwinitnode3*/,  variable[6] /*listnode5*/); /*new AInitExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(30)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label568: while(false);
   tracehead = trace.prev;
   return;
@@ -19124,20 +19124,20 @@ void parser___ReduceAction269___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pclosuredefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pclosuredefnode1*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction269___action, LOCATE_parser, 11110); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclosuredefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclosuredefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pclosuredefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pclosuredefnode1*/)( variable[6] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pclosuredefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pclosuredefnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(31)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(31)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label570: while(false);
   tracehead = trace.prev;
   return;
@@ -19164,9 +19164,9 @@ void parser___ReduceAction270___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -19176,22 +19176,22 @@ void parser___ReduceAction270___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction270___action, LOCATE_parser, 11130); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pclosuredefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pclosuredefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*pclosuredefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*pclosuredefnode1*/)( variable[7] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[7] /*pclosuredefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*pclosuredefnode1*/) /*AbstractArray::add*/;
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(31)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(31)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label572: while(false);
   tracehead = trace.prev;
   return;
@@ -19218,11 +19218,11 @@ void parser___ReduceAction271___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -19238,8 +19238,8 @@ void parser___ReduceAction271___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[8] /*tkwwithnode2*/,  variable[7] /*listnode3*/,  variable[9] /*tkwdonode4*/,  variable[10] /*pexprnode5*/); /*new AClosureDef*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label574: while(false);
   tracehead = trace.prev;
   return;
@@ -19266,13 +19266,13 @@ void parser___ReduceAction272___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -19282,13 +19282,13 @@ void parser___ReduceAction272___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction272___action, LOCATE_parser, 11185); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[5] /*nodearraylist3*/;
@@ -19300,8 +19300,8 @@ void parser___ReduceAction272___action(val_t  self, val_t  param0) {
   variable[14] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[9] /*tkwwithnode2*/,  variable[8] /*listnode4*/,  variable[11] /*tkwdonode5*/,  variable[12] /*pexprnode6*/); /*new AClosureDef*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(32)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label576: while(false);
   tracehead = trace.prev;
   return;
@@ -19328,15 +19328,15 @@ void parser___ReduceAction273___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -19351,17 +19351,17 @@ void parser___ReduceAction273___action(val_t  self, val_t  param0) {
   variable[13] =  variable[5] /*nodearraylist4*/;
   variable[14] = TAG_Bool(( variable[13] /*pexprnode6*/==NIT_NULL) || VAL_ISA( variable[13] /*pexprnode6*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction273___action, LOCATE_parser, 11225); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pexprnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pexprnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*pexprnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pexprnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*pexprnode6*/,COLOR_kernel___Object_____eqeq))( variable[13] /*pexprnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*pexprnode6*/ ==  NIT_NULL /*null*/) || (( variable[13] /*pexprnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*pexprnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*pexprnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*pexprnode6*/)( variable[13] /*pexprnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[12] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[12] /*listnode7*/,  variable[13] /*pexprnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[12] /*listnode7*/)( variable[12] /*listnode7*/,  variable[13] /*pexprnode6*/) /*AbstractArray::add*/;
   }
   variable[15] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[12] /*listnode7*/); /*new ABlockExpr*/
   variable[14] = variable[15];
   variable[16] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[10] /*tkwwithnode2*/,  variable[9] /*listnode3*/,  variable[11] /*tkwdonode4*/,  variable[14] /*pexprnode5*/); /*new AClosureDef*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label578: while(false);
   tracehead = trace.prev;
   return;
@@ -19388,17 +19388,17 @@ void parser___ReduceAction274___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -19416,17 +19416,17 @@ void parser___ReduceAction274___action(val_t  self, val_t  param0) {
   variable[15] =  variable[5] /*nodearraylist5*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode7*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode7*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction274___action, LOCATE_parser, 11263); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pexprnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pexprnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*pexprnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pexprnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*pexprnode6*/,COLOR_kernel___Object_____eqeq))( variable[14] /*pexprnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*pexprnode6*/ ==  NIT_NULL /*null*/) || (( variable[14] /*pexprnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*pexprnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*pexprnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*pexprnode6*/)( variable[14] /*pexprnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[13] /*listnode8*/,  variable[14] /*pexprnode6*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[14] /*pexprnode6*/) /*AbstractArray::add*/;
   }
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode7*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode7*/)( variable[15] /*listnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___Collection___is_empty))( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[13] /*listnode8*/)( variable[13] /*listnode8*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[13] =  variable[15] /*listnode7*/ /*listnode8=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[13] /*listnode8*/,COLOR_abstract_collection___IndexedCollection___append))( variable[13] /*listnode8*/,  variable[15] /*listnode7*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[13] /*listnode8*/)( variable[13] /*listnode8*/,  variable[15] /*listnode7*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[13] /*listnode8*/); /*new ABlockExpr*/
@@ -19434,8 +19434,8 @@ void parser___ReduceAction274___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[11] /*tkwwithnode2*/,  variable[10] /*listnode3*/,  variable[12] /*tkwdonode4*/,  variable[16] /*pexprnode5*/); /*new AClosureDef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label580: while(false);
   tracehead = trace.prev;
   return;
@@ -19462,17 +19462,17 @@ void parser___ReduceAction275___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -19482,13 +19482,13 @@ void parser___ReduceAction275___action(val_t  self, val_t  param0) {
   variable[12] =  variable[8] /*nodearraylist2*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction275___action, LOCATE_parser, 11303); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode4*/)( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] =  variable[7] /*nodearraylist3*/;
@@ -19499,17 +19499,17 @@ void parser___ReduceAction275___action(val_t  self, val_t  param0) {
   variable[15] =  variable[5] /*nodearraylist5*/;
   variable[16] = TAG_Bool(( variable[15] /*pexprnode7*/==NIT_NULL) || VAL_ISA( variable[15] /*pexprnode7*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction275___action, LOCATE_parser, 11315); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pexprnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pexprnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*pexprnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pexprnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*pexprnode7*/,COLOR_kernel___Object_____eqeq))( variable[15] /*pexprnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*pexprnode7*/ ==  NIT_NULL /*null*/) || (( variable[15] /*pexprnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*pexprnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*pexprnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*pexprnode7*/)( variable[15] /*pexprnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[14] /*listnode8*/,COLOR_abstract_collection___SimpleCollection___add))( variable[14] /*listnode8*/,  variable[15] /*pexprnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[14] /*listnode8*/)( variable[14] /*listnode8*/,  variable[15] /*pexprnode7*/) /*AbstractArray::add*/;
   }
   variable[17] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[14] /*listnode8*/); /*new ABlockExpr*/
   variable[16] = variable[17];
   variable[18] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[11] /*tkwwithnode2*/,  variable[10] /*listnode4*/,  variable[13] /*tkwdonode5*/,  variable[16] /*pexprnode6*/); /*new AClosureDef*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label582: while(false);
   tracehead = trace.prev;
   return;
@@ -19536,19 +19536,19 @@ void parser___ReduceAction276___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -19558,13 +19558,13 @@ void parser___ReduceAction276___action(val_t  self, val_t  param0) {
   variable[13] =  variable[9] /*nodearraylist2*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction276___action, LOCATE_parser, 11349); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode3*/)( variable[13] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode4*/)( variable[11] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[11] =  variable[13] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  variable[13] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] =  variable[8] /*nodearraylist3*/;
@@ -19578,17 +19578,17 @@ void parser___ReduceAction276___action(val_t  self, val_t  param0) {
   variable[17] =  variable[5] /*nodearraylist6*/;
   variable[18] = TAG_Bool(( variable[17] /*listnode8*/==NIT_NULL) || VAL_ISA( variable[17] /*listnode8*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[18])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction276___action, LOCATE_parser, 11363); nit_exit(1);}
-  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pexprnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pexprnode7*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pexprnode7*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pexprnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pexprnode7*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pexprnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pexprnode7*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pexprnode7*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pexprnode7*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pexprnode7*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pexprnode7*/)( variable[16] /*pexprnode7*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[18])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___SimpleCollection___add))( variable[15] /*listnode9*/,  variable[16] /*pexprnode7*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[15] /*listnode9*/)( variable[15] /*listnode9*/,  variable[16] /*pexprnode7*/) /*AbstractArray::add*/;
   }
-  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[17] /*listnode8*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*listnode8*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*listnode8*/,COLOR_kernel___Object_____eqeq))( variable[17] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[18] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*listnode8*/ ==  NIT_NULL /*null*/) || (( variable[17] /*listnode8*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*listnode8*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*listnode8*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*listnode8*/)( variable[17] /*listnode8*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[18])) { /*if*/
-    variable[18] = ((array___AbstractArray___is_empty_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___Collection___is_empty))( variable[15] /*listnode9*/) /*AbstractArray::is_empty*/;
+    variable[18] = CALL_abstract_collection___Collection___is_empty( variable[15] /*listnode9*/)( variable[15] /*listnode9*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[18])) { /*if*/
       variable[15] =  variable[17] /*listnode8*/ /*listnode9=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[15] /*listnode9*/,COLOR_abstract_collection___IndexedCollection___append))( variable[15] /*listnode9*/,  variable[17] /*listnode8*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[15] /*listnode9*/)( variable[15] /*listnode9*/,  variable[17] /*listnode8*/) /*IndexedCollection::append*/;
     }
   }
   variable[19] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[15] /*listnode9*/); /*new ABlockExpr*/
@@ -19596,8 +19596,8 @@ void parser___ReduceAction276___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[12] /*tkwwithnode2*/,  variable[11] /*listnode4*/,  variable[14] /*tkwdonode5*/,  variable[18] /*pexprnode6*/); /*new AClosureDef*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label584: while(false);
   tracehead = trace.prev;
   return;
@@ -19624,11 +19624,11 @@ void parser___ReduceAction277___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -19641,8 +19641,8 @@ void parser___ReduceAction277___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[8] /*tkwwithnode2*/,  variable[7] /*listnode3*/,  variable[9] /*tkwdonode4*/,  NIT_NULL /*null*/); /*new AClosureDef*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label586: while(false);
   tracehead = trace.prev;
   return;
@@ -19669,13 +19669,13 @@ void parser___ReduceAction278___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -19685,13 +19685,13 @@ void parser___ReduceAction278___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction278___action, LOCATE_parser, 11425); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[5] /*nodearraylist3*/;
@@ -19700,8 +19700,8 @@ void parser___ReduceAction278___action(val_t  self, val_t  param0) {
   variable[13] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[9] /*tkwwithnode2*/,  variable[8] /*listnode4*/,  variable[11] /*tkwdonode5*/,  NIT_NULL /*null*/); /*new AClosureDef*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(33)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label588: while(false);
   tracehead = trace.prev;
   return;
@@ -19728,9 +19728,9 @@ void parser___ReduceAction279___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -19741,8 +19741,8 @@ void parser___ReduceAction279___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[6] /*tkwvarnode2*/,  variable[7] /*tidnode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AVardeclExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label590: while(false);
   tracehead = trace.prev;
   return;
@@ -19769,11 +19769,11 @@ void parser___ReduceAction280___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -19787,8 +19787,8 @@ void parser___ReduceAction280___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[7] /*tkwvarnode2*/,  variable[8] /*tidnode3*/,  variable[9] /*ptypenode4*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AVardeclExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label592: while(false);
   tracehead = trace.prev;
   return;
@@ -19815,15 +19815,15 @@ void parser___ReduceAction281___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -19840,8 +19840,8 @@ void parser___ReduceAction281___action(val_t  self, val_t  param0) {
   variable[14] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[9] /*tkwvarnode2*/,  variable[10] /*tidnode3*/,  NIT_NULL /*null*/,  variable[11] /*tassignnode5*/,  variable[12] /*pexprnode6*/); /*new AVardeclExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label594: while(false);
   tracehead = trace.prev;
   return;
@@ -19868,17 +19868,17 @@ void parser___ReduceAction282___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -19898,8 +19898,8 @@ void parser___ReduceAction282___action(val_t  self, val_t  param0) {
   variable[16] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[10] /*tkwvarnode2*/,  variable[11] /*tidnode3*/,  variable[12] /*ptypenode4*/,  variable[13] /*tassignnode5*/,  variable[14] /*pexprnode6*/); /*new AVardeclExpr*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pexprnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(34)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label596: while(false);
   tracehead = trace.prev;
   return;
@@ -19926,17 +19926,17 @@ void parser___ReduceAction283___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -19953,8 +19953,8 @@ void parser___ReduceAction283___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr( variable[10] /*pexprnode2*/,  variable[11] /*tattridnode3*/,  variable[12] /*tassignnode4*/,  variable[13] /*pexprnode5*/); /*new AAttrAssignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label598: while(false);
   tracehead = trace.prev;
   return;
@@ -19981,11 +19981,11 @@ void parser___ReduceAction284___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[7] = variable[8];
@@ -20001,8 +20001,8 @@ void parser___ReduceAction284___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr( variable[7] /*pexprnode2*/,  variable[8] /*tattridnode3*/,  variable[9] /*tassignnode4*/,  variable[10] /*pexprnode5*/); /*new AAttrAssignExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label600: while(false);
   tracehead = trace.prev;
   return;
@@ -20029,19 +20029,19 @@ void parser___ReduceAction285___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -20054,13 +20054,13 @@ void parser___ReduceAction285___action(val_t  self, val_t  param0) {
   variable[14] =  variable[6] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction285___action, LOCATE_parser, 11633); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode5*/)( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[11] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[5] /*nodearraylist6*/;
@@ -20072,8 +20072,8 @@ void parser___ReduceAction285___action(val_t  self, val_t  param0) {
   variable[18] = NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[11] /*listnode5*/,  variable[15] /*tassignnode6*/,  variable[16] /*pexprnode7*/); /*new ACallAssignExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label602: while(false);
   tracehead = trace.prev;
   return;
@@ -20100,13 +20100,13 @@ void parser___ReduceAction286___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -20118,13 +20118,13 @@ void parser___ReduceAction286___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction286___action, LOCATE_parser, 11672); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode5*/)( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode5*/)( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[5] /*nodearraylist3*/;
@@ -20136,8 +20136,8 @@ void parser___ReduceAction286___action(val_t  self, val_t  param0) {
   variable[15] = NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[8] /*listnode5*/,  variable[12] /*tassignnode6*/,  variable[13] /*pexprnode7*/); /*new ACallAssignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label604: while(false);
   tracehead = trace.prev;
   return;
@@ -20164,13 +20164,13 @@ void parser___ReduceAction287___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -20180,13 +20180,13 @@ void parser___ReduceAction287___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction287___action, LOCATE_parser, 11709); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[5] /*nodearraylist3*/;
@@ -20198,8 +20198,8 @@ void parser___ReduceAction287___action(val_t  self, val_t  param0) {
   variable[14] = NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr( variable[9] /*pexprnode2*/,  variable[8] /*listnode4*/,  variable[11] /*tassignnode5*/,  variable[12] /*pexprnode6*/); /*new ABraAssignExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label606: while(false);
   tracehead = trace.prev;
   return;
@@ -20226,17 +20226,17 @@ void parser___ReduceAction288___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -20253,8 +20253,8 @@ void parser___ReduceAction288___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr( variable[10] /*pexprnode2*/,  variable[11] /*tattridnode3*/,  variable[12] /*passignopnode4*/,  variable[13] /*pexprnode5*/); /*new AAttrReassignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label608: while(false);
   tracehead = trace.prev;
   return;
@@ -20281,11 +20281,11 @@ void parser___ReduceAction289___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[7] = variable[8];
@@ -20301,8 +20301,8 @@ void parser___ReduceAction289___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr( variable[7] /*pexprnode2*/,  variable[8] /*tattridnode3*/,  variable[9] /*passignopnode4*/,  variable[10] /*pexprnode5*/); /*new AAttrReassignExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label610: while(false);
   tracehead = trace.prev;
   return;
@@ -20329,19 +20329,19 @@ void parser___ReduceAction290___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -20354,13 +20354,13 @@ void parser___ReduceAction290___action(val_t  self, val_t  param0) {
   variable[14] =  variable[6] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction290___action, LOCATE_parser, 11807); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode5*/)( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[11] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[5] /*nodearraylist6*/;
@@ -20372,8 +20372,8 @@ void parser___ReduceAction290___action(val_t  self, val_t  param0) {
   variable[18] = NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[11] /*listnode5*/,  variable[15] /*passignopnode6*/,  variable[16] /*pexprnode7*/); /*new ACallReassignExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label612: while(false);
   tracehead = trace.prev;
   return;
@@ -20400,13 +20400,13 @@ void parser___ReduceAction291___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -20418,13 +20418,13 @@ void parser___ReduceAction291___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction291___action, LOCATE_parser, 11846); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode5*/)( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode5*/)( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[5] /*nodearraylist3*/;
@@ -20436,8 +20436,8 @@ void parser___ReduceAction291___action(val_t  self, val_t  param0) {
   variable[15] = NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[8] /*listnode5*/,  variable[12] /*passignopnode6*/,  variable[13] /*pexprnode7*/); /*new ACallReassignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label614: while(false);
   tracehead = trace.prev;
   return;
@@ -20464,13 +20464,13 @@ void parser___ReduceAction292___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -20480,13 +20480,13 @@ void parser___ReduceAction292___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction292___action, LOCATE_parser, 11883); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[5] /*nodearraylist3*/;
@@ -20498,8 +20498,8 @@ void parser___ReduceAction292___action(val_t  self, val_t  param0) {
   variable[14] = NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr( variable[9] /*pexprnode2*/,  variable[8] /*listnode4*/,  variable[11] /*passignopnode5*/,  variable[12] /*pexprnode6*/); /*new ABraReassignExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(35)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label616: while(false);
   tracehead = trace.prev;
   return;
@@ -20526,7 +20526,7 @@ void parser___ReduceAction293___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tpluseqnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tpluseqnode2*/, COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
@@ -20534,8 +20534,8 @@ void parser___ReduceAction293___action(val_t  self, val_t  param0) {
   variable[7] = NEW_APlusAssignOp_parser_prod___APlusAssignOp___init_aplusassignop( variable[5] /*tpluseqnode2*/); /*new APlusAssignOp*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*passignopnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(36)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(36)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label618: while(false);
   tracehead = trace.prev;
   return;
@@ -20562,7 +20562,7 @@ void parser___ReduceAction294___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tminuseqnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tminuseqnode2*/, COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
@@ -20570,8 +20570,8 @@ void parser___ReduceAction294___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AMinusAssignOp_parser_prod___AMinusAssignOp___init_aminusassignop( variable[5] /*tminuseqnode2*/); /*new AMinusAssignOp*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*passignopnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(36)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(36)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label620: while(false);
   tracehead = trace.prev;
   return;
@@ -20598,9 +20598,9 @@ void parser___ReduceAction295___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwdonode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwdonode2*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
@@ -20611,8 +20611,8 @@ void parser___ReduceAction295___action(val_t  self, val_t  param0) {
   variable[9] = NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr( variable[6] /*tkwdonode2*/,  variable[7] /*pexprnode3*/); /*new ADoExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(37)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(37)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label622: while(false);
   tracehead = trace.prev;
   return;
@@ -20639,21 +20639,21 @@ void parser___ReduceAction296___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -20670,8 +20670,8 @@ void parser___ReduceAction296___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr( variable[12] /*tkwifnode2*/,  variable[13] /*pexprnode3*/,  variable[14] /*pexprnode4*/,  variable[15] /*pexprnode5*/); /*new AIfExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label624: while(false);
   tracehead = trace.prev;
   return;
@@ -20698,17 +20698,17 @@ void parser___ReduceAction297___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -20722,8 +20722,8 @@ void parser___ReduceAction297___action(val_t  self, val_t  param0) {
   variable[14] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr( variable[10] /*tkwifnode2*/,  variable[11] /*pexprnode3*/,  variable[12] /*pexprnode4*/,  NIT_NULL /*null*/); /*new AIfExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label626: while(false);
   tracehead = trace.prev;
   return;
@@ -20750,23 +20750,23 @@ void parser___ReduceAction298___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[12] /*nodearraylist1*/;
   variable[14] = TAG_Bool(( variable[13] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -20779,9 +20779,9 @@ void parser___ReduceAction298___action(val_t  self, val_t  param0) {
   variable[16] =  variable[6] /*nodearraylist7*/;
   variable[17] = TAG_Bool(( variable[16] /*pexprnode5*/==NIT_NULL) || VAL_ISA( variable[16] /*pexprnode5*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[17])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction298___action, LOCATE_parser, 12038); nit_exit(1);}
-  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pexprnode5*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pexprnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[16] /*pexprnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pexprnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[16] /*pexprnode5*/,COLOR_kernel___Object_____eqeq))( variable[16] /*pexprnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[17] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[16] /*pexprnode5*/ ==  NIT_NULL /*null*/) || (( variable[16] /*pexprnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[16] /*pexprnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[16] /*pexprnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[16] /*pexprnode5*/)( variable[16] /*pexprnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[17])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[15] /*listnode6*/,COLOR_abstract_collection___SimpleCollection___add))( variable[15] /*listnode6*/,  variable[16] /*pexprnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  variable[16] /*pexprnode5*/) /*AbstractArray::add*/;
   }
   variable[18] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[15] /*listnode6*/); /*new ABlockExpr*/
   variable[17] = variable[18];
@@ -20791,8 +20791,8 @@ void parser___ReduceAction298___action(val_t  self, val_t  param0) {
   variable[20] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr( variable[13] /*tkwifnode2*/,  variable[14] /*pexprnode3*/,  variable[17] /*pexprnode4*/,  variable[18] /*pexprnode7*/); /*new AIfExpr*/
   variable[19] = variable[20];
   variable[3] =  variable[19] /*pexprnode1*/ /*node_list=*/;
-  variable[20] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[20] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[20],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label628: while(false);
   tracehead = trace.prev;
   return;
@@ -20819,25 +20819,25 @@ void parser___ReduceAction299___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -20853,17 +20853,17 @@ void parser___ReduceAction299___action(val_t  self, val_t  param0) {
   variable[18] =  variable[6] /*nodearraylist8*/;
   variable[19] = TAG_Bool(( variable[18] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[18] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[19])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction299___action, LOCATE_parser, 12081); nit_exit(1);}
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pexprnode5*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pexprnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[17] /*pexprnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pexprnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[17] /*pexprnode5*/,COLOR_kernel___Object_____eqeq))( variable[17] /*pexprnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[17] /*pexprnode5*/ ==  NIT_NULL /*null*/) || (( variable[17] /*pexprnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[17] /*pexprnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[17] /*pexprnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[17] /*pexprnode5*/)( variable[17] /*pexprnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[16] /*listnode7*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*listnode7*/,  variable[17] /*pexprnode5*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[16] /*listnode7*/)( variable[16] /*listnode7*/,  variable[17] /*pexprnode5*/) /*AbstractArray::add*/;
   }
-  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[18] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[18] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[18] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[18] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[19] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[18] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[18] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[18] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[18] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[18] /*listnode6*/)( variable[18] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[19])) { /*if*/
-    variable[19] = ((array___AbstractArray___is_empty_t)CALL( variable[16] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[16] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[19] = CALL_abstract_collection___Collection___is_empty( variable[16] /*listnode7*/)( variable[16] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[19])) { /*if*/
       variable[16] =  variable[18] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[16] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[16] /*listnode7*/,  variable[18] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[16] /*listnode7*/)( variable[16] /*listnode7*/,  variable[18] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[20] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[16] /*listnode7*/); /*new ABlockExpr*/
@@ -20874,8 +20874,8 @@ void parser___ReduceAction299___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr( variable[14] /*tkwifnode2*/,  variable[15] /*pexprnode3*/,  variable[19] /*pexprnode4*/,  variable[20] /*pexprnode8*/); /*new AIfExpr*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*pexprnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label630: while(false);
   tracehead = trace.prev;
   return;
@@ -20902,17 +20902,17 @@ void parser___ReduceAction300___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -20926,8 +20926,8 @@ void parser___ReduceAction300___action(val_t  self, val_t  param0) {
   variable[14] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr( variable[10] /*tkwifnode2*/,  variable[11] /*pexprnode3*/,  NIT_NULL /*null*/,  variable[12] /*pexprnode5*/); /*new AIfExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label632: while(false);
   tracehead = trace.prev;
   return;
@@ -20954,19 +20954,19 @@ void parser___ReduceAction301___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -20980,8 +20980,8 @@ void parser___ReduceAction301___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr( variable[11] /*tkwifnode2*/,  variable[12] /*pexprnode3*/,  NIT_NULL /*null*/,  variable[13] /*pexprnode5*/); /*new AIfExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(38)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label634: while(false);
   tracehead = trace.prev;
   return;
@@ -21008,16 +21008,16 @@ void parser___ReduceAction302___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist2*/;
   variable[7] = TAG_Bool(( variable[6] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction302___action, LOCATE_parser, 12173); nit_exit(1);}
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(39)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(39)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label636: while(false);
   tracehead = trace.prev;
   return;
@@ -21044,11 +21044,11 @@ void parser___ReduceAction303___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[3] =  NIT_NULL /*null*/ /*node_list=*/;
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(39)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(39)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label638: while(false);
   tracehead = trace.prev;
   return;
@@ -21075,17 +21075,17 @@ void parser___ReduceAction304___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*tkwwhilenode2*/==NIT_NULL) || VAL_ISA( variable[10] /*tkwwhilenode2*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
@@ -21102,8 +21102,8 @@ void parser___ReduceAction304___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr( variable[10] /*tkwwhilenode2*/,  variable[11] /*pexprnode3*/,  variable[12] /*tkwdonode4*/,  variable[13] /*pexprnode5*/); /*new AWhileExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(40)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(40)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label640: while(false);
   tracehead = trace.prev;
   return;
@@ -21130,13 +21130,13 @@ void parser___ReduceAction305___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -21150,8 +21150,8 @@ void parser___ReduceAction305___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AForExpr_parser_prod___AForExpr___init_aforexpr( variable[8] /*pexprnode2*/,  variable[9] /*tkwdonode3*/,  variable[10] /*pexprnode4*/); /*new AForExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(41)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(41)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label642: while(false);
   tracehead = trace.prev;
   return;
@@ -21178,19 +21178,19 @@ void parser___ReduceAction306___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[11] =  variable[10] /*nodearraylist1*/;
   variable[12] = TAG_Bool(( variable[11] /*tkwfornode2*/==NIT_NULL) || VAL_ISA( variable[11] /*tkwfornode2*/, COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
@@ -21204,8 +21204,8 @@ void parser___ReduceAction306___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AForVardeclExpr_parser_prod___AForVardeclExpr___init_aforvardeclexpr( variable[11] /*tkwfornode2*/,  variable[12] /*tidnode3*/,  variable[13] /*pexprnode4*/); /*new AForVardeclExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(42)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label644: while(false);
   tracehead = trace.prev;
   return;
@@ -21232,9 +21232,9 @@ void parser___ReduceAction307___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwassertnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwassertnode2*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
@@ -21245,8 +21245,8 @@ void parser___ReduceAction307___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr( variable[6] /*tkwassertnode2*/,  NIT_NULL /*null*/,  variable[7] /*pexprnode4*/); /*new AAssertExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(43)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(43)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label646: while(false);
   tracehead = trace.prev;
   return;
@@ -21273,11 +21273,11 @@ void parser___ReduceAction308___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwassertnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwassertnode2*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
@@ -21291,8 +21291,8 @@ void parser___ReduceAction308___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr( variable[7] /*tkwassertnode2*/,  variable[8] /*tidnode3*/,  variable[9] /*pexprnode4*/); /*new AAssertExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(43)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(43)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label648: while(false);
   tracehead = trace.prev;
   return;
@@ -21319,16 +21319,16 @@ void parser___ReduceAction309___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tidnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction309___action, LOCATE_parser, 12326); nit_exit(1);}
   variable[3] =  variable[6] /*tidnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(44)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(44)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label650: while(false);
   tracehead = trace.prev;
   return;
@@ -21355,14 +21355,14 @@ void parser___ReduceAction310___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction310___action, LOCATE_parser, 12339); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label652: while(false);
   tracehead = trace.prev;
   return;
@@ -21389,17 +21389,17 @@ void parser___ReduceAction311___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -21414,32 +21414,32 @@ void parser___ReduceAction311___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction311___action, LOCATE_parser, 12363); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction311___action, LOCATE_parser, 12372); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label654: while(false);
   tracehead = trace.prev;
   return;
@@ -21466,11 +21466,11 @@ void parser___ReduceAction312___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -21484,32 +21484,32 @@ void parser___ReduceAction312___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction312___action, LOCATE_parser, 12406); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction312___action, LOCATE_parser, 12415); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label656: while(false);
   tracehead = trace.prev;
   return;
@@ -21536,11 +21536,11 @@ void parser___ReduceAction313___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -21552,32 +21552,32 @@ void parser___ReduceAction313___action(val_t  self, val_t  param0) {
   variable[10] =  variable[5] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction313___action, LOCATE_parser, 12447); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode4*/)( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction313___action, LOCATE_parser, 12456); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr( variable[9] /*pexprnode2*/,  variable[7] /*listnode4*/,  variable[8] /*listnode6*/); /*new ABraExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(45)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label658: while(false);
   tracehead = trace.prev;
   return;
@@ -21604,14 +21604,14 @@ void parser___ReduceAction314___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction314___action, LOCATE_parser, 12481); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(46)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(46)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label660: while(false);
   tracehead = trace.prev;
   return;
@@ -21638,27 +21638,27 @@ void parser___ReduceAction315___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -21681,8 +21681,8 @@ void parser___ReduceAction315___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr( variable[15] /*tkwifnode2*/,  variable[16] /*pexprnode3*/,  variable[17] /*tkwthennode4*/,  variable[18] /*pexprnode5*/,  variable[19] /*tkwelsenode6*/,  variable[20] /*pexprnode7*/); /*new AIfexprExpr*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*pexprnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(46)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(46)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label662: while(false);
   tracehead = trace.prev;
   return;
@@ -21709,14 +21709,14 @@ void parser___ReduceAction316___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction316___action, LOCATE_parser, 12535); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label664: while(false);
   tracehead = trace.prev;
   return;
@@ -21743,13 +21743,13 @@ void parser___ReduceAction317___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -21760,8 +21760,8 @@ void parser___ReduceAction317___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AOrExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label666: while(false);
   tracehead = trace.prev;
   return;
@@ -21788,13 +21788,13 @@ void parser___ReduceAction318___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -21805,8 +21805,8 @@ void parser___ReduceAction318___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AAndExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(47)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label668: while(false);
   tracehead = trace.prev;
   return;
@@ -21833,14 +21833,14 @@ void parser___ReduceAction319___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction319___action, LOCATE_parser, 12592); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(48)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(48)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label670: while(false);
   tracehead = trace.prev;
   return;
@@ -21867,11 +21867,11 @@ void parser___ReduceAction320___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
@@ -21882,8 +21882,8 @@ void parser___ReduceAction320___action(val_t  self, val_t  param0) {
   variable[10] = NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr( variable[7] /*tkwnotnode2*/,  variable[8] /*pexprnode3*/); /*new ANotExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(48)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(48)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label672: while(false);
   tracehead = trace.prev;
   return;
@@ -21910,14 +21910,14 @@ void parser___ReduceAction321___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction321___action, LOCATE_parser, 12626); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label674: while(false);
   tracehead = trace.prev;
   return;
@@ -21944,13 +21944,13 @@ void parser___ReduceAction322___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -21961,8 +21961,8 @@ void parser___ReduceAction322___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEqExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label676: while(false);
   tracehead = trace.prev;
   return;
@@ -21989,13 +21989,13 @@ void parser___ReduceAction323___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22006,8 +22006,8 @@ void parser___ReduceAction323___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label678: while(false);
   tracehead = trace.prev;
   return;
@@ -22034,13 +22034,13 @@ void parser___ReduceAction324___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22051,8 +22051,8 @@ void parser___ReduceAction324___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ANeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label680: while(false);
   tracehead = trace.prev;
   return;
@@ -22079,13 +22079,13 @@ void parser___ReduceAction325___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22096,8 +22096,8 @@ void parser___ReduceAction325___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label682: while(false);
   tracehead = trace.prev;
   return;
@@ -22124,13 +22124,13 @@ void parser___ReduceAction326___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22141,8 +22141,8 @@ void parser___ReduceAction326___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label684: while(false);
   tracehead = trace.prev;
   return;
@@ -22169,13 +22169,13 @@ void parser___ReduceAction327___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22186,8 +22186,8 @@ void parser___ReduceAction327___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label686: while(false);
   tracehead = trace.prev;
   return;
@@ -22214,13 +22214,13 @@ void parser___ReduceAction328___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22231,8 +22231,8 @@ void parser___ReduceAction328___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label688: while(false);
   tracehead = trace.prev;
   return;
@@ -22259,13 +22259,13 @@ void parser___ReduceAction329___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22276,8 +22276,8 @@ void parser___ReduceAction329___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarshipExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label690: while(false);
   tracehead = trace.prev;
   return;
@@ -22304,13 +22304,13 @@ void parser___ReduceAction330___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22321,8 +22321,8 @@ void parser___ReduceAction330___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr( variable[8] /*pexprnode2*/,  variable[9] /*ptypenode3*/); /*new AIsaExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(49)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label692: while(false);
   tracehead = trace.prev;
   return;
@@ -22349,14 +22349,14 @@ void parser___ReduceAction331___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction331___action, LOCATE_parser, 12837); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(50)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(50)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label694: while(false);
   tracehead = trace.prev;
   return;
@@ -22383,13 +22383,13 @@ void parser___ReduceAction332___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22400,8 +22400,8 @@ void parser___ReduceAction332___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APlusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(50)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(50)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label696: while(false);
   tracehead = trace.prev;
   return;
@@ -22428,13 +22428,13 @@ void parser___ReduceAction333___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22445,8 +22445,8 @@ void parser___ReduceAction333___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AMinusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(50)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(50)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label698: while(false);
   tracehead = trace.prev;
   return;
@@ -22473,14 +22473,14 @@ void parser___ReduceAction334___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction334___action, LOCATE_parser, 12894); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label700: while(false);
   tracehead = trace.prev;
   return;
@@ -22507,13 +22507,13 @@ void parser___ReduceAction335___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22524,8 +22524,8 @@ void parser___ReduceAction335___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label702: while(false);
   tracehead = trace.prev;
   return;
@@ -22552,13 +22552,13 @@ void parser___ReduceAction336___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22569,8 +22569,8 @@ void parser___ReduceAction336___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ASlashExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label704: while(false);
   tracehead = trace.prev;
   return;
@@ -22597,13 +22597,13 @@ void parser___ReduceAction337___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22614,8 +22614,8 @@ void parser___ReduceAction337___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APercentExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(51)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label706: while(false);
   tracehead = trace.prev;
   return;
@@ -22642,14 +22642,14 @@ void parser___ReduceAction338___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction338___action, LOCATE_parser, 12973); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(52)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(52)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label708: while(false);
   tracehead = trace.prev;
   return;
@@ -22676,11 +22676,11 @@ void parser___ReduceAction339___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
@@ -22691,8 +22691,8 @@ void parser___ReduceAction339___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr( variable[7] /*tminusnode2*/,  variable[8] /*pexprnode3*/); /*new AUminusExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(52)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(52)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label710: while(false);
   tracehead = trace.prev;
   return;
@@ -22719,11 +22719,11 @@ void parser___ReduceAction340___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
@@ -22734,8 +22734,8 @@ void parser___ReduceAction340___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr( variable[7] /*tkwoncenode2*/,  variable[8] /*pexprnode3*/); /*new AOnceExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(52)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(52)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label712: while(false);
   tracehead = trace.prev;
   return;
@@ -22762,14 +22762,14 @@ void parser___ReduceAction341___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction341___action, LOCATE_parser, 13028); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(53)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(53)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label714: while(false);
   tracehead = trace.prev;
   return;
@@ -22796,13 +22796,13 @@ void parser___ReduceAction342___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -22815,20 +22815,20 @@ void parser___ReduceAction342___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist4*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction342___action, LOCATE_parser, 13049); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[9] /*tkwnewnode2*/,  variable[10] /*ptypenode3*/,  NIT_NULL /*null*/,  variable[8] /*listnode6*/); /*new ANewExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(53)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(53)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label716: while(false);
   tracehead = trace.prev;
   return;
@@ -22855,13 +22855,13 @@ void parser___ReduceAction343___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -22872,8 +22872,8 @@ void parser___ReduceAction343___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[8] /*pexprnode2*/,  variable[9] /*tattridnode3*/); /*new AAttrExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label718: while(false);
   tracehead = trace.prev;
   return;
@@ -22900,7 +22900,7 @@ void parser___ReduceAction344___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[5] = variable[6];
@@ -22910,8 +22910,8 @@ void parser___ReduceAction344___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[5] /*pexprnode2*/,  variable[6] /*tattridnode3*/); /*new AAttrExpr*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label720: while(false);
   tracehead = trace.prev;
   return;
@@ -22938,15 +22938,15 @@ void parser___ReduceAction345___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -22961,20 +22961,20 @@ void parser___ReduceAction345___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist5*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction345___action, LOCATE_parser, 13126); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[9] =  variable[13] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[11] /*pexprnode2*/,  variable[12] /*tidnode3*/,  variable[9] /*listnode5*/,  variable[10] /*listnode6*/); /*new ACallExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label722: while(false);
   tracehead = trace.prev;
   return;
@@ -23001,9 +23001,9 @@ void parser___ReduceAction346___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -23017,20 +23017,20 @@ void parser___ReduceAction346___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction346___action, LOCATE_parser, 13159); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[6] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[8] /*pexprnode2*/,  variable[9] /*tidnode3*/,  variable[6] /*listnode5*/,  variable[7] /*listnode6*/); /*new ACallExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label724: while(false);
   tracehead = trace.prev;
   return;
@@ -23057,9 +23057,9 @@ void parser___ReduceAction347___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -23069,20 +23069,20 @@ void parser___ReduceAction347___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction347___action, LOCATE_parser, 13189); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable[7] /*tkwsupernode3*/,  variable[6] /*listnode5*/); /*new ASuperExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label726: while(false);
   tracehead = trace.prev;
   return;
@@ -23109,11 +23109,11 @@ void parser___ReduceAction348___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -23126,20 +23126,20 @@ void parser___ReduceAction348___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction348___action, LOCATE_parser, 13221); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( variable[8] /*pqualifiednode2*/,  variable[9] /*tkwsupernode3*/,  variable[7] /*listnode5*/); /*new ASuperExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label728: while(false);
   tracehead = trace.prev;
   return;
@@ -23166,15 +23166,15 @@ void parser___ReduceAction349___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -23187,20 +23187,20 @@ void parser___ReduceAction349___action(val_t  self, val_t  param0) {
   variable[12] =  variable[4] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction349___action, LOCATE_parser, 13255); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[10] /*pexprnode2*/,  variable[11] /*tkwinitnode3*/,  variable[9] /*listnode5*/); /*new AInitExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label730: while(false);
   tracehead = trace.prev;
   return;
@@ -23227,9 +23227,9 @@ void parser___ReduceAction350___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -23241,20 +23241,20 @@ void parser___ReduceAction350___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction350___action, LOCATE_parser, 13286); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[6] =  variable[9] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[7] /*pexprnode2*/,  variable[8] /*tkwinitnode3*/,  variable[6] /*listnode5*/); /*new AInitExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label732: while(false);
   tracehead = trace.prev;
   return;
@@ -23281,9 +23281,9 @@ void parser___ReduceAction351___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -23295,20 +23295,20 @@ void parser___ReduceAction351___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction351___action, LOCATE_parser, 13316); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode4*/)( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[6] =  variable[9] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode4*/)( variable[6] /*listnode4*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr( variable[8] /*pexprnode2*/,  variable[6] /*listnode4*/,  variable[7] /*listnode5*/); /*new ABraExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label734: while(false);
   tracehead = trace.prev;
   return;
@@ -23335,19 +23335,19 @@ void parser___ReduceAction352___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -23363,20 +23363,20 @@ void parser___ReduceAction352___action(val_t  self, val_t  param0) {
   variable[15] =  variable[4] /*nodearraylist7*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction352___action, LOCATE_parser, 13354); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode6*/)( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode6*/)( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[12] /*tkwnewnode2*/,  variable[13] /*ptypenode3*/,  variable[14] /*tidnode4*/,  variable[11] /*listnode6*/); /*new ANewExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label736: while(false);
   tracehead = trace.prev;
   return;
@@ -23403,23 +23403,23 @@ void parser___ReduceAction353___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[10] /*nodearraylist3*/;
   variable[14] = TAG_Bool(( variable[13] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -23430,8 +23430,8 @@ void parser___ReduceAction353___action(val_t  self, val_t  param0) {
   variable[16] = NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr( variable[13] /*pexprnode2*/,  variable[14] /*pexprnode3*/); /*new ACrangeExpr*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pexprnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label738: while(false);
   tracehead = trace.prev;
   return;
@@ -23458,23 +23458,23 @@ void parser___ReduceAction354___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
   variable[13] =  variable[10] /*nodearraylist3*/;
   variable[14] = TAG_Bool(( variable[13] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[13] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -23485,8 +23485,8 @@ void parser___ReduceAction354___action(val_t  self, val_t  param0) {
   variable[16] = NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr( variable[13] /*pexprnode2*/,  variable[14] /*pexprnode3*/); /*new AOrangeExpr*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pexprnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label740: while(false);
   tracehead = trace.prev;
   return;
@@ -23513,27 +23513,27 @@ void parser___ReduceAction355___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction355___action, LOCATE_parser, 13435); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[6] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*listnode2*/)( variable[6] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[5] /*listnode3*/)( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[5] =  variable[6] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*listnode3*/,  variable[6] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[5] /*listnode3*/)( variable[5] /*listnode3*/,  variable[6] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[8] = NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr( variable[5] /*listnode3*/); /*new AArrayExpr*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label742: while(false);
   tracehead = trace.prev;
   return;
@@ -23560,7 +23560,7 @@ void parser___ReduceAction356___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
@@ -23568,8 +23568,8 @@ void parser___ReduceAction356___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr( variable[5] /*tkwselfnode2*/); /*new ASelfExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label744: while(false);
   tracehead = trace.prev;
   return;
@@ -23596,7 +23596,7 @@ void parser___ReduceAction357___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
@@ -23604,8 +23604,8 @@ void parser___ReduceAction357___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr( variable[5] /*tkwtruenode2*/); /*new ATrueExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label746: while(false);
   tracehead = trace.prev;
   return;
@@ -23632,7 +23632,7 @@ void parser___ReduceAction358___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
@@ -23640,8 +23640,8 @@ void parser___ReduceAction358___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr( variable[5] /*tkwfalsenode2*/); /*new AFalseExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label748: while(false);
   tracehead = trace.prev;
   return;
@@ -23668,7 +23668,7 @@ void parser___ReduceAction359___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
@@ -23676,8 +23676,8 @@ void parser___ReduceAction359___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr( variable[5] /*tkwnullnode2*/); /*new ANullExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label750: while(false);
   tracehead = trace.prev;
   return;
@@ -23704,7 +23704,7 @@ void parser___ReduceAction360___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
@@ -23712,8 +23712,8 @@ void parser___ReduceAction360___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr( variable[5] /*tnumbernode2*/); /*new AIntExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label752: while(false);
   tracehead = trace.prev;
   return;
@@ -23740,7 +23740,7 @@ void parser___ReduceAction361___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
@@ -23748,8 +23748,8 @@ void parser___ReduceAction361___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr( variable[5] /*tfloatnode2*/); /*new AFloatExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label754: while(false);
   tracehead = trace.prev;
   return;
@@ -23776,7 +23776,7 @@ void parser___ReduceAction362___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
@@ -23784,8 +23784,8 @@ void parser___ReduceAction362___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr( variable[5] /*tcharnode2*/); /*new ACharExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label756: while(false);
   tracehead = trace.prev;
   return;
@@ -23812,7 +23812,7 @@ void parser___ReduceAction363___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
@@ -23820,8 +23820,8 @@ void parser___ReduceAction363___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr( variable[5] /*tstringnode2*/); /*new AStringExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label758: while(false);
   tracehead = trace.prev;
   return;
@@ -23848,14 +23848,14 @@ void parser___ReduceAction364___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction364___action, LOCATE_parser, 13586); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label760: while(false);
   tracehead = trace.prev;
   return;
@@ -23882,18 +23882,18 @@ void parser___ReduceAction365___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[5] /*nodearraylist2*/;
   variable[8] = TAG_Bool(( variable[7] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction365___action, LOCATE_parser, 13601); nit_exit(1);}
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label762: while(false);
   tracehead = trace.prev;
   return;
@@ -23920,25 +23920,25 @@ void parser___ReduceAction366___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -23952,8 +23952,8 @@ void parser___ReduceAction366___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr( variable[14] /*pexprnode2*/,  variable[15] /*tkwasnode3*/,  variable[16] /*ptypenode4*/); /*new AAsCastExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(54)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label764: while(false);
   tracehead = trace.prev;
   return;
@@ -23980,9 +23980,9 @@ void parser___ReduceAction367___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -23992,24 +23992,24 @@ void parser___ReduceAction367___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode3*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode3*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction367___action, LOCATE_parser, 13649); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode4*/)( variable[6] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode2*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode4*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode4*/)( variable[6] /*listnode4*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode3*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode3*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pexprnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode3*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pexprnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pexprnode3*/)( variable[8] /*pexprnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode4*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode4*/,  variable[8] /*pexprnode3*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode4*/)( variable[6] /*listnode4*/,  variable[8] /*pexprnode3*/) /*AbstractArray::add*/;
   }
   variable[10] = NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr( variable[6] /*listnode4*/); /*new ASuperstringExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label766: while(false);
   tracehead = trace.prev;
   return;
@@ -24036,11 +24036,11 @@ void parser___ReduceAction368___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -24053,33 +24053,33 @@ void parser___ReduceAction368___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode4*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction368___action, LOCATE_parser, 13682); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[8] /*listnode2*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode3*/)( variable[9] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[9] /*listnode3*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[9] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode4*/)( variable[10] /*pexprnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*listnode5*/,  variable[10] /*pexprnode4*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*pexprnode4*/) /*AbstractArray::add*/;
   }
   variable[12] = NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr( variable[7] /*listnode5*/); /*new ASuperstringExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(55)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label768: while(false);
   tracehead = trace.prev;
   return;
@@ -24106,13 +24106,13 @@ void parser___ReduceAction369___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -24122,17 +24122,17 @@ void parser___ReduceAction369___action(val_t  self, val_t  param0) {
   variable[10] =  variable[5] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction369___action, LOCATE_parser, 13721); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pexprnode1*/)( variable[9] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode3*/,  variable[9] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  variable[9] /*pexprnode1*/) /*AbstractArray::add*/;
   }
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode3*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[8] /*listnode3*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(56)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(56)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label770: while(false);
   tracehead = trace.prev;
   return;
@@ -24159,7 +24159,7 @@ void parser___ReduceAction370___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tstartstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstartstringnode2*/, COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
@@ -24167,8 +24167,8 @@ void parser___ReduceAction370___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AStartStringExpr_parser_prod___AStartStringExpr___init_astartstringexpr( variable[5] /*tstartstringnode2*/); /*new AStartStringExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(57)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(57)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label772: while(false);
   tracehead = trace.prev;
   return;
@@ -24195,13 +24195,13 @@ void parser___ReduceAction371___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -24211,17 +24211,17 @@ void parser___ReduceAction371___action(val_t  self, val_t  param0) {
   variable[10] =  variable[5] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction371___action, LOCATE_parser, 13762); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pexprnode1*/)( variable[9] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode3*/,  variable[9] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  variable[9] /*pexprnode1*/) /*AbstractArray::add*/;
   }
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode3*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[8] /*listnode3*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(58)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(58)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label774: while(false);
   tracehead = trace.prev;
   return;
@@ -24248,7 +24248,7 @@ void parser___ReduceAction372___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tmidstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tmidstringnode2*/, COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
@@ -24256,8 +24256,8 @@ void parser___ReduceAction372___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AMidStringExpr_parser_prod___AMidStringExpr___init_amidstringexpr( variable[5] /*tmidstringnode2*/); /*new AMidStringExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(59)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(59)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label776: while(false);
   tracehead = trace.prev;
   return;
@@ -24284,7 +24284,7 @@ void parser___ReduceAction373___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tendstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tendstringnode2*/, COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
@@ -24292,8 +24292,8 @@ void parser___ReduceAction373___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AEndStringExpr_parser_prod___AEndStringExpr___init_aendstringexpr( variable[5] /*tendstringnode2*/); /*new AEndStringExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(60)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(60)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label778: while(false);
   tracehead = trace.prev;
   return;
@@ -24320,28 +24320,28 @@ void parser___ReduceAction374___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
   variable[10] =  variable[6] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction374___action, LOCATE_parser, 13818); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode1*/)( variable[10] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode2*/,  variable[10] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode2*/)( variable[9] /*listnode2*/,  variable[10] /*pexprnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[9] /*listnode2*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label780: while(false);
   tracehead = trace.prev;
   return;
@@ -24368,17 +24368,17 @@ void parser___ReduceAction375___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -24388,22 +24388,22 @@ void parser___ReduceAction375___action(val_t  self, val_t  param0) {
   variable[12] =  variable[5] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction375___action, LOCATE_parser, 13842); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pexprnode1*/)( variable[11] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode3*/,  variable[11] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[11] /*pexprnode1*/) /*AbstractArray::add*/;
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode3*/)( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[10] /*listnode3*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label782: while(false);
   tracehead = trace.prev;
   return;
@@ -24430,17 +24430,17 @@ void parser___ReduceAction376___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*listnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label784: while(false);
   tracehead = trace.prev;
   return;
@@ -24470,8 +24470,8 @@ void parser___ReduceAction377___action(val_t  self, val_t  param0) {
   variable[5] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[4] = variable[5];
   variable[3] =  variable[4] /*listnode1*/ /*node_list=*/;
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(61)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label786: while(false);
   tracehead = trace.prev;
   return;
@@ -24498,28 +24498,28 @@ void parser___ReduceAction378___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
   variable[10] =  variable[6] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction378___action, LOCATE_parser, 13895); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode1*/)( variable[10] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode2*/,  variable[10] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode2*/)( variable[9] /*listnode2*/,  variable[10] /*pexprnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[9] /*listnode2*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label788: while(false);
   tracehead = trace.prev;
   return;
@@ -24546,17 +24546,17 @@ void parser___ReduceAction379___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -24566,22 +24566,22 @@ void parser___ReduceAction379___action(val_t  self, val_t  param0) {
   variable[12] =  variable[5] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction379___action, LOCATE_parser, 13919); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pexprnode1*/)( variable[11] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode3*/,  variable[11] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[11] /*pexprnode1*/) /*AbstractArray::add*/;
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode3*/)( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[10] /*listnode3*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label790: while(false);
   tracehead = trace.prev;
   return;
@@ -24608,20 +24608,20 @@ void parser___ReduceAction380___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction380___action, LOCATE_parser, 13943); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)( variable[6] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label792: while(false);
   tracehead = trace.prev;
   return;
@@ -24648,17 +24648,17 @@ void parser___ReduceAction381___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*listnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label794: while(false);
   tracehead = trace.prev;
   return;
@@ -24688,8 +24688,8 @@ void parser___ReduceAction382___action(val_t  self, val_t  param0) {
   variable[5] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[4] = variable[5];
   variable[3] =  variable[4] /*listnode1*/ /*node_list=*/;
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(62)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label796: while(false);
   tracehead = trace.prev;
   return;
@@ -24716,28 +24716,28 @@ void parser___ReduceAction383___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
   variable[10] =  variable[6] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction383___action, LOCATE_parser, 13989); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode1*/)( variable[10] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode2*/,  variable[10] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode2*/)( variable[9] /*listnode2*/,  variable[10] /*pexprnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[9] /*listnode2*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(63)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(63)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label798: while(false);
   tracehead = trace.prev;
   return;
@@ -24764,17 +24764,17 @@ void parser___ReduceAction384___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -24784,22 +24784,22 @@ void parser___ReduceAction384___action(val_t  self, val_t  param0) {
   variable[12] =  variable[5] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction384___action, LOCATE_parser, 14013); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[11] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[11] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*pexprnode1*/)( variable[11] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*listnode3*/,  variable[11] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[11] /*pexprnode1*/) /*AbstractArray::add*/;
   }
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode2*/)( variable[12] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode3*/)( variable[10] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  variable[12] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[10] /*listnode3*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(63)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(63)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label800: while(false);
   tracehead = trace.prev;
   return;
@@ -24826,20 +24826,20 @@ void parser___ReduceAction385___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[5] /*nodearraylist3*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction385___action, LOCATE_parser, 14039); nit_exit(1);}
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(64)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(64)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label802: while(false);
   tracehead = trace.prev;
   return;
@@ -24866,20 +24866,20 @@ void parser___ReduceAction386___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tidnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction386___action, LOCATE_parser, 14053); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tidnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*tidnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*tidnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tidnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*tidnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*tidnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tidnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*tidnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*tidnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tidnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*tidnode1*/)( variable[6] /*tidnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*tidnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*tidnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(65)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(65)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label804: while(false);
   tracehead = trace.prev;
   return;
@@ -24906,15 +24906,15 @@ void parser___ReduceAction387___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -24924,22 +24924,22 @@ void parser___ReduceAction387___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist5*/;
   variable[12] = TAG_Bool(( variable[11] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[11] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction387___action, LOCATE_parser, 14076); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode1*/)( variable[10] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode3*/)( variable[9] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[9] =  variable[10] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode3*/,  variable[10] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode3*/)( variable[9] /*listnode3*/,  variable[10] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*tidnode2*/ ==  NIT_NULL /*null*/) || (( variable[11] /*tidnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*tidnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*tidnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*tidnode2*/,COLOR_kernel___Object_____eqeq))( variable[11] /*tidnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*tidnode2*/ ==  NIT_NULL /*null*/) || (( variable[11] /*tidnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*tidnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*tidnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*tidnode2*/)( variable[11] /*tidnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode3*/,  variable[11] /*tidnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode3*/)( variable[9] /*listnode3*/,  variable[11] /*tidnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[9] /*listnode3*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(65)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(65)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label806: while(false);
   tracehead = trace.prev;
   return;
@@ -24966,7 +24966,7 @@ void parser___ReduceAction388___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -24976,8 +24976,8 @@ void parser___ReduceAction388___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AQualified_parser_prod___AQualified___init_aqualified( variable[5] /*listnode2*/,  variable[6] /*tclassidnode3*/); /*new AQualified*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pqualifiednode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label808: while(false);
   tracehead = trace.prev;
   return;
@@ -25004,22 +25004,22 @@ void parser___ReduceAction389___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
   variable[7] =  variable[5] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction389___action, LOCATE_parser, 14119); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[6] =  variable[7] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[8] =  variable[4] /*nodearraylist2*/;
@@ -25028,8 +25028,8 @@ void parser___ReduceAction389___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AQualified_parser_prod___AQualified___init_aqualified( variable[6] /*listnode3*/,  variable[8] /*tclassidnode4*/); /*new AQualified*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pqualifiednode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label810: while(false);
   tracehead = trace.prev;
   return;
@@ -25056,27 +25056,27 @@ void parser___ReduceAction390___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction390___action, LOCATE_parser, 14146); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[6] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*listnode2*/)( variable[6] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[5] /*listnode3*/)( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[5] =  variable[6] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*listnode3*/,  variable[6] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[5] /*listnode3*/)( variable[5] /*listnode3*/,  variable[6] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[8] = NEW_AQualified_parser_prod___AQualified___init_aqualified( variable[5] /*listnode3*/,  NIT_NULL /*null*/); /*new AQualified*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pqualifiednode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(66)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label812: while(false);
   tracehead = trace.prev;
   return;
@@ -25103,18 +25103,18 @@ void parser___ReduceAction391___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tidnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction391___action, LOCATE_parser, 14172); nit_exit(1);}
   variable[3] =  variable[7] /*tidnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(67)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(67)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label814: while(false);
   tracehead = trace.prev;
   return;
@@ -25141,18 +25141,18 @@ void parser___ReduceAction392___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tclassidnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*tclassidnode1*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction392___action, LOCATE_parser, 14187); nit_exit(1);}
   variable[3] =  variable[7] /*tclassidnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(68)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(68)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label816: while(false);
   tracehead = trace.prev;
   return;
@@ -25179,10 +25179,10 @@ void parser___ReduceAction393___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label818: while(false);
   tracehead = trace.prev;
   return;
@@ -25209,10 +25209,10 @@ void parser___ReduceAction394___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(69)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label820: while(false);
   tracehead = trace.prev;
   return;
@@ -25239,27 +25239,27 @@ void parser___ReduceAction395___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction395___action, LOCATE_parser, 14221); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[6] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*listnode2*/)( variable[6] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[5] /*listnode3*/)( variable[5] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[5] =  variable[6] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[5] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*listnode3*/,  variable[6] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[5] /*listnode3*/)( variable[5] /*listnode3*/,  variable[6] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[8] = NEW_ADoc_parser_prod___ADoc___init_adoc( variable[5] /*listnode3*/); /*new ADoc*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pdocnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label822: while(false);
   tracehead = trace.prev;
   return;
@@ -25286,29 +25286,29 @@ void parser___ReduceAction396___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
   variable[7] =  variable[4] /*nodearraylist2*/;
   variable[8] = TAG_Bool(( variable[7] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction396___action, LOCATE_parser, 14246); nit_exit(1);}
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode2*/)( variable[7] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[6] =  variable[7] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[9] = NEW_ADoc_parser_prod___ADoc___init_adoc( variable[6] /*listnode3*/); /*new ADoc*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pdocnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label824: while(false);
   tracehead = trace.prev;
   return;
@@ -25335,11 +25335,11 @@ void parser___ReduceAction397___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[3] =  NIT_NULL /*null*/ /*node_list=*/;
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(70)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label826: while(false);
   tracehead = trace.prev;
   return;
@@ -25367,8 +25367,8 @@ void parser___ReduceAction398___action(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
   variable[3] =  NIT_NULL /*null*/ /*node_list=*/;
-  variable[4] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[4],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[4] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[4],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label828: while(false);
   tracehead = trace.prev;
   return;
@@ -25395,14 +25395,14 @@ void parser___ReduceAction399___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pdocnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pdocnode1*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction399___action, LOCATE_parser, 14290); nit_exit(1);}
   variable[3] =  variable[5] /*pdocnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(71)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label830: while(false);
   tracehead = trace.prev;
   return;
@@ -25429,12 +25429,12 @@ void parser___ReduceAction400___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label832: while(false);
   tracehead = trace.prev;
   return;
@@ -25461,14 +25461,14 @@ void parser___ReduceAction401___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label834: while(false);
   tracehead = trace.prev;
   return;
@@ -25495,10 +25495,10 @@ void parser___ReduceAction402___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(72)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label836: while(false);
   tracehead = trace.prev;
   return;
@@ -25525,7 +25525,7 @@ void parser___ReduceAction403___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -25535,8 +25535,8 @@ void parser___ReduceAction403___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AType_parser_prod___AType___init_atype( variable[6] /*tclassidnode2*/,  variable[5] /*listnode3*/); /*new AType*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*ptypenode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(73)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(73)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label838: while(false);
   tracehead = trace.prev;
   return;
@@ -25563,14 +25563,14 @@ void parser___ReduceAction404___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction404___action, LOCATE_parser, 14354); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label840: while(false);
   tracehead = trace.prev;
   return;
@@ -25597,17 +25597,17 @@ void parser___ReduceAction405___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -25622,32 +25622,32 @@ void parser___ReduceAction405___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction405___action, LOCATE_parser, 14378); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction405___action, LOCATE_parser, 14387); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label842: while(false);
   tracehead = trace.prev;
   return;
@@ -25674,11 +25674,11 @@ void parser___ReduceAction406___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -25692,32 +25692,32 @@ void parser___ReduceAction406___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction406___action, LOCATE_parser, 14421); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction406___action, LOCATE_parser, 14430); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(74)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label844: while(false);
   tracehead = trace.prev;
   return;
@@ -25744,14 +25744,14 @@ void parser___ReduceAction407___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction407___action, LOCATE_parser, 14456); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label846: while(false);
   tracehead = trace.prev;
   return;
@@ -25778,27 +25778,27 @@ void parser___ReduceAction408___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -25821,8 +25821,8 @@ void parser___ReduceAction408___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr( variable[15] /*tkwifnode2*/,  variable[16] /*pexprnode3*/,  variable[17] /*tkwthennode4*/,  variable[18] /*pexprnode5*/,  variable[19] /*tkwelsenode6*/,  variable[20] /*pexprnode7*/); /*new AIfexprExpr*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*pexprnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(75)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label848: while(false);
   tracehead = trace.prev;
   return;
@@ -25849,14 +25849,14 @@ void parser___ReduceAction409___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction409___action, LOCATE_parser, 14510); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label850: while(false);
   tracehead = trace.prev;
   return;
@@ -25883,13 +25883,13 @@ void parser___ReduceAction410___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -25900,8 +25900,8 @@ void parser___ReduceAction410___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AOrExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label852: while(false);
   tracehead = trace.prev;
   return;
@@ -25928,13 +25928,13 @@ void parser___ReduceAction411___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -25945,8 +25945,8 @@ void parser___ReduceAction411___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AAndExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(76)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label854: while(false);
   tracehead = trace.prev;
   return;
@@ -25973,14 +25973,14 @@ void parser___ReduceAction412___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction412___action, LOCATE_parser, 14567); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(77)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(77)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label856: while(false);
   tracehead = trace.prev;
   return;
@@ -26007,11 +26007,11 @@ void parser___ReduceAction413___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
@@ -26022,8 +26022,8 @@ void parser___ReduceAction413___action(val_t  self, val_t  param0) {
   variable[10] = NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr( variable[7] /*tkwnotnode2*/,  variable[8] /*pexprnode3*/); /*new ANotExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(77)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(77)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label858: while(false);
   tracehead = trace.prev;
   return;
@@ -26050,14 +26050,14 @@ void parser___ReduceAction414___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction414___action, LOCATE_parser, 14601); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label860: while(false);
   tracehead = trace.prev;
   return;
@@ -26084,13 +26084,13 @@ void parser___ReduceAction415___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26101,8 +26101,8 @@ void parser___ReduceAction415___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEqExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label862: while(false);
   tracehead = trace.prev;
   return;
@@ -26129,13 +26129,13 @@ void parser___ReduceAction416___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26146,8 +26146,8 @@ void parser___ReduceAction416___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label864: while(false);
   tracehead = trace.prev;
   return;
@@ -26174,13 +26174,13 @@ void parser___ReduceAction417___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26191,8 +26191,8 @@ void parser___ReduceAction417___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ANeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label866: while(false);
   tracehead = trace.prev;
   return;
@@ -26219,13 +26219,13 @@ void parser___ReduceAction418___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26236,8 +26236,8 @@ void parser___ReduceAction418___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label868: while(false);
   tracehead = trace.prev;
   return;
@@ -26264,13 +26264,13 @@ void parser___ReduceAction419___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26281,8 +26281,8 @@ void parser___ReduceAction419___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label870: while(false);
   tracehead = trace.prev;
   return;
@@ -26309,13 +26309,13 @@ void parser___ReduceAction420___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26326,8 +26326,8 @@ void parser___ReduceAction420___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label872: while(false);
   tracehead = trace.prev;
   return;
@@ -26354,13 +26354,13 @@ void parser___ReduceAction421___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26371,8 +26371,8 @@ void parser___ReduceAction421___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label874: while(false);
   tracehead = trace.prev;
   return;
@@ -26399,13 +26399,13 @@ void parser___ReduceAction422___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26416,8 +26416,8 @@ void parser___ReduceAction422___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarshipExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label876: while(false);
   tracehead = trace.prev;
   return;
@@ -26444,13 +26444,13 @@ void parser___ReduceAction423___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26461,8 +26461,8 @@ void parser___ReduceAction423___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr( variable[8] /*pexprnode2*/,  variable[9] /*ptypenode3*/); /*new AIsaExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(78)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label878: while(false);
   tracehead = trace.prev;
   return;
@@ -26489,14 +26489,14 @@ void parser___ReduceAction424___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction424___action, LOCATE_parser, 14812); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(79)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(79)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label880: while(false);
   tracehead = trace.prev;
   return;
@@ -26523,13 +26523,13 @@ void parser___ReduceAction425___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26540,8 +26540,8 @@ void parser___ReduceAction425___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APlusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(79)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(79)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label882: while(false);
   tracehead = trace.prev;
   return;
@@ -26568,13 +26568,13 @@ void parser___ReduceAction426___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26585,8 +26585,8 @@ void parser___ReduceAction426___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AMinusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(79)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(79)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label884: while(false);
   tracehead = trace.prev;
   return;
@@ -26613,14 +26613,14 @@ void parser___ReduceAction427___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction427___action, LOCATE_parser, 14869); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label886: while(false);
   tracehead = trace.prev;
   return;
@@ -26647,13 +26647,13 @@ void parser___ReduceAction428___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26664,8 +26664,8 @@ void parser___ReduceAction428___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label888: while(false);
   tracehead = trace.prev;
   return;
@@ -26692,13 +26692,13 @@ void parser___ReduceAction429___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26709,8 +26709,8 @@ void parser___ReduceAction429___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ASlashExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label890: while(false);
   tracehead = trace.prev;
   return;
@@ -26737,13 +26737,13 @@ void parser___ReduceAction430___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -26754,8 +26754,8 @@ void parser___ReduceAction430___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APercentExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(80)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label892: while(false);
   tracehead = trace.prev;
   return;
@@ -26782,14 +26782,14 @@ void parser___ReduceAction431___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction431___action, LOCATE_parser, 14948); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label894: while(false);
   tracehead = trace.prev;
   return;
@@ -26816,11 +26816,11 @@ void parser___ReduceAction432___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
@@ -26831,8 +26831,8 @@ void parser___ReduceAction432___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr( variable[7] /*tminusnode2*/,  variable[8] /*pexprnode3*/); /*new AUminusExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label896: while(false);
   tracehead = trace.prev;
   return;
@@ -26859,11 +26859,11 @@ void parser___ReduceAction433___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
@@ -26874,8 +26874,8 @@ void parser___ReduceAction433___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr( variable[7] /*tkwoncenode2*/,  variable[8] /*pexprnode3*/); /*new AOnceExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(81)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label898: while(false);
   tracehead = trace.prev;
   return;
@@ -26902,14 +26902,14 @@ void parser___ReduceAction434___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction434___action, LOCATE_parser, 15003); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(82)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(82)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label900: while(false);
   tracehead = trace.prev;
   return;
@@ -26936,13 +26936,13 @@ void parser___ReduceAction435___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -26955,20 +26955,20 @@ void parser___ReduceAction435___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist4*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction435___action, LOCATE_parser, 15024); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[9] /*tkwnewnode2*/,  variable[10] /*ptypenode3*/,  NIT_NULL /*null*/,  variable[8] /*listnode6*/); /*new ANewExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(82)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(82)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label902: while(false);
   tracehead = trace.prev;
   return;
@@ -26995,13 +26995,13 @@ void parser___ReduceAction436___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -27012,8 +27012,8 @@ void parser___ReduceAction436___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[8] /*pexprnode2*/,  variable[9] /*tattridnode3*/); /*new AAttrExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label904: while(false);
   tracehead = trace.prev;
   return;
@@ -27040,7 +27040,7 @@ void parser___ReduceAction437___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[5] = variable[6];
@@ -27050,8 +27050,8 @@ void parser___ReduceAction437___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[5] /*pexprnode2*/,  variable[6] /*tattridnode3*/); /*new AAttrExpr*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label906: while(false);
   tracehead = trace.prev;
   return;
@@ -27078,15 +27078,15 @@ void parser___ReduceAction438___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -27101,20 +27101,20 @@ void parser___ReduceAction438___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist5*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction438___action, LOCATE_parser, 15101); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[9] =  variable[13] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[11] /*pexprnode2*/,  variable[12] /*tidnode3*/,  variable[9] /*listnode5*/,  variable[10] /*listnode6*/); /*new ACallExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label908: while(false);
   tracehead = trace.prev;
   return;
@@ -27141,9 +27141,9 @@ void parser___ReduceAction439___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -27157,20 +27157,20 @@ void parser___ReduceAction439___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction439___action, LOCATE_parser, 15134); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[6] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[8] /*pexprnode2*/,  variable[9] /*tidnode3*/,  variable[6] /*listnode5*/,  variable[7] /*listnode6*/); /*new ACallExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label910: while(false);
   tracehead = trace.prev;
   return;
@@ -27197,9 +27197,9 @@ void parser___ReduceAction440___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -27209,20 +27209,20 @@ void parser___ReduceAction440___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction440___action, LOCATE_parser, 15164); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable[7] /*tkwsupernode3*/,  variable[6] /*listnode5*/); /*new ASuperExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label912: while(false);
   tracehead = trace.prev;
   return;
@@ -27249,11 +27249,11 @@ void parser___ReduceAction441___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -27266,20 +27266,20 @@ void parser___ReduceAction441___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction441___action, LOCATE_parser, 15196); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( variable[8] /*pqualifiednode2*/,  variable[9] /*tkwsupernode3*/,  variable[7] /*listnode5*/); /*new ASuperExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label914: while(false);
   tracehead = trace.prev;
   return;
@@ -27306,15 +27306,15 @@ void parser___ReduceAction442___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -27327,20 +27327,20 @@ void parser___ReduceAction442___action(val_t  self, val_t  param0) {
   variable[12] =  variable[4] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction442___action, LOCATE_parser, 15230); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[10] /*pexprnode2*/,  variable[11] /*tkwinitnode3*/,  variable[9] /*listnode5*/); /*new AInitExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label916: while(false);
   tracehead = trace.prev;
   return;
@@ -27367,9 +27367,9 @@ void parser___ReduceAction443___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -27381,20 +27381,20 @@ void parser___ReduceAction443___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction443___action, LOCATE_parser, 15261); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[6] =  variable[9] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[7] /*pexprnode2*/,  variable[8] /*tkwinitnode3*/,  variable[6] /*listnode5*/); /*new AInitExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label918: while(false);
   tracehead = trace.prev;
   return;
@@ -27421,19 +27421,19 @@ void parser___ReduceAction444___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -27449,20 +27449,20 @@ void parser___ReduceAction444___action(val_t  self, val_t  param0) {
   variable[15] =  variable[4] /*nodearraylist7*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction444___action, LOCATE_parser, 15299); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode6*/)( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode6*/)( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[12] /*tkwnewnode2*/,  variable[13] /*ptypenode3*/,  variable[14] /*tidnode4*/,  variable[11] /*listnode6*/); /*new ANewExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label920: while(false);
   tracehead = trace.prev;
   return;
@@ -27489,7 +27489,7 @@ void parser___ReduceAction445___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
@@ -27497,8 +27497,8 @@ void parser___ReduceAction445___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr( variable[5] /*tkwselfnode2*/); /*new ASelfExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label922: while(false);
   tracehead = trace.prev;
   return;
@@ -27525,7 +27525,7 @@ void parser___ReduceAction446___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
@@ -27533,8 +27533,8 @@ void parser___ReduceAction446___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr( variable[5] /*tkwtruenode2*/); /*new ATrueExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label924: while(false);
   tracehead = trace.prev;
   return;
@@ -27561,7 +27561,7 @@ void parser___ReduceAction447___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
@@ -27569,8 +27569,8 @@ void parser___ReduceAction447___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr( variable[5] /*tkwfalsenode2*/); /*new AFalseExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label926: while(false);
   tracehead = trace.prev;
   return;
@@ -27597,7 +27597,7 @@ void parser___ReduceAction448___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
@@ -27605,8 +27605,8 @@ void parser___ReduceAction448___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr( variable[5] /*tkwnullnode2*/); /*new ANullExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label928: while(false);
   tracehead = trace.prev;
   return;
@@ -27633,7 +27633,7 @@ void parser___ReduceAction449___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
@@ -27641,8 +27641,8 @@ void parser___ReduceAction449___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr( variable[5] /*tnumbernode2*/); /*new AIntExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label930: while(false);
   tracehead = trace.prev;
   return;
@@ -27669,7 +27669,7 @@ void parser___ReduceAction450___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
@@ -27677,8 +27677,8 @@ void parser___ReduceAction450___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr( variable[5] /*tfloatnode2*/); /*new AFloatExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label932: while(false);
   tracehead = trace.prev;
   return;
@@ -27705,7 +27705,7 @@ void parser___ReduceAction451___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
@@ -27713,8 +27713,8 @@ void parser___ReduceAction451___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr( variable[5] /*tcharnode2*/); /*new ACharExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label934: while(false);
   tracehead = trace.prev;
   return;
@@ -27741,7 +27741,7 @@ void parser___ReduceAction452___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
@@ -27749,8 +27749,8 @@ void parser___ReduceAction452___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr( variable[5] /*tstringnode2*/); /*new AStringExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label936: while(false);
   tracehead = trace.prev;
   return;
@@ -27777,14 +27777,14 @@ void parser___ReduceAction453___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction453___action, LOCATE_parser, 15453); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label938: while(false);
   tracehead = trace.prev;
   return;
@@ -27811,18 +27811,18 @@ void parser___ReduceAction454___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[5] /*nodearraylist2*/;
   variable[8] = TAG_Bool(( variable[7] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction454___action, LOCATE_parser, 15468); nit_exit(1);}
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label940: while(false);
   tracehead = trace.prev;
   return;
@@ -27849,25 +27849,25 @@ void parser___ReduceAction455___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -27881,8 +27881,8 @@ void parser___ReduceAction455___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr( variable[14] /*pexprnode2*/,  variable[15] /*tkwasnode3*/,  variable[16] /*ptypenode4*/); /*new AAsCastExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(83)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label942: while(false);
   tracehead = trace.prev;
   return;
@@ -27909,14 +27909,14 @@ void parser___ReduceAction456___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction456___action, LOCATE_parser, 15512); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label944: while(false);
   tracehead = trace.prev;
   return;
@@ -27943,28 +27943,28 @@ void parser___ReduceAction457___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
   variable[9] =  variable[6] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction457___action, LOCATE_parser, 15529); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[9] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[9] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*pexprnode2*/)( variable[9] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[8] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*listnode3*/,  variable[9] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[8] /*listnode3*/)( variable[8] /*listnode3*/,  variable[9] /*pexprnode2*/) /*AbstractArray::add*/;
   }
   variable[11] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[8] /*listnode3*/); /*new ABlockExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label946: while(false);
   tracehead = trace.prev;
   return;
@@ -27991,15 +27991,15 @@ void parser___ReduceAction458___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -28009,24 +28009,24 @@ void parser___ReduceAction458___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction458___action, LOCATE_parser, 15555); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[10] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*pexprnode2*/)( variable[10] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*listnode4*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[10] /*pexprnode2*/) /*AbstractArray::add*/;
   }
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode3*/)( variable[11] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode4*/)( variable[9] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[9] =  variable[11] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  variable[11] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[9] /*listnode4*/); /*new ABlockExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label948: while(false);
   tracehead = trace.prev;
   return;
@@ -28053,17 +28053,17 @@ void parser___ReduceAction459___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
   variable[8] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[6] /*listnode2*/); /*new ABlockExpr*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label950: while(false);
   tracehead = trace.prev;
   return;
@@ -28090,15 +28090,15 @@ void parser___ReduceAction460___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[7] = NEW_ABlockExpr_parser_prod___ABlockExpr___init_ablockexpr( variable[5] /*listnode2*/); /*new ABlockExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(84)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label952: while(false);
   tracehead = trace.prev;
   return;
@@ -28125,14 +28125,14 @@ void parser___ReduceAction461___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction461___action, LOCATE_parser, 15612); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label954: while(false);
   tracehead = trace.prev;
   return;
@@ -28159,14 +28159,14 @@ void parser___ReduceAction462___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction462___action, LOCATE_parser, 15625); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label956: while(false);
   tracehead = trace.prev;
   return;
@@ -28193,7 +28193,7 @@ void parser___ReduceAction463___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
@@ -28201,8 +28201,8 @@ void parser___ReduceAction463___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr( variable[5] /*tkwreturnnode2*/,  NIT_NULL /*null*/); /*new AReturnExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label958: while(false);
   tracehead = trace.prev;
   return;
@@ -28229,9 +28229,9 @@ void parser___ReduceAction464___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwreturnnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwreturnnode2*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
@@ -28242,8 +28242,8 @@ void parser___ReduceAction464___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AReturnExpr_parser_prod___AReturnExpr___init_areturnexpr( variable[6] /*tkwreturnnode2*/,  variable[7] /*pexprnode3*/); /*new AReturnExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label960: while(false);
   tracehead = trace.prev;
   return;
@@ -28270,7 +28270,7 @@ void parser___ReduceAction465___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwbreaknode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwbreaknode2*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
@@ -28278,8 +28278,8 @@ void parser___ReduceAction465___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr( variable[5] /*tkwbreaknode2*/,  NIT_NULL /*null*/); /*new ABreakExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label962: while(false);
   tracehead = trace.prev;
   return;
@@ -28306,9 +28306,9 @@ void parser___ReduceAction466___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwbreaknode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwbreaknode2*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
@@ -28319,8 +28319,8 @@ void parser___ReduceAction466___action(val_t  self, val_t  param0) {
   variable[9] = NEW_ABreakExpr_parser_prod___ABreakExpr___init_abreakexpr( variable[6] /*tkwbreaknode2*/,  variable[7] /*pexprnode3*/); /*new ABreakExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label964: while(false);
   tracehead = trace.prev;
   return;
@@ -28347,7 +28347,7 @@ void parser___ReduceAction467___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwabortnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwabortnode2*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
@@ -28355,8 +28355,8 @@ void parser___ReduceAction467___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AAbortExpr_parser_prod___AAbortExpr___init_aabortexpr( variable[5] /*tkwabortnode2*/); /*new AAbortExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label966: while(false);
   tracehead = trace.prev;
   return;
@@ -28383,7 +28383,7 @@ void parser___ReduceAction468___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwcontinuenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwcontinuenode2*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
@@ -28391,8 +28391,8 @@ void parser___ReduceAction468___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr( variable[5] /*tkwcontinuenode2*/,  NIT_NULL /*null*/); /*new AContinueExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label968: while(false);
   tracehead = trace.prev;
   return;
@@ -28419,9 +28419,9 @@ void parser___ReduceAction469___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwcontinuenode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwcontinuenode2*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
@@ -28432,8 +28432,8 @@ void parser___ReduceAction469___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AContinueExpr_parser_prod___AContinueExpr___init_acontinueexpr( variable[6] /*tkwcontinuenode2*/,  variable[7] /*pexprnode3*/); /*new AContinueExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label970: while(false);
   tracehead = trace.prev;
   return;
@@ -28460,14 +28460,14 @@ void parser___ReduceAction470___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction470___action, LOCATE_parser, 15765); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label972: while(false);
   tracehead = trace.prev;
   return;
@@ -28494,14 +28494,14 @@ void parser___ReduceAction471___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction471___action, LOCATE_parser, 15778); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label974: while(false);
   tracehead = trace.prev;
   return;
@@ -28528,14 +28528,14 @@ void parser___ReduceAction472___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction472___action, LOCATE_parser, 15791); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label976: while(false);
   tracehead = trace.prev;
   return;
@@ -28562,14 +28562,14 @@ void parser___ReduceAction473___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction473___action, LOCATE_parser, 15804); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label978: while(false);
   tracehead = trace.prev;
   return;
@@ -28596,14 +28596,14 @@ void parser___ReduceAction474___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction474___action, LOCATE_parser, 15817); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label980: while(false);
   tracehead = trace.prev;
   return;
@@ -28630,15 +28630,15 @@ void parser___ReduceAction475___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -28653,20 +28653,20 @@ void parser___ReduceAction475___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist5*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction475___action, LOCATE_parser, 15840); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[9] =  variable[13] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[11] /*pexprnode2*/,  variable[12] /*tidnode3*/,  variable[9] /*listnode5*/,  variable[10] /*listnode6*/); /*new ACallExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label982: while(false);
   tracehead = trace.prev;
   return;
@@ -28693,9 +28693,9 @@ void parser___ReduceAction476___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -28709,20 +28709,20 @@ void parser___ReduceAction476___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction476___action, LOCATE_parser, 15873); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[6] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[8] /*pexprnode2*/,  variable[9] /*tidnode3*/,  variable[6] /*listnode5*/,  variable[7] /*listnode6*/); /*new ACallExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label984: while(false);
   tracehead = trace.prev;
   return;
@@ -28749,17 +28749,17 @@ void parser___ReduceAction477___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -28774,32 +28774,32 @@ void parser___ReduceAction477___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction477___action, LOCATE_parser, 15910); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction477___action, LOCATE_parser, 15919); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label986: while(false);
   tracehead = trace.prev;
   return;
@@ -28826,11 +28826,11 @@ void parser___ReduceAction478___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -28844,32 +28844,32 @@ void parser___ReduceAction478___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction478___action, LOCATE_parser, 15953); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction478___action, LOCATE_parser, 15962); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label988: while(false);
   tracehead = trace.prev;
   return;
@@ -28896,9 +28896,9 @@ void parser___ReduceAction479___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -28908,20 +28908,20 @@ void parser___ReduceAction479___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction479___action, LOCATE_parser, 15992); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable[7] /*tkwsupernode3*/,  variable[6] /*listnode5*/); /*new ASuperExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label990: while(false);
   tracehead = trace.prev;
   return;
@@ -28948,11 +28948,11 @@ void parser___ReduceAction480___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -28965,20 +28965,20 @@ void parser___ReduceAction480___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction480___action, LOCATE_parser, 16024); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( variable[8] /*pqualifiednode2*/,  variable[9] /*tkwsupernode3*/,  variable[7] /*listnode5*/); /*new ASuperExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label992: while(false);
   tracehead = trace.prev;
   return;
@@ -29005,15 +29005,15 @@ void parser___ReduceAction481___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -29026,20 +29026,20 @@ void parser___ReduceAction481___action(val_t  self, val_t  param0) {
   variable[12] =  variable[4] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction481___action, LOCATE_parser, 16058); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[10] /*pexprnode2*/,  variable[11] /*tkwinitnode3*/,  variable[9] /*listnode5*/); /*new AInitExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label994: while(false);
   tracehead = trace.prev;
   return;
@@ -29066,9 +29066,9 @@ void parser___ReduceAction482___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -29080,20 +29080,20 @@ void parser___ReduceAction482___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction482___action, LOCATE_parser, 16089); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[6] =  variable[9] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[7] /*pexprnode2*/,  variable[8] /*tkwinitnode3*/,  variable[6] /*listnode5*/); /*new AInitExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(85)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label996: while(false);
   tracehead = trace.prev;
   return;
@@ -29120,20 +29120,20 @@ void parser___ReduceAction483___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pclosuredefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pclosuredefnode1*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction483___action, LOCATE_parser, 16115); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclosuredefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclosuredefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pclosuredefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pclosuredefnode1*/)( variable[6] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pclosuredefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pclosuredefnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(86)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(86)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label998: while(false);
   tracehead = trace.prev;
   return;
@@ -29160,9 +29160,9 @@ void parser___ReduceAction484___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -29172,22 +29172,22 @@ void parser___ReduceAction484___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction484___action, LOCATE_parser, 16135); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pclosuredefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*pclosuredefnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*pclosuredefnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*pclosuredefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*pclosuredefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*pclosuredefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*pclosuredefnode1*/)( variable[7] /*pclosuredefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[7] /*pclosuredefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*pclosuredefnode1*/) /*AbstractArray::add*/;
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(86)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(86)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1000: while(false);
   tracehead = trace.prev;
   return;
@@ -29214,11 +29214,11 @@ void parser___ReduceAction485___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -29234,8 +29234,8 @@ void parser___ReduceAction485___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[8] /*tkwwithnode2*/,  variable[7] /*listnode3*/,  variable[9] /*tkwdonode4*/,  variable[10] /*pexprnode5*/); /*new AClosureDef*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1002: while(false);
   tracehead = trace.prev;
   return;
@@ -29262,13 +29262,13 @@ void parser___ReduceAction486___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -29278,13 +29278,13 @@ void parser___ReduceAction486___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction486___action, LOCATE_parser, 16190); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[5] /*nodearraylist3*/;
@@ -29296,8 +29296,8 @@ void parser___ReduceAction486___action(val_t  self, val_t  param0) {
   variable[14] = NEW_AClosureDef_parser_prod___AClosureDef___init_aclosuredef( variable[9] /*tkwwithnode2*/,  variable[8] /*listnode4*/,  variable[11] /*tkwdonode5*/,  variable[12] /*pexprnode6*/); /*new AClosureDef*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pclosuredefnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(87)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1004: while(false);
   tracehead = trace.prev;
   return;
@@ -29324,9 +29324,9 @@ void parser___ReduceAction487___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -29337,8 +29337,8 @@ void parser___ReduceAction487___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[6] /*tkwvarnode2*/,  variable[7] /*tidnode3*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AVardeclExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1006: while(false);
   tracehead = trace.prev;
   return;
@@ -29365,11 +29365,11 @@ void parser___ReduceAction488___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -29383,8 +29383,8 @@ void parser___ReduceAction488___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[7] /*tkwvarnode2*/,  variable[8] /*tidnode3*/,  variable[9] /*ptypenode4*/,  NIT_NULL /*null*/,  NIT_NULL /*null*/); /*new AVardeclExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1008: while(false);
   tracehead = trace.prev;
   return;
@@ -29411,15 +29411,15 @@ void parser___ReduceAction489___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[9] =  variable[8] /*nodearraylist1*/;
   variable[10] = TAG_Bool(( variable[9] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[9] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -29436,8 +29436,8 @@ void parser___ReduceAction489___action(val_t  self, val_t  param0) {
   variable[14] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[9] /*tkwvarnode2*/,  variable[10] /*tidnode3*/,  NIT_NULL /*null*/,  variable[11] /*tassignnode5*/,  variable[12] /*pexprnode6*/); /*new AVardeclExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1010: while(false);
   tracehead = trace.prev;
   return;
@@ -29464,17 +29464,17 @@ void parser___ReduceAction490___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*tkwvarnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*tkwvarnode2*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
@@ -29494,8 +29494,8 @@ void parser___ReduceAction490___action(val_t  self, val_t  param0) {
   variable[16] = NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr( variable[10] /*tkwvarnode2*/,  variable[11] /*tidnode3*/,  variable[12] /*ptypenode4*/,  variable[13] /*tassignnode5*/,  variable[14] /*pexprnode6*/); /*new AVardeclExpr*/
   variable[15] = variable[16];
   variable[3] =  variable[15] /*pexprnode1*/ /*node_list=*/;
-  variable[16] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[16] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(88)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[16],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1012: while(false);
   tracehead = trace.prev;
   return;
@@ -29522,17 +29522,17 @@ void parser___ReduceAction491___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -29549,8 +29549,8 @@ void parser___ReduceAction491___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr( variable[10] /*pexprnode2*/,  variable[11] /*tattridnode3*/,  variable[12] /*tassignnode4*/,  variable[13] /*pexprnode5*/); /*new AAttrAssignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1014: while(false);
   tracehead = trace.prev;
   return;
@@ -29577,11 +29577,11 @@ void parser___ReduceAction492___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[7] = variable[8];
@@ -29597,8 +29597,8 @@ void parser___ReduceAction492___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AAttrAssignExpr_parser_prod___AAttrAssignExpr___init_aattrassignexpr( variable[7] /*pexprnode2*/,  variable[8] /*tattridnode3*/,  variable[9] /*tassignnode4*/,  variable[10] /*pexprnode5*/); /*new AAttrAssignExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1016: while(false);
   tracehead = trace.prev;
   return;
@@ -29625,19 +29625,19 @@ void parser___ReduceAction493___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -29650,13 +29650,13 @@ void parser___ReduceAction493___action(val_t  self, val_t  param0) {
   variable[14] =  variable[6] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction493___action, LOCATE_parser, 16400); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode5*/)( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[11] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[5] /*nodearraylist6*/;
@@ -29668,8 +29668,8 @@ void parser___ReduceAction493___action(val_t  self, val_t  param0) {
   variable[18] = NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[11] /*listnode5*/,  variable[15] /*tassignnode6*/,  variable[16] /*pexprnode7*/); /*new ACallAssignExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1018: while(false);
   tracehead = trace.prev;
   return;
@@ -29696,13 +29696,13 @@ void parser___ReduceAction494___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -29714,13 +29714,13 @@ void parser___ReduceAction494___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction494___action, LOCATE_parser, 16439); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode5*/)( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode5*/)( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[5] /*nodearraylist3*/;
@@ -29732,8 +29732,8 @@ void parser___ReduceAction494___action(val_t  self, val_t  param0) {
   variable[15] = NEW_ACallAssignExpr_parser_prod___ACallAssignExpr___init_acallassignexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[8] /*listnode5*/,  variable[12] /*tassignnode6*/,  variable[13] /*pexprnode7*/); /*new ACallAssignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1020: while(false);
   tracehead = trace.prev;
   return;
@@ -29760,13 +29760,13 @@ void parser___ReduceAction495___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -29776,13 +29776,13 @@ void parser___ReduceAction495___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction495___action, LOCATE_parser, 16476); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[5] /*nodearraylist3*/;
@@ -29794,8 +29794,8 @@ void parser___ReduceAction495___action(val_t  self, val_t  param0) {
   variable[14] = NEW_ABraAssignExpr_parser_prod___ABraAssignExpr___init_abraassignexpr( variable[9] /*pexprnode2*/,  variable[8] /*listnode4*/,  variable[11] /*tassignnode5*/,  variable[12] /*pexprnode6*/); /*new ABraAssignExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1022: while(false);
   tracehead = trace.prev;
   return;
@@ -29822,17 +29822,17 @@ void parser___ReduceAction496___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[10] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -29849,8 +29849,8 @@ void parser___ReduceAction496___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr( variable[10] /*pexprnode2*/,  variable[11] /*tattridnode3*/,  variable[12] /*passignopnode4*/,  variable[13] /*pexprnode5*/); /*new AAttrReassignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1024: while(false);
   tracehead = trace.prev;
   return;
@@ -29877,11 +29877,11 @@ void parser___ReduceAction497___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[7] = variable[8];
@@ -29897,8 +29897,8 @@ void parser___ReduceAction497___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AAttrReassignExpr_parser_prod___AAttrReassignExpr___init_aattrreassignexpr( variable[7] /*pexprnode2*/,  variable[8] /*tattridnode3*/,  variable[9] /*passignopnode4*/,  variable[10] /*pexprnode5*/); /*new AAttrReassignExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1026: while(false);
   tracehead = trace.prev;
   return;
@@ -29925,19 +29925,19 @@ void parser___ReduceAction498___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -29950,13 +29950,13 @@ void parser___ReduceAction498___action(val_t  self, val_t  param0) {
   variable[14] =  variable[6] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction498___action, LOCATE_parser, 16574); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode5*/)( variable[11] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[11] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[5] /*nodearraylist6*/;
@@ -29968,8 +29968,8 @@ void parser___ReduceAction498___action(val_t  self, val_t  param0) {
   variable[18] = NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[11] /*listnode5*/,  variable[15] /*passignopnode6*/,  variable[16] /*pexprnode7*/); /*new ACallReassignExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1028: while(false);
   tracehead = trace.prev;
   return;
@@ -29996,13 +29996,13 @@ void parser___ReduceAction499___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -30014,13 +30014,13 @@ void parser___ReduceAction499___action(val_t  self, val_t  param0) {
   variable[11] =  variable[6] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction499___action, LOCATE_parser, 16613); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode5*/)( variable[8] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode5*/)( variable[8] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[5] /*nodearraylist3*/;
@@ -30032,8 +30032,8 @@ void parser___ReduceAction499___action(val_t  self, val_t  param0) {
   variable[15] = NEW_ACallReassignExpr_parser_prod___ACallReassignExpr___init_acallreassignexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[8] /*listnode5*/,  variable[12] /*passignopnode6*/,  variable[13] /*pexprnode7*/); /*new ACallReassignExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1030: while(false);
   tracehead = trace.prev;
   return;
@@ -30060,13 +30060,13 @@ void parser___ReduceAction500___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -30076,13 +30076,13 @@ void parser___ReduceAction500___action(val_t  self, val_t  param0) {
   variable[10] =  variable[6] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction500___action, LOCATE_parser, 16650); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode4*/)( variable[8] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[8] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[5] /*nodearraylist3*/;
@@ -30094,8 +30094,8 @@ void parser___ReduceAction500___action(val_t  self, val_t  param0) {
   variable[14] = NEW_ABraReassignExpr_parser_prod___ABraReassignExpr___init_abrareassignexpr( variable[9] /*pexprnode2*/,  variable[8] /*listnode4*/,  variable[11] /*passignopnode5*/,  variable[12] /*pexprnode6*/); /*new ABraReassignExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(89)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1032: while(false);
   tracehead = trace.prev;
   return;
@@ -30122,9 +30122,9 @@ void parser___ReduceAction501___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwdonode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwdonode2*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
@@ -30135,8 +30135,8 @@ void parser___ReduceAction501___action(val_t  self, val_t  param0) {
   variable[9] = NEW_ADoExpr_parser_prod___ADoExpr___init_adoexpr( variable[6] /*tkwdonode2*/,  variable[7] /*pexprnode3*/); /*new ADoExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(90)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1034: while(false);
   tracehead = trace.prev;
   return;
@@ -30163,21 +30163,21 @@ void parser___ReduceAction502___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
   variable[12] =  variable[11] /*nodearraylist1*/;
   variable[13] = TAG_Bool(( variable[12] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[12] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -30194,8 +30194,8 @@ void parser___ReduceAction502___action(val_t  self, val_t  param0) {
   variable[17] = NEW_AIfExpr_parser_prod___AIfExpr___init_aifexpr( variable[12] /*tkwifnode2*/,  variable[13] /*pexprnode3*/,  variable[14] /*pexprnode4*/,  variable[15] /*pexprnode5*/); /*new AIfExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(91)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(91)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1036: while(false);
   tracehead = trace.prev;
   return;
@@ -30222,17 +30222,17 @@ void parser___ReduceAction503___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[10] =  variable[9] /*nodearraylist1*/;
   variable[11] = TAG_Bool(( variable[10] /*tkwwhilenode2*/==NIT_NULL) || VAL_ISA( variable[10] /*tkwwhilenode2*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
@@ -30249,8 +30249,8 @@ void parser___ReduceAction503___action(val_t  self, val_t  param0) {
   variable[15] = NEW_AWhileExpr_parser_prod___AWhileExpr___init_awhileexpr( variable[10] /*tkwwhilenode2*/,  variable[11] /*pexprnode3*/,  variable[12] /*tkwdonode4*/,  variable[13] /*pexprnode5*/); /*new AWhileExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(92)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(92)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1038: while(false);
   tracehead = trace.prev;
   return;
@@ -30277,13 +30277,13 @@ void parser___ReduceAction504___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -30297,8 +30297,8 @@ void parser___ReduceAction504___action(val_t  self, val_t  param0) {
   variable[12] = NEW_AForExpr_parser_prod___AForExpr___init_aforexpr( variable[8] /*pexprnode2*/,  variable[9] /*tkwdonode3*/,  variable[10] /*pexprnode4*/); /*new AForExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(93)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(93)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1040: while(false);
   tracehead = trace.prev;
   return;
@@ -30325,9 +30325,9 @@ void parser___ReduceAction505___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tkwassertnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*tkwassertnode2*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
@@ -30338,8 +30338,8 @@ void parser___ReduceAction505___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr( variable[6] /*tkwassertnode2*/,  NIT_NULL /*null*/,  variable[7] /*pexprnode4*/); /*new AAssertExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(94)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(94)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1042: while(false);
   tracehead = trace.prev;
   return;
@@ -30366,11 +30366,11 @@ void parser___ReduceAction506___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwassertnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwassertnode2*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
@@ -30384,8 +30384,8 @@ void parser___ReduceAction506___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr( variable[7] /*tkwassertnode2*/,  variable[8] /*tidnode3*/,  variable[9] /*pexprnode4*/); /*new AAssertExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(94)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(94)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1044: while(false);
   tracehead = trace.prev;
   return;
@@ -30412,14 +30412,14 @@ void parser___ReduceAction507___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction507___action, LOCATE_parser, 16832); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1046: while(false);
   tracehead = trace.prev;
   return;
@@ -30446,17 +30446,17 @@ void parser___ReduceAction508___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -30471,32 +30471,32 @@ void parser___ReduceAction508___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction508___action, LOCATE_parser, 16856); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction508___action, LOCATE_parser, 16865); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1048: while(false);
   tracehead = trace.prev;
   return;
@@ -30523,11 +30523,11 @@ void parser___ReduceAction509___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -30541,32 +30541,32 @@ void parser___ReduceAction509___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction509___action, LOCATE_parser, 16899); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction509___action, LOCATE_parser, 16908); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1050: while(false);
   tracehead = trace.prev;
   return;
@@ -30593,11 +30593,11 @@ void parser___ReduceAction510___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -30609,32 +30609,32 @@ void parser___ReduceAction510___action(val_t  self, val_t  param0) {
   variable[10] =  variable[5] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction510___action, LOCATE_parser, 16940); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode3*/)( variable[10] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode4*/)( variable[7] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode4*/)( variable[7] /*listnode4*/,  variable[10] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction510___action, LOCATE_parser, 16949); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ABraExpr_parser_prod___ABraExpr___init_abraexpr( variable[9] /*pexprnode2*/,  variable[7] /*listnode4*/,  variable[8] /*listnode6*/); /*new ABraExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(95)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1052: while(false);
   tracehead = trace.prev;
   return;
@@ -30661,14 +30661,14 @@ void parser___ReduceAction511___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction511___action, LOCATE_parser, 16974); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1054: while(false);
   tracehead = trace.prev;
   return;
@@ -30695,17 +30695,17 @@ void parser___ReduceAction512___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -30720,32 +30720,32 @@ void parser___ReduceAction512___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction512___action, LOCATE_parser, 16998); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction512___action, LOCATE_parser, 17007); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1056: while(false);
   tracehead = trace.prev;
   return;
@@ -30772,11 +30772,11 @@ void parser___ReduceAction513___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -30790,32 +30790,32 @@ void parser___ReduceAction513___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction513___action, LOCATE_parser, 17041); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction513___action, LOCATE_parser, 17050); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(96)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1058: while(false);
   tracehead = trace.prev;
   return;
@@ -30842,7 +30842,7 @@ void parser___ReduceAction514___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -30852,8 +30852,8 @@ void parser___ReduceAction514___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AType_parser_prod___AType___init_atype( variable[6] /*tclassidnode2*/,  variable[5] /*listnode3*/); /*new AType*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*ptypenode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1060: while(false);
   tracehead = trace.prev;
   return;
@@ -30880,17 +30880,17 @@ void parser___ReduceAction515___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -30900,20 +30900,20 @@ void parser___ReduceAction515___action(val_t  self, val_t  param0) {
   variable[12] =  variable[6] /*nodearraylist4*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode3*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode3*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction515___action, LOCATE_parser, 17102); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode3*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode3*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode3*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode3*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode3*/)( variable[12] /*listnode3*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode4*/)( variable[10] /*listnode4*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[10] =  variable[12] /*listnode3*/ /*listnode4=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode4*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  variable[12] /*listnode3*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_AType_parser_prod___AType___init_atype( variable[11] /*tclassidnode2*/,  variable[10] /*listnode4*/); /*new AType*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*ptypenode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(97)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1062: while(false);
   tracehead = trace.prev;
   return;
@@ -30940,14 +30940,14 @@ void parser___ReduceAction516___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction516___action, LOCATE_parser, 17126); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1064: while(false);
   tracehead = trace.prev;
   return;
@@ -30974,17 +30974,17 @@ void parser___ReduceAction517___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -30999,32 +30999,32 @@ void parser___ReduceAction517___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction517___action, LOCATE_parser, 17150); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction517___action, LOCATE_parser, 17159); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1066: while(false);
   tracehead = trace.prev;
   return;
@@ -31051,11 +31051,11 @@ void parser___ReduceAction518___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -31069,32 +31069,32 @@ void parser___ReduceAction518___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction518___action, LOCATE_parser, 17193); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction518___action, LOCATE_parser, 17202); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(98)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1068: while(false);
   tracehead = trace.prev;
   return;
@@ -31121,14 +31121,14 @@ void parser___ReduceAction519___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction519___action, LOCATE_parser, 17228); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(99)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(99)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1070: while(false);
   tracehead = trace.prev;
   return;
@@ -31155,27 +31155,27 @@ void parser___ReduceAction520___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -31198,8 +31198,8 @@ void parser___ReduceAction520___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr( variable[15] /*tkwifnode2*/,  variable[16] /*pexprnode3*/,  variable[17] /*tkwthennode4*/,  variable[18] /*pexprnode5*/,  variable[19] /*tkwelsenode6*/,  variable[20] /*pexprnode7*/); /*new AIfexprExpr*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*pexprnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(99)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(99)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1072: while(false);
   tracehead = trace.prev;
   return;
@@ -31226,14 +31226,14 @@ void parser___ReduceAction521___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction521___action, LOCATE_parser, 17282); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1074: while(false);
   tracehead = trace.prev;
   return;
@@ -31260,13 +31260,13 @@ void parser___ReduceAction522___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31277,8 +31277,8 @@ void parser___ReduceAction522___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AOrExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1076: while(false);
   tracehead = trace.prev;
   return;
@@ -31305,13 +31305,13 @@ void parser___ReduceAction523___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31322,8 +31322,8 @@ void parser___ReduceAction523___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AAndExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(100)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1078: while(false);
   tracehead = trace.prev;
   return;
@@ -31350,14 +31350,14 @@ void parser___ReduceAction524___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction524___action, LOCATE_parser, 17339); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(101)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(101)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1080: while(false);
   tracehead = trace.prev;
   return;
@@ -31384,11 +31384,11 @@ void parser___ReduceAction525___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
@@ -31399,8 +31399,8 @@ void parser___ReduceAction525___action(val_t  self, val_t  param0) {
   variable[10] = NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr( variable[7] /*tkwnotnode2*/,  variable[8] /*pexprnode3*/); /*new ANotExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(101)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(101)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1082: while(false);
   tracehead = trace.prev;
   return;
@@ -31427,14 +31427,14 @@ void parser___ReduceAction526___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction526___action, LOCATE_parser, 17373); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1084: while(false);
   tracehead = trace.prev;
   return;
@@ -31461,13 +31461,13 @@ void parser___ReduceAction527___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31478,8 +31478,8 @@ void parser___ReduceAction527___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEqExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1086: while(false);
   tracehead = trace.prev;
   return;
@@ -31506,13 +31506,13 @@ void parser___ReduceAction528___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31523,8 +31523,8 @@ void parser___ReduceAction528___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1088: while(false);
   tracehead = trace.prev;
   return;
@@ -31551,13 +31551,13 @@ void parser___ReduceAction529___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31568,8 +31568,8 @@ void parser___ReduceAction529___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ANeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1090: while(false);
   tracehead = trace.prev;
   return;
@@ -31596,13 +31596,13 @@ void parser___ReduceAction530___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31613,8 +31613,8 @@ void parser___ReduceAction530___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1092: while(false);
   tracehead = trace.prev;
   return;
@@ -31641,13 +31641,13 @@ void parser___ReduceAction531___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31658,8 +31658,8 @@ void parser___ReduceAction531___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1094: while(false);
   tracehead = trace.prev;
   return;
@@ -31686,13 +31686,13 @@ void parser___ReduceAction532___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31703,8 +31703,8 @@ void parser___ReduceAction532___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1096: while(false);
   tracehead = trace.prev;
   return;
@@ -31731,13 +31731,13 @@ void parser___ReduceAction533___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31748,8 +31748,8 @@ void parser___ReduceAction533___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1098: while(false);
   tracehead = trace.prev;
   return;
@@ -31776,13 +31776,13 @@ void parser___ReduceAction534___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31793,8 +31793,8 @@ void parser___ReduceAction534___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarshipExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1100: while(false);
   tracehead = trace.prev;
   return;
@@ -31821,13 +31821,13 @@ void parser___ReduceAction535___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31838,8 +31838,8 @@ void parser___ReduceAction535___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr( variable[8] /*pexprnode2*/,  variable[9] /*ptypenode3*/); /*new AIsaExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(102)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1102: while(false);
   tracehead = trace.prev;
   return;
@@ -31866,14 +31866,14 @@ void parser___ReduceAction536___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction536___action, LOCATE_parser, 17584); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1104: while(false);
   tracehead = trace.prev;
   return;
@@ -31900,13 +31900,13 @@ void parser___ReduceAction537___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31917,8 +31917,8 @@ void parser___ReduceAction537___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APlusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1106: while(false);
   tracehead = trace.prev;
   return;
@@ -31945,13 +31945,13 @@ void parser___ReduceAction538___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -31962,8 +31962,8 @@ void parser___ReduceAction538___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AMinusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(103)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1108: while(false);
   tracehead = trace.prev;
   return;
@@ -31990,14 +31990,14 @@ void parser___ReduceAction539___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction539___action, LOCATE_parser, 17641); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1110: while(false);
   tracehead = trace.prev;
   return;
@@ -32024,13 +32024,13 @@ void parser___ReduceAction540___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -32041,8 +32041,8 @@ void parser___ReduceAction540___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1112: while(false);
   tracehead = trace.prev;
   return;
@@ -32069,13 +32069,13 @@ void parser___ReduceAction541___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -32086,8 +32086,8 @@ void parser___ReduceAction541___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ASlashExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1114: while(false);
   tracehead = trace.prev;
   return;
@@ -32114,13 +32114,13 @@ void parser___ReduceAction542___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -32131,8 +32131,8 @@ void parser___ReduceAction542___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APercentExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(104)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1116: while(false);
   tracehead = trace.prev;
   return;
@@ -32159,14 +32159,14 @@ void parser___ReduceAction543___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction543___action, LOCATE_parser, 17720); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1118: while(false);
   tracehead = trace.prev;
   return;
@@ -32193,11 +32193,11 @@ void parser___ReduceAction544___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
@@ -32208,8 +32208,8 @@ void parser___ReduceAction544___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr( variable[7] /*tminusnode2*/,  variable[8] /*pexprnode3*/); /*new AUminusExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1120: while(false);
   tracehead = trace.prev;
   return;
@@ -32236,11 +32236,11 @@ void parser___ReduceAction545___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
@@ -32251,8 +32251,8 @@ void parser___ReduceAction545___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr( variable[7] /*tkwoncenode2*/,  variable[8] /*pexprnode3*/); /*new AOnceExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(105)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1122: while(false);
   tracehead = trace.prev;
   return;
@@ -32279,14 +32279,14 @@ void parser___ReduceAction546___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction546___action, LOCATE_parser, 17775); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(106)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(106)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1124: while(false);
   tracehead = trace.prev;
   return;
@@ -32313,13 +32313,13 @@ void parser___ReduceAction547___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -32332,20 +32332,20 @@ void parser___ReduceAction547___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist4*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction547___action, LOCATE_parser, 17796); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[9] /*tkwnewnode2*/,  variable[10] /*ptypenode3*/,  NIT_NULL /*null*/,  variable[8] /*listnode6*/); /*new ANewExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(106)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(106)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1126: while(false);
   tracehead = trace.prev;
   return;
@@ -32372,13 +32372,13 @@ void parser___ReduceAction548___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -32389,8 +32389,8 @@ void parser___ReduceAction548___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[8] /*pexprnode2*/,  variable[9] /*tattridnode3*/); /*new AAttrExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1128: while(false);
   tracehead = trace.prev;
   return;
@@ -32417,7 +32417,7 @@ void parser___ReduceAction549___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[5] = variable[6];
@@ -32427,8 +32427,8 @@ void parser___ReduceAction549___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[5] /*pexprnode2*/,  variable[6] /*tattridnode3*/); /*new AAttrExpr*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1130: while(false);
   tracehead = trace.prev;
   return;
@@ -32455,15 +32455,15 @@ void parser___ReduceAction550___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -32478,20 +32478,20 @@ void parser___ReduceAction550___action(val_t  self, val_t  param0) {
   variable[13] =  variable[4] /*nodearraylist5*/;
   variable[14] = TAG_Bool(( variable[13] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[13] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction550___action, LOCATE_parser, 17873); nit_exit(1);}
-  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[13] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[14] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[13] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[13] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[13] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[13] /*listnode4*/)( variable[13] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[14])) { /*if*/
-    variable[14] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[14] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[14])) { /*if*/
       variable[9] =  variable[13] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[13] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[11] /*pexprnode2*/,  variable[12] /*tidnode3*/,  variable[9] /*listnode5*/,  variable[10] /*listnode6*/); /*new ACallExpr*/
   variable[14] = variable[15];
   variable[3] =  variable[14] /*pexprnode1*/ /*node_list=*/;
-  variable[15] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[15] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[15],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1132: while(false);
   tracehead = trace.prev;
   return;
@@ -32518,9 +32518,9 @@ void parser___ReduceAction551___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -32534,20 +32534,20 @@ void parser___ReduceAction551___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist2*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction551___action, LOCATE_parser, 17906); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[6] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[8] /*pexprnode2*/,  variable[9] /*tidnode3*/,  variable[6] /*listnode5*/,  variable[7] /*listnode6*/); /*new ACallExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1134: while(false);
   tracehead = trace.prev;
   return;
@@ -32574,9 +32574,9 @@ void parser___ReduceAction552___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -32586,20 +32586,20 @@ void parser___ReduceAction552___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction552___action, LOCATE_parser, 17936); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable[7] /*tkwsupernode3*/,  variable[6] /*listnode5*/); /*new ASuperExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1136: while(false);
   tracehead = trace.prev;
   return;
@@ -32626,11 +32626,11 @@ void parser___ReduceAction553___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -32643,20 +32643,20 @@ void parser___ReduceAction553___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction553___action, LOCATE_parser, 17968); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( variable[8] /*pqualifiednode2*/,  variable[9] /*tkwsupernode3*/,  variable[7] /*listnode5*/); /*new ASuperExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1138: while(false);
   tracehead = trace.prev;
   return;
@@ -32683,15 +32683,15 @@ void parser___ReduceAction554___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
   variable[10] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[9] = variable[10];
@@ -32704,20 +32704,20 @@ void parser___ReduceAction554___action(val_t  self, val_t  param0) {
   variable[12] =  variable[4] /*nodearraylist5*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction554___action, LOCATE_parser, 18002); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode4*/)( variable[12] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[9] /*listnode5*/)( variable[9] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[9] =  variable[12] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[9] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[9] /*listnode5*/)( variable[9] /*listnode5*/,  variable[12] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[10] /*pexprnode2*/,  variable[11] /*tkwinitnode3*/,  variable[9] /*listnode5*/); /*new AInitExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1140: while(false);
   tracehead = trace.prev;
   return;
@@ -32744,9 +32744,9 @@ void parser___ReduceAction555___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -32758,20 +32758,20 @@ void parser___ReduceAction555___action(val_t  self, val_t  param0) {
   variable[9] =  variable[4] /*nodearraylist2*/;
   variable[10] = TAG_Bool(( variable[9] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[9] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction555___action, LOCATE_parser, 18033); nit_exit(1);}
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[9] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*listnode4*/)( variable[9] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[10] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[10] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[10])) { /*if*/
       variable[6] =  variable[9] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[9] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[11] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[7] /*pexprnode2*/,  variable[8] /*tkwinitnode3*/,  variable[6] /*listnode5*/); /*new AInitExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1142: while(false);
   tracehead = trace.prev;
   return;
@@ -32798,19 +32798,19 @@ void parser___ReduceAction556___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -32826,20 +32826,20 @@ void parser___ReduceAction556___action(val_t  self, val_t  param0) {
   variable[15] =  variable[4] /*nodearraylist7*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction556___action, LOCATE_parser, 18071); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode6*/)( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode6*/)( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[12] /*tkwnewnode2*/,  variable[13] /*ptypenode3*/,  variable[14] /*tidnode4*/,  variable[11] /*listnode6*/); /*new ANewExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1144: while(false);
   tracehead = trace.prev;
   return;
@@ -32866,7 +32866,7 @@ void parser___ReduceAction557___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
@@ -32874,8 +32874,8 @@ void parser___ReduceAction557___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr( variable[5] /*tkwselfnode2*/); /*new ASelfExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1146: while(false);
   tracehead = trace.prev;
   return;
@@ -32902,7 +32902,7 @@ void parser___ReduceAction558___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
@@ -32910,8 +32910,8 @@ void parser___ReduceAction558___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr( variable[5] /*tkwtruenode2*/); /*new ATrueExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1148: while(false);
   tracehead = trace.prev;
   return;
@@ -32938,7 +32938,7 @@ void parser___ReduceAction559___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
@@ -32946,8 +32946,8 @@ void parser___ReduceAction559___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr( variable[5] /*tkwfalsenode2*/); /*new AFalseExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1150: while(false);
   tracehead = trace.prev;
   return;
@@ -32974,7 +32974,7 @@ void parser___ReduceAction560___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
@@ -32982,8 +32982,8 @@ void parser___ReduceAction560___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr( variable[5] /*tkwnullnode2*/); /*new ANullExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1152: while(false);
   tracehead = trace.prev;
   return;
@@ -33010,7 +33010,7 @@ void parser___ReduceAction561___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
@@ -33018,8 +33018,8 @@ void parser___ReduceAction561___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr( variable[5] /*tnumbernode2*/); /*new AIntExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1154: while(false);
   tracehead = trace.prev;
   return;
@@ -33046,7 +33046,7 @@ void parser___ReduceAction562___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
@@ -33054,8 +33054,8 @@ void parser___ReduceAction562___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr( variable[5] /*tfloatnode2*/); /*new AFloatExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1156: while(false);
   tracehead = trace.prev;
   return;
@@ -33082,7 +33082,7 @@ void parser___ReduceAction563___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
@@ -33090,8 +33090,8 @@ void parser___ReduceAction563___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr( variable[5] /*tcharnode2*/); /*new ACharExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1158: while(false);
   tracehead = trace.prev;
   return;
@@ -33118,7 +33118,7 @@ void parser___ReduceAction564___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
@@ -33126,8 +33126,8 @@ void parser___ReduceAction564___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr( variable[5] /*tstringnode2*/); /*new AStringExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1160: while(false);
   tracehead = trace.prev;
   return;
@@ -33154,14 +33154,14 @@ void parser___ReduceAction565___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction565___action, LOCATE_parser, 18225); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1162: while(false);
   tracehead = trace.prev;
   return;
@@ -33188,25 +33188,25 @@ void parser___ReduceAction566___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -33220,8 +33220,8 @@ void parser___ReduceAction566___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr( variable[14] /*pexprnode2*/,  variable[15] /*tkwasnode3*/,  variable[16] /*ptypenode4*/); /*new AAsCastExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(107)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1164: while(false);
   tracehead = trace.prev;
   return;
@@ -33248,7 +33248,7 @@ void parser___ReduceAction567___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
@@ -33258,8 +33258,8 @@ void parser___ReduceAction567___action(val_t  self, val_t  param0) {
   variable[8] = NEW_AType_parser_prod___AType___init_atype( variable[6] /*tclassidnode2*/,  variable[5] /*listnode3*/); /*new AType*/
   variable[7] = variable[8];
   variable[3] =  variable[7] /*ptypenode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(108)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(108)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1166: while(false);
   tracehead = trace.prev;
   return;
@@ -33286,14 +33286,14 @@ void parser___ReduceAction568___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction568___action, LOCATE_parser, 18287); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1168: while(false);
   tracehead = trace.prev;
   return;
@@ -33320,17 +33320,17 @@ void parser___ReduceAction569___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -33345,32 +33345,32 @@ void parser___ReduceAction569___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction569___action, LOCATE_parser, 18311); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction569___action, LOCATE_parser, 18320); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1170: while(false);
   tracehead = trace.prev;
   return;
@@ -33397,11 +33397,11 @@ void parser___ReduceAction570___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -33415,32 +33415,32 @@ void parser___ReduceAction570___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction570___action, LOCATE_parser, 18354); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction570___action, LOCATE_parser, 18363); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(109)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1172: while(false);
   tracehead = trace.prev;
   return;
@@ -33467,14 +33467,14 @@ void parser___ReduceAction571___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction571___action, LOCATE_parser, 18389); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(110)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(110)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1174: while(false);
   tracehead = trace.prev;
   return;
@@ -33501,27 +33501,27 @@ void parser___ReduceAction572___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
-  variable[15] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[15] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[14] = variable[15];
   variable[15] =  variable[14] /*nodearraylist1*/;
   variable[16] = TAG_Bool(( variable[15] /*tkwifnode2*/==NIT_NULL) || VAL_ISA( variable[15] /*tkwifnode2*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
@@ -33544,8 +33544,8 @@ void parser___ReduceAction572___action(val_t  self, val_t  param0) {
   variable[22] = NEW_AIfexprExpr_parser_prod___AIfexprExpr___init_aifexprexpr( variable[15] /*tkwifnode2*/,  variable[16] /*pexprnode3*/,  variable[17] /*tkwthennode4*/,  variable[18] /*pexprnode5*/,  variable[19] /*tkwelsenode6*/,  variable[20] /*pexprnode7*/); /*new AIfexprExpr*/
   variable[21] = variable[22];
   variable[3] =  variable[21] /*pexprnode1*/ /*node_list=*/;
-  variable[22] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(110)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[22] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(110)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[22],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1176: while(false);
   tracehead = trace.prev;
   return;
@@ -33572,14 +33572,14 @@ void parser___ReduceAction573___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction573___action, LOCATE_parser, 18443); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1178: while(false);
   tracehead = trace.prev;
   return;
@@ -33606,13 +33606,13 @@ void parser___ReduceAction574___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -33623,8 +33623,8 @@ void parser___ReduceAction574___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AOrExpr_parser_prod___AOrExpr___init_aorexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AOrExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1180: while(false);
   tracehead = trace.prev;
   return;
@@ -33651,13 +33651,13 @@ void parser___ReduceAction575___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -33668,8 +33668,8 @@ void parser___ReduceAction575___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AAndExpr_parser_prod___AAndExpr___init_aandexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AAndExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(111)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1182: while(false);
   tracehead = trace.prev;
   return;
@@ -33696,14 +33696,14 @@ void parser___ReduceAction576___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction576___action, LOCATE_parser, 18500); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(112)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(112)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1184: while(false);
   tracehead = trace.prev;
   return;
@@ -33730,11 +33730,11 @@ void parser___ReduceAction577___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwnotnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwnotnode2*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
@@ -33745,8 +33745,8 @@ void parser___ReduceAction577___action(val_t  self, val_t  param0) {
   variable[10] = NEW_ANotExpr_parser_prod___ANotExpr___init_anotexpr( variable[7] /*tkwnotnode2*/,  variable[8] /*pexprnode3*/); /*new ANotExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(112)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(112)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1186: while(false);
   tracehead = trace.prev;
   return;
@@ -33773,14 +33773,14 @@ void parser___ReduceAction578___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction578___action, LOCATE_parser, 18534); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1188: while(false);
   tracehead = trace.prev;
   return;
@@ -33807,13 +33807,13 @@ void parser___ReduceAction579___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -33824,8 +33824,8 @@ void parser___ReduceAction579___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEqExpr_parser_prod___AEqExpr___init_aeqexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEqExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1190: while(false);
   tracehead = trace.prev;
   return;
@@ -33852,13 +33852,13 @@ void parser___ReduceAction580___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -33869,8 +33869,8 @@ void parser___ReduceAction580___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AEeExpr_parser_prod___AEeExpr___init_aeeexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AEeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1192: while(false);
   tracehead = trace.prev;
   return;
@@ -33897,13 +33897,13 @@ void parser___ReduceAction581___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -33914,8 +33914,8 @@ void parser___ReduceAction581___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ANeExpr_parser_prod___ANeExpr___init_aneexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ANeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1194: while(false);
   tracehead = trace.prev;
   return;
@@ -33942,13 +33942,13 @@ void parser___ReduceAction582___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -33959,8 +33959,8 @@ void parser___ReduceAction582___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALtExpr_parser_prod___ALtExpr___init_altexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1196: while(false);
   tracehead = trace.prev;
   return;
@@ -33987,13 +33987,13 @@ void parser___ReduceAction583___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34004,8 +34004,8 @@ void parser___ReduceAction583___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ALeExpr_parser_prod___ALeExpr___init_aleexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ALeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1198: while(false);
   tracehead = trace.prev;
   return;
@@ -34032,13 +34032,13 @@ void parser___ReduceAction584___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34049,8 +34049,8 @@ void parser___ReduceAction584___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGtExpr_parser_prod___AGtExpr___init_agtexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGtExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1200: while(false);
   tracehead = trace.prev;
   return;
@@ -34077,13 +34077,13 @@ void parser___ReduceAction585___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34094,8 +34094,8 @@ void parser___ReduceAction585___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AGeExpr_parser_prod___AGeExpr___init_ageexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AGeExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1202: while(false);
   tracehead = trace.prev;
   return;
@@ -34122,13 +34122,13 @@ void parser___ReduceAction586___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34139,8 +34139,8 @@ void parser___ReduceAction586___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarshipExpr_parser_prod___AStarshipExpr___init_astarshipexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarshipExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1204: while(false);
   tracehead = trace.prev;
   return;
@@ -34167,13 +34167,13 @@ void parser___ReduceAction587___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34184,8 +34184,8 @@ void parser___ReduceAction587___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AIsaExpr_parser_prod___AIsaExpr___init_aisaexpr( variable[8] /*pexprnode2*/,  variable[9] /*ptypenode3*/); /*new AIsaExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(113)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1206: while(false);
   tracehead = trace.prev;
   return;
@@ -34212,14 +34212,14 @@ void parser___ReduceAction588___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction588___action, LOCATE_parser, 18745); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1208: while(false);
   tracehead = trace.prev;
   return;
@@ -34246,13 +34246,13 @@ void parser___ReduceAction589___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34263,8 +34263,8 @@ void parser___ReduceAction589___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APlusExpr_parser_prod___APlusExpr___init_aplusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APlusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1210: while(false);
   tracehead = trace.prev;
   return;
@@ -34291,13 +34291,13 @@ void parser___ReduceAction590___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34308,8 +34308,8 @@ void parser___ReduceAction590___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AMinusExpr_parser_prod___AMinusExpr___init_aminusexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AMinusExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(114)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1212: while(false);
   tracehead = trace.prev;
   return;
@@ -34336,14 +34336,14 @@ void parser___ReduceAction591___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction591___action, LOCATE_parser, 18802); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1214: while(false);
   tracehead = trace.prev;
   return;
@@ -34370,13 +34370,13 @@ void parser___ReduceAction592___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34387,8 +34387,8 @@ void parser___ReduceAction592___action(val_t  self, val_t  param0) {
   variable[11] = NEW_AStarExpr_parser_prod___AStarExpr___init_astarexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new AStarExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1216: while(false);
   tracehead = trace.prev;
   return;
@@ -34415,13 +34415,13 @@ void parser___ReduceAction593___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34432,8 +34432,8 @@ void parser___ReduceAction593___action(val_t  self, val_t  param0) {
   variable[11] = NEW_ASlashExpr_parser_prod___ASlashExpr___init_aslashexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new ASlashExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1218: while(false);
   tracehead = trace.prev;
   return;
@@ -34460,13 +34460,13 @@ void parser___ReduceAction594___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[8] =  variable[7] /*nodearraylist1*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34477,8 +34477,8 @@ void parser___ReduceAction594___action(val_t  self, val_t  param0) {
   variable[11] = NEW_APercentExpr_parser_prod___APercentExpr___init_apercentexpr( variable[8] /*pexprnode2*/,  variable[9] /*pexprnode3*/); /*new APercentExpr*/
   variable[10] = variable[11];
   variable[3] =  variable[10] /*pexprnode1*/ /*node_list=*/;
-  variable[11] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[11] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(115)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[11],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1220: while(false);
   tracehead = trace.prev;
   return;
@@ -34505,14 +34505,14 @@ void parser___ReduceAction595___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction595___action, LOCATE_parser, 18881); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(116)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(116)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1222: while(false);
   tracehead = trace.prev;
   return;
@@ -34539,11 +34539,11 @@ void parser___ReduceAction596___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tminusnode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tminusnode2*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
@@ -34554,8 +34554,8 @@ void parser___ReduceAction596___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AUminusExpr_parser_prod___AUminusExpr___init_auminusexpr( variable[7] /*tminusnode2*/,  variable[8] /*pexprnode3*/); /*new AUminusExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(116)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(116)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1224: while(false);
   tracehead = trace.prev;
   return;
@@ -34582,11 +34582,11 @@ void parser___ReduceAction597___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*tkwoncenode2*/==NIT_NULL) || VAL_ISA( variable[7] /*tkwoncenode2*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
@@ -34597,8 +34597,8 @@ void parser___ReduceAction597___action(val_t  self, val_t  param0) {
   variable[10] = NEW_AOnceExpr_parser_prod___AOnceExpr___init_aonceexpr( variable[7] /*tkwoncenode2*/,  variable[8] /*pexprnode3*/); /*new AOnceExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(116)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(116)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1226: while(false);
   tracehead = trace.prev;
   return;
@@ -34625,14 +34625,14 @@ void parser___ReduceAction598___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction598___action, LOCATE_parser, 18936); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(117)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(117)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1228: while(false);
   tracehead = trace.prev;
   return;
@@ -34659,13 +34659,13 @@ void parser___ReduceAction599___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
   variable[9] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[8] = variable[9];
@@ -34678,20 +34678,20 @@ void parser___ReduceAction599___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist4*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction599___action, LOCATE_parser, 18957); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode5*/)( variable[11] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode6*/)( variable[8] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[8] =  variable[11] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode6*/)( variable[8] /*listnode6*/,  variable[11] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[9] /*tkwnewnode2*/,  variable[10] /*ptypenode3*/,  NIT_NULL /*null*/,  variable[8] /*listnode6*/); /*new ANewExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(117)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(117)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1230: while(false);
   tracehead = trace.prev;
   return;
@@ -34718,9 +34718,9 @@ void parser___ReduceAction600___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[6] =  variable[5] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -34731,8 +34731,8 @@ void parser___ReduceAction600___action(val_t  self, val_t  param0) {
   variable[9] = NEW_AAttrExpr_parser_prod___AAttrExpr___init_aattrexpr( variable[6] /*pexprnode2*/,  variable[7] /*tattridnode3*/); /*new AAttrExpr*/
   variable[8] = variable[9];
   variable[3] =  variable[8] /*pexprnode1*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1232: while(false);
   tracehead = trace.prev;
   return;
@@ -34759,11 +34759,11 @@ void parser___ReduceAction601___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -34778,20 +34778,20 @@ void parser___ReduceAction601___action(val_t  self, val_t  param0) {
   variable[11] =  variable[4] /*nodearraylist3*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction601___action, LOCATE_parser, 19011); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[13] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode6*/); /*new ACallExpr*/
   variable[12] = variable[13];
   variable[3] =  variable[12] /*pexprnode1*/ /*node_list=*/;
-  variable[13] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[13] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[13],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1234: while(false);
   tracehead = trace.prev;
   return;
@@ -34818,9 +34818,9 @@ void parser___ReduceAction602___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -34830,20 +34830,20 @@ void parser___ReduceAction602___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction602___action, LOCATE_parser, 19041); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode4*/)( variable[8] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode5*/)( variable[6] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode5*/)( variable[6] /*listnode5*/,  variable[8] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[10] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( NIT_NULL /*null*/,  variable[7] /*tkwsupernode3*/,  variable[6] /*listnode5*/); /*new ASuperExpr*/
   variable[9] = variable[10];
   variable[3] =  variable[9] /*pexprnode1*/ /*node_list=*/;
-  variable[10] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[10] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[10],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1236: while(false);
   tracehead = trace.prev;
   return;
@@ -34870,11 +34870,11 @@ void parser___ReduceAction603___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -34887,20 +34887,20 @@ void parser___ReduceAction603___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction603___action, LOCATE_parser, 19073); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr( variable[8] /*pqualifiednode2*/,  variable[9] /*tkwsupernode3*/,  variable[7] /*listnode5*/); /*new ASuperExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1238: while(false);
   tracehead = trace.prev;
   return;
@@ -34927,11 +34927,11 @@ void parser___ReduceAction604___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -34944,20 +34944,20 @@ void parser___ReduceAction604___action(val_t  self, val_t  param0) {
   variable[10] =  variable[4] /*nodearraylist3*/;
   variable[11] = TAG_Bool(( variable[10] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[10] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction604___action, LOCATE_parser, 19105); nit_exit(1);}
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[10] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*listnode4*/)( variable[10] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    variable[11] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[11] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[11])) { /*if*/
       variable[7] =  variable[10] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[10] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] = NEW_AInitExpr_parser_prod___AInitExpr___init_ainitexpr( variable[8] /*pexprnode2*/,  variable[9] /*tkwinitnode3*/,  variable[7] /*listnode5*/); /*new AInitExpr*/
   variable[11] = variable[12];
   variable[3] =  variable[11] /*pexprnode1*/ /*node_list=*/;
-  variable[12] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[12] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[12],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1240: while(false);
   tracehead = trace.prev;
   return;
@@ -34984,19 +34984,19 @@ void parser___ReduceAction605___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
   variable[12] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[11] = variable[12];
@@ -35012,20 +35012,20 @@ void parser___ReduceAction605___action(val_t  self, val_t  param0) {
   variable[15] =  variable[4] /*nodearraylist7*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode5*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode5*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction605___action, LOCATE_parser, 19143); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode5*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode5*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode5*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode5*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode5*/)( variable[15] /*listnode5*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode6*/)( variable[11] /*listnode6*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode5*/ /*listnode6=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode6*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode6*/)( variable[11] /*listnode6*/,  variable[15] /*listnode5*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ANewExpr_parser_prod___ANewExpr___init_anewexpr( variable[12] /*tkwnewnode2*/,  variable[13] /*ptypenode3*/,  variable[14] /*tidnode4*/,  variable[11] /*listnode6*/); /*new ANewExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1242: while(false);
   tracehead = trace.prev;
   return;
@@ -35052,7 +35052,7 @@ void parser___ReduceAction606___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwselfnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwselfnode2*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
@@ -35060,8 +35060,8 @@ void parser___ReduceAction606___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr( variable[5] /*tkwselfnode2*/); /*new ASelfExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1244: while(false);
   tracehead = trace.prev;
   return;
@@ -35088,7 +35088,7 @@ void parser___ReduceAction607___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwtruenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwtruenode2*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
@@ -35096,8 +35096,8 @@ void parser___ReduceAction607___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ATrueExpr_parser_prod___ATrueExpr___init_atrueexpr( variable[5] /*tkwtruenode2*/); /*new ATrueExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1246: while(false);
   tracehead = trace.prev;
   return;
@@ -35124,7 +35124,7 @@ void parser___ReduceAction608___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwfalsenode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwfalsenode2*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
@@ -35132,8 +35132,8 @@ void parser___ReduceAction608___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFalseExpr_parser_prod___AFalseExpr___init_afalseexpr( variable[5] /*tkwfalsenode2*/); /*new AFalseExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1248: while(false);
   tracehead = trace.prev;
   return;
@@ -35160,7 +35160,7 @@ void parser___ReduceAction609___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tkwnullnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tkwnullnode2*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
@@ -35168,8 +35168,8 @@ void parser___ReduceAction609___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr( variable[5] /*tkwnullnode2*/); /*new ANullExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1250: while(false);
   tracehead = trace.prev;
   return;
@@ -35196,7 +35196,7 @@ void parser___ReduceAction610___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tnumbernode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tnumbernode2*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
@@ -35204,8 +35204,8 @@ void parser___ReduceAction610___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AIntExpr_parser_prod___AIntExpr___init_aintexpr( variable[5] /*tnumbernode2*/); /*new AIntExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1252: while(false);
   tracehead = trace.prev;
   return;
@@ -35232,7 +35232,7 @@ void parser___ReduceAction611___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tfloatnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tfloatnode2*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
@@ -35240,8 +35240,8 @@ void parser___ReduceAction611___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AFloatExpr_parser_prod___AFloatExpr___init_afloatexpr( variable[5] /*tfloatnode2*/); /*new AFloatExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1254: while(false);
   tracehead = trace.prev;
   return;
@@ -35268,7 +35268,7 @@ void parser___ReduceAction612___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tcharnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tcharnode2*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
@@ -35276,8 +35276,8 @@ void parser___ReduceAction612___action(val_t  self, val_t  param0) {
   variable[7] = NEW_ACharExpr_parser_prod___ACharExpr___init_acharexpr( variable[5] /*tcharnode2*/); /*new ACharExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1256: while(false);
   tracehead = trace.prev;
   return;
@@ -35304,7 +35304,7 @@ void parser___ReduceAction613___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*tstringnode2*/==NIT_NULL) || VAL_ISA( variable[5] /*tstringnode2*/, COLOR_TString, ID_TString)) /*cast TString*/;
@@ -35312,8 +35312,8 @@ void parser___ReduceAction613___action(val_t  self, val_t  param0) {
   variable[7] = NEW_AStringExpr_parser_prod___AStringExpr___init_astringexpr( variable[5] /*tstringnode2*/); /*new AStringExpr*/
   variable[6] = variable[7];
   variable[3] =  variable[6] /*pexprnode1*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1258: while(false);
   tracehead = trace.prev;
   return;
@@ -35340,14 +35340,14 @@ void parser___ReduceAction614___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction614___action, LOCATE_parser, 19297); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1260: while(false);
   tracehead = trace.prev;
   return;
@@ -35374,25 +35374,25 @@ void parser___ReduceAction615___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
-  variable[11] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[11] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[10] = variable[11];
-  variable[12] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[12] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[11] = variable[12];
-  variable[13] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[13] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[12] = variable[13];
-  variable[14] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[14] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[13] = variable[14];
   variable[14] =  variable[13] /*nodearraylist1*/;
   variable[15] = TAG_Bool(( variable[14] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[14] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
@@ -35406,8 +35406,8 @@ void parser___ReduceAction615___action(val_t  self, val_t  param0) {
   variable[18] = NEW_AAsCastExpr_parser_prod___AAsCastExpr___init_aascastexpr( variable[14] /*pexprnode2*/,  variable[15] /*tkwasnode3*/,  variable[16] /*ptypenode4*/); /*new AAsCastExpr*/
   variable[17] = variable[18];
   variable[3] =  variable[17] /*pexprnode1*/ /*node_list=*/;
-  variable[18] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[18] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(118)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[18],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1262: while(false);
   tracehead = trace.prev;
   return;
@@ -35434,18 +35434,18 @@ void parser___ReduceAction616___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[7] =  variable[6] /*nodearraylist1*/;
   variable[8] = TAG_Bool(( variable[7] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[7] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction616___action, LOCATE_parser, 19343); nit_exit(1);}
   variable[3] =  variable[7] /*pexprnode1*/ /*node_list=*/;
-  variable[8] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(119)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[8] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(119)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[8],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1264: while(false);
   tracehead = trace.prev;
   return;
@@ -35475,8 +35475,8 @@ void parser___ReduceAction617___action(val_t  self, val_t  param0) {
   variable[5] = NEW_AImplicitSelfExpr_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(); /*new AImplicitSelfExpr*/
   variable[4] = variable[5];
   variable[3] =  variable[4] /*pexprnode1*/ /*node_list=*/;
-  variable[5] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(119)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[5] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(119)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[5],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1266: while(false);
   tracehead = trace.prev;
   return;
@@ -35503,14 +35503,14 @@ void parser___ReduceAction618___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction618___action, LOCATE_parser, 19368); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(120)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(120)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1268: while(false);
   tracehead = trace.prev;
   return;
@@ -35537,17 +35537,17 @@ void parser___ReduceAction619___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -35562,32 +35562,32 @@ void parser___ReduceAction619___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction619___action, LOCATE_parser, 19392); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction619___action, LOCATE_parser, 19401); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(120)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(120)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1270: while(false);
   tracehead = trace.prev;
   return;
@@ -35614,11 +35614,11 @@ void parser___ReduceAction620___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -35632,32 +35632,32 @@ void parser___ReduceAction620___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction620___action, LOCATE_parser, 19435); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction620___action, LOCATE_parser, 19444); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(120)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(120)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1272: while(false);
   tracehead = trace.prev;
   return;
@@ -35684,14 +35684,14 @@ void parser___ReduceAction621___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[5] =  variable[4] /*nodearraylist1*/;
   variable[6] = TAG_Bool(( variable[5] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[5] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction621___action, LOCATE_parser, 19470); nit_exit(1);}
   variable[3] =  variable[5] /*pexprnode1*/ /*node_list=*/;
-  variable[6] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(121)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[6] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(121)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[6],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1274: while(false);
   tracehead = trace.prev;
   return;
@@ -35718,17 +35718,17 @@ void parser___ReduceAction622___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
-  variable[8] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[8] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[7] = variable[8];
-  variable[9] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[9] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[10] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[9] = variable[10];
   variable[11] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[10] = variable[11];
@@ -35743,32 +35743,32 @@ void parser___ReduceAction622___action(val_t  self, val_t  param0) {
   variable[14] =  variable[5] /*nodearraylist5*/;
   variable[15] = TAG_Bool(( variable[14] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[14] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[15])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction622___action, LOCATE_parser, 19494); nit_exit(1);}
-  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[14] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[14] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[14] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[14] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[14] /*listnode4*/)( variable[14] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[15])) { /*if*/
-    variable[15] = ((array___AbstractArray___is_empty_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[15] = CALL_abstract_collection___Collection___is_empty( variable[10] /*listnode5*/)( variable[10] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[15])) { /*if*/
       variable[10] =  variable[14] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[10] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[10] /*listnode5*/)( variable[10] /*listnode5*/,  variable[14] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[15] =  variable[4] /*nodearraylist6*/;
   variable[16] = TAG_Bool(( variable[15] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[15] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[16])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction622___action, LOCATE_parser, 19503); nit_exit(1);}
-  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[15] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[15] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[15] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[15] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[15] /*listnode6*/)( variable[15] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[16])) { /*if*/
-    variable[16] = ((array___AbstractArray___is_empty_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[16] = CALL_abstract_collection___Collection___is_empty( variable[11] /*listnode7*/)( variable[11] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[16])) { /*if*/
       variable[11] =  variable[15] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[11] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[11] /*listnode7*/)( variable[11] /*listnode7*/,  variable[15] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[17] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[12] /*pexprnode2*/,  variable[13] /*tidnode3*/,  variable[10] /*listnode5*/,  variable[11] /*listnode7*/); /*new ACallExpr*/
   variable[16] = variable[17];
   variable[3] =  variable[16] /*pexprnode1*/ /*node_list=*/;
-  variable[17] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(121)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[17] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(121)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[17],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1276: while(false);
   tracehead = trace.prev;
   return;
@@ -35795,11 +35795,11 @@ void parser___ReduceAction623___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
-  variable[7] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[7] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[7] = variable[8];
@@ -35813,32 +35813,32 @@ void parser___ReduceAction623___action(val_t  self, val_t  param0) {
   variable[11] =  variable[5] /*nodearraylist2*/;
   variable[12] = TAG_Bool(( variable[11] /*listnode4*/==NIT_NULL) || VAL_ISA( variable[11] /*listnode4*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction623___action, LOCATE_parser, 19537); nit_exit(1);}
-  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*listnode4*/,COLOR_kernel___Object_____eqeq))( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[12] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[11] /*listnode4*/ ==  NIT_NULL /*null*/) || (( variable[11] /*listnode4*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*listnode4*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*listnode4*/)( variable[11] /*listnode4*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    variable[12] = ((array___AbstractArray___is_empty_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___Collection___is_empty))( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
+    variable[12] = CALL_abstract_collection___Collection___is_empty( variable[7] /*listnode5*/)( variable[7] /*listnode5*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[12])) { /*if*/
       variable[7] =  variable[11] /*listnode4*/ /*listnode5=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[7] /*listnode5*/,COLOR_abstract_collection___IndexedCollection___append))( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[7] /*listnode5*/)( variable[7] /*listnode5*/,  variable[11] /*listnode4*/) /*IndexedCollection::append*/;
     }
   }
   variable[12] =  variable[4] /*nodearraylist3*/;
   variable[13] = TAG_Bool(( variable[12] /*listnode6*/==NIT_NULL) || VAL_ISA( variable[12] /*listnode6*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction623___action, LOCATE_parser, 19546); nit_exit(1);}
-  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[12] /*listnode6*/,COLOR_kernel___Object_____eqeq))( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[13] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[12] /*listnode6*/ ==  NIT_NULL /*null*/) || (( variable[12] /*listnode6*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[12] /*listnode6*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[12] /*listnode6*/)( variable[12] /*listnode6*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[13])) { /*if*/
-    variable[13] = ((array___AbstractArray___is_empty_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___Collection___is_empty))( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
+    variable[13] = CALL_abstract_collection___Collection___is_empty( variable[8] /*listnode7*/)( variable[8] /*listnode7*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[13])) { /*if*/
       variable[8] =  variable[12] /*listnode6*/ /*listnode7=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[8] /*listnode7*/,COLOR_abstract_collection___IndexedCollection___append))( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[8] /*listnode7*/)( variable[8] /*listnode7*/,  variable[12] /*listnode6*/) /*IndexedCollection::append*/;
     }
   }
   variable[14] = NEW_ACallExpr_parser_prod___ACallExpr___init_acallexpr( variable[9] /*pexprnode2*/,  variable[10] /*tidnode3*/,  variable[7] /*listnode5*/,  variable[8] /*listnode7*/); /*new ACallExpr*/
   variable[13] = variable[14];
   variable[3] =  variable[13] /*pexprnode1*/ /*node_list=*/;
-  variable[14] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(121)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[14] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(121)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[14],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1278: while(false);
   tracehead = trace.prev;
   return;
@@ -35865,20 +35865,20 @@ void parser___ReduceAction624___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pimportnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pimportnode1*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction624___action, LOCATE_parser, 19573); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pimportnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pimportnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pimportnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pimportnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pimportnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pimportnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pimportnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pimportnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pimportnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pimportnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pimportnode1*/)( variable[6] /*pimportnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pimportnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pimportnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(122)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(122)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1280: while(false);
   tracehead = trace.prev;
   return;
@@ -35905,9 +35905,9 @@ void parser___ReduceAction625___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -35917,22 +35917,22 @@ void parser___ReduceAction625___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pimportnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pimportnode2*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction625___action, LOCATE_parser, 19593); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pimportnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pimportnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pimportnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pimportnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pimportnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pimportnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pimportnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pimportnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pimportnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pimportnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pimportnode2*/)( variable[8] /*pimportnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*pimportnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*pimportnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(122)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(122)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1282: while(false);
   tracehead = trace.prev;
   return;
@@ -35959,20 +35959,20 @@ void parser___ReduceAction626___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pclassdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pclassdefnode1*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction626___action, LOCATE_parser, 19617); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclassdefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclassdefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pclassdefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclassdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pclassdefnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pclassdefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclassdefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclassdefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pclassdefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclassdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pclassdefnode1*/)( variable[6] /*pclassdefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pclassdefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pclassdefnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(123)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(123)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1284: while(false);
   tracehead = trace.prev;
   return;
@@ -35999,9 +35999,9 @@ void parser___ReduceAction627___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36011,22 +36011,22 @@ void parser___ReduceAction627___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pclassdefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pclassdefnode2*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction627___action, LOCATE_parser, 19637); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pclassdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pclassdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pclassdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pclassdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pclassdefnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pclassdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pclassdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pclassdefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pclassdefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pclassdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pclassdefnode2*/)( variable[8] /*pclassdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*pclassdefnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*pclassdefnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(123)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(123)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1286: while(false);
   tracehead = trace.prev;
   return;
@@ -36053,20 +36053,20 @@ void parser___ReduceAction628___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*psuperclassnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*psuperclassnode1*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction628___action, LOCATE_parser, 19661); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*psuperclassnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*psuperclassnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*psuperclassnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*psuperclassnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*psuperclassnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*psuperclassnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*psuperclassnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*psuperclassnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*psuperclassnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*psuperclassnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*psuperclassnode1*/)( variable[6] /*psuperclassnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*psuperclassnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*psuperclassnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(124)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(124)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1288: while(false);
   tracehead = trace.prev;
   return;
@@ -36093,9 +36093,9 @@ void parser___ReduceAction629___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36105,22 +36105,22 @@ void parser___ReduceAction629___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*psuperclassnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*psuperclassnode2*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction629___action, LOCATE_parser, 19681); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*psuperclassnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*psuperclassnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*psuperclassnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*psuperclassnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*psuperclassnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*psuperclassnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*psuperclassnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*psuperclassnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*psuperclassnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*psuperclassnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*psuperclassnode2*/)( variable[8] /*psuperclassnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*psuperclassnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*psuperclassnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(124)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(124)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1290: while(false);
   tracehead = trace.prev;
   return;
@@ -36147,20 +36147,20 @@ void parser___ReduceAction630___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pformaldefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pformaldefnode1*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction630___action, LOCATE_parser, 19705); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pformaldefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pformaldefnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pformaldefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pformaldefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pformaldefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pformaldefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pformaldefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pformaldefnode1*/)( variable[6] /*pformaldefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pformaldefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pformaldefnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(125)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(125)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1292: while(false);
   tracehead = trace.prev;
   return;
@@ -36187,9 +36187,9 @@ void parser___ReduceAction631___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36199,22 +36199,22 @@ void parser___ReduceAction631___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pformaldefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pformaldefnode2*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction631___action, LOCATE_parser, 19725); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pformaldefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pformaldefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pformaldefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pformaldefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pformaldefnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pformaldefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pformaldefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pformaldefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pformaldefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pformaldefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pformaldefnode2*/)( variable[8] /*pformaldefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*pformaldefnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*pformaldefnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(125)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(125)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1294: while(false);
   tracehead = trace.prev;
   return;
@@ -36241,20 +36241,20 @@ void parser___ReduceAction632___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction632___action, LOCATE_parser, 19749); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*ppropdefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)( variable[6] /*ppropdefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*ppropdefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*ppropdefnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(126)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(126)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1296: while(false);
   tracehead = trace.prev;
   return;
@@ -36281,9 +36281,9 @@ void parser___ReduceAction633___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36293,22 +36293,22 @@ void parser___ReduceAction633___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction633___action, LOCATE_parser, 19769); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*ppropdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*ppropdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*ppropdefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)( variable[8] /*ppropdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*ppropdefnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*ppropdefnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(126)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(126)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1298: while(false);
   tracehead = trace.prev;
   return;
@@ -36335,20 +36335,20 @@ void parser___ReduceAction634___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*ppropdefnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ppropdefnode1*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction634___action, LOCATE_parser, 19793); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*ppropdefnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*ppropdefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ppropdefnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ppropdefnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ppropdefnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ppropdefnode1*/)( variable[6] /*ppropdefnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*ppropdefnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*ppropdefnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(127)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(127)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1300: while(false);
   tracehead = trace.prev;
   return;
@@ -36375,9 +36375,9 @@ void parser___ReduceAction635___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36387,22 +36387,22 @@ void parser___ReduceAction635___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*ppropdefnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*ppropdefnode2*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction635___action, LOCATE_parser, 19813); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*ppropdefnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*ppropdefnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*ppropdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ppropdefnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*ppropdefnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ppropdefnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*ppropdefnode2*/)( variable[8] /*ppropdefnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*ppropdefnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*ppropdefnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(127)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(127)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1302: while(false);
   tracehead = trace.prev;
   return;
@@ -36429,20 +36429,20 @@ void parser___ReduceAction636___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pparamnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pparamnode1*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction636___action, LOCATE_parser, 19837); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pparamnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pparamnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pparamnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pparamnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pparamnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pparamnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pparamnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pparamnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pparamnode1*/)( variable[6] /*pparamnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pparamnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pparamnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(128)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(128)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1304: while(false);
   tracehead = trace.prev;
   return;
@@ -36469,9 +36469,9 @@ void parser___ReduceAction637___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36481,22 +36481,22 @@ void parser___ReduceAction637___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pparamnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pparamnode2*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction637___action, LOCATE_parser, 19857); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pparamnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pparamnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pparamnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pparamnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pparamnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pparamnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pparamnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pparamnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pparamnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pparamnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pparamnode2*/)( variable[8] /*pparamnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*pparamnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*pparamnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(128)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(128)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1306: while(false);
   tracehead = trace.prev;
   return;
@@ -36523,20 +36523,20 @@ void parser___ReduceAction638___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pclosuredeclnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pclosuredeclnode1*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction638___action, LOCATE_parser, 19881); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclosuredeclnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclosuredeclnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pclosuredeclnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclosuredeclnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pclosuredeclnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pclosuredeclnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pclosuredeclnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pclosuredeclnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pclosuredeclnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pclosuredeclnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pclosuredeclnode1*/)( variable[6] /*pclosuredeclnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pclosuredeclnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pclosuredeclnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(129)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(129)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1308: while(false);
   tracehead = trace.prev;
   return;
@@ -36563,9 +36563,9 @@ void parser___ReduceAction639___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36575,22 +36575,22 @@ void parser___ReduceAction639___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pclosuredeclnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pclosuredeclnode2*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction639___action, LOCATE_parser, 19901); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pclosuredeclnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pclosuredeclnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pclosuredeclnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pclosuredeclnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pclosuredeclnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pclosuredeclnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pclosuredeclnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pclosuredeclnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pclosuredeclnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pclosuredeclnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pclosuredeclnode2*/)( variable[8] /*pclosuredeclnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*pclosuredeclnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*pclosuredeclnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(129)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(129)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1310: while(false);
   tracehead = trace.prev;
   return;
@@ -36617,20 +36617,20 @@ void parser___ReduceAction640___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*ptypenode1*/==NIT_NULL) || VAL_ISA( variable[6] /*ptypenode1*/, COLOR_PType, ID_PType)) /*cast PType*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction640___action, LOCATE_parser, 19925); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ptypenode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*ptypenode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*ptypenode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*ptypenode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*ptypenode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*ptypenode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*ptypenode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*ptypenode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*ptypenode1*/)( variable[6] /*ptypenode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*ptypenode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*ptypenode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(130)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(130)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1312: while(false);
   tracehead = trace.prev;
   return;
@@ -36657,9 +36657,9 @@ void parser___ReduceAction641___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36669,22 +36669,22 @@ void parser___ReduceAction641___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*ptypenode2*/==NIT_NULL) || VAL_ISA( variable[8] /*ptypenode2*/, COLOR_PType, ID_PType)) /*cast PType*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction641___action, LOCATE_parser, 19945); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ptypenode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*ptypenode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*ptypenode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ptypenode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*ptypenode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*ptypenode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*ptypenode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*ptypenode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*ptypenode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*ptypenode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*ptypenode2*/)( variable[8] /*ptypenode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*ptypenode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*ptypenode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(130)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(130)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1314: while(false);
   tracehead = trace.prev;
   return;
@@ -36711,20 +36711,20 @@ void parser___ReduceAction642___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction642___action, LOCATE_parser, 19969); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)( variable[6] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(131)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(131)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1316: while(false);
   tracehead = trace.prev;
   return;
@@ -36751,9 +36751,9 @@ void parser___ReduceAction643___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36763,22 +36763,22 @@ void parser___ReduceAction643___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction643___action, LOCATE_parser, 19989); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)( variable[8] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*pexprnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(131)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(131)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1318: while(false);
   tracehead = trace.prev;
   return;
@@ -36805,25 +36805,25 @@ void parser___ReduceAction644___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*listnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*listnode1*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction644___action, LOCATE_parser, 20013); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*listnode1*/)( variable[6] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[7] = ((array___AbstractArray___is_empty_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___Collection___is_empty))( variable[5] /*listnode2*/) /*AbstractArray::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[5] /*listnode2*/)( variable[5] /*listnode2*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[5] =  variable[6] /*listnode1*/ /*listnode2=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___IndexedCollection___append))( variable[5] /*listnode2*/,  variable[6] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(132)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(132)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1320: while(false);
   tracehead = trace.prev;
   return;
@@ -36850,9 +36850,9 @@ void parser___ReduceAction645___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36862,27 +36862,27 @@ void parser___ReduceAction645___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*listnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*listnode2*/, COLOR_Array, ID_Array)) /*cast Array[Object]*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction645___action, LOCATE_parser, 20037); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*listnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*listnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*listnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*listnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*listnode2*/)( variable[8] /*listnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[8] /*listnode2*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*listnode2*/) /*IndexedCollection::append*/;
     }
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(132)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(132)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1322: while(false);
   tracehead = trace.prev;
   return;
@@ -36909,20 +36909,20 @@ void parser___ReduceAction646___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*pexprnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*pexprnode1*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction646___action, LOCATE_parser, 20065); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*pexprnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*pexprnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*pexprnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*pexprnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*pexprnode1*/)( variable[6] /*pexprnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*pexprnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(133)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(133)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1324: while(false);
   tracehead = trace.prev;
   return;
@@ -36949,9 +36949,9 @@ void parser___ReduceAction647___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -36961,22 +36961,22 @@ void parser___ReduceAction647___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*pexprnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*pexprnode2*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction647___action, LOCATE_parser, 20085); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*pexprnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*pexprnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*pexprnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*pexprnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*pexprnode2*/)( variable[8] /*pexprnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*pexprnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*pexprnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(133)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(133)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1326: while(false);
   tracehead = trace.prev;
   return;
@@ -37003,20 +37003,20 @@ void parser___ReduceAction648___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tidnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*tidnode1*/, COLOR_TId, ID_TId)) /*cast TId*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction648___action, LOCATE_parser, 20109); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tidnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*tidnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*tidnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tidnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*tidnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*tidnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tidnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*tidnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*tidnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tidnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*tidnode1*/)( variable[6] /*tidnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*tidnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*tidnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(134)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(134)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1328: while(false);
   tracehead = trace.prev;
   return;
@@ -37043,9 +37043,9 @@ void parser___ReduceAction649___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -37055,22 +37055,22 @@ void parser___ReduceAction649___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*tidnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*tidnode2*/, COLOR_TId, ID_TId)) /*cast TId*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction649___action, LOCATE_parser, 20129); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*tidnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*tidnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*tidnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*tidnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*tidnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*tidnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*tidnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*tidnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*tidnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*tidnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*tidnode2*/)( variable[8] /*tidnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*tidnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*tidnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(134)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(134)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1330: while(false);
   tracehead = trace.prev;
   return;
@@ -37097,20 +37097,20 @@ void parser___ReduceAction650___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*tcommentnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*tcommentnode1*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction650___action, LOCATE_parser, 20153); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tcommentnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*tcommentnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*tcommentnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tcommentnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*tcommentnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*tcommentnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*tcommentnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*tcommentnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*tcommentnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*tcommentnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*tcommentnode1*/)( variable[6] /*tcommentnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*tcommentnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*tcommentnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(135)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(135)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1332: while(false);
   tracehead = trace.prev;
   return;
@@ -37137,9 +37137,9 @@ void parser___ReduceAction651___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -37149,22 +37149,22 @@ void parser___ReduceAction651___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*tcommentnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*tcommentnode2*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction651___action, LOCATE_parser, 20173); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*tcommentnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*tcommentnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*tcommentnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*tcommentnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*tcommentnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*tcommentnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*tcommentnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*tcommentnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*tcommentnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*tcommentnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*tcommentnode2*/)( variable[8] /*tcommentnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*tcommentnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*tcommentnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(135)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(135)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1334: while(false);
   tracehead = trace.prev;
   return;
@@ -37191,20 +37191,20 @@ void parser___ReduceAction652___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
   variable[6] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[5] = variable[6];
   variable[6] =  variable[4] /*nodearraylist1*/;
   variable[7] = TAG_Bool(( variable[6] /*teolnode1*/==NIT_NULL) || VAL_ISA( variable[6] /*teolnode1*/, COLOR_TEol, ID_TEol)) /*cast TEol*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction652___action, LOCATE_parser, 20197); nit_exit(1);}
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*teolnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*teolnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*teolnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*teolnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*teolnode1*/,COLOR_kernel___Object_____eqeq))( variable[6] /*teolnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*teolnode1*/ ==  NIT_NULL /*null*/) || (( variable[6] /*teolnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*teolnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*teolnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*teolnode1*/)( variable[6] /*teolnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[5] /*listnode2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*listnode2*/,  variable[6] /*teolnode1*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*listnode2*/)( variable[5] /*listnode2*/,  variable[6] /*teolnode1*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*listnode2*/ /*node_list=*/;
-  variable[7] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(136)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[7] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(136)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[7],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1336: while(false);
   tracehead = trace.prev;
   return;
@@ -37231,9 +37231,9 @@ void parser___ReduceAction653___action(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
-  variable[5] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[5] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[4] = variable[5];
-  variable[6] = ((parser___Parser___pop_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___pop))( variable[1] /*p*/) /*Parser::pop*/;
+  variable[6] = CALL_parser___Parser___pop( variable[1] /*p*/)( variable[1] /*p*/) /*Parser::pop*/;
   variable[5] = variable[6];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[Object]*/
   variable[6] = variable[7];
@@ -37243,22 +37243,22 @@ void parser___ReduceAction653___action(val_t  self, val_t  param0) {
   variable[8] =  variable[4] /*nodearraylist2*/;
   variable[9] = TAG_Bool(( variable[8] /*teolnode2*/==NIT_NULL) || VAL_ISA( variable[8] /*teolnode2*/, COLOR_TEol, ID_TEol)) /*cast TEol*/;
   if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser___ReduceAction653___action, LOCATE_parser, 20217); nit_exit(1);}
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*listnode1*/,COLOR_kernel___Object_____eqeq))( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*listnode1*/ ==  NIT_NULL /*null*/) || (( variable[7] /*listnode1*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*listnode1*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*listnode1*/)( variable[7] /*listnode1*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___is_empty_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___Collection___is_empty))( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
+    variable[9] = CALL_abstract_collection___Collection___is_empty( variable[6] /*listnode3*/)( variable[6] /*listnode3*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[6] =  variable[7] /*listnode1*/ /*listnode3=*/;
     } else { /*if*/
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___IndexedCollection___append))( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[7] /*listnode1*/) /*IndexedCollection::append*/;
     }
   }
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*teolnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*teolnode2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*teolnode2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*teolnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*teolnode2*/,COLOR_kernel___Object_____eqeq))( variable[8] /*teolnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*teolnode2*/ ==  NIT_NULL /*null*/) || (( variable[8] /*teolnode2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*teolnode2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*teolnode2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*teolnode2*/)( variable[8] /*teolnode2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    ((array___AbstractArray___add_t)CALL( variable[6] /*listnode3*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*listnode3*/,  variable[8] /*teolnode2*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[6] /*listnode3*/)( variable[6] /*listnode3*/,  variable[8] /*teolnode2*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[6] /*listnode3*/ /*node_list=*/;
-  variable[9] = ((parser___Parser___go_to_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___go_to))( variable[1] /*p*/,  TAG_Int(136)) /*Parser::go_to*/;
-  ((parser___Parser___push_t)CALL( variable[1] /*p*/,COLOR_parser___Parser___push))( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
+  variable[9] = CALL_parser___Parser___go_to( variable[1] /*p*/)( variable[1] /*p*/,  TAG_Int(136)) /*Parser::go_to*/;
+  CALL_parser___Parser___push( variable[1] /*p*/)( variable[1] /*p*/, variable[9],  variable[3] /*node_list*/) /*Parser::push*/;
   return_label1338: while(false);
   tracehead = trace.prev;
   return;
index 26cd9ab..82b4b2d 100644 (file)
@@ -1322,2665 +1322,2663 @@ extern const classtable_elt_t VFT_ReduceAction652[];
 extern const classtable_elt_t VFT_ReduceAction653[];
 extern const char *LOCATE_parser;
 extern const int SFT_parser[];
-#define ID_State SFT_parser[0]
-#define COLOR_State SFT_parser[1]
-#define COLOR_parser___State____state SFT_parser[2]
-#define COLOR_parser___State____nodes SFT_parser[3]
-#define INIT_TABLE_POS_State SFT_parser[4]
-#define COLOR_parser___State___state SFT_parser[5]
-#define COLOR_parser___State___state__eq SFT_parser[6]
-#define COLOR_parser___State___nodes SFT_parser[7]
-#define COLOR_parser___State___nodes__eq SFT_parser[8]
-#define COLOR_parser___State___init SFT_parser[9]
-#define ID_Parser SFT_parser[10]
-#define COLOR_Parser SFT_parser[11]
-#define COLOR_parser___Parser____lexer SFT_parser[12]
-#define COLOR_parser___Parser____stack SFT_parser[13]
-#define COLOR_parser___Parser____stack_pos SFT_parser[14]
-#define COLOR_parser___Parser____reduce_table SFT_parser[15]
-#define INIT_TABLE_POS_Parser SFT_parser[16]
-#define COLOR_parser___Parser___init SFT_parser[17]
-#define COLOR_parser___Parser___go_to SFT_parser[18]
-#define COLOR_parser___Parser___push SFT_parser[19]
-#define COLOR_parser___Parser___state SFT_parser[20]
-#define COLOR_parser___Parser___pop SFT_parser[21]
-#define COLOR_parser___Parser___parse SFT_parser[22]
-#define COLOR_parser___Parser___build_reduce_table SFT_parser[23]
-#define ID_SearchTokensVisitor SFT_parser[24]
-#define COLOR_SearchTokensVisitor SFT_parser[25]
-#define COLOR_parser___SearchTokensVisitor____untokenned_nodes SFT_parser[26]
-#define COLOR_parser___SearchTokensVisitor____last_token SFT_parser[27]
-#define INIT_TABLE_POS_SearchTokensVisitor SFT_parser[28]
-#define COLOR_parser___SearchTokensVisitor___init SFT_parser[29]
-#define ID_ReduceAction SFT_parser[30]
-#define COLOR_ReduceAction SFT_parser[31]
-#define INIT_TABLE_POS_ReduceAction SFT_parser[32]
-#define COLOR_parser___ReduceAction___action SFT_parser[33]
-#define COLOR_parser___ReduceAction___init SFT_parser[34]
-#define ID_ReduceAction0 SFT_parser[35]
-#define COLOR_ReduceAction0 SFT_parser[36]
-#define INIT_TABLE_POS_ReduceAction0 SFT_parser[37]
-#define COLOR_parser___ReduceAction0___init SFT_parser[38]
-#define ID_ReduceAction1 SFT_parser[39]
-#define COLOR_ReduceAction1 SFT_parser[40]
-#define INIT_TABLE_POS_ReduceAction1 SFT_parser[41]
-#define COLOR_parser___ReduceAction1___init SFT_parser[42]
-#define ID_ReduceAction2 SFT_parser[43]
-#define COLOR_ReduceAction2 SFT_parser[44]
-#define INIT_TABLE_POS_ReduceAction2 SFT_parser[45]
-#define COLOR_parser___ReduceAction2___init SFT_parser[46]
-#define ID_ReduceAction3 SFT_parser[47]
-#define COLOR_ReduceAction3 SFT_parser[48]
-#define INIT_TABLE_POS_ReduceAction3 SFT_parser[49]
-#define COLOR_parser___ReduceAction3___init SFT_parser[50]
-#define ID_ReduceAction4 SFT_parser[51]
-#define COLOR_ReduceAction4 SFT_parser[52]
-#define INIT_TABLE_POS_ReduceAction4 SFT_parser[53]
-#define COLOR_parser___ReduceAction4___init SFT_parser[54]
-#define ID_ReduceAction5 SFT_parser[55]
-#define COLOR_ReduceAction5 SFT_parser[56]
-#define INIT_TABLE_POS_ReduceAction5 SFT_parser[57]
-#define COLOR_parser___ReduceAction5___init SFT_parser[58]
-#define ID_ReduceAction6 SFT_parser[59]
-#define COLOR_ReduceAction6 SFT_parser[60]
-#define INIT_TABLE_POS_ReduceAction6 SFT_parser[61]
-#define COLOR_parser___ReduceAction6___init SFT_parser[62]
-#define ID_ReduceAction7 SFT_parser[63]
-#define COLOR_ReduceAction7 SFT_parser[64]
-#define INIT_TABLE_POS_ReduceAction7 SFT_parser[65]
-#define COLOR_parser___ReduceAction7___init SFT_parser[66]
-#define ID_ReduceAction8 SFT_parser[67]
-#define COLOR_ReduceAction8 SFT_parser[68]
-#define INIT_TABLE_POS_ReduceAction8 SFT_parser[69]
-#define COLOR_parser___ReduceAction8___init SFT_parser[70]
-#define ID_ReduceAction9 SFT_parser[71]
-#define COLOR_ReduceAction9 SFT_parser[72]
-#define INIT_TABLE_POS_ReduceAction9 SFT_parser[73]
-#define COLOR_parser___ReduceAction9___init SFT_parser[74]
-#define ID_ReduceAction10 SFT_parser[75]
-#define COLOR_ReduceAction10 SFT_parser[76]
-#define INIT_TABLE_POS_ReduceAction10 SFT_parser[77]
-#define COLOR_parser___ReduceAction10___init SFT_parser[78]
-#define ID_ReduceAction11 SFT_parser[79]
-#define COLOR_ReduceAction11 SFT_parser[80]
-#define INIT_TABLE_POS_ReduceAction11 SFT_parser[81]
-#define COLOR_parser___ReduceAction11___init SFT_parser[82]
-#define ID_ReduceAction12 SFT_parser[83]
-#define COLOR_ReduceAction12 SFT_parser[84]
-#define INIT_TABLE_POS_ReduceAction12 SFT_parser[85]
-#define COLOR_parser___ReduceAction12___init SFT_parser[86]
-#define ID_ReduceAction13 SFT_parser[87]
-#define COLOR_ReduceAction13 SFT_parser[88]
-#define INIT_TABLE_POS_ReduceAction13 SFT_parser[89]
-#define COLOR_parser___ReduceAction13___init SFT_parser[90]
-#define ID_ReduceAction14 SFT_parser[91]
-#define COLOR_ReduceAction14 SFT_parser[92]
-#define INIT_TABLE_POS_ReduceAction14 SFT_parser[93]
-#define COLOR_parser___ReduceAction14___init SFT_parser[94]
-#define ID_ReduceAction15 SFT_parser[95]
-#define COLOR_ReduceAction15 SFT_parser[96]
-#define INIT_TABLE_POS_ReduceAction15 SFT_parser[97]
-#define COLOR_parser___ReduceAction15___init SFT_parser[98]
-#define ID_ReduceAction16 SFT_parser[99]
-#define COLOR_ReduceAction16 SFT_parser[100]
-#define INIT_TABLE_POS_ReduceAction16 SFT_parser[101]
-#define COLOR_parser___ReduceAction16___init SFT_parser[102]
-#define ID_ReduceAction17 SFT_parser[103]
-#define COLOR_ReduceAction17 SFT_parser[104]
-#define INIT_TABLE_POS_ReduceAction17 SFT_parser[105]
-#define COLOR_parser___ReduceAction17___init SFT_parser[106]
-#define ID_ReduceAction18 SFT_parser[107]
-#define COLOR_ReduceAction18 SFT_parser[108]
-#define INIT_TABLE_POS_ReduceAction18 SFT_parser[109]
-#define COLOR_parser___ReduceAction18___init SFT_parser[110]
-#define ID_ReduceAction19 SFT_parser[111]
-#define COLOR_ReduceAction19 SFT_parser[112]
-#define INIT_TABLE_POS_ReduceAction19 SFT_parser[113]
-#define COLOR_parser___ReduceAction19___init SFT_parser[114]
-#define ID_ReduceAction20 SFT_parser[115]
-#define COLOR_ReduceAction20 SFT_parser[116]
-#define INIT_TABLE_POS_ReduceAction20 SFT_parser[117]
-#define COLOR_parser___ReduceAction20___init SFT_parser[118]
-#define ID_ReduceAction21 SFT_parser[119]
-#define COLOR_ReduceAction21 SFT_parser[120]
-#define INIT_TABLE_POS_ReduceAction21 SFT_parser[121]
-#define COLOR_parser___ReduceAction21___init SFT_parser[122]
-#define ID_ReduceAction22 SFT_parser[123]
-#define COLOR_ReduceAction22 SFT_parser[124]
-#define INIT_TABLE_POS_ReduceAction22 SFT_parser[125]
-#define COLOR_parser___ReduceAction22___init SFT_parser[126]
-#define ID_ReduceAction23 SFT_parser[127]
-#define COLOR_ReduceAction23 SFT_parser[128]
-#define INIT_TABLE_POS_ReduceAction23 SFT_parser[129]
-#define COLOR_parser___ReduceAction23___init SFT_parser[130]
-#define ID_ReduceAction24 SFT_parser[131]
-#define COLOR_ReduceAction24 SFT_parser[132]
-#define INIT_TABLE_POS_ReduceAction24 SFT_parser[133]
-#define COLOR_parser___ReduceAction24___init SFT_parser[134]
-#define ID_ReduceAction25 SFT_parser[135]
-#define COLOR_ReduceAction25 SFT_parser[136]
-#define INIT_TABLE_POS_ReduceAction25 SFT_parser[137]
-#define COLOR_parser___ReduceAction25___init SFT_parser[138]
-#define ID_ReduceAction26 SFT_parser[139]
-#define COLOR_ReduceAction26 SFT_parser[140]
-#define INIT_TABLE_POS_ReduceAction26 SFT_parser[141]
-#define COLOR_parser___ReduceAction26___init SFT_parser[142]
-#define ID_ReduceAction27 SFT_parser[143]
-#define COLOR_ReduceAction27 SFT_parser[144]
-#define INIT_TABLE_POS_ReduceAction27 SFT_parser[145]
-#define COLOR_parser___ReduceAction27___init SFT_parser[146]
-#define ID_ReduceAction28 SFT_parser[147]
-#define COLOR_ReduceAction28 SFT_parser[148]
-#define INIT_TABLE_POS_ReduceAction28 SFT_parser[149]
-#define COLOR_parser___ReduceAction28___init SFT_parser[150]
-#define ID_ReduceAction29 SFT_parser[151]
-#define COLOR_ReduceAction29 SFT_parser[152]
-#define INIT_TABLE_POS_ReduceAction29 SFT_parser[153]
-#define COLOR_parser___ReduceAction29___init SFT_parser[154]
-#define ID_ReduceAction30 SFT_parser[155]
-#define COLOR_ReduceAction30 SFT_parser[156]
-#define INIT_TABLE_POS_ReduceAction30 SFT_parser[157]
-#define COLOR_parser___ReduceAction30___init SFT_parser[158]
-#define ID_ReduceAction31 SFT_parser[159]
-#define COLOR_ReduceAction31 SFT_parser[160]
-#define INIT_TABLE_POS_ReduceAction31 SFT_parser[161]
-#define COLOR_parser___ReduceAction31___init SFT_parser[162]
-#define ID_ReduceAction32 SFT_parser[163]
-#define COLOR_ReduceAction32 SFT_parser[164]
-#define INIT_TABLE_POS_ReduceAction32 SFT_parser[165]
-#define COLOR_parser___ReduceAction32___init SFT_parser[166]
-#define ID_ReduceAction33 SFT_parser[167]
-#define COLOR_ReduceAction33 SFT_parser[168]
-#define INIT_TABLE_POS_ReduceAction33 SFT_parser[169]
-#define COLOR_parser___ReduceAction33___init SFT_parser[170]
-#define ID_ReduceAction34 SFT_parser[171]
-#define COLOR_ReduceAction34 SFT_parser[172]
-#define INIT_TABLE_POS_ReduceAction34 SFT_parser[173]
-#define COLOR_parser___ReduceAction34___init SFT_parser[174]
-#define ID_ReduceAction35 SFT_parser[175]
-#define COLOR_ReduceAction35 SFT_parser[176]
-#define INIT_TABLE_POS_ReduceAction35 SFT_parser[177]
-#define COLOR_parser___ReduceAction35___init SFT_parser[178]
-#define ID_ReduceAction36 SFT_parser[179]
-#define COLOR_ReduceAction36 SFT_parser[180]
-#define INIT_TABLE_POS_ReduceAction36 SFT_parser[181]
-#define COLOR_parser___ReduceAction36___init SFT_parser[182]
-#define ID_ReduceAction37 SFT_parser[183]
-#define COLOR_ReduceAction37 SFT_parser[184]
-#define INIT_TABLE_POS_ReduceAction37 SFT_parser[185]
-#define COLOR_parser___ReduceAction37___init SFT_parser[186]
-#define ID_ReduceAction38 SFT_parser[187]
-#define COLOR_ReduceAction38 SFT_parser[188]
-#define INIT_TABLE_POS_ReduceAction38 SFT_parser[189]
-#define COLOR_parser___ReduceAction38___init SFT_parser[190]
-#define ID_ReduceAction39 SFT_parser[191]
-#define COLOR_ReduceAction39 SFT_parser[192]
-#define INIT_TABLE_POS_ReduceAction39 SFT_parser[193]
-#define COLOR_parser___ReduceAction39___init SFT_parser[194]
-#define ID_ReduceAction40 SFT_parser[195]
-#define COLOR_ReduceAction40 SFT_parser[196]
-#define INIT_TABLE_POS_ReduceAction40 SFT_parser[197]
-#define COLOR_parser___ReduceAction40___init SFT_parser[198]
-#define ID_ReduceAction41 SFT_parser[199]
-#define COLOR_ReduceAction41 SFT_parser[200]
-#define INIT_TABLE_POS_ReduceAction41 SFT_parser[201]
-#define COLOR_parser___ReduceAction41___init SFT_parser[202]
-#define ID_ReduceAction42 SFT_parser[203]
-#define COLOR_ReduceAction42 SFT_parser[204]
-#define INIT_TABLE_POS_ReduceAction42 SFT_parser[205]
-#define COLOR_parser___ReduceAction42___init SFT_parser[206]
-#define ID_ReduceAction43 SFT_parser[207]
-#define COLOR_ReduceAction43 SFT_parser[208]
-#define INIT_TABLE_POS_ReduceAction43 SFT_parser[209]
-#define COLOR_parser___ReduceAction43___init SFT_parser[210]
-#define ID_ReduceAction44 SFT_parser[211]
-#define COLOR_ReduceAction44 SFT_parser[212]
-#define INIT_TABLE_POS_ReduceAction44 SFT_parser[213]
-#define COLOR_parser___ReduceAction44___init SFT_parser[214]
-#define ID_ReduceAction45 SFT_parser[215]
-#define COLOR_ReduceAction45 SFT_parser[216]
-#define INIT_TABLE_POS_ReduceAction45 SFT_parser[217]
-#define COLOR_parser___ReduceAction45___init SFT_parser[218]
-#define ID_ReduceAction46 SFT_parser[219]
-#define COLOR_ReduceAction46 SFT_parser[220]
-#define INIT_TABLE_POS_ReduceAction46 SFT_parser[221]
-#define COLOR_parser___ReduceAction46___init SFT_parser[222]
-#define ID_ReduceAction47 SFT_parser[223]
-#define COLOR_ReduceAction47 SFT_parser[224]
-#define INIT_TABLE_POS_ReduceAction47 SFT_parser[225]
-#define COLOR_parser___ReduceAction47___init SFT_parser[226]
-#define ID_ReduceAction48 SFT_parser[227]
-#define COLOR_ReduceAction48 SFT_parser[228]
-#define INIT_TABLE_POS_ReduceAction48 SFT_parser[229]
-#define COLOR_parser___ReduceAction48___init SFT_parser[230]
-#define ID_ReduceAction49 SFT_parser[231]
-#define COLOR_ReduceAction49 SFT_parser[232]
-#define INIT_TABLE_POS_ReduceAction49 SFT_parser[233]
-#define COLOR_parser___ReduceAction49___init SFT_parser[234]
-#define ID_ReduceAction50 SFT_parser[235]
-#define COLOR_ReduceAction50 SFT_parser[236]
-#define INIT_TABLE_POS_ReduceAction50 SFT_parser[237]
-#define COLOR_parser___ReduceAction50___init SFT_parser[238]
-#define ID_ReduceAction51 SFT_parser[239]
-#define COLOR_ReduceAction51 SFT_parser[240]
-#define INIT_TABLE_POS_ReduceAction51 SFT_parser[241]
-#define COLOR_parser___ReduceAction51___init SFT_parser[242]
-#define ID_ReduceAction52 SFT_parser[243]
-#define COLOR_ReduceAction52 SFT_parser[244]
-#define INIT_TABLE_POS_ReduceAction52 SFT_parser[245]
-#define COLOR_parser___ReduceAction52___init SFT_parser[246]
-#define ID_ReduceAction53 SFT_parser[247]
-#define COLOR_ReduceAction53 SFT_parser[248]
-#define INIT_TABLE_POS_ReduceAction53 SFT_parser[249]
-#define COLOR_parser___ReduceAction53___init SFT_parser[250]
-#define ID_ReduceAction54 SFT_parser[251]
-#define COLOR_ReduceAction54 SFT_parser[252]
-#define INIT_TABLE_POS_ReduceAction54 SFT_parser[253]
-#define COLOR_parser___ReduceAction54___init SFT_parser[254]
-#define ID_ReduceAction55 SFT_parser[255]
-#define COLOR_ReduceAction55 SFT_parser[256]
-#define INIT_TABLE_POS_ReduceAction55 SFT_parser[257]
-#define COLOR_parser___ReduceAction55___init SFT_parser[258]
-#define ID_ReduceAction56 SFT_parser[259]
-#define COLOR_ReduceAction56 SFT_parser[260]
-#define INIT_TABLE_POS_ReduceAction56 SFT_parser[261]
-#define COLOR_parser___ReduceAction56___init SFT_parser[262]
-#define ID_ReduceAction57 SFT_parser[263]
-#define COLOR_ReduceAction57 SFT_parser[264]
-#define INIT_TABLE_POS_ReduceAction57 SFT_parser[265]
-#define COLOR_parser___ReduceAction57___init SFT_parser[266]
-#define ID_ReduceAction58 SFT_parser[267]
-#define COLOR_ReduceAction58 SFT_parser[268]
-#define INIT_TABLE_POS_ReduceAction58 SFT_parser[269]
-#define COLOR_parser___ReduceAction58___init SFT_parser[270]
-#define ID_ReduceAction59 SFT_parser[271]
-#define COLOR_ReduceAction59 SFT_parser[272]
-#define INIT_TABLE_POS_ReduceAction59 SFT_parser[273]
-#define COLOR_parser___ReduceAction59___init SFT_parser[274]
-#define ID_ReduceAction60 SFT_parser[275]
-#define COLOR_ReduceAction60 SFT_parser[276]
-#define INIT_TABLE_POS_ReduceAction60 SFT_parser[277]
-#define COLOR_parser___ReduceAction60___init SFT_parser[278]
-#define ID_ReduceAction61 SFT_parser[279]
-#define COLOR_ReduceAction61 SFT_parser[280]
-#define INIT_TABLE_POS_ReduceAction61 SFT_parser[281]
-#define COLOR_parser___ReduceAction61___init SFT_parser[282]
-#define ID_ReduceAction62 SFT_parser[283]
-#define COLOR_ReduceAction62 SFT_parser[284]
-#define INIT_TABLE_POS_ReduceAction62 SFT_parser[285]
-#define COLOR_parser___ReduceAction62___init SFT_parser[286]
-#define ID_ReduceAction63 SFT_parser[287]
-#define COLOR_ReduceAction63 SFT_parser[288]
-#define INIT_TABLE_POS_ReduceAction63 SFT_parser[289]
-#define COLOR_parser___ReduceAction63___init SFT_parser[290]
-#define ID_ReduceAction64 SFT_parser[291]
-#define COLOR_ReduceAction64 SFT_parser[292]
-#define INIT_TABLE_POS_ReduceAction64 SFT_parser[293]
-#define COLOR_parser___ReduceAction64___init SFT_parser[294]
-#define ID_ReduceAction65 SFT_parser[295]
-#define COLOR_ReduceAction65 SFT_parser[296]
-#define INIT_TABLE_POS_ReduceAction65 SFT_parser[297]
-#define COLOR_parser___ReduceAction65___init SFT_parser[298]
-#define ID_ReduceAction66 SFT_parser[299]
-#define COLOR_ReduceAction66 SFT_parser[300]
-#define INIT_TABLE_POS_ReduceAction66 SFT_parser[301]
-#define COLOR_parser___ReduceAction66___init SFT_parser[302]
-#define ID_ReduceAction67 SFT_parser[303]
-#define COLOR_ReduceAction67 SFT_parser[304]
-#define INIT_TABLE_POS_ReduceAction67 SFT_parser[305]
-#define COLOR_parser___ReduceAction67___init SFT_parser[306]
-#define ID_ReduceAction68 SFT_parser[307]
-#define COLOR_ReduceAction68 SFT_parser[308]
-#define INIT_TABLE_POS_ReduceAction68 SFT_parser[309]
-#define COLOR_parser___ReduceAction68___init SFT_parser[310]
-#define ID_ReduceAction69 SFT_parser[311]
-#define COLOR_ReduceAction69 SFT_parser[312]
-#define INIT_TABLE_POS_ReduceAction69 SFT_parser[313]
-#define COLOR_parser___ReduceAction69___init SFT_parser[314]
-#define ID_ReduceAction70 SFT_parser[315]
-#define COLOR_ReduceAction70 SFT_parser[316]
-#define INIT_TABLE_POS_ReduceAction70 SFT_parser[317]
-#define COLOR_parser___ReduceAction70___init SFT_parser[318]
-#define ID_ReduceAction71 SFT_parser[319]
-#define COLOR_ReduceAction71 SFT_parser[320]
-#define INIT_TABLE_POS_ReduceAction71 SFT_parser[321]
-#define COLOR_parser___ReduceAction71___init SFT_parser[322]
-#define ID_ReduceAction72 SFT_parser[323]
-#define COLOR_ReduceAction72 SFT_parser[324]
-#define INIT_TABLE_POS_ReduceAction72 SFT_parser[325]
-#define COLOR_parser___ReduceAction72___init SFT_parser[326]
-#define ID_ReduceAction73 SFT_parser[327]
-#define COLOR_ReduceAction73 SFT_parser[328]
-#define INIT_TABLE_POS_ReduceAction73 SFT_parser[329]
-#define COLOR_parser___ReduceAction73___init SFT_parser[330]
-#define ID_ReduceAction74 SFT_parser[331]
-#define COLOR_ReduceAction74 SFT_parser[332]
-#define INIT_TABLE_POS_ReduceAction74 SFT_parser[333]
-#define COLOR_parser___ReduceAction74___init SFT_parser[334]
-#define ID_ReduceAction75 SFT_parser[335]
-#define COLOR_ReduceAction75 SFT_parser[336]
-#define INIT_TABLE_POS_ReduceAction75 SFT_parser[337]
-#define COLOR_parser___ReduceAction75___init SFT_parser[338]
-#define ID_ReduceAction76 SFT_parser[339]
-#define COLOR_ReduceAction76 SFT_parser[340]
-#define INIT_TABLE_POS_ReduceAction76 SFT_parser[341]
-#define COLOR_parser___ReduceAction76___init SFT_parser[342]
-#define ID_ReduceAction77 SFT_parser[343]
-#define COLOR_ReduceAction77 SFT_parser[344]
-#define INIT_TABLE_POS_ReduceAction77 SFT_parser[345]
-#define COLOR_parser___ReduceAction77___init SFT_parser[346]
-#define ID_ReduceAction78 SFT_parser[347]
-#define COLOR_ReduceAction78 SFT_parser[348]
-#define INIT_TABLE_POS_ReduceAction78 SFT_parser[349]
-#define COLOR_parser___ReduceAction78___init SFT_parser[350]
-#define ID_ReduceAction79 SFT_parser[351]
-#define COLOR_ReduceAction79 SFT_parser[352]
-#define INIT_TABLE_POS_ReduceAction79 SFT_parser[353]
-#define COLOR_parser___ReduceAction79___init SFT_parser[354]
-#define ID_ReduceAction80 SFT_parser[355]
-#define COLOR_ReduceAction80 SFT_parser[356]
-#define INIT_TABLE_POS_ReduceAction80 SFT_parser[357]
-#define COLOR_parser___ReduceAction80___init SFT_parser[358]
-#define ID_ReduceAction81 SFT_parser[359]
-#define COLOR_ReduceAction81 SFT_parser[360]
-#define INIT_TABLE_POS_ReduceAction81 SFT_parser[361]
-#define COLOR_parser___ReduceAction81___init SFT_parser[362]
-#define ID_ReduceAction82 SFT_parser[363]
-#define COLOR_ReduceAction82 SFT_parser[364]
-#define INIT_TABLE_POS_ReduceAction82 SFT_parser[365]
-#define COLOR_parser___ReduceAction82___init SFT_parser[366]
-#define ID_ReduceAction83 SFT_parser[367]
-#define COLOR_ReduceAction83 SFT_parser[368]
-#define INIT_TABLE_POS_ReduceAction83 SFT_parser[369]
-#define COLOR_parser___ReduceAction83___init SFT_parser[370]
-#define ID_ReduceAction84 SFT_parser[371]
-#define COLOR_ReduceAction84 SFT_parser[372]
-#define INIT_TABLE_POS_ReduceAction84 SFT_parser[373]
-#define COLOR_parser___ReduceAction84___init SFT_parser[374]
-#define ID_ReduceAction85 SFT_parser[375]
-#define COLOR_ReduceAction85 SFT_parser[376]
-#define INIT_TABLE_POS_ReduceAction85 SFT_parser[377]
-#define COLOR_parser___ReduceAction85___init SFT_parser[378]
-#define ID_ReduceAction86 SFT_parser[379]
-#define COLOR_ReduceAction86 SFT_parser[380]
-#define INIT_TABLE_POS_ReduceAction86 SFT_parser[381]
-#define COLOR_parser___ReduceAction86___init SFT_parser[382]
-#define ID_ReduceAction87 SFT_parser[383]
-#define COLOR_ReduceAction87 SFT_parser[384]
-#define INIT_TABLE_POS_ReduceAction87 SFT_parser[385]
-#define COLOR_parser___ReduceAction87___init SFT_parser[386]
-#define ID_ReduceAction88 SFT_parser[387]
-#define COLOR_ReduceAction88 SFT_parser[388]
-#define INIT_TABLE_POS_ReduceAction88 SFT_parser[389]
-#define COLOR_parser___ReduceAction88___init SFT_parser[390]
-#define ID_ReduceAction89 SFT_parser[391]
-#define COLOR_ReduceAction89 SFT_parser[392]
-#define INIT_TABLE_POS_ReduceAction89 SFT_parser[393]
-#define COLOR_parser___ReduceAction89___init SFT_parser[394]
-#define ID_ReduceAction90 SFT_parser[395]
-#define COLOR_ReduceAction90 SFT_parser[396]
-#define INIT_TABLE_POS_ReduceAction90 SFT_parser[397]
-#define COLOR_parser___ReduceAction90___init SFT_parser[398]
-#define ID_ReduceAction91 SFT_parser[399]
-#define COLOR_ReduceAction91 SFT_parser[400]
-#define INIT_TABLE_POS_ReduceAction91 SFT_parser[401]
-#define COLOR_parser___ReduceAction91___init SFT_parser[402]
-#define ID_ReduceAction92 SFT_parser[403]
-#define COLOR_ReduceAction92 SFT_parser[404]
-#define INIT_TABLE_POS_ReduceAction92 SFT_parser[405]
-#define COLOR_parser___ReduceAction92___init SFT_parser[406]
-#define ID_ReduceAction93 SFT_parser[407]
-#define COLOR_ReduceAction93 SFT_parser[408]
-#define INIT_TABLE_POS_ReduceAction93 SFT_parser[409]
-#define COLOR_parser___ReduceAction93___init SFT_parser[410]
-#define ID_ReduceAction94 SFT_parser[411]
-#define COLOR_ReduceAction94 SFT_parser[412]
-#define INIT_TABLE_POS_ReduceAction94 SFT_parser[413]
-#define COLOR_parser___ReduceAction94___init SFT_parser[414]
-#define ID_ReduceAction95 SFT_parser[415]
-#define COLOR_ReduceAction95 SFT_parser[416]
-#define INIT_TABLE_POS_ReduceAction95 SFT_parser[417]
-#define COLOR_parser___ReduceAction95___init SFT_parser[418]
-#define ID_ReduceAction96 SFT_parser[419]
-#define COLOR_ReduceAction96 SFT_parser[420]
-#define INIT_TABLE_POS_ReduceAction96 SFT_parser[421]
-#define COLOR_parser___ReduceAction96___init SFT_parser[422]
-#define ID_ReduceAction97 SFT_parser[423]
-#define COLOR_ReduceAction97 SFT_parser[424]
-#define INIT_TABLE_POS_ReduceAction97 SFT_parser[425]
-#define COLOR_parser___ReduceAction97___init SFT_parser[426]
-#define ID_ReduceAction98 SFT_parser[427]
-#define COLOR_ReduceAction98 SFT_parser[428]
-#define INIT_TABLE_POS_ReduceAction98 SFT_parser[429]
-#define COLOR_parser___ReduceAction98___init SFT_parser[430]
-#define ID_ReduceAction99 SFT_parser[431]
-#define COLOR_ReduceAction99 SFT_parser[432]
-#define INIT_TABLE_POS_ReduceAction99 SFT_parser[433]
-#define COLOR_parser___ReduceAction99___init SFT_parser[434]
-#define ID_ReduceAction100 SFT_parser[435]
-#define COLOR_ReduceAction100 SFT_parser[436]
-#define INIT_TABLE_POS_ReduceAction100 SFT_parser[437]
-#define COLOR_parser___ReduceAction100___init SFT_parser[438]
-#define ID_ReduceAction101 SFT_parser[439]
-#define COLOR_ReduceAction101 SFT_parser[440]
-#define INIT_TABLE_POS_ReduceAction101 SFT_parser[441]
-#define COLOR_parser___ReduceAction101___init SFT_parser[442]
-#define ID_ReduceAction102 SFT_parser[443]
-#define COLOR_ReduceAction102 SFT_parser[444]
-#define INIT_TABLE_POS_ReduceAction102 SFT_parser[445]
-#define COLOR_parser___ReduceAction102___init SFT_parser[446]
-#define ID_ReduceAction103 SFT_parser[447]
-#define COLOR_ReduceAction103 SFT_parser[448]
-#define INIT_TABLE_POS_ReduceAction103 SFT_parser[449]
-#define COLOR_parser___ReduceAction103___init SFT_parser[450]
-#define ID_ReduceAction104 SFT_parser[451]
-#define COLOR_ReduceAction104 SFT_parser[452]
-#define INIT_TABLE_POS_ReduceAction104 SFT_parser[453]
-#define COLOR_parser___ReduceAction104___init SFT_parser[454]
-#define ID_ReduceAction105 SFT_parser[455]
-#define COLOR_ReduceAction105 SFT_parser[456]
-#define INIT_TABLE_POS_ReduceAction105 SFT_parser[457]
-#define COLOR_parser___ReduceAction105___init SFT_parser[458]
-#define ID_ReduceAction106 SFT_parser[459]
-#define COLOR_ReduceAction106 SFT_parser[460]
-#define INIT_TABLE_POS_ReduceAction106 SFT_parser[461]
-#define COLOR_parser___ReduceAction106___init SFT_parser[462]
-#define ID_ReduceAction107 SFT_parser[463]
-#define COLOR_ReduceAction107 SFT_parser[464]
-#define INIT_TABLE_POS_ReduceAction107 SFT_parser[465]
-#define COLOR_parser___ReduceAction107___init SFT_parser[466]
-#define ID_ReduceAction108 SFT_parser[467]
-#define COLOR_ReduceAction108 SFT_parser[468]
-#define INIT_TABLE_POS_ReduceAction108 SFT_parser[469]
-#define COLOR_parser___ReduceAction108___init SFT_parser[470]
-#define ID_ReduceAction109 SFT_parser[471]
-#define COLOR_ReduceAction109 SFT_parser[472]
-#define INIT_TABLE_POS_ReduceAction109 SFT_parser[473]
-#define COLOR_parser___ReduceAction109___init SFT_parser[474]
-#define ID_ReduceAction110 SFT_parser[475]
-#define COLOR_ReduceAction110 SFT_parser[476]
-#define INIT_TABLE_POS_ReduceAction110 SFT_parser[477]
-#define COLOR_parser___ReduceAction110___init SFT_parser[478]
-#define ID_ReduceAction111 SFT_parser[479]
-#define COLOR_ReduceAction111 SFT_parser[480]
-#define INIT_TABLE_POS_ReduceAction111 SFT_parser[481]
-#define COLOR_parser___ReduceAction111___init SFT_parser[482]
-#define ID_ReduceAction112 SFT_parser[483]
-#define COLOR_ReduceAction112 SFT_parser[484]
-#define INIT_TABLE_POS_ReduceAction112 SFT_parser[485]
-#define COLOR_parser___ReduceAction112___init SFT_parser[486]
-#define ID_ReduceAction113 SFT_parser[487]
-#define COLOR_ReduceAction113 SFT_parser[488]
-#define INIT_TABLE_POS_ReduceAction113 SFT_parser[489]
-#define COLOR_parser___ReduceAction113___init SFT_parser[490]
-#define ID_ReduceAction114 SFT_parser[491]
-#define COLOR_ReduceAction114 SFT_parser[492]
-#define INIT_TABLE_POS_ReduceAction114 SFT_parser[493]
-#define COLOR_parser___ReduceAction114___init SFT_parser[494]
-#define ID_ReduceAction115 SFT_parser[495]
-#define COLOR_ReduceAction115 SFT_parser[496]
-#define INIT_TABLE_POS_ReduceAction115 SFT_parser[497]
-#define COLOR_parser___ReduceAction115___init SFT_parser[498]
-#define ID_ReduceAction116 SFT_parser[499]
-#define COLOR_ReduceAction116 SFT_parser[500]
-#define INIT_TABLE_POS_ReduceAction116 SFT_parser[501]
-#define COLOR_parser___ReduceAction116___init SFT_parser[502]
-#define ID_ReduceAction117 SFT_parser[503]
-#define COLOR_ReduceAction117 SFT_parser[504]
-#define INIT_TABLE_POS_ReduceAction117 SFT_parser[505]
-#define COLOR_parser___ReduceAction117___init SFT_parser[506]
-#define ID_ReduceAction118 SFT_parser[507]
-#define COLOR_ReduceAction118 SFT_parser[508]
-#define INIT_TABLE_POS_ReduceAction118 SFT_parser[509]
-#define COLOR_parser___ReduceAction118___init SFT_parser[510]
-#define ID_ReduceAction119 SFT_parser[511]
-#define COLOR_ReduceAction119 SFT_parser[512]
-#define INIT_TABLE_POS_ReduceAction119 SFT_parser[513]
-#define COLOR_parser___ReduceAction119___init SFT_parser[514]
-#define ID_ReduceAction120 SFT_parser[515]
-#define COLOR_ReduceAction120 SFT_parser[516]
-#define INIT_TABLE_POS_ReduceAction120 SFT_parser[517]
-#define COLOR_parser___ReduceAction120___init SFT_parser[518]
-#define ID_ReduceAction121 SFT_parser[519]
-#define COLOR_ReduceAction121 SFT_parser[520]
-#define INIT_TABLE_POS_ReduceAction121 SFT_parser[521]
-#define COLOR_parser___ReduceAction121___init SFT_parser[522]
-#define ID_ReduceAction122 SFT_parser[523]
-#define COLOR_ReduceAction122 SFT_parser[524]
-#define INIT_TABLE_POS_ReduceAction122 SFT_parser[525]
-#define COLOR_parser___ReduceAction122___init SFT_parser[526]
-#define ID_ReduceAction123 SFT_parser[527]
-#define COLOR_ReduceAction123 SFT_parser[528]
-#define INIT_TABLE_POS_ReduceAction123 SFT_parser[529]
-#define COLOR_parser___ReduceAction123___init SFT_parser[530]
-#define ID_ReduceAction124 SFT_parser[531]
-#define COLOR_ReduceAction124 SFT_parser[532]
-#define INIT_TABLE_POS_ReduceAction124 SFT_parser[533]
-#define COLOR_parser___ReduceAction124___init SFT_parser[534]
-#define ID_ReduceAction125 SFT_parser[535]
-#define COLOR_ReduceAction125 SFT_parser[536]
-#define INIT_TABLE_POS_ReduceAction125 SFT_parser[537]
-#define COLOR_parser___ReduceAction125___init SFT_parser[538]
-#define ID_ReduceAction126 SFT_parser[539]
-#define COLOR_ReduceAction126 SFT_parser[540]
-#define INIT_TABLE_POS_ReduceAction126 SFT_parser[541]
-#define COLOR_parser___ReduceAction126___init SFT_parser[542]
-#define ID_ReduceAction127 SFT_parser[543]
-#define COLOR_ReduceAction127 SFT_parser[544]
-#define INIT_TABLE_POS_ReduceAction127 SFT_parser[545]
-#define COLOR_parser___ReduceAction127___init SFT_parser[546]
-#define ID_ReduceAction128 SFT_parser[547]
-#define COLOR_ReduceAction128 SFT_parser[548]
-#define INIT_TABLE_POS_ReduceAction128 SFT_parser[549]
-#define COLOR_parser___ReduceAction128___init SFT_parser[550]
-#define ID_ReduceAction129 SFT_parser[551]
-#define COLOR_ReduceAction129 SFT_parser[552]
-#define INIT_TABLE_POS_ReduceAction129 SFT_parser[553]
-#define COLOR_parser___ReduceAction129___init SFT_parser[554]
-#define ID_ReduceAction130 SFT_parser[555]
-#define COLOR_ReduceAction130 SFT_parser[556]
-#define INIT_TABLE_POS_ReduceAction130 SFT_parser[557]
-#define COLOR_parser___ReduceAction130___init SFT_parser[558]
-#define ID_ReduceAction131 SFT_parser[559]
-#define COLOR_ReduceAction131 SFT_parser[560]
-#define INIT_TABLE_POS_ReduceAction131 SFT_parser[561]
-#define COLOR_parser___ReduceAction131___init SFT_parser[562]
-#define ID_ReduceAction132 SFT_parser[563]
-#define COLOR_ReduceAction132 SFT_parser[564]
-#define INIT_TABLE_POS_ReduceAction132 SFT_parser[565]
-#define COLOR_parser___ReduceAction132___init SFT_parser[566]
-#define ID_ReduceAction133 SFT_parser[567]
-#define COLOR_ReduceAction133 SFT_parser[568]
-#define INIT_TABLE_POS_ReduceAction133 SFT_parser[569]
-#define COLOR_parser___ReduceAction133___init SFT_parser[570]
-#define ID_ReduceAction134 SFT_parser[571]
-#define COLOR_ReduceAction134 SFT_parser[572]
-#define INIT_TABLE_POS_ReduceAction134 SFT_parser[573]
-#define COLOR_parser___ReduceAction134___init SFT_parser[574]
-#define ID_ReduceAction135 SFT_parser[575]
-#define COLOR_ReduceAction135 SFT_parser[576]
-#define INIT_TABLE_POS_ReduceAction135 SFT_parser[577]
-#define COLOR_parser___ReduceAction135___init SFT_parser[578]
-#define ID_ReduceAction136 SFT_parser[579]
-#define COLOR_ReduceAction136 SFT_parser[580]
-#define INIT_TABLE_POS_ReduceAction136 SFT_parser[581]
-#define COLOR_parser___ReduceAction136___init SFT_parser[582]
-#define ID_ReduceAction137 SFT_parser[583]
-#define COLOR_ReduceAction137 SFT_parser[584]
-#define INIT_TABLE_POS_ReduceAction137 SFT_parser[585]
-#define COLOR_parser___ReduceAction137___init SFT_parser[586]
-#define ID_ReduceAction138 SFT_parser[587]
-#define COLOR_ReduceAction138 SFT_parser[588]
-#define INIT_TABLE_POS_ReduceAction138 SFT_parser[589]
-#define COLOR_parser___ReduceAction138___init SFT_parser[590]
-#define ID_ReduceAction139 SFT_parser[591]
-#define COLOR_ReduceAction139 SFT_parser[592]
-#define INIT_TABLE_POS_ReduceAction139 SFT_parser[593]
-#define COLOR_parser___ReduceAction139___init SFT_parser[594]
-#define ID_ReduceAction140 SFT_parser[595]
-#define COLOR_ReduceAction140 SFT_parser[596]
-#define INIT_TABLE_POS_ReduceAction140 SFT_parser[597]
-#define COLOR_parser___ReduceAction140___init SFT_parser[598]
-#define ID_ReduceAction141 SFT_parser[599]
-#define COLOR_ReduceAction141 SFT_parser[600]
-#define INIT_TABLE_POS_ReduceAction141 SFT_parser[601]
-#define COLOR_parser___ReduceAction141___init SFT_parser[602]
-#define ID_ReduceAction142 SFT_parser[603]
-#define COLOR_ReduceAction142 SFT_parser[604]
-#define INIT_TABLE_POS_ReduceAction142 SFT_parser[605]
-#define COLOR_parser___ReduceAction142___init SFT_parser[606]
-#define ID_ReduceAction143 SFT_parser[607]
-#define COLOR_ReduceAction143 SFT_parser[608]
-#define INIT_TABLE_POS_ReduceAction143 SFT_parser[609]
-#define COLOR_parser___ReduceAction143___init SFT_parser[610]
-#define ID_ReduceAction144 SFT_parser[611]
-#define COLOR_ReduceAction144 SFT_parser[612]
-#define INIT_TABLE_POS_ReduceAction144 SFT_parser[613]
-#define COLOR_parser___ReduceAction144___init SFT_parser[614]
-#define ID_ReduceAction145 SFT_parser[615]
-#define COLOR_ReduceAction145 SFT_parser[616]
-#define INIT_TABLE_POS_ReduceAction145 SFT_parser[617]
-#define COLOR_parser___ReduceAction145___init SFT_parser[618]
-#define ID_ReduceAction146 SFT_parser[619]
-#define COLOR_ReduceAction146 SFT_parser[620]
-#define INIT_TABLE_POS_ReduceAction146 SFT_parser[621]
-#define COLOR_parser___ReduceAction146___init SFT_parser[622]
-#define ID_ReduceAction147 SFT_parser[623]
-#define COLOR_ReduceAction147 SFT_parser[624]
-#define INIT_TABLE_POS_ReduceAction147 SFT_parser[625]
-#define COLOR_parser___ReduceAction147___init SFT_parser[626]
-#define ID_ReduceAction148 SFT_parser[627]
-#define COLOR_ReduceAction148 SFT_parser[628]
-#define INIT_TABLE_POS_ReduceAction148 SFT_parser[629]
-#define COLOR_parser___ReduceAction148___init SFT_parser[630]
-#define ID_ReduceAction149 SFT_parser[631]
-#define COLOR_ReduceAction149 SFT_parser[632]
-#define INIT_TABLE_POS_ReduceAction149 SFT_parser[633]
-#define COLOR_parser___ReduceAction149___init SFT_parser[634]
-#define ID_ReduceAction150 SFT_parser[635]
-#define COLOR_ReduceAction150 SFT_parser[636]
-#define INIT_TABLE_POS_ReduceAction150 SFT_parser[637]
-#define COLOR_parser___ReduceAction150___init SFT_parser[638]
-#define ID_ReduceAction151 SFT_parser[639]
-#define COLOR_ReduceAction151 SFT_parser[640]
-#define INIT_TABLE_POS_ReduceAction151 SFT_parser[641]
-#define COLOR_parser___ReduceAction151___init SFT_parser[642]
-#define ID_ReduceAction152 SFT_parser[643]
-#define COLOR_ReduceAction152 SFT_parser[644]
-#define INIT_TABLE_POS_ReduceAction152 SFT_parser[645]
-#define COLOR_parser___ReduceAction152___init SFT_parser[646]
-#define ID_ReduceAction153 SFT_parser[647]
-#define COLOR_ReduceAction153 SFT_parser[648]
-#define INIT_TABLE_POS_ReduceAction153 SFT_parser[649]
-#define COLOR_parser___ReduceAction153___init SFT_parser[650]
-#define ID_ReduceAction154 SFT_parser[651]
-#define COLOR_ReduceAction154 SFT_parser[652]
-#define INIT_TABLE_POS_ReduceAction154 SFT_parser[653]
-#define COLOR_parser___ReduceAction154___init SFT_parser[654]
-#define ID_ReduceAction155 SFT_parser[655]
-#define COLOR_ReduceAction155 SFT_parser[656]
-#define INIT_TABLE_POS_ReduceAction155 SFT_parser[657]
-#define COLOR_parser___ReduceAction155___init SFT_parser[658]
-#define ID_ReduceAction156 SFT_parser[659]
-#define COLOR_ReduceAction156 SFT_parser[660]
-#define INIT_TABLE_POS_ReduceAction156 SFT_parser[661]
-#define COLOR_parser___ReduceAction156___init SFT_parser[662]
-#define ID_ReduceAction157 SFT_parser[663]
-#define COLOR_ReduceAction157 SFT_parser[664]
-#define INIT_TABLE_POS_ReduceAction157 SFT_parser[665]
-#define COLOR_parser___ReduceAction157___init SFT_parser[666]
-#define ID_ReduceAction158 SFT_parser[667]
-#define COLOR_ReduceAction158 SFT_parser[668]
-#define INIT_TABLE_POS_ReduceAction158 SFT_parser[669]
-#define COLOR_parser___ReduceAction158___init SFT_parser[670]
-#define ID_ReduceAction159 SFT_parser[671]
-#define COLOR_ReduceAction159 SFT_parser[672]
-#define INIT_TABLE_POS_ReduceAction159 SFT_parser[673]
-#define COLOR_parser___ReduceAction159___init SFT_parser[674]
-#define ID_ReduceAction160 SFT_parser[675]
-#define COLOR_ReduceAction160 SFT_parser[676]
-#define INIT_TABLE_POS_ReduceAction160 SFT_parser[677]
-#define COLOR_parser___ReduceAction160___init SFT_parser[678]
-#define ID_ReduceAction161 SFT_parser[679]
-#define COLOR_ReduceAction161 SFT_parser[680]
-#define INIT_TABLE_POS_ReduceAction161 SFT_parser[681]
-#define COLOR_parser___ReduceAction161___init SFT_parser[682]
-#define ID_ReduceAction162 SFT_parser[683]
-#define COLOR_ReduceAction162 SFT_parser[684]
-#define INIT_TABLE_POS_ReduceAction162 SFT_parser[685]
-#define COLOR_parser___ReduceAction162___init SFT_parser[686]
-#define ID_ReduceAction163 SFT_parser[687]
-#define COLOR_ReduceAction163 SFT_parser[688]
-#define INIT_TABLE_POS_ReduceAction163 SFT_parser[689]
-#define COLOR_parser___ReduceAction163___init SFT_parser[690]
-#define ID_ReduceAction164 SFT_parser[691]
-#define COLOR_ReduceAction164 SFT_parser[692]
-#define INIT_TABLE_POS_ReduceAction164 SFT_parser[693]
-#define COLOR_parser___ReduceAction164___init SFT_parser[694]
-#define ID_ReduceAction165 SFT_parser[695]
-#define COLOR_ReduceAction165 SFT_parser[696]
-#define INIT_TABLE_POS_ReduceAction165 SFT_parser[697]
-#define COLOR_parser___ReduceAction165___init SFT_parser[698]
-#define ID_ReduceAction166 SFT_parser[699]
-#define COLOR_ReduceAction166 SFT_parser[700]
-#define INIT_TABLE_POS_ReduceAction166 SFT_parser[701]
-#define COLOR_parser___ReduceAction166___init SFT_parser[702]
-#define ID_ReduceAction167 SFT_parser[703]
-#define COLOR_ReduceAction167 SFT_parser[704]
-#define INIT_TABLE_POS_ReduceAction167 SFT_parser[705]
-#define COLOR_parser___ReduceAction167___init SFT_parser[706]
-#define ID_ReduceAction168 SFT_parser[707]
-#define COLOR_ReduceAction168 SFT_parser[708]
-#define INIT_TABLE_POS_ReduceAction168 SFT_parser[709]
-#define COLOR_parser___ReduceAction168___init SFT_parser[710]
-#define ID_ReduceAction169 SFT_parser[711]
-#define COLOR_ReduceAction169 SFT_parser[712]
-#define INIT_TABLE_POS_ReduceAction169 SFT_parser[713]
-#define COLOR_parser___ReduceAction169___init SFT_parser[714]
-#define ID_ReduceAction170 SFT_parser[715]
-#define COLOR_ReduceAction170 SFT_parser[716]
-#define INIT_TABLE_POS_ReduceAction170 SFT_parser[717]
-#define COLOR_parser___ReduceAction170___init SFT_parser[718]
-#define ID_ReduceAction171 SFT_parser[719]
-#define COLOR_ReduceAction171 SFT_parser[720]
-#define INIT_TABLE_POS_ReduceAction171 SFT_parser[721]
-#define COLOR_parser___ReduceAction171___init SFT_parser[722]
-#define ID_ReduceAction172 SFT_parser[723]
-#define COLOR_ReduceAction172 SFT_parser[724]
-#define INIT_TABLE_POS_ReduceAction172 SFT_parser[725]
-#define COLOR_parser___ReduceAction172___init SFT_parser[726]
-#define ID_ReduceAction173 SFT_parser[727]
-#define COLOR_ReduceAction173 SFT_parser[728]
-#define INIT_TABLE_POS_ReduceAction173 SFT_parser[729]
-#define COLOR_parser___ReduceAction173___init SFT_parser[730]
-#define ID_ReduceAction174 SFT_parser[731]
-#define COLOR_ReduceAction174 SFT_parser[732]
-#define INIT_TABLE_POS_ReduceAction174 SFT_parser[733]
-#define COLOR_parser___ReduceAction174___init SFT_parser[734]
-#define ID_ReduceAction175 SFT_parser[735]
-#define COLOR_ReduceAction175 SFT_parser[736]
-#define INIT_TABLE_POS_ReduceAction175 SFT_parser[737]
-#define COLOR_parser___ReduceAction175___init SFT_parser[738]
-#define ID_ReduceAction176 SFT_parser[739]
-#define COLOR_ReduceAction176 SFT_parser[740]
-#define INIT_TABLE_POS_ReduceAction176 SFT_parser[741]
-#define COLOR_parser___ReduceAction176___init SFT_parser[742]
-#define ID_ReduceAction177 SFT_parser[743]
-#define COLOR_ReduceAction177 SFT_parser[744]
-#define INIT_TABLE_POS_ReduceAction177 SFT_parser[745]
-#define COLOR_parser___ReduceAction177___init SFT_parser[746]
-#define ID_ReduceAction178 SFT_parser[747]
-#define COLOR_ReduceAction178 SFT_parser[748]
-#define INIT_TABLE_POS_ReduceAction178 SFT_parser[749]
-#define COLOR_parser___ReduceAction178___init SFT_parser[750]
-#define ID_ReduceAction179 SFT_parser[751]
-#define COLOR_ReduceAction179 SFT_parser[752]
-#define INIT_TABLE_POS_ReduceAction179 SFT_parser[753]
-#define COLOR_parser___ReduceAction179___init SFT_parser[754]
-#define ID_ReduceAction180 SFT_parser[755]
-#define COLOR_ReduceAction180 SFT_parser[756]
-#define INIT_TABLE_POS_ReduceAction180 SFT_parser[757]
-#define COLOR_parser___ReduceAction180___init SFT_parser[758]
-#define ID_ReduceAction181 SFT_parser[759]
-#define COLOR_ReduceAction181 SFT_parser[760]
-#define INIT_TABLE_POS_ReduceAction181 SFT_parser[761]
-#define COLOR_parser___ReduceAction181___init SFT_parser[762]
-#define ID_ReduceAction182 SFT_parser[763]
-#define COLOR_ReduceAction182 SFT_parser[764]
-#define INIT_TABLE_POS_ReduceAction182 SFT_parser[765]
-#define COLOR_parser___ReduceAction182___init SFT_parser[766]
-#define ID_ReduceAction183 SFT_parser[767]
-#define COLOR_ReduceAction183 SFT_parser[768]
-#define INIT_TABLE_POS_ReduceAction183 SFT_parser[769]
-#define COLOR_parser___ReduceAction183___init SFT_parser[770]
-#define ID_ReduceAction184 SFT_parser[771]
-#define COLOR_ReduceAction184 SFT_parser[772]
-#define INIT_TABLE_POS_ReduceAction184 SFT_parser[773]
-#define COLOR_parser___ReduceAction184___init SFT_parser[774]
-#define ID_ReduceAction185 SFT_parser[775]
-#define COLOR_ReduceAction185 SFT_parser[776]
-#define INIT_TABLE_POS_ReduceAction185 SFT_parser[777]
-#define COLOR_parser___ReduceAction185___init SFT_parser[778]
-#define ID_ReduceAction186 SFT_parser[779]
-#define COLOR_ReduceAction186 SFT_parser[780]
-#define INIT_TABLE_POS_ReduceAction186 SFT_parser[781]
-#define COLOR_parser___ReduceAction186___init SFT_parser[782]
-#define ID_ReduceAction187 SFT_parser[783]
-#define COLOR_ReduceAction187 SFT_parser[784]
-#define INIT_TABLE_POS_ReduceAction187 SFT_parser[785]
-#define COLOR_parser___ReduceAction187___init SFT_parser[786]
-#define ID_ReduceAction188 SFT_parser[787]
-#define COLOR_ReduceAction188 SFT_parser[788]
-#define INIT_TABLE_POS_ReduceAction188 SFT_parser[789]
-#define COLOR_parser___ReduceAction188___init SFT_parser[790]
-#define ID_ReduceAction189 SFT_parser[791]
-#define COLOR_ReduceAction189 SFT_parser[792]
-#define INIT_TABLE_POS_ReduceAction189 SFT_parser[793]
-#define COLOR_parser___ReduceAction189___init SFT_parser[794]
-#define ID_ReduceAction190 SFT_parser[795]
-#define COLOR_ReduceAction190 SFT_parser[796]
-#define INIT_TABLE_POS_ReduceAction190 SFT_parser[797]
-#define COLOR_parser___ReduceAction190___init SFT_parser[798]
-#define ID_ReduceAction191 SFT_parser[799]
-#define COLOR_ReduceAction191 SFT_parser[800]
-#define INIT_TABLE_POS_ReduceAction191 SFT_parser[801]
-#define COLOR_parser___ReduceAction191___init SFT_parser[802]
-#define ID_ReduceAction192 SFT_parser[803]
-#define COLOR_ReduceAction192 SFT_parser[804]
-#define INIT_TABLE_POS_ReduceAction192 SFT_parser[805]
-#define COLOR_parser___ReduceAction192___init SFT_parser[806]
-#define ID_ReduceAction193 SFT_parser[807]
-#define COLOR_ReduceAction193 SFT_parser[808]
-#define INIT_TABLE_POS_ReduceAction193 SFT_parser[809]
-#define COLOR_parser___ReduceAction193___init SFT_parser[810]
-#define ID_ReduceAction194 SFT_parser[811]
-#define COLOR_ReduceAction194 SFT_parser[812]
-#define INIT_TABLE_POS_ReduceAction194 SFT_parser[813]
-#define COLOR_parser___ReduceAction194___init SFT_parser[814]
-#define ID_ReduceAction195 SFT_parser[815]
-#define COLOR_ReduceAction195 SFT_parser[816]
-#define INIT_TABLE_POS_ReduceAction195 SFT_parser[817]
-#define COLOR_parser___ReduceAction195___init SFT_parser[818]
-#define ID_ReduceAction196 SFT_parser[819]
-#define COLOR_ReduceAction196 SFT_parser[820]
-#define INIT_TABLE_POS_ReduceAction196 SFT_parser[821]
-#define COLOR_parser___ReduceAction196___init SFT_parser[822]
-#define ID_ReduceAction197 SFT_parser[823]
-#define COLOR_ReduceAction197 SFT_parser[824]
-#define INIT_TABLE_POS_ReduceAction197 SFT_parser[825]
-#define COLOR_parser___ReduceAction197___init SFT_parser[826]
-#define ID_ReduceAction198 SFT_parser[827]
-#define COLOR_ReduceAction198 SFT_parser[828]
-#define INIT_TABLE_POS_ReduceAction198 SFT_parser[829]
-#define COLOR_parser___ReduceAction198___init SFT_parser[830]
-#define ID_ReduceAction199 SFT_parser[831]
-#define COLOR_ReduceAction199 SFT_parser[832]
-#define INIT_TABLE_POS_ReduceAction199 SFT_parser[833]
-#define COLOR_parser___ReduceAction199___init SFT_parser[834]
-#define ID_ReduceAction200 SFT_parser[835]
-#define COLOR_ReduceAction200 SFT_parser[836]
-#define INIT_TABLE_POS_ReduceAction200 SFT_parser[837]
-#define COLOR_parser___ReduceAction200___init SFT_parser[838]
-#define ID_ReduceAction201 SFT_parser[839]
-#define COLOR_ReduceAction201 SFT_parser[840]
-#define INIT_TABLE_POS_ReduceAction201 SFT_parser[841]
-#define COLOR_parser___ReduceAction201___init SFT_parser[842]
-#define ID_ReduceAction202 SFT_parser[843]
-#define COLOR_ReduceAction202 SFT_parser[844]
-#define INIT_TABLE_POS_ReduceAction202 SFT_parser[845]
-#define COLOR_parser___ReduceAction202___init SFT_parser[846]
-#define ID_ReduceAction203 SFT_parser[847]
-#define COLOR_ReduceAction203 SFT_parser[848]
-#define INIT_TABLE_POS_ReduceAction203 SFT_parser[849]
-#define COLOR_parser___ReduceAction203___init SFT_parser[850]
-#define ID_ReduceAction204 SFT_parser[851]
-#define COLOR_ReduceAction204 SFT_parser[852]
-#define INIT_TABLE_POS_ReduceAction204 SFT_parser[853]
-#define COLOR_parser___ReduceAction204___init SFT_parser[854]
-#define ID_ReduceAction205 SFT_parser[855]
-#define COLOR_ReduceAction205 SFT_parser[856]
-#define INIT_TABLE_POS_ReduceAction205 SFT_parser[857]
-#define COLOR_parser___ReduceAction205___init SFT_parser[858]
-#define ID_ReduceAction206 SFT_parser[859]
-#define COLOR_ReduceAction206 SFT_parser[860]
-#define INIT_TABLE_POS_ReduceAction206 SFT_parser[861]
-#define COLOR_parser___ReduceAction206___init SFT_parser[862]
-#define ID_ReduceAction207 SFT_parser[863]
-#define COLOR_ReduceAction207 SFT_parser[864]
-#define INIT_TABLE_POS_ReduceAction207 SFT_parser[865]
-#define COLOR_parser___ReduceAction207___init SFT_parser[866]
-#define ID_ReduceAction208 SFT_parser[867]
-#define COLOR_ReduceAction208 SFT_parser[868]
-#define INIT_TABLE_POS_ReduceAction208 SFT_parser[869]
-#define COLOR_parser___ReduceAction208___init SFT_parser[870]
-#define ID_ReduceAction209 SFT_parser[871]
-#define COLOR_ReduceAction209 SFT_parser[872]
-#define INIT_TABLE_POS_ReduceAction209 SFT_parser[873]
-#define COLOR_parser___ReduceAction209___init SFT_parser[874]
-#define ID_ReduceAction210 SFT_parser[875]
-#define COLOR_ReduceAction210 SFT_parser[876]
-#define INIT_TABLE_POS_ReduceAction210 SFT_parser[877]
-#define COLOR_parser___ReduceAction210___init SFT_parser[878]
-#define ID_ReduceAction211 SFT_parser[879]
-#define COLOR_ReduceAction211 SFT_parser[880]
-#define INIT_TABLE_POS_ReduceAction211 SFT_parser[881]
-#define COLOR_parser___ReduceAction211___init SFT_parser[882]
-#define ID_ReduceAction212 SFT_parser[883]
-#define COLOR_ReduceAction212 SFT_parser[884]
-#define INIT_TABLE_POS_ReduceAction212 SFT_parser[885]
-#define COLOR_parser___ReduceAction212___init SFT_parser[886]
-#define ID_ReduceAction213 SFT_parser[887]
-#define COLOR_ReduceAction213 SFT_parser[888]
-#define INIT_TABLE_POS_ReduceAction213 SFT_parser[889]
-#define COLOR_parser___ReduceAction213___init SFT_parser[890]
-#define ID_ReduceAction214 SFT_parser[891]
-#define COLOR_ReduceAction214 SFT_parser[892]
-#define INIT_TABLE_POS_ReduceAction214 SFT_parser[893]
-#define COLOR_parser___ReduceAction214___init SFT_parser[894]
-#define ID_ReduceAction215 SFT_parser[895]
-#define COLOR_ReduceAction215 SFT_parser[896]
-#define INIT_TABLE_POS_ReduceAction215 SFT_parser[897]
-#define COLOR_parser___ReduceAction215___init SFT_parser[898]
-#define ID_ReduceAction216 SFT_parser[899]
-#define COLOR_ReduceAction216 SFT_parser[900]
-#define INIT_TABLE_POS_ReduceAction216 SFT_parser[901]
-#define COLOR_parser___ReduceAction216___init SFT_parser[902]
-#define ID_ReduceAction217 SFT_parser[903]
-#define COLOR_ReduceAction217 SFT_parser[904]
-#define INIT_TABLE_POS_ReduceAction217 SFT_parser[905]
-#define COLOR_parser___ReduceAction217___init SFT_parser[906]
-#define ID_ReduceAction218 SFT_parser[907]
-#define COLOR_ReduceAction218 SFT_parser[908]
-#define INIT_TABLE_POS_ReduceAction218 SFT_parser[909]
-#define COLOR_parser___ReduceAction218___init SFT_parser[910]
-#define ID_ReduceAction219 SFT_parser[911]
-#define COLOR_ReduceAction219 SFT_parser[912]
-#define INIT_TABLE_POS_ReduceAction219 SFT_parser[913]
-#define COLOR_parser___ReduceAction219___init SFT_parser[914]
-#define ID_ReduceAction220 SFT_parser[915]
-#define COLOR_ReduceAction220 SFT_parser[916]
-#define INIT_TABLE_POS_ReduceAction220 SFT_parser[917]
-#define COLOR_parser___ReduceAction220___init SFT_parser[918]
-#define ID_ReduceAction221 SFT_parser[919]
-#define COLOR_ReduceAction221 SFT_parser[920]
-#define INIT_TABLE_POS_ReduceAction221 SFT_parser[921]
-#define COLOR_parser___ReduceAction221___init SFT_parser[922]
-#define ID_ReduceAction222 SFT_parser[923]
-#define COLOR_ReduceAction222 SFT_parser[924]
-#define INIT_TABLE_POS_ReduceAction222 SFT_parser[925]
-#define COLOR_parser___ReduceAction222___init SFT_parser[926]
-#define ID_ReduceAction223 SFT_parser[927]
-#define COLOR_ReduceAction223 SFT_parser[928]
-#define INIT_TABLE_POS_ReduceAction223 SFT_parser[929]
-#define COLOR_parser___ReduceAction223___init SFT_parser[930]
-#define ID_ReduceAction224 SFT_parser[931]
-#define COLOR_ReduceAction224 SFT_parser[932]
-#define INIT_TABLE_POS_ReduceAction224 SFT_parser[933]
-#define COLOR_parser___ReduceAction224___init SFT_parser[934]
-#define ID_ReduceAction225 SFT_parser[935]
-#define COLOR_ReduceAction225 SFT_parser[936]
-#define INIT_TABLE_POS_ReduceAction225 SFT_parser[937]
-#define COLOR_parser___ReduceAction225___init SFT_parser[938]
-#define ID_ReduceAction226 SFT_parser[939]
-#define COLOR_ReduceAction226 SFT_parser[940]
-#define INIT_TABLE_POS_ReduceAction226 SFT_parser[941]
-#define COLOR_parser___ReduceAction226___init SFT_parser[942]
-#define ID_ReduceAction227 SFT_parser[943]
-#define COLOR_ReduceAction227 SFT_parser[944]
-#define INIT_TABLE_POS_ReduceAction227 SFT_parser[945]
-#define COLOR_parser___ReduceAction227___init SFT_parser[946]
-#define ID_ReduceAction228 SFT_parser[947]
-#define COLOR_ReduceAction228 SFT_parser[948]
-#define INIT_TABLE_POS_ReduceAction228 SFT_parser[949]
-#define COLOR_parser___ReduceAction228___init SFT_parser[950]
-#define ID_ReduceAction229 SFT_parser[951]
-#define COLOR_ReduceAction229 SFT_parser[952]
-#define INIT_TABLE_POS_ReduceAction229 SFT_parser[953]
-#define COLOR_parser___ReduceAction229___init SFT_parser[954]
-#define ID_ReduceAction230 SFT_parser[955]
-#define COLOR_ReduceAction230 SFT_parser[956]
-#define INIT_TABLE_POS_ReduceAction230 SFT_parser[957]
-#define COLOR_parser___ReduceAction230___init SFT_parser[958]
-#define ID_ReduceAction231 SFT_parser[959]
-#define COLOR_ReduceAction231 SFT_parser[960]
-#define INIT_TABLE_POS_ReduceAction231 SFT_parser[961]
-#define COLOR_parser___ReduceAction231___init SFT_parser[962]
-#define ID_ReduceAction232 SFT_parser[963]
-#define COLOR_ReduceAction232 SFT_parser[964]
-#define INIT_TABLE_POS_ReduceAction232 SFT_parser[965]
-#define COLOR_parser___ReduceAction232___init SFT_parser[966]
-#define ID_ReduceAction233 SFT_parser[967]
-#define COLOR_ReduceAction233 SFT_parser[968]
-#define INIT_TABLE_POS_ReduceAction233 SFT_parser[969]
-#define COLOR_parser___ReduceAction233___init SFT_parser[970]
-#define ID_ReduceAction234 SFT_parser[971]
-#define COLOR_ReduceAction234 SFT_parser[972]
-#define INIT_TABLE_POS_ReduceAction234 SFT_parser[973]
-#define COLOR_parser___ReduceAction234___init SFT_parser[974]
-#define ID_ReduceAction235 SFT_parser[975]
-#define COLOR_ReduceAction235 SFT_parser[976]
-#define INIT_TABLE_POS_ReduceAction235 SFT_parser[977]
-#define COLOR_parser___ReduceAction235___init SFT_parser[978]
-#define ID_ReduceAction236 SFT_parser[979]
-#define COLOR_ReduceAction236 SFT_parser[980]
-#define INIT_TABLE_POS_ReduceAction236 SFT_parser[981]
-#define COLOR_parser___ReduceAction236___init SFT_parser[982]
-#define ID_ReduceAction237 SFT_parser[983]
-#define COLOR_ReduceAction237 SFT_parser[984]
-#define INIT_TABLE_POS_ReduceAction237 SFT_parser[985]
-#define COLOR_parser___ReduceAction237___init SFT_parser[986]
-#define ID_ReduceAction238 SFT_parser[987]
-#define COLOR_ReduceAction238 SFT_parser[988]
-#define INIT_TABLE_POS_ReduceAction238 SFT_parser[989]
-#define COLOR_parser___ReduceAction238___init SFT_parser[990]
-#define ID_ReduceAction239 SFT_parser[991]
-#define COLOR_ReduceAction239 SFT_parser[992]
-#define INIT_TABLE_POS_ReduceAction239 SFT_parser[993]
-#define COLOR_parser___ReduceAction239___init SFT_parser[994]
-#define ID_ReduceAction240 SFT_parser[995]
-#define COLOR_ReduceAction240 SFT_parser[996]
-#define INIT_TABLE_POS_ReduceAction240 SFT_parser[997]
-#define COLOR_parser___ReduceAction240___init SFT_parser[998]
-#define ID_ReduceAction241 SFT_parser[999]
-#define COLOR_ReduceAction241 SFT_parser[1000]
-#define INIT_TABLE_POS_ReduceAction241 SFT_parser[1001]
-#define COLOR_parser___ReduceAction241___init SFT_parser[1002]
-#define ID_ReduceAction242 SFT_parser[1003]
-#define COLOR_ReduceAction242 SFT_parser[1004]
-#define INIT_TABLE_POS_ReduceAction242 SFT_parser[1005]
-#define COLOR_parser___ReduceAction242___init SFT_parser[1006]
-#define ID_ReduceAction243 SFT_parser[1007]
-#define COLOR_ReduceAction243 SFT_parser[1008]
-#define INIT_TABLE_POS_ReduceAction243 SFT_parser[1009]
-#define COLOR_parser___ReduceAction243___init SFT_parser[1010]
-#define ID_ReduceAction244 SFT_parser[1011]
-#define COLOR_ReduceAction244 SFT_parser[1012]
-#define INIT_TABLE_POS_ReduceAction244 SFT_parser[1013]
-#define COLOR_parser___ReduceAction244___init SFT_parser[1014]
-#define ID_ReduceAction245 SFT_parser[1015]
-#define COLOR_ReduceAction245 SFT_parser[1016]
-#define INIT_TABLE_POS_ReduceAction245 SFT_parser[1017]
-#define COLOR_parser___ReduceAction245___init SFT_parser[1018]
-#define ID_ReduceAction246 SFT_parser[1019]
-#define COLOR_ReduceAction246 SFT_parser[1020]
-#define INIT_TABLE_POS_ReduceAction246 SFT_parser[1021]
-#define COLOR_parser___ReduceAction246___init SFT_parser[1022]
-#define ID_ReduceAction247 SFT_parser[1023]
-#define COLOR_ReduceAction247 SFT_parser[1024]
-#define INIT_TABLE_POS_ReduceAction247 SFT_parser[1025]
-#define COLOR_parser___ReduceAction247___init SFT_parser[1026]
-#define ID_ReduceAction248 SFT_parser[1027]
-#define COLOR_ReduceAction248 SFT_parser[1028]
-#define INIT_TABLE_POS_ReduceAction248 SFT_parser[1029]
-#define COLOR_parser___ReduceAction248___init SFT_parser[1030]
-#define ID_ReduceAction249 SFT_parser[1031]
-#define COLOR_ReduceAction249 SFT_parser[1032]
-#define INIT_TABLE_POS_ReduceAction249 SFT_parser[1033]
-#define COLOR_parser___ReduceAction249___init SFT_parser[1034]
-#define ID_ReduceAction250 SFT_parser[1035]
-#define COLOR_ReduceAction250 SFT_parser[1036]
-#define INIT_TABLE_POS_ReduceAction250 SFT_parser[1037]
-#define COLOR_parser___ReduceAction250___init SFT_parser[1038]
-#define ID_ReduceAction251 SFT_parser[1039]
-#define COLOR_ReduceAction251 SFT_parser[1040]
-#define INIT_TABLE_POS_ReduceAction251 SFT_parser[1041]
-#define COLOR_parser___ReduceAction251___init SFT_parser[1042]
-#define ID_ReduceAction252 SFT_parser[1043]
-#define COLOR_ReduceAction252 SFT_parser[1044]
-#define INIT_TABLE_POS_ReduceAction252 SFT_parser[1045]
-#define COLOR_parser___ReduceAction252___init SFT_parser[1046]
-#define ID_ReduceAction253 SFT_parser[1047]
-#define COLOR_ReduceAction253 SFT_parser[1048]
-#define INIT_TABLE_POS_ReduceAction253 SFT_parser[1049]
-#define COLOR_parser___ReduceAction253___init SFT_parser[1050]
-#define ID_ReduceAction254 SFT_parser[1051]
-#define COLOR_ReduceAction254 SFT_parser[1052]
-#define INIT_TABLE_POS_ReduceAction254 SFT_parser[1053]
-#define COLOR_parser___ReduceAction254___init SFT_parser[1054]
-#define ID_ReduceAction255 SFT_parser[1055]
-#define COLOR_ReduceAction255 SFT_parser[1056]
-#define INIT_TABLE_POS_ReduceAction255 SFT_parser[1057]
-#define COLOR_parser___ReduceAction255___init SFT_parser[1058]
-#define ID_ReduceAction256 SFT_parser[1059]
-#define COLOR_ReduceAction256 SFT_parser[1060]
-#define INIT_TABLE_POS_ReduceAction256 SFT_parser[1061]
-#define COLOR_parser___ReduceAction256___init SFT_parser[1062]
-#define ID_ReduceAction257 SFT_parser[1063]
-#define COLOR_ReduceAction257 SFT_parser[1064]
-#define INIT_TABLE_POS_ReduceAction257 SFT_parser[1065]
-#define COLOR_parser___ReduceAction257___init SFT_parser[1066]
-#define ID_ReduceAction258 SFT_parser[1067]
-#define COLOR_ReduceAction258 SFT_parser[1068]
-#define INIT_TABLE_POS_ReduceAction258 SFT_parser[1069]
-#define COLOR_parser___ReduceAction258___init SFT_parser[1070]
-#define ID_ReduceAction259 SFT_parser[1071]
-#define COLOR_ReduceAction259 SFT_parser[1072]
-#define INIT_TABLE_POS_ReduceAction259 SFT_parser[1073]
-#define COLOR_parser___ReduceAction259___init SFT_parser[1074]
-#define ID_ReduceAction260 SFT_parser[1075]
-#define COLOR_ReduceAction260 SFT_parser[1076]
-#define INIT_TABLE_POS_ReduceAction260 SFT_parser[1077]
-#define COLOR_parser___ReduceAction260___init SFT_parser[1078]
-#define ID_ReduceAction261 SFT_parser[1079]
-#define COLOR_ReduceAction261 SFT_parser[1080]
-#define INIT_TABLE_POS_ReduceAction261 SFT_parser[1081]
-#define COLOR_parser___ReduceAction261___init SFT_parser[1082]
-#define ID_ReduceAction262 SFT_parser[1083]
-#define COLOR_ReduceAction262 SFT_parser[1084]
-#define INIT_TABLE_POS_ReduceAction262 SFT_parser[1085]
-#define COLOR_parser___ReduceAction262___init SFT_parser[1086]
-#define ID_ReduceAction263 SFT_parser[1087]
-#define COLOR_ReduceAction263 SFT_parser[1088]
-#define INIT_TABLE_POS_ReduceAction263 SFT_parser[1089]
-#define COLOR_parser___ReduceAction263___init SFT_parser[1090]
-#define ID_ReduceAction264 SFT_parser[1091]
-#define COLOR_ReduceAction264 SFT_parser[1092]
-#define INIT_TABLE_POS_ReduceAction264 SFT_parser[1093]
-#define COLOR_parser___ReduceAction264___init SFT_parser[1094]
-#define ID_ReduceAction265 SFT_parser[1095]
-#define COLOR_ReduceAction265 SFT_parser[1096]
-#define INIT_TABLE_POS_ReduceAction265 SFT_parser[1097]
-#define COLOR_parser___ReduceAction265___init SFT_parser[1098]
-#define ID_ReduceAction266 SFT_parser[1099]
-#define COLOR_ReduceAction266 SFT_parser[1100]
-#define INIT_TABLE_POS_ReduceAction266 SFT_parser[1101]
-#define COLOR_parser___ReduceAction266___init SFT_parser[1102]
-#define ID_ReduceAction267 SFT_parser[1103]
-#define COLOR_ReduceAction267 SFT_parser[1104]
-#define INIT_TABLE_POS_ReduceAction267 SFT_parser[1105]
-#define COLOR_parser___ReduceAction267___init SFT_parser[1106]
-#define ID_ReduceAction268 SFT_parser[1107]
-#define COLOR_ReduceAction268 SFT_parser[1108]
-#define INIT_TABLE_POS_ReduceAction268 SFT_parser[1109]
-#define COLOR_parser___ReduceAction268___init SFT_parser[1110]
-#define ID_ReduceAction269 SFT_parser[1111]
-#define COLOR_ReduceAction269 SFT_parser[1112]
-#define INIT_TABLE_POS_ReduceAction269 SFT_parser[1113]
-#define COLOR_parser___ReduceAction269___init SFT_parser[1114]
-#define ID_ReduceAction270 SFT_parser[1115]
-#define COLOR_ReduceAction270 SFT_parser[1116]
-#define INIT_TABLE_POS_ReduceAction270 SFT_parser[1117]
-#define COLOR_parser___ReduceAction270___init SFT_parser[1118]
-#define ID_ReduceAction271 SFT_parser[1119]
-#define COLOR_ReduceAction271 SFT_parser[1120]
-#define INIT_TABLE_POS_ReduceAction271 SFT_parser[1121]
-#define COLOR_parser___ReduceAction271___init SFT_parser[1122]
-#define ID_ReduceAction272 SFT_parser[1123]
-#define COLOR_ReduceAction272 SFT_parser[1124]
-#define INIT_TABLE_POS_ReduceAction272 SFT_parser[1125]
-#define COLOR_parser___ReduceAction272___init SFT_parser[1126]
-#define ID_ReduceAction273 SFT_parser[1127]
-#define COLOR_ReduceAction273 SFT_parser[1128]
-#define INIT_TABLE_POS_ReduceAction273 SFT_parser[1129]
-#define COLOR_parser___ReduceAction273___init SFT_parser[1130]
-#define ID_ReduceAction274 SFT_parser[1131]
-#define COLOR_ReduceAction274 SFT_parser[1132]
-#define INIT_TABLE_POS_ReduceAction274 SFT_parser[1133]
-#define COLOR_parser___ReduceAction274___init SFT_parser[1134]
-#define ID_ReduceAction275 SFT_parser[1135]
-#define COLOR_ReduceAction275 SFT_parser[1136]
-#define INIT_TABLE_POS_ReduceAction275 SFT_parser[1137]
-#define COLOR_parser___ReduceAction275___init SFT_parser[1138]
-#define ID_ReduceAction276 SFT_parser[1139]
-#define COLOR_ReduceAction276 SFT_parser[1140]
-#define INIT_TABLE_POS_ReduceAction276 SFT_parser[1141]
-#define COLOR_parser___ReduceAction276___init SFT_parser[1142]
-#define ID_ReduceAction277 SFT_parser[1143]
-#define COLOR_ReduceAction277 SFT_parser[1144]
-#define INIT_TABLE_POS_ReduceAction277 SFT_parser[1145]
-#define COLOR_parser___ReduceAction277___init SFT_parser[1146]
-#define ID_ReduceAction278 SFT_parser[1147]
-#define COLOR_ReduceAction278 SFT_parser[1148]
-#define INIT_TABLE_POS_ReduceAction278 SFT_parser[1149]
-#define COLOR_parser___ReduceAction278___init SFT_parser[1150]
-#define ID_ReduceAction279 SFT_parser[1151]
-#define COLOR_ReduceAction279 SFT_parser[1152]
-#define INIT_TABLE_POS_ReduceAction279 SFT_parser[1153]
-#define COLOR_parser___ReduceAction279___init SFT_parser[1154]
-#define ID_ReduceAction280 SFT_parser[1155]
-#define COLOR_ReduceAction280 SFT_parser[1156]
-#define INIT_TABLE_POS_ReduceAction280 SFT_parser[1157]
-#define COLOR_parser___ReduceAction280___init SFT_parser[1158]
-#define ID_ReduceAction281 SFT_parser[1159]
-#define COLOR_ReduceAction281 SFT_parser[1160]
-#define INIT_TABLE_POS_ReduceAction281 SFT_parser[1161]
-#define COLOR_parser___ReduceAction281___init SFT_parser[1162]
-#define ID_ReduceAction282 SFT_parser[1163]
-#define COLOR_ReduceAction282 SFT_parser[1164]
-#define INIT_TABLE_POS_ReduceAction282 SFT_parser[1165]
-#define COLOR_parser___ReduceAction282___init SFT_parser[1166]
-#define ID_ReduceAction283 SFT_parser[1167]
-#define COLOR_ReduceAction283 SFT_parser[1168]
-#define INIT_TABLE_POS_ReduceAction283 SFT_parser[1169]
-#define COLOR_parser___ReduceAction283___init SFT_parser[1170]
-#define ID_ReduceAction284 SFT_parser[1171]
-#define COLOR_ReduceAction284 SFT_parser[1172]
-#define INIT_TABLE_POS_ReduceAction284 SFT_parser[1173]
-#define COLOR_parser___ReduceAction284___init SFT_parser[1174]
-#define ID_ReduceAction285 SFT_parser[1175]
-#define COLOR_ReduceAction285 SFT_parser[1176]
-#define INIT_TABLE_POS_ReduceAction285 SFT_parser[1177]
-#define COLOR_parser___ReduceAction285___init SFT_parser[1178]
-#define ID_ReduceAction286 SFT_parser[1179]
-#define COLOR_ReduceAction286 SFT_parser[1180]
-#define INIT_TABLE_POS_ReduceAction286 SFT_parser[1181]
-#define COLOR_parser___ReduceAction286___init SFT_parser[1182]
-#define ID_ReduceAction287 SFT_parser[1183]
-#define COLOR_ReduceAction287 SFT_parser[1184]
-#define INIT_TABLE_POS_ReduceAction287 SFT_parser[1185]
-#define COLOR_parser___ReduceAction287___init SFT_parser[1186]
-#define ID_ReduceAction288 SFT_parser[1187]
-#define COLOR_ReduceAction288 SFT_parser[1188]
-#define INIT_TABLE_POS_ReduceAction288 SFT_parser[1189]
-#define COLOR_parser___ReduceAction288___init SFT_parser[1190]
-#define ID_ReduceAction289 SFT_parser[1191]
-#define COLOR_ReduceAction289 SFT_parser[1192]
-#define INIT_TABLE_POS_ReduceAction289 SFT_parser[1193]
-#define COLOR_parser___ReduceAction289___init SFT_parser[1194]
-#define ID_ReduceAction290 SFT_parser[1195]
-#define COLOR_ReduceAction290 SFT_parser[1196]
-#define INIT_TABLE_POS_ReduceAction290 SFT_parser[1197]
-#define COLOR_parser___ReduceAction290___init SFT_parser[1198]
-#define ID_ReduceAction291 SFT_parser[1199]
-#define COLOR_ReduceAction291 SFT_parser[1200]
-#define INIT_TABLE_POS_ReduceAction291 SFT_parser[1201]
-#define COLOR_parser___ReduceAction291___init SFT_parser[1202]
-#define ID_ReduceAction292 SFT_parser[1203]
-#define COLOR_ReduceAction292 SFT_parser[1204]
-#define INIT_TABLE_POS_ReduceAction292 SFT_parser[1205]
-#define COLOR_parser___ReduceAction292___init SFT_parser[1206]
-#define ID_ReduceAction293 SFT_parser[1207]
-#define COLOR_ReduceAction293 SFT_parser[1208]
-#define INIT_TABLE_POS_ReduceAction293 SFT_parser[1209]
-#define COLOR_parser___ReduceAction293___init SFT_parser[1210]
-#define ID_ReduceAction294 SFT_parser[1211]
-#define COLOR_ReduceAction294 SFT_parser[1212]
-#define INIT_TABLE_POS_ReduceAction294 SFT_parser[1213]
-#define COLOR_parser___ReduceAction294___init SFT_parser[1214]
-#define ID_ReduceAction295 SFT_parser[1215]
-#define COLOR_ReduceAction295 SFT_parser[1216]
-#define INIT_TABLE_POS_ReduceAction295 SFT_parser[1217]
-#define COLOR_parser___ReduceAction295___init SFT_parser[1218]
-#define ID_ReduceAction296 SFT_parser[1219]
-#define COLOR_ReduceAction296 SFT_parser[1220]
-#define INIT_TABLE_POS_ReduceAction296 SFT_parser[1221]
-#define COLOR_parser___ReduceAction296___init SFT_parser[1222]
-#define ID_ReduceAction297 SFT_parser[1223]
-#define COLOR_ReduceAction297 SFT_parser[1224]
-#define INIT_TABLE_POS_ReduceAction297 SFT_parser[1225]
-#define COLOR_parser___ReduceAction297___init SFT_parser[1226]
-#define ID_ReduceAction298 SFT_parser[1227]
-#define COLOR_ReduceAction298 SFT_parser[1228]
-#define INIT_TABLE_POS_ReduceAction298 SFT_parser[1229]
-#define COLOR_parser___ReduceAction298___init SFT_parser[1230]
-#define ID_ReduceAction299 SFT_parser[1231]
-#define COLOR_ReduceAction299 SFT_parser[1232]
-#define INIT_TABLE_POS_ReduceAction299 SFT_parser[1233]
-#define COLOR_parser___ReduceAction299___init SFT_parser[1234]
-#define ID_ReduceAction300 SFT_parser[1235]
-#define COLOR_ReduceAction300 SFT_parser[1236]
-#define INIT_TABLE_POS_ReduceAction300 SFT_parser[1237]
-#define COLOR_parser___ReduceAction300___init SFT_parser[1238]
-#define ID_ReduceAction301 SFT_parser[1239]
-#define COLOR_ReduceAction301 SFT_parser[1240]
-#define INIT_TABLE_POS_ReduceAction301 SFT_parser[1241]
-#define COLOR_parser___ReduceAction301___init SFT_parser[1242]
-#define ID_ReduceAction302 SFT_parser[1243]
-#define COLOR_ReduceAction302 SFT_parser[1244]
-#define INIT_TABLE_POS_ReduceAction302 SFT_parser[1245]
-#define COLOR_parser___ReduceAction302___init SFT_parser[1246]
-#define ID_ReduceAction303 SFT_parser[1247]
-#define COLOR_ReduceAction303 SFT_parser[1248]
-#define INIT_TABLE_POS_ReduceAction303 SFT_parser[1249]
-#define COLOR_parser___ReduceAction303___init SFT_parser[1250]
-#define ID_ReduceAction304 SFT_parser[1251]
-#define COLOR_ReduceAction304 SFT_parser[1252]
-#define INIT_TABLE_POS_ReduceAction304 SFT_parser[1253]
-#define COLOR_parser___ReduceAction304___init SFT_parser[1254]
-#define ID_ReduceAction305 SFT_parser[1255]
-#define COLOR_ReduceAction305 SFT_parser[1256]
-#define INIT_TABLE_POS_ReduceAction305 SFT_parser[1257]
-#define COLOR_parser___ReduceAction305___init SFT_parser[1258]
-#define ID_ReduceAction306 SFT_parser[1259]
-#define COLOR_ReduceAction306 SFT_parser[1260]
-#define INIT_TABLE_POS_ReduceAction306 SFT_parser[1261]
-#define COLOR_parser___ReduceAction306___init SFT_parser[1262]
-#define ID_ReduceAction307 SFT_parser[1263]
-#define COLOR_ReduceAction307 SFT_parser[1264]
-#define INIT_TABLE_POS_ReduceAction307 SFT_parser[1265]
-#define COLOR_parser___ReduceAction307___init SFT_parser[1266]
-#define ID_ReduceAction308 SFT_parser[1267]
-#define COLOR_ReduceAction308 SFT_parser[1268]
-#define INIT_TABLE_POS_ReduceAction308 SFT_parser[1269]
-#define COLOR_parser___ReduceAction308___init SFT_parser[1270]
-#define ID_ReduceAction309 SFT_parser[1271]
-#define COLOR_ReduceAction309 SFT_parser[1272]
-#define INIT_TABLE_POS_ReduceAction309 SFT_parser[1273]
-#define COLOR_parser___ReduceAction309___init SFT_parser[1274]
-#define ID_ReduceAction310 SFT_parser[1275]
-#define COLOR_ReduceAction310 SFT_parser[1276]
-#define INIT_TABLE_POS_ReduceAction310 SFT_parser[1277]
-#define COLOR_parser___ReduceAction310___init SFT_parser[1278]
-#define ID_ReduceAction311 SFT_parser[1279]
-#define COLOR_ReduceAction311 SFT_parser[1280]
-#define INIT_TABLE_POS_ReduceAction311 SFT_parser[1281]
-#define COLOR_parser___ReduceAction311___init SFT_parser[1282]
-#define ID_ReduceAction312 SFT_parser[1283]
-#define COLOR_ReduceAction312 SFT_parser[1284]
-#define INIT_TABLE_POS_ReduceAction312 SFT_parser[1285]
-#define COLOR_parser___ReduceAction312___init SFT_parser[1286]
-#define ID_ReduceAction313 SFT_parser[1287]
-#define COLOR_ReduceAction313 SFT_parser[1288]
-#define INIT_TABLE_POS_ReduceAction313 SFT_parser[1289]
-#define COLOR_parser___ReduceAction313___init SFT_parser[1290]
-#define ID_ReduceAction314 SFT_parser[1291]
-#define COLOR_ReduceAction314 SFT_parser[1292]
-#define INIT_TABLE_POS_ReduceAction314 SFT_parser[1293]
-#define COLOR_parser___ReduceAction314___init SFT_parser[1294]
-#define ID_ReduceAction315 SFT_parser[1295]
-#define COLOR_ReduceAction315 SFT_parser[1296]
-#define INIT_TABLE_POS_ReduceAction315 SFT_parser[1297]
-#define COLOR_parser___ReduceAction315___init SFT_parser[1298]
-#define ID_ReduceAction316 SFT_parser[1299]
-#define COLOR_ReduceAction316 SFT_parser[1300]
-#define INIT_TABLE_POS_ReduceAction316 SFT_parser[1301]
-#define COLOR_parser___ReduceAction316___init SFT_parser[1302]
-#define ID_ReduceAction317 SFT_parser[1303]
-#define COLOR_ReduceAction317 SFT_parser[1304]
-#define INIT_TABLE_POS_ReduceAction317 SFT_parser[1305]
-#define COLOR_parser___ReduceAction317___init SFT_parser[1306]
-#define ID_ReduceAction318 SFT_parser[1307]
-#define COLOR_ReduceAction318 SFT_parser[1308]
-#define INIT_TABLE_POS_ReduceAction318 SFT_parser[1309]
-#define COLOR_parser___ReduceAction318___init SFT_parser[1310]
-#define ID_ReduceAction319 SFT_parser[1311]
-#define COLOR_ReduceAction319 SFT_parser[1312]
-#define INIT_TABLE_POS_ReduceAction319 SFT_parser[1313]
-#define COLOR_parser___ReduceAction319___init SFT_parser[1314]
-#define ID_ReduceAction320 SFT_parser[1315]
-#define COLOR_ReduceAction320 SFT_parser[1316]
-#define INIT_TABLE_POS_ReduceAction320 SFT_parser[1317]
-#define COLOR_parser___ReduceAction320___init SFT_parser[1318]
-#define ID_ReduceAction321 SFT_parser[1319]
-#define COLOR_ReduceAction321 SFT_parser[1320]
-#define INIT_TABLE_POS_ReduceAction321 SFT_parser[1321]
-#define COLOR_parser___ReduceAction321___init SFT_parser[1322]
-#define ID_ReduceAction322 SFT_parser[1323]
-#define COLOR_ReduceAction322 SFT_parser[1324]
-#define INIT_TABLE_POS_ReduceAction322 SFT_parser[1325]
-#define COLOR_parser___ReduceAction322___init SFT_parser[1326]
-#define ID_ReduceAction323 SFT_parser[1327]
-#define COLOR_ReduceAction323 SFT_parser[1328]
-#define INIT_TABLE_POS_ReduceAction323 SFT_parser[1329]
-#define COLOR_parser___ReduceAction323___init SFT_parser[1330]
-#define ID_ReduceAction324 SFT_parser[1331]
-#define COLOR_ReduceAction324 SFT_parser[1332]
-#define INIT_TABLE_POS_ReduceAction324 SFT_parser[1333]
-#define COLOR_parser___ReduceAction324___init SFT_parser[1334]
-#define ID_ReduceAction325 SFT_parser[1335]
-#define COLOR_ReduceAction325 SFT_parser[1336]
-#define INIT_TABLE_POS_ReduceAction325 SFT_parser[1337]
-#define COLOR_parser___ReduceAction325___init SFT_parser[1338]
-#define ID_ReduceAction326 SFT_parser[1339]
-#define COLOR_ReduceAction326 SFT_parser[1340]
-#define INIT_TABLE_POS_ReduceAction326 SFT_parser[1341]
-#define COLOR_parser___ReduceAction326___init SFT_parser[1342]
-#define ID_ReduceAction327 SFT_parser[1343]
-#define COLOR_ReduceAction327 SFT_parser[1344]
-#define INIT_TABLE_POS_ReduceAction327 SFT_parser[1345]
-#define COLOR_parser___ReduceAction327___init SFT_parser[1346]
-#define ID_ReduceAction328 SFT_parser[1347]
-#define COLOR_ReduceAction328 SFT_parser[1348]
-#define INIT_TABLE_POS_ReduceAction328 SFT_parser[1349]
-#define COLOR_parser___ReduceAction328___init SFT_parser[1350]
-#define ID_ReduceAction329 SFT_parser[1351]
-#define COLOR_ReduceAction329 SFT_parser[1352]
-#define INIT_TABLE_POS_ReduceAction329 SFT_parser[1353]
-#define COLOR_parser___ReduceAction329___init SFT_parser[1354]
-#define ID_ReduceAction330 SFT_parser[1355]
-#define COLOR_ReduceAction330 SFT_parser[1356]
-#define INIT_TABLE_POS_ReduceAction330 SFT_parser[1357]
-#define COLOR_parser___ReduceAction330___init SFT_parser[1358]
-#define ID_ReduceAction331 SFT_parser[1359]
-#define COLOR_ReduceAction331 SFT_parser[1360]
-#define INIT_TABLE_POS_ReduceAction331 SFT_parser[1361]
-#define COLOR_parser___ReduceAction331___init SFT_parser[1362]
-#define ID_ReduceAction332 SFT_parser[1363]
-#define COLOR_ReduceAction332 SFT_parser[1364]
-#define INIT_TABLE_POS_ReduceAction332 SFT_parser[1365]
-#define COLOR_parser___ReduceAction332___init SFT_parser[1366]
-#define ID_ReduceAction333 SFT_parser[1367]
-#define COLOR_ReduceAction333 SFT_parser[1368]
-#define INIT_TABLE_POS_ReduceAction333 SFT_parser[1369]
-#define COLOR_parser___ReduceAction333___init SFT_parser[1370]
-#define ID_ReduceAction334 SFT_parser[1371]
-#define COLOR_ReduceAction334 SFT_parser[1372]
-#define INIT_TABLE_POS_ReduceAction334 SFT_parser[1373]
-#define COLOR_parser___ReduceAction334___init SFT_parser[1374]
-#define ID_ReduceAction335 SFT_parser[1375]
-#define COLOR_ReduceAction335 SFT_parser[1376]
-#define INIT_TABLE_POS_ReduceAction335 SFT_parser[1377]
-#define COLOR_parser___ReduceAction335___init SFT_parser[1378]
-#define ID_ReduceAction336 SFT_parser[1379]
-#define COLOR_ReduceAction336 SFT_parser[1380]
-#define INIT_TABLE_POS_ReduceAction336 SFT_parser[1381]
-#define COLOR_parser___ReduceAction336___init SFT_parser[1382]
-#define ID_ReduceAction337 SFT_parser[1383]
-#define COLOR_ReduceAction337 SFT_parser[1384]
-#define INIT_TABLE_POS_ReduceAction337 SFT_parser[1385]
-#define COLOR_parser___ReduceAction337___init SFT_parser[1386]
-#define ID_ReduceAction338 SFT_parser[1387]
-#define COLOR_ReduceAction338 SFT_parser[1388]
-#define INIT_TABLE_POS_ReduceAction338 SFT_parser[1389]
-#define COLOR_parser___ReduceAction338___init SFT_parser[1390]
-#define ID_ReduceAction339 SFT_parser[1391]
-#define COLOR_ReduceAction339 SFT_parser[1392]
-#define INIT_TABLE_POS_ReduceAction339 SFT_parser[1393]
-#define COLOR_parser___ReduceAction339___init SFT_parser[1394]
-#define ID_ReduceAction340 SFT_parser[1395]
-#define COLOR_ReduceAction340 SFT_parser[1396]
-#define INIT_TABLE_POS_ReduceAction340 SFT_parser[1397]
-#define COLOR_parser___ReduceAction340___init SFT_parser[1398]
-#define ID_ReduceAction341 SFT_parser[1399]
-#define COLOR_ReduceAction341 SFT_parser[1400]
-#define INIT_TABLE_POS_ReduceAction341 SFT_parser[1401]
-#define COLOR_parser___ReduceAction341___init SFT_parser[1402]
-#define ID_ReduceAction342 SFT_parser[1403]
-#define COLOR_ReduceAction342 SFT_parser[1404]
-#define INIT_TABLE_POS_ReduceAction342 SFT_parser[1405]
-#define COLOR_parser___ReduceAction342___init SFT_parser[1406]
-#define ID_ReduceAction343 SFT_parser[1407]
-#define COLOR_ReduceAction343 SFT_parser[1408]
-#define INIT_TABLE_POS_ReduceAction343 SFT_parser[1409]
-#define COLOR_parser___ReduceAction343___init SFT_parser[1410]
-#define ID_ReduceAction344 SFT_parser[1411]
-#define COLOR_ReduceAction344 SFT_parser[1412]
-#define INIT_TABLE_POS_ReduceAction344 SFT_parser[1413]
-#define COLOR_parser___ReduceAction344___init SFT_parser[1414]
-#define ID_ReduceAction345 SFT_parser[1415]
-#define COLOR_ReduceAction345 SFT_parser[1416]
-#define INIT_TABLE_POS_ReduceAction345 SFT_parser[1417]
-#define COLOR_parser___ReduceAction345___init SFT_parser[1418]
-#define ID_ReduceAction346 SFT_parser[1419]
-#define COLOR_ReduceAction346 SFT_parser[1420]
-#define INIT_TABLE_POS_ReduceAction346 SFT_parser[1421]
-#define COLOR_parser___ReduceAction346___init SFT_parser[1422]
-#define ID_ReduceAction347 SFT_parser[1423]
-#define COLOR_ReduceAction347 SFT_parser[1424]
-#define INIT_TABLE_POS_ReduceAction347 SFT_parser[1425]
-#define COLOR_parser___ReduceAction347___init SFT_parser[1426]
-#define ID_ReduceAction348 SFT_parser[1427]
-#define COLOR_ReduceAction348 SFT_parser[1428]
-#define INIT_TABLE_POS_ReduceAction348 SFT_parser[1429]
-#define COLOR_parser___ReduceAction348___init SFT_parser[1430]
-#define ID_ReduceAction349 SFT_parser[1431]
-#define COLOR_ReduceAction349 SFT_parser[1432]
-#define INIT_TABLE_POS_ReduceAction349 SFT_parser[1433]
-#define COLOR_parser___ReduceAction349___init SFT_parser[1434]
-#define ID_ReduceAction350 SFT_parser[1435]
-#define COLOR_ReduceAction350 SFT_parser[1436]
-#define INIT_TABLE_POS_ReduceAction350 SFT_parser[1437]
-#define COLOR_parser___ReduceAction350___init SFT_parser[1438]
-#define ID_ReduceAction351 SFT_parser[1439]
-#define COLOR_ReduceAction351 SFT_parser[1440]
-#define INIT_TABLE_POS_ReduceAction351 SFT_parser[1441]
-#define COLOR_parser___ReduceAction351___init SFT_parser[1442]
-#define ID_ReduceAction352 SFT_parser[1443]
-#define COLOR_ReduceAction352 SFT_parser[1444]
-#define INIT_TABLE_POS_ReduceAction352 SFT_parser[1445]
-#define COLOR_parser___ReduceAction352___init SFT_parser[1446]
-#define ID_ReduceAction353 SFT_parser[1447]
-#define COLOR_ReduceAction353 SFT_parser[1448]
-#define INIT_TABLE_POS_ReduceAction353 SFT_parser[1449]
-#define COLOR_parser___ReduceAction353___init SFT_parser[1450]
-#define ID_ReduceAction354 SFT_parser[1451]
-#define COLOR_ReduceAction354 SFT_parser[1452]
-#define INIT_TABLE_POS_ReduceAction354 SFT_parser[1453]
-#define COLOR_parser___ReduceAction354___init SFT_parser[1454]
-#define ID_ReduceAction355 SFT_parser[1455]
-#define COLOR_ReduceAction355 SFT_parser[1456]
-#define INIT_TABLE_POS_ReduceAction355 SFT_parser[1457]
-#define COLOR_parser___ReduceAction355___init SFT_parser[1458]
-#define ID_ReduceAction356 SFT_parser[1459]
-#define COLOR_ReduceAction356 SFT_parser[1460]
-#define INIT_TABLE_POS_ReduceAction356 SFT_parser[1461]
-#define COLOR_parser___ReduceAction356___init SFT_parser[1462]
-#define ID_ReduceAction357 SFT_parser[1463]
-#define COLOR_ReduceAction357 SFT_parser[1464]
-#define INIT_TABLE_POS_ReduceAction357 SFT_parser[1465]
-#define COLOR_parser___ReduceAction357___init SFT_parser[1466]
-#define ID_ReduceAction358 SFT_parser[1467]
-#define COLOR_ReduceAction358 SFT_parser[1468]
-#define INIT_TABLE_POS_ReduceAction358 SFT_parser[1469]
-#define COLOR_parser___ReduceAction358___init SFT_parser[1470]
-#define ID_ReduceAction359 SFT_parser[1471]
-#define COLOR_ReduceAction359 SFT_parser[1472]
-#define INIT_TABLE_POS_ReduceAction359 SFT_parser[1473]
-#define COLOR_parser___ReduceAction359___init SFT_parser[1474]
-#define ID_ReduceAction360 SFT_parser[1475]
-#define COLOR_ReduceAction360 SFT_parser[1476]
-#define INIT_TABLE_POS_ReduceAction360 SFT_parser[1477]
-#define COLOR_parser___ReduceAction360___init SFT_parser[1478]
-#define ID_ReduceAction361 SFT_parser[1479]
-#define COLOR_ReduceAction361 SFT_parser[1480]
-#define INIT_TABLE_POS_ReduceAction361 SFT_parser[1481]
-#define COLOR_parser___ReduceAction361___init SFT_parser[1482]
-#define ID_ReduceAction362 SFT_parser[1483]
-#define COLOR_ReduceAction362 SFT_parser[1484]
-#define INIT_TABLE_POS_ReduceAction362 SFT_parser[1485]
-#define COLOR_parser___ReduceAction362___init SFT_parser[1486]
-#define ID_ReduceAction363 SFT_parser[1487]
-#define COLOR_ReduceAction363 SFT_parser[1488]
-#define INIT_TABLE_POS_ReduceAction363 SFT_parser[1489]
-#define COLOR_parser___ReduceAction363___init SFT_parser[1490]
-#define ID_ReduceAction364 SFT_parser[1491]
-#define COLOR_ReduceAction364 SFT_parser[1492]
-#define INIT_TABLE_POS_ReduceAction364 SFT_parser[1493]
-#define COLOR_parser___ReduceAction364___init SFT_parser[1494]
-#define ID_ReduceAction365 SFT_parser[1495]
-#define COLOR_ReduceAction365 SFT_parser[1496]
-#define INIT_TABLE_POS_ReduceAction365 SFT_parser[1497]
-#define COLOR_parser___ReduceAction365___init SFT_parser[1498]
-#define ID_ReduceAction366 SFT_parser[1499]
-#define COLOR_ReduceAction366 SFT_parser[1500]
-#define INIT_TABLE_POS_ReduceAction366 SFT_parser[1501]
-#define COLOR_parser___ReduceAction366___init SFT_parser[1502]
-#define ID_ReduceAction367 SFT_parser[1503]
-#define COLOR_ReduceAction367 SFT_parser[1504]
-#define INIT_TABLE_POS_ReduceAction367 SFT_parser[1505]
-#define COLOR_parser___ReduceAction367___init SFT_parser[1506]
-#define ID_ReduceAction368 SFT_parser[1507]
-#define COLOR_ReduceAction368 SFT_parser[1508]
-#define INIT_TABLE_POS_ReduceAction368 SFT_parser[1509]
-#define COLOR_parser___ReduceAction368___init SFT_parser[1510]
-#define ID_ReduceAction369 SFT_parser[1511]
-#define COLOR_ReduceAction369 SFT_parser[1512]
-#define INIT_TABLE_POS_ReduceAction369 SFT_parser[1513]
-#define COLOR_parser___ReduceAction369___init SFT_parser[1514]
-#define ID_ReduceAction370 SFT_parser[1515]
-#define COLOR_ReduceAction370 SFT_parser[1516]
-#define INIT_TABLE_POS_ReduceAction370 SFT_parser[1517]
-#define COLOR_parser___ReduceAction370___init SFT_parser[1518]
-#define ID_ReduceAction371 SFT_parser[1519]
-#define COLOR_ReduceAction371 SFT_parser[1520]
-#define INIT_TABLE_POS_ReduceAction371 SFT_parser[1521]
-#define COLOR_parser___ReduceAction371___init SFT_parser[1522]
-#define ID_ReduceAction372 SFT_parser[1523]
-#define COLOR_ReduceAction372 SFT_parser[1524]
-#define INIT_TABLE_POS_ReduceAction372 SFT_parser[1525]
-#define COLOR_parser___ReduceAction372___init SFT_parser[1526]
-#define ID_ReduceAction373 SFT_parser[1527]
-#define COLOR_ReduceAction373 SFT_parser[1528]
-#define INIT_TABLE_POS_ReduceAction373 SFT_parser[1529]
-#define COLOR_parser___ReduceAction373___init SFT_parser[1530]
-#define ID_ReduceAction374 SFT_parser[1531]
-#define COLOR_ReduceAction374 SFT_parser[1532]
-#define INIT_TABLE_POS_ReduceAction374 SFT_parser[1533]
-#define COLOR_parser___ReduceAction374___init SFT_parser[1534]
-#define ID_ReduceAction375 SFT_parser[1535]
-#define COLOR_ReduceAction375 SFT_parser[1536]
-#define INIT_TABLE_POS_ReduceAction375 SFT_parser[1537]
-#define COLOR_parser___ReduceAction375___init SFT_parser[1538]
-#define ID_ReduceAction376 SFT_parser[1539]
-#define COLOR_ReduceAction376 SFT_parser[1540]
-#define INIT_TABLE_POS_ReduceAction376 SFT_parser[1541]
-#define COLOR_parser___ReduceAction376___init SFT_parser[1542]
-#define ID_ReduceAction377 SFT_parser[1543]
-#define COLOR_ReduceAction377 SFT_parser[1544]
-#define INIT_TABLE_POS_ReduceAction377 SFT_parser[1545]
-#define COLOR_parser___ReduceAction377___init SFT_parser[1546]
-#define ID_ReduceAction378 SFT_parser[1547]
-#define COLOR_ReduceAction378 SFT_parser[1548]
-#define INIT_TABLE_POS_ReduceAction378 SFT_parser[1549]
-#define COLOR_parser___ReduceAction378___init SFT_parser[1550]
-#define ID_ReduceAction379 SFT_parser[1551]
-#define COLOR_ReduceAction379 SFT_parser[1552]
-#define INIT_TABLE_POS_ReduceAction379 SFT_parser[1553]
-#define COLOR_parser___ReduceAction379___init SFT_parser[1554]
-#define ID_ReduceAction380 SFT_parser[1555]
-#define COLOR_ReduceAction380 SFT_parser[1556]
-#define INIT_TABLE_POS_ReduceAction380 SFT_parser[1557]
-#define COLOR_parser___ReduceAction380___init SFT_parser[1558]
-#define ID_ReduceAction381 SFT_parser[1559]
-#define COLOR_ReduceAction381 SFT_parser[1560]
-#define INIT_TABLE_POS_ReduceAction381 SFT_parser[1561]
-#define COLOR_parser___ReduceAction381___init SFT_parser[1562]
-#define ID_ReduceAction382 SFT_parser[1563]
-#define COLOR_ReduceAction382 SFT_parser[1564]
-#define INIT_TABLE_POS_ReduceAction382 SFT_parser[1565]
-#define COLOR_parser___ReduceAction382___init SFT_parser[1566]
-#define ID_ReduceAction383 SFT_parser[1567]
-#define COLOR_ReduceAction383 SFT_parser[1568]
-#define INIT_TABLE_POS_ReduceAction383 SFT_parser[1569]
-#define COLOR_parser___ReduceAction383___init SFT_parser[1570]
-#define ID_ReduceAction384 SFT_parser[1571]
-#define COLOR_ReduceAction384 SFT_parser[1572]
-#define INIT_TABLE_POS_ReduceAction384 SFT_parser[1573]
-#define COLOR_parser___ReduceAction384___init SFT_parser[1574]
-#define ID_ReduceAction385 SFT_parser[1575]
-#define COLOR_ReduceAction385 SFT_parser[1576]
-#define INIT_TABLE_POS_ReduceAction385 SFT_parser[1577]
-#define COLOR_parser___ReduceAction385___init SFT_parser[1578]
-#define ID_ReduceAction386 SFT_parser[1579]
-#define COLOR_ReduceAction386 SFT_parser[1580]
-#define INIT_TABLE_POS_ReduceAction386 SFT_parser[1581]
-#define COLOR_parser___ReduceAction386___init SFT_parser[1582]
-#define ID_ReduceAction387 SFT_parser[1583]
-#define COLOR_ReduceAction387 SFT_parser[1584]
-#define INIT_TABLE_POS_ReduceAction387 SFT_parser[1585]
-#define COLOR_parser___ReduceAction387___init SFT_parser[1586]
-#define ID_ReduceAction388 SFT_parser[1587]
-#define COLOR_ReduceAction388 SFT_parser[1588]
-#define INIT_TABLE_POS_ReduceAction388 SFT_parser[1589]
-#define COLOR_parser___ReduceAction388___init SFT_parser[1590]
-#define ID_ReduceAction389 SFT_parser[1591]
-#define COLOR_ReduceAction389 SFT_parser[1592]
-#define INIT_TABLE_POS_ReduceAction389 SFT_parser[1593]
-#define COLOR_parser___ReduceAction389___init SFT_parser[1594]
-#define ID_ReduceAction390 SFT_parser[1595]
-#define COLOR_ReduceAction390 SFT_parser[1596]
-#define INIT_TABLE_POS_ReduceAction390 SFT_parser[1597]
-#define COLOR_parser___ReduceAction390___init SFT_parser[1598]
-#define ID_ReduceAction391 SFT_parser[1599]
-#define COLOR_ReduceAction391 SFT_parser[1600]
-#define INIT_TABLE_POS_ReduceAction391 SFT_parser[1601]
-#define COLOR_parser___ReduceAction391___init SFT_parser[1602]
-#define ID_ReduceAction392 SFT_parser[1603]
-#define COLOR_ReduceAction392 SFT_parser[1604]
-#define INIT_TABLE_POS_ReduceAction392 SFT_parser[1605]
-#define COLOR_parser___ReduceAction392___init SFT_parser[1606]
-#define ID_ReduceAction393 SFT_parser[1607]
-#define COLOR_ReduceAction393 SFT_parser[1608]
-#define INIT_TABLE_POS_ReduceAction393 SFT_parser[1609]
-#define COLOR_parser___ReduceAction393___init SFT_parser[1610]
-#define ID_ReduceAction394 SFT_parser[1611]
-#define COLOR_ReduceAction394 SFT_parser[1612]
-#define INIT_TABLE_POS_ReduceAction394 SFT_parser[1613]
-#define COLOR_parser___ReduceAction394___init SFT_parser[1614]
-#define ID_ReduceAction395 SFT_parser[1615]
-#define COLOR_ReduceAction395 SFT_parser[1616]
-#define INIT_TABLE_POS_ReduceAction395 SFT_parser[1617]
-#define COLOR_parser___ReduceAction395___init SFT_parser[1618]
-#define ID_ReduceAction396 SFT_parser[1619]
-#define COLOR_ReduceAction396 SFT_parser[1620]
-#define INIT_TABLE_POS_ReduceAction396 SFT_parser[1621]
-#define COLOR_parser___ReduceAction396___init SFT_parser[1622]
-#define ID_ReduceAction397 SFT_parser[1623]
-#define COLOR_ReduceAction397 SFT_parser[1624]
-#define INIT_TABLE_POS_ReduceAction397 SFT_parser[1625]
-#define COLOR_parser___ReduceAction397___init SFT_parser[1626]
-#define ID_ReduceAction398 SFT_parser[1627]
-#define COLOR_ReduceAction398 SFT_parser[1628]
-#define INIT_TABLE_POS_ReduceAction398 SFT_parser[1629]
-#define COLOR_parser___ReduceAction398___init SFT_parser[1630]
-#define ID_ReduceAction399 SFT_parser[1631]
-#define COLOR_ReduceAction399 SFT_parser[1632]
-#define INIT_TABLE_POS_ReduceAction399 SFT_parser[1633]
-#define COLOR_parser___ReduceAction399___init SFT_parser[1634]
-#define ID_ReduceAction400 SFT_parser[1635]
-#define COLOR_ReduceAction400 SFT_parser[1636]
-#define INIT_TABLE_POS_ReduceAction400 SFT_parser[1637]
-#define COLOR_parser___ReduceAction400___init SFT_parser[1638]
-#define ID_ReduceAction401 SFT_parser[1639]
-#define COLOR_ReduceAction401 SFT_parser[1640]
-#define INIT_TABLE_POS_ReduceAction401 SFT_parser[1641]
-#define COLOR_parser___ReduceAction401___init SFT_parser[1642]
-#define ID_ReduceAction402 SFT_parser[1643]
-#define COLOR_ReduceAction402 SFT_parser[1644]
-#define INIT_TABLE_POS_ReduceAction402 SFT_parser[1645]
-#define COLOR_parser___ReduceAction402___init SFT_parser[1646]
-#define ID_ReduceAction403 SFT_parser[1647]
-#define COLOR_ReduceAction403 SFT_parser[1648]
-#define INIT_TABLE_POS_ReduceAction403 SFT_parser[1649]
-#define COLOR_parser___ReduceAction403___init SFT_parser[1650]
-#define ID_ReduceAction404 SFT_parser[1651]
-#define COLOR_ReduceAction404 SFT_parser[1652]
-#define INIT_TABLE_POS_ReduceAction404 SFT_parser[1653]
-#define COLOR_parser___ReduceAction404___init SFT_parser[1654]
-#define ID_ReduceAction405 SFT_parser[1655]
-#define COLOR_ReduceAction405 SFT_parser[1656]
-#define INIT_TABLE_POS_ReduceAction405 SFT_parser[1657]
-#define COLOR_parser___ReduceAction405___init SFT_parser[1658]
-#define ID_ReduceAction406 SFT_parser[1659]
-#define COLOR_ReduceAction406 SFT_parser[1660]
-#define INIT_TABLE_POS_ReduceAction406 SFT_parser[1661]
-#define COLOR_parser___ReduceAction406___init SFT_parser[1662]
-#define ID_ReduceAction407 SFT_parser[1663]
-#define COLOR_ReduceAction407 SFT_parser[1664]
-#define INIT_TABLE_POS_ReduceAction407 SFT_parser[1665]
-#define COLOR_parser___ReduceAction407___init SFT_parser[1666]
-#define ID_ReduceAction408 SFT_parser[1667]
-#define COLOR_ReduceAction408 SFT_parser[1668]
-#define INIT_TABLE_POS_ReduceAction408 SFT_parser[1669]
-#define COLOR_parser___ReduceAction408___init SFT_parser[1670]
-#define ID_ReduceAction409 SFT_parser[1671]
-#define COLOR_ReduceAction409 SFT_parser[1672]
-#define INIT_TABLE_POS_ReduceAction409 SFT_parser[1673]
-#define COLOR_parser___ReduceAction409___init SFT_parser[1674]
-#define ID_ReduceAction410 SFT_parser[1675]
-#define COLOR_ReduceAction410 SFT_parser[1676]
-#define INIT_TABLE_POS_ReduceAction410 SFT_parser[1677]
-#define COLOR_parser___ReduceAction410___init SFT_parser[1678]
-#define ID_ReduceAction411 SFT_parser[1679]
-#define COLOR_ReduceAction411 SFT_parser[1680]
-#define INIT_TABLE_POS_ReduceAction411 SFT_parser[1681]
-#define COLOR_parser___ReduceAction411___init SFT_parser[1682]
-#define ID_ReduceAction412 SFT_parser[1683]
-#define COLOR_ReduceAction412 SFT_parser[1684]
-#define INIT_TABLE_POS_ReduceAction412 SFT_parser[1685]
-#define COLOR_parser___ReduceAction412___init SFT_parser[1686]
-#define ID_ReduceAction413 SFT_parser[1687]
-#define COLOR_ReduceAction413 SFT_parser[1688]
-#define INIT_TABLE_POS_ReduceAction413 SFT_parser[1689]
-#define COLOR_parser___ReduceAction413___init SFT_parser[1690]
-#define ID_ReduceAction414 SFT_parser[1691]
-#define COLOR_ReduceAction414 SFT_parser[1692]
-#define INIT_TABLE_POS_ReduceAction414 SFT_parser[1693]
-#define COLOR_parser___ReduceAction414___init SFT_parser[1694]
-#define ID_ReduceAction415 SFT_parser[1695]
-#define COLOR_ReduceAction415 SFT_parser[1696]
-#define INIT_TABLE_POS_ReduceAction415 SFT_parser[1697]
-#define COLOR_parser___ReduceAction415___init SFT_parser[1698]
-#define ID_ReduceAction416 SFT_parser[1699]
-#define COLOR_ReduceAction416 SFT_parser[1700]
-#define INIT_TABLE_POS_ReduceAction416 SFT_parser[1701]
-#define COLOR_parser___ReduceAction416___init SFT_parser[1702]
-#define ID_ReduceAction417 SFT_parser[1703]
-#define COLOR_ReduceAction417 SFT_parser[1704]
-#define INIT_TABLE_POS_ReduceAction417 SFT_parser[1705]
-#define COLOR_parser___ReduceAction417___init SFT_parser[1706]
-#define ID_ReduceAction418 SFT_parser[1707]
-#define COLOR_ReduceAction418 SFT_parser[1708]
-#define INIT_TABLE_POS_ReduceAction418 SFT_parser[1709]
-#define COLOR_parser___ReduceAction418___init SFT_parser[1710]
-#define ID_ReduceAction419 SFT_parser[1711]
-#define COLOR_ReduceAction419 SFT_parser[1712]
-#define INIT_TABLE_POS_ReduceAction419 SFT_parser[1713]
-#define COLOR_parser___ReduceAction419___init SFT_parser[1714]
-#define ID_ReduceAction420 SFT_parser[1715]
-#define COLOR_ReduceAction420 SFT_parser[1716]
-#define INIT_TABLE_POS_ReduceAction420 SFT_parser[1717]
-#define COLOR_parser___ReduceAction420___init SFT_parser[1718]
-#define ID_ReduceAction421 SFT_parser[1719]
-#define COLOR_ReduceAction421 SFT_parser[1720]
-#define INIT_TABLE_POS_ReduceAction421 SFT_parser[1721]
-#define COLOR_parser___ReduceAction421___init SFT_parser[1722]
-#define ID_ReduceAction422 SFT_parser[1723]
-#define COLOR_ReduceAction422 SFT_parser[1724]
-#define INIT_TABLE_POS_ReduceAction422 SFT_parser[1725]
-#define COLOR_parser___ReduceAction422___init SFT_parser[1726]
-#define ID_ReduceAction423 SFT_parser[1727]
-#define COLOR_ReduceAction423 SFT_parser[1728]
-#define INIT_TABLE_POS_ReduceAction423 SFT_parser[1729]
-#define COLOR_parser___ReduceAction423___init SFT_parser[1730]
-#define ID_ReduceAction424 SFT_parser[1731]
-#define COLOR_ReduceAction424 SFT_parser[1732]
-#define INIT_TABLE_POS_ReduceAction424 SFT_parser[1733]
-#define COLOR_parser___ReduceAction424___init SFT_parser[1734]
-#define ID_ReduceAction425 SFT_parser[1735]
-#define COLOR_ReduceAction425 SFT_parser[1736]
-#define INIT_TABLE_POS_ReduceAction425 SFT_parser[1737]
-#define COLOR_parser___ReduceAction425___init SFT_parser[1738]
-#define ID_ReduceAction426 SFT_parser[1739]
-#define COLOR_ReduceAction426 SFT_parser[1740]
-#define INIT_TABLE_POS_ReduceAction426 SFT_parser[1741]
-#define COLOR_parser___ReduceAction426___init SFT_parser[1742]
-#define ID_ReduceAction427 SFT_parser[1743]
-#define COLOR_ReduceAction427 SFT_parser[1744]
-#define INIT_TABLE_POS_ReduceAction427 SFT_parser[1745]
-#define COLOR_parser___ReduceAction427___init SFT_parser[1746]
-#define ID_ReduceAction428 SFT_parser[1747]
-#define COLOR_ReduceAction428 SFT_parser[1748]
-#define INIT_TABLE_POS_ReduceAction428 SFT_parser[1749]
-#define COLOR_parser___ReduceAction428___init SFT_parser[1750]
-#define ID_ReduceAction429 SFT_parser[1751]
-#define COLOR_ReduceAction429 SFT_parser[1752]
-#define INIT_TABLE_POS_ReduceAction429 SFT_parser[1753]
-#define COLOR_parser___ReduceAction429___init SFT_parser[1754]
-#define ID_ReduceAction430 SFT_parser[1755]
-#define COLOR_ReduceAction430 SFT_parser[1756]
-#define INIT_TABLE_POS_ReduceAction430 SFT_parser[1757]
-#define COLOR_parser___ReduceAction430___init SFT_parser[1758]
-#define ID_ReduceAction431 SFT_parser[1759]
-#define COLOR_ReduceAction431 SFT_parser[1760]
-#define INIT_TABLE_POS_ReduceAction431 SFT_parser[1761]
-#define COLOR_parser___ReduceAction431___init SFT_parser[1762]
-#define ID_ReduceAction432 SFT_parser[1763]
-#define COLOR_ReduceAction432 SFT_parser[1764]
-#define INIT_TABLE_POS_ReduceAction432 SFT_parser[1765]
-#define COLOR_parser___ReduceAction432___init SFT_parser[1766]
-#define ID_ReduceAction433 SFT_parser[1767]
-#define COLOR_ReduceAction433 SFT_parser[1768]
-#define INIT_TABLE_POS_ReduceAction433 SFT_parser[1769]
-#define COLOR_parser___ReduceAction433___init SFT_parser[1770]
-#define ID_ReduceAction434 SFT_parser[1771]
-#define COLOR_ReduceAction434 SFT_parser[1772]
-#define INIT_TABLE_POS_ReduceAction434 SFT_parser[1773]
-#define COLOR_parser___ReduceAction434___init SFT_parser[1774]
-#define ID_ReduceAction435 SFT_parser[1775]
-#define COLOR_ReduceAction435 SFT_parser[1776]
-#define INIT_TABLE_POS_ReduceAction435 SFT_parser[1777]
-#define COLOR_parser___ReduceAction435___init SFT_parser[1778]
-#define ID_ReduceAction436 SFT_parser[1779]
-#define COLOR_ReduceAction436 SFT_parser[1780]
-#define INIT_TABLE_POS_ReduceAction436 SFT_parser[1781]
-#define COLOR_parser___ReduceAction436___init SFT_parser[1782]
-#define ID_ReduceAction437 SFT_parser[1783]
-#define COLOR_ReduceAction437 SFT_parser[1784]
-#define INIT_TABLE_POS_ReduceAction437 SFT_parser[1785]
-#define COLOR_parser___ReduceAction437___init SFT_parser[1786]
-#define ID_ReduceAction438 SFT_parser[1787]
-#define COLOR_ReduceAction438 SFT_parser[1788]
-#define INIT_TABLE_POS_ReduceAction438 SFT_parser[1789]
-#define COLOR_parser___ReduceAction438___init SFT_parser[1790]
-#define ID_ReduceAction439 SFT_parser[1791]
-#define COLOR_ReduceAction439 SFT_parser[1792]
-#define INIT_TABLE_POS_ReduceAction439 SFT_parser[1793]
-#define COLOR_parser___ReduceAction439___init SFT_parser[1794]
-#define ID_ReduceAction440 SFT_parser[1795]
-#define COLOR_ReduceAction440 SFT_parser[1796]
-#define INIT_TABLE_POS_ReduceAction440 SFT_parser[1797]
-#define COLOR_parser___ReduceAction440___init SFT_parser[1798]
-#define ID_ReduceAction441 SFT_parser[1799]
-#define COLOR_ReduceAction441 SFT_parser[1800]
-#define INIT_TABLE_POS_ReduceAction441 SFT_parser[1801]
-#define COLOR_parser___ReduceAction441___init SFT_parser[1802]
-#define ID_ReduceAction442 SFT_parser[1803]
-#define COLOR_ReduceAction442 SFT_parser[1804]
-#define INIT_TABLE_POS_ReduceAction442 SFT_parser[1805]
-#define COLOR_parser___ReduceAction442___init SFT_parser[1806]
-#define ID_ReduceAction443 SFT_parser[1807]
-#define COLOR_ReduceAction443 SFT_parser[1808]
-#define INIT_TABLE_POS_ReduceAction443 SFT_parser[1809]
-#define COLOR_parser___ReduceAction443___init SFT_parser[1810]
-#define ID_ReduceAction444 SFT_parser[1811]
-#define COLOR_ReduceAction444 SFT_parser[1812]
-#define INIT_TABLE_POS_ReduceAction444 SFT_parser[1813]
-#define COLOR_parser___ReduceAction444___init SFT_parser[1814]
-#define ID_ReduceAction445 SFT_parser[1815]
-#define COLOR_ReduceAction445 SFT_parser[1816]
-#define INIT_TABLE_POS_ReduceAction445 SFT_parser[1817]
-#define COLOR_parser___ReduceAction445___init SFT_parser[1818]
-#define ID_ReduceAction446 SFT_parser[1819]
-#define COLOR_ReduceAction446 SFT_parser[1820]
-#define INIT_TABLE_POS_ReduceAction446 SFT_parser[1821]
-#define COLOR_parser___ReduceAction446___init SFT_parser[1822]
-#define ID_ReduceAction447 SFT_parser[1823]
-#define COLOR_ReduceAction447 SFT_parser[1824]
-#define INIT_TABLE_POS_ReduceAction447 SFT_parser[1825]
-#define COLOR_parser___ReduceAction447___init SFT_parser[1826]
-#define ID_ReduceAction448 SFT_parser[1827]
-#define COLOR_ReduceAction448 SFT_parser[1828]
-#define INIT_TABLE_POS_ReduceAction448 SFT_parser[1829]
-#define COLOR_parser___ReduceAction448___init SFT_parser[1830]
-#define ID_ReduceAction449 SFT_parser[1831]
-#define COLOR_ReduceAction449 SFT_parser[1832]
-#define INIT_TABLE_POS_ReduceAction449 SFT_parser[1833]
-#define COLOR_parser___ReduceAction449___init SFT_parser[1834]
-#define ID_ReduceAction450 SFT_parser[1835]
-#define COLOR_ReduceAction450 SFT_parser[1836]
-#define INIT_TABLE_POS_ReduceAction450 SFT_parser[1837]
-#define COLOR_parser___ReduceAction450___init SFT_parser[1838]
-#define ID_ReduceAction451 SFT_parser[1839]
-#define COLOR_ReduceAction451 SFT_parser[1840]
-#define INIT_TABLE_POS_ReduceAction451 SFT_parser[1841]
-#define COLOR_parser___ReduceAction451___init SFT_parser[1842]
-#define ID_ReduceAction452 SFT_parser[1843]
-#define COLOR_ReduceAction452 SFT_parser[1844]
-#define INIT_TABLE_POS_ReduceAction452 SFT_parser[1845]
-#define COLOR_parser___ReduceAction452___init SFT_parser[1846]
-#define ID_ReduceAction453 SFT_parser[1847]
-#define COLOR_ReduceAction453 SFT_parser[1848]
-#define INIT_TABLE_POS_ReduceAction453 SFT_parser[1849]
-#define COLOR_parser___ReduceAction453___init SFT_parser[1850]
-#define ID_ReduceAction454 SFT_parser[1851]
-#define COLOR_ReduceAction454 SFT_parser[1852]
-#define INIT_TABLE_POS_ReduceAction454 SFT_parser[1853]
-#define COLOR_parser___ReduceAction454___init SFT_parser[1854]
-#define ID_ReduceAction455 SFT_parser[1855]
-#define COLOR_ReduceAction455 SFT_parser[1856]
-#define INIT_TABLE_POS_ReduceAction455 SFT_parser[1857]
-#define COLOR_parser___ReduceAction455___init SFT_parser[1858]
-#define ID_ReduceAction456 SFT_parser[1859]
-#define COLOR_ReduceAction456 SFT_parser[1860]
-#define INIT_TABLE_POS_ReduceAction456 SFT_parser[1861]
-#define COLOR_parser___ReduceAction456___init SFT_parser[1862]
-#define ID_ReduceAction457 SFT_parser[1863]
-#define COLOR_ReduceAction457 SFT_parser[1864]
-#define INIT_TABLE_POS_ReduceAction457 SFT_parser[1865]
-#define COLOR_parser___ReduceAction457___init SFT_parser[1866]
-#define ID_ReduceAction458 SFT_parser[1867]
-#define COLOR_ReduceAction458 SFT_parser[1868]
-#define INIT_TABLE_POS_ReduceAction458 SFT_parser[1869]
-#define COLOR_parser___ReduceAction458___init SFT_parser[1870]
-#define ID_ReduceAction459 SFT_parser[1871]
-#define COLOR_ReduceAction459 SFT_parser[1872]
-#define INIT_TABLE_POS_ReduceAction459 SFT_parser[1873]
-#define COLOR_parser___ReduceAction459___init SFT_parser[1874]
-#define ID_ReduceAction460 SFT_parser[1875]
-#define COLOR_ReduceAction460 SFT_parser[1876]
-#define INIT_TABLE_POS_ReduceAction460 SFT_parser[1877]
-#define COLOR_parser___ReduceAction460___init SFT_parser[1878]
-#define ID_ReduceAction461 SFT_parser[1879]
-#define COLOR_ReduceAction461 SFT_parser[1880]
-#define INIT_TABLE_POS_ReduceAction461 SFT_parser[1881]
-#define COLOR_parser___ReduceAction461___init SFT_parser[1882]
-#define ID_ReduceAction462 SFT_parser[1883]
-#define COLOR_ReduceAction462 SFT_parser[1884]
-#define INIT_TABLE_POS_ReduceAction462 SFT_parser[1885]
-#define COLOR_parser___ReduceAction462___init SFT_parser[1886]
-#define ID_ReduceAction463 SFT_parser[1887]
-#define COLOR_ReduceAction463 SFT_parser[1888]
-#define INIT_TABLE_POS_ReduceAction463 SFT_parser[1889]
-#define COLOR_parser___ReduceAction463___init SFT_parser[1890]
-#define ID_ReduceAction464 SFT_parser[1891]
-#define COLOR_ReduceAction464 SFT_parser[1892]
-#define INIT_TABLE_POS_ReduceAction464 SFT_parser[1893]
-#define COLOR_parser___ReduceAction464___init SFT_parser[1894]
-#define ID_ReduceAction465 SFT_parser[1895]
-#define COLOR_ReduceAction465 SFT_parser[1896]
-#define INIT_TABLE_POS_ReduceAction465 SFT_parser[1897]
-#define COLOR_parser___ReduceAction465___init SFT_parser[1898]
-#define ID_ReduceAction466 SFT_parser[1899]
-#define COLOR_ReduceAction466 SFT_parser[1900]
-#define INIT_TABLE_POS_ReduceAction466 SFT_parser[1901]
-#define COLOR_parser___ReduceAction466___init SFT_parser[1902]
-#define ID_ReduceAction467 SFT_parser[1903]
-#define COLOR_ReduceAction467 SFT_parser[1904]
-#define INIT_TABLE_POS_ReduceAction467 SFT_parser[1905]
-#define COLOR_parser___ReduceAction467___init SFT_parser[1906]
-#define ID_ReduceAction468 SFT_parser[1907]
-#define COLOR_ReduceAction468 SFT_parser[1908]
-#define INIT_TABLE_POS_ReduceAction468 SFT_parser[1909]
-#define COLOR_parser___ReduceAction468___init SFT_parser[1910]
-#define ID_ReduceAction469 SFT_parser[1911]
-#define COLOR_ReduceAction469 SFT_parser[1912]
-#define INIT_TABLE_POS_ReduceAction469 SFT_parser[1913]
-#define COLOR_parser___ReduceAction469___init SFT_parser[1914]
-#define ID_ReduceAction470 SFT_parser[1915]
-#define COLOR_ReduceAction470 SFT_parser[1916]
-#define INIT_TABLE_POS_ReduceAction470 SFT_parser[1917]
-#define COLOR_parser___ReduceAction470___init SFT_parser[1918]
-#define ID_ReduceAction471 SFT_parser[1919]
-#define COLOR_ReduceAction471 SFT_parser[1920]
-#define INIT_TABLE_POS_ReduceAction471 SFT_parser[1921]
-#define COLOR_parser___ReduceAction471___init SFT_parser[1922]
-#define ID_ReduceAction472 SFT_parser[1923]
-#define COLOR_ReduceAction472 SFT_parser[1924]
-#define INIT_TABLE_POS_ReduceAction472 SFT_parser[1925]
-#define COLOR_parser___ReduceAction472___init SFT_parser[1926]
-#define ID_ReduceAction473 SFT_parser[1927]
-#define COLOR_ReduceAction473 SFT_parser[1928]
-#define INIT_TABLE_POS_ReduceAction473 SFT_parser[1929]
-#define COLOR_parser___ReduceAction473___init SFT_parser[1930]
-#define ID_ReduceAction474 SFT_parser[1931]
-#define COLOR_ReduceAction474 SFT_parser[1932]
-#define INIT_TABLE_POS_ReduceAction474 SFT_parser[1933]
-#define COLOR_parser___ReduceAction474___init SFT_parser[1934]
-#define ID_ReduceAction475 SFT_parser[1935]
-#define COLOR_ReduceAction475 SFT_parser[1936]
-#define INIT_TABLE_POS_ReduceAction475 SFT_parser[1937]
-#define COLOR_parser___ReduceAction475___init SFT_parser[1938]
-#define ID_ReduceAction476 SFT_parser[1939]
-#define COLOR_ReduceAction476 SFT_parser[1940]
-#define INIT_TABLE_POS_ReduceAction476 SFT_parser[1941]
-#define COLOR_parser___ReduceAction476___init SFT_parser[1942]
-#define ID_ReduceAction477 SFT_parser[1943]
-#define COLOR_ReduceAction477 SFT_parser[1944]
-#define INIT_TABLE_POS_ReduceAction477 SFT_parser[1945]
-#define COLOR_parser___ReduceAction477___init SFT_parser[1946]
-#define ID_ReduceAction478 SFT_parser[1947]
-#define COLOR_ReduceAction478 SFT_parser[1948]
-#define INIT_TABLE_POS_ReduceAction478 SFT_parser[1949]
-#define COLOR_parser___ReduceAction478___init SFT_parser[1950]
-#define ID_ReduceAction479 SFT_parser[1951]
-#define COLOR_ReduceAction479 SFT_parser[1952]
-#define INIT_TABLE_POS_ReduceAction479 SFT_parser[1953]
-#define COLOR_parser___ReduceAction479___init SFT_parser[1954]
-#define ID_ReduceAction480 SFT_parser[1955]
-#define COLOR_ReduceAction480 SFT_parser[1956]
-#define INIT_TABLE_POS_ReduceAction480 SFT_parser[1957]
-#define COLOR_parser___ReduceAction480___init SFT_parser[1958]
-#define ID_ReduceAction481 SFT_parser[1959]
-#define COLOR_ReduceAction481 SFT_parser[1960]
-#define INIT_TABLE_POS_ReduceAction481 SFT_parser[1961]
-#define COLOR_parser___ReduceAction481___init SFT_parser[1962]
-#define ID_ReduceAction482 SFT_parser[1963]
-#define COLOR_ReduceAction482 SFT_parser[1964]
-#define INIT_TABLE_POS_ReduceAction482 SFT_parser[1965]
-#define COLOR_parser___ReduceAction482___init SFT_parser[1966]
-#define ID_ReduceAction483 SFT_parser[1967]
-#define COLOR_ReduceAction483 SFT_parser[1968]
-#define INIT_TABLE_POS_ReduceAction483 SFT_parser[1969]
-#define COLOR_parser___ReduceAction483___init SFT_parser[1970]
-#define ID_ReduceAction484 SFT_parser[1971]
-#define COLOR_ReduceAction484 SFT_parser[1972]
-#define INIT_TABLE_POS_ReduceAction484 SFT_parser[1973]
-#define COLOR_parser___ReduceAction484___init SFT_parser[1974]
-#define ID_ReduceAction485 SFT_parser[1975]
-#define COLOR_ReduceAction485 SFT_parser[1976]
-#define INIT_TABLE_POS_ReduceAction485 SFT_parser[1977]
-#define COLOR_parser___ReduceAction485___init SFT_parser[1978]
-#define ID_ReduceAction486 SFT_parser[1979]
-#define COLOR_ReduceAction486 SFT_parser[1980]
-#define INIT_TABLE_POS_ReduceAction486 SFT_parser[1981]
-#define COLOR_parser___ReduceAction486___init SFT_parser[1982]
-#define ID_ReduceAction487 SFT_parser[1983]
-#define COLOR_ReduceAction487 SFT_parser[1984]
-#define INIT_TABLE_POS_ReduceAction487 SFT_parser[1985]
-#define COLOR_parser___ReduceAction487___init SFT_parser[1986]
-#define ID_ReduceAction488 SFT_parser[1987]
-#define COLOR_ReduceAction488 SFT_parser[1988]
-#define INIT_TABLE_POS_ReduceAction488 SFT_parser[1989]
-#define COLOR_parser___ReduceAction488___init SFT_parser[1990]
-#define ID_ReduceAction489 SFT_parser[1991]
-#define COLOR_ReduceAction489 SFT_parser[1992]
-#define INIT_TABLE_POS_ReduceAction489 SFT_parser[1993]
-#define COLOR_parser___ReduceAction489___init SFT_parser[1994]
-#define ID_ReduceAction490 SFT_parser[1995]
-#define COLOR_ReduceAction490 SFT_parser[1996]
-#define INIT_TABLE_POS_ReduceAction490 SFT_parser[1997]
-#define COLOR_parser___ReduceAction490___init SFT_parser[1998]
-#define ID_ReduceAction491 SFT_parser[1999]
-#define COLOR_ReduceAction491 SFT_parser[2000]
-#define INIT_TABLE_POS_ReduceAction491 SFT_parser[2001]
-#define COLOR_parser___ReduceAction491___init SFT_parser[2002]
-#define ID_ReduceAction492 SFT_parser[2003]
-#define COLOR_ReduceAction492 SFT_parser[2004]
-#define INIT_TABLE_POS_ReduceAction492 SFT_parser[2005]
-#define COLOR_parser___ReduceAction492___init SFT_parser[2006]
-#define ID_ReduceAction493 SFT_parser[2007]
-#define COLOR_ReduceAction493 SFT_parser[2008]
-#define INIT_TABLE_POS_ReduceAction493 SFT_parser[2009]
-#define COLOR_parser___ReduceAction493___init SFT_parser[2010]
-#define ID_ReduceAction494 SFT_parser[2011]
-#define COLOR_ReduceAction494 SFT_parser[2012]
-#define INIT_TABLE_POS_ReduceAction494 SFT_parser[2013]
-#define COLOR_parser___ReduceAction494___init SFT_parser[2014]
-#define ID_ReduceAction495 SFT_parser[2015]
-#define COLOR_ReduceAction495 SFT_parser[2016]
-#define INIT_TABLE_POS_ReduceAction495 SFT_parser[2017]
-#define COLOR_parser___ReduceAction495___init SFT_parser[2018]
-#define ID_ReduceAction496 SFT_parser[2019]
-#define COLOR_ReduceAction496 SFT_parser[2020]
-#define INIT_TABLE_POS_ReduceAction496 SFT_parser[2021]
-#define COLOR_parser___ReduceAction496___init SFT_parser[2022]
-#define ID_ReduceAction497 SFT_parser[2023]
-#define COLOR_ReduceAction497 SFT_parser[2024]
-#define INIT_TABLE_POS_ReduceAction497 SFT_parser[2025]
-#define COLOR_parser___ReduceAction497___init SFT_parser[2026]
-#define ID_ReduceAction498 SFT_parser[2027]
-#define COLOR_ReduceAction498 SFT_parser[2028]
-#define INIT_TABLE_POS_ReduceAction498 SFT_parser[2029]
-#define COLOR_parser___ReduceAction498___init SFT_parser[2030]
-#define ID_ReduceAction499 SFT_parser[2031]
-#define COLOR_ReduceAction499 SFT_parser[2032]
-#define INIT_TABLE_POS_ReduceAction499 SFT_parser[2033]
-#define COLOR_parser___ReduceAction499___init SFT_parser[2034]
-#define ID_ReduceAction500 SFT_parser[2035]
-#define COLOR_ReduceAction500 SFT_parser[2036]
-#define INIT_TABLE_POS_ReduceAction500 SFT_parser[2037]
-#define COLOR_parser___ReduceAction500___init SFT_parser[2038]
-#define ID_ReduceAction501 SFT_parser[2039]
-#define COLOR_ReduceAction501 SFT_parser[2040]
-#define INIT_TABLE_POS_ReduceAction501 SFT_parser[2041]
-#define COLOR_parser___ReduceAction501___init SFT_parser[2042]
-#define ID_ReduceAction502 SFT_parser[2043]
-#define COLOR_ReduceAction502 SFT_parser[2044]
-#define INIT_TABLE_POS_ReduceAction502 SFT_parser[2045]
-#define COLOR_parser___ReduceAction502___init SFT_parser[2046]
-#define ID_ReduceAction503 SFT_parser[2047]
-#define COLOR_ReduceAction503 SFT_parser[2048]
-#define INIT_TABLE_POS_ReduceAction503 SFT_parser[2049]
-#define COLOR_parser___ReduceAction503___init SFT_parser[2050]
-#define ID_ReduceAction504 SFT_parser[2051]
-#define COLOR_ReduceAction504 SFT_parser[2052]
-#define INIT_TABLE_POS_ReduceAction504 SFT_parser[2053]
-#define COLOR_parser___ReduceAction504___init SFT_parser[2054]
-#define ID_ReduceAction505 SFT_parser[2055]
-#define COLOR_ReduceAction505 SFT_parser[2056]
-#define INIT_TABLE_POS_ReduceAction505 SFT_parser[2057]
-#define COLOR_parser___ReduceAction505___init SFT_parser[2058]
-#define ID_ReduceAction506 SFT_parser[2059]
-#define COLOR_ReduceAction506 SFT_parser[2060]
-#define INIT_TABLE_POS_ReduceAction506 SFT_parser[2061]
-#define COLOR_parser___ReduceAction506___init SFT_parser[2062]
-#define ID_ReduceAction507 SFT_parser[2063]
-#define COLOR_ReduceAction507 SFT_parser[2064]
-#define INIT_TABLE_POS_ReduceAction507 SFT_parser[2065]
-#define COLOR_parser___ReduceAction507___init SFT_parser[2066]
-#define ID_ReduceAction508 SFT_parser[2067]
-#define COLOR_ReduceAction508 SFT_parser[2068]
-#define INIT_TABLE_POS_ReduceAction508 SFT_parser[2069]
-#define COLOR_parser___ReduceAction508___init SFT_parser[2070]
-#define ID_ReduceAction509 SFT_parser[2071]
-#define COLOR_ReduceAction509 SFT_parser[2072]
-#define INIT_TABLE_POS_ReduceAction509 SFT_parser[2073]
-#define COLOR_parser___ReduceAction509___init SFT_parser[2074]
-#define ID_ReduceAction510 SFT_parser[2075]
-#define COLOR_ReduceAction510 SFT_parser[2076]
-#define INIT_TABLE_POS_ReduceAction510 SFT_parser[2077]
-#define COLOR_parser___ReduceAction510___init SFT_parser[2078]
-#define ID_ReduceAction511 SFT_parser[2079]
-#define COLOR_ReduceAction511 SFT_parser[2080]
-#define INIT_TABLE_POS_ReduceAction511 SFT_parser[2081]
-#define COLOR_parser___ReduceAction511___init SFT_parser[2082]
-#define ID_ReduceAction512 SFT_parser[2083]
-#define COLOR_ReduceAction512 SFT_parser[2084]
-#define INIT_TABLE_POS_ReduceAction512 SFT_parser[2085]
-#define COLOR_parser___ReduceAction512___init SFT_parser[2086]
-#define ID_ReduceAction513 SFT_parser[2087]
-#define COLOR_ReduceAction513 SFT_parser[2088]
-#define INIT_TABLE_POS_ReduceAction513 SFT_parser[2089]
-#define COLOR_parser___ReduceAction513___init SFT_parser[2090]
-#define ID_ReduceAction514 SFT_parser[2091]
-#define COLOR_ReduceAction514 SFT_parser[2092]
-#define INIT_TABLE_POS_ReduceAction514 SFT_parser[2093]
-#define COLOR_parser___ReduceAction514___init SFT_parser[2094]
-#define ID_ReduceAction515 SFT_parser[2095]
-#define COLOR_ReduceAction515 SFT_parser[2096]
-#define INIT_TABLE_POS_ReduceAction515 SFT_parser[2097]
-#define COLOR_parser___ReduceAction515___init SFT_parser[2098]
-#define ID_ReduceAction516 SFT_parser[2099]
-#define COLOR_ReduceAction516 SFT_parser[2100]
-#define INIT_TABLE_POS_ReduceAction516 SFT_parser[2101]
-#define COLOR_parser___ReduceAction516___init SFT_parser[2102]
-#define ID_ReduceAction517 SFT_parser[2103]
-#define COLOR_ReduceAction517 SFT_parser[2104]
-#define INIT_TABLE_POS_ReduceAction517 SFT_parser[2105]
-#define COLOR_parser___ReduceAction517___init SFT_parser[2106]
-#define ID_ReduceAction518 SFT_parser[2107]
-#define COLOR_ReduceAction518 SFT_parser[2108]
-#define INIT_TABLE_POS_ReduceAction518 SFT_parser[2109]
-#define COLOR_parser___ReduceAction518___init SFT_parser[2110]
-#define ID_ReduceAction519 SFT_parser[2111]
-#define COLOR_ReduceAction519 SFT_parser[2112]
-#define INIT_TABLE_POS_ReduceAction519 SFT_parser[2113]
-#define COLOR_parser___ReduceAction519___init SFT_parser[2114]
-#define ID_ReduceAction520 SFT_parser[2115]
-#define COLOR_ReduceAction520 SFT_parser[2116]
-#define INIT_TABLE_POS_ReduceAction520 SFT_parser[2117]
-#define COLOR_parser___ReduceAction520___init SFT_parser[2118]
-#define ID_ReduceAction521 SFT_parser[2119]
-#define COLOR_ReduceAction521 SFT_parser[2120]
-#define INIT_TABLE_POS_ReduceAction521 SFT_parser[2121]
-#define COLOR_parser___ReduceAction521___init SFT_parser[2122]
-#define ID_ReduceAction522 SFT_parser[2123]
-#define COLOR_ReduceAction522 SFT_parser[2124]
-#define INIT_TABLE_POS_ReduceAction522 SFT_parser[2125]
-#define COLOR_parser___ReduceAction522___init SFT_parser[2126]
-#define ID_ReduceAction523 SFT_parser[2127]
-#define COLOR_ReduceAction523 SFT_parser[2128]
-#define INIT_TABLE_POS_ReduceAction523 SFT_parser[2129]
-#define COLOR_parser___ReduceAction523___init SFT_parser[2130]
-#define ID_ReduceAction524 SFT_parser[2131]
-#define COLOR_ReduceAction524 SFT_parser[2132]
-#define INIT_TABLE_POS_ReduceAction524 SFT_parser[2133]
-#define COLOR_parser___ReduceAction524___init SFT_parser[2134]
-#define ID_ReduceAction525 SFT_parser[2135]
-#define COLOR_ReduceAction525 SFT_parser[2136]
-#define INIT_TABLE_POS_ReduceAction525 SFT_parser[2137]
-#define COLOR_parser___ReduceAction525___init SFT_parser[2138]
-#define ID_ReduceAction526 SFT_parser[2139]
-#define COLOR_ReduceAction526 SFT_parser[2140]
-#define INIT_TABLE_POS_ReduceAction526 SFT_parser[2141]
-#define COLOR_parser___ReduceAction526___init SFT_parser[2142]
-#define ID_ReduceAction527 SFT_parser[2143]
-#define COLOR_ReduceAction527 SFT_parser[2144]
-#define INIT_TABLE_POS_ReduceAction527 SFT_parser[2145]
-#define COLOR_parser___ReduceAction527___init SFT_parser[2146]
-#define ID_ReduceAction528 SFT_parser[2147]
-#define COLOR_ReduceAction528 SFT_parser[2148]
-#define INIT_TABLE_POS_ReduceAction528 SFT_parser[2149]
-#define COLOR_parser___ReduceAction528___init SFT_parser[2150]
-#define ID_ReduceAction529 SFT_parser[2151]
-#define COLOR_ReduceAction529 SFT_parser[2152]
-#define INIT_TABLE_POS_ReduceAction529 SFT_parser[2153]
-#define COLOR_parser___ReduceAction529___init SFT_parser[2154]
-#define ID_ReduceAction530 SFT_parser[2155]
-#define COLOR_ReduceAction530 SFT_parser[2156]
-#define INIT_TABLE_POS_ReduceAction530 SFT_parser[2157]
-#define COLOR_parser___ReduceAction530___init SFT_parser[2158]
-#define ID_ReduceAction531 SFT_parser[2159]
-#define COLOR_ReduceAction531 SFT_parser[2160]
-#define INIT_TABLE_POS_ReduceAction531 SFT_parser[2161]
-#define COLOR_parser___ReduceAction531___init SFT_parser[2162]
-#define ID_ReduceAction532 SFT_parser[2163]
-#define COLOR_ReduceAction532 SFT_parser[2164]
-#define INIT_TABLE_POS_ReduceAction532 SFT_parser[2165]
-#define COLOR_parser___ReduceAction532___init SFT_parser[2166]
-#define ID_ReduceAction533 SFT_parser[2167]
-#define COLOR_ReduceAction533 SFT_parser[2168]
-#define INIT_TABLE_POS_ReduceAction533 SFT_parser[2169]
-#define COLOR_parser___ReduceAction533___init SFT_parser[2170]
-#define ID_ReduceAction534 SFT_parser[2171]
-#define COLOR_ReduceAction534 SFT_parser[2172]
-#define INIT_TABLE_POS_ReduceAction534 SFT_parser[2173]
-#define COLOR_parser___ReduceAction534___init SFT_parser[2174]
-#define ID_ReduceAction535 SFT_parser[2175]
-#define COLOR_ReduceAction535 SFT_parser[2176]
-#define INIT_TABLE_POS_ReduceAction535 SFT_parser[2177]
-#define COLOR_parser___ReduceAction535___init SFT_parser[2178]
-#define ID_ReduceAction536 SFT_parser[2179]
-#define COLOR_ReduceAction536 SFT_parser[2180]
-#define INIT_TABLE_POS_ReduceAction536 SFT_parser[2181]
-#define COLOR_parser___ReduceAction536___init SFT_parser[2182]
-#define ID_ReduceAction537 SFT_parser[2183]
-#define COLOR_ReduceAction537 SFT_parser[2184]
-#define INIT_TABLE_POS_ReduceAction537 SFT_parser[2185]
-#define COLOR_parser___ReduceAction537___init SFT_parser[2186]
-#define ID_ReduceAction538 SFT_parser[2187]
-#define COLOR_ReduceAction538 SFT_parser[2188]
-#define INIT_TABLE_POS_ReduceAction538 SFT_parser[2189]
-#define COLOR_parser___ReduceAction538___init SFT_parser[2190]
-#define ID_ReduceAction539 SFT_parser[2191]
-#define COLOR_ReduceAction539 SFT_parser[2192]
-#define INIT_TABLE_POS_ReduceAction539 SFT_parser[2193]
-#define COLOR_parser___ReduceAction539___init SFT_parser[2194]
-#define ID_ReduceAction540 SFT_parser[2195]
-#define COLOR_ReduceAction540 SFT_parser[2196]
-#define INIT_TABLE_POS_ReduceAction540 SFT_parser[2197]
-#define COLOR_parser___ReduceAction540___init SFT_parser[2198]
-#define ID_ReduceAction541 SFT_parser[2199]
-#define COLOR_ReduceAction541 SFT_parser[2200]
-#define INIT_TABLE_POS_ReduceAction541 SFT_parser[2201]
-#define COLOR_parser___ReduceAction541___init SFT_parser[2202]
-#define ID_ReduceAction542 SFT_parser[2203]
-#define COLOR_ReduceAction542 SFT_parser[2204]
-#define INIT_TABLE_POS_ReduceAction542 SFT_parser[2205]
-#define COLOR_parser___ReduceAction542___init SFT_parser[2206]
-#define ID_ReduceAction543 SFT_parser[2207]
-#define COLOR_ReduceAction543 SFT_parser[2208]
-#define INIT_TABLE_POS_ReduceAction543 SFT_parser[2209]
-#define COLOR_parser___ReduceAction543___init SFT_parser[2210]
-#define ID_ReduceAction544 SFT_parser[2211]
-#define COLOR_ReduceAction544 SFT_parser[2212]
-#define INIT_TABLE_POS_ReduceAction544 SFT_parser[2213]
-#define COLOR_parser___ReduceAction544___init SFT_parser[2214]
-#define ID_ReduceAction545 SFT_parser[2215]
-#define COLOR_ReduceAction545 SFT_parser[2216]
-#define INIT_TABLE_POS_ReduceAction545 SFT_parser[2217]
-#define COLOR_parser___ReduceAction545___init SFT_parser[2218]
-#define ID_ReduceAction546 SFT_parser[2219]
-#define COLOR_ReduceAction546 SFT_parser[2220]
-#define INIT_TABLE_POS_ReduceAction546 SFT_parser[2221]
-#define COLOR_parser___ReduceAction546___init SFT_parser[2222]
-#define ID_ReduceAction547 SFT_parser[2223]
-#define COLOR_ReduceAction547 SFT_parser[2224]
-#define INIT_TABLE_POS_ReduceAction547 SFT_parser[2225]
-#define COLOR_parser___ReduceAction547___init SFT_parser[2226]
-#define ID_ReduceAction548 SFT_parser[2227]
-#define COLOR_ReduceAction548 SFT_parser[2228]
-#define INIT_TABLE_POS_ReduceAction548 SFT_parser[2229]
-#define COLOR_parser___ReduceAction548___init SFT_parser[2230]
-#define ID_ReduceAction549 SFT_parser[2231]
-#define COLOR_ReduceAction549 SFT_parser[2232]
-#define INIT_TABLE_POS_ReduceAction549 SFT_parser[2233]
-#define COLOR_parser___ReduceAction549___init SFT_parser[2234]
-#define ID_ReduceAction550 SFT_parser[2235]
-#define COLOR_ReduceAction550 SFT_parser[2236]
-#define INIT_TABLE_POS_ReduceAction550 SFT_parser[2237]
-#define COLOR_parser___ReduceAction550___init SFT_parser[2238]
-#define ID_ReduceAction551 SFT_parser[2239]
-#define COLOR_ReduceAction551 SFT_parser[2240]
-#define INIT_TABLE_POS_ReduceAction551 SFT_parser[2241]
-#define COLOR_parser___ReduceAction551___init SFT_parser[2242]
-#define ID_ReduceAction552 SFT_parser[2243]
-#define COLOR_ReduceAction552 SFT_parser[2244]
-#define INIT_TABLE_POS_ReduceAction552 SFT_parser[2245]
-#define COLOR_parser___ReduceAction552___init SFT_parser[2246]
-#define ID_ReduceAction553 SFT_parser[2247]
-#define COLOR_ReduceAction553 SFT_parser[2248]
-#define INIT_TABLE_POS_ReduceAction553 SFT_parser[2249]
-#define COLOR_parser___ReduceAction553___init SFT_parser[2250]
-#define ID_ReduceAction554 SFT_parser[2251]
-#define COLOR_ReduceAction554 SFT_parser[2252]
-#define INIT_TABLE_POS_ReduceAction554 SFT_parser[2253]
-#define COLOR_parser___ReduceAction554___init SFT_parser[2254]
-#define ID_ReduceAction555 SFT_parser[2255]
-#define COLOR_ReduceAction555 SFT_parser[2256]
-#define INIT_TABLE_POS_ReduceAction555 SFT_parser[2257]
-#define COLOR_parser___ReduceAction555___init SFT_parser[2258]
-#define ID_ReduceAction556 SFT_parser[2259]
-#define COLOR_ReduceAction556 SFT_parser[2260]
-#define INIT_TABLE_POS_ReduceAction556 SFT_parser[2261]
-#define COLOR_parser___ReduceAction556___init SFT_parser[2262]
-#define ID_ReduceAction557 SFT_parser[2263]
-#define COLOR_ReduceAction557 SFT_parser[2264]
-#define INIT_TABLE_POS_ReduceAction557 SFT_parser[2265]
-#define COLOR_parser___ReduceAction557___init SFT_parser[2266]
-#define ID_ReduceAction558 SFT_parser[2267]
-#define COLOR_ReduceAction558 SFT_parser[2268]
-#define INIT_TABLE_POS_ReduceAction558 SFT_parser[2269]
-#define COLOR_parser___ReduceAction558___init SFT_parser[2270]
-#define ID_ReduceAction559 SFT_parser[2271]
-#define COLOR_ReduceAction559 SFT_parser[2272]
-#define INIT_TABLE_POS_ReduceAction559 SFT_parser[2273]
-#define COLOR_parser___ReduceAction559___init SFT_parser[2274]
-#define ID_ReduceAction560 SFT_parser[2275]
-#define COLOR_ReduceAction560 SFT_parser[2276]
-#define INIT_TABLE_POS_ReduceAction560 SFT_parser[2277]
-#define COLOR_parser___ReduceAction560___init SFT_parser[2278]
-#define ID_ReduceAction561 SFT_parser[2279]
-#define COLOR_ReduceAction561 SFT_parser[2280]
-#define INIT_TABLE_POS_ReduceAction561 SFT_parser[2281]
-#define COLOR_parser___ReduceAction561___init SFT_parser[2282]
-#define ID_ReduceAction562 SFT_parser[2283]
-#define COLOR_ReduceAction562 SFT_parser[2284]
-#define INIT_TABLE_POS_ReduceAction562 SFT_parser[2285]
-#define COLOR_parser___ReduceAction562___init SFT_parser[2286]
-#define ID_ReduceAction563 SFT_parser[2287]
-#define COLOR_ReduceAction563 SFT_parser[2288]
-#define INIT_TABLE_POS_ReduceAction563 SFT_parser[2289]
-#define COLOR_parser___ReduceAction563___init SFT_parser[2290]
-#define ID_ReduceAction564 SFT_parser[2291]
-#define COLOR_ReduceAction564 SFT_parser[2292]
-#define INIT_TABLE_POS_ReduceAction564 SFT_parser[2293]
-#define COLOR_parser___ReduceAction564___init SFT_parser[2294]
-#define ID_ReduceAction565 SFT_parser[2295]
-#define COLOR_ReduceAction565 SFT_parser[2296]
-#define INIT_TABLE_POS_ReduceAction565 SFT_parser[2297]
-#define COLOR_parser___ReduceAction565___init SFT_parser[2298]
-#define ID_ReduceAction566 SFT_parser[2299]
-#define COLOR_ReduceAction566 SFT_parser[2300]
-#define INIT_TABLE_POS_ReduceAction566 SFT_parser[2301]
-#define COLOR_parser___ReduceAction566___init SFT_parser[2302]
-#define ID_ReduceAction567 SFT_parser[2303]
-#define COLOR_ReduceAction567 SFT_parser[2304]
-#define INIT_TABLE_POS_ReduceAction567 SFT_parser[2305]
-#define COLOR_parser___ReduceAction567___init SFT_parser[2306]
-#define ID_ReduceAction568 SFT_parser[2307]
-#define COLOR_ReduceAction568 SFT_parser[2308]
-#define INIT_TABLE_POS_ReduceAction568 SFT_parser[2309]
-#define COLOR_parser___ReduceAction568___init SFT_parser[2310]
-#define ID_ReduceAction569 SFT_parser[2311]
-#define COLOR_ReduceAction569 SFT_parser[2312]
-#define INIT_TABLE_POS_ReduceAction569 SFT_parser[2313]
-#define COLOR_parser___ReduceAction569___init SFT_parser[2314]
-#define ID_ReduceAction570 SFT_parser[2315]
-#define COLOR_ReduceAction570 SFT_parser[2316]
-#define INIT_TABLE_POS_ReduceAction570 SFT_parser[2317]
-#define COLOR_parser___ReduceAction570___init SFT_parser[2318]
-#define ID_ReduceAction571 SFT_parser[2319]
-#define COLOR_ReduceAction571 SFT_parser[2320]
-#define INIT_TABLE_POS_ReduceAction571 SFT_parser[2321]
-#define COLOR_parser___ReduceAction571___init SFT_parser[2322]
-#define ID_ReduceAction572 SFT_parser[2323]
-#define COLOR_ReduceAction572 SFT_parser[2324]
-#define INIT_TABLE_POS_ReduceAction572 SFT_parser[2325]
-#define COLOR_parser___ReduceAction572___init SFT_parser[2326]
-#define ID_ReduceAction573 SFT_parser[2327]
-#define COLOR_ReduceAction573 SFT_parser[2328]
-#define INIT_TABLE_POS_ReduceAction573 SFT_parser[2329]
-#define COLOR_parser___ReduceAction573___init SFT_parser[2330]
-#define ID_ReduceAction574 SFT_parser[2331]
-#define COLOR_ReduceAction574 SFT_parser[2332]
-#define INIT_TABLE_POS_ReduceAction574 SFT_parser[2333]
-#define COLOR_parser___ReduceAction574___init SFT_parser[2334]
-#define ID_ReduceAction575 SFT_parser[2335]
-#define COLOR_ReduceAction575 SFT_parser[2336]
-#define INIT_TABLE_POS_ReduceAction575 SFT_parser[2337]
-#define COLOR_parser___ReduceAction575___init SFT_parser[2338]
-#define ID_ReduceAction576 SFT_parser[2339]
-#define COLOR_ReduceAction576 SFT_parser[2340]
-#define INIT_TABLE_POS_ReduceAction576 SFT_parser[2341]
-#define COLOR_parser___ReduceAction576___init SFT_parser[2342]
-#define ID_ReduceAction577 SFT_parser[2343]
-#define COLOR_ReduceAction577 SFT_parser[2344]
-#define INIT_TABLE_POS_ReduceAction577 SFT_parser[2345]
-#define COLOR_parser___ReduceAction577___init SFT_parser[2346]
-#define ID_ReduceAction578 SFT_parser[2347]
-#define COLOR_ReduceAction578 SFT_parser[2348]
-#define INIT_TABLE_POS_ReduceAction578 SFT_parser[2349]
-#define COLOR_parser___ReduceAction578___init SFT_parser[2350]
-#define ID_ReduceAction579 SFT_parser[2351]
-#define COLOR_ReduceAction579 SFT_parser[2352]
-#define INIT_TABLE_POS_ReduceAction579 SFT_parser[2353]
-#define COLOR_parser___ReduceAction579___init SFT_parser[2354]
-#define ID_ReduceAction580 SFT_parser[2355]
-#define COLOR_ReduceAction580 SFT_parser[2356]
-#define INIT_TABLE_POS_ReduceAction580 SFT_parser[2357]
-#define COLOR_parser___ReduceAction580___init SFT_parser[2358]
-#define ID_ReduceAction581 SFT_parser[2359]
-#define COLOR_ReduceAction581 SFT_parser[2360]
-#define INIT_TABLE_POS_ReduceAction581 SFT_parser[2361]
-#define COLOR_parser___ReduceAction581___init SFT_parser[2362]
-#define ID_ReduceAction582 SFT_parser[2363]
-#define COLOR_ReduceAction582 SFT_parser[2364]
-#define INIT_TABLE_POS_ReduceAction582 SFT_parser[2365]
-#define COLOR_parser___ReduceAction582___init SFT_parser[2366]
-#define ID_ReduceAction583 SFT_parser[2367]
-#define COLOR_ReduceAction583 SFT_parser[2368]
-#define INIT_TABLE_POS_ReduceAction583 SFT_parser[2369]
-#define COLOR_parser___ReduceAction583___init SFT_parser[2370]
-#define ID_ReduceAction584 SFT_parser[2371]
-#define COLOR_ReduceAction584 SFT_parser[2372]
-#define INIT_TABLE_POS_ReduceAction584 SFT_parser[2373]
-#define COLOR_parser___ReduceAction584___init SFT_parser[2374]
-#define ID_ReduceAction585 SFT_parser[2375]
-#define COLOR_ReduceAction585 SFT_parser[2376]
-#define INIT_TABLE_POS_ReduceAction585 SFT_parser[2377]
-#define COLOR_parser___ReduceAction585___init SFT_parser[2378]
-#define ID_ReduceAction586 SFT_parser[2379]
-#define COLOR_ReduceAction586 SFT_parser[2380]
-#define INIT_TABLE_POS_ReduceAction586 SFT_parser[2381]
-#define COLOR_parser___ReduceAction586___init SFT_parser[2382]
-#define ID_ReduceAction587 SFT_parser[2383]
-#define COLOR_ReduceAction587 SFT_parser[2384]
-#define INIT_TABLE_POS_ReduceAction587 SFT_parser[2385]
-#define COLOR_parser___ReduceAction587___init SFT_parser[2386]
-#define ID_ReduceAction588 SFT_parser[2387]
-#define COLOR_ReduceAction588 SFT_parser[2388]
-#define INIT_TABLE_POS_ReduceAction588 SFT_parser[2389]
-#define COLOR_parser___ReduceAction588___init SFT_parser[2390]
-#define ID_ReduceAction589 SFT_parser[2391]
-#define COLOR_ReduceAction589 SFT_parser[2392]
-#define INIT_TABLE_POS_ReduceAction589 SFT_parser[2393]
-#define COLOR_parser___ReduceAction589___init SFT_parser[2394]
-#define ID_ReduceAction590 SFT_parser[2395]
-#define COLOR_ReduceAction590 SFT_parser[2396]
-#define INIT_TABLE_POS_ReduceAction590 SFT_parser[2397]
-#define COLOR_parser___ReduceAction590___init SFT_parser[2398]
-#define ID_ReduceAction591 SFT_parser[2399]
-#define COLOR_ReduceAction591 SFT_parser[2400]
-#define INIT_TABLE_POS_ReduceAction591 SFT_parser[2401]
-#define COLOR_parser___ReduceAction591___init SFT_parser[2402]
-#define ID_ReduceAction592 SFT_parser[2403]
-#define COLOR_ReduceAction592 SFT_parser[2404]
-#define INIT_TABLE_POS_ReduceAction592 SFT_parser[2405]
-#define COLOR_parser___ReduceAction592___init SFT_parser[2406]
-#define ID_ReduceAction593 SFT_parser[2407]
-#define COLOR_ReduceAction593 SFT_parser[2408]
-#define INIT_TABLE_POS_ReduceAction593 SFT_parser[2409]
-#define COLOR_parser___ReduceAction593___init SFT_parser[2410]
-#define ID_ReduceAction594 SFT_parser[2411]
-#define COLOR_ReduceAction594 SFT_parser[2412]
-#define INIT_TABLE_POS_ReduceAction594 SFT_parser[2413]
-#define COLOR_parser___ReduceAction594___init SFT_parser[2414]
-#define ID_ReduceAction595 SFT_parser[2415]
-#define COLOR_ReduceAction595 SFT_parser[2416]
-#define INIT_TABLE_POS_ReduceAction595 SFT_parser[2417]
-#define COLOR_parser___ReduceAction595___init SFT_parser[2418]
-#define ID_ReduceAction596 SFT_parser[2419]
-#define COLOR_ReduceAction596 SFT_parser[2420]
-#define INIT_TABLE_POS_ReduceAction596 SFT_parser[2421]
-#define COLOR_parser___ReduceAction596___init SFT_parser[2422]
-#define ID_ReduceAction597 SFT_parser[2423]
-#define COLOR_ReduceAction597 SFT_parser[2424]
-#define INIT_TABLE_POS_ReduceAction597 SFT_parser[2425]
-#define COLOR_parser___ReduceAction597___init SFT_parser[2426]
-#define ID_ReduceAction598 SFT_parser[2427]
-#define COLOR_ReduceAction598 SFT_parser[2428]
-#define INIT_TABLE_POS_ReduceAction598 SFT_parser[2429]
-#define COLOR_parser___ReduceAction598___init SFT_parser[2430]
-#define ID_ReduceAction599 SFT_parser[2431]
-#define COLOR_ReduceAction599 SFT_parser[2432]
-#define INIT_TABLE_POS_ReduceAction599 SFT_parser[2433]
-#define COLOR_parser___ReduceAction599___init SFT_parser[2434]
-#define ID_ReduceAction600 SFT_parser[2435]
-#define COLOR_ReduceAction600 SFT_parser[2436]
-#define INIT_TABLE_POS_ReduceAction600 SFT_parser[2437]
-#define COLOR_parser___ReduceAction600___init SFT_parser[2438]
-#define ID_ReduceAction601 SFT_parser[2439]
-#define COLOR_ReduceAction601 SFT_parser[2440]
-#define INIT_TABLE_POS_ReduceAction601 SFT_parser[2441]
-#define COLOR_parser___ReduceAction601___init SFT_parser[2442]
-#define ID_ReduceAction602 SFT_parser[2443]
-#define COLOR_ReduceAction602 SFT_parser[2444]
-#define INIT_TABLE_POS_ReduceAction602 SFT_parser[2445]
-#define COLOR_parser___ReduceAction602___init SFT_parser[2446]
-#define ID_ReduceAction603 SFT_parser[2447]
-#define COLOR_ReduceAction603 SFT_parser[2448]
-#define INIT_TABLE_POS_ReduceAction603 SFT_parser[2449]
-#define COLOR_parser___ReduceAction603___init SFT_parser[2450]
-#define ID_ReduceAction604 SFT_parser[2451]
-#define COLOR_ReduceAction604 SFT_parser[2452]
-#define INIT_TABLE_POS_ReduceAction604 SFT_parser[2453]
-#define COLOR_parser___ReduceAction604___init SFT_parser[2454]
-#define ID_ReduceAction605 SFT_parser[2455]
-#define COLOR_ReduceAction605 SFT_parser[2456]
-#define INIT_TABLE_POS_ReduceAction605 SFT_parser[2457]
-#define COLOR_parser___ReduceAction605___init SFT_parser[2458]
-#define ID_ReduceAction606 SFT_parser[2459]
-#define COLOR_ReduceAction606 SFT_parser[2460]
-#define INIT_TABLE_POS_ReduceAction606 SFT_parser[2461]
-#define COLOR_parser___ReduceAction606___init SFT_parser[2462]
-#define ID_ReduceAction607 SFT_parser[2463]
-#define COLOR_ReduceAction607 SFT_parser[2464]
-#define INIT_TABLE_POS_ReduceAction607 SFT_parser[2465]
-#define COLOR_parser___ReduceAction607___init SFT_parser[2466]
-#define ID_ReduceAction608 SFT_parser[2467]
-#define COLOR_ReduceAction608 SFT_parser[2468]
-#define INIT_TABLE_POS_ReduceAction608 SFT_parser[2469]
-#define COLOR_parser___ReduceAction608___init SFT_parser[2470]
-#define ID_ReduceAction609 SFT_parser[2471]
-#define COLOR_ReduceAction609 SFT_parser[2472]
-#define INIT_TABLE_POS_ReduceAction609 SFT_parser[2473]
-#define COLOR_parser___ReduceAction609___init SFT_parser[2474]
-#define ID_ReduceAction610 SFT_parser[2475]
-#define COLOR_ReduceAction610 SFT_parser[2476]
-#define INIT_TABLE_POS_ReduceAction610 SFT_parser[2477]
-#define COLOR_parser___ReduceAction610___init SFT_parser[2478]
-#define ID_ReduceAction611 SFT_parser[2479]
-#define COLOR_ReduceAction611 SFT_parser[2480]
-#define INIT_TABLE_POS_ReduceAction611 SFT_parser[2481]
-#define COLOR_parser___ReduceAction611___init SFT_parser[2482]
-#define ID_ReduceAction612 SFT_parser[2483]
-#define COLOR_ReduceAction612 SFT_parser[2484]
-#define INIT_TABLE_POS_ReduceAction612 SFT_parser[2485]
-#define COLOR_parser___ReduceAction612___init SFT_parser[2486]
-#define ID_ReduceAction613 SFT_parser[2487]
-#define COLOR_ReduceAction613 SFT_parser[2488]
-#define INIT_TABLE_POS_ReduceAction613 SFT_parser[2489]
-#define COLOR_parser___ReduceAction613___init SFT_parser[2490]
-#define ID_ReduceAction614 SFT_parser[2491]
-#define COLOR_ReduceAction614 SFT_parser[2492]
-#define INIT_TABLE_POS_ReduceAction614 SFT_parser[2493]
-#define COLOR_parser___ReduceAction614___init SFT_parser[2494]
-#define ID_ReduceAction615 SFT_parser[2495]
-#define COLOR_ReduceAction615 SFT_parser[2496]
-#define INIT_TABLE_POS_ReduceAction615 SFT_parser[2497]
-#define COLOR_parser___ReduceAction615___init SFT_parser[2498]
-#define ID_ReduceAction616 SFT_parser[2499]
-#define COLOR_ReduceAction616 SFT_parser[2500]
-#define INIT_TABLE_POS_ReduceAction616 SFT_parser[2501]
-#define COLOR_parser___ReduceAction616___init SFT_parser[2502]
-#define ID_ReduceAction617 SFT_parser[2503]
-#define COLOR_ReduceAction617 SFT_parser[2504]
-#define INIT_TABLE_POS_ReduceAction617 SFT_parser[2505]
-#define COLOR_parser___ReduceAction617___init SFT_parser[2506]
-#define ID_ReduceAction618 SFT_parser[2507]
-#define COLOR_ReduceAction618 SFT_parser[2508]
-#define INIT_TABLE_POS_ReduceAction618 SFT_parser[2509]
-#define COLOR_parser___ReduceAction618___init SFT_parser[2510]
-#define ID_ReduceAction619 SFT_parser[2511]
-#define COLOR_ReduceAction619 SFT_parser[2512]
-#define INIT_TABLE_POS_ReduceAction619 SFT_parser[2513]
-#define COLOR_parser___ReduceAction619___init SFT_parser[2514]
-#define ID_ReduceAction620 SFT_parser[2515]
-#define COLOR_ReduceAction620 SFT_parser[2516]
-#define INIT_TABLE_POS_ReduceAction620 SFT_parser[2517]
-#define COLOR_parser___ReduceAction620___init SFT_parser[2518]
-#define ID_ReduceAction621 SFT_parser[2519]
-#define COLOR_ReduceAction621 SFT_parser[2520]
-#define INIT_TABLE_POS_ReduceAction621 SFT_parser[2521]
-#define COLOR_parser___ReduceAction621___init SFT_parser[2522]
-#define ID_ReduceAction622 SFT_parser[2523]
-#define COLOR_ReduceAction622 SFT_parser[2524]
-#define INIT_TABLE_POS_ReduceAction622 SFT_parser[2525]
-#define COLOR_parser___ReduceAction622___init SFT_parser[2526]
-#define ID_ReduceAction623 SFT_parser[2527]
-#define COLOR_ReduceAction623 SFT_parser[2528]
-#define INIT_TABLE_POS_ReduceAction623 SFT_parser[2529]
-#define COLOR_parser___ReduceAction623___init SFT_parser[2530]
-#define ID_ReduceAction624 SFT_parser[2531]
-#define COLOR_ReduceAction624 SFT_parser[2532]
-#define INIT_TABLE_POS_ReduceAction624 SFT_parser[2533]
-#define COLOR_parser___ReduceAction624___init SFT_parser[2534]
-#define ID_ReduceAction625 SFT_parser[2535]
-#define COLOR_ReduceAction625 SFT_parser[2536]
-#define INIT_TABLE_POS_ReduceAction625 SFT_parser[2537]
-#define COLOR_parser___ReduceAction625___init SFT_parser[2538]
-#define ID_ReduceAction626 SFT_parser[2539]
-#define COLOR_ReduceAction626 SFT_parser[2540]
-#define INIT_TABLE_POS_ReduceAction626 SFT_parser[2541]
-#define COLOR_parser___ReduceAction626___init SFT_parser[2542]
-#define ID_ReduceAction627 SFT_parser[2543]
-#define COLOR_ReduceAction627 SFT_parser[2544]
-#define INIT_TABLE_POS_ReduceAction627 SFT_parser[2545]
-#define COLOR_parser___ReduceAction627___init SFT_parser[2546]
-#define ID_ReduceAction628 SFT_parser[2547]
-#define COLOR_ReduceAction628 SFT_parser[2548]
-#define INIT_TABLE_POS_ReduceAction628 SFT_parser[2549]
-#define COLOR_parser___ReduceAction628___init SFT_parser[2550]
-#define ID_ReduceAction629 SFT_parser[2551]
-#define COLOR_ReduceAction629 SFT_parser[2552]
-#define INIT_TABLE_POS_ReduceAction629 SFT_parser[2553]
-#define COLOR_parser___ReduceAction629___init SFT_parser[2554]
-#define ID_ReduceAction630 SFT_parser[2555]
-#define COLOR_ReduceAction630 SFT_parser[2556]
-#define INIT_TABLE_POS_ReduceAction630 SFT_parser[2557]
-#define COLOR_parser___ReduceAction630___init SFT_parser[2558]
-#define ID_ReduceAction631 SFT_parser[2559]
-#define COLOR_ReduceAction631 SFT_parser[2560]
-#define INIT_TABLE_POS_ReduceAction631 SFT_parser[2561]
-#define COLOR_parser___ReduceAction631___init SFT_parser[2562]
-#define ID_ReduceAction632 SFT_parser[2563]
-#define COLOR_ReduceAction632 SFT_parser[2564]
-#define INIT_TABLE_POS_ReduceAction632 SFT_parser[2565]
-#define COLOR_parser___ReduceAction632___init SFT_parser[2566]
-#define ID_ReduceAction633 SFT_parser[2567]
-#define COLOR_ReduceAction633 SFT_parser[2568]
-#define INIT_TABLE_POS_ReduceAction633 SFT_parser[2569]
-#define COLOR_parser___ReduceAction633___init SFT_parser[2570]
-#define ID_ReduceAction634 SFT_parser[2571]
-#define COLOR_ReduceAction634 SFT_parser[2572]
-#define INIT_TABLE_POS_ReduceAction634 SFT_parser[2573]
-#define COLOR_parser___ReduceAction634___init SFT_parser[2574]
-#define ID_ReduceAction635 SFT_parser[2575]
-#define COLOR_ReduceAction635 SFT_parser[2576]
-#define INIT_TABLE_POS_ReduceAction635 SFT_parser[2577]
-#define COLOR_parser___ReduceAction635___init SFT_parser[2578]
-#define ID_ReduceAction636 SFT_parser[2579]
-#define COLOR_ReduceAction636 SFT_parser[2580]
-#define INIT_TABLE_POS_ReduceAction636 SFT_parser[2581]
-#define COLOR_parser___ReduceAction636___init SFT_parser[2582]
-#define ID_ReduceAction637 SFT_parser[2583]
-#define COLOR_ReduceAction637 SFT_parser[2584]
-#define INIT_TABLE_POS_ReduceAction637 SFT_parser[2585]
-#define COLOR_parser___ReduceAction637___init SFT_parser[2586]
-#define ID_ReduceAction638 SFT_parser[2587]
-#define COLOR_ReduceAction638 SFT_parser[2588]
-#define INIT_TABLE_POS_ReduceAction638 SFT_parser[2589]
-#define COLOR_parser___ReduceAction638___init SFT_parser[2590]
-#define ID_ReduceAction639 SFT_parser[2591]
-#define COLOR_ReduceAction639 SFT_parser[2592]
-#define INIT_TABLE_POS_ReduceAction639 SFT_parser[2593]
-#define COLOR_parser___ReduceAction639___init SFT_parser[2594]
-#define ID_ReduceAction640 SFT_parser[2595]
-#define COLOR_ReduceAction640 SFT_parser[2596]
-#define INIT_TABLE_POS_ReduceAction640 SFT_parser[2597]
-#define COLOR_parser___ReduceAction640___init SFT_parser[2598]
-#define ID_ReduceAction641 SFT_parser[2599]
-#define COLOR_ReduceAction641 SFT_parser[2600]
-#define INIT_TABLE_POS_ReduceAction641 SFT_parser[2601]
-#define COLOR_parser___ReduceAction641___init SFT_parser[2602]
-#define ID_ReduceAction642 SFT_parser[2603]
-#define COLOR_ReduceAction642 SFT_parser[2604]
-#define INIT_TABLE_POS_ReduceAction642 SFT_parser[2605]
-#define COLOR_parser___ReduceAction642___init SFT_parser[2606]
-#define ID_ReduceAction643 SFT_parser[2607]
-#define COLOR_ReduceAction643 SFT_parser[2608]
-#define INIT_TABLE_POS_ReduceAction643 SFT_parser[2609]
-#define COLOR_parser___ReduceAction643___init SFT_parser[2610]
-#define ID_ReduceAction644 SFT_parser[2611]
-#define COLOR_ReduceAction644 SFT_parser[2612]
-#define INIT_TABLE_POS_ReduceAction644 SFT_parser[2613]
-#define COLOR_parser___ReduceAction644___init SFT_parser[2614]
-#define ID_ReduceAction645 SFT_parser[2615]
-#define COLOR_ReduceAction645 SFT_parser[2616]
-#define INIT_TABLE_POS_ReduceAction645 SFT_parser[2617]
-#define COLOR_parser___ReduceAction645___init SFT_parser[2618]
-#define ID_ReduceAction646 SFT_parser[2619]
-#define COLOR_ReduceAction646 SFT_parser[2620]
-#define INIT_TABLE_POS_ReduceAction646 SFT_parser[2621]
-#define COLOR_parser___ReduceAction646___init SFT_parser[2622]
-#define ID_ReduceAction647 SFT_parser[2623]
-#define COLOR_ReduceAction647 SFT_parser[2624]
-#define INIT_TABLE_POS_ReduceAction647 SFT_parser[2625]
-#define COLOR_parser___ReduceAction647___init SFT_parser[2626]
-#define ID_ReduceAction648 SFT_parser[2627]
-#define COLOR_ReduceAction648 SFT_parser[2628]
-#define INIT_TABLE_POS_ReduceAction648 SFT_parser[2629]
-#define COLOR_parser___ReduceAction648___init SFT_parser[2630]
-#define ID_ReduceAction649 SFT_parser[2631]
-#define COLOR_ReduceAction649 SFT_parser[2632]
-#define INIT_TABLE_POS_ReduceAction649 SFT_parser[2633]
-#define COLOR_parser___ReduceAction649___init SFT_parser[2634]
-#define ID_ReduceAction650 SFT_parser[2635]
-#define COLOR_ReduceAction650 SFT_parser[2636]
-#define INIT_TABLE_POS_ReduceAction650 SFT_parser[2637]
-#define COLOR_parser___ReduceAction650___init SFT_parser[2638]
-#define ID_ReduceAction651 SFT_parser[2639]
-#define COLOR_ReduceAction651 SFT_parser[2640]
-#define INIT_TABLE_POS_ReduceAction651 SFT_parser[2641]
-#define COLOR_parser___ReduceAction651___init SFT_parser[2642]
-#define ID_ReduceAction652 SFT_parser[2643]
-#define COLOR_ReduceAction652 SFT_parser[2644]
-#define INIT_TABLE_POS_ReduceAction652 SFT_parser[2645]
-#define COLOR_parser___ReduceAction652___init SFT_parser[2646]
-#define ID_ReduceAction653 SFT_parser[2647]
-#define COLOR_ReduceAction653 SFT_parser[2648]
-#define INIT_TABLE_POS_ReduceAction653 SFT_parser[2649]
-#define COLOR_parser___ReduceAction653___init SFT_parser[2650]
-#define ATTR_parser___State____state(recv) ATTR(recv, COLOR_parser___State____state)
+#define ID_State (SFT_parser[0])
+#define COLOR_State (SFT_parser[1])
+#define ATTR_parser___State____state(recv) ATTR(recv, (SFT_parser[2] + 0))
+#define ATTR_parser___State____nodes(recv) ATTR(recv, (SFT_parser[2] + 1))
+#define INIT_TABLE_POS_State (SFT_parser[3] + 0)
+#define CALL_parser___State___state(recv) ((parser___State___state_t)CALL((recv), (SFT_parser[3] + 1)))
+#define CALL_parser___State___state__eq(recv) ((parser___State___state__eq_t)CALL((recv), (SFT_parser[3] + 2)))
+#define CALL_parser___State___nodes(recv) ((parser___State___nodes_t)CALL((recv), (SFT_parser[3] + 3)))
+#define CALL_parser___State___nodes__eq(recv) ((parser___State___nodes__eq_t)CALL((recv), (SFT_parser[3] + 4)))
+#define CALL_parser___State___init(recv) ((parser___State___init_t)CALL((recv), (SFT_parser[3] + 5)))
+#define ID_Parser (SFT_parser[4])
+#define COLOR_Parser (SFT_parser[5])
+#define ATTR_parser___Parser____lexer(recv) ATTR(recv, (SFT_parser[6] + 0))
+#define ATTR_parser___Parser____stack(recv) ATTR(recv, (SFT_parser[6] + 1))
+#define ATTR_parser___Parser____stack_pos(recv) ATTR(recv, (SFT_parser[6] + 2))
+#define ATTR_parser___Parser____reduce_table(recv) ATTR(recv, (SFT_parser[6] + 3))
+#define INIT_TABLE_POS_Parser (SFT_parser[7] + 0)
+#define CALL_parser___Parser___init(recv) ((parser___Parser___init_t)CALL((recv), (SFT_parser[7] + 1)))
+#define CALL_parser___Parser___go_to(recv) ((parser___Parser___go_to_t)CALL((recv), (SFT_parser[7] + 2)))
+#define CALL_parser___Parser___push(recv) ((parser___Parser___push_t)CALL((recv), (SFT_parser[7] + 3)))
+#define CALL_parser___Parser___state(recv) ((parser___Parser___state_t)CALL((recv), (SFT_parser[7] + 4)))
+#define CALL_parser___Parser___pop(recv) ((parser___Parser___pop_t)CALL((recv), (SFT_parser[7] + 5)))
+#define CALL_parser___Parser___parse(recv) ((parser___Parser___parse_t)CALL((recv), (SFT_parser[7] + 6)))
+#define CALL_parser___Parser___build_reduce_table(recv) ((parser___Parser___build_reduce_table_t)CALL((recv), (SFT_parser[7] + 7)))
+#define ID_SearchTokensVisitor (SFT_parser[8])
+#define COLOR_SearchTokensVisitor (SFT_parser[9])
+#define ATTR_parser___SearchTokensVisitor____untokenned_nodes(recv) ATTR(recv, (SFT_parser[10] + 0))
+#define ATTR_parser___SearchTokensVisitor____last_token(recv) ATTR(recv, (SFT_parser[10] + 1))
+#define INIT_TABLE_POS_SearchTokensVisitor (SFT_parser[11] + 0)
+#define CALL_parser___SearchTokensVisitor___init(recv) ((parser___SearchTokensVisitor___init_t)CALL((recv), (SFT_parser[11] + 1)))
+#define ID_ReduceAction (SFT_parser[12])
+#define COLOR_ReduceAction (SFT_parser[13])
+#define INIT_TABLE_POS_ReduceAction (SFT_parser[14] + 0)
+#define CALL_parser___ReduceAction___action(recv) ((parser___ReduceAction___action_t)CALL((recv), (SFT_parser[14] + 1)))
+#define CALL_parser___ReduceAction___init(recv) ((parser___ReduceAction___init_t)CALL((recv), (SFT_parser[14] + 2)))
+#define ID_ReduceAction0 (SFT_parser[15])
+#define COLOR_ReduceAction0 (SFT_parser[16])
+#define INIT_TABLE_POS_ReduceAction0 (SFT_parser[17] + 0)
+#define CALL_parser___ReduceAction0___init(recv) ((parser___ReduceAction0___init_t)CALL((recv), (SFT_parser[17] + 1)))
+#define ID_ReduceAction1 (SFT_parser[18])
+#define COLOR_ReduceAction1 (SFT_parser[19])
+#define INIT_TABLE_POS_ReduceAction1 (SFT_parser[20] + 0)
+#define CALL_parser___ReduceAction1___init(recv) ((parser___ReduceAction1___init_t)CALL((recv), (SFT_parser[20] + 1)))
+#define ID_ReduceAction2 (SFT_parser[21])
+#define COLOR_ReduceAction2 (SFT_parser[22])
+#define INIT_TABLE_POS_ReduceAction2 (SFT_parser[23] + 0)
+#define CALL_parser___ReduceAction2___init(recv) ((parser___ReduceAction2___init_t)CALL((recv), (SFT_parser[23] + 1)))
+#define ID_ReduceAction3 (SFT_parser[24])
+#define COLOR_ReduceAction3 (SFT_parser[25])
+#define INIT_TABLE_POS_ReduceAction3 (SFT_parser[26] + 0)
+#define CALL_parser___ReduceAction3___init(recv) ((parser___ReduceAction3___init_t)CALL((recv), (SFT_parser[26] + 1)))
+#define ID_ReduceAction4 (SFT_parser[27])
+#define COLOR_ReduceAction4 (SFT_parser[28])
+#define INIT_TABLE_POS_ReduceAction4 (SFT_parser[29] + 0)
+#define CALL_parser___ReduceAction4___init(recv) ((parser___ReduceAction4___init_t)CALL((recv), (SFT_parser[29] + 1)))
+#define ID_ReduceAction5 (SFT_parser[30])
+#define COLOR_ReduceAction5 (SFT_parser[31])
+#define INIT_TABLE_POS_ReduceAction5 (SFT_parser[32] + 0)
+#define CALL_parser___ReduceAction5___init(recv) ((parser___ReduceAction5___init_t)CALL((recv), (SFT_parser[32] + 1)))
+#define ID_ReduceAction6 (SFT_parser[33])
+#define COLOR_ReduceAction6 (SFT_parser[34])
+#define INIT_TABLE_POS_ReduceAction6 (SFT_parser[35] + 0)
+#define CALL_parser___ReduceAction6___init(recv) ((parser___ReduceAction6___init_t)CALL((recv), (SFT_parser[35] + 1)))
+#define ID_ReduceAction7 (SFT_parser[36])
+#define COLOR_ReduceAction7 (SFT_parser[37])
+#define INIT_TABLE_POS_ReduceAction7 (SFT_parser[38] + 0)
+#define CALL_parser___ReduceAction7___init(recv) ((parser___ReduceAction7___init_t)CALL((recv), (SFT_parser[38] + 1)))
+#define ID_ReduceAction8 (SFT_parser[39])
+#define COLOR_ReduceAction8 (SFT_parser[40])
+#define INIT_TABLE_POS_ReduceAction8 (SFT_parser[41] + 0)
+#define CALL_parser___ReduceAction8___init(recv) ((parser___ReduceAction8___init_t)CALL((recv), (SFT_parser[41] + 1)))
+#define ID_ReduceAction9 (SFT_parser[42])
+#define COLOR_ReduceAction9 (SFT_parser[43])
+#define INIT_TABLE_POS_ReduceAction9 (SFT_parser[44] + 0)
+#define CALL_parser___ReduceAction9___init(recv) ((parser___ReduceAction9___init_t)CALL((recv), (SFT_parser[44] + 1)))
+#define ID_ReduceAction10 (SFT_parser[45])
+#define COLOR_ReduceAction10 (SFT_parser[46])
+#define INIT_TABLE_POS_ReduceAction10 (SFT_parser[47] + 0)
+#define CALL_parser___ReduceAction10___init(recv) ((parser___ReduceAction10___init_t)CALL((recv), (SFT_parser[47] + 1)))
+#define ID_ReduceAction11 (SFT_parser[48])
+#define COLOR_ReduceAction11 (SFT_parser[49])
+#define INIT_TABLE_POS_ReduceAction11 (SFT_parser[50] + 0)
+#define CALL_parser___ReduceAction11___init(recv) ((parser___ReduceAction11___init_t)CALL((recv), (SFT_parser[50] + 1)))
+#define ID_ReduceAction12 (SFT_parser[51])
+#define COLOR_ReduceAction12 (SFT_parser[52])
+#define INIT_TABLE_POS_ReduceAction12 (SFT_parser[53] + 0)
+#define CALL_parser___ReduceAction12___init(recv) ((parser___ReduceAction12___init_t)CALL((recv), (SFT_parser[53] + 1)))
+#define ID_ReduceAction13 (SFT_parser[54])
+#define COLOR_ReduceAction13 (SFT_parser[55])
+#define INIT_TABLE_POS_ReduceAction13 (SFT_parser[56] + 0)
+#define CALL_parser___ReduceAction13___init(recv) ((parser___ReduceAction13___init_t)CALL((recv), (SFT_parser[56] + 1)))
+#define ID_ReduceAction14 (SFT_parser[57])
+#define COLOR_ReduceAction14 (SFT_parser[58])
+#define INIT_TABLE_POS_ReduceAction14 (SFT_parser[59] + 0)
+#define CALL_parser___ReduceAction14___init(recv) ((parser___ReduceAction14___init_t)CALL((recv), (SFT_parser[59] + 1)))
+#define ID_ReduceAction15 (SFT_parser[60])
+#define COLOR_ReduceAction15 (SFT_parser[61])
+#define INIT_TABLE_POS_ReduceAction15 (SFT_parser[62] + 0)
+#define CALL_parser___ReduceAction15___init(recv) ((parser___ReduceAction15___init_t)CALL((recv), (SFT_parser[62] + 1)))
+#define ID_ReduceAction16 (SFT_parser[63])
+#define COLOR_ReduceAction16 (SFT_parser[64])
+#define INIT_TABLE_POS_ReduceAction16 (SFT_parser[65] + 0)
+#define CALL_parser___ReduceAction16___init(recv) ((parser___ReduceAction16___init_t)CALL((recv), (SFT_parser[65] + 1)))
+#define ID_ReduceAction17 (SFT_parser[66])
+#define COLOR_ReduceAction17 (SFT_parser[67])
+#define INIT_TABLE_POS_ReduceAction17 (SFT_parser[68] + 0)
+#define CALL_parser___ReduceAction17___init(recv) ((parser___ReduceAction17___init_t)CALL((recv), (SFT_parser[68] + 1)))
+#define ID_ReduceAction18 (SFT_parser[69])
+#define COLOR_ReduceAction18 (SFT_parser[70])
+#define INIT_TABLE_POS_ReduceAction18 (SFT_parser[71] + 0)
+#define CALL_parser___ReduceAction18___init(recv) ((parser___ReduceAction18___init_t)CALL((recv), (SFT_parser[71] + 1)))
+#define ID_ReduceAction19 (SFT_parser[72])
+#define COLOR_ReduceAction19 (SFT_parser[73])
+#define INIT_TABLE_POS_ReduceAction19 (SFT_parser[74] + 0)
+#define CALL_parser___ReduceAction19___init(recv) ((parser___ReduceAction19___init_t)CALL((recv), (SFT_parser[74] + 1)))
+#define ID_ReduceAction20 (SFT_parser[75])
+#define COLOR_ReduceAction20 (SFT_parser[76])
+#define INIT_TABLE_POS_ReduceAction20 (SFT_parser[77] + 0)
+#define CALL_parser___ReduceAction20___init(recv) ((parser___ReduceAction20___init_t)CALL((recv), (SFT_parser[77] + 1)))
+#define ID_ReduceAction21 (SFT_parser[78])
+#define COLOR_ReduceAction21 (SFT_parser[79])
+#define INIT_TABLE_POS_ReduceAction21 (SFT_parser[80] + 0)
+#define CALL_parser___ReduceAction21___init(recv) ((parser___ReduceAction21___init_t)CALL((recv), (SFT_parser[80] + 1)))
+#define ID_ReduceAction22 (SFT_parser[81])
+#define COLOR_ReduceAction22 (SFT_parser[82])
+#define INIT_TABLE_POS_ReduceAction22 (SFT_parser[83] + 0)
+#define CALL_parser___ReduceAction22___init(recv) ((parser___ReduceAction22___init_t)CALL((recv), (SFT_parser[83] + 1)))
+#define ID_ReduceAction23 (SFT_parser[84])
+#define COLOR_ReduceAction23 (SFT_parser[85])
+#define INIT_TABLE_POS_ReduceAction23 (SFT_parser[86] + 0)
+#define CALL_parser___ReduceAction23___init(recv) ((parser___ReduceAction23___init_t)CALL((recv), (SFT_parser[86] + 1)))
+#define ID_ReduceAction24 (SFT_parser[87])
+#define COLOR_ReduceAction24 (SFT_parser[88])
+#define INIT_TABLE_POS_ReduceAction24 (SFT_parser[89] + 0)
+#define CALL_parser___ReduceAction24___init(recv) ((parser___ReduceAction24___init_t)CALL((recv), (SFT_parser[89] + 1)))
+#define ID_ReduceAction25 (SFT_parser[90])
+#define COLOR_ReduceAction25 (SFT_parser[91])
+#define INIT_TABLE_POS_ReduceAction25 (SFT_parser[92] + 0)
+#define CALL_parser___ReduceAction25___init(recv) ((parser___ReduceAction25___init_t)CALL((recv), (SFT_parser[92] + 1)))
+#define ID_ReduceAction26 (SFT_parser[93])
+#define COLOR_ReduceAction26 (SFT_parser[94])
+#define INIT_TABLE_POS_ReduceAction26 (SFT_parser[95] + 0)
+#define CALL_parser___ReduceAction26___init(recv) ((parser___ReduceAction26___init_t)CALL((recv), (SFT_parser[95] + 1)))
+#define ID_ReduceAction27 (SFT_parser[96])
+#define COLOR_ReduceAction27 (SFT_parser[97])
+#define INIT_TABLE_POS_ReduceAction27 (SFT_parser[98] + 0)
+#define CALL_parser___ReduceAction27___init(recv) ((parser___ReduceAction27___init_t)CALL((recv), (SFT_parser[98] + 1)))
+#define ID_ReduceAction28 (SFT_parser[99])
+#define COLOR_ReduceAction28 (SFT_parser[100])
+#define INIT_TABLE_POS_ReduceAction28 (SFT_parser[101] + 0)
+#define CALL_parser___ReduceAction28___init(recv) ((parser___ReduceAction28___init_t)CALL((recv), (SFT_parser[101] + 1)))
+#define ID_ReduceAction29 (SFT_parser[102])
+#define COLOR_ReduceAction29 (SFT_parser[103])
+#define INIT_TABLE_POS_ReduceAction29 (SFT_parser[104] + 0)
+#define CALL_parser___ReduceAction29___init(recv) ((parser___ReduceAction29___init_t)CALL((recv), (SFT_parser[104] + 1)))
+#define ID_ReduceAction30 (SFT_parser[105])
+#define COLOR_ReduceAction30 (SFT_parser[106])
+#define INIT_TABLE_POS_ReduceAction30 (SFT_parser[107] + 0)
+#define CALL_parser___ReduceAction30___init(recv) ((parser___ReduceAction30___init_t)CALL((recv), (SFT_parser[107] + 1)))
+#define ID_ReduceAction31 (SFT_parser[108])
+#define COLOR_ReduceAction31 (SFT_parser[109])
+#define INIT_TABLE_POS_ReduceAction31 (SFT_parser[110] + 0)
+#define CALL_parser___ReduceAction31___init(recv) ((parser___ReduceAction31___init_t)CALL((recv), (SFT_parser[110] + 1)))
+#define ID_ReduceAction32 (SFT_parser[111])
+#define COLOR_ReduceAction32 (SFT_parser[112])
+#define INIT_TABLE_POS_ReduceAction32 (SFT_parser[113] + 0)
+#define CALL_parser___ReduceAction32___init(recv) ((parser___ReduceAction32___init_t)CALL((recv), (SFT_parser[113] + 1)))
+#define ID_ReduceAction33 (SFT_parser[114])
+#define COLOR_ReduceAction33 (SFT_parser[115])
+#define INIT_TABLE_POS_ReduceAction33 (SFT_parser[116] + 0)
+#define CALL_parser___ReduceAction33___init(recv) ((parser___ReduceAction33___init_t)CALL((recv), (SFT_parser[116] + 1)))
+#define ID_ReduceAction34 (SFT_parser[117])
+#define COLOR_ReduceAction34 (SFT_parser[118])
+#define INIT_TABLE_POS_ReduceAction34 (SFT_parser[119] + 0)
+#define CALL_parser___ReduceAction34___init(recv) ((parser___ReduceAction34___init_t)CALL((recv), (SFT_parser[119] + 1)))
+#define ID_ReduceAction35 (SFT_parser[120])
+#define COLOR_ReduceAction35 (SFT_parser[121])
+#define INIT_TABLE_POS_ReduceAction35 (SFT_parser[122] + 0)
+#define CALL_parser___ReduceAction35___init(recv) ((parser___ReduceAction35___init_t)CALL((recv), (SFT_parser[122] + 1)))
+#define ID_ReduceAction36 (SFT_parser[123])
+#define COLOR_ReduceAction36 (SFT_parser[124])
+#define INIT_TABLE_POS_ReduceAction36 (SFT_parser[125] + 0)
+#define CALL_parser___ReduceAction36___init(recv) ((parser___ReduceAction36___init_t)CALL((recv), (SFT_parser[125] + 1)))
+#define ID_ReduceAction37 (SFT_parser[126])
+#define COLOR_ReduceAction37 (SFT_parser[127])
+#define INIT_TABLE_POS_ReduceAction37 (SFT_parser[128] + 0)
+#define CALL_parser___ReduceAction37___init(recv) ((parser___ReduceAction37___init_t)CALL((recv), (SFT_parser[128] + 1)))
+#define ID_ReduceAction38 (SFT_parser[129])
+#define COLOR_ReduceAction38 (SFT_parser[130])
+#define INIT_TABLE_POS_ReduceAction38 (SFT_parser[131] + 0)
+#define CALL_parser___ReduceAction38___init(recv) ((parser___ReduceAction38___init_t)CALL((recv), (SFT_parser[131] + 1)))
+#define ID_ReduceAction39 (SFT_parser[132])
+#define COLOR_ReduceAction39 (SFT_parser[133])
+#define INIT_TABLE_POS_ReduceAction39 (SFT_parser[134] + 0)
+#define CALL_parser___ReduceAction39___init(recv) ((parser___ReduceAction39___init_t)CALL((recv), (SFT_parser[134] + 1)))
+#define ID_ReduceAction40 (SFT_parser[135])
+#define COLOR_ReduceAction40 (SFT_parser[136])
+#define INIT_TABLE_POS_ReduceAction40 (SFT_parser[137] + 0)
+#define CALL_parser___ReduceAction40___init(recv) ((parser___ReduceAction40___init_t)CALL((recv), (SFT_parser[137] + 1)))
+#define ID_ReduceAction41 (SFT_parser[138])
+#define COLOR_ReduceAction41 (SFT_parser[139])
+#define INIT_TABLE_POS_ReduceAction41 (SFT_parser[140] + 0)
+#define CALL_parser___ReduceAction41___init(recv) ((parser___ReduceAction41___init_t)CALL((recv), (SFT_parser[140] + 1)))
+#define ID_ReduceAction42 (SFT_parser[141])
+#define COLOR_ReduceAction42 (SFT_parser[142])
+#define INIT_TABLE_POS_ReduceAction42 (SFT_parser[143] + 0)
+#define CALL_parser___ReduceAction42___init(recv) ((parser___ReduceAction42___init_t)CALL((recv), (SFT_parser[143] + 1)))
+#define ID_ReduceAction43 (SFT_parser[144])
+#define COLOR_ReduceAction43 (SFT_parser[145])
+#define INIT_TABLE_POS_ReduceAction43 (SFT_parser[146] + 0)
+#define CALL_parser___ReduceAction43___init(recv) ((parser___ReduceAction43___init_t)CALL((recv), (SFT_parser[146] + 1)))
+#define ID_ReduceAction44 (SFT_parser[147])
+#define COLOR_ReduceAction44 (SFT_parser[148])
+#define INIT_TABLE_POS_ReduceAction44 (SFT_parser[149] + 0)
+#define CALL_parser___ReduceAction44___init(recv) ((parser___ReduceAction44___init_t)CALL((recv), (SFT_parser[149] + 1)))
+#define ID_ReduceAction45 (SFT_parser[150])
+#define COLOR_ReduceAction45 (SFT_parser[151])
+#define INIT_TABLE_POS_ReduceAction45 (SFT_parser[152] + 0)
+#define CALL_parser___ReduceAction45___init(recv) ((parser___ReduceAction45___init_t)CALL((recv), (SFT_parser[152] + 1)))
+#define ID_ReduceAction46 (SFT_parser[153])
+#define COLOR_ReduceAction46 (SFT_parser[154])
+#define INIT_TABLE_POS_ReduceAction46 (SFT_parser[155] + 0)
+#define CALL_parser___ReduceAction46___init(recv) ((parser___ReduceAction46___init_t)CALL((recv), (SFT_parser[155] + 1)))
+#define ID_ReduceAction47 (SFT_parser[156])
+#define COLOR_ReduceAction47 (SFT_parser[157])
+#define INIT_TABLE_POS_ReduceAction47 (SFT_parser[158] + 0)
+#define CALL_parser___ReduceAction47___init(recv) ((parser___ReduceAction47___init_t)CALL((recv), (SFT_parser[158] + 1)))
+#define ID_ReduceAction48 (SFT_parser[159])
+#define COLOR_ReduceAction48 (SFT_parser[160])
+#define INIT_TABLE_POS_ReduceAction48 (SFT_parser[161] + 0)
+#define CALL_parser___ReduceAction48___init(recv) ((parser___ReduceAction48___init_t)CALL((recv), (SFT_parser[161] + 1)))
+#define ID_ReduceAction49 (SFT_parser[162])
+#define COLOR_ReduceAction49 (SFT_parser[163])
+#define INIT_TABLE_POS_ReduceAction49 (SFT_parser[164] + 0)
+#define CALL_parser___ReduceAction49___init(recv) ((parser___ReduceAction49___init_t)CALL((recv), (SFT_parser[164] + 1)))
+#define ID_ReduceAction50 (SFT_parser[165])
+#define COLOR_ReduceAction50 (SFT_parser[166])
+#define INIT_TABLE_POS_ReduceAction50 (SFT_parser[167] + 0)
+#define CALL_parser___ReduceAction50___init(recv) ((parser___ReduceAction50___init_t)CALL((recv), (SFT_parser[167] + 1)))
+#define ID_ReduceAction51 (SFT_parser[168])
+#define COLOR_ReduceAction51 (SFT_parser[169])
+#define INIT_TABLE_POS_ReduceAction51 (SFT_parser[170] + 0)
+#define CALL_parser___ReduceAction51___init(recv) ((parser___ReduceAction51___init_t)CALL((recv), (SFT_parser[170] + 1)))
+#define ID_ReduceAction52 (SFT_parser[171])
+#define COLOR_ReduceAction52 (SFT_parser[172])
+#define INIT_TABLE_POS_ReduceAction52 (SFT_parser[173] + 0)
+#define CALL_parser___ReduceAction52___init(recv) ((parser___ReduceAction52___init_t)CALL((recv), (SFT_parser[173] + 1)))
+#define ID_ReduceAction53 (SFT_parser[174])
+#define COLOR_ReduceAction53 (SFT_parser[175])
+#define INIT_TABLE_POS_ReduceAction53 (SFT_parser[176] + 0)
+#define CALL_parser___ReduceAction53___init(recv) ((parser___ReduceAction53___init_t)CALL((recv), (SFT_parser[176] + 1)))
+#define ID_ReduceAction54 (SFT_parser[177])
+#define COLOR_ReduceAction54 (SFT_parser[178])
+#define INIT_TABLE_POS_ReduceAction54 (SFT_parser[179] + 0)
+#define CALL_parser___ReduceAction54___init(recv) ((parser___ReduceAction54___init_t)CALL((recv), (SFT_parser[179] + 1)))
+#define ID_ReduceAction55 (SFT_parser[180])
+#define COLOR_ReduceAction55 (SFT_parser[181])
+#define INIT_TABLE_POS_ReduceAction55 (SFT_parser[182] + 0)
+#define CALL_parser___ReduceAction55___init(recv) ((parser___ReduceAction55___init_t)CALL((recv), (SFT_parser[182] + 1)))
+#define ID_ReduceAction56 (SFT_parser[183])
+#define COLOR_ReduceAction56 (SFT_parser[184])
+#define INIT_TABLE_POS_ReduceAction56 (SFT_parser[185] + 0)
+#define CALL_parser___ReduceAction56___init(recv) ((parser___ReduceAction56___init_t)CALL((recv), (SFT_parser[185] + 1)))
+#define ID_ReduceAction57 (SFT_parser[186])
+#define COLOR_ReduceAction57 (SFT_parser[187])
+#define INIT_TABLE_POS_ReduceAction57 (SFT_parser[188] + 0)
+#define CALL_parser___ReduceAction57___init(recv) ((parser___ReduceAction57___init_t)CALL((recv), (SFT_parser[188] + 1)))
+#define ID_ReduceAction58 (SFT_parser[189])
+#define COLOR_ReduceAction58 (SFT_parser[190])
+#define INIT_TABLE_POS_ReduceAction58 (SFT_parser[191] + 0)
+#define CALL_parser___ReduceAction58___init(recv) ((parser___ReduceAction58___init_t)CALL((recv), (SFT_parser[191] + 1)))
+#define ID_ReduceAction59 (SFT_parser[192])
+#define COLOR_ReduceAction59 (SFT_parser[193])
+#define INIT_TABLE_POS_ReduceAction59 (SFT_parser[194] + 0)
+#define CALL_parser___ReduceAction59___init(recv) ((parser___ReduceAction59___init_t)CALL((recv), (SFT_parser[194] + 1)))
+#define ID_ReduceAction60 (SFT_parser[195])
+#define COLOR_ReduceAction60 (SFT_parser[196])
+#define INIT_TABLE_POS_ReduceAction60 (SFT_parser[197] + 0)
+#define CALL_parser___ReduceAction60___init(recv) ((parser___ReduceAction60___init_t)CALL((recv), (SFT_parser[197] + 1)))
+#define ID_ReduceAction61 (SFT_parser[198])
+#define COLOR_ReduceAction61 (SFT_parser[199])
+#define INIT_TABLE_POS_ReduceAction61 (SFT_parser[200] + 0)
+#define CALL_parser___ReduceAction61___init(recv) ((parser___ReduceAction61___init_t)CALL((recv), (SFT_parser[200] + 1)))
+#define ID_ReduceAction62 (SFT_parser[201])
+#define COLOR_ReduceAction62 (SFT_parser[202])
+#define INIT_TABLE_POS_ReduceAction62 (SFT_parser[203] + 0)
+#define CALL_parser___ReduceAction62___init(recv) ((parser___ReduceAction62___init_t)CALL((recv), (SFT_parser[203] + 1)))
+#define ID_ReduceAction63 (SFT_parser[204])
+#define COLOR_ReduceAction63 (SFT_parser[205])
+#define INIT_TABLE_POS_ReduceAction63 (SFT_parser[206] + 0)
+#define CALL_parser___ReduceAction63___init(recv) ((parser___ReduceAction63___init_t)CALL((recv), (SFT_parser[206] + 1)))
+#define ID_ReduceAction64 (SFT_parser[207])
+#define COLOR_ReduceAction64 (SFT_parser[208])
+#define INIT_TABLE_POS_ReduceAction64 (SFT_parser[209] + 0)
+#define CALL_parser___ReduceAction64___init(recv) ((parser___ReduceAction64___init_t)CALL((recv), (SFT_parser[209] + 1)))
+#define ID_ReduceAction65 (SFT_parser[210])
+#define COLOR_ReduceAction65 (SFT_parser[211])
+#define INIT_TABLE_POS_ReduceAction65 (SFT_parser[212] + 0)
+#define CALL_parser___ReduceAction65___init(recv) ((parser___ReduceAction65___init_t)CALL((recv), (SFT_parser[212] + 1)))
+#define ID_ReduceAction66 (SFT_parser[213])
+#define COLOR_ReduceAction66 (SFT_parser[214])
+#define INIT_TABLE_POS_ReduceAction66 (SFT_parser[215] + 0)
+#define CALL_parser___ReduceAction66___init(recv) ((parser___ReduceAction66___init_t)CALL((recv), (SFT_parser[215] + 1)))
+#define ID_ReduceAction67 (SFT_parser[216])
+#define COLOR_ReduceAction67 (SFT_parser[217])
+#define INIT_TABLE_POS_ReduceAction67 (SFT_parser[218] + 0)
+#define CALL_parser___ReduceAction67___init(recv) ((parser___ReduceAction67___init_t)CALL((recv), (SFT_parser[218] + 1)))
+#define ID_ReduceAction68 (SFT_parser[219])
+#define COLOR_ReduceAction68 (SFT_parser[220])
+#define INIT_TABLE_POS_ReduceAction68 (SFT_parser[221] + 0)
+#define CALL_parser___ReduceAction68___init(recv) ((parser___ReduceAction68___init_t)CALL((recv), (SFT_parser[221] + 1)))
+#define ID_ReduceAction69 (SFT_parser[222])
+#define COLOR_ReduceAction69 (SFT_parser[223])
+#define INIT_TABLE_POS_ReduceAction69 (SFT_parser[224] + 0)
+#define CALL_parser___ReduceAction69___init(recv) ((parser___ReduceAction69___init_t)CALL((recv), (SFT_parser[224] + 1)))
+#define ID_ReduceAction70 (SFT_parser[225])
+#define COLOR_ReduceAction70 (SFT_parser[226])
+#define INIT_TABLE_POS_ReduceAction70 (SFT_parser[227] + 0)
+#define CALL_parser___ReduceAction70___init(recv) ((parser___ReduceAction70___init_t)CALL((recv), (SFT_parser[227] + 1)))
+#define ID_ReduceAction71 (SFT_parser[228])
+#define COLOR_ReduceAction71 (SFT_parser[229])
+#define INIT_TABLE_POS_ReduceAction71 (SFT_parser[230] + 0)
+#define CALL_parser___ReduceAction71___init(recv) ((parser___ReduceAction71___init_t)CALL((recv), (SFT_parser[230] + 1)))
+#define ID_ReduceAction72 (SFT_parser[231])
+#define COLOR_ReduceAction72 (SFT_parser[232])
+#define INIT_TABLE_POS_ReduceAction72 (SFT_parser[233] + 0)
+#define CALL_parser___ReduceAction72___init(recv) ((parser___ReduceAction72___init_t)CALL((recv), (SFT_parser[233] + 1)))
+#define ID_ReduceAction73 (SFT_parser[234])
+#define COLOR_ReduceAction73 (SFT_parser[235])
+#define INIT_TABLE_POS_ReduceAction73 (SFT_parser[236] + 0)
+#define CALL_parser___ReduceAction73___init(recv) ((parser___ReduceAction73___init_t)CALL((recv), (SFT_parser[236] + 1)))
+#define ID_ReduceAction74 (SFT_parser[237])
+#define COLOR_ReduceAction74 (SFT_parser[238])
+#define INIT_TABLE_POS_ReduceAction74 (SFT_parser[239] + 0)
+#define CALL_parser___ReduceAction74___init(recv) ((parser___ReduceAction74___init_t)CALL((recv), (SFT_parser[239] + 1)))
+#define ID_ReduceAction75 (SFT_parser[240])
+#define COLOR_ReduceAction75 (SFT_parser[241])
+#define INIT_TABLE_POS_ReduceAction75 (SFT_parser[242] + 0)
+#define CALL_parser___ReduceAction75___init(recv) ((parser___ReduceAction75___init_t)CALL((recv), (SFT_parser[242] + 1)))
+#define ID_ReduceAction76 (SFT_parser[243])
+#define COLOR_ReduceAction76 (SFT_parser[244])
+#define INIT_TABLE_POS_ReduceAction76 (SFT_parser[245] + 0)
+#define CALL_parser___ReduceAction76___init(recv) ((parser___ReduceAction76___init_t)CALL((recv), (SFT_parser[245] + 1)))
+#define ID_ReduceAction77 (SFT_parser[246])
+#define COLOR_ReduceAction77 (SFT_parser[247])
+#define INIT_TABLE_POS_ReduceAction77 (SFT_parser[248] + 0)
+#define CALL_parser___ReduceAction77___init(recv) ((parser___ReduceAction77___init_t)CALL((recv), (SFT_parser[248] + 1)))
+#define ID_ReduceAction78 (SFT_parser[249])
+#define COLOR_ReduceAction78 (SFT_parser[250])
+#define INIT_TABLE_POS_ReduceAction78 (SFT_parser[251] + 0)
+#define CALL_parser___ReduceAction78___init(recv) ((parser___ReduceAction78___init_t)CALL((recv), (SFT_parser[251] + 1)))
+#define ID_ReduceAction79 (SFT_parser[252])
+#define COLOR_ReduceAction79 (SFT_parser[253])
+#define INIT_TABLE_POS_ReduceAction79 (SFT_parser[254] + 0)
+#define CALL_parser___ReduceAction79___init(recv) ((parser___ReduceAction79___init_t)CALL((recv), (SFT_parser[254] + 1)))
+#define ID_ReduceAction80 (SFT_parser[255])
+#define COLOR_ReduceAction80 (SFT_parser[256])
+#define INIT_TABLE_POS_ReduceAction80 (SFT_parser[257] + 0)
+#define CALL_parser___ReduceAction80___init(recv) ((parser___ReduceAction80___init_t)CALL((recv), (SFT_parser[257] + 1)))
+#define ID_ReduceAction81 (SFT_parser[258])
+#define COLOR_ReduceAction81 (SFT_parser[259])
+#define INIT_TABLE_POS_ReduceAction81 (SFT_parser[260] + 0)
+#define CALL_parser___ReduceAction81___init(recv) ((parser___ReduceAction81___init_t)CALL((recv), (SFT_parser[260] + 1)))
+#define ID_ReduceAction82 (SFT_parser[261])
+#define COLOR_ReduceAction82 (SFT_parser[262])
+#define INIT_TABLE_POS_ReduceAction82 (SFT_parser[263] + 0)
+#define CALL_parser___ReduceAction82___init(recv) ((parser___ReduceAction82___init_t)CALL((recv), (SFT_parser[263] + 1)))
+#define ID_ReduceAction83 (SFT_parser[264])
+#define COLOR_ReduceAction83 (SFT_parser[265])
+#define INIT_TABLE_POS_ReduceAction83 (SFT_parser[266] + 0)
+#define CALL_parser___ReduceAction83___init(recv) ((parser___ReduceAction83___init_t)CALL((recv), (SFT_parser[266] + 1)))
+#define ID_ReduceAction84 (SFT_parser[267])
+#define COLOR_ReduceAction84 (SFT_parser[268])
+#define INIT_TABLE_POS_ReduceAction84 (SFT_parser[269] + 0)
+#define CALL_parser___ReduceAction84___init(recv) ((parser___ReduceAction84___init_t)CALL((recv), (SFT_parser[269] + 1)))
+#define ID_ReduceAction85 (SFT_parser[270])
+#define COLOR_ReduceAction85 (SFT_parser[271])
+#define INIT_TABLE_POS_ReduceAction85 (SFT_parser[272] + 0)
+#define CALL_parser___ReduceAction85___init(recv) ((parser___ReduceAction85___init_t)CALL((recv), (SFT_parser[272] + 1)))
+#define ID_ReduceAction86 (SFT_parser[273])
+#define COLOR_ReduceAction86 (SFT_parser[274])
+#define INIT_TABLE_POS_ReduceAction86 (SFT_parser[275] + 0)
+#define CALL_parser___ReduceAction86___init(recv) ((parser___ReduceAction86___init_t)CALL((recv), (SFT_parser[275] + 1)))
+#define ID_ReduceAction87 (SFT_parser[276])
+#define COLOR_ReduceAction87 (SFT_parser[277])
+#define INIT_TABLE_POS_ReduceAction87 (SFT_parser[278] + 0)
+#define CALL_parser___ReduceAction87___init(recv) ((parser___ReduceAction87___init_t)CALL((recv), (SFT_parser[278] + 1)))
+#define ID_ReduceAction88 (SFT_parser[279])
+#define COLOR_ReduceAction88 (SFT_parser[280])
+#define INIT_TABLE_POS_ReduceAction88 (SFT_parser[281] + 0)
+#define CALL_parser___ReduceAction88___init(recv) ((parser___ReduceAction88___init_t)CALL((recv), (SFT_parser[281] + 1)))
+#define ID_ReduceAction89 (SFT_parser[282])
+#define COLOR_ReduceAction89 (SFT_parser[283])
+#define INIT_TABLE_POS_ReduceAction89 (SFT_parser[284] + 0)
+#define CALL_parser___ReduceAction89___init(recv) ((parser___ReduceAction89___init_t)CALL((recv), (SFT_parser[284] + 1)))
+#define ID_ReduceAction90 (SFT_parser[285])
+#define COLOR_ReduceAction90 (SFT_parser[286])
+#define INIT_TABLE_POS_ReduceAction90 (SFT_parser[287] + 0)
+#define CALL_parser___ReduceAction90___init(recv) ((parser___ReduceAction90___init_t)CALL((recv), (SFT_parser[287] + 1)))
+#define ID_ReduceAction91 (SFT_parser[288])
+#define COLOR_ReduceAction91 (SFT_parser[289])
+#define INIT_TABLE_POS_ReduceAction91 (SFT_parser[290] + 0)
+#define CALL_parser___ReduceAction91___init(recv) ((parser___ReduceAction91___init_t)CALL((recv), (SFT_parser[290] + 1)))
+#define ID_ReduceAction92 (SFT_parser[291])
+#define COLOR_ReduceAction92 (SFT_parser[292])
+#define INIT_TABLE_POS_ReduceAction92 (SFT_parser[293] + 0)
+#define CALL_parser___ReduceAction92___init(recv) ((parser___ReduceAction92___init_t)CALL((recv), (SFT_parser[293] + 1)))
+#define ID_ReduceAction93 (SFT_parser[294])
+#define COLOR_ReduceAction93 (SFT_parser[295])
+#define INIT_TABLE_POS_ReduceAction93 (SFT_parser[296] + 0)
+#define CALL_parser___ReduceAction93___init(recv) ((parser___ReduceAction93___init_t)CALL((recv), (SFT_parser[296] + 1)))
+#define ID_ReduceAction94 (SFT_parser[297])
+#define COLOR_ReduceAction94 (SFT_parser[298])
+#define INIT_TABLE_POS_ReduceAction94 (SFT_parser[299] + 0)
+#define CALL_parser___ReduceAction94___init(recv) ((parser___ReduceAction94___init_t)CALL((recv), (SFT_parser[299] + 1)))
+#define ID_ReduceAction95 (SFT_parser[300])
+#define COLOR_ReduceAction95 (SFT_parser[301])
+#define INIT_TABLE_POS_ReduceAction95 (SFT_parser[302] + 0)
+#define CALL_parser___ReduceAction95___init(recv) ((parser___ReduceAction95___init_t)CALL((recv), (SFT_parser[302] + 1)))
+#define ID_ReduceAction96 (SFT_parser[303])
+#define COLOR_ReduceAction96 (SFT_parser[304])
+#define INIT_TABLE_POS_ReduceAction96 (SFT_parser[305] + 0)
+#define CALL_parser___ReduceAction96___init(recv) ((parser___ReduceAction96___init_t)CALL((recv), (SFT_parser[305] + 1)))
+#define ID_ReduceAction97 (SFT_parser[306])
+#define COLOR_ReduceAction97 (SFT_parser[307])
+#define INIT_TABLE_POS_ReduceAction97 (SFT_parser[308] + 0)
+#define CALL_parser___ReduceAction97___init(recv) ((parser___ReduceAction97___init_t)CALL((recv), (SFT_parser[308] + 1)))
+#define ID_ReduceAction98 (SFT_parser[309])
+#define COLOR_ReduceAction98 (SFT_parser[310])
+#define INIT_TABLE_POS_ReduceAction98 (SFT_parser[311] + 0)
+#define CALL_parser___ReduceAction98___init(recv) ((parser___ReduceAction98___init_t)CALL((recv), (SFT_parser[311] + 1)))
+#define ID_ReduceAction99 (SFT_parser[312])
+#define COLOR_ReduceAction99 (SFT_parser[313])
+#define INIT_TABLE_POS_ReduceAction99 (SFT_parser[314] + 0)
+#define CALL_parser___ReduceAction99___init(recv) ((parser___ReduceAction99___init_t)CALL((recv), (SFT_parser[314] + 1)))
+#define ID_ReduceAction100 (SFT_parser[315])
+#define COLOR_ReduceAction100 (SFT_parser[316])
+#define INIT_TABLE_POS_ReduceAction100 (SFT_parser[317] + 0)
+#define CALL_parser___ReduceAction100___init(recv) ((parser___ReduceAction100___init_t)CALL((recv), (SFT_parser[317] + 1)))
+#define ID_ReduceAction101 (SFT_parser[318])
+#define COLOR_ReduceAction101 (SFT_parser[319])
+#define INIT_TABLE_POS_ReduceAction101 (SFT_parser[320] + 0)
+#define CALL_parser___ReduceAction101___init(recv) ((parser___ReduceAction101___init_t)CALL((recv), (SFT_parser[320] + 1)))
+#define ID_ReduceAction102 (SFT_parser[321])
+#define COLOR_ReduceAction102 (SFT_parser[322])
+#define INIT_TABLE_POS_ReduceAction102 (SFT_parser[323] + 0)
+#define CALL_parser___ReduceAction102___init(recv) ((parser___ReduceAction102___init_t)CALL((recv), (SFT_parser[323] + 1)))
+#define ID_ReduceAction103 (SFT_parser[324])
+#define COLOR_ReduceAction103 (SFT_parser[325])
+#define INIT_TABLE_POS_ReduceAction103 (SFT_parser[326] + 0)
+#define CALL_parser___ReduceAction103___init(recv) ((parser___ReduceAction103___init_t)CALL((recv), (SFT_parser[326] + 1)))
+#define ID_ReduceAction104 (SFT_parser[327])
+#define COLOR_ReduceAction104 (SFT_parser[328])
+#define INIT_TABLE_POS_ReduceAction104 (SFT_parser[329] + 0)
+#define CALL_parser___ReduceAction104___init(recv) ((parser___ReduceAction104___init_t)CALL((recv), (SFT_parser[329] + 1)))
+#define ID_ReduceAction105 (SFT_parser[330])
+#define COLOR_ReduceAction105 (SFT_parser[331])
+#define INIT_TABLE_POS_ReduceAction105 (SFT_parser[332] + 0)
+#define CALL_parser___ReduceAction105___init(recv) ((parser___ReduceAction105___init_t)CALL((recv), (SFT_parser[332] + 1)))
+#define ID_ReduceAction106 (SFT_parser[333])
+#define COLOR_ReduceAction106 (SFT_parser[334])
+#define INIT_TABLE_POS_ReduceAction106 (SFT_parser[335] + 0)
+#define CALL_parser___ReduceAction106___init(recv) ((parser___ReduceAction106___init_t)CALL((recv), (SFT_parser[335] + 1)))
+#define ID_ReduceAction107 (SFT_parser[336])
+#define COLOR_ReduceAction107 (SFT_parser[337])
+#define INIT_TABLE_POS_ReduceAction107 (SFT_parser[338] + 0)
+#define CALL_parser___ReduceAction107___init(recv) ((parser___ReduceAction107___init_t)CALL((recv), (SFT_parser[338] + 1)))
+#define ID_ReduceAction108 (SFT_parser[339])
+#define COLOR_ReduceAction108 (SFT_parser[340])
+#define INIT_TABLE_POS_ReduceAction108 (SFT_parser[341] + 0)
+#define CALL_parser___ReduceAction108___init(recv) ((parser___ReduceAction108___init_t)CALL((recv), (SFT_parser[341] + 1)))
+#define ID_ReduceAction109 (SFT_parser[342])
+#define COLOR_ReduceAction109 (SFT_parser[343])
+#define INIT_TABLE_POS_ReduceAction109 (SFT_parser[344] + 0)
+#define CALL_parser___ReduceAction109___init(recv) ((parser___ReduceAction109___init_t)CALL((recv), (SFT_parser[344] + 1)))
+#define ID_ReduceAction110 (SFT_parser[345])
+#define COLOR_ReduceAction110 (SFT_parser[346])
+#define INIT_TABLE_POS_ReduceAction110 (SFT_parser[347] + 0)
+#define CALL_parser___ReduceAction110___init(recv) ((parser___ReduceAction110___init_t)CALL((recv), (SFT_parser[347] + 1)))
+#define ID_ReduceAction111 (SFT_parser[348])
+#define COLOR_ReduceAction111 (SFT_parser[349])
+#define INIT_TABLE_POS_ReduceAction111 (SFT_parser[350] + 0)
+#define CALL_parser___ReduceAction111___init(recv) ((parser___ReduceAction111___init_t)CALL((recv), (SFT_parser[350] + 1)))
+#define ID_ReduceAction112 (SFT_parser[351])
+#define COLOR_ReduceAction112 (SFT_parser[352])
+#define INIT_TABLE_POS_ReduceAction112 (SFT_parser[353] + 0)
+#define CALL_parser___ReduceAction112___init(recv) ((parser___ReduceAction112___init_t)CALL((recv), (SFT_parser[353] + 1)))
+#define ID_ReduceAction113 (SFT_parser[354])
+#define COLOR_ReduceAction113 (SFT_parser[355])
+#define INIT_TABLE_POS_ReduceAction113 (SFT_parser[356] + 0)
+#define CALL_parser___ReduceAction113___init(recv) ((parser___ReduceAction113___init_t)CALL((recv), (SFT_parser[356] + 1)))
+#define ID_ReduceAction114 (SFT_parser[357])
+#define COLOR_ReduceAction114 (SFT_parser[358])
+#define INIT_TABLE_POS_ReduceAction114 (SFT_parser[359] + 0)
+#define CALL_parser___ReduceAction114___init(recv) ((parser___ReduceAction114___init_t)CALL((recv), (SFT_parser[359] + 1)))
+#define ID_ReduceAction115 (SFT_parser[360])
+#define COLOR_ReduceAction115 (SFT_parser[361])
+#define INIT_TABLE_POS_ReduceAction115 (SFT_parser[362] + 0)
+#define CALL_parser___ReduceAction115___init(recv) ((parser___ReduceAction115___init_t)CALL((recv), (SFT_parser[362] + 1)))
+#define ID_ReduceAction116 (SFT_parser[363])
+#define COLOR_ReduceAction116 (SFT_parser[364])
+#define INIT_TABLE_POS_ReduceAction116 (SFT_parser[365] + 0)
+#define CALL_parser___ReduceAction116___init(recv) ((parser___ReduceAction116___init_t)CALL((recv), (SFT_parser[365] + 1)))
+#define ID_ReduceAction117 (SFT_parser[366])
+#define COLOR_ReduceAction117 (SFT_parser[367])
+#define INIT_TABLE_POS_ReduceAction117 (SFT_parser[368] + 0)
+#define CALL_parser___ReduceAction117___init(recv) ((parser___ReduceAction117___init_t)CALL((recv), (SFT_parser[368] + 1)))
+#define ID_ReduceAction118 (SFT_parser[369])
+#define COLOR_ReduceAction118 (SFT_parser[370])
+#define INIT_TABLE_POS_ReduceAction118 (SFT_parser[371] + 0)
+#define CALL_parser___ReduceAction118___init(recv) ((parser___ReduceAction118___init_t)CALL((recv), (SFT_parser[371] + 1)))
+#define ID_ReduceAction119 (SFT_parser[372])
+#define COLOR_ReduceAction119 (SFT_parser[373])
+#define INIT_TABLE_POS_ReduceAction119 (SFT_parser[374] + 0)
+#define CALL_parser___ReduceAction119___init(recv) ((parser___ReduceAction119___init_t)CALL((recv), (SFT_parser[374] + 1)))
+#define ID_ReduceAction120 (SFT_parser[375])
+#define COLOR_ReduceAction120 (SFT_parser[376])
+#define INIT_TABLE_POS_ReduceAction120 (SFT_parser[377] + 0)
+#define CALL_parser___ReduceAction120___init(recv) ((parser___ReduceAction120___init_t)CALL((recv), (SFT_parser[377] + 1)))
+#define ID_ReduceAction121 (SFT_parser[378])
+#define COLOR_ReduceAction121 (SFT_parser[379])
+#define INIT_TABLE_POS_ReduceAction121 (SFT_parser[380] + 0)
+#define CALL_parser___ReduceAction121___init(recv) ((parser___ReduceAction121___init_t)CALL((recv), (SFT_parser[380] + 1)))
+#define ID_ReduceAction122 (SFT_parser[381])
+#define COLOR_ReduceAction122 (SFT_parser[382])
+#define INIT_TABLE_POS_ReduceAction122 (SFT_parser[383] + 0)
+#define CALL_parser___ReduceAction122___init(recv) ((parser___ReduceAction122___init_t)CALL((recv), (SFT_parser[383] + 1)))
+#define ID_ReduceAction123 (SFT_parser[384])
+#define COLOR_ReduceAction123 (SFT_parser[385])
+#define INIT_TABLE_POS_ReduceAction123 (SFT_parser[386] + 0)
+#define CALL_parser___ReduceAction123___init(recv) ((parser___ReduceAction123___init_t)CALL((recv), (SFT_parser[386] + 1)))
+#define ID_ReduceAction124 (SFT_parser[387])
+#define COLOR_ReduceAction124 (SFT_parser[388])
+#define INIT_TABLE_POS_ReduceAction124 (SFT_parser[389] + 0)
+#define CALL_parser___ReduceAction124___init(recv) ((parser___ReduceAction124___init_t)CALL((recv), (SFT_parser[389] + 1)))
+#define ID_ReduceAction125 (SFT_parser[390])
+#define COLOR_ReduceAction125 (SFT_parser[391])
+#define INIT_TABLE_POS_ReduceAction125 (SFT_parser[392] + 0)
+#define CALL_parser___ReduceAction125___init(recv) ((parser___ReduceAction125___init_t)CALL((recv), (SFT_parser[392] + 1)))
+#define ID_ReduceAction126 (SFT_parser[393])
+#define COLOR_ReduceAction126 (SFT_parser[394])
+#define INIT_TABLE_POS_ReduceAction126 (SFT_parser[395] + 0)
+#define CALL_parser___ReduceAction126___init(recv) ((parser___ReduceAction126___init_t)CALL((recv), (SFT_parser[395] + 1)))
+#define ID_ReduceAction127 (SFT_parser[396])
+#define COLOR_ReduceAction127 (SFT_parser[397])
+#define INIT_TABLE_POS_ReduceAction127 (SFT_parser[398] + 0)
+#define CALL_parser___ReduceAction127___init(recv) ((parser___ReduceAction127___init_t)CALL((recv), (SFT_parser[398] + 1)))
+#define ID_ReduceAction128 (SFT_parser[399])
+#define COLOR_ReduceAction128 (SFT_parser[400])
+#define INIT_TABLE_POS_ReduceAction128 (SFT_parser[401] + 0)
+#define CALL_parser___ReduceAction128___init(recv) ((parser___ReduceAction128___init_t)CALL((recv), (SFT_parser[401] + 1)))
+#define ID_ReduceAction129 (SFT_parser[402])
+#define COLOR_ReduceAction129 (SFT_parser[403])
+#define INIT_TABLE_POS_ReduceAction129 (SFT_parser[404] + 0)
+#define CALL_parser___ReduceAction129___init(recv) ((parser___ReduceAction129___init_t)CALL((recv), (SFT_parser[404] + 1)))
+#define ID_ReduceAction130 (SFT_parser[405])
+#define COLOR_ReduceAction130 (SFT_parser[406])
+#define INIT_TABLE_POS_ReduceAction130 (SFT_parser[407] + 0)
+#define CALL_parser___ReduceAction130___init(recv) ((parser___ReduceAction130___init_t)CALL((recv), (SFT_parser[407] + 1)))
+#define ID_ReduceAction131 (SFT_parser[408])
+#define COLOR_ReduceAction131 (SFT_parser[409])
+#define INIT_TABLE_POS_ReduceAction131 (SFT_parser[410] + 0)
+#define CALL_parser___ReduceAction131___init(recv) ((parser___ReduceAction131___init_t)CALL((recv), (SFT_parser[410] + 1)))
+#define ID_ReduceAction132 (SFT_parser[411])
+#define COLOR_ReduceAction132 (SFT_parser[412])
+#define INIT_TABLE_POS_ReduceAction132 (SFT_parser[413] + 0)
+#define CALL_parser___ReduceAction132___init(recv) ((parser___ReduceAction132___init_t)CALL((recv), (SFT_parser[413] + 1)))
+#define ID_ReduceAction133 (SFT_parser[414])
+#define COLOR_ReduceAction133 (SFT_parser[415])
+#define INIT_TABLE_POS_ReduceAction133 (SFT_parser[416] + 0)
+#define CALL_parser___ReduceAction133___init(recv) ((parser___ReduceAction133___init_t)CALL((recv), (SFT_parser[416] + 1)))
+#define ID_ReduceAction134 (SFT_parser[417])
+#define COLOR_ReduceAction134 (SFT_parser[418])
+#define INIT_TABLE_POS_ReduceAction134 (SFT_parser[419] + 0)
+#define CALL_parser___ReduceAction134___init(recv) ((parser___ReduceAction134___init_t)CALL((recv), (SFT_parser[419] + 1)))
+#define ID_ReduceAction135 (SFT_parser[420])
+#define COLOR_ReduceAction135 (SFT_parser[421])
+#define INIT_TABLE_POS_ReduceAction135 (SFT_parser[422] + 0)
+#define CALL_parser___ReduceAction135___init(recv) ((parser___ReduceAction135___init_t)CALL((recv), (SFT_parser[422] + 1)))
+#define ID_ReduceAction136 (SFT_parser[423])
+#define COLOR_ReduceAction136 (SFT_parser[424])
+#define INIT_TABLE_POS_ReduceAction136 (SFT_parser[425] + 0)
+#define CALL_parser___ReduceAction136___init(recv) ((parser___ReduceAction136___init_t)CALL((recv), (SFT_parser[425] + 1)))
+#define ID_ReduceAction137 (SFT_parser[426])
+#define COLOR_ReduceAction137 (SFT_parser[427])
+#define INIT_TABLE_POS_ReduceAction137 (SFT_parser[428] + 0)
+#define CALL_parser___ReduceAction137___init(recv) ((parser___ReduceAction137___init_t)CALL((recv), (SFT_parser[428] + 1)))
+#define ID_ReduceAction138 (SFT_parser[429])
+#define COLOR_ReduceAction138 (SFT_parser[430])
+#define INIT_TABLE_POS_ReduceAction138 (SFT_parser[431] + 0)
+#define CALL_parser___ReduceAction138___init(recv) ((parser___ReduceAction138___init_t)CALL((recv), (SFT_parser[431] + 1)))
+#define ID_ReduceAction139 (SFT_parser[432])
+#define COLOR_ReduceAction139 (SFT_parser[433])
+#define INIT_TABLE_POS_ReduceAction139 (SFT_parser[434] + 0)
+#define CALL_parser___ReduceAction139___init(recv) ((parser___ReduceAction139___init_t)CALL((recv), (SFT_parser[434] + 1)))
+#define ID_ReduceAction140 (SFT_parser[435])
+#define COLOR_ReduceAction140 (SFT_parser[436])
+#define INIT_TABLE_POS_ReduceAction140 (SFT_parser[437] + 0)
+#define CALL_parser___ReduceAction140___init(recv) ((parser___ReduceAction140___init_t)CALL((recv), (SFT_parser[437] + 1)))
+#define ID_ReduceAction141 (SFT_parser[438])
+#define COLOR_ReduceAction141 (SFT_parser[439])
+#define INIT_TABLE_POS_ReduceAction141 (SFT_parser[440] + 0)
+#define CALL_parser___ReduceAction141___init(recv) ((parser___ReduceAction141___init_t)CALL((recv), (SFT_parser[440] + 1)))
+#define ID_ReduceAction142 (SFT_parser[441])
+#define COLOR_ReduceAction142 (SFT_parser[442])
+#define INIT_TABLE_POS_ReduceAction142 (SFT_parser[443] + 0)
+#define CALL_parser___ReduceAction142___init(recv) ((parser___ReduceAction142___init_t)CALL((recv), (SFT_parser[443] + 1)))
+#define ID_ReduceAction143 (SFT_parser[444])
+#define COLOR_ReduceAction143 (SFT_parser[445])
+#define INIT_TABLE_POS_ReduceAction143 (SFT_parser[446] + 0)
+#define CALL_parser___ReduceAction143___init(recv) ((parser___ReduceAction143___init_t)CALL((recv), (SFT_parser[446] + 1)))
+#define ID_ReduceAction144 (SFT_parser[447])
+#define COLOR_ReduceAction144 (SFT_parser[448])
+#define INIT_TABLE_POS_ReduceAction144 (SFT_parser[449] + 0)
+#define CALL_parser___ReduceAction144___init(recv) ((parser___ReduceAction144___init_t)CALL((recv), (SFT_parser[449] + 1)))
+#define ID_ReduceAction145 (SFT_parser[450])
+#define COLOR_ReduceAction145 (SFT_parser[451])
+#define INIT_TABLE_POS_ReduceAction145 (SFT_parser[452] + 0)
+#define CALL_parser___ReduceAction145___init(recv) ((parser___ReduceAction145___init_t)CALL((recv), (SFT_parser[452] + 1)))
+#define ID_ReduceAction146 (SFT_parser[453])
+#define COLOR_ReduceAction146 (SFT_parser[454])
+#define INIT_TABLE_POS_ReduceAction146 (SFT_parser[455] + 0)
+#define CALL_parser___ReduceAction146___init(recv) ((parser___ReduceAction146___init_t)CALL((recv), (SFT_parser[455] + 1)))
+#define ID_ReduceAction147 (SFT_parser[456])
+#define COLOR_ReduceAction147 (SFT_parser[457])
+#define INIT_TABLE_POS_ReduceAction147 (SFT_parser[458] + 0)
+#define CALL_parser___ReduceAction147___init(recv) ((parser___ReduceAction147___init_t)CALL((recv), (SFT_parser[458] + 1)))
+#define ID_ReduceAction148 (SFT_parser[459])
+#define COLOR_ReduceAction148 (SFT_parser[460])
+#define INIT_TABLE_POS_ReduceAction148 (SFT_parser[461] + 0)
+#define CALL_parser___ReduceAction148___init(recv) ((parser___ReduceAction148___init_t)CALL((recv), (SFT_parser[461] + 1)))
+#define ID_ReduceAction149 (SFT_parser[462])
+#define COLOR_ReduceAction149 (SFT_parser[463])
+#define INIT_TABLE_POS_ReduceAction149 (SFT_parser[464] + 0)
+#define CALL_parser___ReduceAction149___init(recv) ((parser___ReduceAction149___init_t)CALL((recv), (SFT_parser[464] + 1)))
+#define ID_ReduceAction150 (SFT_parser[465])
+#define COLOR_ReduceAction150 (SFT_parser[466])
+#define INIT_TABLE_POS_ReduceAction150 (SFT_parser[467] + 0)
+#define CALL_parser___ReduceAction150___init(recv) ((parser___ReduceAction150___init_t)CALL((recv), (SFT_parser[467] + 1)))
+#define ID_ReduceAction151 (SFT_parser[468])
+#define COLOR_ReduceAction151 (SFT_parser[469])
+#define INIT_TABLE_POS_ReduceAction151 (SFT_parser[470] + 0)
+#define CALL_parser___ReduceAction151___init(recv) ((parser___ReduceAction151___init_t)CALL((recv), (SFT_parser[470] + 1)))
+#define ID_ReduceAction152 (SFT_parser[471])
+#define COLOR_ReduceAction152 (SFT_parser[472])
+#define INIT_TABLE_POS_ReduceAction152 (SFT_parser[473] + 0)
+#define CALL_parser___ReduceAction152___init(recv) ((parser___ReduceAction152___init_t)CALL((recv), (SFT_parser[473] + 1)))
+#define ID_ReduceAction153 (SFT_parser[474])
+#define COLOR_ReduceAction153 (SFT_parser[475])
+#define INIT_TABLE_POS_ReduceAction153 (SFT_parser[476] + 0)
+#define CALL_parser___ReduceAction153___init(recv) ((parser___ReduceAction153___init_t)CALL((recv), (SFT_parser[476] + 1)))
+#define ID_ReduceAction154 (SFT_parser[477])
+#define COLOR_ReduceAction154 (SFT_parser[478])
+#define INIT_TABLE_POS_ReduceAction154 (SFT_parser[479] + 0)
+#define CALL_parser___ReduceAction154___init(recv) ((parser___ReduceAction154___init_t)CALL((recv), (SFT_parser[479] + 1)))
+#define ID_ReduceAction155 (SFT_parser[480])
+#define COLOR_ReduceAction155 (SFT_parser[481])
+#define INIT_TABLE_POS_ReduceAction155 (SFT_parser[482] + 0)
+#define CALL_parser___ReduceAction155___init(recv) ((parser___ReduceAction155___init_t)CALL((recv), (SFT_parser[482] + 1)))
+#define ID_ReduceAction156 (SFT_parser[483])
+#define COLOR_ReduceAction156 (SFT_parser[484])
+#define INIT_TABLE_POS_ReduceAction156 (SFT_parser[485] + 0)
+#define CALL_parser___ReduceAction156___init(recv) ((parser___ReduceAction156___init_t)CALL((recv), (SFT_parser[485] + 1)))
+#define ID_ReduceAction157 (SFT_parser[486])
+#define COLOR_ReduceAction157 (SFT_parser[487])
+#define INIT_TABLE_POS_ReduceAction157 (SFT_parser[488] + 0)
+#define CALL_parser___ReduceAction157___init(recv) ((parser___ReduceAction157___init_t)CALL((recv), (SFT_parser[488] + 1)))
+#define ID_ReduceAction158 (SFT_parser[489])
+#define COLOR_ReduceAction158 (SFT_parser[490])
+#define INIT_TABLE_POS_ReduceAction158 (SFT_parser[491] + 0)
+#define CALL_parser___ReduceAction158___init(recv) ((parser___ReduceAction158___init_t)CALL((recv), (SFT_parser[491] + 1)))
+#define ID_ReduceAction159 (SFT_parser[492])
+#define COLOR_ReduceAction159 (SFT_parser[493])
+#define INIT_TABLE_POS_ReduceAction159 (SFT_parser[494] + 0)
+#define CALL_parser___ReduceAction159___init(recv) ((parser___ReduceAction159___init_t)CALL((recv), (SFT_parser[494] + 1)))
+#define ID_ReduceAction160 (SFT_parser[495])
+#define COLOR_ReduceAction160 (SFT_parser[496])
+#define INIT_TABLE_POS_ReduceAction160 (SFT_parser[497] + 0)
+#define CALL_parser___ReduceAction160___init(recv) ((parser___ReduceAction160___init_t)CALL((recv), (SFT_parser[497] + 1)))
+#define ID_ReduceAction161 (SFT_parser[498])
+#define COLOR_ReduceAction161 (SFT_parser[499])
+#define INIT_TABLE_POS_ReduceAction161 (SFT_parser[500] + 0)
+#define CALL_parser___ReduceAction161___init(recv) ((parser___ReduceAction161___init_t)CALL((recv), (SFT_parser[500] + 1)))
+#define ID_ReduceAction162 (SFT_parser[501])
+#define COLOR_ReduceAction162 (SFT_parser[502])
+#define INIT_TABLE_POS_ReduceAction162 (SFT_parser[503] + 0)
+#define CALL_parser___ReduceAction162___init(recv) ((parser___ReduceAction162___init_t)CALL((recv), (SFT_parser[503] + 1)))
+#define ID_ReduceAction163 (SFT_parser[504])
+#define COLOR_ReduceAction163 (SFT_parser[505])
+#define INIT_TABLE_POS_ReduceAction163 (SFT_parser[506] + 0)
+#define CALL_parser___ReduceAction163___init(recv) ((parser___ReduceAction163___init_t)CALL((recv), (SFT_parser[506] + 1)))
+#define ID_ReduceAction164 (SFT_parser[507])
+#define COLOR_ReduceAction164 (SFT_parser[508])
+#define INIT_TABLE_POS_ReduceAction164 (SFT_parser[509] + 0)
+#define CALL_parser___ReduceAction164___init(recv) ((parser___ReduceAction164___init_t)CALL((recv), (SFT_parser[509] + 1)))
+#define ID_ReduceAction165 (SFT_parser[510])
+#define COLOR_ReduceAction165 (SFT_parser[511])
+#define INIT_TABLE_POS_ReduceAction165 (SFT_parser[512] + 0)
+#define CALL_parser___ReduceAction165___init(recv) ((parser___ReduceAction165___init_t)CALL((recv), (SFT_parser[512] + 1)))
+#define ID_ReduceAction166 (SFT_parser[513])
+#define COLOR_ReduceAction166 (SFT_parser[514])
+#define INIT_TABLE_POS_ReduceAction166 (SFT_parser[515] + 0)
+#define CALL_parser___ReduceAction166___init(recv) ((parser___ReduceAction166___init_t)CALL((recv), (SFT_parser[515] + 1)))
+#define ID_ReduceAction167 (SFT_parser[516])
+#define COLOR_ReduceAction167 (SFT_parser[517])
+#define INIT_TABLE_POS_ReduceAction167 (SFT_parser[518] + 0)
+#define CALL_parser___ReduceAction167___init(recv) ((parser___ReduceAction167___init_t)CALL((recv), (SFT_parser[518] + 1)))
+#define ID_ReduceAction168 (SFT_parser[519])
+#define COLOR_ReduceAction168 (SFT_parser[520])
+#define INIT_TABLE_POS_ReduceAction168 (SFT_parser[521] + 0)
+#define CALL_parser___ReduceAction168___init(recv) ((parser___ReduceAction168___init_t)CALL((recv), (SFT_parser[521] + 1)))
+#define ID_ReduceAction169 (SFT_parser[522])
+#define COLOR_ReduceAction169 (SFT_parser[523])
+#define INIT_TABLE_POS_ReduceAction169 (SFT_parser[524] + 0)
+#define CALL_parser___ReduceAction169___init(recv) ((parser___ReduceAction169___init_t)CALL((recv), (SFT_parser[524] + 1)))
+#define ID_ReduceAction170 (SFT_parser[525])
+#define COLOR_ReduceAction170 (SFT_parser[526])
+#define INIT_TABLE_POS_ReduceAction170 (SFT_parser[527] + 0)
+#define CALL_parser___ReduceAction170___init(recv) ((parser___ReduceAction170___init_t)CALL((recv), (SFT_parser[527] + 1)))
+#define ID_ReduceAction171 (SFT_parser[528])
+#define COLOR_ReduceAction171 (SFT_parser[529])
+#define INIT_TABLE_POS_ReduceAction171 (SFT_parser[530] + 0)
+#define CALL_parser___ReduceAction171___init(recv) ((parser___ReduceAction171___init_t)CALL((recv), (SFT_parser[530] + 1)))
+#define ID_ReduceAction172 (SFT_parser[531])
+#define COLOR_ReduceAction172 (SFT_parser[532])
+#define INIT_TABLE_POS_ReduceAction172 (SFT_parser[533] + 0)
+#define CALL_parser___ReduceAction172___init(recv) ((parser___ReduceAction172___init_t)CALL((recv), (SFT_parser[533] + 1)))
+#define ID_ReduceAction173 (SFT_parser[534])
+#define COLOR_ReduceAction173 (SFT_parser[535])
+#define INIT_TABLE_POS_ReduceAction173 (SFT_parser[536] + 0)
+#define CALL_parser___ReduceAction173___init(recv) ((parser___ReduceAction173___init_t)CALL((recv), (SFT_parser[536] + 1)))
+#define ID_ReduceAction174 (SFT_parser[537])
+#define COLOR_ReduceAction174 (SFT_parser[538])
+#define INIT_TABLE_POS_ReduceAction174 (SFT_parser[539] + 0)
+#define CALL_parser___ReduceAction174___init(recv) ((parser___ReduceAction174___init_t)CALL((recv), (SFT_parser[539] + 1)))
+#define ID_ReduceAction175 (SFT_parser[540])
+#define COLOR_ReduceAction175 (SFT_parser[541])
+#define INIT_TABLE_POS_ReduceAction175 (SFT_parser[542] + 0)
+#define CALL_parser___ReduceAction175___init(recv) ((parser___ReduceAction175___init_t)CALL((recv), (SFT_parser[542] + 1)))
+#define ID_ReduceAction176 (SFT_parser[543])
+#define COLOR_ReduceAction176 (SFT_parser[544])
+#define INIT_TABLE_POS_ReduceAction176 (SFT_parser[545] + 0)
+#define CALL_parser___ReduceAction176___init(recv) ((parser___ReduceAction176___init_t)CALL((recv), (SFT_parser[545] + 1)))
+#define ID_ReduceAction177 (SFT_parser[546])
+#define COLOR_ReduceAction177 (SFT_parser[547])
+#define INIT_TABLE_POS_ReduceAction177 (SFT_parser[548] + 0)
+#define CALL_parser___ReduceAction177___init(recv) ((parser___ReduceAction177___init_t)CALL((recv), (SFT_parser[548] + 1)))
+#define ID_ReduceAction178 (SFT_parser[549])
+#define COLOR_ReduceAction178 (SFT_parser[550])
+#define INIT_TABLE_POS_ReduceAction178 (SFT_parser[551] + 0)
+#define CALL_parser___ReduceAction178___init(recv) ((parser___ReduceAction178___init_t)CALL((recv), (SFT_parser[551] + 1)))
+#define ID_ReduceAction179 (SFT_parser[552])
+#define COLOR_ReduceAction179 (SFT_parser[553])
+#define INIT_TABLE_POS_ReduceAction179 (SFT_parser[554] + 0)
+#define CALL_parser___ReduceAction179___init(recv) ((parser___ReduceAction179___init_t)CALL((recv), (SFT_parser[554] + 1)))
+#define ID_ReduceAction180 (SFT_parser[555])
+#define COLOR_ReduceAction180 (SFT_parser[556])
+#define INIT_TABLE_POS_ReduceAction180 (SFT_parser[557] + 0)
+#define CALL_parser___ReduceAction180___init(recv) ((parser___ReduceAction180___init_t)CALL((recv), (SFT_parser[557] + 1)))
+#define ID_ReduceAction181 (SFT_parser[558])
+#define COLOR_ReduceAction181 (SFT_parser[559])
+#define INIT_TABLE_POS_ReduceAction181 (SFT_parser[560] + 0)
+#define CALL_parser___ReduceAction181___init(recv) ((parser___ReduceAction181___init_t)CALL((recv), (SFT_parser[560] + 1)))
+#define ID_ReduceAction182 (SFT_parser[561])
+#define COLOR_ReduceAction182 (SFT_parser[562])
+#define INIT_TABLE_POS_ReduceAction182 (SFT_parser[563] + 0)
+#define CALL_parser___ReduceAction182___init(recv) ((parser___ReduceAction182___init_t)CALL((recv), (SFT_parser[563] + 1)))
+#define ID_ReduceAction183 (SFT_parser[564])
+#define COLOR_ReduceAction183 (SFT_parser[565])
+#define INIT_TABLE_POS_ReduceAction183 (SFT_parser[566] + 0)
+#define CALL_parser___ReduceAction183___init(recv) ((parser___ReduceAction183___init_t)CALL((recv), (SFT_parser[566] + 1)))
+#define ID_ReduceAction184 (SFT_parser[567])
+#define COLOR_ReduceAction184 (SFT_parser[568])
+#define INIT_TABLE_POS_ReduceAction184 (SFT_parser[569] + 0)
+#define CALL_parser___ReduceAction184___init(recv) ((parser___ReduceAction184___init_t)CALL((recv), (SFT_parser[569] + 1)))
+#define ID_ReduceAction185 (SFT_parser[570])
+#define COLOR_ReduceAction185 (SFT_parser[571])
+#define INIT_TABLE_POS_ReduceAction185 (SFT_parser[572] + 0)
+#define CALL_parser___ReduceAction185___init(recv) ((parser___ReduceAction185___init_t)CALL((recv), (SFT_parser[572] + 1)))
+#define ID_ReduceAction186 (SFT_parser[573])
+#define COLOR_ReduceAction186 (SFT_parser[574])
+#define INIT_TABLE_POS_ReduceAction186 (SFT_parser[575] + 0)
+#define CALL_parser___ReduceAction186___init(recv) ((parser___ReduceAction186___init_t)CALL((recv), (SFT_parser[575] + 1)))
+#define ID_ReduceAction187 (SFT_parser[576])
+#define COLOR_ReduceAction187 (SFT_parser[577])
+#define INIT_TABLE_POS_ReduceAction187 (SFT_parser[578] + 0)
+#define CALL_parser___ReduceAction187___init(recv) ((parser___ReduceAction187___init_t)CALL((recv), (SFT_parser[578] + 1)))
+#define ID_ReduceAction188 (SFT_parser[579])
+#define COLOR_ReduceAction188 (SFT_parser[580])
+#define INIT_TABLE_POS_ReduceAction188 (SFT_parser[581] + 0)
+#define CALL_parser___ReduceAction188___init(recv) ((parser___ReduceAction188___init_t)CALL((recv), (SFT_parser[581] + 1)))
+#define ID_ReduceAction189 (SFT_parser[582])
+#define COLOR_ReduceAction189 (SFT_parser[583])
+#define INIT_TABLE_POS_ReduceAction189 (SFT_parser[584] + 0)
+#define CALL_parser___ReduceAction189___init(recv) ((parser___ReduceAction189___init_t)CALL((recv), (SFT_parser[584] + 1)))
+#define ID_ReduceAction190 (SFT_parser[585])
+#define COLOR_ReduceAction190 (SFT_parser[586])
+#define INIT_TABLE_POS_ReduceAction190 (SFT_parser[587] + 0)
+#define CALL_parser___ReduceAction190___init(recv) ((parser___ReduceAction190___init_t)CALL((recv), (SFT_parser[587] + 1)))
+#define ID_ReduceAction191 (SFT_parser[588])
+#define COLOR_ReduceAction191 (SFT_parser[589])
+#define INIT_TABLE_POS_ReduceAction191 (SFT_parser[590] + 0)
+#define CALL_parser___ReduceAction191___init(recv) ((parser___ReduceAction191___init_t)CALL((recv), (SFT_parser[590] + 1)))
+#define ID_ReduceAction192 (SFT_parser[591])
+#define COLOR_ReduceAction192 (SFT_parser[592])
+#define INIT_TABLE_POS_ReduceAction192 (SFT_parser[593] + 0)
+#define CALL_parser___ReduceAction192___init(recv) ((parser___ReduceAction192___init_t)CALL((recv), (SFT_parser[593] + 1)))
+#define ID_ReduceAction193 (SFT_parser[594])
+#define COLOR_ReduceAction193 (SFT_parser[595])
+#define INIT_TABLE_POS_ReduceAction193 (SFT_parser[596] + 0)
+#define CALL_parser___ReduceAction193___init(recv) ((parser___ReduceAction193___init_t)CALL((recv), (SFT_parser[596] + 1)))
+#define ID_ReduceAction194 (SFT_parser[597])
+#define COLOR_ReduceAction194 (SFT_parser[598])
+#define INIT_TABLE_POS_ReduceAction194 (SFT_parser[599] + 0)
+#define CALL_parser___ReduceAction194___init(recv) ((parser___ReduceAction194___init_t)CALL((recv), (SFT_parser[599] + 1)))
+#define ID_ReduceAction195 (SFT_parser[600])
+#define COLOR_ReduceAction195 (SFT_parser[601])
+#define INIT_TABLE_POS_ReduceAction195 (SFT_parser[602] + 0)
+#define CALL_parser___ReduceAction195___init(recv) ((parser___ReduceAction195___init_t)CALL((recv), (SFT_parser[602] + 1)))
+#define ID_ReduceAction196 (SFT_parser[603])
+#define COLOR_ReduceAction196 (SFT_parser[604])
+#define INIT_TABLE_POS_ReduceAction196 (SFT_parser[605] + 0)
+#define CALL_parser___ReduceAction196___init(recv) ((parser___ReduceAction196___init_t)CALL((recv), (SFT_parser[605] + 1)))
+#define ID_ReduceAction197 (SFT_parser[606])
+#define COLOR_ReduceAction197 (SFT_parser[607])
+#define INIT_TABLE_POS_ReduceAction197 (SFT_parser[608] + 0)
+#define CALL_parser___ReduceAction197___init(recv) ((parser___ReduceAction197___init_t)CALL((recv), (SFT_parser[608] + 1)))
+#define ID_ReduceAction198 (SFT_parser[609])
+#define COLOR_ReduceAction198 (SFT_parser[610])
+#define INIT_TABLE_POS_ReduceAction198 (SFT_parser[611] + 0)
+#define CALL_parser___ReduceAction198___init(recv) ((parser___ReduceAction198___init_t)CALL((recv), (SFT_parser[611] + 1)))
+#define ID_ReduceAction199 (SFT_parser[612])
+#define COLOR_ReduceAction199 (SFT_parser[613])
+#define INIT_TABLE_POS_ReduceAction199 (SFT_parser[614] + 0)
+#define CALL_parser___ReduceAction199___init(recv) ((parser___ReduceAction199___init_t)CALL((recv), (SFT_parser[614] + 1)))
+#define ID_ReduceAction200 (SFT_parser[615])
+#define COLOR_ReduceAction200 (SFT_parser[616])
+#define INIT_TABLE_POS_ReduceAction200 (SFT_parser[617] + 0)
+#define CALL_parser___ReduceAction200___init(recv) ((parser___ReduceAction200___init_t)CALL((recv), (SFT_parser[617] + 1)))
+#define ID_ReduceAction201 (SFT_parser[618])
+#define COLOR_ReduceAction201 (SFT_parser[619])
+#define INIT_TABLE_POS_ReduceAction201 (SFT_parser[620] + 0)
+#define CALL_parser___ReduceAction201___init(recv) ((parser___ReduceAction201___init_t)CALL((recv), (SFT_parser[620] + 1)))
+#define ID_ReduceAction202 (SFT_parser[621])
+#define COLOR_ReduceAction202 (SFT_parser[622])
+#define INIT_TABLE_POS_ReduceAction202 (SFT_parser[623] + 0)
+#define CALL_parser___ReduceAction202___init(recv) ((parser___ReduceAction202___init_t)CALL((recv), (SFT_parser[623] + 1)))
+#define ID_ReduceAction203 (SFT_parser[624])
+#define COLOR_ReduceAction203 (SFT_parser[625])
+#define INIT_TABLE_POS_ReduceAction203 (SFT_parser[626] + 0)
+#define CALL_parser___ReduceAction203___init(recv) ((parser___ReduceAction203___init_t)CALL((recv), (SFT_parser[626] + 1)))
+#define ID_ReduceAction204 (SFT_parser[627])
+#define COLOR_ReduceAction204 (SFT_parser[628])
+#define INIT_TABLE_POS_ReduceAction204 (SFT_parser[629] + 0)
+#define CALL_parser___ReduceAction204___init(recv) ((parser___ReduceAction204___init_t)CALL((recv), (SFT_parser[629] + 1)))
+#define ID_ReduceAction205 (SFT_parser[630])
+#define COLOR_ReduceAction205 (SFT_parser[631])
+#define INIT_TABLE_POS_ReduceAction205 (SFT_parser[632] + 0)
+#define CALL_parser___ReduceAction205___init(recv) ((parser___ReduceAction205___init_t)CALL((recv), (SFT_parser[632] + 1)))
+#define ID_ReduceAction206 (SFT_parser[633])
+#define COLOR_ReduceAction206 (SFT_parser[634])
+#define INIT_TABLE_POS_ReduceAction206 (SFT_parser[635] + 0)
+#define CALL_parser___ReduceAction206___init(recv) ((parser___ReduceAction206___init_t)CALL((recv), (SFT_parser[635] + 1)))
+#define ID_ReduceAction207 (SFT_parser[636])
+#define COLOR_ReduceAction207 (SFT_parser[637])
+#define INIT_TABLE_POS_ReduceAction207 (SFT_parser[638] + 0)
+#define CALL_parser___ReduceAction207___init(recv) ((parser___ReduceAction207___init_t)CALL((recv), (SFT_parser[638] + 1)))
+#define ID_ReduceAction208 (SFT_parser[639])
+#define COLOR_ReduceAction208 (SFT_parser[640])
+#define INIT_TABLE_POS_ReduceAction208 (SFT_parser[641] + 0)
+#define CALL_parser___ReduceAction208___init(recv) ((parser___ReduceAction208___init_t)CALL((recv), (SFT_parser[641] + 1)))
+#define ID_ReduceAction209 (SFT_parser[642])
+#define COLOR_ReduceAction209 (SFT_parser[643])
+#define INIT_TABLE_POS_ReduceAction209 (SFT_parser[644] + 0)
+#define CALL_parser___ReduceAction209___init(recv) ((parser___ReduceAction209___init_t)CALL((recv), (SFT_parser[644] + 1)))
+#define ID_ReduceAction210 (SFT_parser[645])
+#define COLOR_ReduceAction210 (SFT_parser[646])
+#define INIT_TABLE_POS_ReduceAction210 (SFT_parser[647] + 0)
+#define CALL_parser___ReduceAction210___init(recv) ((parser___ReduceAction210___init_t)CALL((recv), (SFT_parser[647] + 1)))
+#define ID_ReduceAction211 (SFT_parser[648])
+#define COLOR_ReduceAction211 (SFT_parser[649])
+#define INIT_TABLE_POS_ReduceAction211 (SFT_parser[650] + 0)
+#define CALL_parser___ReduceAction211___init(recv) ((parser___ReduceAction211___init_t)CALL((recv), (SFT_parser[650] + 1)))
+#define ID_ReduceAction212 (SFT_parser[651])
+#define COLOR_ReduceAction212 (SFT_parser[652])
+#define INIT_TABLE_POS_ReduceAction212 (SFT_parser[653] + 0)
+#define CALL_parser___ReduceAction212___init(recv) ((parser___ReduceAction212___init_t)CALL((recv), (SFT_parser[653] + 1)))
+#define ID_ReduceAction213 (SFT_parser[654])
+#define COLOR_ReduceAction213 (SFT_parser[655])
+#define INIT_TABLE_POS_ReduceAction213 (SFT_parser[656] + 0)
+#define CALL_parser___ReduceAction213___init(recv) ((parser___ReduceAction213___init_t)CALL((recv), (SFT_parser[656] + 1)))
+#define ID_ReduceAction214 (SFT_parser[657])
+#define COLOR_ReduceAction214 (SFT_parser[658])
+#define INIT_TABLE_POS_ReduceAction214 (SFT_parser[659] + 0)
+#define CALL_parser___ReduceAction214___init(recv) ((parser___ReduceAction214___init_t)CALL((recv), (SFT_parser[659] + 1)))
+#define ID_ReduceAction215 (SFT_parser[660])
+#define COLOR_ReduceAction215 (SFT_parser[661])
+#define INIT_TABLE_POS_ReduceAction215 (SFT_parser[662] + 0)
+#define CALL_parser___ReduceAction215___init(recv) ((parser___ReduceAction215___init_t)CALL((recv), (SFT_parser[662] + 1)))
+#define ID_ReduceAction216 (SFT_parser[663])
+#define COLOR_ReduceAction216 (SFT_parser[664])
+#define INIT_TABLE_POS_ReduceAction216 (SFT_parser[665] + 0)
+#define CALL_parser___ReduceAction216___init(recv) ((parser___ReduceAction216___init_t)CALL((recv), (SFT_parser[665] + 1)))
+#define ID_ReduceAction217 (SFT_parser[666])
+#define COLOR_ReduceAction217 (SFT_parser[667])
+#define INIT_TABLE_POS_ReduceAction217 (SFT_parser[668] + 0)
+#define CALL_parser___ReduceAction217___init(recv) ((parser___ReduceAction217___init_t)CALL((recv), (SFT_parser[668] + 1)))
+#define ID_ReduceAction218 (SFT_parser[669])
+#define COLOR_ReduceAction218 (SFT_parser[670])
+#define INIT_TABLE_POS_ReduceAction218 (SFT_parser[671] + 0)
+#define CALL_parser___ReduceAction218___init(recv) ((parser___ReduceAction218___init_t)CALL((recv), (SFT_parser[671] + 1)))
+#define ID_ReduceAction219 (SFT_parser[672])
+#define COLOR_ReduceAction219 (SFT_parser[673])
+#define INIT_TABLE_POS_ReduceAction219 (SFT_parser[674] + 0)
+#define CALL_parser___ReduceAction219___init(recv) ((parser___ReduceAction219___init_t)CALL((recv), (SFT_parser[674] + 1)))
+#define ID_ReduceAction220 (SFT_parser[675])
+#define COLOR_ReduceAction220 (SFT_parser[676])
+#define INIT_TABLE_POS_ReduceAction220 (SFT_parser[677] + 0)
+#define CALL_parser___ReduceAction220___init(recv) ((parser___ReduceAction220___init_t)CALL((recv), (SFT_parser[677] + 1)))
+#define ID_ReduceAction221 (SFT_parser[678])
+#define COLOR_ReduceAction221 (SFT_parser[679])
+#define INIT_TABLE_POS_ReduceAction221 (SFT_parser[680] + 0)
+#define CALL_parser___ReduceAction221___init(recv) ((parser___ReduceAction221___init_t)CALL((recv), (SFT_parser[680] + 1)))
+#define ID_ReduceAction222 (SFT_parser[681])
+#define COLOR_ReduceAction222 (SFT_parser[682])
+#define INIT_TABLE_POS_ReduceAction222 (SFT_parser[683] + 0)
+#define CALL_parser___ReduceAction222___init(recv) ((parser___ReduceAction222___init_t)CALL((recv), (SFT_parser[683] + 1)))
+#define ID_ReduceAction223 (SFT_parser[684])
+#define COLOR_ReduceAction223 (SFT_parser[685])
+#define INIT_TABLE_POS_ReduceAction223 (SFT_parser[686] + 0)
+#define CALL_parser___ReduceAction223___init(recv) ((parser___ReduceAction223___init_t)CALL((recv), (SFT_parser[686] + 1)))
+#define ID_ReduceAction224 (SFT_parser[687])
+#define COLOR_ReduceAction224 (SFT_parser[688])
+#define INIT_TABLE_POS_ReduceAction224 (SFT_parser[689] + 0)
+#define CALL_parser___ReduceAction224___init(recv) ((parser___ReduceAction224___init_t)CALL((recv), (SFT_parser[689] + 1)))
+#define ID_ReduceAction225 (SFT_parser[690])
+#define COLOR_ReduceAction225 (SFT_parser[691])
+#define INIT_TABLE_POS_ReduceAction225 (SFT_parser[692] + 0)
+#define CALL_parser___ReduceAction225___init(recv) ((parser___ReduceAction225___init_t)CALL((recv), (SFT_parser[692] + 1)))
+#define ID_ReduceAction226 (SFT_parser[693])
+#define COLOR_ReduceAction226 (SFT_parser[694])
+#define INIT_TABLE_POS_ReduceAction226 (SFT_parser[695] + 0)
+#define CALL_parser___ReduceAction226___init(recv) ((parser___ReduceAction226___init_t)CALL((recv), (SFT_parser[695] + 1)))
+#define ID_ReduceAction227 (SFT_parser[696])
+#define COLOR_ReduceAction227 (SFT_parser[697])
+#define INIT_TABLE_POS_ReduceAction227 (SFT_parser[698] + 0)
+#define CALL_parser___ReduceAction227___init(recv) ((parser___ReduceAction227___init_t)CALL((recv), (SFT_parser[698] + 1)))
+#define ID_ReduceAction228 (SFT_parser[699])
+#define COLOR_ReduceAction228 (SFT_parser[700])
+#define INIT_TABLE_POS_ReduceAction228 (SFT_parser[701] + 0)
+#define CALL_parser___ReduceAction228___init(recv) ((parser___ReduceAction228___init_t)CALL((recv), (SFT_parser[701] + 1)))
+#define ID_ReduceAction229 (SFT_parser[702])
+#define COLOR_ReduceAction229 (SFT_parser[703])
+#define INIT_TABLE_POS_ReduceAction229 (SFT_parser[704] + 0)
+#define CALL_parser___ReduceAction229___init(recv) ((parser___ReduceAction229___init_t)CALL((recv), (SFT_parser[704] + 1)))
+#define ID_ReduceAction230 (SFT_parser[705])
+#define COLOR_ReduceAction230 (SFT_parser[706])
+#define INIT_TABLE_POS_ReduceAction230 (SFT_parser[707] + 0)
+#define CALL_parser___ReduceAction230___init(recv) ((parser___ReduceAction230___init_t)CALL((recv), (SFT_parser[707] + 1)))
+#define ID_ReduceAction231 (SFT_parser[708])
+#define COLOR_ReduceAction231 (SFT_parser[709])
+#define INIT_TABLE_POS_ReduceAction231 (SFT_parser[710] + 0)
+#define CALL_parser___ReduceAction231___init(recv) ((parser___ReduceAction231___init_t)CALL((recv), (SFT_parser[710] + 1)))
+#define ID_ReduceAction232 (SFT_parser[711])
+#define COLOR_ReduceAction232 (SFT_parser[712])
+#define INIT_TABLE_POS_ReduceAction232 (SFT_parser[713] + 0)
+#define CALL_parser___ReduceAction232___init(recv) ((parser___ReduceAction232___init_t)CALL((recv), (SFT_parser[713] + 1)))
+#define ID_ReduceAction233 (SFT_parser[714])
+#define COLOR_ReduceAction233 (SFT_parser[715])
+#define INIT_TABLE_POS_ReduceAction233 (SFT_parser[716] + 0)
+#define CALL_parser___ReduceAction233___init(recv) ((parser___ReduceAction233___init_t)CALL((recv), (SFT_parser[716] + 1)))
+#define ID_ReduceAction234 (SFT_parser[717])
+#define COLOR_ReduceAction234 (SFT_parser[718])
+#define INIT_TABLE_POS_ReduceAction234 (SFT_parser[719] + 0)
+#define CALL_parser___ReduceAction234___init(recv) ((parser___ReduceAction234___init_t)CALL((recv), (SFT_parser[719] + 1)))
+#define ID_ReduceAction235 (SFT_parser[720])
+#define COLOR_ReduceAction235 (SFT_parser[721])
+#define INIT_TABLE_POS_ReduceAction235 (SFT_parser[722] + 0)
+#define CALL_parser___ReduceAction235___init(recv) ((parser___ReduceAction235___init_t)CALL((recv), (SFT_parser[722] + 1)))
+#define ID_ReduceAction236 (SFT_parser[723])
+#define COLOR_ReduceAction236 (SFT_parser[724])
+#define INIT_TABLE_POS_ReduceAction236 (SFT_parser[725] + 0)
+#define CALL_parser___ReduceAction236___init(recv) ((parser___ReduceAction236___init_t)CALL((recv), (SFT_parser[725] + 1)))
+#define ID_ReduceAction237 (SFT_parser[726])
+#define COLOR_ReduceAction237 (SFT_parser[727])
+#define INIT_TABLE_POS_ReduceAction237 (SFT_parser[728] + 0)
+#define CALL_parser___ReduceAction237___init(recv) ((parser___ReduceAction237___init_t)CALL((recv), (SFT_parser[728] + 1)))
+#define ID_ReduceAction238 (SFT_parser[729])
+#define COLOR_ReduceAction238 (SFT_parser[730])
+#define INIT_TABLE_POS_ReduceAction238 (SFT_parser[731] + 0)
+#define CALL_parser___ReduceAction238___init(recv) ((parser___ReduceAction238___init_t)CALL((recv), (SFT_parser[731] + 1)))
+#define ID_ReduceAction239 (SFT_parser[732])
+#define COLOR_ReduceAction239 (SFT_parser[733])
+#define INIT_TABLE_POS_ReduceAction239 (SFT_parser[734] + 0)
+#define CALL_parser___ReduceAction239___init(recv) ((parser___ReduceAction239___init_t)CALL((recv), (SFT_parser[734] + 1)))
+#define ID_ReduceAction240 (SFT_parser[735])
+#define COLOR_ReduceAction240 (SFT_parser[736])
+#define INIT_TABLE_POS_ReduceAction240 (SFT_parser[737] + 0)
+#define CALL_parser___ReduceAction240___init(recv) ((parser___ReduceAction240___init_t)CALL((recv), (SFT_parser[737] + 1)))
+#define ID_ReduceAction241 (SFT_parser[738])
+#define COLOR_ReduceAction241 (SFT_parser[739])
+#define INIT_TABLE_POS_ReduceAction241 (SFT_parser[740] + 0)
+#define CALL_parser___ReduceAction241___init(recv) ((parser___ReduceAction241___init_t)CALL((recv), (SFT_parser[740] + 1)))
+#define ID_ReduceAction242 (SFT_parser[741])
+#define COLOR_ReduceAction242 (SFT_parser[742])
+#define INIT_TABLE_POS_ReduceAction242 (SFT_parser[743] + 0)
+#define CALL_parser___ReduceAction242___init(recv) ((parser___ReduceAction242___init_t)CALL((recv), (SFT_parser[743] + 1)))
+#define ID_ReduceAction243 (SFT_parser[744])
+#define COLOR_ReduceAction243 (SFT_parser[745])
+#define INIT_TABLE_POS_ReduceAction243 (SFT_parser[746] + 0)
+#define CALL_parser___ReduceAction243___init(recv) ((parser___ReduceAction243___init_t)CALL((recv), (SFT_parser[746] + 1)))
+#define ID_ReduceAction244 (SFT_parser[747])
+#define COLOR_ReduceAction244 (SFT_parser[748])
+#define INIT_TABLE_POS_ReduceAction244 (SFT_parser[749] + 0)
+#define CALL_parser___ReduceAction244___init(recv) ((parser___ReduceAction244___init_t)CALL((recv), (SFT_parser[749] + 1)))
+#define ID_ReduceAction245 (SFT_parser[750])
+#define COLOR_ReduceAction245 (SFT_parser[751])
+#define INIT_TABLE_POS_ReduceAction245 (SFT_parser[752] + 0)
+#define CALL_parser___ReduceAction245___init(recv) ((parser___ReduceAction245___init_t)CALL((recv), (SFT_parser[752] + 1)))
+#define ID_ReduceAction246 (SFT_parser[753])
+#define COLOR_ReduceAction246 (SFT_parser[754])
+#define INIT_TABLE_POS_ReduceAction246 (SFT_parser[755] + 0)
+#define CALL_parser___ReduceAction246___init(recv) ((parser___ReduceAction246___init_t)CALL((recv), (SFT_parser[755] + 1)))
+#define ID_ReduceAction247 (SFT_parser[756])
+#define COLOR_ReduceAction247 (SFT_parser[757])
+#define INIT_TABLE_POS_ReduceAction247 (SFT_parser[758] + 0)
+#define CALL_parser___ReduceAction247___init(recv) ((parser___ReduceAction247___init_t)CALL((recv), (SFT_parser[758] + 1)))
+#define ID_ReduceAction248 (SFT_parser[759])
+#define COLOR_ReduceAction248 (SFT_parser[760])
+#define INIT_TABLE_POS_ReduceAction248 (SFT_parser[761] + 0)
+#define CALL_parser___ReduceAction248___init(recv) ((parser___ReduceAction248___init_t)CALL((recv), (SFT_parser[761] + 1)))
+#define ID_ReduceAction249 (SFT_parser[762])
+#define COLOR_ReduceAction249 (SFT_parser[763])
+#define INIT_TABLE_POS_ReduceAction249 (SFT_parser[764] + 0)
+#define CALL_parser___ReduceAction249___init(recv) ((parser___ReduceAction249___init_t)CALL((recv), (SFT_parser[764] + 1)))
+#define ID_ReduceAction250 (SFT_parser[765])
+#define COLOR_ReduceAction250 (SFT_parser[766])
+#define INIT_TABLE_POS_ReduceAction250 (SFT_parser[767] + 0)
+#define CALL_parser___ReduceAction250___init(recv) ((parser___ReduceAction250___init_t)CALL((recv), (SFT_parser[767] + 1)))
+#define ID_ReduceAction251 (SFT_parser[768])
+#define COLOR_ReduceAction251 (SFT_parser[769])
+#define INIT_TABLE_POS_ReduceAction251 (SFT_parser[770] + 0)
+#define CALL_parser___ReduceAction251___init(recv) ((parser___ReduceAction251___init_t)CALL((recv), (SFT_parser[770] + 1)))
+#define ID_ReduceAction252 (SFT_parser[771])
+#define COLOR_ReduceAction252 (SFT_parser[772])
+#define INIT_TABLE_POS_ReduceAction252 (SFT_parser[773] + 0)
+#define CALL_parser___ReduceAction252___init(recv) ((parser___ReduceAction252___init_t)CALL((recv), (SFT_parser[773] + 1)))
+#define ID_ReduceAction253 (SFT_parser[774])
+#define COLOR_ReduceAction253 (SFT_parser[775])
+#define INIT_TABLE_POS_ReduceAction253 (SFT_parser[776] + 0)
+#define CALL_parser___ReduceAction253___init(recv) ((parser___ReduceAction253___init_t)CALL((recv), (SFT_parser[776] + 1)))
+#define ID_ReduceAction254 (SFT_parser[777])
+#define COLOR_ReduceAction254 (SFT_parser[778])
+#define INIT_TABLE_POS_ReduceAction254 (SFT_parser[779] + 0)
+#define CALL_parser___ReduceAction254___init(recv) ((parser___ReduceAction254___init_t)CALL((recv), (SFT_parser[779] + 1)))
+#define ID_ReduceAction255 (SFT_parser[780])
+#define COLOR_ReduceAction255 (SFT_parser[781])
+#define INIT_TABLE_POS_ReduceAction255 (SFT_parser[782] + 0)
+#define CALL_parser___ReduceAction255___init(recv) ((parser___ReduceAction255___init_t)CALL((recv), (SFT_parser[782] + 1)))
+#define ID_ReduceAction256 (SFT_parser[783])
+#define COLOR_ReduceAction256 (SFT_parser[784])
+#define INIT_TABLE_POS_ReduceAction256 (SFT_parser[785] + 0)
+#define CALL_parser___ReduceAction256___init(recv) ((parser___ReduceAction256___init_t)CALL((recv), (SFT_parser[785] + 1)))
+#define ID_ReduceAction257 (SFT_parser[786])
+#define COLOR_ReduceAction257 (SFT_parser[787])
+#define INIT_TABLE_POS_ReduceAction257 (SFT_parser[788] + 0)
+#define CALL_parser___ReduceAction257___init(recv) ((parser___ReduceAction257___init_t)CALL((recv), (SFT_parser[788] + 1)))
+#define ID_ReduceAction258 (SFT_parser[789])
+#define COLOR_ReduceAction258 (SFT_parser[790])
+#define INIT_TABLE_POS_ReduceAction258 (SFT_parser[791] + 0)
+#define CALL_parser___ReduceAction258___init(recv) ((parser___ReduceAction258___init_t)CALL((recv), (SFT_parser[791] + 1)))
+#define ID_ReduceAction259 (SFT_parser[792])
+#define COLOR_ReduceAction259 (SFT_parser[793])
+#define INIT_TABLE_POS_ReduceAction259 (SFT_parser[794] + 0)
+#define CALL_parser___ReduceAction259___init(recv) ((parser___ReduceAction259___init_t)CALL((recv), (SFT_parser[794] + 1)))
+#define ID_ReduceAction260 (SFT_parser[795])
+#define COLOR_ReduceAction260 (SFT_parser[796])
+#define INIT_TABLE_POS_ReduceAction260 (SFT_parser[797] + 0)
+#define CALL_parser___ReduceAction260___init(recv) ((parser___ReduceAction260___init_t)CALL((recv), (SFT_parser[797] + 1)))
+#define ID_ReduceAction261 (SFT_parser[798])
+#define COLOR_ReduceAction261 (SFT_parser[799])
+#define INIT_TABLE_POS_ReduceAction261 (SFT_parser[800] + 0)
+#define CALL_parser___ReduceAction261___init(recv) ((parser___ReduceAction261___init_t)CALL((recv), (SFT_parser[800] + 1)))
+#define ID_ReduceAction262 (SFT_parser[801])
+#define COLOR_ReduceAction262 (SFT_parser[802])
+#define INIT_TABLE_POS_ReduceAction262 (SFT_parser[803] + 0)
+#define CALL_parser___ReduceAction262___init(recv) ((parser___ReduceAction262___init_t)CALL((recv), (SFT_parser[803] + 1)))
+#define ID_ReduceAction263 (SFT_parser[804])
+#define COLOR_ReduceAction263 (SFT_parser[805])
+#define INIT_TABLE_POS_ReduceAction263 (SFT_parser[806] + 0)
+#define CALL_parser___ReduceAction263___init(recv) ((parser___ReduceAction263___init_t)CALL((recv), (SFT_parser[806] + 1)))
+#define ID_ReduceAction264 (SFT_parser[807])
+#define COLOR_ReduceAction264 (SFT_parser[808])
+#define INIT_TABLE_POS_ReduceAction264 (SFT_parser[809] + 0)
+#define CALL_parser___ReduceAction264___init(recv) ((parser___ReduceAction264___init_t)CALL((recv), (SFT_parser[809] + 1)))
+#define ID_ReduceAction265 (SFT_parser[810])
+#define COLOR_ReduceAction265 (SFT_parser[811])
+#define INIT_TABLE_POS_ReduceAction265 (SFT_parser[812] + 0)
+#define CALL_parser___ReduceAction265___init(recv) ((parser___ReduceAction265___init_t)CALL((recv), (SFT_parser[812] + 1)))
+#define ID_ReduceAction266 (SFT_parser[813])
+#define COLOR_ReduceAction266 (SFT_parser[814])
+#define INIT_TABLE_POS_ReduceAction266 (SFT_parser[815] + 0)
+#define CALL_parser___ReduceAction266___init(recv) ((parser___ReduceAction266___init_t)CALL((recv), (SFT_parser[815] + 1)))
+#define ID_ReduceAction267 (SFT_parser[816])
+#define COLOR_ReduceAction267 (SFT_parser[817])
+#define INIT_TABLE_POS_ReduceAction267 (SFT_parser[818] + 0)
+#define CALL_parser___ReduceAction267___init(recv) ((parser___ReduceAction267___init_t)CALL((recv), (SFT_parser[818] + 1)))
+#define ID_ReduceAction268 (SFT_parser[819])
+#define COLOR_ReduceAction268 (SFT_parser[820])
+#define INIT_TABLE_POS_ReduceAction268 (SFT_parser[821] + 0)
+#define CALL_parser___ReduceAction268___init(recv) ((parser___ReduceAction268___init_t)CALL((recv), (SFT_parser[821] + 1)))
+#define ID_ReduceAction269 (SFT_parser[822])
+#define COLOR_ReduceAction269 (SFT_parser[823])
+#define INIT_TABLE_POS_ReduceAction269 (SFT_parser[824] + 0)
+#define CALL_parser___ReduceAction269___init(recv) ((parser___ReduceAction269___init_t)CALL((recv), (SFT_parser[824] + 1)))
+#define ID_ReduceAction270 (SFT_parser[825])
+#define COLOR_ReduceAction270 (SFT_parser[826])
+#define INIT_TABLE_POS_ReduceAction270 (SFT_parser[827] + 0)
+#define CALL_parser___ReduceAction270___init(recv) ((parser___ReduceAction270___init_t)CALL((recv), (SFT_parser[827] + 1)))
+#define ID_ReduceAction271 (SFT_parser[828])
+#define COLOR_ReduceAction271 (SFT_parser[829])
+#define INIT_TABLE_POS_ReduceAction271 (SFT_parser[830] + 0)
+#define CALL_parser___ReduceAction271___init(recv) ((parser___ReduceAction271___init_t)CALL((recv), (SFT_parser[830] + 1)))
+#define ID_ReduceAction272 (SFT_parser[831])
+#define COLOR_ReduceAction272 (SFT_parser[832])
+#define INIT_TABLE_POS_ReduceAction272 (SFT_parser[833] + 0)
+#define CALL_parser___ReduceAction272___init(recv) ((parser___ReduceAction272___init_t)CALL((recv), (SFT_parser[833] + 1)))
+#define ID_ReduceAction273 (SFT_parser[834])
+#define COLOR_ReduceAction273 (SFT_parser[835])
+#define INIT_TABLE_POS_ReduceAction273 (SFT_parser[836] + 0)
+#define CALL_parser___ReduceAction273___init(recv) ((parser___ReduceAction273___init_t)CALL((recv), (SFT_parser[836] + 1)))
+#define ID_ReduceAction274 (SFT_parser[837])
+#define COLOR_ReduceAction274 (SFT_parser[838])
+#define INIT_TABLE_POS_ReduceAction274 (SFT_parser[839] + 0)
+#define CALL_parser___ReduceAction274___init(recv) ((parser___ReduceAction274___init_t)CALL((recv), (SFT_parser[839] + 1)))
+#define ID_ReduceAction275 (SFT_parser[840])
+#define COLOR_ReduceAction275 (SFT_parser[841])
+#define INIT_TABLE_POS_ReduceAction275 (SFT_parser[842] + 0)
+#define CALL_parser___ReduceAction275___init(recv) ((parser___ReduceAction275___init_t)CALL((recv), (SFT_parser[842] + 1)))
+#define ID_ReduceAction276 (SFT_parser[843])
+#define COLOR_ReduceAction276 (SFT_parser[844])
+#define INIT_TABLE_POS_ReduceAction276 (SFT_parser[845] + 0)
+#define CALL_parser___ReduceAction276___init(recv) ((parser___ReduceAction276___init_t)CALL((recv), (SFT_parser[845] + 1)))
+#define ID_ReduceAction277 (SFT_parser[846])
+#define COLOR_ReduceAction277 (SFT_parser[847])
+#define INIT_TABLE_POS_ReduceAction277 (SFT_parser[848] + 0)
+#define CALL_parser___ReduceAction277___init(recv) ((parser___ReduceAction277___init_t)CALL((recv), (SFT_parser[848] + 1)))
+#define ID_ReduceAction278 (SFT_parser[849])
+#define COLOR_ReduceAction278 (SFT_parser[850])
+#define INIT_TABLE_POS_ReduceAction278 (SFT_parser[851] + 0)
+#define CALL_parser___ReduceAction278___init(recv) ((parser___ReduceAction278___init_t)CALL((recv), (SFT_parser[851] + 1)))
+#define ID_ReduceAction279 (SFT_parser[852])
+#define COLOR_ReduceAction279 (SFT_parser[853])
+#define INIT_TABLE_POS_ReduceAction279 (SFT_parser[854] + 0)
+#define CALL_parser___ReduceAction279___init(recv) ((parser___ReduceAction279___init_t)CALL((recv), (SFT_parser[854] + 1)))
+#define ID_ReduceAction280 (SFT_parser[855])
+#define COLOR_ReduceAction280 (SFT_parser[856])
+#define INIT_TABLE_POS_ReduceAction280 (SFT_parser[857] + 0)
+#define CALL_parser___ReduceAction280___init(recv) ((parser___ReduceAction280___init_t)CALL((recv), (SFT_parser[857] + 1)))
+#define ID_ReduceAction281 (SFT_parser[858])
+#define COLOR_ReduceAction281 (SFT_parser[859])
+#define INIT_TABLE_POS_ReduceAction281 (SFT_parser[860] + 0)
+#define CALL_parser___ReduceAction281___init(recv) ((parser___ReduceAction281___init_t)CALL((recv), (SFT_parser[860] + 1)))
+#define ID_ReduceAction282 (SFT_parser[861])
+#define COLOR_ReduceAction282 (SFT_parser[862])
+#define INIT_TABLE_POS_ReduceAction282 (SFT_parser[863] + 0)
+#define CALL_parser___ReduceAction282___init(recv) ((parser___ReduceAction282___init_t)CALL((recv), (SFT_parser[863] + 1)))
+#define ID_ReduceAction283 (SFT_parser[864])
+#define COLOR_ReduceAction283 (SFT_parser[865])
+#define INIT_TABLE_POS_ReduceAction283 (SFT_parser[866] + 0)
+#define CALL_parser___ReduceAction283___init(recv) ((parser___ReduceAction283___init_t)CALL((recv), (SFT_parser[866] + 1)))
+#define ID_ReduceAction284 (SFT_parser[867])
+#define COLOR_ReduceAction284 (SFT_parser[868])
+#define INIT_TABLE_POS_ReduceAction284 (SFT_parser[869] + 0)
+#define CALL_parser___ReduceAction284___init(recv) ((parser___ReduceAction284___init_t)CALL((recv), (SFT_parser[869] + 1)))
+#define ID_ReduceAction285 (SFT_parser[870])
+#define COLOR_ReduceAction285 (SFT_parser[871])
+#define INIT_TABLE_POS_ReduceAction285 (SFT_parser[872] + 0)
+#define CALL_parser___ReduceAction285___init(recv) ((parser___ReduceAction285___init_t)CALL((recv), (SFT_parser[872] + 1)))
+#define ID_ReduceAction286 (SFT_parser[873])
+#define COLOR_ReduceAction286 (SFT_parser[874])
+#define INIT_TABLE_POS_ReduceAction286 (SFT_parser[875] + 0)
+#define CALL_parser___ReduceAction286___init(recv) ((parser___ReduceAction286___init_t)CALL((recv), (SFT_parser[875] + 1)))
+#define ID_ReduceAction287 (SFT_parser[876])
+#define COLOR_ReduceAction287 (SFT_parser[877])
+#define INIT_TABLE_POS_ReduceAction287 (SFT_parser[878] + 0)
+#define CALL_parser___ReduceAction287___init(recv) ((parser___ReduceAction287___init_t)CALL((recv), (SFT_parser[878] + 1)))
+#define ID_ReduceAction288 (SFT_parser[879])
+#define COLOR_ReduceAction288 (SFT_parser[880])
+#define INIT_TABLE_POS_ReduceAction288 (SFT_parser[881] + 0)
+#define CALL_parser___ReduceAction288___init(recv) ((parser___ReduceAction288___init_t)CALL((recv), (SFT_parser[881] + 1)))
+#define ID_ReduceAction289 (SFT_parser[882])
+#define COLOR_ReduceAction289 (SFT_parser[883])
+#define INIT_TABLE_POS_ReduceAction289 (SFT_parser[884] + 0)
+#define CALL_parser___ReduceAction289___init(recv) ((parser___ReduceAction289___init_t)CALL((recv), (SFT_parser[884] + 1)))
+#define ID_ReduceAction290 (SFT_parser[885])
+#define COLOR_ReduceAction290 (SFT_parser[886])
+#define INIT_TABLE_POS_ReduceAction290 (SFT_parser[887] + 0)
+#define CALL_parser___ReduceAction290___init(recv) ((parser___ReduceAction290___init_t)CALL((recv), (SFT_parser[887] + 1)))
+#define ID_ReduceAction291 (SFT_parser[888])
+#define COLOR_ReduceAction291 (SFT_parser[889])
+#define INIT_TABLE_POS_ReduceAction291 (SFT_parser[890] + 0)
+#define CALL_parser___ReduceAction291___init(recv) ((parser___ReduceAction291___init_t)CALL((recv), (SFT_parser[890] + 1)))
+#define ID_ReduceAction292 (SFT_parser[891])
+#define COLOR_ReduceAction292 (SFT_parser[892])
+#define INIT_TABLE_POS_ReduceAction292 (SFT_parser[893] + 0)
+#define CALL_parser___ReduceAction292___init(recv) ((parser___ReduceAction292___init_t)CALL((recv), (SFT_parser[893] + 1)))
+#define ID_ReduceAction293 (SFT_parser[894])
+#define COLOR_ReduceAction293 (SFT_parser[895])
+#define INIT_TABLE_POS_ReduceAction293 (SFT_parser[896] + 0)
+#define CALL_parser___ReduceAction293___init(recv) ((parser___ReduceAction293___init_t)CALL((recv), (SFT_parser[896] + 1)))
+#define ID_ReduceAction294 (SFT_parser[897])
+#define COLOR_ReduceAction294 (SFT_parser[898])
+#define INIT_TABLE_POS_ReduceAction294 (SFT_parser[899] + 0)
+#define CALL_parser___ReduceAction294___init(recv) ((parser___ReduceAction294___init_t)CALL((recv), (SFT_parser[899] + 1)))
+#define ID_ReduceAction295 (SFT_parser[900])
+#define COLOR_ReduceAction295 (SFT_parser[901])
+#define INIT_TABLE_POS_ReduceAction295 (SFT_parser[902] + 0)
+#define CALL_parser___ReduceAction295___init(recv) ((parser___ReduceAction295___init_t)CALL((recv), (SFT_parser[902] + 1)))
+#define ID_ReduceAction296 (SFT_parser[903])
+#define COLOR_ReduceAction296 (SFT_parser[904])
+#define INIT_TABLE_POS_ReduceAction296 (SFT_parser[905] + 0)
+#define CALL_parser___ReduceAction296___init(recv) ((parser___ReduceAction296___init_t)CALL((recv), (SFT_parser[905] + 1)))
+#define ID_ReduceAction297 (SFT_parser[906])
+#define COLOR_ReduceAction297 (SFT_parser[907])
+#define INIT_TABLE_POS_ReduceAction297 (SFT_parser[908] + 0)
+#define CALL_parser___ReduceAction297___init(recv) ((parser___ReduceAction297___init_t)CALL((recv), (SFT_parser[908] + 1)))
+#define ID_ReduceAction298 (SFT_parser[909])
+#define COLOR_ReduceAction298 (SFT_parser[910])
+#define INIT_TABLE_POS_ReduceAction298 (SFT_parser[911] + 0)
+#define CALL_parser___ReduceAction298___init(recv) ((parser___ReduceAction298___init_t)CALL((recv), (SFT_parser[911] + 1)))
+#define ID_ReduceAction299 (SFT_parser[912])
+#define COLOR_ReduceAction299 (SFT_parser[913])
+#define INIT_TABLE_POS_ReduceAction299 (SFT_parser[914] + 0)
+#define CALL_parser___ReduceAction299___init(recv) ((parser___ReduceAction299___init_t)CALL((recv), (SFT_parser[914] + 1)))
+#define ID_ReduceAction300 (SFT_parser[915])
+#define COLOR_ReduceAction300 (SFT_parser[916])
+#define INIT_TABLE_POS_ReduceAction300 (SFT_parser[917] + 0)
+#define CALL_parser___ReduceAction300___init(recv) ((parser___ReduceAction300___init_t)CALL((recv), (SFT_parser[917] + 1)))
+#define ID_ReduceAction301 (SFT_parser[918])
+#define COLOR_ReduceAction301 (SFT_parser[919])
+#define INIT_TABLE_POS_ReduceAction301 (SFT_parser[920] + 0)
+#define CALL_parser___ReduceAction301___init(recv) ((parser___ReduceAction301___init_t)CALL((recv), (SFT_parser[920] + 1)))
+#define ID_ReduceAction302 (SFT_parser[921])
+#define COLOR_ReduceAction302 (SFT_parser[922])
+#define INIT_TABLE_POS_ReduceAction302 (SFT_parser[923] + 0)
+#define CALL_parser___ReduceAction302___init(recv) ((parser___ReduceAction302___init_t)CALL((recv), (SFT_parser[923] + 1)))
+#define ID_ReduceAction303 (SFT_parser[924])
+#define COLOR_ReduceAction303 (SFT_parser[925])
+#define INIT_TABLE_POS_ReduceAction303 (SFT_parser[926] + 0)
+#define CALL_parser___ReduceAction303___init(recv) ((parser___ReduceAction303___init_t)CALL((recv), (SFT_parser[926] + 1)))
+#define ID_ReduceAction304 (SFT_parser[927])
+#define COLOR_ReduceAction304 (SFT_parser[928])
+#define INIT_TABLE_POS_ReduceAction304 (SFT_parser[929] + 0)
+#define CALL_parser___ReduceAction304___init(recv) ((parser___ReduceAction304___init_t)CALL((recv), (SFT_parser[929] + 1)))
+#define ID_ReduceAction305 (SFT_parser[930])
+#define COLOR_ReduceAction305 (SFT_parser[931])
+#define INIT_TABLE_POS_ReduceAction305 (SFT_parser[932] + 0)
+#define CALL_parser___ReduceAction305___init(recv) ((parser___ReduceAction305___init_t)CALL((recv), (SFT_parser[932] + 1)))
+#define ID_ReduceAction306 (SFT_parser[933])
+#define COLOR_ReduceAction306 (SFT_parser[934])
+#define INIT_TABLE_POS_ReduceAction306 (SFT_parser[935] + 0)
+#define CALL_parser___ReduceAction306___init(recv) ((parser___ReduceAction306___init_t)CALL((recv), (SFT_parser[935] + 1)))
+#define ID_ReduceAction307 (SFT_parser[936])
+#define COLOR_ReduceAction307 (SFT_parser[937])
+#define INIT_TABLE_POS_ReduceAction307 (SFT_parser[938] + 0)
+#define CALL_parser___ReduceAction307___init(recv) ((parser___ReduceAction307___init_t)CALL((recv), (SFT_parser[938] + 1)))
+#define ID_ReduceAction308 (SFT_parser[939])
+#define COLOR_ReduceAction308 (SFT_parser[940])
+#define INIT_TABLE_POS_ReduceAction308 (SFT_parser[941] + 0)
+#define CALL_parser___ReduceAction308___init(recv) ((parser___ReduceAction308___init_t)CALL((recv), (SFT_parser[941] + 1)))
+#define ID_ReduceAction309 (SFT_parser[942])
+#define COLOR_ReduceAction309 (SFT_parser[943])
+#define INIT_TABLE_POS_ReduceAction309 (SFT_parser[944] + 0)
+#define CALL_parser___ReduceAction309___init(recv) ((parser___ReduceAction309___init_t)CALL((recv), (SFT_parser[944] + 1)))
+#define ID_ReduceAction310 (SFT_parser[945])
+#define COLOR_ReduceAction310 (SFT_parser[946])
+#define INIT_TABLE_POS_ReduceAction310 (SFT_parser[947] + 0)
+#define CALL_parser___ReduceAction310___init(recv) ((parser___ReduceAction310___init_t)CALL((recv), (SFT_parser[947] + 1)))
+#define ID_ReduceAction311 (SFT_parser[948])
+#define COLOR_ReduceAction311 (SFT_parser[949])
+#define INIT_TABLE_POS_ReduceAction311 (SFT_parser[950] + 0)
+#define CALL_parser___ReduceAction311___init(recv) ((parser___ReduceAction311___init_t)CALL((recv), (SFT_parser[950] + 1)))
+#define ID_ReduceAction312 (SFT_parser[951])
+#define COLOR_ReduceAction312 (SFT_parser[952])
+#define INIT_TABLE_POS_ReduceAction312 (SFT_parser[953] + 0)
+#define CALL_parser___ReduceAction312___init(recv) ((parser___ReduceAction312___init_t)CALL((recv), (SFT_parser[953] + 1)))
+#define ID_ReduceAction313 (SFT_parser[954])
+#define COLOR_ReduceAction313 (SFT_parser[955])
+#define INIT_TABLE_POS_ReduceAction313 (SFT_parser[956] + 0)
+#define CALL_parser___ReduceAction313___init(recv) ((parser___ReduceAction313___init_t)CALL((recv), (SFT_parser[956] + 1)))
+#define ID_ReduceAction314 (SFT_parser[957])
+#define COLOR_ReduceAction314 (SFT_parser[958])
+#define INIT_TABLE_POS_ReduceAction314 (SFT_parser[959] + 0)
+#define CALL_parser___ReduceAction314___init(recv) ((parser___ReduceAction314___init_t)CALL((recv), (SFT_parser[959] + 1)))
+#define ID_ReduceAction315 (SFT_parser[960])
+#define COLOR_ReduceAction315 (SFT_parser[961])
+#define INIT_TABLE_POS_ReduceAction315 (SFT_parser[962] + 0)
+#define CALL_parser___ReduceAction315___init(recv) ((parser___ReduceAction315___init_t)CALL((recv), (SFT_parser[962] + 1)))
+#define ID_ReduceAction316 (SFT_parser[963])
+#define COLOR_ReduceAction316 (SFT_parser[964])
+#define INIT_TABLE_POS_ReduceAction316 (SFT_parser[965] + 0)
+#define CALL_parser___ReduceAction316___init(recv) ((parser___ReduceAction316___init_t)CALL((recv), (SFT_parser[965] + 1)))
+#define ID_ReduceAction317 (SFT_parser[966])
+#define COLOR_ReduceAction317 (SFT_parser[967])
+#define INIT_TABLE_POS_ReduceAction317 (SFT_parser[968] + 0)
+#define CALL_parser___ReduceAction317___init(recv) ((parser___ReduceAction317___init_t)CALL((recv), (SFT_parser[968] + 1)))
+#define ID_ReduceAction318 (SFT_parser[969])
+#define COLOR_ReduceAction318 (SFT_parser[970])
+#define INIT_TABLE_POS_ReduceAction318 (SFT_parser[971] + 0)
+#define CALL_parser___ReduceAction318___init(recv) ((parser___ReduceAction318___init_t)CALL((recv), (SFT_parser[971] + 1)))
+#define ID_ReduceAction319 (SFT_parser[972])
+#define COLOR_ReduceAction319 (SFT_parser[973])
+#define INIT_TABLE_POS_ReduceAction319 (SFT_parser[974] + 0)
+#define CALL_parser___ReduceAction319___init(recv) ((parser___ReduceAction319___init_t)CALL((recv), (SFT_parser[974] + 1)))
+#define ID_ReduceAction320 (SFT_parser[975])
+#define COLOR_ReduceAction320 (SFT_parser[976])
+#define INIT_TABLE_POS_ReduceAction320 (SFT_parser[977] + 0)
+#define CALL_parser___ReduceAction320___init(recv) ((parser___ReduceAction320___init_t)CALL((recv), (SFT_parser[977] + 1)))
+#define ID_ReduceAction321 (SFT_parser[978])
+#define COLOR_ReduceAction321 (SFT_parser[979])
+#define INIT_TABLE_POS_ReduceAction321 (SFT_parser[980] + 0)
+#define CALL_parser___ReduceAction321___init(recv) ((parser___ReduceAction321___init_t)CALL((recv), (SFT_parser[980] + 1)))
+#define ID_ReduceAction322 (SFT_parser[981])
+#define COLOR_ReduceAction322 (SFT_parser[982])
+#define INIT_TABLE_POS_ReduceAction322 (SFT_parser[983] + 0)
+#define CALL_parser___ReduceAction322___init(recv) ((parser___ReduceAction322___init_t)CALL((recv), (SFT_parser[983] + 1)))
+#define ID_ReduceAction323 (SFT_parser[984])
+#define COLOR_ReduceAction323 (SFT_parser[985])
+#define INIT_TABLE_POS_ReduceAction323 (SFT_parser[986] + 0)
+#define CALL_parser___ReduceAction323___init(recv) ((parser___ReduceAction323___init_t)CALL((recv), (SFT_parser[986] + 1)))
+#define ID_ReduceAction324 (SFT_parser[987])
+#define COLOR_ReduceAction324 (SFT_parser[988])
+#define INIT_TABLE_POS_ReduceAction324 (SFT_parser[989] + 0)
+#define CALL_parser___ReduceAction324___init(recv) ((parser___ReduceAction324___init_t)CALL((recv), (SFT_parser[989] + 1)))
+#define ID_ReduceAction325 (SFT_parser[990])
+#define COLOR_ReduceAction325 (SFT_parser[991])
+#define INIT_TABLE_POS_ReduceAction325 (SFT_parser[992] + 0)
+#define CALL_parser___ReduceAction325___init(recv) ((parser___ReduceAction325___init_t)CALL((recv), (SFT_parser[992] + 1)))
+#define ID_ReduceAction326 (SFT_parser[993])
+#define COLOR_ReduceAction326 (SFT_parser[994])
+#define INIT_TABLE_POS_ReduceAction326 (SFT_parser[995] + 0)
+#define CALL_parser___ReduceAction326___init(recv) ((parser___ReduceAction326___init_t)CALL((recv), (SFT_parser[995] + 1)))
+#define ID_ReduceAction327 (SFT_parser[996])
+#define COLOR_ReduceAction327 (SFT_parser[997])
+#define INIT_TABLE_POS_ReduceAction327 (SFT_parser[998] + 0)
+#define CALL_parser___ReduceAction327___init(recv) ((parser___ReduceAction327___init_t)CALL((recv), (SFT_parser[998] + 1)))
+#define ID_ReduceAction328 (SFT_parser[999])
+#define COLOR_ReduceAction328 (SFT_parser[1000])
+#define INIT_TABLE_POS_ReduceAction328 (SFT_parser[1001] + 0)
+#define CALL_parser___ReduceAction328___init(recv) ((parser___ReduceAction328___init_t)CALL((recv), (SFT_parser[1001] + 1)))
+#define ID_ReduceAction329 (SFT_parser[1002])
+#define COLOR_ReduceAction329 (SFT_parser[1003])
+#define INIT_TABLE_POS_ReduceAction329 (SFT_parser[1004] + 0)
+#define CALL_parser___ReduceAction329___init(recv) ((parser___ReduceAction329___init_t)CALL((recv), (SFT_parser[1004] + 1)))
+#define ID_ReduceAction330 (SFT_parser[1005])
+#define COLOR_ReduceAction330 (SFT_parser[1006])
+#define INIT_TABLE_POS_ReduceAction330 (SFT_parser[1007] + 0)
+#define CALL_parser___ReduceAction330___init(recv) ((parser___ReduceAction330___init_t)CALL((recv), (SFT_parser[1007] + 1)))
+#define ID_ReduceAction331 (SFT_parser[1008])
+#define COLOR_ReduceAction331 (SFT_parser[1009])
+#define INIT_TABLE_POS_ReduceAction331 (SFT_parser[1010] + 0)
+#define CALL_parser___ReduceAction331___init(recv) ((parser___ReduceAction331___init_t)CALL((recv), (SFT_parser[1010] + 1)))
+#define ID_ReduceAction332 (SFT_parser[1011])
+#define COLOR_ReduceAction332 (SFT_parser[1012])
+#define INIT_TABLE_POS_ReduceAction332 (SFT_parser[1013] + 0)
+#define CALL_parser___ReduceAction332___init(recv) ((parser___ReduceAction332___init_t)CALL((recv), (SFT_parser[1013] + 1)))
+#define ID_ReduceAction333 (SFT_parser[1014])
+#define COLOR_ReduceAction333 (SFT_parser[1015])
+#define INIT_TABLE_POS_ReduceAction333 (SFT_parser[1016] + 0)
+#define CALL_parser___ReduceAction333___init(recv) ((parser___ReduceAction333___init_t)CALL((recv), (SFT_parser[1016] + 1)))
+#define ID_ReduceAction334 (SFT_parser[1017])
+#define COLOR_ReduceAction334 (SFT_parser[1018])
+#define INIT_TABLE_POS_ReduceAction334 (SFT_parser[1019] + 0)
+#define CALL_parser___ReduceAction334___init(recv) ((parser___ReduceAction334___init_t)CALL((recv), (SFT_parser[1019] + 1)))
+#define ID_ReduceAction335 (SFT_parser[1020])
+#define COLOR_ReduceAction335 (SFT_parser[1021])
+#define INIT_TABLE_POS_ReduceAction335 (SFT_parser[1022] + 0)
+#define CALL_parser___ReduceAction335___init(recv) ((parser___ReduceAction335___init_t)CALL((recv), (SFT_parser[1022] + 1)))
+#define ID_ReduceAction336 (SFT_parser[1023])
+#define COLOR_ReduceAction336 (SFT_parser[1024])
+#define INIT_TABLE_POS_ReduceAction336 (SFT_parser[1025] + 0)
+#define CALL_parser___ReduceAction336___init(recv) ((parser___ReduceAction336___init_t)CALL((recv), (SFT_parser[1025] + 1)))
+#define ID_ReduceAction337 (SFT_parser[1026])
+#define COLOR_ReduceAction337 (SFT_parser[1027])
+#define INIT_TABLE_POS_ReduceAction337 (SFT_parser[1028] + 0)
+#define CALL_parser___ReduceAction337___init(recv) ((parser___ReduceAction337___init_t)CALL((recv), (SFT_parser[1028] + 1)))
+#define ID_ReduceAction338 (SFT_parser[1029])
+#define COLOR_ReduceAction338 (SFT_parser[1030])
+#define INIT_TABLE_POS_ReduceAction338 (SFT_parser[1031] + 0)
+#define CALL_parser___ReduceAction338___init(recv) ((parser___ReduceAction338___init_t)CALL((recv), (SFT_parser[1031] + 1)))
+#define ID_ReduceAction339 (SFT_parser[1032])
+#define COLOR_ReduceAction339 (SFT_parser[1033])
+#define INIT_TABLE_POS_ReduceAction339 (SFT_parser[1034] + 0)
+#define CALL_parser___ReduceAction339___init(recv) ((parser___ReduceAction339___init_t)CALL((recv), (SFT_parser[1034] + 1)))
+#define ID_ReduceAction340 (SFT_parser[1035])
+#define COLOR_ReduceAction340 (SFT_parser[1036])
+#define INIT_TABLE_POS_ReduceAction340 (SFT_parser[1037] + 0)
+#define CALL_parser___ReduceAction340___init(recv) ((parser___ReduceAction340___init_t)CALL((recv), (SFT_parser[1037] + 1)))
+#define ID_ReduceAction341 (SFT_parser[1038])
+#define COLOR_ReduceAction341 (SFT_parser[1039])
+#define INIT_TABLE_POS_ReduceAction341 (SFT_parser[1040] + 0)
+#define CALL_parser___ReduceAction341___init(recv) ((parser___ReduceAction341___init_t)CALL((recv), (SFT_parser[1040] + 1)))
+#define ID_ReduceAction342 (SFT_parser[1041])
+#define COLOR_ReduceAction342 (SFT_parser[1042])
+#define INIT_TABLE_POS_ReduceAction342 (SFT_parser[1043] + 0)
+#define CALL_parser___ReduceAction342___init(recv) ((parser___ReduceAction342___init_t)CALL((recv), (SFT_parser[1043] + 1)))
+#define ID_ReduceAction343 (SFT_parser[1044])
+#define COLOR_ReduceAction343 (SFT_parser[1045])
+#define INIT_TABLE_POS_ReduceAction343 (SFT_parser[1046] + 0)
+#define CALL_parser___ReduceAction343___init(recv) ((parser___ReduceAction343___init_t)CALL((recv), (SFT_parser[1046] + 1)))
+#define ID_ReduceAction344 (SFT_parser[1047])
+#define COLOR_ReduceAction344 (SFT_parser[1048])
+#define INIT_TABLE_POS_ReduceAction344 (SFT_parser[1049] + 0)
+#define CALL_parser___ReduceAction344___init(recv) ((parser___ReduceAction344___init_t)CALL((recv), (SFT_parser[1049] + 1)))
+#define ID_ReduceAction345 (SFT_parser[1050])
+#define COLOR_ReduceAction345 (SFT_parser[1051])
+#define INIT_TABLE_POS_ReduceAction345 (SFT_parser[1052] + 0)
+#define CALL_parser___ReduceAction345___init(recv) ((parser___ReduceAction345___init_t)CALL((recv), (SFT_parser[1052] + 1)))
+#define ID_ReduceAction346 (SFT_parser[1053])
+#define COLOR_ReduceAction346 (SFT_parser[1054])
+#define INIT_TABLE_POS_ReduceAction346 (SFT_parser[1055] + 0)
+#define CALL_parser___ReduceAction346___init(recv) ((parser___ReduceAction346___init_t)CALL((recv), (SFT_parser[1055] + 1)))
+#define ID_ReduceAction347 (SFT_parser[1056])
+#define COLOR_ReduceAction347 (SFT_parser[1057])
+#define INIT_TABLE_POS_ReduceAction347 (SFT_parser[1058] + 0)
+#define CALL_parser___ReduceAction347___init(recv) ((parser___ReduceAction347___init_t)CALL((recv), (SFT_parser[1058] + 1)))
+#define ID_ReduceAction348 (SFT_parser[1059])
+#define COLOR_ReduceAction348 (SFT_parser[1060])
+#define INIT_TABLE_POS_ReduceAction348 (SFT_parser[1061] + 0)
+#define CALL_parser___ReduceAction348___init(recv) ((parser___ReduceAction348___init_t)CALL((recv), (SFT_parser[1061] + 1)))
+#define ID_ReduceAction349 (SFT_parser[1062])
+#define COLOR_ReduceAction349 (SFT_parser[1063])
+#define INIT_TABLE_POS_ReduceAction349 (SFT_parser[1064] + 0)
+#define CALL_parser___ReduceAction349___init(recv) ((parser___ReduceAction349___init_t)CALL((recv), (SFT_parser[1064] + 1)))
+#define ID_ReduceAction350 (SFT_parser[1065])
+#define COLOR_ReduceAction350 (SFT_parser[1066])
+#define INIT_TABLE_POS_ReduceAction350 (SFT_parser[1067] + 0)
+#define CALL_parser___ReduceAction350___init(recv) ((parser___ReduceAction350___init_t)CALL((recv), (SFT_parser[1067] + 1)))
+#define ID_ReduceAction351 (SFT_parser[1068])
+#define COLOR_ReduceAction351 (SFT_parser[1069])
+#define INIT_TABLE_POS_ReduceAction351 (SFT_parser[1070] + 0)
+#define CALL_parser___ReduceAction351___init(recv) ((parser___ReduceAction351___init_t)CALL((recv), (SFT_parser[1070] + 1)))
+#define ID_ReduceAction352 (SFT_parser[1071])
+#define COLOR_ReduceAction352 (SFT_parser[1072])
+#define INIT_TABLE_POS_ReduceAction352 (SFT_parser[1073] + 0)
+#define CALL_parser___ReduceAction352___init(recv) ((parser___ReduceAction352___init_t)CALL((recv), (SFT_parser[1073] + 1)))
+#define ID_ReduceAction353 (SFT_parser[1074])
+#define COLOR_ReduceAction353 (SFT_parser[1075])
+#define INIT_TABLE_POS_ReduceAction353 (SFT_parser[1076] + 0)
+#define CALL_parser___ReduceAction353___init(recv) ((parser___ReduceAction353___init_t)CALL((recv), (SFT_parser[1076] + 1)))
+#define ID_ReduceAction354 (SFT_parser[1077])
+#define COLOR_ReduceAction354 (SFT_parser[1078])
+#define INIT_TABLE_POS_ReduceAction354 (SFT_parser[1079] + 0)
+#define CALL_parser___ReduceAction354___init(recv) ((parser___ReduceAction354___init_t)CALL((recv), (SFT_parser[1079] + 1)))
+#define ID_ReduceAction355 (SFT_parser[1080])
+#define COLOR_ReduceAction355 (SFT_parser[1081])
+#define INIT_TABLE_POS_ReduceAction355 (SFT_parser[1082] + 0)
+#define CALL_parser___ReduceAction355___init(recv) ((parser___ReduceAction355___init_t)CALL((recv), (SFT_parser[1082] + 1)))
+#define ID_ReduceAction356 (SFT_parser[1083])
+#define COLOR_ReduceAction356 (SFT_parser[1084])
+#define INIT_TABLE_POS_ReduceAction356 (SFT_parser[1085] + 0)
+#define CALL_parser___ReduceAction356___init(recv) ((parser___ReduceAction356___init_t)CALL((recv), (SFT_parser[1085] + 1)))
+#define ID_ReduceAction357 (SFT_parser[1086])
+#define COLOR_ReduceAction357 (SFT_parser[1087])
+#define INIT_TABLE_POS_ReduceAction357 (SFT_parser[1088] + 0)
+#define CALL_parser___ReduceAction357___init(recv) ((parser___ReduceAction357___init_t)CALL((recv), (SFT_parser[1088] + 1)))
+#define ID_ReduceAction358 (SFT_parser[1089])
+#define COLOR_ReduceAction358 (SFT_parser[1090])
+#define INIT_TABLE_POS_ReduceAction358 (SFT_parser[1091] + 0)
+#define CALL_parser___ReduceAction358___init(recv) ((parser___ReduceAction358___init_t)CALL((recv), (SFT_parser[1091] + 1)))
+#define ID_ReduceAction359 (SFT_parser[1092])
+#define COLOR_ReduceAction359 (SFT_parser[1093])
+#define INIT_TABLE_POS_ReduceAction359 (SFT_parser[1094] + 0)
+#define CALL_parser___ReduceAction359___init(recv) ((parser___ReduceAction359___init_t)CALL((recv), (SFT_parser[1094] + 1)))
+#define ID_ReduceAction360 (SFT_parser[1095])
+#define COLOR_ReduceAction360 (SFT_parser[1096])
+#define INIT_TABLE_POS_ReduceAction360 (SFT_parser[1097] + 0)
+#define CALL_parser___ReduceAction360___init(recv) ((parser___ReduceAction360___init_t)CALL((recv), (SFT_parser[1097] + 1)))
+#define ID_ReduceAction361 (SFT_parser[1098])
+#define COLOR_ReduceAction361 (SFT_parser[1099])
+#define INIT_TABLE_POS_ReduceAction361 (SFT_parser[1100] + 0)
+#define CALL_parser___ReduceAction361___init(recv) ((parser___ReduceAction361___init_t)CALL((recv), (SFT_parser[1100] + 1)))
+#define ID_ReduceAction362 (SFT_parser[1101])
+#define COLOR_ReduceAction362 (SFT_parser[1102])
+#define INIT_TABLE_POS_ReduceAction362 (SFT_parser[1103] + 0)
+#define CALL_parser___ReduceAction362___init(recv) ((parser___ReduceAction362___init_t)CALL((recv), (SFT_parser[1103] + 1)))
+#define ID_ReduceAction363 (SFT_parser[1104])
+#define COLOR_ReduceAction363 (SFT_parser[1105])
+#define INIT_TABLE_POS_ReduceAction363 (SFT_parser[1106] + 0)
+#define CALL_parser___ReduceAction363___init(recv) ((parser___ReduceAction363___init_t)CALL((recv), (SFT_parser[1106] + 1)))
+#define ID_ReduceAction364 (SFT_parser[1107])
+#define COLOR_ReduceAction364 (SFT_parser[1108])
+#define INIT_TABLE_POS_ReduceAction364 (SFT_parser[1109] + 0)
+#define CALL_parser___ReduceAction364___init(recv) ((parser___ReduceAction364___init_t)CALL((recv), (SFT_parser[1109] + 1)))
+#define ID_ReduceAction365 (SFT_parser[1110])
+#define COLOR_ReduceAction365 (SFT_parser[1111])
+#define INIT_TABLE_POS_ReduceAction365 (SFT_parser[1112] + 0)
+#define CALL_parser___ReduceAction365___init(recv) ((parser___ReduceAction365___init_t)CALL((recv), (SFT_parser[1112] + 1)))
+#define ID_ReduceAction366 (SFT_parser[1113])
+#define COLOR_ReduceAction366 (SFT_parser[1114])
+#define INIT_TABLE_POS_ReduceAction366 (SFT_parser[1115] + 0)
+#define CALL_parser___ReduceAction366___init(recv) ((parser___ReduceAction366___init_t)CALL((recv), (SFT_parser[1115] + 1)))
+#define ID_ReduceAction367 (SFT_parser[1116])
+#define COLOR_ReduceAction367 (SFT_parser[1117])
+#define INIT_TABLE_POS_ReduceAction367 (SFT_parser[1118] + 0)
+#define CALL_parser___ReduceAction367___init(recv) ((parser___ReduceAction367___init_t)CALL((recv), (SFT_parser[1118] + 1)))
+#define ID_ReduceAction368 (SFT_parser[1119])
+#define COLOR_ReduceAction368 (SFT_parser[1120])
+#define INIT_TABLE_POS_ReduceAction368 (SFT_parser[1121] + 0)
+#define CALL_parser___ReduceAction368___init(recv) ((parser___ReduceAction368___init_t)CALL((recv), (SFT_parser[1121] + 1)))
+#define ID_ReduceAction369 (SFT_parser[1122])
+#define COLOR_ReduceAction369 (SFT_parser[1123])
+#define INIT_TABLE_POS_ReduceAction369 (SFT_parser[1124] + 0)
+#define CALL_parser___ReduceAction369___init(recv) ((parser___ReduceAction369___init_t)CALL((recv), (SFT_parser[1124] + 1)))
+#define ID_ReduceAction370 (SFT_parser[1125])
+#define COLOR_ReduceAction370 (SFT_parser[1126])
+#define INIT_TABLE_POS_ReduceAction370 (SFT_parser[1127] + 0)
+#define CALL_parser___ReduceAction370___init(recv) ((parser___ReduceAction370___init_t)CALL((recv), (SFT_parser[1127] + 1)))
+#define ID_ReduceAction371 (SFT_parser[1128])
+#define COLOR_ReduceAction371 (SFT_parser[1129])
+#define INIT_TABLE_POS_ReduceAction371 (SFT_parser[1130] + 0)
+#define CALL_parser___ReduceAction371___init(recv) ((parser___ReduceAction371___init_t)CALL((recv), (SFT_parser[1130] + 1)))
+#define ID_ReduceAction372 (SFT_parser[1131])
+#define COLOR_ReduceAction372 (SFT_parser[1132])
+#define INIT_TABLE_POS_ReduceAction372 (SFT_parser[1133] + 0)
+#define CALL_parser___ReduceAction372___init(recv) ((parser___ReduceAction372___init_t)CALL((recv), (SFT_parser[1133] + 1)))
+#define ID_ReduceAction373 (SFT_parser[1134])
+#define COLOR_ReduceAction373 (SFT_parser[1135])
+#define INIT_TABLE_POS_ReduceAction373 (SFT_parser[1136] + 0)
+#define CALL_parser___ReduceAction373___init(recv) ((parser___ReduceAction373___init_t)CALL((recv), (SFT_parser[1136] + 1)))
+#define ID_ReduceAction374 (SFT_parser[1137])
+#define COLOR_ReduceAction374 (SFT_parser[1138])
+#define INIT_TABLE_POS_ReduceAction374 (SFT_parser[1139] + 0)
+#define CALL_parser___ReduceAction374___init(recv) ((parser___ReduceAction374___init_t)CALL((recv), (SFT_parser[1139] + 1)))
+#define ID_ReduceAction375 (SFT_parser[1140])
+#define COLOR_ReduceAction375 (SFT_parser[1141])
+#define INIT_TABLE_POS_ReduceAction375 (SFT_parser[1142] + 0)
+#define CALL_parser___ReduceAction375___init(recv) ((parser___ReduceAction375___init_t)CALL((recv), (SFT_parser[1142] + 1)))
+#define ID_ReduceAction376 (SFT_parser[1143])
+#define COLOR_ReduceAction376 (SFT_parser[1144])
+#define INIT_TABLE_POS_ReduceAction376 (SFT_parser[1145] + 0)
+#define CALL_parser___ReduceAction376___init(recv) ((parser___ReduceAction376___init_t)CALL((recv), (SFT_parser[1145] + 1)))
+#define ID_ReduceAction377 (SFT_parser[1146])
+#define COLOR_ReduceAction377 (SFT_parser[1147])
+#define INIT_TABLE_POS_ReduceAction377 (SFT_parser[1148] + 0)
+#define CALL_parser___ReduceAction377___init(recv) ((parser___ReduceAction377___init_t)CALL((recv), (SFT_parser[1148] + 1)))
+#define ID_ReduceAction378 (SFT_parser[1149])
+#define COLOR_ReduceAction378 (SFT_parser[1150])
+#define INIT_TABLE_POS_ReduceAction378 (SFT_parser[1151] + 0)
+#define CALL_parser___ReduceAction378___init(recv) ((parser___ReduceAction378___init_t)CALL((recv), (SFT_parser[1151] + 1)))
+#define ID_ReduceAction379 (SFT_parser[1152])
+#define COLOR_ReduceAction379 (SFT_parser[1153])
+#define INIT_TABLE_POS_ReduceAction379 (SFT_parser[1154] + 0)
+#define CALL_parser___ReduceAction379___init(recv) ((parser___ReduceAction379___init_t)CALL((recv), (SFT_parser[1154] + 1)))
+#define ID_ReduceAction380 (SFT_parser[1155])
+#define COLOR_ReduceAction380 (SFT_parser[1156])
+#define INIT_TABLE_POS_ReduceAction380 (SFT_parser[1157] + 0)
+#define CALL_parser___ReduceAction380___init(recv) ((parser___ReduceAction380___init_t)CALL((recv), (SFT_parser[1157] + 1)))
+#define ID_ReduceAction381 (SFT_parser[1158])
+#define COLOR_ReduceAction381 (SFT_parser[1159])
+#define INIT_TABLE_POS_ReduceAction381 (SFT_parser[1160] + 0)
+#define CALL_parser___ReduceAction381___init(recv) ((parser___ReduceAction381___init_t)CALL((recv), (SFT_parser[1160] + 1)))
+#define ID_ReduceAction382 (SFT_parser[1161])
+#define COLOR_ReduceAction382 (SFT_parser[1162])
+#define INIT_TABLE_POS_ReduceAction382 (SFT_parser[1163] + 0)
+#define CALL_parser___ReduceAction382___init(recv) ((parser___ReduceAction382___init_t)CALL((recv), (SFT_parser[1163] + 1)))
+#define ID_ReduceAction383 (SFT_parser[1164])
+#define COLOR_ReduceAction383 (SFT_parser[1165])
+#define INIT_TABLE_POS_ReduceAction383 (SFT_parser[1166] + 0)
+#define CALL_parser___ReduceAction383___init(recv) ((parser___ReduceAction383___init_t)CALL((recv), (SFT_parser[1166] + 1)))
+#define ID_ReduceAction384 (SFT_parser[1167])
+#define COLOR_ReduceAction384 (SFT_parser[1168])
+#define INIT_TABLE_POS_ReduceAction384 (SFT_parser[1169] + 0)
+#define CALL_parser___ReduceAction384___init(recv) ((parser___ReduceAction384___init_t)CALL((recv), (SFT_parser[1169] + 1)))
+#define ID_ReduceAction385 (SFT_parser[1170])
+#define COLOR_ReduceAction385 (SFT_parser[1171])
+#define INIT_TABLE_POS_ReduceAction385 (SFT_parser[1172] + 0)
+#define CALL_parser___ReduceAction385___init(recv) ((parser___ReduceAction385___init_t)CALL((recv), (SFT_parser[1172] + 1)))
+#define ID_ReduceAction386 (SFT_parser[1173])
+#define COLOR_ReduceAction386 (SFT_parser[1174])
+#define INIT_TABLE_POS_ReduceAction386 (SFT_parser[1175] + 0)
+#define CALL_parser___ReduceAction386___init(recv) ((parser___ReduceAction386___init_t)CALL((recv), (SFT_parser[1175] + 1)))
+#define ID_ReduceAction387 (SFT_parser[1176])
+#define COLOR_ReduceAction387 (SFT_parser[1177])
+#define INIT_TABLE_POS_ReduceAction387 (SFT_parser[1178] + 0)
+#define CALL_parser___ReduceAction387___init(recv) ((parser___ReduceAction387___init_t)CALL((recv), (SFT_parser[1178] + 1)))
+#define ID_ReduceAction388 (SFT_parser[1179])
+#define COLOR_ReduceAction388 (SFT_parser[1180])
+#define INIT_TABLE_POS_ReduceAction388 (SFT_parser[1181] + 0)
+#define CALL_parser___ReduceAction388___init(recv) ((parser___ReduceAction388___init_t)CALL((recv), (SFT_parser[1181] + 1)))
+#define ID_ReduceAction389 (SFT_parser[1182])
+#define COLOR_ReduceAction389 (SFT_parser[1183])
+#define INIT_TABLE_POS_ReduceAction389 (SFT_parser[1184] + 0)
+#define CALL_parser___ReduceAction389___init(recv) ((parser___ReduceAction389___init_t)CALL((recv), (SFT_parser[1184] + 1)))
+#define ID_ReduceAction390 (SFT_parser[1185])
+#define COLOR_ReduceAction390 (SFT_parser[1186])
+#define INIT_TABLE_POS_ReduceAction390 (SFT_parser[1187] + 0)
+#define CALL_parser___ReduceAction390___init(recv) ((parser___ReduceAction390___init_t)CALL((recv), (SFT_parser[1187] + 1)))
+#define ID_ReduceAction391 (SFT_parser[1188])
+#define COLOR_ReduceAction391 (SFT_parser[1189])
+#define INIT_TABLE_POS_ReduceAction391 (SFT_parser[1190] + 0)
+#define CALL_parser___ReduceAction391___init(recv) ((parser___ReduceAction391___init_t)CALL((recv), (SFT_parser[1190] + 1)))
+#define ID_ReduceAction392 (SFT_parser[1191])
+#define COLOR_ReduceAction392 (SFT_parser[1192])
+#define INIT_TABLE_POS_ReduceAction392 (SFT_parser[1193] + 0)
+#define CALL_parser___ReduceAction392___init(recv) ((parser___ReduceAction392___init_t)CALL((recv), (SFT_parser[1193] + 1)))
+#define ID_ReduceAction393 (SFT_parser[1194])
+#define COLOR_ReduceAction393 (SFT_parser[1195])
+#define INIT_TABLE_POS_ReduceAction393 (SFT_parser[1196] + 0)
+#define CALL_parser___ReduceAction393___init(recv) ((parser___ReduceAction393___init_t)CALL((recv), (SFT_parser[1196] + 1)))
+#define ID_ReduceAction394 (SFT_parser[1197])
+#define COLOR_ReduceAction394 (SFT_parser[1198])
+#define INIT_TABLE_POS_ReduceAction394 (SFT_parser[1199] + 0)
+#define CALL_parser___ReduceAction394___init(recv) ((parser___ReduceAction394___init_t)CALL((recv), (SFT_parser[1199] + 1)))
+#define ID_ReduceAction395 (SFT_parser[1200])
+#define COLOR_ReduceAction395 (SFT_parser[1201])
+#define INIT_TABLE_POS_ReduceAction395 (SFT_parser[1202] + 0)
+#define CALL_parser___ReduceAction395___init(recv) ((parser___ReduceAction395___init_t)CALL((recv), (SFT_parser[1202] + 1)))
+#define ID_ReduceAction396 (SFT_parser[1203])
+#define COLOR_ReduceAction396 (SFT_parser[1204])
+#define INIT_TABLE_POS_ReduceAction396 (SFT_parser[1205] + 0)
+#define CALL_parser___ReduceAction396___init(recv) ((parser___ReduceAction396___init_t)CALL((recv), (SFT_parser[1205] + 1)))
+#define ID_ReduceAction397 (SFT_parser[1206])
+#define COLOR_ReduceAction397 (SFT_parser[1207])
+#define INIT_TABLE_POS_ReduceAction397 (SFT_parser[1208] + 0)
+#define CALL_parser___ReduceAction397___init(recv) ((parser___ReduceAction397___init_t)CALL((recv), (SFT_parser[1208] + 1)))
+#define ID_ReduceAction398 (SFT_parser[1209])
+#define COLOR_ReduceAction398 (SFT_parser[1210])
+#define INIT_TABLE_POS_ReduceAction398 (SFT_parser[1211] + 0)
+#define CALL_parser___ReduceAction398___init(recv) ((parser___ReduceAction398___init_t)CALL((recv), (SFT_parser[1211] + 1)))
+#define ID_ReduceAction399 (SFT_parser[1212])
+#define COLOR_ReduceAction399 (SFT_parser[1213])
+#define INIT_TABLE_POS_ReduceAction399 (SFT_parser[1214] + 0)
+#define CALL_parser___ReduceAction399___init(recv) ((parser___ReduceAction399___init_t)CALL((recv), (SFT_parser[1214] + 1)))
+#define ID_ReduceAction400 (SFT_parser[1215])
+#define COLOR_ReduceAction400 (SFT_parser[1216])
+#define INIT_TABLE_POS_ReduceAction400 (SFT_parser[1217] + 0)
+#define CALL_parser___ReduceAction400___init(recv) ((parser___ReduceAction400___init_t)CALL((recv), (SFT_parser[1217] + 1)))
+#define ID_ReduceAction401 (SFT_parser[1218])
+#define COLOR_ReduceAction401 (SFT_parser[1219])
+#define INIT_TABLE_POS_ReduceAction401 (SFT_parser[1220] + 0)
+#define CALL_parser___ReduceAction401___init(recv) ((parser___ReduceAction401___init_t)CALL((recv), (SFT_parser[1220] + 1)))
+#define ID_ReduceAction402 (SFT_parser[1221])
+#define COLOR_ReduceAction402 (SFT_parser[1222])
+#define INIT_TABLE_POS_ReduceAction402 (SFT_parser[1223] + 0)
+#define CALL_parser___ReduceAction402___init(recv) ((parser___ReduceAction402___init_t)CALL((recv), (SFT_parser[1223] + 1)))
+#define ID_ReduceAction403 (SFT_parser[1224])
+#define COLOR_ReduceAction403 (SFT_parser[1225])
+#define INIT_TABLE_POS_ReduceAction403 (SFT_parser[1226] + 0)
+#define CALL_parser___ReduceAction403___init(recv) ((parser___ReduceAction403___init_t)CALL((recv), (SFT_parser[1226] + 1)))
+#define ID_ReduceAction404 (SFT_parser[1227])
+#define COLOR_ReduceAction404 (SFT_parser[1228])
+#define INIT_TABLE_POS_ReduceAction404 (SFT_parser[1229] + 0)
+#define CALL_parser___ReduceAction404___init(recv) ((parser___ReduceAction404___init_t)CALL((recv), (SFT_parser[1229] + 1)))
+#define ID_ReduceAction405 (SFT_parser[1230])
+#define COLOR_ReduceAction405 (SFT_parser[1231])
+#define INIT_TABLE_POS_ReduceAction405 (SFT_parser[1232] + 0)
+#define CALL_parser___ReduceAction405___init(recv) ((parser___ReduceAction405___init_t)CALL((recv), (SFT_parser[1232] + 1)))
+#define ID_ReduceAction406 (SFT_parser[1233])
+#define COLOR_ReduceAction406 (SFT_parser[1234])
+#define INIT_TABLE_POS_ReduceAction406 (SFT_parser[1235] + 0)
+#define CALL_parser___ReduceAction406___init(recv) ((parser___ReduceAction406___init_t)CALL((recv), (SFT_parser[1235] + 1)))
+#define ID_ReduceAction407 (SFT_parser[1236])
+#define COLOR_ReduceAction407 (SFT_parser[1237])
+#define INIT_TABLE_POS_ReduceAction407 (SFT_parser[1238] + 0)
+#define CALL_parser___ReduceAction407___init(recv) ((parser___ReduceAction407___init_t)CALL((recv), (SFT_parser[1238] + 1)))
+#define ID_ReduceAction408 (SFT_parser[1239])
+#define COLOR_ReduceAction408 (SFT_parser[1240])
+#define INIT_TABLE_POS_ReduceAction408 (SFT_parser[1241] + 0)
+#define CALL_parser___ReduceAction408___init(recv) ((parser___ReduceAction408___init_t)CALL((recv), (SFT_parser[1241] + 1)))
+#define ID_ReduceAction409 (SFT_parser[1242])
+#define COLOR_ReduceAction409 (SFT_parser[1243])
+#define INIT_TABLE_POS_ReduceAction409 (SFT_parser[1244] + 0)
+#define CALL_parser___ReduceAction409___init(recv) ((parser___ReduceAction409___init_t)CALL((recv), (SFT_parser[1244] + 1)))
+#define ID_ReduceAction410 (SFT_parser[1245])
+#define COLOR_ReduceAction410 (SFT_parser[1246])
+#define INIT_TABLE_POS_ReduceAction410 (SFT_parser[1247] + 0)
+#define CALL_parser___ReduceAction410___init(recv) ((parser___ReduceAction410___init_t)CALL((recv), (SFT_parser[1247] + 1)))
+#define ID_ReduceAction411 (SFT_parser[1248])
+#define COLOR_ReduceAction411 (SFT_parser[1249])
+#define INIT_TABLE_POS_ReduceAction411 (SFT_parser[1250] + 0)
+#define CALL_parser___ReduceAction411___init(recv) ((parser___ReduceAction411___init_t)CALL((recv), (SFT_parser[1250] + 1)))
+#define ID_ReduceAction412 (SFT_parser[1251])
+#define COLOR_ReduceAction412 (SFT_parser[1252])
+#define INIT_TABLE_POS_ReduceAction412 (SFT_parser[1253] + 0)
+#define CALL_parser___ReduceAction412___init(recv) ((parser___ReduceAction412___init_t)CALL((recv), (SFT_parser[1253] + 1)))
+#define ID_ReduceAction413 (SFT_parser[1254])
+#define COLOR_ReduceAction413 (SFT_parser[1255])
+#define INIT_TABLE_POS_ReduceAction413 (SFT_parser[1256] + 0)
+#define CALL_parser___ReduceAction413___init(recv) ((parser___ReduceAction413___init_t)CALL((recv), (SFT_parser[1256] + 1)))
+#define ID_ReduceAction414 (SFT_parser[1257])
+#define COLOR_ReduceAction414 (SFT_parser[1258])
+#define INIT_TABLE_POS_ReduceAction414 (SFT_parser[1259] + 0)
+#define CALL_parser___ReduceAction414___init(recv) ((parser___ReduceAction414___init_t)CALL((recv), (SFT_parser[1259] + 1)))
+#define ID_ReduceAction415 (SFT_parser[1260])
+#define COLOR_ReduceAction415 (SFT_parser[1261])
+#define INIT_TABLE_POS_ReduceAction415 (SFT_parser[1262] + 0)
+#define CALL_parser___ReduceAction415___init(recv) ((parser___ReduceAction415___init_t)CALL((recv), (SFT_parser[1262] + 1)))
+#define ID_ReduceAction416 (SFT_parser[1263])
+#define COLOR_ReduceAction416 (SFT_parser[1264])
+#define INIT_TABLE_POS_ReduceAction416 (SFT_parser[1265] + 0)
+#define CALL_parser___ReduceAction416___init(recv) ((parser___ReduceAction416___init_t)CALL((recv), (SFT_parser[1265] + 1)))
+#define ID_ReduceAction417 (SFT_parser[1266])
+#define COLOR_ReduceAction417 (SFT_parser[1267])
+#define INIT_TABLE_POS_ReduceAction417 (SFT_parser[1268] + 0)
+#define CALL_parser___ReduceAction417___init(recv) ((parser___ReduceAction417___init_t)CALL((recv), (SFT_parser[1268] + 1)))
+#define ID_ReduceAction418 (SFT_parser[1269])
+#define COLOR_ReduceAction418 (SFT_parser[1270])
+#define INIT_TABLE_POS_ReduceAction418 (SFT_parser[1271] + 0)
+#define CALL_parser___ReduceAction418___init(recv) ((parser___ReduceAction418___init_t)CALL((recv), (SFT_parser[1271] + 1)))
+#define ID_ReduceAction419 (SFT_parser[1272])
+#define COLOR_ReduceAction419 (SFT_parser[1273])
+#define INIT_TABLE_POS_ReduceAction419 (SFT_parser[1274] + 0)
+#define CALL_parser___ReduceAction419___init(recv) ((parser___ReduceAction419___init_t)CALL((recv), (SFT_parser[1274] + 1)))
+#define ID_ReduceAction420 (SFT_parser[1275])
+#define COLOR_ReduceAction420 (SFT_parser[1276])
+#define INIT_TABLE_POS_ReduceAction420 (SFT_parser[1277] + 0)
+#define CALL_parser___ReduceAction420___init(recv) ((parser___ReduceAction420___init_t)CALL((recv), (SFT_parser[1277] + 1)))
+#define ID_ReduceAction421 (SFT_parser[1278])
+#define COLOR_ReduceAction421 (SFT_parser[1279])
+#define INIT_TABLE_POS_ReduceAction421 (SFT_parser[1280] + 0)
+#define CALL_parser___ReduceAction421___init(recv) ((parser___ReduceAction421___init_t)CALL((recv), (SFT_parser[1280] + 1)))
+#define ID_ReduceAction422 (SFT_parser[1281])
+#define COLOR_ReduceAction422 (SFT_parser[1282])
+#define INIT_TABLE_POS_ReduceAction422 (SFT_parser[1283] + 0)
+#define CALL_parser___ReduceAction422___init(recv) ((parser___ReduceAction422___init_t)CALL((recv), (SFT_parser[1283] + 1)))
+#define ID_ReduceAction423 (SFT_parser[1284])
+#define COLOR_ReduceAction423 (SFT_parser[1285])
+#define INIT_TABLE_POS_ReduceAction423 (SFT_parser[1286] + 0)
+#define CALL_parser___ReduceAction423___init(recv) ((parser___ReduceAction423___init_t)CALL((recv), (SFT_parser[1286] + 1)))
+#define ID_ReduceAction424 (SFT_parser[1287])
+#define COLOR_ReduceAction424 (SFT_parser[1288])
+#define INIT_TABLE_POS_ReduceAction424 (SFT_parser[1289] + 0)
+#define CALL_parser___ReduceAction424___init(recv) ((parser___ReduceAction424___init_t)CALL((recv), (SFT_parser[1289] + 1)))
+#define ID_ReduceAction425 (SFT_parser[1290])
+#define COLOR_ReduceAction425 (SFT_parser[1291])
+#define INIT_TABLE_POS_ReduceAction425 (SFT_parser[1292] + 0)
+#define CALL_parser___ReduceAction425___init(recv) ((parser___ReduceAction425___init_t)CALL((recv), (SFT_parser[1292] + 1)))
+#define ID_ReduceAction426 (SFT_parser[1293])
+#define COLOR_ReduceAction426 (SFT_parser[1294])
+#define INIT_TABLE_POS_ReduceAction426 (SFT_parser[1295] + 0)
+#define CALL_parser___ReduceAction426___init(recv) ((parser___ReduceAction426___init_t)CALL((recv), (SFT_parser[1295] + 1)))
+#define ID_ReduceAction427 (SFT_parser[1296])
+#define COLOR_ReduceAction427 (SFT_parser[1297])
+#define INIT_TABLE_POS_ReduceAction427 (SFT_parser[1298] + 0)
+#define CALL_parser___ReduceAction427___init(recv) ((parser___ReduceAction427___init_t)CALL((recv), (SFT_parser[1298] + 1)))
+#define ID_ReduceAction428 (SFT_parser[1299])
+#define COLOR_ReduceAction428 (SFT_parser[1300])
+#define INIT_TABLE_POS_ReduceAction428 (SFT_parser[1301] + 0)
+#define CALL_parser___ReduceAction428___init(recv) ((parser___ReduceAction428___init_t)CALL((recv), (SFT_parser[1301] + 1)))
+#define ID_ReduceAction429 (SFT_parser[1302])
+#define COLOR_ReduceAction429 (SFT_parser[1303])
+#define INIT_TABLE_POS_ReduceAction429 (SFT_parser[1304] + 0)
+#define CALL_parser___ReduceAction429___init(recv) ((parser___ReduceAction429___init_t)CALL((recv), (SFT_parser[1304] + 1)))
+#define ID_ReduceAction430 (SFT_parser[1305])
+#define COLOR_ReduceAction430 (SFT_parser[1306])
+#define INIT_TABLE_POS_ReduceAction430 (SFT_parser[1307] + 0)
+#define CALL_parser___ReduceAction430___init(recv) ((parser___ReduceAction430___init_t)CALL((recv), (SFT_parser[1307] + 1)))
+#define ID_ReduceAction431 (SFT_parser[1308])
+#define COLOR_ReduceAction431 (SFT_parser[1309])
+#define INIT_TABLE_POS_ReduceAction431 (SFT_parser[1310] + 0)
+#define CALL_parser___ReduceAction431___init(recv) ((parser___ReduceAction431___init_t)CALL((recv), (SFT_parser[1310] + 1)))
+#define ID_ReduceAction432 (SFT_parser[1311])
+#define COLOR_ReduceAction432 (SFT_parser[1312])
+#define INIT_TABLE_POS_ReduceAction432 (SFT_parser[1313] + 0)
+#define CALL_parser___ReduceAction432___init(recv) ((parser___ReduceAction432___init_t)CALL((recv), (SFT_parser[1313] + 1)))
+#define ID_ReduceAction433 (SFT_parser[1314])
+#define COLOR_ReduceAction433 (SFT_parser[1315])
+#define INIT_TABLE_POS_ReduceAction433 (SFT_parser[1316] + 0)
+#define CALL_parser___ReduceAction433___init(recv) ((parser___ReduceAction433___init_t)CALL((recv), (SFT_parser[1316] + 1)))
+#define ID_ReduceAction434 (SFT_parser[1317])
+#define COLOR_ReduceAction434 (SFT_parser[1318])
+#define INIT_TABLE_POS_ReduceAction434 (SFT_parser[1319] + 0)
+#define CALL_parser___ReduceAction434___init(recv) ((parser___ReduceAction434___init_t)CALL((recv), (SFT_parser[1319] + 1)))
+#define ID_ReduceAction435 (SFT_parser[1320])
+#define COLOR_ReduceAction435 (SFT_parser[1321])
+#define INIT_TABLE_POS_ReduceAction435 (SFT_parser[1322] + 0)
+#define CALL_parser___ReduceAction435___init(recv) ((parser___ReduceAction435___init_t)CALL((recv), (SFT_parser[1322] + 1)))
+#define ID_ReduceAction436 (SFT_parser[1323])
+#define COLOR_ReduceAction436 (SFT_parser[1324])
+#define INIT_TABLE_POS_ReduceAction436 (SFT_parser[1325] + 0)
+#define CALL_parser___ReduceAction436___init(recv) ((parser___ReduceAction436___init_t)CALL((recv), (SFT_parser[1325] + 1)))
+#define ID_ReduceAction437 (SFT_parser[1326])
+#define COLOR_ReduceAction437 (SFT_parser[1327])
+#define INIT_TABLE_POS_ReduceAction437 (SFT_parser[1328] + 0)
+#define CALL_parser___ReduceAction437___init(recv) ((parser___ReduceAction437___init_t)CALL((recv), (SFT_parser[1328] + 1)))
+#define ID_ReduceAction438 (SFT_parser[1329])
+#define COLOR_ReduceAction438 (SFT_parser[1330])
+#define INIT_TABLE_POS_ReduceAction438 (SFT_parser[1331] + 0)
+#define CALL_parser___ReduceAction438___init(recv) ((parser___ReduceAction438___init_t)CALL((recv), (SFT_parser[1331] + 1)))
+#define ID_ReduceAction439 (SFT_parser[1332])
+#define COLOR_ReduceAction439 (SFT_parser[1333])
+#define INIT_TABLE_POS_ReduceAction439 (SFT_parser[1334] + 0)
+#define CALL_parser___ReduceAction439___init(recv) ((parser___ReduceAction439___init_t)CALL((recv), (SFT_parser[1334] + 1)))
+#define ID_ReduceAction440 (SFT_parser[1335])
+#define COLOR_ReduceAction440 (SFT_parser[1336])
+#define INIT_TABLE_POS_ReduceAction440 (SFT_parser[1337] + 0)
+#define CALL_parser___ReduceAction440___init(recv) ((parser___ReduceAction440___init_t)CALL((recv), (SFT_parser[1337] + 1)))
+#define ID_ReduceAction441 (SFT_parser[1338])
+#define COLOR_ReduceAction441 (SFT_parser[1339])
+#define INIT_TABLE_POS_ReduceAction441 (SFT_parser[1340] + 0)
+#define CALL_parser___ReduceAction441___init(recv) ((parser___ReduceAction441___init_t)CALL((recv), (SFT_parser[1340] + 1)))
+#define ID_ReduceAction442 (SFT_parser[1341])
+#define COLOR_ReduceAction442 (SFT_parser[1342])
+#define INIT_TABLE_POS_ReduceAction442 (SFT_parser[1343] + 0)
+#define CALL_parser___ReduceAction442___init(recv) ((parser___ReduceAction442___init_t)CALL((recv), (SFT_parser[1343] + 1)))
+#define ID_ReduceAction443 (SFT_parser[1344])
+#define COLOR_ReduceAction443 (SFT_parser[1345])
+#define INIT_TABLE_POS_ReduceAction443 (SFT_parser[1346] + 0)
+#define CALL_parser___ReduceAction443___init(recv) ((parser___ReduceAction443___init_t)CALL((recv), (SFT_parser[1346] + 1)))
+#define ID_ReduceAction444 (SFT_parser[1347])
+#define COLOR_ReduceAction444 (SFT_parser[1348])
+#define INIT_TABLE_POS_ReduceAction444 (SFT_parser[1349] + 0)
+#define CALL_parser___ReduceAction444___init(recv) ((parser___ReduceAction444___init_t)CALL((recv), (SFT_parser[1349] + 1)))
+#define ID_ReduceAction445 (SFT_parser[1350])
+#define COLOR_ReduceAction445 (SFT_parser[1351])
+#define INIT_TABLE_POS_ReduceAction445 (SFT_parser[1352] + 0)
+#define CALL_parser___ReduceAction445___init(recv) ((parser___ReduceAction445___init_t)CALL((recv), (SFT_parser[1352] + 1)))
+#define ID_ReduceAction446 (SFT_parser[1353])
+#define COLOR_ReduceAction446 (SFT_parser[1354])
+#define INIT_TABLE_POS_ReduceAction446 (SFT_parser[1355] + 0)
+#define CALL_parser___ReduceAction446___init(recv) ((parser___ReduceAction446___init_t)CALL((recv), (SFT_parser[1355] + 1)))
+#define ID_ReduceAction447 (SFT_parser[1356])
+#define COLOR_ReduceAction447 (SFT_parser[1357])
+#define INIT_TABLE_POS_ReduceAction447 (SFT_parser[1358] + 0)
+#define CALL_parser___ReduceAction447___init(recv) ((parser___ReduceAction447___init_t)CALL((recv), (SFT_parser[1358] + 1)))
+#define ID_ReduceAction448 (SFT_parser[1359])
+#define COLOR_ReduceAction448 (SFT_parser[1360])
+#define INIT_TABLE_POS_ReduceAction448 (SFT_parser[1361] + 0)
+#define CALL_parser___ReduceAction448___init(recv) ((parser___ReduceAction448___init_t)CALL((recv), (SFT_parser[1361] + 1)))
+#define ID_ReduceAction449 (SFT_parser[1362])
+#define COLOR_ReduceAction449 (SFT_parser[1363])
+#define INIT_TABLE_POS_ReduceAction449 (SFT_parser[1364] + 0)
+#define CALL_parser___ReduceAction449___init(recv) ((parser___ReduceAction449___init_t)CALL((recv), (SFT_parser[1364] + 1)))
+#define ID_ReduceAction450 (SFT_parser[1365])
+#define COLOR_ReduceAction450 (SFT_parser[1366])
+#define INIT_TABLE_POS_ReduceAction450 (SFT_parser[1367] + 0)
+#define CALL_parser___ReduceAction450___init(recv) ((parser___ReduceAction450___init_t)CALL((recv), (SFT_parser[1367] + 1)))
+#define ID_ReduceAction451 (SFT_parser[1368])
+#define COLOR_ReduceAction451 (SFT_parser[1369])
+#define INIT_TABLE_POS_ReduceAction451 (SFT_parser[1370] + 0)
+#define CALL_parser___ReduceAction451___init(recv) ((parser___ReduceAction451___init_t)CALL((recv), (SFT_parser[1370] + 1)))
+#define ID_ReduceAction452 (SFT_parser[1371])
+#define COLOR_ReduceAction452 (SFT_parser[1372])
+#define INIT_TABLE_POS_ReduceAction452 (SFT_parser[1373] + 0)
+#define CALL_parser___ReduceAction452___init(recv) ((parser___ReduceAction452___init_t)CALL((recv), (SFT_parser[1373] + 1)))
+#define ID_ReduceAction453 (SFT_parser[1374])
+#define COLOR_ReduceAction453 (SFT_parser[1375])
+#define INIT_TABLE_POS_ReduceAction453 (SFT_parser[1376] + 0)
+#define CALL_parser___ReduceAction453___init(recv) ((parser___ReduceAction453___init_t)CALL((recv), (SFT_parser[1376] + 1)))
+#define ID_ReduceAction454 (SFT_parser[1377])
+#define COLOR_ReduceAction454 (SFT_parser[1378])
+#define INIT_TABLE_POS_ReduceAction454 (SFT_parser[1379] + 0)
+#define CALL_parser___ReduceAction454___init(recv) ((parser___ReduceAction454___init_t)CALL((recv), (SFT_parser[1379] + 1)))
+#define ID_ReduceAction455 (SFT_parser[1380])
+#define COLOR_ReduceAction455 (SFT_parser[1381])
+#define INIT_TABLE_POS_ReduceAction455 (SFT_parser[1382] + 0)
+#define CALL_parser___ReduceAction455___init(recv) ((parser___ReduceAction455___init_t)CALL((recv), (SFT_parser[1382] + 1)))
+#define ID_ReduceAction456 (SFT_parser[1383])
+#define COLOR_ReduceAction456 (SFT_parser[1384])
+#define INIT_TABLE_POS_ReduceAction456 (SFT_parser[1385] + 0)
+#define CALL_parser___ReduceAction456___init(recv) ((parser___ReduceAction456___init_t)CALL((recv), (SFT_parser[1385] + 1)))
+#define ID_ReduceAction457 (SFT_parser[1386])
+#define COLOR_ReduceAction457 (SFT_parser[1387])
+#define INIT_TABLE_POS_ReduceAction457 (SFT_parser[1388] + 0)
+#define CALL_parser___ReduceAction457___init(recv) ((parser___ReduceAction457___init_t)CALL((recv), (SFT_parser[1388] + 1)))
+#define ID_ReduceAction458 (SFT_parser[1389])
+#define COLOR_ReduceAction458 (SFT_parser[1390])
+#define INIT_TABLE_POS_ReduceAction458 (SFT_parser[1391] + 0)
+#define CALL_parser___ReduceAction458___init(recv) ((parser___ReduceAction458___init_t)CALL((recv), (SFT_parser[1391] + 1)))
+#define ID_ReduceAction459 (SFT_parser[1392])
+#define COLOR_ReduceAction459 (SFT_parser[1393])
+#define INIT_TABLE_POS_ReduceAction459 (SFT_parser[1394] + 0)
+#define CALL_parser___ReduceAction459___init(recv) ((parser___ReduceAction459___init_t)CALL((recv), (SFT_parser[1394] + 1)))
+#define ID_ReduceAction460 (SFT_parser[1395])
+#define COLOR_ReduceAction460 (SFT_parser[1396])
+#define INIT_TABLE_POS_ReduceAction460 (SFT_parser[1397] + 0)
+#define CALL_parser___ReduceAction460___init(recv) ((parser___ReduceAction460___init_t)CALL((recv), (SFT_parser[1397] + 1)))
+#define ID_ReduceAction461 (SFT_parser[1398])
+#define COLOR_ReduceAction461 (SFT_parser[1399])
+#define INIT_TABLE_POS_ReduceAction461 (SFT_parser[1400] + 0)
+#define CALL_parser___ReduceAction461___init(recv) ((parser___ReduceAction461___init_t)CALL((recv), (SFT_parser[1400] + 1)))
+#define ID_ReduceAction462 (SFT_parser[1401])
+#define COLOR_ReduceAction462 (SFT_parser[1402])
+#define INIT_TABLE_POS_ReduceAction462 (SFT_parser[1403] + 0)
+#define CALL_parser___ReduceAction462___init(recv) ((parser___ReduceAction462___init_t)CALL((recv), (SFT_parser[1403] + 1)))
+#define ID_ReduceAction463 (SFT_parser[1404])
+#define COLOR_ReduceAction463 (SFT_parser[1405])
+#define INIT_TABLE_POS_ReduceAction463 (SFT_parser[1406] + 0)
+#define CALL_parser___ReduceAction463___init(recv) ((parser___ReduceAction463___init_t)CALL((recv), (SFT_parser[1406] + 1)))
+#define ID_ReduceAction464 (SFT_parser[1407])
+#define COLOR_ReduceAction464 (SFT_parser[1408])
+#define INIT_TABLE_POS_ReduceAction464 (SFT_parser[1409] + 0)
+#define CALL_parser___ReduceAction464___init(recv) ((parser___ReduceAction464___init_t)CALL((recv), (SFT_parser[1409] + 1)))
+#define ID_ReduceAction465 (SFT_parser[1410])
+#define COLOR_ReduceAction465 (SFT_parser[1411])
+#define INIT_TABLE_POS_ReduceAction465 (SFT_parser[1412] + 0)
+#define CALL_parser___ReduceAction465___init(recv) ((parser___ReduceAction465___init_t)CALL((recv), (SFT_parser[1412] + 1)))
+#define ID_ReduceAction466 (SFT_parser[1413])
+#define COLOR_ReduceAction466 (SFT_parser[1414])
+#define INIT_TABLE_POS_ReduceAction466 (SFT_parser[1415] + 0)
+#define CALL_parser___ReduceAction466___init(recv) ((parser___ReduceAction466___init_t)CALL((recv), (SFT_parser[1415] + 1)))
+#define ID_ReduceAction467 (SFT_parser[1416])
+#define COLOR_ReduceAction467 (SFT_parser[1417])
+#define INIT_TABLE_POS_ReduceAction467 (SFT_parser[1418] + 0)
+#define CALL_parser___ReduceAction467___init(recv) ((parser___ReduceAction467___init_t)CALL((recv), (SFT_parser[1418] + 1)))
+#define ID_ReduceAction468 (SFT_parser[1419])
+#define COLOR_ReduceAction468 (SFT_parser[1420])
+#define INIT_TABLE_POS_ReduceAction468 (SFT_parser[1421] + 0)
+#define CALL_parser___ReduceAction468___init(recv) ((parser___ReduceAction468___init_t)CALL((recv), (SFT_parser[1421] + 1)))
+#define ID_ReduceAction469 (SFT_parser[1422])
+#define COLOR_ReduceAction469 (SFT_parser[1423])
+#define INIT_TABLE_POS_ReduceAction469 (SFT_parser[1424] + 0)
+#define CALL_parser___ReduceAction469___init(recv) ((parser___ReduceAction469___init_t)CALL((recv), (SFT_parser[1424] + 1)))
+#define ID_ReduceAction470 (SFT_parser[1425])
+#define COLOR_ReduceAction470 (SFT_parser[1426])
+#define INIT_TABLE_POS_ReduceAction470 (SFT_parser[1427] + 0)
+#define CALL_parser___ReduceAction470___init(recv) ((parser___ReduceAction470___init_t)CALL((recv), (SFT_parser[1427] + 1)))
+#define ID_ReduceAction471 (SFT_parser[1428])
+#define COLOR_ReduceAction471 (SFT_parser[1429])
+#define INIT_TABLE_POS_ReduceAction471 (SFT_parser[1430] + 0)
+#define CALL_parser___ReduceAction471___init(recv) ((parser___ReduceAction471___init_t)CALL((recv), (SFT_parser[1430] + 1)))
+#define ID_ReduceAction472 (SFT_parser[1431])
+#define COLOR_ReduceAction472 (SFT_parser[1432])
+#define INIT_TABLE_POS_ReduceAction472 (SFT_parser[1433] + 0)
+#define CALL_parser___ReduceAction472___init(recv) ((parser___ReduceAction472___init_t)CALL((recv), (SFT_parser[1433] + 1)))
+#define ID_ReduceAction473 (SFT_parser[1434])
+#define COLOR_ReduceAction473 (SFT_parser[1435])
+#define INIT_TABLE_POS_ReduceAction473 (SFT_parser[1436] + 0)
+#define CALL_parser___ReduceAction473___init(recv) ((parser___ReduceAction473___init_t)CALL((recv), (SFT_parser[1436] + 1)))
+#define ID_ReduceAction474 (SFT_parser[1437])
+#define COLOR_ReduceAction474 (SFT_parser[1438])
+#define INIT_TABLE_POS_ReduceAction474 (SFT_parser[1439] + 0)
+#define CALL_parser___ReduceAction474___init(recv) ((parser___ReduceAction474___init_t)CALL((recv), (SFT_parser[1439] + 1)))
+#define ID_ReduceAction475 (SFT_parser[1440])
+#define COLOR_ReduceAction475 (SFT_parser[1441])
+#define INIT_TABLE_POS_ReduceAction475 (SFT_parser[1442] + 0)
+#define CALL_parser___ReduceAction475___init(recv) ((parser___ReduceAction475___init_t)CALL((recv), (SFT_parser[1442] + 1)))
+#define ID_ReduceAction476 (SFT_parser[1443])
+#define COLOR_ReduceAction476 (SFT_parser[1444])
+#define INIT_TABLE_POS_ReduceAction476 (SFT_parser[1445] + 0)
+#define CALL_parser___ReduceAction476___init(recv) ((parser___ReduceAction476___init_t)CALL((recv), (SFT_parser[1445] + 1)))
+#define ID_ReduceAction477 (SFT_parser[1446])
+#define COLOR_ReduceAction477 (SFT_parser[1447])
+#define INIT_TABLE_POS_ReduceAction477 (SFT_parser[1448] + 0)
+#define CALL_parser___ReduceAction477___init(recv) ((parser___ReduceAction477___init_t)CALL((recv), (SFT_parser[1448] + 1)))
+#define ID_ReduceAction478 (SFT_parser[1449])
+#define COLOR_ReduceAction478 (SFT_parser[1450])
+#define INIT_TABLE_POS_ReduceAction478 (SFT_parser[1451] + 0)
+#define CALL_parser___ReduceAction478___init(recv) ((parser___ReduceAction478___init_t)CALL((recv), (SFT_parser[1451] + 1)))
+#define ID_ReduceAction479 (SFT_parser[1452])
+#define COLOR_ReduceAction479 (SFT_parser[1453])
+#define INIT_TABLE_POS_ReduceAction479 (SFT_parser[1454] + 0)
+#define CALL_parser___ReduceAction479___init(recv) ((parser___ReduceAction479___init_t)CALL((recv), (SFT_parser[1454] + 1)))
+#define ID_ReduceAction480 (SFT_parser[1455])
+#define COLOR_ReduceAction480 (SFT_parser[1456])
+#define INIT_TABLE_POS_ReduceAction480 (SFT_parser[1457] + 0)
+#define CALL_parser___ReduceAction480___init(recv) ((parser___ReduceAction480___init_t)CALL((recv), (SFT_parser[1457] + 1)))
+#define ID_ReduceAction481 (SFT_parser[1458])
+#define COLOR_ReduceAction481 (SFT_parser[1459])
+#define INIT_TABLE_POS_ReduceAction481 (SFT_parser[1460] + 0)
+#define CALL_parser___ReduceAction481___init(recv) ((parser___ReduceAction481___init_t)CALL((recv), (SFT_parser[1460] + 1)))
+#define ID_ReduceAction482 (SFT_parser[1461])
+#define COLOR_ReduceAction482 (SFT_parser[1462])
+#define INIT_TABLE_POS_ReduceAction482 (SFT_parser[1463] + 0)
+#define CALL_parser___ReduceAction482___init(recv) ((parser___ReduceAction482___init_t)CALL((recv), (SFT_parser[1463] + 1)))
+#define ID_ReduceAction483 (SFT_parser[1464])
+#define COLOR_ReduceAction483 (SFT_parser[1465])
+#define INIT_TABLE_POS_ReduceAction483 (SFT_parser[1466] + 0)
+#define CALL_parser___ReduceAction483___init(recv) ((parser___ReduceAction483___init_t)CALL((recv), (SFT_parser[1466] + 1)))
+#define ID_ReduceAction484 (SFT_parser[1467])
+#define COLOR_ReduceAction484 (SFT_parser[1468])
+#define INIT_TABLE_POS_ReduceAction484 (SFT_parser[1469] + 0)
+#define CALL_parser___ReduceAction484___init(recv) ((parser___ReduceAction484___init_t)CALL((recv), (SFT_parser[1469] + 1)))
+#define ID_ReduceAction485 (SFT_parser[1470])
+#define COLOR_ReduceAction485 (SFT_parser[1471])
+#define INIT_TABLE_POS_ReduceAction485 (SFT_parser[1472] + 0)
+#define CALL_parser___ReduceAction485___init(recv) ((parser___ReduceAction485___init_t)CALL((recv), (SFT_parser[1472] + 1)))
+#define ID_ReduceAction486 (SFT_parser[1473])
+#define COLOR_ReduceAction486 (SFT_parser[1474])
+#define INIT_TABLE_POS_ReduceAction486 (SFT_parser[1475] + 0)
+#define CALL_parser___ReduceAction486___init(recv) ((parser___ReduceAction486___init_t)CALL((recv), (SFT_parser[1475] + 1)))
+#define ID_ReduceAction487 (SFT_parser[1476])
+#define COLOR_ReduceAction487 (SFT_parser[1477])
+#define INIT_TABLE_POS_ReduceAction487 (SFT_parser[1478] + 0)
+#define CALL_parser___ReduceAction487___init(recv) ((parser___ReduceAction487___init_t)CALL((recv), (SFT_parser[1478] + 1)))
+#define ID_ReduceAction488 (SFT_parser[1479])
+#define COLOR_ReduceAction488 (SFT_parser[1480])
+#define INIT_TABLE_POS_ReduceAction488 (SFT_parser[1481] + 0)
+#define CALL_parser___ReduceAction488___init(recv) ((parser___ReduceAction488___init_t)CALL((recv), (SFT_parser[1481] + 1)))
+#define ID_ReduceAction489 (SFT_parser[1482])
+#define COLOR_ReduceAction489 (SFT_parser[1483])
+#define INIT_TABLE_POS_ReduceAction489 (SFT_parser[1484] + 0)
+#define CALL_parser___ReduceAction489___init(recv) ((parser___ReduceAction489___init_t)CALL((recv), (SFT_parser[1484] + 1)))
+#define ID_ReduceAction490 (SFT_parser[1485])
+#define COLOR_ReduceAction490 (SFT_parser[1486])
+#define INIT_TABLE_POS_ReduceAction490 (SFT_parser[1487] + 0)
+#define CALL_parser___ReduceAction490___init(recv) ((parser___ReduceAction490___init_t)CALL((recv), (SFT_parser[1487] + 1)))
+#define ID_ReduceAction491 (SFT_parser[1488])
+#define COLOR_ReduceAction491 (SFT_parser[1489])
+#define INIT_TABLE_POS_ReduceAction491 (SFT_parser[1490] + 0)
+#define CALL_parser___ReduceAction491___init(recv) ((parser___ReduceAction491___init_t)CALL((recv), (SFT_parser[1490] + 1)))
+#define ID_ReduceAction492 (SFT_parser[1491])
+#define COLOR_ReduceAction492 (SFT_parser[1492])
+#define INIT_TABLE_POS_ReduceAction492 (SFT_parser[1493] + 0)
+#define CALL_parser___ReduceAction492___init(recv) ((parser___ReduceAction492___init_t)CALL((recv), (SFT_parser[1493] + 1)))
+#define ID_ReduceAction493 (SFT_parser[1494])
+#define COLOR_ReduceAction493 (SFT_parser[1495])
+#define INIT_TABLE_POS_ReduceAction493 (SFT_parser[1496] + 0)
+#define CALL_parser___ReduceAction493___init(recv) ((parser___ReduceAction493___init_t)CALL((recv), (SFT_parser[1496] + 1)))
+#define ID_ReduceAction494 (SFT_parser[1497])
+#define COLOR_ReduceAction494 (SFT_parser[1498])
+#define INIT_TABLE_POS_ReduceAction494 (SFT_parser[1499] + 0)
+#define CALL_parser___ReduceAction494___init(recv) ((parser___ReduceAction494___init_t)CALL((recv), (SFT_parser[1499] + 1)))
+#define ID_ReduceAction495 (SFT_parser[1500])
+#define COLOR_ReduceAction495 (SFT_parser[1501])
+#define INIT_TABLE_POS_ReduceAction495 (SFT_parser[1502] + 0)
+#define CALL_parser___ReduceAction495___init(recv) ((parser___ReduceAction495___init_t)CALL((recv), (SFT_parser[1502] + 1)))
+#define ID_ReduceAction496 (SFT_parser[1503])
+#define COLOR_ReduceAction496 (SFT_parser[1504])
+#define INIT_TABLE_POS_ReduceAction496 (SFT_parser[1505] + 0)
+#define CALL_parser___ReduceAction496___init(recv) ((parser___ReduceAction496___init_t)CALL((recv), (SFT_parser[1505] + 1)))
+#define ID_ReduceAction497 (SFT_parser[1506])
+#define COLOR_ReduceAction497 (SFT_parser[1507])
+#define INIT_TABLE_POS_ReduceAction497 (SFT_parser[1508] + 0)
+#define CALL_parser___ReduceAction497___init(recv) ((parser___ReduceAction497___init_t)CALL((recv), (SFT_parser[1508] + 1)))
+#define ID_ReduceAction498 (SFT_parser[1509])
+#define COLOR_ReduceAction498 (SFT_parser[1510])
+#define INIT_TABLE_POS_ReduceAction498 (SFT_parser[1511] + 0)
+#define CALL_parser___ReduceAction498___init(recv) ((parser___ReduceAction498___init_t)CALL((recv), (SFT_parser[1511] + 1)))
+#define ID_ReduceAction499 (SFT_parser[1512])
+#define COLOR_ReduceAction499 (SFT_parser[1513])
+#define INIT_TABLE_POS_ReduceAction499 (SFT_parser[1514] + 0)
+#define CALL_parser___ReduceAction499___init(recv) ((parser___ReduceAction499___init_t)CALL((recv), (SFT_parser[1514] + 1)))
+#define ID_ReduceAction500 (SFT_parser[1515])
+#define COLOR_ReduceAction500 (SFT_parser[1516])
+#define INIT_TABLE_POS_ReduceAction500 (SFT_parser[1517] + 0)
+#define CALL_parser___ReduceAction500___init(recv) ((parser___ReduceAction500___init_t)CALL((recv), (SFT_parser[1517] + 1)))
+#define ID_ReduceAction501 (SFT_parser[1518])
+#define COLOR_ReduceAction501 (SFT_parser[1519])
+#define INIT_TABLE_POS_ReduceAction501 (SFT_parser[1520] + 0)
+#define CALL_parser___ReduceAction501___init(recv) ((parser___ReduceAction501___init_t)CALL((recv), (SFT_parser[1520] + 1)))
+#define ID_ReduceAction502 (SFT_parser[1521])
+#define COLOR_ReduceAction502 (SFT_parser[1522])
+#define INIT_TABLE_POS_ReduceAction502 (SFT_parser[1523] + 0)
+#define CALL_parser___ReduceAction502___init(recv) ((parser___ReduceAction502___init_t)CALL((recv), (SFT_parser[1523] + 1)))
+#define ID_ReduceAction503 (SFT_parser[1524])
+#define COLOR_ReduceAction503 (SFT_parser[1525])
+#define INIT_TABLE_POS_ReduceAction503 (SFT_parser[1526] + 0)
+#define CALL_parser___ReduceAction503___init(recv) ((parser___ReduceAction503___init_t)CALL((recv), (SFT_parser[1526] + 1)))
+#define ID_ReduceAction504 (SFT_parser[1527])
+#define COLOR_ReduceAction504 (SFT_parser[1528])
+#define INIT_TABLE_POS_ReduceAction504 (SFT_parser[1529] + 0)
+#define CALL_parser___ReduceAction504___init(recv) ((parser___ReduceAction504___init_t)CALL((recv), (SFT_parser[1529] + 1)))
+#define ID_ReduceAction505 (SFT_parser[1530])
+#define COLOR_ReduceAction505 (SFT_parser[1531])
+#define INIT_TABLE_POS_ReduceAction505 (SFT_parser[1532] + 0)
+#define CALL_parser___ReduceAction505___init(recv) ((parser___ReduceAction505___init_t)CALL((recv), (SFT_parser[1532] + 1)))
+#define ID_ReduceAction506 (SFT_parser[1533])
+#define COLOR_ReduceAction506 (SFT_parser[1534])
+#define INIT_TABLE_POS_ReduceAction506 (SFT_parser[1535] + 0)
+#define CALL_parser___ReduceAction506___init(recv) ((parser___ReduceAction506___init_t)CALL((recv), (SFT_parser[1535] + 1)))
+#define ID_ReduceAction507 (SFT_parser[1536])
+#define COLOR_ReduceAction507 (SFT_parser[1537])
+#define INIT_TABLE_POS_ReduceAction507 (SFT_parser[1538] + 0)
+#define CALL_parser___ReduceAction507___init(recv) ((parser___ReduceAction507___init_t)CALL((recv), (SFT_parser[1538] + 1)))
+#define ID_ReduceAction508 (SFT_parser[1539])
+#define COLOR_ReduceAction508 (SFT_parser[1540])
+#define INIT_TABLE_POS_ReduceAction508 (SFT_parser[1541] + 0)
+#define CALL_parser___ReduceAction508___init(recv) ((parser___ReduceAction508___init_t)CALL((recv), (SFT_parser[1541] + 1)))
+#define ID_ReduceAction509 (SFT_parser[1542])
+#define COLOR_ReduceAction509 (SFT_parser[1543])
+#define INIT_TABLE_POS_ReduceAction509 (SFT_parser[1544] + 0)
+#define CALL_parser___ReduceAction509___init(recv) ((parser___ReduceAction509___init_t)CALL((recv), (SFT_parser[1544] + 1)))
+#define ID_ReduceAction510 (SFT_parser[1545])
+#define COLOR_ReduceAction510 (SFT_parser[1546])
+#define INIT_TABLE_POS_ReduceAction510 (SFT_parser[1547] + 0)
+#define CALL_parser___ReduceAction510___init(recv) ((parser___ReduceAction510___init_t)CALL((recv), (SFT_parser[1547] + 1)))
+#define ID_ReduceAction511 (SFT_parser[1548])
+#define COLOR_ReduceAction511 (SFT_parser[1549])
+#define INIT_TABLE_POS_ReduceAction511 (SFT_parser[1550] + 0)
+#define CALL_parser___ReduceAction511___init(recv) ((parser___ReduceAction511___init_t)CALL((recv), (SFT_parser[1550] + 1)))
+#define ID_ReduceAction512 (SFT_parser[1551])
+#define COLOR_ReduceAction512 (SFT_parser[1552])
+#define INIT_TABLE_POS_ReduceAction512 (SFT_parser[1553] + 0)
+#define CALL_parser___ReduceAction512___init(recv) ((parser___ReduceAction512___init_t)CALL((recv), (SFT_parser[1553] + 1)))
+#define ID_ReduceAction513 (SFT_parser[1554])
+#define COLOR_ReduceAction513 (SFT_parser[1555])
+#define INIT_TABLE_POS_ReduceAction513 (SFT_parser[1556] + 0)
+#define CALL_parser___ReduceAction513___init(recv) ((parser___ReduceAction513___init_t)CALL((recv), (SFT_parser[1556] + 1)))
+#define ID_ReduceAction514 (SFT_parser[1557])
+#define COLOR_ReduceAction514 (SFT_parser[1558])
+#define INIT_TABLE_POS_ReduceAction514 (SFT_parser[1559] + 0)
+#define CALL_parser___ReduceAction514___init(recv) ((parser___ReduceAction514___init_t)CALL((recv), (SFT_parser[1559] + 1)))
+#define ID_ReduceAction515 (SFT_parser[1560])
+#define COLOR_ReduceAction515 (SFT_parser[1561])
+#define INIT_TABLE_POS_ReduceAction515 (SFT_parser[1562] + 0)
+#define CALL_parser___ReduceAction515___init(recv) ((parser___ReduceAction515___init_t)CALL((recv), (SFT_parser[1562] + 1)))
+#define ID_ReduceAction516 (SFT_parser[1563])
+#define COLOR_ReduceAction516 (SFT_parser[1564])
+#define INIT_TABLE_POS_ReduceAction516 (SFT_parser[1565] + 0)
+#define CALL_parser___ReduceAction516___init(recv) ((parser___ReduceAction516___init_t)CALL((recv), (SFT_parser[1565] + 1)))
+#define ID_ReduceAction517 (SFT_parser[1566])
+#define COLOR_ReduceAction517 (SFT_parser[1567])
+#define INIT_TABLE_POS_ReduceAction517 (SFT_parser[1568] + 0)
+#define CALL_parser___ReduceAction517___init(recv) ((parser___ReduceAction517___init_t)CALL((recv), (SFT_parser[1568] + 1)))
+#define ID_ReduceAction518 (SFT_parser[1569])
+#define COLOR_ReduceAction518 (SFT_parser[1570])
+#define INIT_TABLE_POS_ReduceAction518 (SFT_parser[1571] + 0)
+#define CALL_parser___ReduceAction518___init(recv) ((parser___ReduceAction518___init_t)CALL((recv), (SFT_parser[1571] + 1)))
+#define ID_ReduceAction519 (SFT_parser[1572])
+#define COLOR_ReduceAction519 (SFT_parser[1573])
+#define INIT_TABLE_POS_ReduceAction519 (SFT_parser[1574] + 0)
+#define CALL_parser___ReduceAction519___init(recv) ((parser___ReduceAction519___init_t)CALL((recv), (SFT_parser[1574] + 1)))
+#define ID_ReduceAction520 (SFT_parser[1575])
+#define COLOR_ReduceAction520 (SFT_parser[1576])
+#define INIT_TABLE_POS_ReduceAction520 (SFT_parser[1577] + 0)
+#define CALL_parser___ReduceAction520___init(recv) ((parser___ReduceAction520___init_t)CALL((recv), (SFT_parser[1577] + 1)))
+#define ID_ReduceAction521 (SFT_parser[1578])
+#define COLOR_ReduceAction521 (SFT_parser[1579])
+#define INIT_TABLE_POS_ReduceAction521 (SFT_parser[1580] + 0)
+#define CALL_parser___ReduceAction521___init(recv) ((parser___ReduceAction521___init_t)CALL((recv), (SFT_parser[1580] + 1)))
+#define ID_ReduceAction522 (SFT_parser[1581])
+#define COLOR_ReduceAction522 (SFT_parser[1582])
+#define INIT_TABLE_POS_ReduceAction522 (SFT_parser[1583] + 0)
+#define CALL_parser___ReduceAction522___init(recv) ((parser___ReduceAction522___init_t)CALL((recv), (SFT_parser[1583] + 1)))
+#define ID_ReduceAction523 (SFT_parser[1584])
+#define COLOR_ReduceAction523 (SFT_parser[1585])
+#define INIT_TABLE_POS_ReduceAction523 (SFT_parser[1586] + 0)
+#define CALL_parser___ReduceAction523___init(recv) ((parser___ReduceAction523___init_t)CALL((recv), (SFT_parser[1586] + 1)))
+#define ID_ReduceAction524 (SFT_parser[1587])
+#define COLOR_ReduceAction524 (SFT_parser[1588])
+#define INIT_TABLE_POS_ReduceAction524 (SFT_parser[1589] + 0)
+#define CALL_parser___ReduceAction524___init(recv) ((parser___ReduceAction524___init_t)CALL((recv), (SFT_parser[1589] + 1)))
+#define ID_ReduceAction525 (SFT_parser[1590])
+#define COLOR_ReduceAction525 (SFT_parser[1591])
+#define INIT_TABLE_POS_ReduceAction525 (SFT_parser[1592] + 0)
+#define CALL_parser___ReduceAction525___init(recv) ((parser___ReduceAction525___init_t)CALL((recv), (SFT_parser[1592] + 1)))
+#define ID_ReduceAction526 (SFT_parser[1593])
+#define COLOR_ReduceAction526 (SFT_parser[1594])
+#define INIT_TABLE_POS_ReduceAction526 (SFT_parser[1595] + 0)
+#define CALL_parser___ReduceAction526___init(recv) ((parser___ReduceAction526___init_t)CALL((recv), (SFT_parser[1595] + 1)))
+#define ID_ReduceAction527 (SFT_parser[1596])
+#define COLOR_ReduceAction527 (SFT_parser[1597])
+#define INIT_TABLE_POS_ReduceAction527 (SFT_parser[1598] + 0)
+#define CALL_parser___ReduceAction527___init(recv) ((parser___ReduceAction527___init_t)CALL((recv), (SFT_parser[1598] + 1)))
+#define ID_ReduceAction528 (SFT_parser[1599])
+#define COLOR_ReduceAction528 (SFT_parser[1600])
+#define INIT_TABLE_POS_ReduceAction528 (SFT_parser[1601] + 0)
+#define CALL_parser___ReduceAction528___init(recv) ((parser___ReduceAction528___init_t)CALL((recv), (SFT_parser[1601] + 1)))
+#define ID_ReduceAction529 (SFT_parser[1602])
+#define COLOR_ReduceAction529 (SFT_parser[1603])
+#define INIT_TABLE_POS_ReduceAction529 (SFT_parser[1604] + 0)
+#define CALL_parser___ReduceAction529___init(recv) ((parser___ReduceAction529___init_t)CALL((recv), (SFT_parser[1604] + 1)))
+#define ID_ReduceAction530 (SFT_parser[1605])
+#define COLOR_ReduceAction530 (SFT_parser[1606])
+#define INIT_TABLE_POS_ReduceAction530 (SFT_parser[1607] + 0)
+#define CALL_parser___ReduceAction530___init(recv) ((parser___ReduceAction530___init_t)CALL((recv), (SFT_parser[1607] + 1)))
+#define ID_ReduceAction531 (SFT_parser[1608])
+#define COLOR_ReduceAction531 (SFT_parser[1609])
+#define INIT_TABLE_POS_ReduceAction531 (SFT_parser[1610] + 0)
+#define CALL_parser___ReduceAction531___init(recv) ((parser___ReduceAction531___init_t)CALL((recv), (SFT_parser[1610] + 1)))
+#define ID_ReduceAction532 (SFT_parser[1611])
+#define COLOR_ReduceAction532 (SFT_parser[1612])
+#define INIT_TABLE_POS_ReduceAction532 (SFT_parser[1613] + 0)
+#define CALL_parser___ReduceAction532___init(recv) ((parser___ReduceAction532___init_t)CALL((recv), (SFT_parser[1613] + 1)))
+#define ID_ReduceAction533 (SFT_parser[1614])
+#define COLOR_ReduceAction533 (SFT_parser[1615])
+#define INIT_TABLE_POS_ReduceAction533 (SFT_parser[1616] + 0)
+#define CALL_parser___ReduceAction533___init(recv) ((parser___ReduceAction533___init_t)CALL((recv), (SFT_parser[1616] + 1)))
+#define ID_ReduceAction534 (SFT_parser[1617])
+#define COLOR_ReduceAction534 (SFT_parser[1618])
+#define INIT_TABLE_POS_ReduceAction534 (SFT_parser[1619] + 0)
+#define CALL_parser___ReduceAction534___init(recv) ((parser___ReduceAction534___init_t)CALL((recv), (SFT_parser[1619] + 1)))
+#define ID_ReduceAction535 (SFT_parser[1620])
+#define COLOR_ReduceAction535 (SFT_parser[1621])
+#define INIT_TABLE_POS_ReduceAction535 (SFT_parser[1622] + 0)
+#define CALL_parser___ReduceAction535___init(recv) ((parser___ReduceAction535___init_t)CALL((recv), (SFT_parser[1622] + 1)))
+#define ID_ReduceAction536 (SFT_parser[1623])
+#define COLOR_ReduceAction536 (SFT_parser[1624])
+#define INIT_TABLE_POS_ReduceAction536 (SFT_parser[1625] + 0)
+#define CALL_parser___ReduceAction536___init(recv) ((parser___ReduceAction536___init_t)CALL((recv), (SFT_parser[1625] + 1)))
+#define ID_ReduceAction537 (SFT_parser[1626])
+#define COLOR_ReduceAction537 (SFT_parser[1627])
+#define INIT_TABLE_POS_ReduceAction537 (SFT_parser[1628] + 0)
+#define CALL_parser___ReduceAction537___init(recv) ((parser___ReduceAction537___init_t)CALL((recv), (SFT_parser[1628] + 1)))
+#define ID_ReduceAction538 (SFT_parser[1629])
+#define COLOR_ReduceAction538 (SFT_parser[1630])
+#define INIT_TABLE_POS_ReduceAction538 (SFT_parser[1631] + 0)
+#define CALL_parser___ReduceAction538___init(recv) ((parser___ReduceAction538___init_t)CALL((recv), (SFT_parser[1631] + 1)))
+#define ID_ReduceAction539 (SFT_parser[1632])
+#define COLOR_ReduceAction539 (SFT_parser[1633])
+#define INIT_TABLE_POS_ReduceAction539 (SFT_parser[1634] + 0)
+#define CALL_parser___ReduceAction539___init(recv) ((parser___ReduceAction539___init_t)CALL((recv), (SFT_parser[1634] + 1)))
+#define ID_ReduceAction540 (SFT_parser[1635])
+#define COLOR_ReduceAction540 (SFT_parser[1636])
+#define INIT_TABLE_POS_ReduceAction540 (SFT_parser[1637] + 0)
+#define CALL_parser___ReduceAction540___init(recv) ((parser___ReduceAction540___init_t)CALL((recv), (SFT_parser[1637] + 1)))
+#define ID_ReduceAction541 (SFT_parser[1638])
+#define COLOR_ReduceAction541 (SFT_parser[1639])
+#define INIT_TABLE_POS_ReduceAction541 (SFT_parser[1640] + 0)
+#define CALL_parser___ReduceAction541___init(recv) ((parser___ReduceAction541___init_t)CALL((recv), (SFT_parser[1640] + 1)))
+#define ID_ReduceAction542 (SFT_parser[1641])
+#define COLOR_ReduceAction542 (SFT_parser[1642])
+#define INIT_TABLE_POS_ReduceAction542 (SFT_parser[1643] + 0)
+#define CALL_parser___ReduceAction542___init(recv) ((parser___ReduceAction542___init_t)CALL((recv), (SFT_parser[1643] + 1)))
+#define ID_ReduceAction543 (SFT_parser[1644])
+#define COLOR_ReduceAction543 (SFT_parser[1645])
+#define INIT_TABLE_POS_ReduceAction543 (SFT_parser[1646] + 0)
+#define CALL_parser___ReduceAction543___init(recv) ((parser___ReduceAction543___init_t)CALL((recv), (SFT_parser[1646] + 1)))
+#define ID_ReduceAction544 (SFT_parser[1647])
+#define COLOR_ReduceAction544 (SFT_parser[1648])
+#define INIT_TABLE_POS_ReduceAction544 (SFT_parser[1649] + 0)
+#define CALL_parser___ReduceAction544___init(recv) ((parser___ReduceAction544___init_t)CALL((recv), (SFT_parser[1649] + 1)))
+#define ID_ReduceAction545 (SFT_parser[1650])
+#define COLOR_ReduceAction545 (SFT_parser[1651])
+#define INIT_TABLE_POS_ReduceAction545 (SFT_parser[1652] + 0)
+#define CALL_parser___ReduceAction545___init(recv) ((parser___ReduceAction545___init_t)CALL((recv), (SFT_parser[1652] + 1)))
+#define ID_ReduceAction546 (SFT_parser[1653])
+#define COLOR_ReduceAction546 (SFT_parser[1654])
+#define INIT_TABLE_POS_ReduceAction546 (SFT_parser[1655] + 0)
+#define CALL_parser___ReduceAction546___init(recv) ((parser___ReduceAction546___init_t)CALL((recv), (SFT_parser[1655] + 1)))
+#define ID_ReduceAction547 (SFT_parser[1656])
+#define COLOR_ReduceAction547 (SFT_parser[1657])
+#define INIT_TABLE_POS_ReduceAction547 (SFT_parser[1658] + 0)
+#define CALL_parser___ReduceAction547___init(recv) ((parser___ReduceAction547___init_t)CALL((recv), (SFT_parser[1658] + 1)))
+#define ID_ReduceAction548 (SFT_parser[1659])
+#define COLOR_ReduceAction548 (SFT_parser[1660])
+#define INIT_TABLE_POS_ReduceAction548 (SFT_parser[1661] + 0)
+#define CALL_parser___ReduceAction548___init(recv) ((parser___ReduceAction548___init_t)CALL((recv), (SFT_parser[1661] + 1)))
+#define ID_ReduceAction549 (SFT_parser[1662])
+#define COLOR_ReduceAction549 (SFT_parser[1663])
+#define INIT_TABLE_POS_ReduceAction549 (SFT_parser[1664] + 0)
+#define CALL_parser___ReduceAction549___init(recv) ((parser___ReduceAction549___init_t)CALL((recv), (SFT_parser[1664] + 1)))
+#define ID_ReduceAction550 (SFT_parser[1665])
+#define COLOR_ReduceAction550 (SFT_parser[1666])
+#define INIT_TABLE_POS_ReduceAction550 (SFT_parser[1667] + 0)
+#define CALL_parser___ReduceAction550___init(recv) ((parser___ReduceAction550___init_t)CALL((recv), (SFT_parser[1667] + 1)))
+#define ID_ReduceAction551 (SFT_parser[1668])
+#define COLOR_ReduceAction551 (SFT_parser[1669])
+#define INIT_TABLE_POS_ReduceAction551 (SFT_parser[1670] + 0)
+#define CALL_parser___ReduceAction551___init(recv) ((parser___ReduceAction551___init_t)CALL((recv), (SFT_parser[1670] + 1)))
+#define ID_ReduceAction552 (SFT_parser[1671])
+#define COLOR_ReduceAction552 (SFT_parser[1672])
+#define INIT_TABLE_POS_ReduceAction552 (SFT_parser[1673] + 0)
+#define CALL_parser___ReduceAction552___init(recv) ((parser___ReduceAction552___init_t)CALL((recv), (SFT_parser[1673] + 1)))
+#define ID_ReduceAction553 (SFT_parser[1674])
+#define COLOR_ReduceAction553 (SFT_parser[1675])
+#define INIT_TABLE_POS_ReduceAction553 (SFT_parser[1676] + 0)
+#define CALL_parser___ReduceAction553___init(recv) ((parser___ReduceAction553___init_t)CALL((recv), (SFT_parser[1676] + 1)))
+#define ID_ReduceAction554 (SFT_parser[1677])
+#define COLOR_ReduceAction554 (SFT_parser[1678])
+#define INIT_TABLE_POS_ReduceAction554 (SFT_parser[1679] + 0)
+#define CALL_parser___ReduceAction554___init(recv) ((parser___ReduceAction554___init_t)CALL((recv), (SFT_parser[1679] + 1)))
+#define ID_ReduceAction555 (SFT_parser[1680])
+#define COLOR_ReduceAction555 (SFT_parser[1681])
+#define INIT_TABLE_POS_ReduceAction555 (SFT_parser[1682] + 0)
+#define CALL_parser___ReduceAction555___init(recv) ((parser___ReduceAction555___init_t)CALL((recv), (SFT_parser[1682] + 1)))
+#define ID_ReduceAction556 (SFT_parser[1683])
+#define COLOR_ReduceAction556 (SFT_parser[1684])
+#define INIT_TABLE_POS_ReduceAction556 (SFT_parser[1685] + 0)
+#define CALL_parser___ReduceAction556___init(recv) ((parser___ReduceAction556___init_t)CALL((recv), (SFT_parser[1685] + 1)))
+#define ID_ReduceAction557 (SFT_parser[1686])
+#define COLOR_ReduceAction557 (SFT_parser[1687])
+#define INIT_TABLE_POS_ReduceAction557 (SFT_parser[1688] + 0)
+#define CALL_parser___ReduceAction557___init(recv) ((parser___ReduceAction557___init_t)CALL((recv), (SFT_parser[1688] + 1)))
+#define ID_ReduceAction558 (SFT_parser[1689])
+#define COLOR_ReduceAction558 (SFT_parser[1690])
+#define INIT_TABLE_POS_ReduceAction558 (SFT_parser[1691] + 0)
+#define CALL_parser___ReduceAction558___init(recv) ((parser___ReduceAction558___init_t)CALL((recv), (SFT_parser[1691] + 1)))
+#define ID_ReduceAction559 (SFT_parser[1692])
+#define COLOR_ReduceAction559 (SFT_parser[1693])
+#define INIT_TABLE_POS_ReduceAction559 (SFT_parser[1694] + 0)
+#define CALL_parser___ReduceAction559___init(recv) ((parser___ReduceAction559___init_t)CALL((recv), (SFT_parser[1694] + 1)))
+#define ID_ReduceAction560 (SFT_parser[1695])
+#define COLOR_ReduceAction560 (SFT_parser[1696])
+#define INIT_TABLE_POS_ReduceAction560 (SFT_parser[1697] + 0)
+#define CALL_parser___ReduceAction560___init(recv) ((parser___ReduceAction560___init_t)CALL((recv), (SFT_parser[1697] + 1)))
+#define ID_ReduceAction561 (SFT_parser[1698])
+#define COLOR_ReduceAction561 (SFT_parser[1699])
+#define INIT_TABLE_POS_ReduceAction561 (SFT_parser[1700] + 0)
+#define CALL_parser___ReduceAction561___init(recv) ((parser___ReduceAction561___init_t)CALL((recv), (SFT_parser[1700] + 1)))
+#define ID_ReduceAction562 (SFT_parser[1701])
+#define COLOR_ReduceAction562 (SFT_parser[1702])
+#define INIT_TABLE_POS_ReduceAction562 (SFT_parser[1703] + 0)
+#define CALL_parser___ReduceAction562___init(recv) ((parser___ReduceAction562___init_t)CALL((recv), (SFT_parser[1703] + 1)))
+#define ID_ReduceAction563 (SFT_parser[1704])
+#define COLOR_ReduceAction563 (SFT_parser[1705])
+#define INIT_TABLE_POS_ReduceAction563 (SFT_parser[1706] + 0)
+#define CALL_parser___ReduceAction563___init(recv) ((parser___ReduceAction563___init_t)CALL((recv), (SFT_parser[1706] + 1)))
+#define ID_ReduceAction564 (SFT_parser[1707])
+#define COLOR_ReduceAction564 (SFT_parser[1708])
+#define INIT_TABLE_POS_ReduceAction564 (SFT_parser[1709] + 0)
+#define CALL_parser___ReduceAction564___init(recv) ((parser___ReduceAction564___init_t)CALL((recv), (SFT_parser[1709] + 1)))
+#define ID_ReduceAction565 (SFT_parser[1710])
+#define COLOR_ReduceAction565 (SFT_parser[1711])
+#define INIT_TABLE_POS_ReduceAction565 (SFT_parser[1712] + 0)
+#define CALL_parser___ReduceAction565___init(recv) ((parser___ReduceAction565___init_t)CALL((recv), (SFT_parser[1712] + 1)))
+#define ID_ReduceAction566 (SFT_parser[1713])
+#define COLOR_ReduceAction566 (SFT_parser[1714])
+#define INIT_TABLE_POS_ReduceAction566 (SFT_parser[1715] + 0)
+#define CALL_parser___ReduceAction566___init(recv) ((parser___ReduceAction566___init_t)CALL((recv), (SFT_parser[1715] + 1)))
+#define ID_ReduceAction567 (SFT_parser[1716])
+#define COLOR_ReduceAction567 (SFT_parser[1717])
+#define INIT_TABLE_POS_ReduceAction567 (SFT_parser[1718] + 0)
+#define CALL_parser___ReduceAction567___init(recv) ((parser___ReduceAction567___init_t)CALL((recv), (SFT_parser[1718] + 1)))
+#define ID_ReduceAction568 (SFT_parser[1719])
+#define COLOR_ReduceAction568 (SFT_parser[1720])
+#define INIT_TABLE_POS_ReduceAction568 (SFT_parser[1721] + 0)
+#define CALL_parser___ReduceAction568___init(recv) ((parser___ReduceAction568___init_t)CALL((recv), (SFT_parser[1721] + 1)))
+#define ID_ReduceAction569 (SFT_parser[1722])
+#define COLOR_ReduceAction569 (SFT_parser[1723])
+#define INIT_TABLE_POS_ReduceAction569 (SFT_parser[1724] + 0)
+#define CALL_parser___ReduceAction569___init(recv) ((parser___ReduceAction569___init_t)CALL((recv), (SFT_parser[1724] + 1)))
+#define ID_ReduceAction570 (SFT_parser[1725])
+#define COLOR_ReduceAction570 (SFT_parser[1726])
+#define INIT_TABLE_POS_ReduceAction570 (SFT_parser[1727] + 0)
+#define CALL_parser___ReduceAction570___init(recv) ((parser___ReduceAction570___init_t)CALL((recv), (SFT_parser[1727] + 1)))
+#define ID_ReduceAction571 (SFT_parser[1728])
+#define COLOR_ReduceAction571 (SFT_parser[1729])
+#define INIT_TABLE_POS_ReduceAction571 (SFT_parser[1730] + 0)
+#define CALL_parser___ReduceAction571___init(recv) ((parser___ReduceAction571___init_t)CALL((recv), (SFT_parser[1730] + 1)))
+#define ID_ReduceAction572 (SFT_parser[1731])
+#define COLOR_ReduceAction572 (SFT_parser[1732])
+#define INIT_TABLE_POS_ReduceAction572 (SFT_parser[1733] + 0)
+#define CALL_parser___ReduceAction572___init(recv) ((parser___ReduceAction572___init_t)CALL((recv), (SFT_parser[1733] + 1)))
+#define ID_ReduceAction573 (SFT_parser[1734])
+#define COLOR_ReduceAction573 (SFT_parser[1735])
+#define INIT_TABLE_POS_ReduceAction573 (SFT_parser[1736] + 0)
+#define CALL_parser___ReduceAction573___init(recv) ((parser___ReduceAction573___init_t)CALL((recv), (SFT_parser[1736] + 1)))
+#define ID_ReduceAction574 (SFT_parser[1737])
+#define COLOR_ReduceAction574 (SFT_parser[1738])
+#define INIT_TABLE_POS_ReduceAction574 (SFT_parser[1739] + 0)
+#define CALL_parser___ReduceAction574___init(recv) ((parser___ReduceAction574___init_t)CALL((recv), (SFT_parser[1739] + 1)))
+#define ID_ReduceAction575 (SFT_parser[1740])
+#define COLOR_ReduceAction575 (SFT_parser[1741])
+#define INIT_TABLE_POS_ReduceAction575 (SFT_parser[1742] + 0)
+#define CALL_parser___ReduceAction575___init(recv) ((parser___ReduceAction575___init_t)CALL((recv), (SFT_parser[1742] + 1)))
+#define ID_ReduceAction576 (SFT_parser[1743])
+#define COLOR_ReduceAction576 (SFT_parser[1744])
+#define INIT_TABLE_POS_ReduceAction576 (SFT_parser[1745] + 0)
+#define CALL_parser___ReduceAction576___init(recv) ((parser___ReduceAction576___init_t)CALL((recv), (SFT_parser[1745] + 1)))
+#define ID_ReduceAction577 (SFT_parser[1746])
+#define COLOR_ReduceAction577 (SFT_parser[1747])
+#define INIT_TABLE_POS_ReduceAction577 (SFT_parser[1748] + 0)
+#define CALL_parser___ReduceAction577___init(recv) ((parser___ReduceAction577___init_t)CALL((recv), (SFT_parser[1748] + 1)))
+#define ID_ReduceAction578 (SFT_parser[1749])
+#define COLOR_ReduceAction578 (SFT_parser[1750])
+#define INIT_TABLE_POS_ReduceAction578 (SFT_parser[1751] + 0)
+#define CALL_parser___ReduceAction578___init(recv) ((parser___ReduceAction578___init_t)CALL((recv), (SFT_parser[1751] + 1)))
+#define ID_ReduceAction579 (SFT_parser[1752])
+#define COLOR_ReduceAction579 (SFT_parser[1753])
+#define INIT_TABLE_POS_ReduceAction579 (SFT_parser[1754] + 0)
+#define CALL_parser___ReduceAction579___init(recv) ((parser___ReduceAction579___init_t)CALL((recv), (SFT_parser[1754] + 1)))
+#define ID_ReduceAction580 (SFT_parser[1755])
+#define COLOR_ReduceAction580 (SFT_parser[1756])
+#define INIT_TABLE_POS_ReduceAction580 (SFT_parser[1757] + 0)
+#define CALL_parser___ReduceAction580___init(recv) ((parser___ReduceAction580___init_t)CALL((recv), (SFT_parser[1757] + 1)))
+#define ID_ReduceAction581 (SFT_parser[1758])
+#define COLOR_ReduceAction581 (SFT_parser[1759])
+#define INIT_TABLE_POS_ReduceAction581 (SFT_parser[1760] + 0)
+#define CALL_parser___ReduceAction581___init(recv) ((parser___ReduceAction581___init_t)CALL((recv), (SFT_parser[1760] + 1)))
+#define ID_ReduceAction582 (SFT_parser[1761])
+#define COLOR_ReduceAction582 (SFT_parser[1762])
+#define INIT_TABLE_POS_ReduceAction582 (SFT_parser[1763] + 0)
+#define CALL_parser___ReduceAction582___init(recv) ((parser___ReduceAction582___init_t)CALL((recv), (SFT_parser[1763] + 1)))
+#define ID_ReduceAction583 (SFT_parser[1764])
+#define COLOR_ReduceAction583 (SFT_parser[1765])
+#define INIT_TABLE_POS_ReduceAction583 (SFT_parser[1766] + 0)
+#define CALL_parser___ReduceAction583___init(recv) ((parser___ReduceAction583___init_t)CALL((recv), (SFT_parser[1766] + 1)))
+#define ID_ReduceAction584 (SFT_parser[1767])
+#define COLOR_ReduceAction584 (SFT_parser[1768])
+#define INIT_TABLE_POS_ReduceAction584 (SFT_parser[1769] + 0)
+#define CALL_parser___ReduceAction584___init(recv) ((parser___ReduceAction584___init_t)CALL((recv), (SFT_parser[1769] + 1)))
+#define ID_ReduceAction585 (SFT_parser[1770])
+#define COLOR_ReduceAction585 (SFT_parser[1771])
+#define INIT_TABLE_POS_ReduceAction585 (SFT_parser[1772] + 0)
+#define CALL_parser___ReduceAction585___init(recv) ((parser___ReduceAction585___init_t)CALL((recv), (SFT_parser[1772] + 1)))
+#define ID_ReduceAction586 (SFT_parser[1773])
+#define COLOR_ReduceAction586 (SFT_parser[1774])
+#define INIT_TABLE_POS_ReduceAction586 (SFT_parser[1775] + 0)
+#define CALL_parser___ReduceAction586___init(recv) ((parser___ReduceAction586___init_t)CALL((recv), (SFT_parser[1775] + 1)))
+#define ID_ReduceAction587 (SFT_parser[1776])
+#define COLOR_ReduceAction587 (SFT_parser[1777])
+#define INIT_TABLE_POS_ReduceAction587 (SFT_parser[1778] + 0)
+#define CALL_parser___ReduceAction587___init(recv) ((parser___ReduceAction587___init_t)CALL((recv), (SFT_parser[1778] + 1)))
+#define ID_ReduceAction588 (SFT_parser[1779])
+#define COLOR_ReduceAction588 (SFT_parser[1780])
+#define INIT_TABLE_POS_ReduceAction588 (SFT_parser[1781] + 0)
+#define CALL_parser___ReduceAction588___init(recv) ((parser___ReduceAction588___init_t)CALL((recv), (SFT_parser[1781] + 1)))
+#define ID_ReduceAction589 (SFT_parser[1782])
+#define COLOR_ReduceAction589 (SFT_parser[1783])
+#define INIT_TABLE_POS_ReduceAction589 (SFT_parser[1784] + 0)
+#define CALL_parser___ReduceAction589___init(recv) ((parser___ReduceAction589___init_t)CALL((recv), (SFT_parser[1784] + 1)))
+#define ID_ReduceAction590 (SFT_parser[1785])
+#define COLOR_ReduceAction590 (SFT_parser[1786])
+#define INIT_TABLE_POS_ReduceAction590 (SFT_parser[1787] + 0)
+#define CALL_parser___ReduceAction590___init(recv) ((parser___ReduceAction590___init_t)CALL((recv), (SFT_parser[1787] + 1)))
+#define ID_ReduceAction591 (SFT_parser[1788])
+#define COLOR_ReduceAction591 (SFT_parser[1789])
+#define INIT_TABLE_POS_ReduceAction591 (SFT_parser[1790] + 0)
+#define CALL_parser___ReduceAction591___init(recv) ((parser___ReduceAction591___init_t)CALL((recv), (SFT_parser[1790] + 1)))
+#define ID_ReduceAction592 (SFT_parser[1791])
+#define COLOR_ReduceAction592 (SFT_parser[1792])
+#define INIT_TABLE_POS_ReduceAction592 (SFT_parser[1793] + 0)
+#define CALL_parser___ReduceAction592___init(recv) ((parser___ReduceAction592___init_t)CALL((recv), (SFT_parser[1793] + 1)))
+#define ID_ReduceAction593 (SFT_parser[1794])
+#define COLOR_ReduceAction593 (SFT_parser[1795])
+#define INIT_TABLE_POS_ReduceAction593 (SFT_parser[1796] + 0)
+#define CALL_parser___ReduceAction593___init(recv) ((parser___ReduceAction593___init_t)CALL((recv), (SFT_parser[1796] + 1)))
+#define ID_ReduceAction594 (SFT_parser[1797])
+#define COLOR_ReduceAction594 (SFT_parser[1798])
+#define INIT_TABLE_POS_ReduceAction594 (SFT_parser[1799] + 0)
+#define CALL_parser___ReduceAction594___init(recv) ((parser___ReduceAction594___init_t)CALL((recv), (SFT_parser[1799] + 1)))
+#define ID_ReduceAction595 (SFT_parser[1800])
+#define COLOR_ReduceAction595 (SFT_parser[1801])
+#define INIT_TABLE_POS_ReduceAction595 (SFT_parser[1802] + 0)
+#define CALL_parser___ReduceAction595___init(recv) ((parser___ReduceAction595___init_t)CALL((recv), (SFT_parser[1802] + 1)))
+#define ID_ReduceAction596 (SFT_parser[1803])
+#define COLOR_ReduceAction596 (SFT_parser[1804])
+#define INIT_TABLE_POS_ReduceAction596 (SFT_parser[1805] + 0)
+#define CALL_parser___ReduceAction596___init(recv) ((parser___ReduceAction596___init_t)CALL((recv), (SFT_parser[1805] + 1)))
+#define ID_ReduceAction597 (SFT_parser[1806])
+#define COLOR_ReduceAction597 (SFT_parser[1807])
+#define INIT_TABLE_POS_ReduceAction597 (SFT_parser[1808] + 0)
+#define CALL_parser___ReduceAction597___init(recv) ((parser___ReduceAction597___init_t)CALL((recv), (SFT_parser[1808] + 1)))
+#define ID_ReduceAction598 (SFT_parser[1809])
+#define COLOR_ReduceAction598 (SFT_parser[1810])
+#define INIT_TABLE_POS_ReduceAction598 (SFT_parser[1811] + 0)
+#define CALL_parser___ReduceAction598___init(recv) ((parser___ReduceAction598___init_t)CALL((recv), (SFT_parser[1811] + 1)))
+#define ID_ReduceAction599 (SFT_parser[1812])
+#define COLOR_ReduceAction599 (SFT_parser[1813])
+#define INIT_TABLE_POS_ReduceAction599 (SFT_parser[1814] + 0)
+#define CALL_parser___ReduceAction599___init(recv) ((parser___ReduceAction599___init_t)CALL((recv), (SFT_parser[1814] + 1)))
+#define ID_ReduceAction600 (SFT_parser[1815])
+#define COLOR_ReduceAction600 (SFT_parser[1816])
+#define INIT_TABLE_POS_ReduceAction600 (SFT_parser[1817] + 0)
+#define CALL_parser___ReduceAction600___init(recv) ((parser___ReduceAction600___init_t)CALL((recv), (SFT_parser[1817] + 1)))
+#define ID_ReduceAction601 (SFT_parser[1818])
+#define COLOR_ReduceAction601 (SFT_parser[1819])
+#define INIT_TABLE_POS_ReduceAction601 (SFT_parser[1820] + 0)
+#define CALL_parser___ReduceAction601___init(recv) ((parser___ReduceAction601___init_t)CALL((recv), (SFT_parser[1820] + 1)))
+#define ID_ReduceAction602 (SFT_parser[1821])
+#define COLOR_ReduceAction602 (SFT_parser[1822])
+#define INIT_TABLE_POS_ReduceAction602 (SFT_parser[1823] + 0)
+#define CALL_parser___ReduceAction602___init(recv) ((parser___ReduceAction602___init_t)CALL((recv), (SFT_parser[1823] + 1)))
+#define ID_ReduceAction603 (SFT_parser[1824])
+#define COLOR_ReduceAction603 (SFT_parser[1825])
+#define INIT_TABLE_POS_ReduceAction603 (SFT_parser[1826] + 0)
+#define CALL_parser___ReduceAction603___init(recv) ((parser___ReduceAction603___init_t)CALL((recv), (SFT_parser[1826] + 1)))
+#define ID_ReduceAction604 (SFT_parser[1827])
+#define COLOR_ReduceAction604 (SFT_parser[1828])
+#define INIT_TABLE_POS_ReduceAction604 (SFT_parser[1829] + 0)
+#define CALL_parser___ReduceAction604___init(recv) ((parser___ReduceAction604___init_t)CALL((recv), (SFT_parser[1829] + 1)))
+#define ID_ReduceAction605 (SFT_parser[1830])
+#define COLOR_ReduceAction605 (SFT_parser[1831])
+#define INIT_TABLE_POS_ReduceAction605 (SFT_parser[1832] + 0)
+#define CALL_parser___ReduceAction605___init(recv) ((parser___ReduceAction605___init_t)CALL((recv), (SFT_parser[1832] + 1)))
+#define ID_ReduceAction606 (SFT_parser[1833])
+#define COLOR_ReduceAction606 (SFT_parser[1834])
+#define INIT_TABLE_POS_ReduceAction606 (SFT_parser[1835] + 0)
+#define CALL_parser___ReduceAction606___init(recv) ((parser___ReduceAction606___init_t)CALL((recv), (SFT_parser[1835] + 1)))
+#define ID_ReduceAction607 (SFT_parser[1836])
+#define COLOR_ReduceAction607 (SFT_parser[1837])
+#define INIT_TABLE_POS_ReduceAction607 (SFT_parser[1838] + 0)
+#define CALL_parser___ReduceAction607___init(recv) ((parser___ReduceAction607___init_t)CALL((recv), (SFT_parser[1838] + 1)))
+#define ID_ReduceAction608 (SFT_parser[1839])
+#define COLOR_ReduceAction608 (SFT_parser[1840])
+#define INIT_TABLE_POS_ReduceAction608 (SFT_parser[1841] + 0)
+#define CALL_parser___ReduceAction608___init(recv) ((parser___ReduceAction608___init_t)CALL((recv), (SFT_parser[1841] + 1)))
+#define ID_ReduceAction609 (SFT_parser[1842])
+#define COLOR_ReduceAction609 (SFT_parser[1843])
+#define INIT_TABLE_POS_ReduceAction609 (SFT_parser[1844] + 0)
+#define CALL_parser___ReduceAction609___init(recv) ((parser___ReduceAction609___init_t)CALL((recv), (SFT_parser[1844] + 1)))
+#define ID_ReduceAction610 (SFT_parser[1845])
+#define COLOR_ReduceAction610 (SFT_parser[1846])
+#define INIT_TABLE_POS_ReduceAction610 (SFT_parser[1847] + 0)
+#define CALL_parser___ReduceAction610___init(recv) ((parser___ReduceAction610___init_t)CALL((recv), (SFT_parser[1847] + 1)))
+#define ID_ReduceAction611 (SFT_parser[1848])
+#define COLOR_ReduceAction611 (SFT_parser[1849])
+#define INIT_TABLE_POS_ReduceAction611 (SFT_parser[1850] + 0)
+#define CALL_parser___ReduceAction611___init(recv) ((parser___ReduceAction611___init_t)CALL((recv), (SFT_parser[1850] + 1)))
+#define ID_ReduceAction612 (SFT_parser[1851])
+#define COLOR_ReduceAction612 (SFT_parser[1852])
+#define INIT_TABLE_POS_ReduceAction612 (SFT_parser[1853] + 0)
+#define CALL_parser___ReduceAction612___init(recv) ((parser___ReduceAction612___init_t)CALL((recv), (SFT_parser[1853] + 1)))
+#define ID_ReduceAction613 (SFT_parser[1854])
+#define COLOR_ReduceAction613 (SFT_parser[1855])
+#define INIT_TABLE_POS_ReduceAction613 (SFT_parser[1856] + 0)
+#define CALL_parser___ReduceAction613___init(recv) ((parser___ReduceAction613___init_t)CALL((recv), (SFT_parser[1856] + 1)))
+#define ID_ReduceAction614 (SFT_parser[1857])
+#define COLOR_ReduceAction614 (SFT_parser[1858])
+#define INIT_TABLE_POS_ReduceAction614 (SFT_parser[1859] + 0)
+#define CALL_parser___ReduceAction614___init(recv) ((parser___ReduceAction614___init_t)CALL((recv), (SFT_parser[1859] + 1)))
+#define ID_ReduceAction615 (SFT_parser[1860])
+#define COLOR_ReduceAction615 (SFT_parser[1861])
+#define INIT_TABLE_POS_ReduceAction615 (SFT_parser[1862] + 0)
+#define CALL_parser___ReduceAction615___init(recv) ((parser___ReduceAction615___init_t)CALL((recv), (SFT_parser[1862] + 1)))
+#define ID_ReduceAction616 (SFT_parser[1863])
+#define COLOR_ReduceAction616 (SFT_parser[1864])
+#define INIT_TABLE_POS_ReduceAction616 (SFT_parser[1865] + 0)
+#define CALL_parser___ReduceAction616___init(recv) ((parser___ReduceAction616___init_t)CALL((recv), (SFT_parser[1865] + 1)))
+#define ID_ReduceAction617 (SFT_parser[1866])
+#define COLOR_ReduceAction617 (SFT_parser[1867])
+#define INIT_TABLE_POS_ReduceAction617 (SFT_parser[1868] + 0)
+#define CALL_parser___ReduceAction617___init(recv) ((parser___ReduceAction617___init_t)CALL((recv), (SFT_parser[1868] + 1)))
+#define ID_ReduceAction618 (SFT_parser[1869])
+#define COLOR_ReduceAction618 (SFT_parser[1870])
+#define INIT_TABLE_POS_ReduceAction618 (SFT_parser[1871] + 0)
+#define CALL_parser___ReduceAction618___init(recv) ((parser___ReduceAction618___init_t)CALL((recv), (SFT_parser[1871] + 1)))
+#define ID_ReduceAction619 (SFT_parser[1872])
+#define COLOR_ReduceAction619 (SFT_parser[1873])
+#define INIT_TABLE_POS_ReduceAction619 (SFT_parser[1874] + 0)
+#define CALL_parser___ReduceAction619___init(recv) ((parser___ReduceAction619___init_t)CALL((recv), (SFT_parser[1874] + 1)))
+#define ID_ReduceAction620 (SFT_parser[1875])
+#define COLOR_ReduceAction620 (SFT_parser[1876])
+#define INIT_TABLE_POS_ReduceAction620 (SFT_parser[1877] + 0)
+#define CALL_parser___ReduceAction620___init(recv) ((parser___ReduceAction620___init_t)CALL((recv), (SFT_parser[1877] + 1)))
+#define ID_ReduceAction621 (SFT_parser[1878])
+#define COLOR_ReduceAction621 (SFT_parser[1879])
+#define INIT_TABLE_POS_ReduceAction621 (SFT_parser[1880] + 0)
+#define CALL_parser___ReduceAction621___init(recv) ((parser___ReduceAction621___init_t)CALL((recv), (SFT_parser[1880] + 1)))
+#define ID_ReduceAction622 (SFT_parser[1881])
+#define COLOR_ReduceAction622 (SFT_parser[1882])
+#define INIT_TABLE_POS_ReduceAction622 (SFT_parser[1883] + 0)
+#define CALL_parser___ReduceAction622___init(recv) ((parser___ReduceAction622___init_t)CALL((recv), (SFT_parser[1883] + 1)))
+#define ID_ReduceAction623 (SFT_parser[1884])
+#define COLOR_ReduceAction623 (SFT_parser[1885])
+#define INIT_TABLE_POS_ReduceAction623 (SFT_parser[1886] + 0)
+#define CALL_parser___ReduceAction623___init(recv) ((parser___ReduceAction623___init_t)CALL((recv), (SFT_parser[1886] + 1)))
+#define ID_ReduceAction624 (SFT_parser[1887])
+#define COLOR_ReduceAction624 (SFT_parser[1888])
+#define INIT_TABLE_POS_ReduceAction624 (SFT_parser[1889] + 0)
+#define CALL_parser___ReduceAction624___init(recv) ((parser___ReduceAction624___init_t)CALL((recv), (SFT_parser[1889] + 1)))
+#define ID_ReduceAction625 (SFT_parser[1890])
+#define COLOR_ReduceAction625 (SFT_parser[1891])
+#define INIT_TABLE_POS_ReduceAction625 (SFT_parser[1892] + 0)
+#define CALL_parser___ReduceAction625___init(recv) ((parser___ReduceAction625___init_t)CALL((recv), (SFT_parser[1892] + 1)))
+#define ID_ReduceAction626 (SFT_parser[1893])
+#define COLOR_ReduceAction626 (SFT_parser[1894])
+#define INIT_TABLE_POS_ReduceAction626 (SFT_parser[1895] + 0)
+#define CALL_parser___ReduceAction626___init(recv) ((parser___ReduceAction626___init_t)CALL((recv), (SFT_parser[1895] + 1)))
+#define ID_ReduceAction627 (SFT_parser[1896])
+#define COLOR_ReduceAction627 (SFT_parser[1897])
+#define INIT_TABLE_POS_ReduceAction627 (SFT_parser[1898] + 0)
+#define CALL_parser___ReduceAction627___init(recv) ((parser___ReduceAction627___init_t)CALL((recv), (SFT_parser[1898] + 1)))
+#define ID_ReduceAction628 (SFT_parser[1899])
+#define COLOR_ReduceAction628 (SFT_parser[1900])
+#define INIT_TABLE_POS_ReduceAction628 (SFT_parser[1901] + 0)
+#define CALL_parser___ReduceAction628___init(recv) ((parser___ReduceAction628___init_t)CALL((recv), (SFT_parser[1901] + 1)))
+#define ID_ReduceAction629 (SFT_parser[1902])
+#define COLOR_ReduceAction629 (SFT_parser[1903])
+#define INIT_TABLE_POS_ReduceAction629 (SFT_parser[1904] + 0)
+#define CALL_parser___ReduceAction629___init(recv) ((parser___ReduceAction629___init_t)CALL((recv), (SFT_parser[1904] + 1)))
+#define ID_ReduceAction630 (SFT_parser[1905])
+#define COLOR_ReduceAction630 (SFT_parser[1906])
+#define INIT_TABLE_POS_ReduceAction630 (SFT_parser[1907] + 0)
+#define CALL_parser___ReduceAction630___init(recv) ((parser___ReduceAction630___init_t)CALL((recv), (SFT_parser[1907] + 1)))
+#define ID_ReduceAction631 (SFT_parser[1908])
+#define COLOR_ReduceAction631 (SFT_parser[1909])
+#define INIT_TABLE_POS_ReduceAction631 (SFT_parser[1910] + 0)
+#define CALL_parser___ReduceAction631___init(recv) ((parser___ReduceAction631___init_t)CALL((recv), (SFT_parser[1910] + 1)))
+#define ID_ReduceAction632 (SFT_parser[1911])
+#define COLOR_ReduceAction632 (SFT_parser[1912])
+#define INIT_TABLE_POS_ReduceAction632 (SFT_parser[1913] + 0)
+#define CALL_parser___ReduceAction632___init(recv) ((parser___ReduceAction632___init_t)CALL((recv), (SFT_parser[1913] + 1)))
+#define ID_ReduceAction633 (SFT_parser[1914])
+#define COLOR_ReduceAction633 (SFT_parser[1915])
+#define INIT_TABLE_POS_ReduceAction633 (SFT_parser[1916] + 0)
+#define CALL_parser___ReduceAction633___init(recv) ((parser___ReduceAction633___init_t)CALL((recv), (SFT_parser[1916] + 1)))
+#define ID_ReduceAction634 (SFT_parser[1917])
+#define COLOR_ReduceAction634 (SFT_parser[1918])
+#define INIT_TABLE_POS_ReduceAction634 (SFT_parser[1919] + 0)
+#define CALL_parser___ReduceAction634___init(recv) ((parser___ReduceAction634___init_t)CALL((recv), (SFT_parser[1919] + 1)))
+#define ID_ReduceAction635 (SFT_parser[1920])
+#define COLOR_ReduceAction635 (SFT_parser[1921])
+#define INIT_TABLE_POS_ReduceAction635 (SFT_parser[1922] + 0)
+#define CALL_parser___ReduceAction635___init(recv) ((parser___ReduceAction635___init_t)CALL((recv), (SFT_parser[1922] + 1)))
+#define ID_ReduceAction636 (SFT_parser[1923])
+#define COLOR_ReduceAction636 (SFT_parser[1924])
+#define INIT_TABLE_POS_ReduceAction636 (SFT_parser[1925] + 0)
+#define CALL_parser___ReduceAction636___init(recv) ((parser___ReduceAction636___init_t)CALL((recv), (SFT_parser[1925] + 1)))
+#define ID_ReduceAction637 (SFT_parser[1926])
+#define COLOR_ReduceAction637 (SFT_parser[1927])
+#define INIT_TABLE_POS_ReduceAction637 (SFT_parser[1928] + 0)
+#define CALL_parser___ReduceAction637___init(recv) ((parser___ReduceAction637___init_t)CALL((recv), (SFT_parser[1928] + 1)))
+#define ID_ReduceAction638 (SFT_parser[1929])
+#define COLOR_ReduceAction638 (SFT_parser[1930])
+#define INIT_TABLE_POS_ReduceAction638 (SFT_parser[1931] + 0)
+#define CALL_parser___ReduceAction638___init(recv) ((parser___ReduceAction638___init_t)CALL((recv), (SFT_parser[1931] + 1)))
+#define ID_ReduceAction639 (SFT_parser[1932])
+#define COLOR_ReduceAction639 (SFT_parser[1933])
+#define INIT_TABLE_POS_ReduceAction639 (SFT_parser[1934] + 0)
+#define CALL_parser___ReduceAction639___init(recv) ((parser___ReduceAction639___init_t)CALL((recv), (SFT_parser[1934] + 1)))
+#define ID_ReduceAction640 (SFT_parser[1935])
+#define COLOR_ReduceAction640 (SFT_parser[1936])
+#define INIT_TABLE_POS_ReduceAction640 (SFT_parser[1937] + 0)
+#define CALL_parser___ReduceAction640___init(recv) ((parser___ReduceAction640___init_t)CALL((recv), (SFT_parser[1937] + 1)))
+#define ID_ReduceAction641 (SFT_parser[1938])
+#define COLOR_ReduceAction641 (SFT_parser[1939])
+#define INIT_TABLE_POS_ReduceAction641 (SFT_parser[1940] + 0)
+#define CALL_parser___ReduceAction641___init(recv) ((parser___ReduceAction641___init_t)CALL((recv), (SFT_parser[1940] + 1)))
+#define ID_ReduceAction642 (SFT_parser[1941])
+#define COLOR_ReduceAction642 (SFT_parser[1942])
+#define INIT_TABLE_POS_ReduceAction642 (SFT_parser[1943] + 0)
+#define CALL_parser___ReduceAction642___init(recv) ((parser___ReduceAction642___init_t)CALL((recv), (SFT_parser[1943] + 1)))
+#define ID_ReduceAction643 (SFT_parser[1944])
+#define COLOR_ReduceAction643 (SFT_parser[1945])
+#define INIT_TABLE_POS_ReduceAction643 (SFT_parser[1946] + 0)
+#define CALL_parser___ReduceAction643___init(recv) ((parser___ReduceAction643___init_t)CALL((recv), (SFT_parser[1946] + 1)))
+#define ID_ReduceAction644 (SFT_parser[1947])
+#define COLOR_ReduceAction644 (SFT_parser[1948])
+#define INIT_TABLE_POS_ReduceAction644 (SFT_parser[1949] + 0)
+#define CALL_parser___ReduceAction644___init(recv) ((parser___ReduceAction644___init_t)CALL((recv), (SFT_parser[1949] + 1)))
+#define ID_ReduceAction645 (SFT_parser[1950])
+#define COLOR_ReduceAction645 (SFT_parser[1951])
+#define INIT_TABLE_POS_ReduceAction645 (SFT_parser[1952] + 0)
+#define CALL_parser___ReduceAction645___init(recv) ((parser___ReduceAction645___init_t)CALL((recv), (SFT_parser[1952] + 1)))
+#define ID_ReduceAction646 (SFT_parser[1953])
+#define COLOR_ReduceAction646 (SFT_parser[1954])
+#define INIT_TABLE_POS_ReduceAction646 (SFT_parser[1955] + 0)
+#define CALL_parser___ReduceAction646___init(recv) ((parser___ReduceAction646___init_t)CALL((recv), (SFT_parser[1955] + 1)))
+#define ID_ReduceAction647 (SFT_parser[1956])
+#define COLOR_ReduceAction647 (SFT_parser[1957])
+#define INIT_TABLE_POS_ReduceAction647 (SFT_parser[1958] + 0)
+#define CALL_parser___ReduceAction647___init(recv) ((parser___ReduceAction647___init_t)CALL((recv), (SFT_parser[1958] + 1)))
+#define ID_ReduceAction648 (SFT_parser[1959])
+#define COLOR_ReduceAction648 (SFT_parser[1960])
+#define INIT_TABLE_POS_ReduceAction648 (SFT_parser[1961] + 0)
+#define CALL_parser___ReduceAction648___init(recv) ((parser___ReduceAction648___init_t)CALL((recv), (SFT_parser[1961] + 1)))
+#define ID_ReduceAction649 (SFT_parser[1962])
+#define COLOR_ReduceAction649 (SFT_parser[1963])
+#define INIT_TABLE_POS_ReduceAction649 (SFT_parser[1964] + 0)
+#define CALL_parser___ReduceAction649___init(recv) ((parser___ReduceAction649___init_t)CALL((recv), (SFT_parser[1964] + 1)))
+#define ID_ReduceAction650 (SFT_parser[1965])
+#define COLOR_ReduceAction650 (SFT_parser[1966])
+#define INIT_TABLE_POS_ReduceAction650 (SFT_parser[1967] + 0)
+#define CALL_parser___ReduceAction650___init(recv) ((parser___ReduceAction650___init_t)CALL((recv), (SFT_parser[1967] + 1)))
+#define ID_ReduceAction651 (SFT_parser[1968])
+#define COLOR_ReduceAction651 (SFT_parser[1969])
+#define INIT_TABLE_POS_ReduceAction651 (SFT_parser[1970] + 0)
+#define CALL_parser___ReduceAction651___init(recv) ((parser___ReduceAction651___init_t)CALL((recv), (SFT_parser[1970] + 1)))
+#define ID_ReduceAction652 (SFT_parser[1971])
+#define COLOR_ReduceAction652 (SFT_parser[1972])
+#define INIT_TABLE_POS_ReduceAction652 (SFT_parser[1973] + 0)
+#define CALL_parser___ReduceAction652___init(recv) ((parser___ReduceAction652___init_t)CALL((recv), (SFT_parser[1973] + 1)))
+#define ID_ReduceAction653 (SFT_parser[1974])
+#define COLOR_ReduceAction653 (SFT_parser[1975])
+#define INIT_TABLE_POS_ReduceAction653 (SFT_parser[1976] + 0)
+#define CALL_parser___ReduceAction653___init(recv) ((parser___ReduceAction653___init_t)CALL((recv), (SFT_parser[1976] + 1)))
 typedef val_t (* parser___State___state_t)(val_t  self);
 val_t parser___State___state(val_t  self);
 #define LOCATE_parser___State___state "parser::State::state"
 typedef void (* parser___State___state__eq_t)(val_t  self, val_t  param0);
 void parser___State___state__eq(val_t  self, val_t  param0);
 #define LOCATE_parser___State___state__eq "parser::State::state="
-#define ATTR_parser___State____nodes(recv) ATTR(recv, COLOR_parser___State____nodes)
 typedef val_t (* parser___State___nodes_t)(val_t  self);
 val_t parser___State___nodes(val_t  self);
 #define LOCATE_parser___State___nodes "parser::State::nodes"
@@ -3991,9 +3989,6 @@ typedef void (* parser___State___init_t)(val_t  self, val_t  param0, val_t  para
 void parser___State___init(val_t  self, val_t  param0, val_t  param1, int* init_table);
 #define LOCATE_parser___State___init "parser::State::init"
 val_t NEW_State_parser___State___init(val_t p0, val_t p1);
-#define ATTR_parser___Parser____lexer(recv) ATTR(recv, COLOR_parser___Parser____lexer)
-#define ATTR_parser___Parser____stack(recv) ATTR(recv, COLOR_parser___Parser____stack)
-#define ATTR_parser___Parser____stack_pos(recv) ATTR(recv, COLOR_parser___Parser____stack_pos)
 typedef void (* parser___Parser___init_t)(val_t  self, val_t  param0, int* init_table);
 void parser___Parser___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_parser___Parser___init "parser::Parser::init"
@@ -4013,15 +4008,12 @@ val_t parser___Parser___pop(val_t  self);
 typedef val_t (* parser___Parser___parse_t)(val_t  self);
 val_t parser___Parser___parse(val_t  self);
 #define LOCATE_parser___Parser___parse "parser::Parser::parse"
-#define ATTR_parser___Parser____reduce_table(recv) ATTR(recv, COLOR_parser___Parser____reduce_table)
 typedef void (* parser___Parser___build_reduce_table_t)(val_t  self);
 void parser___Parser___build_reduce_table(val_t  self);
 #define LOCATE_parser___Parser___build_reduce_table "parser::Parser::build_reduce_table"
 typedef void (* parser___SearchTokensVisitor___visit_t)(val_t  self, val_t  param0);
 void parser___SearchTokensVisitor___visit(val_t  self, val_t  param0);
 #define LOCATE_parser___SearchTokensVisitor___visit "parser::SearchTokensVisitor::(parser_prod::Visitor::visit)"
-#define ATTR_parser___SearchTokensVisitor____untokenned_nodes(recv) ATTR(recv, COLOR_parser___SearchTokensVisitor____untokenned_nodes)
-#define ATTR_parser___SearchTokensVisitor____last_token(recv) ATTR(recv, COLOR_parser___SearchTokensVisitor____last_token)
 typedef void (* parser___SearchTokensVisitor___init_t)(val_t  self, int* init_table);
 void parser___SearchTokensVisitor___init(val_t  self, int* init_table);
 #define LOCATE_parser___SearchTokensVisitor___init "parser::SearchTokensVisitor::init"
index 75f5d3b..4433b32 100644 (file)
@@ -30,7 +30,7 @@ void parser_nodes___PError___noinit(val_t  self, int* init_table) {
   trace.file = LOCATE_parser_nodes;
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PError].i]) return;
-  ((parser_nodes___EOF___noinit_t)CALL(variable[0],COLOR_parser_nodes___EOF___noinit))(variable[0], init_table /*YYY*/) /*EOF::noinit*/;
+  CALL_parser_nodes___EOF___noinit(variable[0])(variable[0], init_table /*YYY*/) /*EOF::noinit*/;
   return_label1: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_PError].i] = 1;
   tracehead = trace.prev;
index 799739f..b5439cc 100644 (file)
@@ -487,1324 +487,1324 @@ extern const classtable_elt_t VFT_ADoc[];
 extern const classtable_elt_t VFT_Start[];
 extern const char *LOCATE_parser_nodes;
 extern const int SFT_parser_nodes[];
-#define ID_PNode SFT_parser_nodes[0]
-#define COLOR_PNode SFT_parser_nodes[1]
-#define INIT_TABLE_POS_PNode SFT_parser_nodes[2]
-#define COLOR_parser_nodes___PNode___init SFT_parser_nodes[3]
-#define ID_Token SFT_parser_nodes[4]
-#define COLOR_Token SFT_parser_nodes[5]
-#define INIT_TABLE_POS_Token SFT_parser_nodes[6]
-#define ID_Prod SFT_parser_nodes[7]
-#define COLOR_Prod SFT_parser_nodes[8]
-#define INIT_TABLE_POS_Prod SFT_parser_nodes[9]
-#define ID_TEol SFT_parser_nodes[10]
-#define COLOR_TEol SFT_parser_nodes[11]
-#define INIT_TABLE_POS_TEol SFT_parser_nodes[12]
-#define ID_TComment SFT_parser_nodes[13]
-#define COLOR_TComment SFT_parser_nodes[14]
-#define INIT_TABLE_POS_TComment SFT_parser_nodes[15]
-#define ID_TKwpackage SFT_parser_nodes[16]
-#define COLOR_TKwpackage SFT_parser_nodes[17]
-#define INIT_TABLE_POS_TKwpackage SFT_parser_nodes[18]
-#define ID_TKwimport SFT_parser_nodes[19]
-#define COLOR_TKwimport SFT_parser_nodes[20]
-#define INIT_TABLE_POS_TKwimport SFT_parser_nodes[21]
-#define ID_TKwclass SFT_parser_nodes[22]
-#define COLOR_TKwclass SFT_parser_nodes[23]
-#define INIT_TABLE_POS_TKwclass SFT_parser_nodes[24]
-#define ID_TKwabstract SFT_parser_nodes[25]
-#define COLOR_TKwabstract SFT_parser_nodes[26]
-#define INIT_TABLE_POS_TKwabstract SFT_parser_nodes[27]
-#define ID_TKwinterface SFT_parser_nodes[28]
-#define COLOR_TKwinterface SFT_parser_nodes[29]
-#define INIT_TABLE_POS_TKwinterface SFT_parser_nodes[30]
-#define ID_TKwuniversal SFT_parser_nodes[31]
-#define COLOR_TKwuniversal SFT_parser_nodes[32]
-#define INIT_TABLE_POS_TKwuniversal SFT_parser_nodes[33]
-#define ID_TKwspecial SFT_parser_nodes[34]
-#define COLOR_TKwspecial SFT_parser_nodes[35]
-#define INIT_TABLE_POS_TKwspecial SFT_parser_nodes[36]
-#define ID_TKwend SFT_parser_nodes[37]
-#define COLOR_TKwend SFT_parser_nodes[38]
-#define INIT_TABLE_POS_TKwend SFT_parser_nodes[39]
-#define ID_TKwmeth SFT_parser_nodes[40]
-#define COLOR_TKwmeth SFT_parser_nodes[41]
-#define INIT_TABLE_POS_TKwmeth SFT_parser_nodes[42]
-#define ID_TKwtype SFT_parser_nodes[43]
-#define COLOR_TKwtype SFT_parser_nodes[44]
-#define INIT_TABLE_POS_TKwtype SFT_parser_nodes[45]
-#define ID_TKwattr SFT_parser_nodes[46]
-#define COLOR_TKwattr SFT_parser_nodes[47]
-#define INIT_TABLE_POS_TKwattr SFT_parser_nodes[48]
-#define ID_TKwinit SFT_parser_nodes[49]
-#define COLOR_TKwinit SFT_parser_nodes[50]
-#define INIT_TABLE_POS_TKwinit SFT_parser_nodes[51]
-#define ID_TKwredef SFT_parser_nodes[52]
-#define COLOR_TKwredef SFT_parser_nodes[53]
-#define INIT_TABLE_POS_TKwredef SFT_parser_nodes[54]
-#define ID_TKwis SFT_parser_nodes[55]
-#define COLOR_TKwis SFT_parser_nodes[56]
-#define INIT_TABLE_POS_TKwis SFT_parser_nodes[57]
-#define ID_TKwdo SFT_parser_nodes[58]
-#define COLOR_TKwdo SFT_parser_nodes[59]
-#define INIT_TABLE_POS_TKwdo SFT_parser_nodes[60]
-#define ID_TKwreadable SFT_parser_nodes[61]
-#define COLOR_TKwreadable SFT_parser_nodes[62]
-#define INIT_TABLE_POS_TKwreadable SFT_parser_nodes[63]
-#define ID_TKwwritable SFT_parser_nodes[64]
-#define COLOR_TKwwritable SFT_parser_nodes[65]
-#define INIT_TABLE_POS_TKwwritable SFT_parser_nodes[66]
-#define ID_TKwvar SFT_parser_nodes[67]
-#define COLOR_TKwvar SFT_parser_nodes[68]
-#define INIT_TABLE_POS_TKwvar SFT_parser_nodes[69]
-#define ID_TKwintern SFT_parser_nodes[70]
-#define COLOR_TKwintern SFT_parser_nodes[71]
-#define INIT_TABLE_POS_TKwintern SFT_parser_nodes[72]
-#define ID_TKwextern SFT_parser_nodes[73]
-#define COLOR_TKwextern SFT_parser_nodes[74]
-#define INIT_TABLE_POS_TKwextern SFT_parser_nodes[75]
-#define ID_TKwprotected SFT_parser_nodes[76]
-#define COLOR_TKwprotected SFT_parser_nodes[77]
-#define INIT_TABLE_POS_TKwprotected SFT_parser_nodes[78]
-#define ID_TKwprivate SFT_parser_nodes[79]
-#define COLOR_TKwprivate SFT_parser_nodes[80]
-#define INIT_TABLE_POS_TKwprivate SFT_parser_nodes[81]
-#define ID_TKwintrude SFT_parser_nodes[82]
-#define COLOR_TKwintrude SFT_parser_nodes[83]
-#define INIT_TABLE_POS_TKwintrude SFT_parser_nodes[84]
-#define ID_TKwif SFT_parser_nodes[85]
-#define COLOR_TKwif SFT_parser_nodes[86]
-#define INIT_TABLE_POS_TKwif SFT_parser_nodes[87]
-#define ID_TKwthen SFT_parser_nodes[88]
-#define COLOR_TKwthen SFT_parser_nodes[89]
-#define INIT_TABLE_POS_TKwthen SFT_parser_nodes[90]
-#define ID_TKwelse SFT_parser_nodes[91]
-#define COLOR_TKwelse SFT_parser_nodes[92]
-#define INIT_TABLE_POS_TKwelse SFT_parser_nodes[93]
-#define ID_TKwwhile SFT_parser_nodes[94]
-#define COLOR_TKwwhile SFT_parser_nodes[95]
-#define INIT_TABLE_POS_TKwwhile SFT_parser_nodes[96]
-#define ID_TKwfor SFT_parser_nodes[97]
-#define COLOR_TKwfor SFT_parser_nodes[98]
-#define INIT_TABLE_POS_TKwfor SFT_parser_nodes[99]
-#define ID_TKwin SFT_parser_nodes[100]
-#define COLOR_TKwin SFT_parser_nodes[101]
-#define INIT_TABLE_POS_TKwin SFT_parser_nodes[102]
-#define ID_TKwand SFT_parser_nodes[103]
-#define COLOR_TKwand SFT_parser_nodes[104]
-#define INIT_TABLE_POS_TKwand SFT_parser_nodes[105]
-#define ID_TKwor SFT_parser_nodes[106]
-#define COLOR_TKwor SFT_parser_nodes[107]
-#define INIT_TABLE_POS_TKwor SFT_parser_nodes[108]
-#define ID_TKwnot SFT_parser_nodes[109]
-#define COLOR_TKwnot SFT_parser_nodes[110]
-#define INIT_TABLE_POS_TKwnot SFT_parser_nodes[111]
-#define ID_TKwreturn SFT_parser_nodes[112]
-#define COLOR_TKwreturn SFT_parser_nodes[113]
-#define INIT_TABLE_POS_TKwreturn SFT_parser_nodes[114]
-#define ID_TKwcontinue SFT_parser_nodes[115]
-#define COLOR_TKwcontinue SFT_parser_nodes[116]
-#define INIT_TABLE_POS_TKwcontinue SFT_parser_nodes[117]
-#define ID_TKwbreak SFT_parser_nodes[118]
-#define COLOR_TKwbreak SFT_parser_nodes[119]
-#define INIT_TABLE_POS_TKwbreak SFT_parser_nodes[120]
-#define ID_TKwabort SFT_parser_nodes[121]
-#define COLOR_TKwabort SFT_parser_nodes[122]
-#define INIT_TABLE_POS_TKwabort SFT_parser_nodes[123]
-#define ID_TKwassert SFT_parser_nodes[124]
-#define COLOR_TKwassert SFT_parser_nodes[125]
-#define INIT_TABLE_POS_TKwassert SFT_parser_nodes[126]
-#define ID_TKwnew SFT_parser_nodes[127]
-#define COLOR_TKwnew SFT_parser_nodes[128]
-#define INIT_TABLE_POS_TKwnew SFT_parser_nodes[129]
-#define ID_TKwisa SFT_parser_nodes[130]
-#define COLOR_TKwisa SFT_parser_nodes[131]
-#define INIT_TABLE_POS_TKwisa SFT_parser_nodes[132]
-#define ID_TKwonce SFT_parser_nodes[133]
-#define COLOR_TKwonce SFT_parser_nodes[134]
-#define INIT_TABLE_POS_TKwonce SFT_parser_nodes[135]
-#define ID_TKwsuper SFT_parser_nodes[136]
-#define COLOR_TKwsuper SFT_parser_nodes[137]
-#define INIT_TABLE_POS_TKwsuper SFT_parser_nodes[138]
-#define ID_TKwself SFT_parser_nodes[139]
-#define COLOR_TKwself SFT_parser_nodes[140]
-#define INIT_TABLE_POS_TKwself SFT_parser_nodes[141]
-#define ID_TKwtrue SFT_parser_nodes[142]
-#define COLOR_TKwtrue SFT_parser_nodes[143]
-#define INIT_TABLE_POS_TKwtrue SFT_parser_nodes[144]
-#define ID_TKwfalse SFT_parser_nodes[145]
-#define COLOR_TKwfalse SFT_parser_nodes[146]
-#define INIT_TABLE_POS_TKwfalse SFT_parser_nodes[147]
-#define ID_TKwnull SFT_parser_nodes[148]
-#define COLOR_TKwnull SFT_parser_nodes[149]
-#define INIT_TABLE_POS_TKwnull SFT_parser_nodes[150]
-#define ID_TKwas SFT_parser_nodes[151]
-#define COLOR_TKwas SFT_parser_nodes[152]
-#define INIT_TABLE_POS_TKwas SFT_parser_nodes[153]
-#define ID_TKwwith SFT_parser_nodes[154]
-#define COLOR_TKwwith SFT_parser_nodes[155]
-#define INIT_TABLE_POS_TKwwith SFT_parser_nodes[156]
-#define ID_TOpar SFT_parser_nodes[157]
-#define COLOR_TOpar SFT_parser_nodes[158]
-#define INIT_TABLE_POS_TOpar SFT_parser_nodes[159]
-#define ID_TCpar SFT_parser_nodes[160]
-#define COLOR_TCpar SFT_parser_nodes[161]
-#define INIT_TABLE_POS_TCpar SFT_parser_nodes[162]
-#define ID_TObra SFT_parser_nodes[163]
-#define COLOR_TObra SFT_parser_nodes[164]
-#define INIT_TABLE_POS_TObra SFT_parser_nodes[165]
-#define ID_TCbra SFT_parser_nodes[166]
-#define COLOR_TCbra SFT_parser_nodes[167]
-#define INIT_TABLE_POS_TCbra SFT_parser_nodes[168]
-#define ID_TComma SFT_parser_nodes[169]
-#define COLOR_TComma SFT_parser_nodes[170]
-#define INIT_TABLE_POS_TComma SFT_parser_nodes[171]
-#define ID_TColumn SFT_parser_nodes[172]
-#define COLOR_TColumn SFT_parser_nodes[173]
-#define INIT_TABLE_POS_TColumn SFT_parser_nodes[174]
-#define ID_TQuad SFT_parser_nodes[175]
-#define COLOR_TQuad SFT_parser_nodes[176]
-#define INIT_TABLE_POS_TQuad SFT_parser_nodes[177]
-#define ID_TAssign SFT_parser_nodes[178]
-#define COLOR_TAssign SFT_parser_nodes[179]
-#define INIT_TABLE_POS_TAssign SFT_parser_nodes[180]
-#define ID_TPluseq SFT_parser_nodes[181]
-#define COLOR_TPluseq SFT_parser_nodes[182]
-#define INIT_TABLE_POS_TPluseq SFT_parser_nodes[183]
-#define ID_TMinuseq SFT_parser_nodes[184]
-#define COLOR_TMinuseq SFT_parser_nodes[185]
-#define INIT_TABLE_POS_TMinuseq SFT_parser_nodes[186]
-#define ID_TDotdotdot SFT_parser_nodes[187]
-#define COLOR_TDotdotdot SFT_parser_nodes[188]
-#define INIT_TABLE_POS_TDotdotdot SFT_parser_nodes[189]
-#define ID_TDotdot SFT_parser_nodes[190]
-#define COLOR_TDotdot SFT_parser_nodes[191]
-#define INIT_TABLE_POS_TDotdot SFT_parser_nodes[192]
-#define ID_TDot SFT_parser_nodes[193]
-#define COLOR_TDot SFT_parser_nodes[194]
-#define INIT_TABLE_POS_TDot SFT_parser_nodes[195]
-#define ID_TPlus SFT_parser_nodes[196]
-#define COLOR_TPlus SFT_parser_nodes[197]
-#define INIT_TABLE_POS_TPlus SFT_parser_nodes[198]
-#define ID_TMinus SFT_parser_nodes[199]
-#define COLOR_TMinus SFT_parser_nodes[200]
-#define INIT_TABLE_POS_TMinus SFT_parser_nodes[201]
-#define ID_TStar SFT_parser_nodes[202]
-#define COLOR_TStar SFT_parser_nodes[203]
-#define INIT_TABLE_POS_TStar SFT_parser_nodes[204]
-#define ID_TSlash SFT_parser_nodes[205]
-#define COLOR_TSlash SFT_parser_nodes[206]
-#define INIT_TABLE_POS_TSlash SFT_parser_nodes[207]
-#define ID_TPercent SFT_parser_nodes[208]
-#define COLOR_TPercent SFT_parser_nodes[209]
-#define INIT_TABLE_POS_TPercent SFT_parser_nodes[210]
-#define ID_TEq SFT_parser_nodes[211]
-#define COLOR_TEq SFT_parser_nodes[212]
-#define INIT_TABLE_POS_TEq SFT_parser_nodes[213]
-#define ID_TNe SFT_parser_nodes[214]
-#define COLOR_TNe SFT_parser_nodes[215]
-#define INIT_TABLE_POS_TNe SFT_parser_nodes[216]
-#define ID_TLt SFT_parser_nodes[217]
-#define COLOR_TLt SFT_parser_nodes[218]
-#define INIT_TABLE_POS_TLt SFT_parser_nodes[219]
-#define ID_TLe SFT_parser_nodes[220]
-#define COLOR_TLe SFT_parser_nodes[221]
-#define INIT_TABLE_POS_TLe SFT_parser_nodes[222]
-#define ID_TGt SFT_parser_nodes[223]
-#define COLOR_TGt SFT_parser_nodes[224]
-#define INIT_TABLE_POS_TGt SFT_parser_nodes[225]
-#define ID_TGe SFT_parser_nodes[226]
-#define COLOR_TGe SFT_parser_nodes[227]
-#define INIT_TABLE_POS_TGe SFT_parser_nodes[228]
-#define ID_TStarship SFT_parser_nodes[229]
-#define COLOR_TStarship SFT_parser_nodes[230]
-#define INIT_TABLE_POS_TStarship SFT_parser_nodes[231]
-#define ID_TClassid SFT_parser_nodes[232]
-#define COLOR_TClassid SFT_parser_nodes[233]
-#define INIT_TABLE_POS_TClassid SFT_parser_nodes[234]
-#define ID_TId SFT_parser_nodes[235]
-#define COLOR_TId SFT_parser_nodes[236]
-#define INIT_TABLE_POS_TId SFT_parser_nodes[237]
-#define ID_TAttrid SFT_parser_nodes[238]
-#define COLOR_TAttrid SFT_parser_nodes[239]
-#define INIT_TABLE_POS_TAttrid SFT_parser_nodes[240]
-#define ID_TNumber SFT_parser_nodes[241]
-#define COLOR_TNumber SFT_parser_nodes[242]
-#define INIT_TABLE_POS_TNumber SFT_parser_nodes[243]
-#define ID_TFloat SFT_parser_nodes[244]
-#define COLOR_TFloat SFT_parser_nodes[245]
-#define INIT_TABLE_POS_TFloat SFT_parser_nodes[246]
-#define ID_TChar SFT_parser_nodes[247]
-#define COLOR_TChar SFT_parser_nodes[248]
-#define INIT_TABLE_POS_TChar SFT_parser_nodes[249]
-#define ID_TString SFT_parser_nodes[250]
-#define COLOR_TString SFT_parser_nodes[251]
-#define INIT_TABLE_POS_TString SFT_parser_nodes[252]
-#define ID_TStartString SFT_parser_nodes[253]
-#define COLOR_TStartString SFT_parser_nodes[254]
-#define INIT_TABLE_POS_TStartString SFT_parser_nodes[255]
-#define ID_TMidString SFT_parser_nodes[256]
-#define COLOR_TMidString SFT_parser_nodes[257]
-#define INIT_TABLE_POS_TMidString SFT_parser_nodes[258]
-#define ID_TEndString SFT_parser_nodes[259]
-#define COLOR_TEndString SFT_parser_nodes[260]
-#define INIT_TABLE_POS_TEndString SFT_parser_nodes[261]
-#define ID_EOF SFT_parser_nodes[262]
-#define COLOR_EOF SFT_parser_nodes[263]
-#define INIT_TABLE_POS_EOF SFT_parser_nodes[264]
-#define COLOR_parser_nodes___EOF___noinit SFT_parser_nodes[265]
-#define ID_PError SFT_parser_nodes[266]
-#define COLOR_PError SFT_parser_nodes[267]
-#define INIT_TABLE_POS_PError SFT_parser_nodes[268]
-#define COLOR_parser_nodes___PError___noinit SFT_parser_nodes[269]
-#define ID_PModule SFT_parser_nodes[270]
-#define COLOR_PModule SFT_parser_nodes[271]
-#define INIT_TABLE_POS_PModule SFT_parser_nodes[272]
-#define ID_PPackagedecl SFT_parser_nodes[273]
-#define COLOR_PPackagedecl SFT_parser_nodes[274]
-#define INIT_TABLE_POS_PPackagedecl SFT_parser_nodes[275]
-#define ID_PImport SFT_parser_nodes[276]
-#define COLOR_PImport SFT_parser_nodes[277]
-#define INIT_TABLE_POS_PImport SFT_parser_nodes[278]
-#define ID_PVisibility SFT_parser_nodes[279]
-#define COLOR_PVisibility SFT_parser_nodes[280]
-#define INIT_TABLE_POS_PVisibility SFT_parser_nodes[281]
-#define ID_PClassdef SFT_parser_nodes[282]
-#define COLOR_PClassdef SFT_parser_nodes[283]
-#define INIT_TABLE_POS_PClassdef SFT_parser_nodes[284]
-#define ID_PClasskind SFT_parser_nodes[285]
-#define COLOR_PClasskind SFT_parser_nodes[286]
-#define INIT_TABLE_POS_PClasskind SFT_parser_nodes[287]
-#define ID_PFormaldef SFT_parser_nodes[288]
-#define COLOR_PFormaldef SFT_parser_nodes[289]
-#define INIT_TABLE_POS_PFormaldef SFT_parser_nodes[290]
-#define ID_PSuperclass SFT_parser_nodes[291]
-#define COLOR_PSuperclass SFT_parser_nodes[292]
-#define INIT_TABLE_POS_PSuperclass SFT_parser_nodes[293]
-#define ID_PPropdef SFT_parser_nodes[294]
-#define COLOR_PPropdef SFT_parser_nodes[295]
-#define COLOR_parser_nodes___PPropdef____n_doc SFT_parser_nodes[296]
-#define INIT_TABLE_POS_PPropdef SFT_parser_nodes[297]
-#define COLOR_parser_nodes___PPropdef___n_doc SFT_parser_nodes[298]
-#define COLOR_parser_nodes___PPropdef___n_doc__eq SFT_parser_nodes[299]
-#define ID_PAble SFT_parser_nodes[300]
-#define COLOR_PAble SFT_parser_nodes[301]
-#define COLOR_parser_nodes___PAble____n_kwredef SFT_parser_nodes[302]
-#define INIT_TABLE_POS_PAble SFT_parser_nodes[303]
-#define COLOR_parser_nodes___PAble___n_kwredef SFT_parser_nodes[304]
-#define COLOR_parser_nodes___PAble___n_kwredef__eq SFT_parser_nodes[305]
-#define ID_PMethid SFT_parser_nodes[306]
-#define COLOR_PMethid SFT_parser_nodes[307]
-#define INIT_TABLE_POS_PMethid SFT_parser_nodes[308]
-#define ID_PSignature SFT_parser_nodes[309]
-#define COLOR_PSignature SFT_parser_nodes[310]
-#define INIT_TABLE_POS_PSignature SFT_parser_nodes[311]
-#define ID_PParam SFT_parser_nodes[312]
-#define COLOR_PParam SFT_parser_nodes[313]
-#define COLOR_parser_nodes___PParam____n_id SFT_parser_nodes[314]
-#define COLOR_parser_nodes___PParam____n_type SFT_parser_nodes[315]
-#define INIT_TABLE_POS_PParam SFT_parser_nodes[316]
-#define COLOR_parser_nodes___PParam___n_id SFT_parser_nodes[317]
-#define COLOR_parser_nodes___PParam___n_id__eq SFT_parser_nodes[318]
-#define COLOR_parser_nodes___PParam___n_type SFT_parser_nodes[319]
-#define COLOR_parser_nodes___PParam___n_type__eq SFT_parser_nodes[320]
-#define ID_PClosureDecl SFT_parser_nodes[321]
-#define COLOR_PClosureDecl SFT_parser_nodes[322]
-#define INIT_TABLE_POS_PClosureDecl SFT_parser_nodes[323]
-#define ID_PType SFT_parser_nodes[324]
-#define COLOR_PType SFT_parser_nodes[325]
-#define INIT_TABLE_POS_PType SFT_parser_nodes[326]
-#define ID_PExpr SFT_parser_nodes[327]
-#define COLOR_PExpr SFT_parser_nodes[328]
-#define INIT_TABLE_POS_PExpr SFT_parser_nodes[329]
-#define ID_PAssignOp SFT_parser_nodes[330]
-#define COLOR_PAssignOp SFT_parser_nodes[331]
-#define INIT_TABLE_POS_PAssignOp SFT_parser_nodes[332]
-#define ID_PClosureDef SFT_parser_nodes[333]
-#define COLOR_PClosureDef SFT_parser_nodes[334]
-#define INIT_TABLE_POS_PClosureDef SFT_parser_nodes[335]
-#define ID_PQualified SFT_parser_nodes[336]
-#define COLOR_PQualified SFT_parser_nodes[337]
-#define INIT_TABLE_POS_PQualified SFT_parser_nodes[338]
-#define ID_PDoc SFT_parser_nodes[339]
-#define COLOR_PDoc SFT_parser_nodes[340]
-#define INIT_TABLE_POS_PDoc SFT_parser_nodes[341]
-#define ID_AModule SFT_parser_nodes[342]
-#define COLOR_AModule SFT_parser_nodes[343]
-#define COLOR_parser_nodes___AModule____n_packagedecl SFT_parser_nodes[344]
-#define COLOR_parser_nodes___AModule____n_imports SFT_parser_nodes[345]
-#define COLOR_parser_nodes___AModule____n_classdefs SFT_parser_nodes[346]
-#define INIT_TABLE_POS_AModule SFT_parser_nodes[347]
-#define COLOR_parser_nodes___AModule___n_packagedecl SFT_parser_nodes[348]
-#define COLOR_parser_nodes___AModule___n_packagedecl__eq SFT_parser_nodes[349]
-#define COLOR_parser_nodes___AModule___n_imports SFT_parser_nodes[350]
-#define COLOR_parser_nodes___AModule___n_imports__eq SFT_parser_nodes[351]
-#define COLOR_parser_nodes___AModule___n_classdefs SFT_parser_nodes[352]
-#define COLOR_parser_nodes___AModule___n_classdefs__eq SFT_parser_nodes[353]
-#define ID_APackagedecl SFT_parser_nodes[354]
-#define COLOR_APackagedecl SFT_parser_nodes[355]
-#define COLOR_parser_nodes___APackagedecl____n_doc SFT_parser_nodes[356]
-#define COLOR_parser_nodes___APackagedecl____n_kwpackage SFT_parser_nodes[357]
-#define COLOR_parser_nodes___APackagedecl____n_id SFT_parser_nodes[358]
-#define INIT_TABLE_POS_APackagedecl SFT_parser_nodes[359]
-#define COLOR_parser_nodes___APackagedecl___n_doc SFT_parser_nodes[360]
-#define COLOR_parser_nodes___APackagedecl___n_doc__eq SFT_parser_nodes[361]
-#define COLOR_parser_nodes___APackagedecl___n_kwpackage SFT_parser_nodes[362]
-#define COLOR_parser_nodes___APackagedecl___n_kwpackage__eq SFT_parser_nodes[363]
-#define COLOR_parser_nodes___APackagedecl___n_id SFT_parser_nodes[364]
-#define COLOR_parser_nodes___APackagedecl___n_id__eq SFT_parser_nodes[365]
-#define ID_AImport SFT_parser_nodes[366]
-#define COLOR_AImport SFT_parser_nodes[367]
-#define COLOR_parser_nodes___AImport____n_visibility SFT_parser_nodes[368]
-#define COLOR_parser_nodes___AImport____n_kwimport SFT_parser_nodes[369]
-#define COLOR_parser_nodes___AImport____n_id SFT_parser_nodes[370]
-#define INIT_TABLE_POS_AImport SFT_parser_nodes[371]
-#define COLOR_parser_nodes___AImport___n_visibility SFT_parser_nodes[372]
-#define COLOR_parser_nodes___AImport___n_visibility__eq SFT_parser_nodes[373]
-#define COLOR_parser_nodes___AImport___n_kwimport SFT_parser_nodes[374]
-#define COLOR_parser_nodes___AImport___n_kwimport__eq SFT_parser_nodes[375]
-#define COLOR_parser_nodes___AImport___n_id SFT_parser_nodes[376]
-#define COLOR_parser_nodes___AImport___n_id__eq SFT_parser_nodes[377]
-#define ID_ANoImport SFT_parser_nodes[378]
-#define COLOR_ANoImport SFT_parser_nodes[379]
-#define COLOR_parser_nodes___ANoImport____n_visibility SFT_parser_nodes[380]
-#define COLOR_parser_nodes___ANoImport____n_kwimport SFT_parser_nodes[381]
-#define COLOR_parser_nodes___ANoImport____n_kwend SFT_parser_nodes[382]
-#define INIT_TABLE_POS_ANoImport SFT_parser_nodes[383]
-#define COLOR_parser_nodes___ANoImport___n_visibility SFT_parser_nodes[384]
-#define COLOR_parser_nodes___ANoImport___n_visibility__eq SFT_parser_nodes[385]
-#define COLOR_parser_nodes___ANoImport___n_kwimport SFT_parser_nodes[386]
-#define COLOR_parser_nodes___ANoImport___n_kwimport__eq SFT_parser_nodes[387]
-#define COLOR_parser_nodes___ANoImport___n_kwend SFT_parser_nodes[388]
-#define COLOR_parser_nodes___ANoImport___n_kwend__eq SFT_parser_nodes[389]
-#define ID_APublicVisibility SFT_parser_nodes[390]
-#define COLOR_APublicVisibility SFT_parser_nodes[391]
-#define INIT_TABLE_POS_APublicVisibility SFT_parser_nodes[392]
-#define ID_APrivateVisibility SFT_parser_nodes[393]
-#define COLOR_APrivateVisibility SFT_parser_nodes[394]
-#define COLOR_parser_nodes___APrivateVisibility____n_kwprivate SFT_parser_nodes[395]
-#define INIT_TABLE_POS_APrivateVisibility SFT_parser_nodes[396]
-#define COLOR_parser_nodes___APrivateVisibility___n_kwprivate SFT_parser_nodes[397]
-#define COLOR_parser_nodes___APrivateVisibility___n_kwprivate__eq SFT_parser_nodes[398]
-#define ID_AProtectedVisibility SFT_parser_nodes[399]
-#define COLOR_AProtectedVisibility SFT_parser_nodes[400]
-#define COLOR_parser_nodes___AProtectedVisibility____n_kwprotected SFT_parser_nodes[401]
-#define INIT_TABLE_POS_AProtectedVisibility SFT_parser_nodes[402]
-#define COLOR_parser_nodes___AProtectedVisibility___n_kwprotected SFT_parser_nodes[403]
-#define COLOR_parser_nodes___AProtectedVisibility___n_kwprotected__eq SFT_parser_nodes[404]
-#define ID_AIntrudeVisibility SFT_parser_nodes[405]
-#define COLOR_AIntrudeVisibility SFT_parser_nodes[406]
-#define COLOR_parser_nodes___AIntrudeVisibility____n_kwintrude SFT_parser_nodes[407]
-#define INIT_TABLE_POS_AIntrudeVisibility SFT_parser_nodes[408]
-#define COLOR_parser_nodes___AIntrudeVisibility___n_kwintrude SFT_parser_nodes[409]
-#define COLOR_parser_nodes___AIntrudeVisibility___n_kwintrude__eq SFT_parser_nodes[410]
-#define ID_AClassdef SFT_parser_nodes[411]
-#define COLOR_AClassdef SFT_parser_nodes[412]
-#define COLOR_parser_nodes___AClassdef____n_doc SFT_parser_nodes[413]
-#define COLOR_parser_nodes___AClassdef____n_kwredef SFT_parser_nodes[414]
-#define COLOR_parser_nodes___AClassdef____n_visibility SFT_parser_nodes[415]
-#define COLOR_parser_nodes___AClassdef____n_classkind SFT_parser_nodes[416]
-#define COLOR_parser_nodes___AClassdef____n_id SFT_parser_nodes[417]
-#define COLOR_parser_nodes___AClassdef____n_formaldefs SFT_parser_nodes[418]
-#define COLOR_parser_nodes___AClassdef____n_superclasses SFT_parser_nodes[419]
-#define COLOR_parser_nodes___AClassdef____n_propdefs SFT_parser_nodes[420]
-#define INIT_TABLE_POS_AClassdef SFT_parser_nodes[421]
-#define COLOR_parser_nodes___AClassdef___n_doc SFT_parser_nodes[422]
-#define COLOR_parser_nodes___AClassdef___n_doc__eq SFT_parser_nodes[423]
-#define COLOR_parser_nodes___AClassdef___n_kwredef SFT_parser_nodes[424]
-#define COLOR_parser_nodes___AClassdef___n_kwredef__eq SFT_parser_nodes[425]
-#define COLOR_parser_nodes___AClassdef___n_visibility SFT_parser_nodes[426]
-#define COLOR_parser_nodes___AClassdef___n_visibility__eq SFT_parser_nodes[427]
-#define COLOR_parser_nodes___AClassdef___n_classkind SFT_parser_nodes[428]
-#define COLOR_parser_nodes___AClassdef___n_classkind__eq SFT_parser_nodes[429]
-#define COLOR_parser_nodes___AClassdef___n_id SFT_parser_nodes[430]
-#define COLOR_parser_nodes___AClassdef___n_id__eq SFT_parser_nodes[431]
-#define COLOR_parser_nodes___AClassdef___n_formaldefs SFT_parser_nodes[432]
-#define COLOR_parser_nodes___AClassdef___n_formaldefs__eq SFT_parser_nodes[433]
-#define COLOR_parser_nodes___AClassdef___n_superclasses SFT_parser_nodes[434]
-#define COLOR_parser_nodes___AClassdef___n_superclasses__eq SFT_parser_nodes[435]
-#define COLOR_parser_nodes___AClassdef___n_propdefs SFT_parser_nodes[436]
-#define COLOR_parser_nodes___AClassdef___n_propdefs__eq SFT_parser_nodes[437]
-#define ID_ATopClassdef SFT_parser_nodes[438]
-#define COLOR_ATopClassdef SFT_parser_nodes[439]
-#define COLOR_parser_nodes___ATopClassdef____n_propdefs SFT_parser_nodes[440]
-#define INIT_TABLE_POS_ATopClassdef SFT_parser_nodes[441]
-#define COLOR_parser_nodes___ATopClassdef___n_propdefs SFT_parser_nodes[442]
-#define COLOR_parser_nodes___ATopClassdef___n_propdefs__eq SFT_parser_nodes[443]
-#define ID_AMainClassdef SFT_parser_nodes[444]
-#define COLOR_AMainClassdef SFT_parser_nodes[445]
-#define COLOR_parser_nodes___AMainClassdef____n_propdefs SFT_parser_nodes[446]
-#define INIT_TABLE_POS_AMainClassdef SFT_parser_nodes[447]
-#define COLOR_parser_nodes___AMainClassdef___n_propdefs SFT_parser_nodes[448]
-#define COLOR_parser_nodes___AMainClassdef___n_propdefs__eq SFT_parser_nodes[449]
-#define ID_AConcreteClasskind SFT_parser_nodes[450]
-#define COLOR_AConcreteClasskind SFT_parser_nodes[451]
-#define COLOR_parser_nodes___AConcreteClasskind____n_kwclass SFT_parser_nodes[452]
-#define INIT_TABLE_POS_AConcreteClasskind SFT_parser_nodes[453]
-#define COLOR_parser_nodes___AConcreteClasskind___n_kwclass SFT_parser_nodes[454]
-#define COLOR_parser_nodes___AConcreteClasskind___n_kwclass__eq SFT_parser_nodes[455]
-#define ID_AAbstractClasskind SFT_parser_nodes[456]
-#define COLOR_AAbstractClasskind SFT_parser_nodes[457]
-#define COLOR_parser_nodes___AAbstractClasskind____n_kwabstract SFT_parser_nodes[458]
-#define COLOR_parser_nodes___AAbstractClasskind____n_kwclass SFT_parser_nodes[459]
-#define INIT_TABLE_POS_AAbstractClasskind SFT_parser_nodes[460]
-#define COLOR_parser_nodes___AAbstractClasskind___n_kwabstract SFT_parser_nodes[461]
-#define COLOR_parser_nodes___AAbstractClasskind___n_kwabstract__eq SFT_parser_nodes[462]
-#define COLOR_parser_nodes___AAbstractClasskind___n_kwclass SFT_parser_nodes[463]
-#define COLOR_parser_nodes___AAbstractClasskind___n_kwclass__eq SFT_parser_nodes[464]
-#define ID_AInterfaceClasskind SFT_parser_nodes[465]
-#define COLOR_AInterfaceClasskind SFT_parser_nodes[466]
-#define COLOR_parser_nodes___AInterfaceClasskind____n_kwinterface SFT_parser_nodes[467]
-#define INIT_TABLE_POS_AInterfaceClasskind SFT_parser_nodes[468]
-#define COLOR_parser_nodes___AInterfaceClasskind___n_kwinterface SFT_parser_nodes[469]
-#define COLOR_parser_nodes___AInterfaceClasskind___n_kwinterface__eq SFT_parser_nodes[470]
-#define ID_AUniversalClasskind SFT_parser_nodes[471]
-#define COLOR_AUniversalClasskind SFT_parser_nodes[472]
-#define COLOR_parser_nodes___AUniversalClasskind____n_kwuniversal SFT_parser_nodes[473]
-#define INIT_TABLE_POS_AUniversalClasskind SFT_parser_nodes[474]
-#define COLOR_parser_nodes___AUniversalClasskind___n_kwuniversal SFT_parser_nodes[475]
-#define COLOR_parser_nodes___AUniversalClasskind___n_kwuniversal__eq SFT_parser_nodes[476]
-#define ID_AFormaldef SFT_parser_nodes[477]
-#define COLOR_AFormaldef SFT_parser_nodes[478]
-#define COLOR_parser_nodes___AFormaldef____n_id SFT_parser_nodes[479]
-#define COLOR_parser_nodes___AFormaldef____n_type SFT_parser_nodes[480]
-#define INIT_TABLE_POS_AFormaldef SFT_parser_nodes[481]
-#define COLOR_parser_nodes___AFormaldef___n_id SFT_parser_nodes[482]
-#define COLOR_parser_nodes___AFormaldef___n_id__eq SFT_parser_nodes[483]
-#define COLOR_parser_nodes___AFormaldef___n_type SFT_parser_nodes[484]
-#define COLOR_parser_nodes___AFormaldef___n_type__eq SFT_parser_nodes[485]
-#define ID_ASuperclass SFT_parser_nodes[486]
-#define COLOR_ASuperclass SFT_parser_nodes[487]
-#define COLOR_parser_nodes___ASuperclass____n_kwspecial SFT_parser_nodes[488]
-#define COLOR_parser_nodes___ASuperclass____n_type SFT_parser_nodes[489]
-#define INIT_TABLE_POS_ASuperclass SFT_parser_nodes[490]
-#define COLOR_parser_nodes___ASuperclass___n_kwspecial SFT_parser_nodes[491]
-#define COLOR_parser_nodes___ASuperclass___n_kwspecial__eq SFT_parser_nodes[492]
-#define COLOR_parser_nodes___ASuperclass___n_type SFT_parser_nodes[493]
-#define COLOR_parser_nodes___ASuperclass___n_type__eq SFT_parser_nodes[494]
-#define ID_AAttrPropdef SFT_parser_nodes[495]
-#define COLOR_AAttrPropdef SFT_parser_nodes[496]
-#define COLOR_parser_nodes___AAttrPropdef____n_kwredef SFT_parser_nodes[497]
-#define COLOR_parser_nodes___AAttrPropdef____n_visibility SFT_parser_nodes[498]
-#define COLOR_parser_nodes___AAttrPropdef____n_kwattr SFT_parser_nodes[499]
-#define COLOR_parser_nodes___AAttrPropdef____n_id SFT_parser_nodes[500]
-#define COLOR_parser_nodes___AAttrPropdef____n_type SFT_parser_nodes[501]
-#define COLOR_parser_nodes___AAttrPropdef____n_readable SFT_parser_nodes[502]
-#define COLOR_parser_nodes___AAttrPropdef____n_writable SFT_parser_nodes[503]
-#define COLOR_parser_nodes___AAttrPropdef____n_expr SFT_parser_nodes[504]
-#define INIT_TABLE_POS_AAttrPropdef SFT_parser_nodes[505]
-#define COLOR_parser_nodes___AAttrPropdef___n_kwredef SFT_parser_nodes[506]
-#define COLOR_parser_nodes___AAttrPropdef___n_kwredef__eq SFT_parser_nodes[507]
-#define COLOR_parser_nodes___AAttrPropdef___n_visibility SFT_parser_nodes[508]
-#define COLOR_parser_nodes___AAttrPropdef___n_visibility__eq SFT_parser_nodes[509]
-#define COLOR_parser_nodes___AAttrPropdef___n_kwattr SFT_parser_nodes[510]
-#define COLOR_parser_nodes___AAttrPropdef___n_kwattr__eq SFT_parser_nodes[511]
-#define COLOR_parser_nodes___AAttrPropdef___n_id SFT_parser_nodes[512]
-#define COLOR_parser_nodes___AAttrPropdef___n_id__eq SFT_parser_nodes[513]
-#define COLOR_parser_nodes___AAttrPropdef___n_type SFT_parser_nodes[514]
-#define COLOR_parser_nodes___AAttrPropdef___n_type__eq SFT_parser_nodes[515]
-#define COLOR_parser_nodes___AAttrPropdef___n_readable SFT_parser_nodes[516]
-#define COLOR_parser_nodes___AAttrPropdef___n_readable__eq SFT_parser_nodes[517]
-#define COLOR_parser_nodes___AAttrPropdef___n_writable SFT_parser_nodes[518]
-#define COLOR_parser_nodes___AAttrPropdef___n_writable__eq SFT_parser_nodes[519]
-#define COLOR_parser_nodes___AAttrPropdef___n_expr SFT_parser_nodes[520]
-#define COLOR_parser_nodes___AAttrPropdef___n_expr__eq SFT_parser_nodes[521]
-#define ID_AMethPropdef SFT_parser_nodes[522]
-#define COLOR_AMethPropdef SFT_parser_nodes[523]
-#define COLOR_parser_nodes___AMethPropdef____n_kwredef SFT_parser_nodes[524]
-#define COLOR_parser_nodes___AMethPropdef____n_visibility SFT_parser_nodes[525]
-#define COLOR_parser_nodes___AMethPropdef____n_methid SFT_parser_nodes[526]
-#define COLOR_parser_nodes___AMethPropdef____n_signature SFT_parser_nodes[527]
-#define INIT_TABLE_POS_AMethPropdef SFT_parser_nodes[528]
-#define COLOR_parser_nodes___AMethPropdef___n_kwredef SFT_parser_nodes[529]
-#define COLOR_parser_nodes___AMethPropdef___n_kwredef__eq SFT_parser_nodes[530]
-#define COLOR_parser_nodes___AMethPropdef___n_visibility SFT_parser_nodes[531]
-#define COLOR_parser_nodes___AMethPropdef___n_visibility__eq SFT_parser_nodes[532]
-#define COLOR_parser_nodes___AMethPropdef___n_methid SFT_parser_nodes[533]
-#define COLOR_parser_nodes___AMethPropdef___n_methid__eq SFT_parser_nodes[534]
-#define COLOR_parser_nodes___AMethPropdef___n_signature SFT_parser_nodes[535]
-#define COLOR_parser_nodes___AMethPropdef___n_signature__eq SFT_parser_nodes[536]
-#define ID_ADeferredMethPropdef SFT_parser_nodes[537]
-#define COLOR_ADeferredMethPropdef SFT_parser_nodes[538]
-#define COLOR_parser_nodes___ADeferredMethPropdef____n_kwmeth SFT_parser_nodes[539]
-#define INIT_TABLE_POS_ADeferredMethPropdef SFT_parser_nodes[540]
-#define COLOR_parser_nodes___ADeferredMethPropdef___n_kwmeth SFT_parser_nodes[541]
-#define COLOR_parser_nodes___ADeferredMethPropdef___n_kwmeth__eq SFT_parser_nodes[542]
-#define ID_AInternMethPropdef SFT_parser_nodes[543]
-#define COLOR_AInternMethPropdef SFT_parser_nodes[544]
-#define COLOR_parser_nodes___AInternMethPropdef____n_kwmeth SFT_parser_nodes[545]
-#define INIT_TABLE_POS_AInternMethPropdef SFT_parser_nodes[546]
-#define COLOR_parser_nodes___AInternMethPropdef___n_kwmeth SFT_parser_nodes[547]
-#define COLOR_parser_nodes___AInternMethPropdef___n_kwmeth__eq SFT_parser_nodes[548]
-#define ID_AExternMethPropdef SFT_parser_nodes[549]
-#define COLOR_AExternMethPropdef SFT_parser_nodes[550]
-#define COLOR_parser_nodes___AExternMethPropdef____n_kwmeth SFT_parser_nodes[551]
-#define COLOR_parser_nodes___AExternMethPropdef____n_extern SFT_parser_nodes[552]
-#define INIT_TABLE_POS_AExternMethPropdef SFT_parser_nodes[553]
-#define COLOR_parser_nodes___AExternMethPropdef___n_kwmeth SFT_parser_nodes[554]
-#define COLOR_parser_nodes___AExternMethPropdef___n_kwmeth__eq SFT_parser_nodes[555]
-#define COLOR_parser_nodes___AExternMethPropdef___n_extern SFT_parser_nodes[556]
-#define COLOR_parser_nodes___AExternMethPropdef___n_extern__eq SFT_parser_nodes[557]
-#define ID_AConcreteMethPropdef SFT_parser_nodes[558]
-#define COLOR_AConcreteMethPropdef SFT_parser_nodes[559]
-#define COLOR_parser_nodes___AConcreteMethPropdef____n_kwmeth SFT_parser_nodes[560]
-#define COLOR_parser_nodes___AConcreteMethPropdef____n_block SFT_parser_nodes[561]
-#define INIT_TABLE_POS_AConcreteMethPropdef SFT_parser_nodes[562]
-#define COLOR_parser_nodes___AConcreteMethPropdef___n_kwmeth SFT_parser_nodes[563]
-#define COLOR_parser_nodes___AConcreteMethPropdef___n_kwmeth__eq SFT_parser_nodes[564]
-#define COLOR_parser_nodes___AConcreteMethPropdef___n_block SFT_parser_nodes[565]
-#define COLOR_parser_nodes___AConcreteMethPropdef___n_block__eq SFT_parser_nodes[566]
-#define ID_AConcreteInitPropdef SFT_parser_nodes[567]
-#define COLOR_AConcreteInitPropdef SFT_parser_nodes[568]
-#define COLOR_parser_nodes___AConcreteInitPropdef____n_kwinit SFT_parser_nodes[569]
-#define INIT_TABLE_POS_AConcreteInitPropdef SFT_parser_nodes[570]
-#define COLOR_parser_nodes___AConcreteInitPropdef___n_kwinit SFT_parser_nodes[571]
-#define COLOR_parser_nodes___AConcreteInitPropdef___n_kwinit__eq SFT_parser_nodes[572]
-#define ID_AMainMethPropdef SFT_parser_nodes[573]
-#define COLOR_AMainMethPropdef SFT_parser_nodes[574]
-#define INIT_TABLE_POS_AMainMethPropdef SFT_parser_nodes[575]
-#define ID_ATypePropdef SFT_parser_nodes[576]
-#define COLOR_ATypePropdef SFT_parser_nodes[577]
-#define COLOR_parser_nodes___ATypePropdef____n_kwredef SFT_parser_nodes[578]
-#define COLOR_parser_nodes___ATypePropdef____n_visibility SFT_parser_nodes[579]
-#define COLOR_parser_nodes___ATypePropdef____n_kwtype SFT_parser_nodes[580]
-#define COLOR_parser_nodes___ATypePropdef____n_id SFT_parser_nodes[581]
-#define COLOR_parser_nodes___ATypePropdef____n_type SFT_parser_nodes[582]
-#define INIT_TABLE_POS_ATypePropdef SFT_parser_nodes[583]
-#define COLOR_parser_nodes___ATypePropdef___n_kwredef SFT_parser_nodes[584]
-#define COLOR_parser_nodes___ATypePropdef___n_kwredef__eq SFT_parser_nodes[585]
-#define COLOR_parser_nodes___ATypePropdef___n_visibility SFT_parser_nodes[586]
-#define COLOR_parser_nodes___ATypePropdef___n_visibility__eq SFT_parser_nodes[587]
-#define COLOR_parser_nodes___ATypePropdef___n_kwtype SFT_parser_nodes[588]
-#define COLOR_parser_nodes___ATypePropdef___n_kwtype__eq SFT_parser_nodes[589]
-#define COLOR_parser_nodes___ATypePropdef___n_id SFT_parser_nodes[590]
-#define COLOR_parser_nodes___ATypePropdef___n_id__eq SFT_parser_nodes[591]
-#define COLOR_parser_nodes___ATypePropdef___n_type SFT_parser_nodes[592]
-#define COLOR_parser_nodes___ATypePropdef___n_type__eq SFT_parser_nodes[593]
-#define ID_AReadAble SFT_parser_nodes[594]
-#define COLOR_AReadAble SFT_parser_nodes[595]
-#define COLOR_parser_nodes___AReadAble____n_kwreadable SFT_parser_nodes[596]
-#define INIT_TABLE_POS_AReadAble SFT_parser_nodes[597]
-#define COLOR_parser_nodes___AReadAble___n_kwreadable SFT_parser_nodes[598]
-#define COLOR_parser_nodes___AReadAble___n_kwreadable__eq SFT_parser_nodes[599]
-#define ID_AWriteAble SFT_parser_nodes[600]
-#define COLOR_AWriteAble SFT_parser_nodes[601]
-#define COLOR_parser_nodes___AWriteAble____n_kwwritable SFT_parser_nodes[602]
-#define INIT_TABLE_POS_AWriteAble SFT_parser_nodes[603]
-#define COLOR_parser_nodes___AWriteAble___n_kwwritable SFT_parser_nodes[604]
-#define COLOR_parser_nodes___AWriteAble___n_kwwritable__eq SFT_parser_nodes[605]
-#define ID_AIdMethid SFT_parser_nodes[606]
-#define COLOR_AIdMethid SFT_parser_nodes[607]
-#define COLOR_parser_nodes___AIdMethid____n_id SFT_parser_nodes[608]
-#define INIT_TABLE_POS_AIdMethid SFT_parser_nodes[609]
-#define COLOR_parser_nodes___AIdMethid___n_id SFT_parser_nodes[610]
-#define COLOR_parser_nodes___AIdMethid___n_id__eq SFT_parser_nodes[611]
-#define ID_APlusMethid SFT_parser_nodes[612]
-#define COLOR_APlusMethid SFT_parser_nodes[613]
-#define COLOR_parser_nodes___APlusMethid____n_plus SFT_parser_nodes[614]
-#define INIT_TABLE_POS_APlusMethid SFT_parser_nodes[615]
-#define COLOR_parser_nodes___APlusMethid___n_plus SFT_parser_nodes[616]
-#define COLOR_parser_nodes___APlusMethid___n_plus__eq SFT_parser_nodes[617]
-#define ID_AMinusMethid SFT_parser_nodes[618]
-#define COLOR_AMinusMethid SFT_parser_nodes[619]
-#define COLOR_parser_nodes___AMinusMethid____n_minus SFT_parser_nodes[620]
-#define INIT_TABLE_POS_AMinusMethid SFT_parser_nodes[621]
-#define COLOR_parser_nodes___AMinusMethid___n_minus SFT_parser_nodes[622]
-#define COLOR_parser_nodes___AMinusMethid___n_minus__eq SFT_parser_nodes[623]
-#define ID_AStarMethid SFT_parser_nodes[624]
-#define COLOR_AStarMethid SFT_parser_nodes[625]
-#define COLOR_parser_nodes___AStarMethid____n_star SFT_parser_nodes[626]
-#define INIT_TABLE_POS_AStarMethid SFT_parser_nodes[627]
-#define COLOR_parser_nodes___AStarMethid___n_star SFT_parser_nodes[628]
-#define COLOR_parser_nodes___AStarMethid___n_star__eq SFT_parser_nodes[629]
-#define ID_ASlashMethid SFT_parser_nodes[630]
-#define COLOR_ASlashMethid SFT_parser_nodes[631]
-#define COLOR_parser_nodes___ASlashMethid____n_slash SFT_parser_nodes[632]
-#define INIT_TABLE_POS_ASlashMethid SFT_parser_nodes[633]
-#define COLOR_parser_nodes___ASlashMethid___n_slash SFT_parser_nodes[634]
-#define COLOR_parser_nodes___ASlashMethid___n_slash__eq SFT_parser_nodes[635]
-#define ID_APercentMethid SFT_parser_nodes[636]
-#define COLOR_APercentMethid SFT_parser_nodes[637]
-#define COLOR_parser_nodes___APercentMethid____n_percent SFT_parser_nodes[638]
-#define INIT_TABLE_POS_APercentMethid SFT_parser_nodes[639]
-#define COLOR_parser_nodes___APercentMethid___n_percent SFT_parser_nodes[640]
-#define COLOR_parser_nodes___APercentMethid___n_percent__eq SFT_parser_nodes[641]
-#define ID_AEqMethid SFT_parser_nodes[642]
-#define COLOR_AEqMethid SFT_parser_nodes[643]
-#define COLOR_parser_nodes___AEqMethid____n_eq SFT_parser_nodes[644]
-#define INIT_TABLE_POS_AEqMethid SFT_parser_nodes[645]
-#define COLOR_parser_nodes___AEqMethid___n_eq SFT_parser_nodes[646]
-#define COLOR_parser_nodes___AEqMethid___n_eq__eq SFT_parser_nodes[647]
-#define ID_ANeMethid SFT_parser_nodes[648]
-#define COLOR_ANeMethid SFT_parser_nodes[649]
-#define COLOR_parser_nodes___ANeMethid____n_ne SFT_parser_nodes[650]
-#define INIT_TABLE_POS_ANeMethid SFT_parser_nodes[651]
-#define COLOR_parser_nodes___ANeMethid___n_ne SFT_parser_nodes[652]
-#define COLOR_parser_nodes___ANeMethid___n_ne__eq SFT_parser_nodes[653]
-#define ID_ALeMethid SFT_parser_nodes[654]
-#define COLOR_ALeMethid SFT_parser_nodes[655]
-#define COLOR_parser_nodes___ALeMethid____n_le SFT_parser_nodes[656]
-#define INIT_TABLE_POS_ALeMethid SFT_parser_nodes[657]
-#define COLOR_parser_nodes___ALeMethid___n_le SFT_parser_nodes[658]
-#define COLOR_parser_nodes___ALeMethid___n_le__eq SFT_parser_nodes[659]
-#define ID_AGeMethid SFT_parser_nodes[660]
-#define COLOR_AGeMethid SFT_parser_nodes[661]
-#define COLOR_parser_nodes___AGeMethid____n_ge SFT_parser_nodes[662]
-#define INIT_TABLE_POS_AGeMethid SFT_parser_nodes[663]
-#define COLOR_parser_nodes___AGeMethid___n_ge SFT_parser_nodes[664]
-#define COLOR_parser_nodes___AGeMethid___n_ge__eq SFT_parser_nodes[665]
-#define ID_ALtMethid SFT_parser_nodes[666]
-#define COLOR_ALtMethid SFT_parser_nodes[667]
-#define COLOR_parser_nodes___ALtMethid____n_lt SFT_parser_nodes[668]
-#define INIT_TABLE_POS_ALtMethid SFT_parser_nodes[669]
-#define COLOR_parser_nodes___ALtMethid___n_lt SFT_parser_nodes[670]
-#define COLOR_parser_nodes___ALtMethid___n_lt__eq SFT_parser_nodes[671]
-#define ID_AGtMethid SFT_parser_nodes[672]
-#define COLOR_AGtMethid SFT_parser_nodes[673]
-#define COLOR_parser_nodes___AGtMethid____n_gt SFT_parser_nodes[674]
-#define INIT_TABLE_POS_AGtMethid SFT_parser_nodes[675]
-#define COLOR_parser_nodes___AGtMethid___n_gt SFT_parser_nodes[676]
-#define COLOR_parser_nodes___AGtMethid___n_gt__eq SFT_parser_nodes[677]
-#define ID_ABraMethid SFT_parser_nodes[678]
-#define COLOR_ABraMethid SFT_parser_nodes[679]
-#define COLOR_parser_nodes___ABraMethid____n_obra SFT_parser_nodes[680]
-#define COLOR_parser_nodes___ABraMethid____n_cbra SFT_parser_nodes[681]
-#define INIT_TABLE_POS_ABraMethid SFT_parser_nodes[682]
-#define COLOR_parser_nodes___ABraMethid___n_obra SFT_parser_nodes[683]
-#define COLOR_parser_nodes___ABraMethid___n_obra__eq SFT_parser_nodes[684]
-#define COLOR_parser_nodes___ABraMethid___n_cbra SFT_parser_nodes[685]
-#define COLOR_parser_nodes___ABraMethid___n_cbra__eq SFT_parser_nodes[686]
-#define ID_AStarshipMethid SFT_parser_nodes[687]
-#define COLOR_AStarshipMethid SFT_parser_nodes[688]
-#define COLOR_parser_nodes___AStarshipMethid____n_starship SFT_parser_nodes[689]
-#define INIT_TABLE_POS_AStarshipMethid SFT_parser_nodes[690]
-#define COLOR_parser_nodes___AStarshipMethid___n_starship SFT_parser_nodes[691]
-#define COLOR_parser_nodes___AStarshipMethid___n_starship__eq SFT_parser_nodes[692]
-#define ID_AAssignMethid SFT_parser_nodes[693]
-#define COLOR_AAssignMethid SFT_parser_nodes[694]
-#define COLOR_parser_nodes___AAssignMethid____n_id SFT_parser_nodes[695]
-#define COLOR_parser_nodes___AAssignMethid____n_assign SFT_parser_nodes[696]
-#define INIT_TABLE_POS_AAssignMethid SFT_parser_nodes[697]
-#define COLOR_parser_nodes___AAssignMethid___n_id SFT_parser_nodes[698]
-#define COLOR_parser_nodes___AAssignMethid___n_id__eq SFT_parser_nodes[699]
-#define COLOR_parser_nodes___AAssignMethid___n_assign SFT_parser_nodes[700]
-#define COLOR_parser_nodes___AAssignMethid___n_assign__eq SFT_parser_nodes[701]
-#define ID_ABraassignMethid SFT_parser_nodes[702]
-#define COLOR_ABraassignMethid SFT_parser_nodes[703]
-#define COLOR_parser_nodes___ABraassignMethid____n_obra SFT_parser_nodes[704]
-#define COLOR_parser_nodes___ABraassignMethid____n_cbra SFT_parser_nodes[705]
-#define COLOR_parser_nodes___ABraassignMethid____n_assign SFT_parser_nodes[706]
-#define INIT_TABLE_POS_ABraassignMethid SFT_parser_nodes[707]
-#define COLOR_parser_nodes___ABraassignMethid___n_obra SFT_parser_nodes[708]
-#define COLOR_parser_nodes___ABraassignMethid___n_obra__eq SFT_parser_nodes[709]
-#define COLOR_parser_nodes___ABraassignMethid___n_cbra SFT_parser_nodes[710]
-#define COLOR_parser_nodes___ABraassignMethid___n_cbra__eq SFT_parser_nodes[711]
-#define COLOR_parser_nodes___ABraassignMethid___n_assign SFT_parser_nodes[712]
-#define COLOR_parser_nodes___ABraassignMethid___n_assign__eq SFT_parser_nodes[713]
-#define ID_ASignature SFT_parser_nodes[714]
-#define COLOR_ASignature SFT_parser_nodes[715]
-#define COLOR_parser_nodes___ASignature____n_params SFT_parser_nodes[716]
-#define COLOR_parser_nodes___ASignature____n_type SFT_parser_nodes[717]
-#define COLOR_parser_nodes___ASignature____n_closure_decls SFT_parser_nodes[718]
-#define INIT_TABLE_POS_ASignature SFT_parser_nodes[719]
-#define COLOR_parser_nodes___ASignature___n_params SFT_parser_nodes[720]
-#define COLOR_parser_nodes___ASignature___n_params__eq SFT_parser_nodes[721]
-#define COLOR_parser_nodes___ASignature___n_type SFT_parser_nodes[722]
-#define COLOR_parser_nodes___ASignature___n_type__eq SFT_parser_nodes[723]
-#define COLOR_parser_nodes___ASignature___n_closure_decls SFT_parser_nodes[724]
-#define COLOR_parser_nodes___ASignature___n_closure_decls__eq SFT_parser_nodes[725]
-#define ID_AParam SFT_parser_nodes[726]
-#define COLOR_AParam SFT_parser_nodes[727]
-#define COLOR_parser_nodes___AParam____n_dotdotdot SFT_parser_nodes[728]
-#define INIT_TABLE_POS_AParam SFT_parser_nodes[729]
-#define COLOR_parser_nodes___AParam___n_dotdotdot SFT_parser_nodes[730]
-#define COLOR_parser_nodes___AParam___n_dotdotdot__eq SFT_parser_nodes[731]
-#define ID_AClosureDecl SFT_parser_nodes[732]
-#define COLOR_AClosureDecl SFT_parser_nodes[733]
-#define COLOR_parser_nodes___AClosureDecl____n_kwwith SFT_parser_nodes[734]
-#define COLOR_parser_nodes___AClosureDecl____n_kwbreak SFT_parser_nodes[735]
-#define COLOR_parser_nodes___AClosureDecl____n_id SFT_parser_nodes[736]
-#define COLOR_parser_nodes___AClosureDecl____n_signature SFT_parser_nodes[737]
-#define COLOR_parser_nodes___AClosureDecl____n_expr SFT_parser_nodes[738]
-#define INIT_TABLE_POS_AClosureDecl SFT_parser_nodes[739]
-#define COLOR_parser_nodes___AClosureDecl___n_kwwith SFT_parser_nodes[740]
-#define COLOR_parser_nodes___AClosureDecl___n_kwwith__eq SFT_parser_nodes[741]
-#define COLOR_parser_nodes___AClosureDecl___n_kwbreak SFT_parser_nodes[742]
-#define COLOR_parser_nodes___AClosureDecl___n_kwbreak__eq SFT_parser_nodes[743]
-#define COLOR_parser_nodes___AClosureDecl___n_id SFT_parser_nodes[744]
-#define COLOR_parser_nodes___AClosureDecl___n_id__eq SFT_parser_nodes[745]
-#define COLOR_parser_nodes___AClosureDecl___n_signature SFT_parser_nodes[746]
-#define COLOR_parser_nodes___AClosureDecl___n_signature__eq SFT_parser_nodes[747]
-#define COLOR_parser_nodes___AClosureDecl___n_expr SFT_parser_nodes[748]
-#define COLOR_parser_nodes___AClosureDecl___n_expr__eq SFT_parser_nodes[749]
-#define ID_AType SFT_parser_nodes[750]
-#define COLOR_AType SFT_parser_nodes[751]
-#define COLOR_parser_nodes___AType____n_id SFT_parser_nodes[752]
-#define COLOR_parser_nodes___AType____n_types SFT_parser_nodes[753]
-#define INIT_TABLE_POS_AType SFT_parser_nodes[754]
-#define COLOR_parser_nodes___AType___n_id SFT_parser_nodes[755]
-#define COLOR_parser_nodes___AType___n_id__eq SFT_parser_nodes[756]
-#define COLOR_parser_nodes___AType___n_types SFT_parser_nodes[757]
-#define COLOR_parser_nodes___AType___n_types__eq SFT_parser_nodes[758]
-#define ID_ABlockExpr SFT_parser_nodes[759]
-#define COLOR_ABlockExpr SFT_parser_nodes[760]
-#define COLOR_parser_nodes___ABlockExpr____n_expr SFT_parser_nodes[761]
-#define INIT_TABLE_POS_ABlockExpr SFT_parser_nodes[762]
-#define COLOR_parser_nodes___ABlockExpr___n_expr SFT_parser_nodes[763]
-#define COLOR_parser_nodes___ABlockExpr___n_expr__eq SFT_parser_nodes[764]
-#define ID_AVardeclExpr SFT_parser_nodes[765]
-#define COLOR_AVardeclExpr SFT_parser_nodes[766]
-#define COLOR_parser_nodes___AVardeclExpr____n_kwvar SFT_parser_nodes[767]
-#define COLOR_parser_nodes___AVardeclExpr____n_id SFT_parser_nodes[768]
-#define COLOR_parser_nodes___AVardeclExpr____n_type SFT_parser_nodes[769]
-#define COLOR_parser_nodes___AVardeclExpr____n_assign SFT_parser_nodes[770]
-#define COLOR_parser_nodes___AVardeclExpr____n_expr SFT_parser_nodes[771]
-#define INIT_TABLE_POS_AVardeclExpr SFT_parser_nodes[772]
-#define COLOR_parser_nodes___AVardeclExpr___n_kwvar SFT_parser_nodes[773]
-#define COLOR_parser_nodes___AVardeclExpr___n_kwvar__eq SFT_parser_nodes[774]
-#define COLOR_parser_nodes___AVardeclExpr___n_id SFT_parser_nodes[775]
-#define COLOR_parser_nodes___AVardeclExpr___n_id__eq SFT_parser_nodes[776]
-#define COLOR_parser_nodes___AVardeclExpr___n_type SFT_parser_nodes[777]
-#define COLOR_parser_nodes___AVardeclExpr___n_type__eq SFT_parser_nodes[778]
-#define COLOR_parser_nodes___AVardeclExpr___n_assign SFT_parser_nodes[779]
-#define COLOR_parser_nodes___AVardeclExpr___n_assign__eq SFT_parser_nodes[780]
-#define COLOR_parser_nodes___AVardeclExpr___n_expr SFT_parser_nodes[781]
-#define COLOR_parser_nodes___AVardeclExpr___n_expr__eq SFT_parser_nodes[782]
-#define ID_AReturnExpr SFT_parser_nodes[783]
-#define COLOR_AReturnExpr SFT_parser_nodes[784]
-#define COLOR_parser_nodes___AReturnExpr____n_kwreturn SFT_parser_nodes[785]
-#define COLOR_parser_nodes___AReturnExpr____n_expr SFT_parser_nodes[786]
-#define INIT_TABLE_POS_AReturnExpr SFT_parser_nodes[787]
-#define COLOR_parser_nodes___AReturnExpr___n_kwreturn SFT_parser_nodes[788]
-#define COLOR_parser_nodes___AReturnExpr___n_kwreturn__eq SFT_parser_nodes[789]
-#define COLOR_parser_nodes___AReturnExpr___n_expr SFT_parser_nodes[790]
-#define COLOR_parser_nodes___AReturnExpr___n_expr__eq SFT_parser_nodes[791]
-#define ID_ABreakExpr SFT_parser_nodes[792]
-#define COLOR_ABreakExpr SFT_parser_nodes[793]
-#define COLOR_parser_nodes___ABreakExpr____n_kwbreak SFT_parser_nodes[794]
-#define COLOR_parser_nodes___ABreakExpr____n_expr SFT_parser_nodes[795]
-#define INIT_TABLE_POS_ABreakExpr SFT_parser_nodes[796]
-#define COLOR_parser_nodes___ABreakExpr___n_kwbreak SFT_parser_nodes[797]
-#define COLOR_parser_nodes___ABreakExpr___n_kwbreak__eq SFT_parser_nodes[798]
-#define COLOR_parser_nodes___ABreakExpr___n_expr SFT_parser_nodes[799]
-#define COLOR_parser_nodes___ABreakExpr___n_expr__eq SFT_parser_nodes[800]
-#define ID_AAbortExpr SFT_parser_nodes[801]
-#define COLOR_AAbortExpr SFT_parser_nodes[802]
-#define COLOR_parser_nodes___AAbortExpr____n_kwabort SFT_parser_nodes[803]
-#define INIT_TABLE_POS_AAbortExpr SFT_parser_nodes[804]
-#define COLOR_parser_nodes___AAbortExpr___n_kwabort SFT_parser_nodes[805]
-#define COLOR_parser_nodes___AAbortExpr___n_kwabort__eq SFT_parser_nodes[806]
-#define ID_AContinueExpr SFT_parser_nodes[807]
-#define COLOR_AContinueExpr SFT_parser_nodes[808]
-#define COLOR_parser_nodes___AContinueExpr____n_kwcontinue SFT_parser_nodes[809]
-#define COLOR_parser_nodes___AContinueExpr____n_expr SFT_parser_nodes[810]
-#define INIT_TABLE_POS_AContinueExpr SFT_parser_nodes[811]
-#define COLOR_parser_nodes___AContinueExpr___n_kwcontinue SFT_parser_nodes[812]
-#define COLOR_parser_nodes___AContinueExpr___n_kwcontinue__eq SFT_parser_nodes[813]
-#define COLOR_parser_nodes___AContinueExpr___n_expr SFT_parser_nodes[814]
-#define COLOR_parser_nodes___AContinueExpr___n_expr__eq SFT_parser_nodes[815]
-#define ID_ADoExpr SFT_parser_nodes[816]
-#define COLOR_ADoExpr SFT_parser_nodes[817]
-#define COLOR_parser_nodes___ADoExpr____n_kwdo SFT_parser_nodes[818]
-#define COLOR_parser_nodes___ADoExpr____n_block SFT_parser_nodes[819]
-#define INIT_TABLE_POS_ADoExpr SFT_parser_nodes[820]
-#define COLOR_parser_nodes___ADoExpr___n_kwdo SFT_parser_nodes[821]
-#define COLOR_parser_nodes___ADoExpr___n_kwdo__eq SFT_parser_nodes[822]
-#define COLOR_parser_nodes___ADoExpr___n_block SFT_parser_nodes[823]
-#define COLOR_parser_nodes___ADoExpr___n_block__eq SFT_parser_nodes[824]
-#define ID_AIfExpr SFT_parser_nodes[825]
-#define COLOR_AIfExpr SFT_parser_nodes[826]
-#define COLOR_parser_nodes___AIfExpr____n_kwif SFT_parser_nodes[827]
-#define COLOR_parser_nodes___AIfExpr____n_expr SFT_parser_nodes[828]
-#define COLOR_parser_nodes___AIfExpr____n_then SFT_parser_nodes[829]
-#define COLOR_parser_nodes___AIfExpr____n_else SFT_parser_nodes[830]
-#define INIT_TABLE_POS_AIfExpr SFT_parser_nodes[831]
-#define COLOR_parser_nodes___AIfExpr___n_kwif SFT_parser_nodes[832]
-#define COLOR_parser_nodes___AIfExpr___n_kwif__eq SFT_parser_nodes[833]
-#define COLOR_parser_nodes___AIfExpr___n_expr SFT_parser_nodes[834]
-#define COLOR_parser_nodes___AIfExpr___n_expr__eq SFT_parser_nodes[835]
-#define COLOR_parser_nodes___AIfExpr___n_then SFT_parser_nodes[836]
-#define COLOR_parser_nodes___AIfExpr___n_then__eq SFT_parser_nodes[837]
-#define COLOR_parser_nodes___AIfExpr___n_else SFT_parser_nodes[838]
-#define COLOR_parser_nodes___AIfExpr___n_else__eq SFT_parser_nodes[839]
-#define ID_AIfexprExpr SFT_parser_nodes[840]
-#define COLOR_AIfexprExpr SFT_parser_nodes[841]
-#define COLOR_parser_nodes___AIfexprExpr____n_kwif SFT_parser_nodes[842]
-#define COLOR_parser_nodes___AIfexprExpr____n_expr SFT_parser_nodes[843]
-#define COLOR_parser_nodes___AIfexprExpr____n_kwthen SFT_parser_nodes[844]
-#define COLOR_parser_nodes___AIfexprExpr____n_then SFT_parser_nodes[845]
-#define COLOR_parser_nodes___AIfexprExpr____n_kwelse SFT_parser_nodes[846]
-#define COLOR_parser_nodes___AIfexprExpr____n_else SFT_parser_nodes[847]
-#define INIT_TABLE_POS_AIfexprExpr SFT_parser_nodes[848]
-#define COLOR_parser_nodes___AIfexprExpr___n_kwif SFT_parser_nodes[849]
-#define COLOR_parser_nodes___AIfexprExpr___n_kwif__eq SFT_parser_nodes[850]
-#define COLOR_parser_nodes___AIfexprExpr___n_expr SFT_parser_nodes[851]
-#define COLOR_parser_nodes___AIfexprExpr___n_expr__eq SFT_parser_nodes[852]
-#define COLOR_parser_nodes___AIfexprExpr___n_kwthen SFT_parser_nodes[853]
-#define COLOR_parser_nodes___AIfexprExpr___n_kwthen__eq SFT_parser_nodes[854]
-#define COLOR_parser_nodes___AIfexprExpr___n_then SFT_parser_nodes[855]
-#define COLOR_parser_nodes___AIfexprExpr___n_then__eq SFT_parser_nodes[856]
-#define COLOR_parser_nodes___AIfexprExpr___n_kwelse SFT_parser_nodes[857]
-#define COLOR_parser_nodes___AIfexprExpr___n_kwelse__eq SFT_parser_nodes[858]
-#define COLOR_parser_nodes___AIfexprExpr___n_else SFT_parser_nodes[859]
-#define COLOR_parser_nodes___AIfexprExpr___n_else__eq SFT_parser_nodes[860]
-#define ID_AWhileExpr SFT_parser_nodes[861]
-#define COLOR_AWhileExpr SFT_parser_nodes[862]
-#define COLOR_parser_nodes___AWhileExpr____n_kwwhile SFT_parser_nodes[863]
-#define COLOR_parser_nodes___AWhileExpr____n_expr SFT_parser_nodes[864]
-#define COLOR_parser_nodes___AWhileExpr____n_kwdo SFT_parser_nodes[865]
-#define COLOR_parser_nodes___AWhileExpr____n_block SFT_parser_nodes[866]
-#define INIT_TABLE_POS_AWhileExpr SFT_parser_nodes[867]
-#define COLOR_parser_nodes___AWhileExpr___n_kwwhile SFT_parser_nodes[868]
-#define COLOR_parser_nodes___AWhileExpr___n_kwwhile__eq SFT_parser_nodes[869]
-#define COLOR_parser_nodes___AWhileExpr___n_expr SFT_parser_nodes[870]
-#define COLOR_parser_nodes___AWhileExpr___n_expr__eq SFT_parser_nodes[871]
-#define COLOR_parser_nodes___AWhileExpr___n_kwdo SFT_parser_nodes[872]
-#define COLOR_parser_nodes___AWhileExpr___n_kwdo__eq SFT_parser_nodes[873]
-#define COLOR_parser_nodes___AWhileExpr___n_block SFT_parser_nodes[874]
-#define COLOR_parser_nodes___AWhileExpr___n_block__eq SFT_parser_nodes[875]
-#define ID_AForExpr SFT_parser_nodes[876]
-#define COLOR_AForExpr SFT_parser_nodes[877]
-#define COLOR_parser_nodes___AForExpr____n_vardecl SFT_parser_nodes[878]
-#define COLOR_parser_nodes___AForExpr____n_kwdo SFT_parser_nodes[879]
-#define COLOR_parser_nodes___AForExpr____n_block SFT_parser_nodes[880]
-#define INIT_TABLE_POS_AForExpr SFT_parser_nodes[881]
-#define COLOR_parser_nodes___AForExpr___n_vardecl SFT_parser_nodes[882]
-#define COLOR_parser_nodes___AForExpr___n_vardecl__eq SFT_parser_nodes[883]
-#define COLOR_parser_nodes___AForExpr___n_kwdo SFT_parser_nodes[884]
-#define COLOR_parser_nodes___AForExpr___n_kwdo__eq SFT_parser_nodes[885]
-#define COLOR_parser_nodes___AForExpr___n_block SFT_parser_nodes[886]
-#define COLOR_parser_nodes___AForExpr___n_block__eq SFT_parser_nodes[887]
-#define ID_AForVardeclExpr SFT_parser_nodes[888]
-#define COLOR_AForVardeclExpr SFT_parser_nodes[889]
-#define COLOR_parser_nodes___AForVardeclExpr____n_kwfor SFT_parser_nodes[890]
-#define COLOR_parser_nodes___AForVardeclExpr____n_id SFT_parser_nodes[891]
-#define COLOR_parser_nodes___AForVardeclExpr____n_expr SFT_parser_nodes[892]
-#define INIT_TABLE_POS_AForVardeclExpr SFT_parser_nodes[893]
-#define COLOR_parser_nodes___AForVardeclExpr___n_kwfor SFT_parser_nodes[894]
-#define COLOR_parser_nodes___AForVardeclExpr___n_kwfor__eq SFT_parser_nodes[895]
-#define COLOR_parser_nodes___AForVardeclExpr___n_id SFT_parser_nodes[896]
-#define COLOR_parser_nodes___AForVardeclExpr___n_id__eq SFT_parser_nodes[897]
-#define COLOR_parser_nodes___AForVardeclExpr___n_expr SFT_parser_nodes[898]
-#define COLOR_parser_nodes___AForVardeclExpr___n_expr__eq SFT_parser_nodes[899]
-#define ID_AAssertExpr SFT_parser_nodes[900]
-#define COLOR_AAssertExpr SFT_parser_nodes[901]
-#define COLOR_parser_nodes___AAssertExpr____n_kwassert SFT_parser_nodes[902]
-#define COLOR_parser_nodes___AAssertExpr____n_id SFT_parser_nodes[903]
-#define COLOR_parser_nodes___AAssertExpr____n_expr SFT_parser_nodes[904]
-#define INIT_TABLE_POS_AAssertExpr SFT_parser_nodes[905]
-#define COLOR_parser_nodes___AAssertExpr___n_kwassert SFT_parser_nodes[906]
-#define COLOR_parser_nodes___AAssertExpr___n_kwassert__eq SFT_parser_nodes[907]
-#define COLOR_parser_nodes___AAssertExpr___n_id SFT_parser_nodes[908]
-#define COLOR_parser_nodes___AAssertExpr___n_id__eq SFT_parser_nodes[909]
-#define COLOR_parser_nodes___AAssertExpr___n_expr SFT_parser_nodes[910]
-#define COLOR_parser_nodes___AAssertExpr___n_expr__eq SFT_parser_nodes[911]
-#define ID_AAssignFormExpr SFT_parser_nodes[912]
-#define COLOR_AAssignFormExpr SFT_parser_nodes[913]
-#define COLOR_parser_nodes___AAssignFormExpr____n_assign SFT_parser_nodes[914]
-#define COLOR_parser_nodes___AAssignFormExpr____n_value SFT_parser_nodes[915]
-#define INIT_TABLE_POS_AAssignFormExpr SFT_parser_nodes[916]
-#define COLOR_parser_nodes___AAssignFormExpr___n_assign SFT_parser_nodes[917]
-#define COLOR_parser_nodes___AAssignFormExpr___n_assign__eq SFT_parser_nodes[918]
-#define COLOR_parser_nodes___AAssignFormExpr___n_value SFT_parser_nodes[919]
-#define COLOR_parser_nodes___AAssignFormExpr___n_value__eq SFT_parser_nodes[920]
-#define ID_AReassignFormExpr SFT_parser_nodes[921]
-#define COLOR_AReassignFormExpr SFT_parser_nodes[922]
-#define COLOR_parser_nodes___AReassignFormExpr____n_assign_op SFT_parser_nodes[923]
-#define COLOR_parser_nodes___AReassignFormExpr____n_value SFT_parser_nodes[924]
-#define INIT_TABLE_POS_AReassignFormExpr SFT_parser_nodes[925]
-#define COLOR_parser_nodes___AReassignFormExpr___n_assign_op SFT_parser_nodes[926]
-#define COLOR_parser_nodes___AReassignFormExpr___n_assign_op__eq SFT_parser_nodes[927]
-#define COLOR_parser_nodes___AReassignFormExpr___n_value SFT_parser_nodes[928]
-#define COLOR_parser_nodes___AReassignFormExpr___n_value__eq SFT_parser_nodes[929]
-#define ID_AOnceExpr SFT_parser_nodes[930]
-#define COLOR_AOnceExpr SFT_parser_nodes[931]
-#define COLOR_parser_nodes___AOnceExpr____n_kwonce SFT_parser_nodes[932]
-#define INIT_TABLE_POS_AOnceExpr SFT_parser_nodes[933]
-#define COLOR_parser_nodes___AOnceExpr___n_kwonce SFT_parser_nodes[934]
-#define COLOR_parser_nodes___AOnceExpr___n_kwonce__eq SFT_parser_nodes[935]
-#define ID_ASendExpr SFT_parser_nodes[936]
-#define COLOR_ASendExpr SFT_parser_nodes[937]
-#define COLOR_parser_nodes___ASendExpr____n_expr SFT_parser_nodes[938]
-#define COLOR_parser_nodes___ASendExpr____n_closure_defs SFT_parser_nodes[939]
-#define INIT_TABLE_POS_ASendExpr SFT_parser_nodes[940]
-#define COLOR_parser_nodes___ASendExpr___n_expr SFT_parser_nodes[941]
-#define COLOR_parser_nodes___ASendExpr___n_expr__eq SFT_parser_nodes[942]
-#define COLOR_parser_nodes___ASendExpr___n_closure_defs SFT_parser_nodes[943]
-#define COLOR_parser_nodes___ASendExpr___n_closure_defs__eq SFT_parser_nodes[944]
-#define ID_ABinopExpr SFT_parser_nodes[945]
-#define COLOR_ABinopExpr SFT_parser_nodes[946]
-#define COLOR_parser_nodes___ABinopExpr____n_expr2 SFT_parser_nodes[947]
-#define INIT_TABLE_POS_ABinopExpr SFT_parser_nodes[948]
-#define COLOR_parser_nodes___ABinopExpr___n_expr2 SFT_parser_nodes[949]
-#define COLOR_parser_nodes___ABinopExpr___n_expr2__eq SFT_parser_nodes[950]
-#define ID_ABoolExpr SFT_parser_nodes[951]
-#define COLOR_ABoolExpr SFT_parser_nodes[952]
-#define INIT_TABLE_POS_ABoolExpr SFT_parser_nodes[953]
-#define ID_AOrExpr SFT_parser_nodes[954]
-#define COLOR_AOrExpr SFT_parser_nodes[955]
-#define COLOR_parser_nodes___AOrExpr____n_expr SFT_parser_nodes[956]
-#define COLOR_parser_nodes___AOrExpr____n_expr2 SFT_parser_nodes[957]
-#define INIT_TABLE_POS_AOrExpr SFT_parser_nodes[958]
-#define COLOR_parser_nodes___AOrExpr___n_expr SFT_parser_nodes[959]
-#define COLOR_parser_nodes___AOrExpr___n_expr__eq SFT_parser_nodes[960]
-#define COLOR_parser_nodes___AOrExpr___n_expr2 SFT_parser_nodes[961]
-#define COLOR_parser_nodes___AOrExpr___n_expr2__eq SFT_parser_nodes[962]
-#define ID_AAndExpr SFT_parser_nodes[963]
-#define COLOR_AAndExpr SFT_parser_nodes[964]
-#define COLOR_parser_nodes___AAndExpr____n_expr SFT_parser_nodes[965]
-#define COLOR_parser_nodes___AAndExpr____n_expr2 SFT_parser_nodes[966]
-#define INIT_TABLE_POS_AAndExpr SFT_parser_nodes[967]
-#define COLOR_parser_nodes___AAndExpr___n_expr SFT_parser_nodes[968]
-#define COLOR_parser_nodes___AAndExpr___n_expr__eq SFT_parser_nodes[969]
-#define COLOR_parser_nodes___AAndExpr___n_expr2 SFT_parser_nodes[970]
-#define COLOR_parser_nodes___AAndExpr___n_expr2__eq SFT_parser_nodes[971]
-#define ID_ANotExpr SFT_parser_nodes[972]
-#define COLOR_ANotExpr SFT_parser_nodes[973]
-#define COLOR_parser_nodes___ANotExpr____n_kwnot SFT_parser_nodes[974]
-#define COLOR_parser_nodes___ANotExpr____n_expr SFT_parser_nodes[975]
-#define INIT_TABLE_POS_ANotExpr SFT_parser_nodes[976]
-#define COLOR_parser_nodes___ANotExpr___n_kwnot SFT_parser_nodes[977]
-#define COLOR_parser_nodes___ANotExpr___n_kwnot__eq SFT_parser_nodes[978]
-#define COLOR_parser_nodes___ANotExpr___n_expr SFT_parser_nodes[979]
-#define COLOR_parser_nodes___ANotExpr___n_expr__eq SFT_parser_nodes[980]
-#define ID_AEqExpr SFT_parser_nodes[981]
-#define COLOR_AEqExpr SFT_parser_nodes[982]
-#define INIT_TABLE_POS_AEqExpr SFT_parser_nodes[983]
-#define ID_AEeExpr SFT_parser_nodes[984]
-#define COLOR_AEeExpr SFT_parser_nodes[985]
-#define COLOR_parser_nodes___AEeExpr____n_expr SFT_parser_nodes[986]
-#define COLOR_parser_nodes___AEeExpr____n_expr2 SFT_parser_nodes[987]
-#define INIT_TABLE_POS_AEeExpr SFT_parser_nodes[988]
-#define COLOR_parser_nodes___AEeExpr___n_expr SFT_parser_nodes[989]
-#define COLOR_parser_nodes___AEeExpr___n_expr__eq SFT_parser_nodes[990]
-#define COLOR_parser_nodes___AEeExpr___n_expr2 SFT_parser_nodes[991]
-#define COLOR_parser_nodes___AEeExpr___n_expr2__eq SFT_parser_nodes[992]
-#define ID_ANeExpr SFT_parser_nodes[993]
-#define COLOR_ANeExpr SFT_parser_nodes[994]
-#define INIT_TABLE_POS_ANeExpr SFT_parser_nodes[995]
-#define ID_ALtExpr SFT_parser_nodes[996]
-#define COLOR_ALtExpr SFT_parser_nodes[997]
-#define INIT_TABLE_POS_ALtExpr SFT_parser_nodes[998]
-#define ID_ALeExpr SFT_parser_nodes[999]
-#define COLOR_ALeExpr SFT_parser_nodes[1000]
-#define INIT_TABLE_POS_ALeExpr SFT_parser_nodes[1001]
-#define ID_AGtExpr SFT_parser_nodes[1002]
-#define COLOR_AGtExpr SFT_parser_nodes[1003]
-#define INIT_TABLE_POS_AGtExpr SFT_parser_nodes[1004]
-#define ID_AGeExpr SFT_parser_nodes[1005]
-#define COLOR_AGeExpr SFT_parser_nodes[1006]
-#define INIT_TABLE_POS_AGeExpr SFT_parser_nodes[1007]
-#define ID_AIsaExpr SFT_parser_nodes[1008]
-#define COLOR_AIsaExpr SFT_parser_nodes[1009]
-#define COLOR_parser_nodes___AIsaExpr____n_expr SFT_parser_nodes[1010]
-#define COLOR_parser_nodes___AIsaExpr____n_type SFT_parser_nodes[1011]
-#define INIT_TABLE_POS_AIsaExpr SFT_parser_nodes[1012]
-#define COLOR_parser_nodes___AIsaExpr___n_expr SFT_parser_nodes[1013]
-#define COLOR_parser_nodes___AIsaExpr___n_expr__eq SFT_parser_nodes[1014]
-#define COLOR_parser_nodes___AIsaExpr___n_type SFT_parser_nodes[1015]
-#define COLOR_parser_nodes___AIsaExpr___n_type__eq SFT_parser_nodes[1016]
-#define ID_APlusExpr SFT_parser_nodes[1017]
-#define COLOR_APlusExpr SFT_parser_nodes[1018]
-#define INIT_TABLE_POS_APlusExpr SFT_parser_nodes[1019]
-#define ID_AMinusExpr SFT_parser_nodes[1020]
-#define COLOR_AMinusExpr SFT_parser_nodes[1021]
-#define INIT_TABLE_POS_AMinusExpr SFT_parser_nodes[1022]
-#define ID_AStarshipExpr SFT_parser_nodes[1023]
-#define COLOR_AStarshipExpr SFT_parser_nodes[1024]
-#define INIT_TABLE_POS_AStarshipExpr SFT_parser_nodes[1025]
-#define ID_AStarExpr SFT_parser_nodes[1026]
-#define COLOR_AStarExpr SFT_parser_nodes[1027]
-#define INIT_TABLE_POS_AStarExpr SFT_parser_nodes[1028]
-#define ID_ASlashExpr SFT_parser_nodes[1029]
-#define COLOR_ASlashExpr SFT_parser_nodes[1030]
-#define INIT_TABLE_POS_ASlashExpr SFT_parser_nodes[1031]
-#define ID_APercentExpr SFT_parser_nodes[1032]
-#define COLOR_APercentExpr SFT_parser_nodes[1033]
-#define INIT_TABLE_POS_APercentExpr SFT_parser_nodes[1034]
-#define ID_AUminusExpr SFT_parser_nodes[1035]
-#define COLOR_AUminusExpr SFT_parser_nodes[1036]
-#define COLOR_parser_nodes___AUminusExpr____n_minus SFT_parser_nodes[1037]
-#define INIT_TABLE_POS_AUminusExpr SFT_parser_nodes[1038]
-#define COLOR_parser_nodes___AUminusExpr___n_minus SFT_parser_nodes[1039]
-#define COLOR_parser_nodes___AUminusExpr___n_minus__eq SFT_parser_nodes[1040]
-#define ID_ANewExpr SFT_parser_nodes[1041]
-#define COLOR_ANewExpr SFT_parser_nodes[1042]
-#define COLOR_parser_nodes___ANewExpr____n_kwnew SFT_parser_nodes[1043]
-#define COLOR_parser_nodes___ANewExpr____n_type SFT_parser_nodes[1044]
-#define COLOR_parser_nodes___ANewExpr____n_id SFT_parser_nodes[1045]
-#define COLOR_parser_nodes___ANewExpr____n_args SFT_parser_nodes[1046]
-#define INIT_TABLE_POS_ANewExpr SFT_parser_nodes[1047]
-#define COLOR_parser_nodes___ANewExpr___n_kwnew SFT_parser_nodes[1048]
-#define COLOR_parser_nodes___ANewExpr___n_kwnew__eq SFT_parser_nodes[1049]
-#define COLOR_parser_nodes___ANewExpr___n_type SFT_parser_nodes[1050]
-#define COLOR_parser_nodes___ANewExpr___n_type__eq SFT_parser_nodes[1051]
-#define COLOR_parser_nodes___ANewExpr___n_id SFT_parser_nodes[1052]
-#define COLOR_parser_nodes___ANewExpr___n_id__eq SFT_parser_nodes[1053]
-#define COLOR_parser_nodes___ANewExpr___n_args SFT_parser_nodes[1054]
-#define COLOR_parser_nodes___ANewExpr___n_args__eq SFT_parser_nodes[1055]
-#define ID_AAttrFormExpr SFT_parser_nodes[1056]
-#define COLOR_AAttrFormExpr SFT_parser_nodes[1057]
-#define COLOR_parser_nodes___AAttrFormExpr____n_expr SFT_parser_nodes[1058]
-#define COLOR_parser_nodes___AAttrFormExpr____n_id SFT_parser_nodes[1059]
-#define INIT_TABLE_POS_AAttrFormExpr SFT_parser_nodes[1060]
-#define COLOR_parser_nodes___AAttrFormExpr___n_expr SFT_parser_nodes[1061]
-#define COLOR_parser_nodes___AAttrFormExpr___n_expr__eq SFT_parser_nodes[1062]
-#define COLOR_parser_nodes___AAttrFormExpr___n_id SFT_parser_nodes[1063]
-#define COLOR_parser_nodes___AAttrFormExpr___n_id__eq SFT_parser_nodes[1064]
-#define ID_AAttrExpr SFT_parser_nodes[1065]
-#define COLOR_AAttrExpr SFT_parser_nodes[1066]
-#define INIT_TABLE_POS_AAttrExpr SFT_parser_nodes[1067]
-#define ID_AAttrAssignExpr SFT_parser_nodes[1068]
-#define COLOR_AAttrAssignExpr SFT_parser_nodes[1069]
-#define INIT_TABLE_POS_AAttrAssignExpr SFT_parser_nodes[1070]
-#define ID_ACallFormExpr SFT_parser_nodes[1071]
-#define COLOR_ACallFormExpr SFT_parser_nodes[1072]
-#define COLOR_parser_nodes___ACallFormExpr____n_id SFT_parser_nodes[1073]
-#define COLOR_parser_nodes___ACallFormExpr____n_args SFT_parser_nodes[1074]
-#define INIT_TABLE_POS_ACallFormExpr SFT_parser_nodes[1075]
-#define COLOR_parser_nodes___ACallFormExpr___n_id SFT_parser_nodes[1076]
-#define COLOR_parser_nodes___ACallFormExpr___n_id__eq SFT_parser_nodes[1077]
-#define COLOR_parser_nodes___ACallFormExpr___n_args SFT_parser_nodes[1078]
-#define COLOR_parser_nodes___ACallFormExpr___n_args__eq SFT_parser_nodes[1079]
-#define ID_AAttrReassignExpr SFT_parser_nodes[1080]
-#define COLOR_AAttrReassignExpr SFT_parser_nodes[1081]
-#define INIT_TABLE_POS_AAttrReassignExpr SFT_parser_nodes[1082]
-#define ID_ACallExpr SFT_parser_nodes[1083]
-#define COLOR_ACallExpr SFT_parser_nodes[1084]
-#define INIT_TABLE_POS_ACallExpr SFT_parser_nodes[1085]
-#define ID_ACallAssignExpr SFT_parser_nodes[1086]
-#define COLOR_ACallAssignExpr SFT_parser_nodes[1087]
-#define INIT_TABLE_POS_ACallAssignExpr SFT_parser_nodes[1088]
-#define ID_ACallReassignExpr SFT_parser_nodes[1089]
-#define COLOR_ACallReassignExpr SFT_parser_nodes[1090]
-#define INIT_TABLE_POS_ACallReassignExpr SFT_parser_nodes[1091]
-#define ID_ASuperExpr SFT_parser_nodes[1092]
-#define COLOR_ASuperExpr SFT_parser_nodes[1093]
-#define COLOR_parser_nodes___ASuperExpr____n_qualified SFT_parser_nodes[1094]
-#define COLOR_parser_nodes___ASuperExpr____n_kwsuper SFT_parser_nodes[1095]
-#define COLOR_parser_nodes___ASuperExpr____n_args SFT_parser_nodes[1096]
-#define INIT_TABLE_POS_ASuperExpr SFT_parser_nodes[1097]
-#define COLOR_parser_nodes___ASuperExpr___n_qualified SFT_parser_nodes[1098]
-#define COLOR_parser_nodes___ASuperExpr___n_qualified__eq SFT_parser_nodes[1099]
-#define COLOR_parser_nodes___ASuperExpr___n_kwsuper SFT_parser_nodes[1100]
-#define COLOR_parser_nodes___ASuperExpr___n_kwsuper__eq SFT_parser_nodes[1101]
-#define COLOR_parser_nodes___ASuperExpr___n_args SFT_parser_nodes[1102]
-#define COLOR_parser_nodes___ASuperExpr___n_args__eq SFT_parser_nodes[1103]
-#define ID_AInitExpr SFT_parser_nodes[1104]
-#define COLOR_AInitExpr SFT_parser_nodes[1105]
-#define COLOR_parser_nodes___AInitExpr____n_kwinit SFT_parser_nodes[1106]
-#define COLOR_parser_nodes___AInitExpr____n_args SFT_parser_nodes[1107]
-#define INIT_TABLE_POS_AInitExpr SFT_parser_nodes[1108]
-#define COLOR_parser_nodes___AInitExpr___n_kwinit SFT_parser_nodes[1109]
-#define COLOR_parser_nodes___AInitExpr___n_kwinit__eq SFT_parser_nodes[1110]
-#define COLOR_parser_nodes___AInitExpr___n_args SFT_parser_nodes[1111]
-#define COLOR_parser_nodes___AInitExpr___n_args__eq SFT_parser_nodes[1112]
-#define ID_ABraFormExpr SFT_parser_nodes[1113]
-#define COLOR_ABraFormExpr SFT_parser_nodes[1114]
-#define COLOR_parser_nodes___ABraFormExpr____n_args SFT_parser_nodes[1115]
-#define INIT_TABLE_POS_ABraFormExpr SFT_parser_nodes[1116]
-#define COLOR_parser_nodes___ABraFormExpr___n_args SFT_parser_nodes[1117]
-#define COLOR_parser_nodes___ABraFormExpr___n_args__eq SFT_parser_nodes[1118]
-#define ID_ABraExpr SFT_parser_nodes[1119]
-#define COLOR_ABraExpr SFT_parser_nodes[1120]
-#define INIT_TABLE_POS_ABraExpr SFT_parser_nodes[1121]
-#define ID_ABraAssignExpr SFT_parser_nodes[1122]
-#define COLOR_ABraAssignExpr SFT_parser_nodes[1123]
-#define INIT_TABLE_POS_ABraAssignExpr SFT_parser_nodes[1124]
-#define ID_AVarFormExpr SFT_parser_nodes[1125]
-#define COLOR_AVarFormExpr SFT_parser_nodes[1126]
-#define COLOR_parser_nodes___AVarFormExpr____n_id SFT_parser_nodes[1127]
-#define INIT_TABLE_POS_AVarFormExpr SFT_parser_nodes[1128]
-#define COLOR_parser_nodes___AVarFormExpr___n_id SFT_parser_nodes[1129]
-#define COLOR_parser_nodes___AVarFormExpr___n_id__eq SFT_parser_nodes[1130]
-#define ID_ABraReassignExpr SFT_parser_nodes[1131]
-#define COLOR_ABraReassignExpr SFT_parser_nodes[1132]
-#define INIT_TABLE_POS_ABraReassignExpr SFT_parser_nodes[1133]
-#define ID_AVarExpr SFT_parser_nodes[1134]
-#define COLOR_AVarExpr SFT_parser_nodes[1135]
-#define INIT_TABLE_POS_AVarExpr SFT_parser_nodes[1136]
-#define ID_AVarAssignExpr SFT_parser_nodes[1137]
-#define COLOR_AVarAssignExpr SFT_parser_nodes[1138]
-#define INIT_TABLE_POS_AVarAssignExpr SFT_parser_nodes[1139]
-#define ID_AVarReassignExpr SFT_parser_nodes[1140]
-#define COLOR_AVarReassignExpr SFT_parser_nodes[1141]
-#define INIT_TABLE_POS_AVarReassignExpr SFT_parser_nodes[1142]
-#define ID_AClosureCallExpr SFT_parser_nodes[1143]
-#define COLOR_AClosureCallExpr SFT_parser_nodes[1144]
-#define INIT_TABLE_POS_AClosureCallExpr SFT_parser_nodes[1145]
-#define COLOR_parser_nodes___AClosureCallExpr___init SFT_parser_nodes[1146]
-#define ID_ARangeExpr SFT_parser_nodes[1147]
-#define COLOR_ARangeExpr SFT_parser_nodes[1148]
-#define COLOR_parser_nodes___ARangeExpr____n_expr SFT_parser_nodes[1149]
-#define COLOR_parser_nodes___ARangeExpr____n_expr2 SFT_parser_nodes[1150]
-#define INIT_TABLE_POS_ARangeExpr SFT_parser_nodes[1151]
-#define COLOR_parser_nodes___ARangeExpr___n_expr SFT_parser_nodes[1152]
-#define COLOR_parser_nodes___ARangeExpr___n_expr__eq SFT_parser_nodes[1153]
-#define COLOR_parser_nodes___ARangeExpr___n_expr2 SFT_parser_nodes[1154]
-#define COLOR_parser_nodes___ARangeExpr___n_expr2__eq SFT_parser_nodes[1155]
-#define ID_ACrangeExpr SFT_parser_nodes[1156]
-#define COLOR_ACrangeExpr SFT_parser_nodes[1157]
-#define INIT_TABLE_POS_ACrangeExpr SFT_parser_nodes[1158]
-#define ID_AOrangeExpr SFT_parser_nodes[1159]
-#define COLOR_AOrangeExpr SFT_parser_nodes[1160]
-#define INIT_TABLE_POS_AOrangeExpr SFT_parser_nodes[1161]
-#define ID_AArrayExpr SFT_parser_nodes[1162]
-#define COLOR_AArrayExpr SFT_parser_nodes[1163]
-#define COLOR_parser_nodes___AArrayExpr____n_exprs SFT_parser_nodes[1164]
-#define INIT_TABLE_POS_AArrayExpr SFT_parser_nodes[1165]
-#define COLOR_parser_nodes___AArrayExpr___n_exprs SFT_parser_nodes[1166]
-#define COLOR_parser_nodes___AArrayExpr___n_exprs__eq SFT_parser_nodes[1167]
-#define ID_ASelfExpr SFT_parser_nodes[1168]
-#define COLOR_ASelfExpr SFT_parser_nodes[1169]
-#define COLOR_parser_nodes___ASelfExpr____n_kwself SFT_parser_nodes[1170]
-#define INIT_TABLE_POS_ASelfExpr SFT_parser_nodes[1171]
-#define COLOR_parser_nodes___ASelfExpr___n_kwself SFT_parser_nodes[1172]
-#define COLOR_parser_nodes___ASelfExpr___n_kwself__eq SFT_parser_nodes[1173]
-#define ID_AImplicitSelfExpr SFT_parser_nodes[1174]
-#define COLOR_AImplicitSelfExpr SFT_parser_nodes[1175]
-#define INIT_TABLE_POS_AImplicitSelfExpr SFT_parser_nodes[1176]
-#define ID_ATrueExpr SFT_parser_nodes[1177]
-#define COLOR_ATrueExpr SFT_parser_nodes[1178]
-#define COLOR_parser_nodes___ATrueExpr____n_kwtrue SFT_parser_nodes[1179]
-#define INIT_TABLE_POS_ATrueExpr SFT_parser_nodes[1180]
-#define COLOR_parser_nodes___ATrueExpr___n_kwtrue SFT_parser_nodes[1181]
-#define COLOR_parser_nodes___ATrueExpr___n_kwtrue__eq SFT_parser_nodes[1182]
-#define ID_AFalseExpr SFT_parser_nodes[1183]
-#define COLOR_AFalseExpr SFT_parser_nodes[1184]
-#define COLOR_parser_nodes___AFalseExpr____n_kwfalse SFT_parser_nodes[1185]
-#define INIT_TABLE_POS_AFalseExpr SFT_parser_nodes[1186]
-#define COLOR_parser_nodes___AFalseExpr___n_kwfalse SFT_parser_nodes[1187]
-#define COLOR_parser_nodes___AFalseExpr___n_kwfalse__eq SFT_parser_nodes[1188]
-#define ID_ANullExpr SFT_parser_nodes[1189]
-#define COLOR_ANullExpr SFT_parser_nodes[1190]
-#define COLOR_parser_nodes___ANullExpr____n_kwnull SFT_parser_nodes[1191]
-#define INIT_TABLE_POS_ANullExpr SFT_parser_nodes[1192]
-#define COLOR_parser_nodes___ANullExpr___n_kwnull SFT_parser_nodes[1193]
-#define COLOR_parser_nodes___ANullExpr___n_kwnull__eq SFT_parser_nodes[1194]
-#define ID_AIntExpr SFT_parser_nodes[1195]
-#define COLOR_AIntExpr SFT_parser_nodes[1196]
-#define COLOR_parser_nodes___AIntExpr____n_number SFT_parser_nodes[1197]
-#define INIT_TABLE_POS_AIntExpr SFT_parser_nodes[1198]
-#define COLOR_parser_nodes___AIntExpr___n_number SFT_parser_nodes[1199]
-#define COLOR_parser_nodes___AIntExpr___n_number__eq SFT_parser_nodes[1200]
-#define ID_AFloatExpr SFT_parser_nodes[1201]
-#define COLOR_AFloatExpr SFT_parser_nodes[1202]
-#define COLOR_parser_nodes___AFloatExpr____n_float SFT_parser_nodes[1203]
-#define INIT_TABLE_POS_AFloatExpr SFT_parser_nodes[1204]
-#define COLOR_parser_nodes___AFloatExpr___n_float SFT_parser_nodes[1205]
-#define COLOR_parser_nodes___AFloatExpr___n_float__eq SFT_parser_nodes[1206]
-#define ID_ACharExpr SFT_parser_nodes[1207]
-#define COLOR_ACharExpr SFT_parser_nodes[1208]
-#define COLOR_parser_nodes___ACharExpr____n_char SFT_parser_nodes[1209]
-#define INIT_TABLE_POS_ACharExpr SFT_parser_nodes[1210]
-#define COLOR_parser_nodes___ACharExpr___n_char SFT_parser_nodes[1211]
-#define COLOR_parser_nodes___ACharExpr___n_char__eq SFT_parser_nodes[1212]
-#define ID_AStringFormExpr SFT_parser_nodes[1213]
-#define COLOR_AStringFormExpr SFT_parser_nodes[1214]
-#define INIT_TABLE_POS_AStringFormExpr SFT_parser_nodes[1215]
-#define ID_AStringExpr SFT_parser_nodes[1216]
-#define COLOR_AStringExpr SFT_parser_nodes[1217]
-#define COLOR_parser_nodes___AStringExpr____n_string SFT_parser_nodes[1218]
-#define INIT_TABLE_POS_AStringExpr SFT_parser_nodes[1219]
-#define COLOR_parser_nodes___AStringExpr___n_string SFT_parser_nodes[1220]
-#define COLOR_parser_nodes___AStringExpr___n_string__eq SFT_parser_nodes[1221]
-#define ID_AStartStringExpr SFT_parser_nodes[1222]
-#define COLOR_AStartStringExpr SFT_parser_nodes[1223]
-#define COLOR_parser_nodes___AStartStringExpr____n_string SFT_parser_nodes[1224]
-#define INIT_TABLE_POS_AStartStringExpr SFT_parser_nodes[1225]
-#define COLOR_parser_nodes___AStartStringExpr___n_string SFT_parser_nodes[1226]
-#define COLOR_parser_nodes___AStartStringExpr___n_string__eq SFT_parser_nodes[1227]
-#define ID_AMidStringExpr SFT_parser_nodes[1228]
-#define COLOR_AMidStringExpr SFT_parser_nodes[1229]
-#define COLOR_parser_nodes___AMidStringExpr____n_string SFT_parser_nodes[1230]
-#define INIT_TABLE_POS_AMidStringExpr SFT_parser_nodes[1231]
-#define COLOR_parser_nodes___AMidStringExpr___n_string SFT_parser_nodes[1232]
-#define COLOR_parser_nodes___AMidStringExpr___n_string__eq SFT_parser_nodes[1233]
-#define ID_AEndStringExpr SFT_parser_nodes[1234]
-#define COLOR_AEndStringExpr SFT_parser_nodes[1235]
-#define COLOR_parser_nodes___AEndStringExpr____n_string SFT_parser_nodes[1236]
-#define INIT_TABLE_POS_AEndStringExpr SFT_parser_nodes[1237]
-#define COLOR_parser_nodes___AEndStringExpr___n_string SFT_parser_nodes[1238]
-#define COLOR_parser_nodes___AEndStringExpr___n_string__eq SFT_parser_nodes[1239]
-#define ID_ASuperstringExpr SFT_parser_nodes[1240]
-#define COLOR_ASuperstringExpr SFT_parser_nodes[1241]
-#define COLOR_parser_nodes___ASuperstringExpr____n_exprs SFT_parser_nodes[1242]
-#define INIT_TABLE_POS_ASuperstringExpr SFT_parser_nodes[1243]
-#define COLOR_parser_nodes___ASuperstringExpr___n_exprs SFT_parser_nodes[1244]
-#define COLOR_parser_nodes___ASuperstringExpr___n_exprs__eq SFT_parser_nodes[1245]
-#define ID_AParExpr SFT_parser_nodes[1246]
-#define COLOR_AParExpr SFT_parser_nodes[1247]
-#define INIT_TABLE_POS_AParExpr SFT_parser_nodes[1248]
-#define ID_AProxyExpr SFT_parser_nodes[1249]
-#define COLOR_AProxyExpr SFT_parser_nodes[1250]
-#define COLOR_parser_nodes___AProxyExpr____n_expr SFT_parser_nodes[1251]
-#define INIT_TABLE_POS_AProxyExpr SFT_parser_nodes[1252]
-#define COLOR_parser_nodes___AProxyExpr___n_expr SFT_parser_nodes[1253]
-#define COLOR_parser_nodes___AProxyExpr___n_expr__eq SFT_parser_nodes[1254]
-#define ID_AAsCastExpr SFT_parser_nodes[1255]
-#define COLOR_AAsCastExpr SFT_parser_nodes[1256]
-#define COLOR_parser_nodes___AAsCastExpr____n_expr SFT_parser_nodes[1257]
-#define COLOR_parser_nodes___AAsCastExpr____n_kwas SFT_parser_nodes[1258]
-#define COLOR_parser_nodes___AAsCastExpr____n_type SFT_parser_nodes[1259]
-#define INIT_TABLE_POS_AAsCastExpr SFT_parser_nodes[1260]
-#define COLOR_parser_nodes___AAsCastExpr___n_expr SFT_parser_nodes[1261]
-#define COLOR_parser_nodes___AAsCastExpr___n_expr__eq SFT_parser_nodes[1262]
-#define COLOR_parser_nodes___AAsCastExpr___n_kwas SFT_parser_nodes[1263]
-#define COLOR_parser_nodes___AAsCastExpr___n_kwas__eq SFT_parser_nodes[1264]
-#define COLOR_parser_nodes___AAsCastExpr___n_type SFT_parser_nodes[1265]
-#define COLOR_parser_nodes___AAsCastExpr___n_type__eq SFT_parser_nodes[1266]
-#define ID_APlusAssignOp SFT_parser_nodes[1267]
-#define COLOR_APlusAssignOp SFT_parser_nodes[1268]
-#define COLOR_parser_nodes___APlusAssignOp____n_pluseq SFT_parser_nodes[1269]
-#define INIT_TABLE_POS_APlusAssignOp SFT_parser_nodes[1270]
-#define COLOR_parser_nodes___APlusAssignOp___n_pluseq SFT_parser_nodes[1271]
-#define COLOR_parser_nodes___APlusAssignOp___n_pluseq__eq SFT_parser_nodes[1272]
-#define ID_AMinusAssignOp SFT_parser_nodes[1273]
-#define COLOR_AMinusAssignOp SFT_parser_nodes[1274]
-#define COLOR_parser_nodes___AMinusAssignOp____n_minuseq SFT_parser_nodes[1275]
-#define INIT_TABLE_POS_AMinusAssignOp SFT_parser_nodes[1276]
-#define COLOR_parser_nodes___AMinusAssignOp___n_minuseq SFT_parser_nodes[1277]
-#define COLOR_parser_nodes___AMinusAssignOp___n_minuseq__eq SFT_parser_nodes[1278]
-#define ID_AClosureDef SFT_parser_nodes[1279]
-#define COLOR_AClosureDef SFT_parser_nodes[1280]
-#define COLOR_parser_nodes___AClosureDef____n_kwwith SFT_parser_nodes[1281]
-#define COLOR_parser_nodes___AClosureDef____n_id SFT_parser_nodes[1282]
-#define COLOR_parser_nodes___AClosureDef____n_kwdo SFT_parser_nodes[1283]
-#define COLOR_parser_nodes___AClosureDef____n_expr SFT_parser_nodes[1284]
-#define INIT_TABLE_POS_AClosureDef SFT_parser_nodes[1285]
-#define COLOR_parser_nodes___AClosureDef___n_kwwith SFT_parser_nodes[1286]
-#define COLOR_parser_nodes___AClosureDef___n_kwwith__eq SFT_parser_nodes[1287]
-#define COLOR_parser_nodes___AClosureDef___n_id SFT_parser_nodes[1288]
-#define COLOR_parser_nodes___AClosureDef___n_id__eq SFT_parser_nodes[1289]
-#define COLOR_parser_nodes___AClosureDef___n_kwdo SFT_parser_nodes[1290]
-#define COLOR_parser_nodes___AClosureDef___n_kwdo__eq SFT_parser_nodes[1291]
-#define COLOR_parser_nodes___AClosureDef___n_expr SFT_parser_nodes[1292]
-#define COLOR_parser_nodes___AClosureDef___n_expr__eq SFT_parser_nodes[1293]
-#define ID_AQualified SFT_parser_nodes[1294]
-#define COLOR_AQualified SFT_parser_nodes[1295]
-#define COLOR_parser_nodes___AQualified____n_id SFT_parser_nodes[1296]
-#define COLOR_parser_nodes___AQualified____n_classid SFT_parser_nodes[1297]
-#define INIT_TABLE_POS_AQualified SFT_parser_nodes[1298]
-#define COLOR_parser_nodes___AQualified___n_id SFT_parser_nodes[1299]
-#define COLOR_parser_nodes___AQualified___n_id__eq SFT_parser_nodes[1300]
-#define COLOR_parser_nodes___AQualified___n_classid SFT_parser_nodes[1301]
-#define COLOR_parser_nodes___AQualified___n_classid__eq SFT_parser_nodes[1302]
-#define ID_ADoc SFT_parser_nodes[1303]
-#define COLOR_ADoc SFT_parser_nodes[1304]
-#define COLOR_parser_nodes___ADoc____n_comment SFT_parser_nodes[1305]
-#define INIT_TABLE_POS_ADoc SFT_parser_nodes[1306]
-#define COLOR_parser_nodes___ADoc___n_comment SFT_parser_nodes[1307]
-#define COLOR_parser_nodes___ADoc___n_comment__eq SFT_parser_nodes[1308]
-#define ID_Start SFT_parser_nodes[1309]
-#define COLOR_Start SFT_parser_nodes[1310]
-#define COLOR_parser_nodes___Start____n_base SFT_parser_nodes[1311]
-#define COLOR_parser_nodes___Start____n_eof SFT_parser_nodes[1312]
-#define INIT_TABLE_POS_Start SFT_parser_nodes[1313]
-#define COLOR_parser_nodes___Start___n_base SFT_parser_nodes[1314]
-#define COLOR_parser_nodes___Start___n_base__eq SFT_parser_nodes[1315]
-#define COLOR_parser_nodes___Start___n_eof SFT_parser_nodes[1316]
-#define COLOR_parser_nodes___Start___n_eof__eq SFT_parser_nodes[1317]
+#define ID_PNode (SFT_parser_nodes[0])
+#define COLOR_PNode (SFT_parser_nodes[1])
+#define INIT_TABLE_POS_PNode (SFT_parser_nodes[2] + 0)
+#define CALL_parser_nodes___PNode___init(recv) ((parser_nodes___PNode___init_t)CALL((recv), (SFT_parser_nodes[2] + 1)))
+#define ID_Token (SFT_parser_nodes[3])
+#define COLOR_Token (SFT_parser_nodes[4])
+#define INIT_TABLE_POS_Token (SFT_parser_nodes[5] + 0)
+#define ID_Prod (SFT_parser_nodes[6])
+#define COLOR_Prod (SFT_parser_nodes[7])
+#define INIT_TABLE_POS_Prod (SFT_parser_nodes[8] + 0)
+#define ID_TEol (SFT_parser_nodes[9])
+#define COLOR_TEol (SFT_parser_nodes[10])
+#define INIT_TABLE_POS_TEol (SFT_parser_nodes[11] + 0)
+#define ID_TComment (SFT_parser_nodes[12])
+#define COLOR_TComment (SFT_parser_nodes[13])
+#define INIT_TABLE_POS_TComment (SFT_parser_nodes[14] + 0)
+#define ID_TKwpackage (SFT_parser_nodes[15])
+#define COLOR_TKwpackage (SFT_parser_nodes[16])
+#define INIT_TABLE_POS_TKwpackage (SFT_parser_nodes[17] + 0)
+#define ID_TKwimport (SFT_parser_nodes[18])
+#define COLOR_TKwimport (SFT_parser_nodes[19])
+#define INIT_TABLE_POS_TKwimport (SFT_parser_nodes[20] + 0)
+#define ID_TKwclass (SFT_parser_nodes[21])
+#define COLOR_TKwclass (SFT_parser_nodes[22])
+#define INIT_TABLE_POS_TKwclass (SFT_parser_nodes[23] + 0)
+#define ID_TKwabstract (SFT_parser_nodes[24])
+#define COLOR_TKwabstract (SFT_parser_nodes[25])
+#define INIT_TABLE_POS_TKwabstract (SFT_parser_nodes[26] + 0)
+#define ID_TKwinterface (SFT_parser_nodes[27])
+#define COLOR_TKwinterface (SFT_parser_nodes[28])
+#define INIT_TABLE_POS_TKwinterface (SFT_parser_nodes[29] + 0)
+#define ID_TKwuniversal (SFT_parser_nodes[30])
+#define COLOR_TKwuniversal (SFT_parser_nodes[31])
+#define INIT_TABLE_POS_TKwuniversal (SFT_parser_nodes[32] + 0)
+#define ID_TKwspecial (SFT_parser_nodes[33])
+#define COLOR_TKwspecial (SFT_parser_nodes[34])
+#define INIT_TABLE_POS_TKwspecial (SFT_parser_nodes[35] + 0)
+#define ID_TKwend (SFT_parser_nodes[36])
+#define COLOR_TKwend (SFT_parser_nodes[37])
+#define INIT_TABLE_POS_TKwend (SFT_parser_nodes[38] + 0)
+#define ID_TKwmeth (SFT_parser_nodes[39])
+#define COLOR_TKwmeth (SFT_parser_nodes[40])
+#define INIT_TABLE_POS_TKwmeth (SFT_parser_nodes[41] + 0)
+#define ID_TKwtype (SFT_parser_nodes[42])
+#define COLOR_TKwtype (SFT_parser_nodes[43])
+#define INIT_TABLE_POS_TKwtype (SFT_parser_nodes[44] + 0)
+#define ID_TKwattr (SFT_parser_nodes[45])
+#define COLOR_TKwattr (SFT_parser_nodes[46])
+#define INIT_TABLE_POS_TKwattr (SFT_parser_nodes[47] + 0)
+#define ID_TKwinit (SFT_parser_nodes[48])
+#define COLOR_TKwinit (SFT_parser_nodes[49])
+#define INIT_TABLE_POS_TKwinit (SFT_parser_nodes[50] + 0)
+#define ID_TKwredef (SFT_parser_nodes[51])
+#define COLOR_TKwredef (SFT_parser_nodes[52])
+#define INIT_TABLE_POS_TKwredef (SFT_parser_nodes[53] + 0)
+#define ID_TKwis (SFT_parser_nodes[54])
+#define COLOR_TKwis (SFT_parser_nodes[55])
+#define INIT_TABLE_POS_TKwis (SFT_parser_nodes[56] + 0)
+#define ID_TKwdo (SFT_parser_nodes[57])
+#define COLOR_TKwdo (SFT_parser_nodes[58])
+#define INIT_TABLE_POS_TKwdo (SFT_parser_nodes[59] + 0)
+#define ID_TKwreadable (SFT_parser_nodes[60])
+#define COLOR_TKwreadable (SFT_parser_nodes[61])
+#define INIT_TABLE_POS_TKwreadable (SFT_parser_nodes[62] + 0)
+#define ID_TKwwritable (SFT_parser_nodes[63])
+#define COLOR_TKwwritable (SFT_parser_nodes[64])
+#define INIT_TABLE_POS_TKwwritable (SFT_parser_nodes[65] + 0)
+#define ID_TKwvar (SFT_parser_nodes[66])
+#define COLOR_TKwvar (SFT_parser_nodes[67])
+#define INIT_TABLE_POS_TKwvar (SFT_parser_nodes[68] + 0)
+#define ID_TKwintern (SFT_parser_nodes[69])
+#define COLOR_TKwintern (SFT_parser_nodes[70])
+#define INIT_TABLE_POS_TKwintern (SFT_parser_nodes[71] + 0)
+#define ID_TKwextern (SFT_parser_nodes[72])
+#define COLOR_TKwextern (SFT_parser_nodes[73])
+#define INIT_TABLE_POS_TKwextern (SFT_parser_nodes[74] + 0)
+#define ID_TKwprotected (SFT_parser_nodes[75])
+#define COLOR_TKwprotected (SFT_parser_nodes[76])
+#define INIT_TABLE_POS_TKwprotected (SFT_parser_nodes[77] + 0)
+#define ID_TKwprivate (SFT_parser_nodes[78])
+#define COLOR_TKwprivate (SFT_parser_nodes[79])
+#define INIT_TABLE_POS_TKwprivate (SFT_parser_nodes[80] + 0)
+#define ID_TKwintrude (SFT_parser_nodes[81])
+#define COLOR_TKwintrude (SFT_parser_nodes[82])
+#define INIT_TABLE_POS_TKwintrude (SFT_parser_nodes[83] + 0)
+#define ID_TKwif (SFT_parser_nodes[84])
+#define COLOR_TKwif (SFT_parser_nodes[85])
+#define INIT_TABLE_POS_TKwif (SFT_parser_nodes[86] + 0)
+#define ID_TKwthen (SFT_parser_nodes[87])
+#define COLOR_TKwthen (SFT_parser_nodes[88])
+#define INIT_TABLE_POS_TKwthen (SFT_parser_nodes[89] + 0)
+#define ID_TKwelse (SFT_parser_nodes[90])
+#define COLOR_TKwelse (SFT_parser_nodes[91])
+#define INIT_TABLE_POS_TKwelse (SFT_parser_nodes[92] + 0)
+#define ID_TKwwhile (SFT_parser_nodes[93])
+#define COLOR_TKwwhile (SFT_parser_nodes[94])
+#define INIT_TABLE_POS_TKwwhile (SFT_parser_nodes[95] + 0)
+#define ID_TKwfor (SFT_parser_nodes[96])
+#define COLOR_TKwfor (SFT_parser_nodes[97])
+#define INIT_TABLE_POS_TKwfor (SFT_parser_nodes[98] + 0)
+#define ID_TKwin (SFT_parser_nodes[99])
+#define COLOR_TKwin (SFT_parser_nodes[100])
+#define INIT_TABLE_POS_TKwin (SFT_parser_nodes[101] + 0)
+#define ID_TKwand (SFT_parser_nodes[102])
+#define COLOR_TKwand (SFT_parser_nodes[103])
+#define INIT_TABLE_POS_TKwand (SFT_parser_nodes[104] + 0)
+#define ID_TKwor (SFT_parser_nodes[105])
+#define COLOR_TKwor (SFT_parser_nodes[106])
+#define INIT_TABLE_POS_TKwor (SFT_parser_nodes[107] + 0)
+#define ID_TKwnot (SFT_parser_nodes[108])
+#define COLOR_TKwnot (SFT_parser_nodes[109])
+#define INIT_TABLE_POS_TKwnot (SFT_parser_nodes[110] + 0)
+#define ID_TKwreturn (SFT_parser_nodes[111])
+#define COLOR_TKwreturn (SFT_parser_nodes[112])
+#define INIT_TABLE_POS_TKwreturn (SFT_parser_nodes[113] + 0)
+#define ID_TKwcontinue (SFT_parser_nodes[114])
+#define COLOR_TKwcontinue (SFT_parser_nodes[115])
+#define INIT_TABLE_POS_TKwcontinue (SFT_parser_nodes[116] + 0)
+#define ID_TKwbreak (SFT_parser_nodes[117])
+#define COLOR_TKwbreak (SFT_parser_nodes[118])
+#define INIT_TABLE_POS_TKwbreak (SFT_parser_nodes[119] + 0)
+#define ID_TKwabort (SFT_parser_nodes[120])
+#define COLOR_TKwabort (SFT_parser_nodes[121])
+#define INIT_TABLE_POS_TKwabort (SFT_parser_nodes[122] + 0)
+#define ID_TKwassert (SFT_parser_nodes[123])
+#define COLOR_TKwassert (SFT_parser_nodes[124])
+#define INIT_TABLE_POS_TKwassert (SFT_parser_nodes[125] + 0)
+#define ID_TKwnew (SFT_parser_nodes[126])
+#define COLOR_TKwnew (SFT_parser_nodes[127])
+#define INIT_TABLE_POS_TKwnew (SFT_parser_nodes[128] + 0)
+#define ID_TKwisa (SFT_parser_nodes[129])
+#define COLOR_TKwisa (SFT_parser_nodes[130])
+#define INIT_TABLE_POS_TKwisa (SFT_parser_nodes[131] + 0)
+#define ID_TKwonce (SFT_parser_nodes[132])
+#define COLOR_TKwonce (SFT_parser_nodes[133])
+#define INIT_TABLE_POS_TKwonce (SFT_parser_nodes[134] + 0)
+#define ID_TKwsuper (SFT_parser_nodes[135])
+#define COLOR_TKwsuper (SFT_parser_nodes[136])
+#define INIT_TABLE_POS_TKwsuper (SFT_parser_nodes[137] + 0)
+#define ID_TKwself (SFT_parser_nodes[138])
+#define COLOR_TKwself (SFT_parser_nodes[139])
+#define INIT_TABLE_POS_TKwself (SFT_parser_nodes[140] + 0)
+#define ID_TKwtrue (SFT_parser_nodes[141])
+#define COLOR_TKwtrue (SFT_parser_nodes[142])
+#define INIT_TABLE_POS_TKwtrue (SFT_parser_nodes[143] + 0)
+#define ID_TKwfalse (SFT_parser_nodes[144])
+#define COLOR_TKwfalse (SFT_parser_nodes[145])
+#define INIT_TABLE_POS_TKwfalse (SFT_parser_nodes[146] + 0)
+#define ID_TKwnull (SFT_parser_nodes[147])
+#define COLOR_TKwnull (SFT_parser_nodes[148])
+#define INIT_TABLE_POS_TKwnull (SFT_parser_nodes[149] + 0)
+#define ID_TKwas (SFT_parser_nodes[150])
+#define COLOR_TKwas (SFT_parser_nodes[151])
+#define INIT_TABLE_POS_TKwas (SFT_parser_nodes[152] + 0)
+#define ID_TKwwith (SFT_parser_nodes[153])
+#define COLOR_TKwwith (SFT_parser_nodes[154])
+#define INIT_TABLE_POS_TKwwith (SFT_parser_nodes[155] + 0)
+#define ID_TOpar (SFT_parser_nodes[156])
+#define COLOR_TOpar (SFT_parser_nodes[157])
+#define INIT_TABLE_POS_TOpar (SFT_parser_nodes[158] + 0)
+#define ID_TCpar (SFT_parser_nodes[159])
+#define COLOR_TCpar (SFT_parser_nodes[160])
+#define INIT_TABLE_POS_TCpar (SFT_parser_nodes[161] + 0)
+#define ID_TObra (SFT_parser_nodes[162])
+#define COLOR_TObra (SFT_parser_nodes[163])
+#define INIT_TABLE_POS_TObra (SFT_parser_nodes[164] + 0)
+#define ID_TCbra (SFT_parser_nodes[165])
+#define COLOR_TCbra (SFT_parser_nodes[166])
+#define INIT_TABLE_POS_TCbra (SFT_parser_nodes[167] + 0)
+#define ID_TComma (SFT_parser_nodes[168])
+#define COLOR_TComma (SFT_parser_nodes[169])
+#define INIT_TABLE_POS_TComma (SFT_parser_nodes[170] + 0)
+#define ID_TColumn (SFT_parser_nodes[171])
+#define COLOR_TColumn (SFT_parser_nodes[172])
+#define INIT_TABLE_POS_TColumn (SFT_parser_nodes[173] + 0)
+#define ID_TQuad (SFT_parser_nodes[174])
+#define COLOR_TQuad (SFT_parser_nodes[175])
+#define INIT_TABLE_POS_TQuad (SFT_parser_nodes[176] + 0)
+#define ID_TAssign (SFT_parser_nodes[177])
+#define COLOR_TAssign (SFT_parser_nodes[178])
+#define INIT_TABLE_POS_TAssign (SFT_parser_nodes[179] + 0)
+#define ID_TPluseq (SFT_parser_nodes[180])
+#define COLOR_TPluseq (SFT_parser_nodes[181])
+#define INIT_TABLE_POS_TPluseq (SFT_parser_nodes[182] + 0)
+#define ID_TMinuseq (SFT_parser_nodes[183])
+#define COLOR_TMinuseq (SFT_parser_nodes[184])
+#define INIT_TABLE_POS_TMinuseq (SFT_parser_nodes[185] + 0)
+#define ID_TDotdotdot (SFT_parser_nodes[186])
+#define COLOR_TDotdotdot (SFT_parser_nodes[187])
+#define INIT_TABLE_POS_TDotdotdot (SFT_parser_nodes[188] + 0)
+#define ID_TDotdot (SFT_parser_nodes[189])
+#define COLOR_TDotdot (SFT_parser_nodes[190])
+#define INIT_TABLE_POS_TDotdot (SFT_parser_nodes[191] + 0)
+#define ID_TDot (SFT_parser_nodes[192])
+#define COLOR_TDot (SFT_parser_nodes[193])
+#define INIT_TABLE_POS_TDot (SFT_parser_nodes[194] + 0)
+#define ID_TPlus (SFT_parser_nodes[195])
+#define COLOR_TPlus (SFT_parser_nodes[196])
+#define INIT_TABLE_POS_TPlus (SFT_parser_nodes[197] + 0)
+#define ID_TMinus (SFT_parser_nodes[198])
+#define COLOR_TMinus (SFT_parser_nodes[199])
+#define INIT_TABLE_POS_TMinus (SFT_parser_nodes[200] + 0)
+#define ID_TStar (SFT_parser_nodes[201])
+#define COLOR_TStar (SFT_parser_nodes[202])
+#define INIT_TABLE_POS_TStar (SFT_parser_nodes[203] + 0)
+#define ID_TSlash (SFT_parser_nodes[204])
+#define COLOR_TSlash (SFT_parser_nodes[205])
+#define INIT_TABLE_POS_TSlash (SFT_parser_nodes[206] + 0)
+#define ID_TPercent (SFT_parser_nodes[207])
+#define COLOR_TPercent (SFT_parser_nodes[208])
+#define INIT_TABLE_POS_TPercent (SFT_parser_nodes[209] + 0)
+#define ID_TEq (SFT_parser_nodes[210])
+#define COLOR_TEq (SFT_parser_nodes[211])
+#define INIT_TABLE_POS_TEq (SFT_parser_nodes[212] + 0)
+#define ID_TNe (SFT_parser_nodes[213])
+#define COLOR_TNe (SFT_parser_nodes[214])
+#define INIT_TABLE_POS_TNe (SFT_parser_nodes[215] + 0)
+#define ID_TLt (SFT_parser_nodes[216])
+#define COLOR_TLt (SFT_parser_nodes[217])
+#define INIT_TABLE_POS_TLt (SFT_parser_nodes[218] + 0)
+#define ID_TLe (SFT_parser_nodes[219])
+#define COLOR_TLe (SFT_parser_nodes[220])
+#define INIT_TABLE_POS_TLe (SFT_parser_nodes[221] + 0)
+#define ID_TGt (SFT_parser_nodes[222])
+#define COLOR_TGt (SFT_parser_nodes[223])
+#define INIT_TABLE_POS_TGt (SFT_parser_nodes[224] + 0)
+#define ID_TGe (SFT_parser_nodes[225])
+#define COLOR_TGe (SFT_parser_nodes[226])
+#define INIT_TABLE_POS_TGe (SFT_parser_nodes[227] + 0)
+#define ID_TStarship (SFT_parser_nodes[228])
+#define COLOR_TStarship (SFT_parser_nodes[229])
+#define INIT_TABLE_POS_TStarship (SFT_parser_nodes[230] + 0)
+#define ID_TClassid (SFT_parser_nodes[231])
+#define COLOR_TClassid (SFT_parser_nodes[232])
+#define INIT_TABLE_POS_TClassid (SFT_parser_nodes[233] + 0)
+#define ID_TId (SFT_parser_nodes[234])
+#define COLOR_TId (SFT_parser_nodes[235])
+#define INIT_TABLE_POS_TId (SFT_parser_nodes[236] + 0)
+#define ID_TAttrid (SFT_parser_nodes[237])
+#define COLOR_TAttrid (SFT_parser_nodes[238])
+#define INIT_TABLE_POS_TAttrid (SFT_parser_nodes[239] + 0)
+#define ID_TNumber (SFT_parser_nodes[240])
+#define COLOR_TNumber (SFT_parser_nodes[241])
+#define INIT_TABLE_POS_TNumber (SFT_parser_nodes[242] + 0)
+#define ID_TFloat (SFT_parser_nodes[243])
+#define COLOR_TFloat (SFT_parser_nodes[244])
+#define INIT_TABLE_POS_TFloat (SFT_parser_nodes[245] + 0)
+#define ID_TChar (SFT_parser_nodes[246])
+#define COLOR_TChar (SFT_parser_nodes[247])
+#define INIT_TABLE_POS_TChar (SFT_parser_nodes[248] + 0)
+#define ID_TString (SFT_parser_nodes[249])
+#define COLOR_TString (SFT_parser_nodes[250])
+#define INIT_TABLE_POS_TString (SFT_parser_nodes[251] + 0)
+#define ID_TStartString (SFT_parser_nodes[252])
+#define COLOR_TStartString (SFT_parser_nodes[253])
+#define INIT_TABLE_POS_TStartString (SFT_parser_nodes[254] + 0)
+#define ID_TMidString (SFT_parser_nodes[255])
+#define COLOR_TMidString (SFT_parser_nodes[256])
+#define INIT_TABLE_POS_TMidString (SFT_parser_nodes[257] + 0)
+#define ID_TEndString (SFT_parser_nodes[258])
+#define COLOR_TEndString (SFT_parser_nodes[259])
+#define INIT_TABLE_POS_TEndString (SFT_parser_nodes[260] + 0)
+#define ID_EOF (SFT_parser_nodes[261])
+#define COLOR_EOF (SFT_parser_nodes[262])
+#define INIT_TABLE_POS_EOF (SFT_parser_nodes[263] + 0)
+#define CALL_parser_nodes___EOF___noinit(recv) ((parser_nodes___EOF___noinit_t)CALL((recv), (SFT_parser_nodes[263] + 1)))
+#define ID_PError (SFT_parser_nodes[264])
+#define COLOR_PError (SFT_parser_nodes[265])
+#define INIT_TABLE_POS_PError (SFT_parser_nodes[266] + 0)
+#define CALL_parser_nodes___PError___noinit(recv) ((parser_nodes___PError___noinit_t)CALL((recv), (SFT_parser_nodes[266] + 1)))
+#define ID_PModule (SFT_parser_nodes[267])
+#define COLOR_PModule (SFT_parser_nodes[268])
+#define INIT_TABLE_POS_PModule (SFT_parser_nodes[269] + 0)
+#define ID_PPackagedecl (SFT_parser_nodes[270])
+#define COLOR_PPackagedecl (SFT_parser_nodes[271])
+#define INIT_TABLE_POS_PPackagedecl (SFT_parser_nodes[272] + 0)
+#define ID_PImport (SFT_parser_nodes[273])
+#define COLOR_PImport (SFT_parser_nodes[274])
+#define INIT_TABLE_POS_PImport (SFT_parser_nodes[275] + 0)
+#define ID_PVisibility (SFT_parser_nodes[276])
+#define COLOR_PVisibility (SFT_parser_nodes[277])
+#define INIT_TABLE_POS_PVisibility (SFT_parser_nodes[278] + 0)
+#define ID_PClassdef (SFT_parser_nodes[279])
+#define COLOR_PClassdef (SFT_parser_nodes[280])
+#define INIT_TABLE_POS_PClassdef (SFT_parser_nodes[281] + 0)
+#define ID_PClasskind (SFT_parser_nodes[282])
+#define COLOR_PClasskind (SFT_parser_nodes[283])
+#define INIT_TABLE_POS_PClasskind (SFT_parser_nodes[284] + 0)
+#define ID_PFormaldef (SFT_parser_nodes[285])
+#define COLOR_PFormaldef (SFT_parser_nodes[286])
+#define INIT_TABLE_POS_PFormaldef (SFT_parser_nodes[287] + 0)
+#define ID_PSuperclass (SFT_parser_nodes[288])
+#define COLOR_PSuperclass (SFT_parser_nodes[289])
+#define INIT_TABLE_POS_PSuperclass (SFT_parser_nodes[290] + 0)
+#define ID_PPropdef (SFT_parser_nodes[291])
+#define COLOR_PPropdef (SFT_parser_nodes[292])
+#define ATTR_parser_nodes___PPropdef____n_doc(recv) ATTR(recv, (SFT_parser_nodes[293] + 0))
+#define INIT_TABLE_POS_PPropdef (SFT_parser_nodes[294] + 0)
+#define CALL_parser_nodes___PPropdef___n_doc(recv) ((parser_nodes___PPropdef___n_doc_t)CALL((recv), (SFT_parser_nodes[294] + 1)))
+#define CALL_parser_nodes___PPropdef___n_doc__eq(recv) ((parser_nodes___PPropdef___n_doc__eq_t)CALL((recv), (SFT_parser_nodes[294] + 2)))
+#define ID_PAble (SFT_parser_nodes[295])
+#define COLOR_PAble (SFT_parser_nodes[296])
+#define ATTR_parser_nodes___PAble____n_kwredef(recv) ATTR(recv, (SFT_parser_nodes[297] + 0))
+#define INIT_TABLE_POS_PAble (SFT_parser_nodes[298] + 0)
+#define CALL_parser_nodes___PAble___n_kwredef(recv) ((parser_nodes___PAble___n_kwredef_t)CALL((recv), (SFT_parser_nodes[298] + 1)))
+#define CALL_parser_nodes___PAble___n_kwredef__eq(recv) ((parser_nodes___PAble___n_kwredef__eq_t)CALL((recv), (SFT_parser_nodes[298] + 2)))
+#define ID_PMethid (SFT_parser_nodes[299])
+#define COLOR_PMethid (SFT_parser_nodes[300])
+#define INIT_TABLE_POS_PMethid (SFT_parser_nodes[301] + 0)
+#define ID_PSignature (SFT_parser_nodes[302])
+#define COLOR_PSignature (SFT_parser_nodes[303])
+#define INIT_TABLE_POS_PSignature (SFT_parser_nodes[304] + 0)
+#define ID_PParam (SFT_parser_nodes[305])
+#define COLOR_PParam (SFT_parser_nodes[306])
+#define ATTR_parser_nodes___PParam____n_id(recv) ATTR(recv, (SFT_parser_nodes[307] + 0))
+#define ATTR_parser_nodes___PParam____n_type(recv) ATTR(recv, (SFT_parser_nodes[307] + 1))
+#define INIT_TABLE_POS_PParam (SFT_parser_nodes[308] + 0)
+#define CALL_parser_nodes___PParam___n_id(recv) ((parser_nodes___PParam___n_id_t)CALL((recv), (SFT_parser_nodes[308] + 1)))
+#define CALL_parser_nodes___PParam___n_id__eq(recv) ((parser_nodes___PParam___n_id__eq_t)CALL((recv), (SFT_parser_nodes[308] + 2)))
+#define CALL_parser_nodes___PParam___n_type(recv) ((parser_nodes___PParam___n_type_t)CALL((recv), (SFT_parser_nodes[308] + 3)))
+#define CALL_parser_nodes___PParam___n_type__eq(recv) ((parser_nodes___PParam___n_type__eq_t)CALL((recv), (SFT_parser_nodes[308] + 4)))
+#define ID_PClosureDecl (SFT_parser_nodes[309])
+#define COLOR_PClosureDecl (SFT_parser_nodes[310])
+#define INIT_TABLE_POS_PClosureDecl (SFT_parser_nodes[311] + 0)
+#define ID_PType (SFT_parser_nodes[312])
+#define COLOR_PType (SFT_parser_nodes[313])
+#define INIT_TABLE_POS_PType (SFT_parser_nodes[314] + 0)
+#define ID_PExpr (SFT_parser_nodes[315])
+#define COLOR_PExpr (SFT_parser_nodes[316])
+#define INIT_TABLE_POS_PExpr (SFT_parser_nodes[317] + 0)
+#define ID_PAssignOp (SFT_parser_nodes[318])
+#define COLOR_PAssignOp (SFT_parser_nodes[319])
+#define INIT_TABLE_POS_PAssignOp (SFT_parser_nodes[320] + 0)
+#define ID_PClosureDef (SFT_parser_nodes[321])
+#define COLOR_PClosureDef (SFT_parser_nodes[322])
+#define INIT_TABLE_POS_PClosureDef (SFT_parser_nodes[323] + 0)
+#define ID_PQualified (SFT_parser_nodes[324])
+#define COLOR_PQualified (SFT_parser_nodes[325])
+#define INIT_TABLE_POS_PQualified (SFT_parser_nodes[326] + 0)
+#define ID_PDoc (SFT_parser_nodes[327])
+#define COLOR_PDoc (SFT_parser_nodes[328])
+#define INIT_TABLE_POS_PDoc (SFT_parser_nodes[329] + 0)
+#define ID_AModule (SFT_parser_nodes[330])
+#define COLOR_AModule (SFT_parser_nodes[331])
+#define ATTR_parser_nodes___AModule____n_packagedecl(recv) ATTR(recv, (SFT_parser_nodes[332] + 0))
+#define ATTR_parser_nodes___AModule____n_imports(recv) ATTR(recv, (SFT_parser_nodes[332] + 1))
+#define ATTR_parser_nodes___AModule____n_classdefs(recv) ATTR(recv, (SFT_parser_nodes[332] + 2))
+#define INIT_TABLE_POS_AModule (SFT_parser_nodes[333] + 0)
+#define CALL_parser_nodes___AModule___n_packagedecl(recv) ((parser_nodes___AModule___n_packagedecl_t)CALL((recv), (SFT_parser_nodes[333] + 1)))
+#define CALL_parser_nodes___AModule___n_packagedecl__eq(recv) ((parser_nodes___AModule___n_packagedecl__eq_t)CALL((recv), (SFT_parser_nodes[333] + 2)))
+#define CALL_parser_nodes___AModule___n_imports(recv) ((parser_nodes___AModule___n_imports_t)CALL((recv), (SFT_parser_nodes[333] + 3)))
+#define CALL_parser_nodes___AModule___n_imports__eq(recv) ((parser_nodes___AModule___n_imports__eq_t)CALL((recv), (SFT_parser_nodes[333] + 4)))
+#define CALL_parser_nodes___AModule___n_classdefs(recv) ((parser_nodes___AModule___n_classdefs_t)CALL((recv), (SFT_parser_nodes[333] + 5)))
+#define CALL_parser_nodes___AModule___n_classdefs__eq(recv) ((parser_nodes___AModule___n_classdefs__eq_t)CALL((recv), (SFT_parser_nodes[333] + 6)))
+#define ID_APackagedecl (SFT_parser_nodes[334])
+#define COLOR_APackagedecl (SFT_parser_nodes[335])
+#define ATTR_parser_nodes___APackagedecl____n_doc(recv) ATTR(recv, (SFT_parser_nodes[336] + 0))
+#define ATTR_parser_nodes___APackagedecl____n_kwpackage(recv) ATTR(recv, (SFT_parser_nodes[336] + 1))
+#define ATTR_parser_nodes___APackagedecl____n_id(recv) ATTR(recv, (SFT_parser_nodes[336] + 2))
+#define INIT_TABLE_POS_APackagedecl (SFT_parser_nodes[337] + 0)
+#define CALL_parser_nodes___APackagedecl___n_doc(recv) ((parser_nodes___APackagedecl___n_doc_t)CALL((recv), (SFT_parser_nodes[337] + 1)))
+#define CALL_parser_nodes___APackagedecl___n_doc__eq(recv) ((parser_nodes___APackagedecl___n_doc__eq_t)CALL((recv), (SFT_parser_nodes[337] + 2)))
+#define CALL_parser_nodes___APackagedecl___n_kwpackage(recv) ((parser_nodes___APackagedecl___n_kwpackage_t)CALL((recv), (SFT_parser_nodes[337] + 3)))
+#define CALL_parser_nodes___APackagedecl___n_kwpackage__eq(recv) ((parser_nodes___APackagedecl___n_kwpackage__eq_t)CALL((recv), (SFT_parser_nodes[337] + 4)))
+#define CALL_parser_nodes___APackagedecl___n_id(recv) ((parser_nodes___APackagedecl___n_id_t)CALL((recv), (SFT_parser_nodes[337] + 5)))
+#define CALL_parser_nodes___APackagedecl___n_id__eq(recv) ((parser_nodes___APackagedecl___n_id__eq_t)CALL((recv), (SFT_parser_nodes[337] + 6)))
+#define ID_AImport (SFT_parser_nodes[338])
+#define COLOR_AImport (SFT_parser_nodes[339])
+#define ATTR_parser_nodes___AImport____n_visibility(recv) ATTR(recv, (SFT_parser_nodes[340] + 0))
+#define ATTR_parser_nodes___AImport____n_kwimport(recv) ATTR(recv, (SFT_parser_nodes[340] + 1))
+#define ATTR_parser_nodes___AImport____n_id(recv) ATTR(recv, (SFT_parser_nodes[340] + 2))
+#define INIT_TABLE_POS_AImport (SFT_parser_nodes[341] + 0)
+#define CALL_parser_nodes___AImport___n_visibility(recv) ((parser_nodes___AImport___n_visibility_t)CALL((recv), (SFT_parser_nodes[341] + 1)))
+#define CALL_parser_nodes___AImport___n_visibility__eq(recv) ((parser_nodes___AImport___n_visibility__eq_t)CALL((recv), (SFT_parser_nodes[341] + 2)))
+#define CALL_parser_nodes___AImport___n_kwimport(recv) ((parser_nodes___AImport___n_kwimport_t)CALL((recv), (SFT_parser_nodes[341] + 3)))
+#define CALL_parser_nodes___AImport___n_kwimport__eq(recv) ((parser_nodes___AImport___n_kwimport__eq_t)CALL((recv), (SFT_parser_nodes[341] + 4)))
+#define CALL_parser_nodes___AImport___n_id(recv) ((parser_nodes___AImport___n_id_t)CALL((recv), (SFT_parser_nodes[341] + 5)))
+#define CALL_parser_nodes___AImport___n_id__eq(recv) ((parser_nodes___AImport___n_id__eq_t)CALL((recv), (SFT_parser_nodes[341] + 6)))
+#define ID_ANoImport (SFT_parser_nodes[342])
+#define COLOR_ANoImport (SFT_parser_nodes[343])
+#define ATTR_parser_nodes___ANoImport____n_visibility(recv) ATTR(recv, (SFT_parser_nodes[344] + 0))
+#define ATTR_parser_nodes___ANoImport____n_kwimport(recv) ATTR(recv, (SFT_parser_nodes[344] + 1))
+#define ATTR_parser_nodes___ANoImport____n_kwend(recv) ATTR(recv, (SFT_parser_nodes[344] + 2))
+#define INIT_TABLE_POS_ANoImport (SFT_parser_nodes[345] + 0)
+#define CALL_parser_nodes___ANoImport___n_visibility(recv) ((parser_nodes___ANoImport___n_visibility_t)CALL((recv), (SFT_parser_nodes[345] + 1)))
+#define CALL_parser_nodes___ANoImport___n_visibility__eq(recv) ((parser_nodes___ANoImport___n_visibility__eq_t)CALL((recv), (SFT_parser_nodes[345] + 2)))
+#define CALL_parser_nodes___ANoImport___n_kwimport(recv) ((parser_nodes___ANoImport___n_kwimport_t)CALL((recv), (SFT_parser_nodes[345] + 3)))
+#define CALL_parser_nodes___ANoImport___n_kwimport__eq(recv) ((parser_nodes___ANoImport___n_kwimport__eq_t)CALL((recv), (SFT_parser_nodes[345] + 4)))
+#define CALL_parser_nodes___ANoImport___n_kwend(recv) ((parser_nodes___ANoImport___n_kwend_t)CALL((recv), (SFT_parser_nodes[345] + 5)))
+#define CALL_parser_nodes___ANoImport___n_kwend__eq(recv) ((parser_nodes___ANoImport___n_kwend__eq_t)CALL((recv), (SFT_parser_nodes[345] + 6)))
+#define ID_APublicVisibility (SFT_parser_nodes[346])
+#define COLOR_APublicVisibility (SFT_parser_nodes[347])
+#define INIT_TABLE_POS_APublicVisibility (SFT_parser_nodes[348] + 0)
+#define ID_APrivateVisibility (SFT_parser_nodes[349])
+#define COLOR_APrivateVisibility (SFT_parser_nodes[350])
+#define ATTR_parser_nodes___APrivateVisibility____n_kwprivate(recv) ATTR(recv, (SFT_parser_nodes[351] + 0))
+#define INIT_TABLE_POS_APrivateVisibility (SFT_parser_nodes[352] + 0)
+#define CALL_parser_nodes___APrivateVisibility___n_kwprivate(recv) ((parser_nodes___APrivateVisibility___n_kwprivate_t)CALL((recv), (SFT_parser_nodes[352] + 1)))
+#define CALL_parser_nodes___APrivateVisibility___n_kwprivate__eq(recv) ((parser_nodes___APrivateVisibility___n_kwprivate__eq_t)CALL((recv), (SFT_parser_nodes[352] + 2)))
+#define ID_AProtectedVisibility (SFT_parser_nodes[353])
+#define COLOR_AProtectedVisibility (SFT_parser_nodes[354])
+#define ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(recv) ATTR(recv, (SFT_parser_nodes[355] + 0))
+#define INIT_TABLE_POS_AProtectedVisibility (SFT_parser_nodes[356] + 0)
+#define CALL_parser_nodes___AProtectedVisibility___n_kwprotected(recv) ((parser_nodes___AProtectedVisibility___n_kwprotected_t)CALL((recv), (SFT_parser_nodes[356] + 1)))
+#define CALL_parser_nodes___AProtectedVisibility___n_kwprotected__eq(recv) ((parser_nodes___AProtectedVisibility___n_kwprotected__eq_t)CALL((recv), (SFT_parser_nodes[356] + 2)))
+#define ID_AIntrudeVisibility (SFT_parser_nodes[357])
+#define COLOR_AIntrudeVisibility (SFT_parser_nodes[358])
+#define ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(recv) ATTR(recv, (SFT_parser_nodes[359] + 0))
+#define INIT_TABLE_POS_AIntrudeVisibility (SFT_parser_nodes[360] + 0)
+#define CALL_parser_nodes___AIntrudeVisibility___n_kwintrude(recv) ((parser_nodes___AIntrudeVisibility___n_kwintrude_t)CALL((recv), (SFT_parser_nodes[360] + 1)))
+#define CALL_parser_nodes___AIntrudeVisibility___n_kwintrude__eq(recv) ((parser_nodes___AIntrudeVisibility___n_kwintrude__eq_t)CALL((recv), (SFT_parser_nodes[360] + 2)))
+#define ID_AClassdef (SFT_parser_nodes[361])
+#define COLOR_AClassdef (SFT_parser_nodes[362])
+#define ATTR_parser_nodes___AClassdef____n_doc(recv) ATTR(recv, (SFT_parser_nodes[363] + 0))
+#define ATTR_parser_nodes___AClassdef____n_kwredef(recv) ATTR(recv, (SFT_parser_nodes[363] + 1))
+#define ATTR_parser_nodes___AClassdef____n_visibility(recv) ATTR(recv, (SFT_parser_nodes[363] + 2))
+#define ATTR_parser_nodes___AClassdef____n_classkind(recv) ATTR(recv, (SFT_parser_nodes[363] + 3))
+#define ATTR_parser_nodes___AClassdef____n_id(recv) ATTR(recv, (SFT_parser_nodes[363] + 4))
+#define ATTR_parser_nodes___AClassdef____n_formaldefs(recv) ATTR(recv, (SFT_parser_nodes[363] + 5))
+#define ATTR_parser_nodes___AClassdef____n_superclasses(recv) ATTR(recv, (SFT_parser_nodes[363] + 6))
+#define ATTR_parser_nodes___AClassdef____n_propdefs(recv) ATTR(recv, (SFT_parser_nodes[363] + 7))
+#define INIT_TABLE_POS_AClassdef (SFT_parser_nodes[364] + 0)
+#define CALL_parser_nodes___AClassdef___n_doc(recv) ((parser_nodes___AClassdef___n_doc_t)CALL((recv), (SFT_parser_nodes[364] + 1)))
+#define CALL_parser_nodes___AClassdef___n_doc__eq(recv) ((parser_nodes___AClassdef___n_doc__eq_t)CALL((recv), (SFT_parser_nodes[364] + 2)))
+#define CALL_parser_nodes___AClassdef___n_kwredef(recv) ((parser_nodes___AClassdef___n_kwredef_t)CALL((recv), (SFT_parser_nodes[364] + 3)))
+#define CALL_parser_nodes___AClassdef___n_kwredef__eq(recv) ((parser_nodes___AClassdef___n_kwredef__eq_t)CALL((recv), (SFT_parser_nodes[364] + 4)))
+#define CALL_parser_nodes___AClassdef___n_visibility(recv) ((parser_nodes___AClassdef___n_visibility_t)CALL((recv), (SFT_parser_nodes[364] + 5)))
+#define CALL_parser_nodes___AClassdef___n_visibility__eq(recv) ((parser_nodes___AClassdef___n_visibility__eq_t)CALL((recv), (SFT_parser_nodes[364] + 6)))
+#define CALL_parser_nodes___AClassdef___n_classkind(recv) ((parser_nodes___AClassdef___n_classkind_t)CALL((recv), (SFT_parser_nodes[364] + 7)))
+#define CALL_parser_nodes___AClassdef___n_classkind__eq(recv) ((parser_nodes___AClassdef___n_classkind__eq_t)CALL((recv), (SFT_parser_nodes[364] + 8)))
+#define CALL_parser_nodes___AClassdef___n_id(recv) ((parser_nodes___AClassdef___n_id_t)CALL((recv), (SFT_parser_nodes[364] + 9)))
+#define CALL_parser_nodes___AClassdef___n_id__eq(recv) ((parser_nodes___AClassdef___n_id__eq_t)CALL((recv), (SFT_parser_nodes[364] + 10)))
+#define CALL_parser_nodes___AClassdef___n_formaldefs(recv) ((parser_nodes___AClassdef___n_formaldefs_t)CALL((recv), (SFT_parser_nodes[364] + 11)))
+#define CALL_parser_nodes___AClassdef___n_formaldefs__eq(recv) ((parser_nodes___AClassdef___n_formaldefs__eq_t)CALL((recv), (SFT_parser_nodes[364] + 12)))
+#define CALL_parser_nodes___AClassdef___n_superclasses(recv) ((parser_nodes___AClassdef___n_superclasses_t)CALL((recv), (SFT_parser_nodes[364] + 13)))
+#define CALL_parser_nodes___AClassdef___n_superclasses__eq(recv) ((parser_nodes___AClassdef___n_superclasses__eq_t)CALL((recv), (SFT_parser_nodes[364] + 14)))
+#define CALL_parser_nodes___AClassdef___n_propdefs(recv) ((parser_nodes___AClassdef___n_propdefs_t)CALL((recv), (SFT_parser_nodes[364] + 15)))
+#define CALL_parser_nodes___AClassdef___n_propdefs__eq(recv) ((parser_nodes___AClassdef___n_propdefs__eq_t)CALL((recv), (SFT_parser_nodes[364] + 16)))
+#define ID_ATopClassdef (SFT_parser_nodes[365])
+#define COLOR_ATopClassdef (SFT_parser_nodes[366])
+#define ATTR_parser_nodes___ATopClassdef____n_propdefs(recv) ATTR(recv, (SFT_parser_nodes[367] + 0))
+#define INIT_TABLE_POS_ATopClassdef (SFT_parser_nodes[368] + 0)
+#define CALL_parser_nodes___ATopClassdef___n_propdefs(recv) ((parser_nodes___ATopClassdef___n_propdefs_t)CALL((recv), (SFT_parser_nodes[368] + 1)))
+#define CALL_parser_nodes___ATopClassdef___n_propdefs__eq(recv) ((parser_nodes___ATopClassdef___n_propdefs__eq_t)CALL((recv), (SFT_parser_nodes[368] + 2)))
+#define ID_AMainClassdef (SFT_parser_nodes[369])
+#define COLOR_AMainClassdef (SFT_parser_nodes[370])
+#define ATTR_parser_nodes___AMainClassdef____n_propdefs(recv) ATTR(recv, (SFT_parser_nodes[371] + 0))
+#define INIT_TABLE_POS_AMainClassdef (SFT_parser_nodes[372] + 0)
+#define CALL_parser_nodes___AMainClassdef___n_propdefs(recv) ((parser_nodes___AMainClassdef___n_propdefs_t)CALL((recv), (SFT_parser_nodes[372] + 1)))
+#define CALL_parser_nodes___AMainClassdef___n_propdefs__eq(recv) ((parser_nodes___AMainClassdef___n_propdefs__eq_t)CALL((recv), (SFT_parser_nodes[372] + 2)))
+#define ID_AConcreteClasskind (SFT_parser_nodes[373])
+#define COLOR_AConcreteClasskind (SFT_parser_nodes[374])
+#define ATTR_parser_nodes___AConcreteClasskind____n_kwclass(recv) ATTR(recv, (SFT_parser_nodes[375] + 0))
+#define INIT_TABLE_POS_AConcreteClasskind (SFT_parser_nodes[376] + 0)
+#define CALL_parser_nodes___AConcreteClasskind___n_kwclass(recv) ((parser_nodes___AConcreteClasskind___n_kwclass_t)CALL((recv), (SFT_parser_nodes[376] + 1)))
+#define CALL_parser_nodes___AConcreteClasskind___n_kwclass__eq(recv) ((parser_nodes___AConcreteClasskind___n_kwclass__eq_t)CALL((recv), (SFT_parser_nodes[376] + 2)))
+#define ID_AAbstractClasskind (SFT_parser_nodes[377])
+#define COLOR_AAbstractClasskind (SFT_parser_nodes[378])
+#define ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(recv) ATTR(recv, (SFT_parser_nodes[379] + 0))
+#define ATTR_parser_nodes___AAbstractClasskind____n_kwclass(recv) ATTR(recv, (SFT_parser_nodes[379] + 1))
+#define INIT_TABLE_POS_AAbstractClasskind (SFT_parser_nodes[380] + 0)
+#define CALL_parser_nodes___AAbstractClasskind___n_kwabstract(recv) ((parser_nodes___AAbstractClasskind___n_kwabstract_t)CALL((recv), (SFT_parser_nodes[380] + 1)))
+#define CALL_parser_nodes___AAbstractClasskind___n_kwabstract__eq(recv) ((parser_nodes___AAbstractClasskind___n_kwabstract__eq_t)CALL((recv), (SFT_parser_nodes[380] + 2)))
+#define CALL_parser_nodes___AAbstractClasskind___n_kwclass(recv) ((parser_nodes___AAbstractClasskind___n_kwclass_t)CALL((recv), (SFT_parser_nodes[380] + 3)))
+#define CALL_parser_nodes___AAbstractClasskind___n_kwclass__eq(recv) ((parser_nodes___AAbstractClasskind___n_kwclass__eq_t)CALL((recv), (SFT_parser_nodes[380] + 4)))
+#define ID_AInterfaceClasskind (SFT_parser_nodes[381])
+#define COLOR_AInterfaceClasskind (SFT_parser_nodes[382])
+#define ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(recv) ATTR(recv, (SFT_parser_nodes[383] + 0))
+#define INIT_TABLE_POS_AInterfaceClasskind (SFT_parser_nodes[384] + 0)
+#define CALL_parser_nodes___AInterfaceClasskind___n_kwinterface(recv) ((parser_nodes___AInterfaceClasskind___n_kwinterface_t)CALL((recv), (SFT_parser_nodes[384] + 1)))
+#define CALL_parser_nodes___AInterfaceClasskind___n_kwinterface__eq(recv) ((parser_nodes___AInterfaceClasskind___n_kwinterface__eq_t)CALL((recv), (SFT_parser_nodes[384] + 2)))
+#define ID_AUniversalClasskind (SFT_parser_nodes[385])
+#define COLOR_AUniversalClasskind (SFT_parser_nodes[386])
+#define ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(recv) ATTR(recv, (SFT_parser_nodes[387] + 0))
+#define INIT_TABLE_POS_AUniversalClasskind (SFT_parser_nodes[388] + 0)
+#define CALL_parser_nodes___AUniversalClasskind___n_kwuniversal(recv) ((parser_nodes___AUniversalClasskind___n_kwuniversal_t)CALL((recv), (SFT_parser_nodes[388] + 1)))
+#define CALL_parser_nodes___AUniversalClasskind___n_kwuniversal__eq(recv) ((parser_nodes___AUniversalClasskind___n_kwuniversal__eq_t)CALL((recv), (SFT_parser_nodes[388] + 2)))
+#define ID_AFormaldef (SFT_parser_nodes[389])
+#define COLOR_AFormaldef (SFT_parser_nodes[390])
+#define ATTR_parser_nodes___AFormaldef____n_id(recv) ATTR(recv, (SFT_parser_nodes[391] + 0))
+#define ATTR_parser_nodes___AFormaldef____n_type(recv) ATTR(recv, (SFT_parser_nodes[391] + 1))
+#define INIT_TABLE_POS_AFormaldef (SFT_parser_nodes[392] + 0)
+#define CALL_parser_nodes___AFormaldef___n_id(recv) ((parser_nodes___AFormaldef___n_id_t)CALL((recv), (SFT_parser_nodes[392] + 1)))
+#define CALL_parser_nodes___AFormaldef___n_id__eq(recv) ((parser_nodes___AFormaldef___n_id__eq_t)CALL((recv), (SFT_parser_nodes[392] + 2)))
+#define CALL_parser_nodes___AFormaldef___n_type(recv) ((parser_nodes___AFormaldef___n_type_t)CALL((recv), (SFT_parser_nodes[392] + 3)))
+#define CALL_parser_nodes___AFormaldef___n_type__eq(recv) ((parser_nodes___AFormaldef___n_type__eq_t)CALL((recv), (SFT_parser_nodes[392] + 4)))
+#define ID_ASuperclass (SFT_parser_nodes[393])
+#define COLOR_ASuperclass (SFT_parser_nodes[394])
+#define ATTR_parser_nodes___ASuperclass____n_kwspecial(recv) ATTR(recv, (SFT_parser_nodes[395] + 0))
+#define ATTR_parser_nodes___ASuperclass____n_type(recv) ATTR(recv, (SFT_parser_nodes[395] + 1))
+#define INIT_TABLE_POS_ASuperclass (SFT_parser_nodes[396] + 0)
+#define CALL_parser_nodes___ASuperclass___n_kwspecial(recv) ((parser_nodes___ASuperclass___n_kwspecial_t)CALL((recv), (SFT_parser_nodes[396] + 1)))
+#define CALL_parser_nodes___ASuperclass___n_kwspecial__eq(recv) ((parser_nodes___ASuperclass___n_kwspecial__eq_t)CALL((recv), (SFT_parser_nodes[396] + 2)))
+#define CALL_parser_nodes___ASuperclass___n_type(recv) ((parser_nodes___ASuperclass___n_type_t)CALL((recv), (SFT_parser_nodes[396] + 3)))
+#define CALL_parser_nodes___ASuperclass___n_type__eq(recv) ((parser_nodes___ASuperclass___n_type__eq_t)CALL((recv), (SFT_parser_nodes[396] + 4)))
+#define ID_AAttrPropdef (SFT_parser_nodes[397])
+#define COLOR_AAttrPropdef (SFT_parser_nodes[398])
+#define ATTR_parser_nodes___AAttrPropdef____n_kwredef(recv) ATTR(recv, (SFT_parser_nodes[399] + 0))
+#define ATTR_parser_nodes___AAttrPropdef____n_visibility(recv) ATTR(recv, (SFT_parser_nodes[399] + 1))
+#define ATTR_parser_nodes___AAttrPropdef____n_kwattr(recv) ATTR(recv, (SFT_parser_nodes[399] + 2))
+#define ATTR_parser_nodes___AAttrPropdef____n_id(recv) ATTR(recv, (SFT_parser_nodes[399] + 3))
+#define ATTR_parser_nodes___AAttrPropdef____n_type(recv) ATTR(recv, (SFT_parser_nodes[399] + 4))
+#define ATTR_parser_nodes___AAttrPropdef____n_readable(recv) ATTR(recv, (SFT_parser_nodes[399] + 5))
+#define ATTR_parser_nodes___AAttrPropdef____n_writable(recv) ATTR(recv, (SFT_parser_nodes[399] + 6))
+#define ATTR_parser_nodes___AAttrPropdef____n_expr(recv) ATTR(recv, (SFT_parser_nodes[399] + 7))
+#define INIT_TABLE_POS_AAttrPropdef (SFT_parser_nodes[400] + 0)
+#define CALL_parser_nodes___AAttrPropdef___n_kwredef(recv) ((parser_nodes___AAttrPropdef___n_kwredef_t)CALL((recv), (SFT_parser_nodes[400] + 1)))
+#define CALL_parser_nodes___AAttrPropdef___n_kwredef__eq(recv) ((parser_nodes___AAttrPropdef___n_kwredef__eq_t)CALL((recv), (SFT_parser_nodes[400] + 2)))
+#define CALL_parser_nodes___AAttrPropdef___n_visibility(recv) ((parser_nodes___AAttrPropdef___n_visibility_t)CALL((recv), (SFT_parser_nodes[400] + 3)))
+#define CALL_parser_nodes___AAttrPropdef___n_visibility__eq(recv) ((parser_nodes___AAttrPropdef___n_visibility__eq_t)CALL((recv), (SFT_parser_nodes[400] + 4)))
+#define CALL_parser_nodes___AAttrPropdef___n_kwattr(recv) ((parser_nodes___AAttrPropdef___n_kwattr_t)CALL((recv), (SFT_parser_nodes[400] + 5)))
+#define CALL_parser_nodes___AAttrPropdef___n_kwattr__eq(recv) ((parser_nodes___AAttrPropdef___n_kwattr__eq_t)CALL((recv), (SFT_parser_nodes[400] + 6)))
+#define CALL_parser_nodes___AAttrPropdef___n_id(recv) ((parser_nodes___AAttrPropdef___n_id_t)CALL((recv), (SFT_parser_nodes[400] + 7)))
+#define CALL_parser_nodes___AAttrPropdef___n_id__eq(recv) ((parser_nodes___AAttrPropdef___n_id__eq_t)CALL((recv), (SFT_parser_nodes[400] + 8)))
+#define CALL_parser_nodes___AAttrPropdef___n_type(recv) ((parser_nodes___AAttrPropdef___n_type_t)CALL((recv), (SFT_parser_nodes[400] + 9)))
+#define CALL_parser_nodes___AAttrPropdef___n_type__eq(recv) ((parser_nodes___AAttrPropdef___n_type__eq_t)CALL((recv), (SFT_parser_nodes[400] + 10)))
+#define CALL_parser_nodes___AAttrPropdef___n_readable(recv) ((parser_nodes___AAttrPropdef___n_readable_t)CALL((recv), (SFT_parser_nodes[400] + 11)))
+#define CALL_parser_nodes___AAttrPropdef___n_readable__eq(recv) ((parser_nodes___AAttrPropdef___n_readable__eq_t)CALL((recv), (SFT_parser_nodes[400] + 12)))
+#define CALL_parser_nodes___AAttrPropdef___n_writable(recv) ((parser_nodes___AAttrPropdef___n_writable_t)CALL((recv), (SFT_parser_nodes[400] + 13)))
+#define CALL_parser_nodes___AAttrPropdef___n_writable__eq(recv) ((parser_nodes___AAttrPropdef___n_writable__eq_t)CALL((recv), (SFT_parser_nodes[400] + 14)))
+#define CALL_parser_nodes___AAttrPropdef___n_expr(recv) ((parser_nodes___AAttrPropdef___n_expr_t)CALL((recv), (SFT_parser_nodes[400] + 15)))
+#define CALL_parser_nodes___AAttrPropdef___n_expr__eq(recv) ((parser_nodes___AAttrPropdef___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[400] + 16)))
+#define ID_AMethPropdef (SFT_parser_nodes[401])
+#define COLOR_AMethPropdef (SFT_parser_nodes[402])
+#define ATTR_parser_nodes___AMethPropdef____n_kwredef(recv) ATTR(recv, (SFT_parser_nodes[403] + 0))
+#define ATTR_parser_nodes___AMethPropdef____n_visibility(recv) ATTR(recv, (SFT_parser_nodes[403] + 1))
+#define ATTR_parser_nodes___AMethPropdef____n_methid(recv) ATTR(recv, (SFT_parser_nodes[403] + 2))
+#define ATTR_parser_nodes___AMethPropdef____n_signature(recv) ATTR(recv, (SFT_parser_nodes[403] + 3))
+#define INIT_TABLE_POS_AMethPropdef (SFT_parser_nodes[404] + 0)
+#define CALL_parser_nodes___AMethPropdef___n_kwredef(recv) ((parser_nodes___AMethPropdef___n_kwredef_t)CALL((recv), (SFT_parser_nodes[404] + 1)))
+#define CALL_parser_nodes___AMethPropdef___n_kwredef__eq(recv) ((parser_nodes___AMethPropdef___n_kwredef__eq_t)CALL((recv), (SFT_parser_nodes[404] + 2)))
+#define CALL_parser_nodes___AMethPropdef___n_visibility(recv) ((parser_nodes___AMethPropdef___n_visibility_t)CALL((recv), (SFT_parser_nodes[404] + 3)))
+#define CALL_parser_nodes___AMethPropdef___n_visibility__eq(recv) ((parser_nodes___AMethPropdef___n_visibility__eq_t)CALL((recv), (SFT_parser_nodes[404] + 4)))
+#define CALL_parser_nodes___AMethPropdef___n_methid(recv) ((parser_nodes___AMethPropdef___n_methid_t)CALL((recv), (SFT_parser_nodes[404] + 5)))
+#define CALL_parser_nodes___AMethPropdef___n_methid__eq(recv) ((parser_nodes___AMethPropdef___n_methid__eq_t)CALL((recv), (SFT_parser_nodes[404] + 6)))
+#define CALL_parser_nodes___AMethPropdef___n_signature(recv) ((parser_nodes___AMethPropdef___n_signature_t)CALL((recv), (SFT_parser_nodes[404] + 7)))
+#define CALL_parser_nodes___AMethPropdef___n_signature__eq(recv) ((parser_nodes___AMethPropdef___n_signature__eq_t)CALL((recv), (SFT_parser_nodes[404] + 8)))
+#define ID_ADeferredMethPropdef (SFT_parser_nodes[405])
+#define COLOR_ADeferredMethPropdef (SFT_parser_nodes[406])
+#define ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser_nodes[407] + 0))
+#define INIT_TABLE_POS_ADeferredMethPropdef (SFT_parser_nodes[408] + 0)
+#define CALL_parser_nodes___ADeferredMethPropdef___n_kwmeth(recv) ((parser_nodes___ADeferredMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser_nodes[408] + 1)))
+#define CALL_parser_nodes___ADeferredMethPropdef___n_kwmeth__eq(recv) ((parser_nodes___ADeferredMethPropdef___n_kwmeth__eq_t)CALL((recv), (SFT_parser_nodes[408] + 2)))
+#define ID_AInternMethPropdef (SFT_parser_nodes[409])
+#define COLOR_AInternMethPropdef (SFT_parser_nodes[410])
+#define ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser_nodes[411] + 0))
+#define INIT_TABLE_POS_AInternMethPropdef (SFT_parser_nodes[412] + 0)
+#define CALL_parser_nodes___AInternMethPropdef___n_kwmeth(recv) ((parser_nodes___AInternMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser_nodes[412] + 1)))
+#define CALL_parser_nodes___AInternMethPropdef___n_kwmeth__eq(recv) ((parser_nodes___AInternMethPropdef___n_kwmeth__eq_t)CALL((recv), (SFT_parser_nodes[412] + 2)))
+#define ID_AExternMethPropdef (SFT_parser_nodes[413])
+#define COLOR_AExternMethPropdef (SFT_parser_nodes[414])
+#define ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser_nodes[415] + 0))
+#define ATTR_parser_nodes___AExternMethPropdef____n_extern(recv) ATTR(recv, (SFT_parser_nodes[415] + 1))
+#define INIT_TABLE_POS_AExternMethPropdef (SFT_parser_nodes[416] + 0)
+#define CALL_parser_nodes___AExternMethPropdef___n_kwmeth(recv) ((parser_nodes___AExternMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser_nodes[416] + 1)))
+#define CALL_parser_nodes___AExternMethPropdef___n_kwmeth__eq(recv) ((parser_nodes___AExternMethPropdef___n_kwmeth__eq_t)CALL((recv), (SFT_parser_nodes[416] + 2)))
+#define CALL_parser_nodes___AExternMethPropdef___n_extern(recv) ((parser_nodes___AExternMethPropdef___n_extern_t)CALL((recv), (SFT_parser_nodes[416] + 3)))
+#define CALL_parser_nodes___AExternMethPropdef___n_extern__eq(recv) ((parser_nodes___AExternMethPropdef___n_extern__eq_t)CALL((recv), (SFT_parser_nodes[416] + 4)))
+#define ID_AConcreteMethPropdef (SFT_parser_nodes[417])
+#define COLOR_AConcreteMethPropdef (SFT_parser_nodes[418])
+#define ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(recv) ATTR(recv, (SFT_parser_nodes[419] + 0))
+#define ATTR_parser_nodes___AConcreteMethPropdef____n_block(recv) ATTR(recv, (SFT_parser_nodes[419] + 1))
+#define INIT_TABLE_POS_AConcreteMethPropdef (SFT_parser_nodes[420] + 0)
+#define CALL_parser_nodes___AConcreteMethPropdef___n_kwmeth(recv) ((parser_nodes___AConcreteMethPropdef___n_kwmeth_t)CALL((recv), (SFT_parser_nodes[420] + 1)))
+#define CALL_parser_nodes___AConcreteMethPropdef___n_kwmeth__eq(recv) ((parser_nodes___AConcreteMethPropdef___n_kwmeth__eq_t)CALL((recv), (SFT_parser_nodes[420] + 2)))
+#define CALL_parser_nodes___AConcreteMethPropdef___n_block(recv) ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL((recv), (SFT_parser_nodes[420] + 3)))
+#define CALL_parser_nodes___AConcreteMethPropdef___n_block__eq(recv) ((parser_nodes___AConcreteMethPropdef___n_block__eq_t)CALL((recv), (SFT_parser_nodes[420] + 4)))
+#define ID_AConcreteInitPropdef (SFT_parser_nodes[421])
+#define COLOR_AConcreteInitPropdef (SFT_parser_nodes[422])
+#define ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(recv) ATTR(recv, (SFT_parser_nodes[423] + 0))
+#define INIT_TABLE_POS_AConcreteInitPropdef (SFT_parser_nodes[424] + 0)
+#define CALL_parser_nodes___AConcreteInitPropdef___n_kwinit(recv) ((parser_nodes___AConcreteInitPropdef___n_kwinit_t)CALL((recv), (SFT_parser_nodes[424] + 1)))
+#define CALL_parser_nodes___AConcreteInitPropdef___n_kwinit__eq(recv) ((parser_nodes___AConcreteInitPropdef___n_kwinit__eq_t)CALL((recv), (SFT_parser_nodes[424] + 2)))
+#define ID_AMainMethPropdef (SFT_parser_nodes[425])
+#define COLOR_AMainMethPropdef (SFT_parser_nodes[426])
+#define INIT_TABLE_POS_AMainMethPropdef (SFT_parser_nodes[427] + 0)
+#define ID_ATypePropdef (SFT_parser_nodes[428])
+#define COLOR_ATypePropdef (SFT_parser_nodes[429])
+#define ATTR_parser_nodes___ATypePropdef____n_kwredef(recv) ATTR(recv, (SFT_parser_nodes[430] + 0))
+#define ATTR_parser_nodes___ATypePropdef____n_visibility(recv) ATTR(recv, (SFT_parser_nodes[430] + 1))
+#define ATTR_parser_nodes___ATypePropdef____n_kwtype(recv) ATTR(recv, (SFT_parser_nodes[430] + 2))
+#define ATTR_parser_nodes___ATypePropdef____n_id(recv) ATTR(recv, (SFT_parser_nodes[430] + 3))
+#define ATTR_parser_nodes___ATypePropdef____n_type(recv) ATTR(recv, (SFT_parser_nodes[430] + 4))
+#define INIT_TABLE_POS_ATypePropdef (SFT_parser_nodes[431] + 0)
+#define CALL_parser_nodes___ATypePropdef___n_kwredef(recv) ((parser_nodes___ATypePropdef___n_kwredef_t)CALL((recv), (SFT_parser_nodes[431] + 1)))
+#define CALL_parser_nodes___ATypePropdef___n_kwredef__eq(recv) ((parser_nodes___ATypePropdef___n_kwredef__eq_t)CALL((recv), (SFT_parser_nodes[431] + 2)))
+#define CALL_parser_nodes___ATypePropdef___n_visibility(recv) ((parser_nodes___ATypePropdef___n_visibility_t)CALL((recv), (SFT_parser_nodes[431] + 3)))
+#define CALL_parser_nodes___ATypePropdef___n_visibility__eq(recv) ((parser_nodes___ATypePropdef___n_visibility__eq_t)CALL((recv), (SFT_parser_nodes[431] + 4)))
+#define CALL_parser_nodes___ATypePropdef___n_kwtype(recv) ((parser_nodes___ATypePropdef___n_kwtype_t)CALL((recv), (SFT_parser_nodes[431] + 5)))
+#define CALL_parser_nodes___ATypePropdef___n_kwtype__eq(recv) ((parser_nodes___ATypePropdef___n_kwtype__eq_t)CALL((recv), (SFT_parser_nodes[431] + 6)))
+#define CALL_parser_nodes___ATypePropdef___n_id(recv) ((parser_nodes___ATypePropdef___n_id_t)CALL((recv), (SFT_parser_nodes[431] + 7)))
+#define CALL_parser_nodes___ATypePropdef___n_id__eq(recv) ((parser_nodes___ATypePropdef___n_id__eq_t)CALL((recv), (SFT_parser_nodes[431] + 8)))
+#define CALL_parser_nodes___ATypePropdef___n_type(recv) ((parser_nodes___ATypePropdef___n_type_t)CALL((recv), (SFT_parser_nodes[431] + 9)))
+#define CALL_parser_nodes___ATypePropdef___n_type__eq(recv) ((parser_nodes___ATypePropdef___n_type__eq_t)CALL((recv), (SFT_parser_nodes[431] + 10)))
+#define ID_AReadAble (SFT_parser_nodes[432])
+#define COLOR_AReadAble (SFT_parser_nodes[433])
+#define ATTR_parser_nodes___AReadAble____n_kwreadable(recv) ATTR(recv, (SFT_parser_nodes[434] + 0))
+#define INIT_TABLE_POS_AReadAble (SFT_parser_nodes[435] + 0)
+#define CALL_parser_nodes___AReadAble___n_kwreadable(recv) ((parser_nodes___AReadAble___n_kwreadable_t)CALL((recv), (SFT_parser_nodes[435] + 1)))
+#define CALL_parser_nodes___AReadAble___n_kwreadable__eq(recv) ((parser_nodes___AReadAble___n_kwreadable__eq_t)CALL((recv), (SFT_parser_nodes[435] + 2)))
+#define ID_AWriteAble (SFT_parser_nodes[436])
+#define COLOR_AWriteAble (SFT_parser_nodes[437])
+#define ATTR_parser_nodes___AWriteAble____n_kwwritable(recv) ATTR(recv, (SFT_parser_nodes[438] + 0))
+#define INIT_TABLE_POS_AWriteAble (SFT_parser_nodes[439] + 0)
+#define CALL_parser_nodes___AWriteAble___n_kwwritable(recv) ((parser_nodes___AWriteAble___n_kwwritable_t)CALL((recv), (SFT_parser_nodes[439] + 1)))
+#define CALL_parser_nodes___AWriteAble___n_kwwritable__eq(recv) ((parser_nodes___AWriteAble___n_kwwritable__eq_t)CALL((recv), (SFT_parser_nodes[439] + 2)))
+#define ID_AIdMethid (SFT_parser_nodes[440])
+#define COLOR_AIdMethid (SFT_parser_nodes[441])
+#define ATTR_parser_nodes___AIdMethid____n_id(recv) ATTR(recv, (SFT_parser_nodes[442] + 0))
+#define INIT_TABLE_POS_AIdMethid (SFT_parser_nodes[443] + 0)
+#define CALL_parser_nodes___AIdMethid___n_id(recv) ((parser_nodes___AIdMethid___n_id_t)CALL((recv), (SFT_parser_nodes[443] + 1)))
+#define CALL_parser_nodes___AIdMethid___n_id__eq(recv) ((parser_nodes___AIdMethid___n_id__eq_t)CALL((recv), (SFT_parser_nodes[443] + 2)))
+#define ID_APlusMethid (SFT_parser_nodes[444])
+#define COLOR_APlusMethid (SFT_parser_nodes[445])
+#define ATTR_parser_nodes___APlusMethid____n_plus(recv) ATTR(recv, (SFT_parser_nodes[446] + 0))
+#define INIT_TABLE_POS_APlusMethid (SFT_parser_nodes[447] + 0)
+#define CALL_parser_nodes___APlusMethid___n_plus(recv) ((parser_nodes___APlusMethid___n_plus_t)CALL((recv), (SFT_parser_nodes[447] + 1)))
+#define CALL_parser_nodes___APlusMethid___n_plus__eq(recv) ((parser_nodes___APlusMethid___n_plus__eq_t)CALL((recv), (SFT_parser_nodes[447] + 2)))
+#define ID_AMinusMethid (SFT_parser_nodes[448])
+#define COLOR_AMinusMethid (SFT_parser_nodes[449])
+#define ATTR_parser_nodes___AMinusMethid____n_minus(recv) ATTR(recv, (SFT_parser_nodes[450] + 0))
+#define INIT_TABLE_POS_AMinusMethid (SFT_parser_nodes[451] + 0)
+#define CALL_parser_nodes___AMinusMethid___n_minus(recv) ((parser_nodes___AMinusMethid___n_minus_t)CALL((recv), (SFT_parser_nodes[451] + 1)))
+#define CALL_parser_nodes___AMinusMethid___n_minus__eq(recv) ((parser_nodes___AMinusMethid___n_minus__eq_t)CALL((recv), (SFT_parser_nodes[451] + 2)))
+#define ID_AStarMethid (SFT_parser_nodes[452])
+#define COLOR_AStarMethid (SFT_parser_nodes[453])
+#define ATTR_parser_nodes___AStarMethid____n_star(recv) ATTR(recv, (SFT_parser_nodes[454] + 0))
+#define INIT_TABLE_POS_AStarMethid (SFT_parser_nodes[455] + 0)
+#define CALL_parser_nodes___AStarMethid___n_star(recv) ((parser_nodes___AStarMethid___n_star_t)CALL((recv), (SFT_parser_nodes[455] + 1)))
+#define CALL_parser_nodes___AStarMethid___n_star__eq(recv) ((parser_nodes___AStarMethid___n_star__eq_t)CALL((recv), (SFT_parser_nodes[455] + 2)))
+#define ID_ASlashMethid (SFT_parser_nodes[456])
+#define COLOR_ASlashMethid (SFT_parser_nodes[457])
+#define ATTR_parser_nodes___ASlashMethid____n_slash(recv) ATTR(recv, (SFT_parser_nodes[458] + 0))
+#define INIT_TABLE_POS_ASlashMethid (SFT_parser_nodes[459] + 0)
+#define CALL_parser_nodes___ASlashMethid___n_slash(recv) ((parser_nodes___ASlashMethid___n_slash_t)CALL((recv), (SFT_parser_nodes[459] + 1)))
+#define CALL_parser_nodes___ASlashMethid___n_slash__eq(recv) ((parser_nodes___ASlashMethid___n_slash__eq_t)CALL((recv), (SFT_parser_nodes[459] + 2)))
+#define ID_APercentMethid (SFT_parser_nodes[460])
+#define COLOR_APercentMethid (SFT_parser_nodes[461])
+#define ATTR_parser_nodes___APercentMethid____n_percent(recv) ATTR(recv, (SFT_parser_nodes[462] + 0))
+#define INIT_TABLE_POS_APercentMethid (SFT_parser_nodes[463] + 0)
+#define CALL_parser_nodes___APercentMethid___n_percent(recv) ((parser_nodes___APercentMethid___n_percent_t)CALL((recv), (SFT_parser_nodes[463] + 1)))
+#define CALL_parser_nodes___APercentMethid___n_percent__eq(recv) ((parser_nodes___APercentMethid___n_percent__eq_t)CALL((recv), (SFT_parser_nodes[463] + 2)))
+#define ID_AEqMethid (SFT_parser_nodes[464])
+#define COLOR_AEqMethid (SFT_parser_nodes[465])
+#define ATTR_parser_nodes___AEqMethid____n_eq(recv) ATTR(recv, (SFT_parser_nodes[466] + 0))
+#define INIT_TABLE_POS_AEqMethid (SFT_parser_nodes[467] + 0)
+#define CALL_parser_nodes___AEqMethid___n_eq(recv) ((parser_nodes___AEqMethid___n_eq_t)CALL((recv), (SFT_parser_nodes[467] + 1)))
+#define CALL_parser_nodes___AEqMethid___n_eq__eq(recv) ((parser_nodes___AEqMethid___n_eq__eq_t)CALL((recv), (SFT_parser_nodes[467] + 2)))
+#define ID_ANeMethid (SFT_parser_nodes[468])
+#define COLOR_ANeMethid (SFT_parser_nodes[469])
+#define ATTR_parser_nodes___ANeMethid____n_ne(recv) ATTR(recv, (SFT_parser_nodes[470] + 0))
+#define INIT_TABLE_POS_ANeMethid (SFT_parser_nodes[471] + 0)
+#define CALL_parser_nodes___ANeMethid___n_ne(recv) ((parser_nodes___ANeMethid___n_ne_t)CALL((recv), (SFT_parser_nodes[471] + 1)))
+#define CALL_parser_nodes___ANeMethid___n_ne__eq(recv) ((parser_nodes___ANeMethid___n_ne__eq_t)CALL((recv), (SFT_parser_nodes[471] + 2)))
+#define ID_ALeMethid (SFT_parser_nodes[472])
+#define COLOR_ALeMethid (SFT_parser_nodes[473])
+#define ATTR_parser_nodes___ALeMethid____n_le(recv) ATTR(recv, (SFT_parser_nodes[474] + 0))
+#define INIT_TABLE_POS_ALeMethid (SFT_parser_nodes[475] + 0)
+#define CALL_parser_nodes___ALeMethid___n_le(recv) ((parser_nodes___ALeMethid___n_le_t)CALL((recv), (SFT_parser_nodes[475] + 1)))
+#define CALL_parser_nodes___ALeMethid___n_le__eq(recv) ((parser_nodes___ALeMethid___n_le__eq_t)CALL((recv), (SFT_parser_nodes[475] + 2)))
+#define ID_AGeMethid (SFT_parser_nodes[476])
+#define COLOR_AGeMethid (SFT_parser_nodes[477])
+#define ATTR_parser_nodes___AGeMethid____n_ge(recv) ATTR(recv, (SFT_parser_nodes[478] + 0))
+#define INIT_TABLE_POS_AGeMethid (SFT_parser_nodes[479] + 0)
+#define CALL_parser_nodes___AGeMethid___n_ge(recv) ((parser_nodes___AGeMethid___n_ge_t)CALL((recv), (SFT_parser_nodes[479] + 1)))
+#define CALL_parser_nodes___AGeMethid___n_ge__eq(recv) ((parser_nodes___AGeMethid___n_ge__eq_t)CALL((recv), (SFT_parser_nodes[479] + 2)))
+#define ID_ALtMethid (SFT_parser_nodes[480])
+#define COLOR_ALtMethid (SFT_parser_nodes[481])
+#define ATTR_parser_nodes___ALtMethid____n_lt(recv) ATTR(recv, (SFT_parser_nodes[482] + 0))
+#define INIT_TABLE_POS_ALtMethid (SFT_parser_nodes[483] + 0)
+#define CALL_parser_nodes___ALtMethid___n_lt(recv) ((parser_nodes___ALtMethid___n_lt_t)CALL((recv), (SFT_parser_nodes[483] + 1)))
+#define CALL_parser_nodes___ALtMethid___n_lt__eq(recv) ((parser_nodes___ALtMethid___n_lt__eq_t)CALL((recv), (SFT_parser_nodes[483] + 2)))
+#define ID_AGtMethid (SFT_parser_nodes[484])
+#define COLOR_AGtMethid (SFT_parser_nodes[485])
+#define ATTR_parser_nodes___AGtMethid____n_gt(recv) ATTR(recv, (SFT_parser_nodes[486] + 0))
+#define INIT_TABLE_POS_AGtMethid (SFT_parser_nodes[487] + 0)
+#define CALL_parser_nodes___AGtMethid___n_gt(recv) ((parser_nodes___AGtMethid___n_gt_t)CALL((recv), (SFT_parser_nodes[487] + 1)))
+#define CALL_parser_nodes___AGtMethid___n_gt__eq(recv) ((parser_nodes___AGtMethid___n_gt__eq_t)CALL((recv), (SFT_parser_nodes[487] + 2)))
+#define ID_ABraMethid (SFT_parser_nodes[488])
+#define COLOR_ABraMethid (SFT_parser_nodes[489])
+#define ATTR_parser_nodes___ABraMethid____n_obra(recv) ATTR(recv, (SFT_parser_nodes[490] + 0))
+#define ATTR_parser_nodes___ABraMethid____n_cbra(recv) ATTR(recv, (SFT_parser_nodes[490] + 1))
+#define INIT_TABLE_POS_ABraMethid (SFT_parser_nodes[491] + 0)
+#define CALL_parser_nodes___ABraMethid___n_obra(recv) ((parser_nodes___ABraMethid___n_obra_t)CALL((recv), (SFT_parser_nodes[491] + 1)))
+#define CALL_parser_nodes___ABraMethid___n_obra__eq(recv) ((parser_nodes___ABraMethid___n_obra__eq_t)CALL((recv), (SFT_parser_nodes[491] + 2)))
+#define CALL_parser_nodes___ABraMethid___n_cbra(recv) ((parser_nodes___ABraMethid___n_cbra_t)CALL((recv), (SFT_parser_nodes[491] + 3)))
+#define CALL_parser_nodes___ABraMethid___n_cbra__eq(recv) ((parser_nodes___ABraMethid___n_cbra__eq_t)CALL((recv), (SFT_parser_nodes[491] + 4)))
+#define ID_AStarshipMethid (SFT_parser_nodes[492])
+#define COLOR_AStarshipMethid (SFT_parser_nodes[493])
+#define ATTR_parser_nodes___AStarshipMethid____n_starship(recv) ATTR(recv, (SFT_parser_nodes[494] + 0))
+#define INIT_TABLE_POS_AStarshipMethid (SFT_parser_nodes[495] + 0)
+#define CALL_parser_nodes___AStarshipMethid___n_starship(recv) ((parser_nodes___AStarshipMethid___n_starship_t)CALL((recv), (SFT_parser_nodes[495] + 1)))
+#define CALL_parser_nodes___AStarshipMethid___n_starship__eq(recv) ((parser_nodes___AStarshipMethid___n_starship__eq_t)CALL((recv), (SFT_parser_nodes[495] + 2)))
+#define ID_AAssignMethid (SFT_parser_nodes[496])
+#define COLOR_AAssignMethid (SFT_parser_nodes[497])
+#define ATTR_parser_nodes___AAssignMethid____n_id(recv) ATTR(recv, (SFT_parser_nodes[498] + 0))
+#define ATTR_parser_nodes___AAssignMethid____n_assign(recv) ATTR(recv, (SFT_parser_nodes[498] + 1))
+#define INIT_TABLE_POS_AAssignMethid (SFT_parser_nodes[499] + 0)
+#define CALL_parser_nodes___AAssignMethid___n_id(recv) ((parser_nodes___AAssignMethid___n_id_t)CALL((recv), (SFT_parser_nodes[499] + 1)))
+#define CALL_parser_nodes___AAssignMethid___n_id__eq(recv) ((parser_nodes___AAssignMethid___n_id__eq_t)CALL((recv), (SFT_parser_nodes[499] + 2)))
+#define CALL_parser_nodes___AAssignMethid___n_assign(recv) ((parser_nodes___AAssignMethid___n_assign_t)CALL((recv), (SFT_parser_nodes[499] + 3)))
+#define CALL_parser_nodes___AAssignMethid___n_assign__eq(recv) ((parser_nodes___AAssignMethid___n_assign__eq_t)CALL((recv), (SFT_parser_nodes[499] + 4)))
+#define ID_ABraassignMethid (SFT_parser_nodes[500])
+#define COLOR_ABraassignMethid (SFT_parser_nodes[501])
+#define ATTR_parser_nodes___ABraassignMethid____n_obra(recv) ATTR(recv, (SFT_parser_nodes[502] + 0))
+#define ATTR_parser_nodes___ABraassignMethid____n_cbra(recv) ATTR(recv, (SFT_parser_nodes[502] + 1))
+#define ATTR_parser_nodes___ABraassignMethid____n_assign(recv) ATTR(recv, (SFT_parser_nodes[502] + 2))
+#define INIT_TABLE_POS_ABraassignMethid (SFT_parser_nodes[503] + 0)
+#define CALL_parser_nodes___ABraassignMethid___n_obra(recv) ((parser_nodes___ABraassignMethid___n_obra_t)CALL((recv), (SFT_parser_nodes[503] + 1)))
+#define CALL_parser_nodes___ABraassignMethid___n_obra__eq(recv) ((parser_nodes___ABraassignMethid___n_obra__eq_t)CALL((recv), (SFT_parser_nodes[503] + 2)))
+#define CALL_parser_nodes___ABraassignMethid___n_cbra(recv) ((parser_nodes___ABraassignMethid___n_cbra_t)CALL((recv), (SFT_parser_nodes[503] + 3)))
+#define CALL_parser_nodes___ABraassignMethid___n_cbra__eq(recv) ((parser_nodes___ABraassignMethid___n_cbra__eq_t)CALL((recv), (SFT_parser_nodes[503] + 4)))
+#define CALL_parser_nodes___ABraassignMethid___n_assign(recv) ((parser_nodes___ABraassignMethid___n_assign_t)CALL((recv), (SFT_parser_nodes[503] + 5)))
+#define CALL_parser_nodes___ABraassignMethid___n_assign__eq(recv) ((parser_nodes___ABraassignMethid___n_assign__eq_t)CALL((recv), (SFT_parser_nodes[503] + 6)))
+#define ID_ASignature (SFT_parser_nodes[504])
+#define COLOR_ASignature (SFT_parser_nodes[505])
+#define ATTR_parser_nodes___ASignature____n_params(recv) ATTR(recv, (SFT_parser_nodes[506] + 0))
+#define ATTR_parser_nodes___ASignature____n_type(recv) ATTR(recv, (SFT_parser_nodes[506] + 1))
+#define ATTR_parser_nodes___ASignature____n_closure_decls(recv) ATTR(recv, (SFT_parser_nodes[506] + 2))
+#define INIT_TABLE_POS_ASignature (SFT_parser_nodes[507] + 0)
+#define CALL_parser_nodes___ASignature___n_params(recv) ((parser_nodes___ASignature___n_params_t)CALL((recv), (SFT_parser_nodes[507] + 1)))
+#define CALL_parser_nodes___ASignature___n_params__eq(recv) ((parser_nodes___ASignature___n_params__eq_t)CALL((recv), (SFT_parser_nodes[507] + 2)))
+#define CALL_parser_nodes___ASignature___n_type(recv) ((parser_nodes___ASignature___n_type_t)CALL((recv), (SFT_parser_nodes[507] + 3)))
+#define CALL_parser_nodes___ASignature___n_type__eq(recv) ((parser_nodes___ASignature___n_type__eq_t)CALL((recv), (SFT_parser_nodes[507] + 4)))
+#define CALL_parser_nodes___ASignature___n_closure_decls(recv) ((parser_nodes___ASignature___n_closure_decls_t)CALL((recv), (SFT_parser_nodes[507] + 5)))
+#define CALL_parser_nodes___ASignature___n_closure_decls__eq(recv) ((parser_nodes___ASignature___n_closure_decls__eq_t)CALL((recv), (SFT_parser_nodes[507] + 6)))
+#define ID_AParam (SFT_parser_nodes[508])
+#define COLOR_AParam (SFT_parser_nodes[509])
+#define ATTR_parser_nodes___AParam____n_dotdotdot(recv) ATTR(recv, (SFT_parser_nodes[510] + 0))
+#define INIT_TABLE_POS_AParam (SFT_parser_nodes[511] + 0)
+#define CALL_parser_nodes___AParam___n_dotdotdot(recv) ((parser_nodes___AParam___n_dotdotdot_t)CALL((recv), (SFT_parser_nodes[511] + 1)))
+#define CALL_parser_nodes___AParam___n_dotdotdot__eq(recv) ((parser_nodes___AParam___n_dotdotdot__eq_t)CALL((recv), (SFT_parser_nodes[511] + 2)))
+#define ID_AClosureDecl (SFT_parser_nodes[512])
+#define COLOR_AClosureDecl (SFT_parser_nodes[513])
+#define ATTR_parser_nodes___AClosureDecl____n_kwwith(recv) ATTR(recv, (SFT_parser_nodes[514] + 0))
+#define ATTR_parser_nodes___AClosureDecl____n_kwbreak(recv) ATTR(recv, (SFT_parser_nodes[514] + 1))
+#define ATTR_parser_nodes___AClosureDecl____n_id(recv) ATTR(recv, (SFT_parser_nodes[514] + 2))
+#define ATTR_parser_nodes___AClosureDecl____n_signature(recv) ATTR(recv, (SFT_parser_nodes[514] + 3))
+#define ATTR_parser_nodes___AClosureDecl____n_expr(recv) ATTR(recv, (SFT_parser_nodes[514] + 4))
+#define INIT_TABLE_POS_AClosureDecl (SFT_parser_nodes[515] + 0)
+#define CALL_parser_nodes___AClosureDecl___n_kwwith(recv) ((parser_nodes___AClosureDecl___n_kwwith_t)CALL((recv), (SFT_parser_nodes[515] + 1)))
+#define CALL_parser_nodes___AClosureDecl___n_kwwith__eq(recv) ((parser_nodes___AClosureDecl___n_kwwith__eq_t)CALL((recv), (SFT_parser_nodes[515] + 2)))
+#define CALL_parser_nodes___AClosureDecl___n_kwbreak(recv) ((parser_nodes___AClosureDecl___n_kwbreak_t)CALL((recv), (SFT_parser_nodes[515] + 3)))
+#define CALL_parser_nodes___AClosureDecl___n_kwbreak__eq(recv) ((parser_nodes___AClosureDecl___n_kwbreak__eq_t)CALL((recv), (SFT_parser_nodes[515] + 4)))
+#define CALL_parser_nodes___AClosureDecl___n_id(recv) ((parser_nodes___AClosureDecl___n_id_t)CALL((recv), (SFT_parser_nodes[515] + 5)))
+#define CALL_parser_nodes___AClosureDecl___n_id__eq(recv) ((parser_nodes___AClosureDecl___n_id__eq_t)CALL((recv), (SFT_parser_nodes[515] + 6)))
+#define CALL_parser_nodes___AClosureDecl___n_signature(recv) ((parser_nodes___AClosureDecl___n_signature_t)CALL((recv), (SFT_parser_nodes[515] + 7)))
+#define CALL_parser_nodes___AClosureDecl___n_signature__eq(recv) ((parser_nodes___AClosureDecl___n_signature__eq_t)CALL((recv), (SFT_parser_nodes[515] + 8)))
+#define CALL_parser_nodes___AClosureDecl___n_expr(recv) ((parser_nodes___AClosureDecl___n_expr_t)CALL((recv), (SFT_parser_nodes[515] + 9)))
+#define CALL_parser_nodes___AClosureDecl___n_expr__eq(recv) ((parser_nodes___AClosureDecl___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[515] + 10)))
+#define ID_AType (SFT_parser_nodes[516])
+#define COLOR_AType (SFT_parser_nodes[517])
+#define ATTR_parser_nodes___AType____n_id(recv) ATTR(recv, (SFT_parser_nodes[518] + 0))
+#define ATTR_parser_nodes___AType____n_types(recv) ATTR(recv, (SFT_parser_nodes[518] + 1))
+#define INIT_TABLE_POS_AType (SFT_parser_nodes[519] + 0)
+#define CALL_parser_nodes___AType___n_id(recv) ((parser_nodes___AType___n_id_t)CALL((recv), (SFT_parser_nodes[519] + 1)))
+#define CALL_parser_nodes___AType___n_id__eq(recv) ((parser_nodes___AType___n_id__eq_t)CALL((recv), (SFT_parser_nodes[519] + 2)))
+#define CALL_parser_nodes___AType___n_types(recv) ((parser_nodes___AType___n_types_t)CALL((recv), (SFT_parser_nodes[519] + 3)))
+#define CALL_parser_nodes___AType___n_types__eq(recv) ((parser_nodes___AType___n_types__eq_t)CALL((recv), (SFT_parser_nodes[519] + 4)))
+#define ID_ABlockExpr (SFT_parser_nodes[520])
+#define COLOR_ABlockExpr (SFT_parser_nodes[521])
+#define ATTR_parser_nodes___ABlockExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[522] + 0))
+#define INIT_TABLE_POS_ABlockExpr (SFT_parser_nodes[523] + 0)
+#define CALL_parser_nodes___ABlockExpr___n_expr(recv) ((parser_nodes___ABlockExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[523] + 1)))
+#define CALL_parser_nodes___ABlockExpr___n_expr__eq(recv) ((parser_nodes___ABlockExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[523] + 2)))
+#define ID_AVardeclExpr (SFT_parser_nodes[524])
+#define COLOR_AVardeclExpr (SFT_parser_nodes[525])
+#define ATTR_parser_nodes___AVardeclExpr____n_kwvar(recv) ATTR(recv, (SFT_parser_nodes[526] + 0))
+#define ATTR_parser_nodes___AVardeclExpr____n_id(recv) ATTR(recv, (SFT_parser_nodes[526] + 1))
+#define ATTR_parser_nodes___AVardeclExpr____n_type(recv) ATTR(recv, (SFT_parser_nodes[526] + 2))
+#define ATTR_parser_nodes___AVardeclExpr____n_assign(recv) ATTR(recv, (SFT_parser_nodes[526] + 3))
+#define ATTR_parser_nodes___AVardeclExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[526] + 4))
+#define INIT_TABLE_POS_AVardeclExpr (SFT_parser_nodes[527] + 0)
+#define CALL_parser_nodes___AVardeclExpr___n_kwvar(recv) ((parser_nodes___AVardeclExpr___n_kwvar_t)CALL((recv), (SFT_parser_nodes[527] + 1)))
+#define CALL_parser_nodes___AVardeclExpr___n_kwvar__eq(recv) ((parser_nodes___AVardeclExpr___n_kwvar__eq_t)CALL((recv), (SFT_parser_nodes[527] + 2)))
+#define CALL_parser_nodes___AVardeclExpr___n_id(recv) ((parser_nodes___AVardeclExpr___n_id_t)CALL((recv), (SFT_parser_nodes[527] + 3)))
+#define CALL_parser_nodes___AVardeclExpr___n_id__eq(recv) ((parser_nodes___AVardeclExpr___n_id__eq_t)CALL((recv), (SFT_parser_nodes[527] + 4)))
+#define CALL_parser_nodes___AVardeclExpr___n_type(recv) ((parser_nodes___AVardeclExpr___n_type_t)CALL((recv), (SFT_parser_nodes[527] + 5)))
+#define CALL_parser_nodes___AVardeclExpr___n_type__eq(recv) ((parser_nodes___AVardeclExpr___n_type__eq_t)CALL((recv), (SFT_parser_nodes[527] + 6)))
+#define CALL_parser_nodes___AVardeclExpr___n_assign(recv) ((parser_nodes___AVardeclExpr___n_assign_t)CALL((recv), (SFT_parser_nodes[527] + 7)))
+#define CALL_parser_nodes___AVardeclExpr___n_assign__eq(recv) ((parser_nodes___AVardeclExpr___n_assign__eq_t)CALL((recv), (SFT_parser_nodes[527] + 8)))
+#define CALL_parser_nodes___AVardeclExpr___n_expr(recv) ((parser_nodes___AVardeclExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[527] + 9)))
+#define CALL_parser_nodes___AVardeclExpr___n_expr__eq(recv) ((parser_nodes___AVardeclExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[527] + 10)))
+#define ID_AReturnExpr (SFT_parser_nodes[528])
+#define COLOR_AReturnExpr (SFT_parser_nodes[529])
+#define ATTR_parser_nodes___AReturnExpr____n_kwreturn(recv) ATTR(recv, (SFT_parser_nodes[530] + 0))
+#define ATTR_parser_nodes___AReturnExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[530] + 1))
+#define INIT_TABLE_POS_AReturnExpr (SFT_parser_nodes[531] + 0)
+#define CALL_parser_nodes___AReturnExpr___n_kwreturn(recv) ((parser_nodes___AReturnExpr___n_kwreturn_t)CALL((recv), (SFT_parser_nodes[531] + 1)))
+#define CALL_parser_nodes___AReturnExpr___n_kwreturn__eq(recv) ((parser_nodes___AReturnExpr___n_kwreturn__eq_t)CALL((recv), (SFT_parser_nodes[531] + 2)))
+#define CALL_parser_nodes___AReturnExpr___n_expr(recv) ((parser_nodes___AReturnExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[531] + 3)))
+#define CALL_parser_nodes___AReturnExpr___n_expr__eq(recv) ((parser_nodes___AReturnExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[531] + 4)))
+#define ID_ABreakExpr (SFT_parser_nodes[532])
+#define COLOR_ABreakExpr (SFT_parser_nodes[533])
+#define ATTR_parser_nodes___ABreakExpr____n_kwbreak(recv) ATTR(recv, (SFT_parser_nodes[534] + 0))
+#define ATTR_parser_nodes___ABreakExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[534] + 1))
+#define INIT_TABLE_POS_ABreakExpr (SFT_parser_nodes[535] + 0)
+#define CALL_parser_nodes___ABreakExpr___n_kwbreak(recv) ((parser_nodes___ABreakExpr___n_kwbreak_t)CALL((recv), (SFT_parser_nodes[535] + 1)))
+#define CALL_parser_nodes___ABreakExpr___n_kwbreak__eq(recv) ((parser_nodes___ABreakExpr___n_kwbreak__eq_t)CALL((recv), (SFT_parser_nodes[535] + 2)))
+#define CALL_parser_nodes___ABreakExpr___n_expr(recv) ((parser_nodes___ABreakExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[535] + 3)))
+#define CALL_parser_nodes___ABreakExpr___n_expr__eq(recv) ((parser_nodes___ABreakExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[535] + 4)))
+#define ID_AAbortExpr (SFT_parser_nodes[536])
+#define COLOR_AAbortExpr (SFT_parser_nodes[537])
+#define ATTR_parser_nodes___AAbortExpr____n_kwabort(recv) ATTR(recv, (SFT_parser_nodes[538] + 0))
+#define INIT_TABLE_POS_AAbortExpr (SFT_parser_nodes[539] + 0)
+#define CALL_parser_nodes___AAbortExpr___n_kwabort(recv) ((parser_nodes___AAbortExpr___n_kwabort_t)CALL((recv), (SFT_parser_nodes[539] + 1)))
+#define CALL_parser_nodes___AAbortExpr___n_kwabort__eq(recv) ((parser_nodes___AAbortExpr___n_kwabort__eq_t)CALL((recv), (SFT_parser_nodes[539] + 2)))
+#define ID_AContinueExpr (SFT_parser_nodes[540])
+#define COLOR_AContinueExpr (SFT_parser_nodes[541])
+#define ATTR_parser_nodes___AContinueExpr____n_kwcontinue(recv) ATTR(recv, (SFT_parser_nodes[542] + 0))
+#define ATTR_parser_nodes___AContinueExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[542] + 1))
+#define INIT_TABLE_POS_AContinueExpr (SFT_parser_nodes[543] + 0)
+#define CALL_parser_nodes___AContinueExpr___n_kwcontinue(recv) ((parser_nodes___AContinueExpr___n_kwcontinue_t)CALL((recv), (SFT_parser_nodes[543] + 1)))
+#define CALL_parser_nodes___AContinueExpr___n_kwcontinue__eq(recv) ((parser_nodes___AContinueExpr___n_kwcontinue__eq_t)CALL((recv), (SFT_parser_nodes[543] + 2)))
+#define CALL_parser_nodes___AContinueExpr___n_expr(recv) ((parser_nodes___AContinueExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[543] + 3)))
+#define CALL_parser_nodes___AContinueExpr___n_expr__eq(recv) ((parser_nodes___AContinueExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[543] + 4)))
+#define ID_ADoExpr (SFT_parser_nodes[544])
+#define COLOR_ADoExpr (SFT_parser_nodes[545])
+#define ATTR_parser_nodes___ADoExpr____n_kwdo(recv) ATTR(recv, (SFT_parser_nodes[546] + 0))
+#define ATTR_parser_nodes___ADoExpr____n_block(recv) ATTR(recv, (SFT_parser_nodes[546] + 1))
+#define INIT_TABLE_POS_ADoExpr (SFT_parser_nodes[547] + 0)
+#define CALL_parser_nodes___ADoExpr___n_kwdo(recv) ((parser_nodes___ADoExpr___n_kwdo_t)CALL((recv), (SFT_parser_nodes[547] + 1)))
+#define CALL_parser_nodes___ADoExpr___n_kwdo__eq(recv) ((parser_nodes___ADoExpr___n_kwdo__eq_t)CALL((recv), (SFT_parser_nodes[547] + 2)))
+#define CALL_parser_nodes___ADoExpr___n_block(recv) ((parser_nodes___ADoExpr___n_block_t)CALL((recv), (SFT_parser_nodes[547] + 3)))
+#define CALL_parser_nodes___ADoExpr___n_block__eq(recv) ((parser_nodes___ADoExpr___n_block__eq_t)CALL((recv), (SFT_parser_nodes[547] + 4)))
+#define ID_AIfExpr (SFT_parser_nodes[548])
+#define COLOR_AIfExpr (SFT_parser_nodes[549])
+#define ATTR_parser_nodes___AIfExpr____n_kwif(recv) ATTR(recv, (SFT_parser_nodes[550] + 0))
+#define ATTR_parser_nodes___AIfExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[550] + 1))
+#define ATTR_parser_nodes___AIfExpr____n_then(recv) ATTR(recv, (SFT_parser_nodes[550] + 2))
+#define ATTR_parser_nodes___AIfExpr____n_else(recv) ATTR(recv, (SFT_parser_nodes[550] + 3))
+#define INIT_TABLE_POS_AIfExpr (SFT_parser_nodes[551] + 0)
+#define CALL_parser_nodes___AIfExpr___n_kwif(recv) ((parser_nodes___AIfExpr___n_kwif_t)CALL((recv), (SFT_parser_nodes[551] + 1)))
+#define CALL_parser_nodes___AIfExpr___n_kwif__eq(recv) ((parser_nodes___AIfExpr___n_kwif__eq_t)CALL((recv), (SFT_parser_nodes[551] + 2)))
+#define CALL_parser_nodes___AIfExpr___n_expr(recv) ((parser_nodes___AIfExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[551] + 3)))
+#define CALL_parser_nodes___AIfExpr___n_expr__eq(recv) ((parser_nodes___AIfExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[551] + 4)))
+#define CALL_parser_nodes___AIfExpr___n_then(recv) ((parser_nodes___AIfExpr___n_then_t)CALL((recv), (SFT_parser_nodes[551] + 5)))
+#define CALL_parser_nodes___AIfExpr___n_then__eq(recv) ((parser_nodes___AIfExpr___n_then__eq_t)CALL((recv), (SFT_parser_nodes[551] + 6)))
+#define CALL_parser_nodes___AIfExpr___n_else(recv) ((parser_nodes___AIfExpr___n_else_t)CALL((recv), (SFT_parser_nodes[551] + 7)))
+#define CALL_parser_nodes___AIfExpr___n_else__eq(recv) ((parser_nodes___AIfExpr___n_else__eq_t)CALL((recv), (SFT_parser_nodes[551] + 8)))
+#define ID_AIfexprExpr (SFT_parser_nodes[552])
+#define COLOR_AIfexprExpr (SFT_parser_nodes[553])
+#define ATTR_parser_nodes___AIfexprExpr____n_kwif(recv) ATTR(recv, (SFT_parser_nodes[554] + 0))
+#define ATTR_parser_nodes___AIfexprExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[554] + 1))
+#define ATTR_parser_nodes___AIfexprExpr____n_kwthen(recv) ATTR(recv, (SFT_parser_nodes[554] + 2))
+#define ATTR_parser_nodes___AIfexprExpr____n_then(recv) ATTR(recv, (SFT_parser_nodes[554] + 3))
+#define ATTR_parser_nodes___AIfexprExpr____n_kwelse(recv) ATTR(recv, (SFT_parser_nodes[554] + 4))
+#define ATTR_parser_nodes___AIfexprExpr____n_else(recv) ATTR(recv, (SFT_parser_nodes[554] + 5))
+#define INIT_TABLE_POS_AIfexprExpr (SFT_parser_nodes[555] + 0)
+#define CALL_parser_nodes___AIfexprExpr___n_kwif(recv) ((parser_nodes___AIfexprExpr___n_kwif_t)CALL((recv), (SFT_parser_nodes[555] + 1)))
+#define CALL_parser_nodes___AIfexprExpr___n_kwif__eq(recv) ((parser_nodes___AIfexprExpr___n_kwif__eq_t)CALL((recv), (SFT_parser_nodes[555] + 2)))
+#define CALL_parser_nodes___AIfexprExpr___n_expr(recv) ((parser_nodes___AIfexprExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[555] + 3)))
+#define CALL_parser_nodes___AIfexprExpr___n_expr__eq(recv) ((parser_nodes___AIfexprExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[555] + 4)))
+#define CALL_parser_nodes___AIfexprExpr___n_kwthen(recv) ((parser_nodes___AIfexprExpr___n_kwthen_t)CALL((recv), (SFT_parser_nodes[555] + 5)))
+#define CALL_parser_nodes___AIfexprExpr___n_kwthen__eq(recv) ((parser_nodes___AIfexprExpr___n_kwthen__eq_t)CALL((recv), (SFT_parser_nodes[555] + 6)))
+#define CALL_parser_nodes___AIfexprExpr___n_then(recv) ((parser_nodes___AIfexprExpr___n_then_t)CALL((recv), (SFT_parser_nodes[555] + 7)))
+#define CALL_parser_nodes___AIfexprExpr___n_then__eq(recv) ((parser_nodes___AIfexprExpr___n_then__eq_t)CALL((recv), (SFT_parser_nodes[555] + 8)))
+#define CALL_parser_nodes___AIfexprExpr___n_kwelse(recv) ((parser_nodes___AIfexprExpr___n_kwelse_t)CALL((recv), (SFT_parser_nodes[555] + 9)))
+#define CALL_parser_nodes___AIfexprExpr___n_kwelse__eq(recv) ((parser_nodes___AIfexprExpr___n_kwelse__eq_t)CALL((recv), (SFT_parser_nodes[555] + 10)))
+#define CALL_parser_nodes___AIfexprExpr___n_else(recv) ((parser_nodes___AIfexprExpr___n_else_t)CALL((recv), (SFT_parser_nodes[555] + 11)))
+#define CALL_parser_nodes___AIfexprExpr___n_else__eq(recv) ((parser_nodes___AIfexprExpr___n_else__eq_t)CALL((recv), (SFT_parser_nodes[555] + 12)))
+#define ID_AWhileExpr (SFT_parser_nodes[556])
+#define COLOR_AWhileExpr (SFT_parser_nodes[557])
+#define ATTR_parser_nodes___AWhileExpr____n_kwwhile(recv) ATTR(recv, (SFT_parser_nodes[558] + 0))
+#define ATTR_parser_nodes___AWhileExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[558] + 1))
+#define ATTR_parser_nodes___AWhileExpr____n_kwdo(recv) ATTR(recv, (SFT_parser_nodes[558] + 2))
+#define ATTR_parser_nodes___AWhileExpr____n_block(recv) ATTR(recv, (SFT_parser_nodes[558] + 3))
+#define INIT_TABLE_POS_AWhileExpr (SFT_parser_nodes[559] + 0)
+#define CALL_parser_nodes___AWhileExpr___n_kwwhile(recv) ((parser_nodes___AWhileExpr___n_kwwhile_t)CALL((recv), (SFT_parser_nodes[559] + 1)))
+#define CALL_parser_nodes___AWhileExpr___n_kwwhile__eq(recv) ((parser_nodes___AWhileExpr___n_kwwhile__eq_t)CALL((recv), (SFT_parser_nodes[559] + 2)))
+#define CALL_parser_nodes___AWhileExpr___n_expr(recv) ((parser_nodes___AWhileExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[559] + 3)))
+#define CALL_parser_nodes___AWhileExpr___n_expr__eq(recv) ((parser_nodes___AWhileExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[559] + 4)))
+#define CALL_parser_nodes___AWhileExpr___n_kwdo(recv) ((parser_nodes___AWhileExpr___n_kwdo_t)CALL((recv), (SFT_parser_nodes[559] + 5)))
+#define CALL_parser_nodes___AWhileExpr___n_kwdo__eq(recv) ((parser_nodes___AWhileExpr___n_kwdo__eq_t)CALL((recv), (SFT_parser_nodes[559] + 6)))
+#define CALL_parser_nodes___AWhileExpr___n_block(recv) ((parser_nodes___AWhileExpr___n_block_t)CALL((recv), (SFT_parser_nodes[559] + 7)))
+#define CALL_parser_nodes___AWhileExpr___n_block__eq(recv) ((parser_nodes___AWhileExpr___n_block__eq_t)CALL((recv), (SFT_parser_nodes[559] + 8)))
+#define ID_AForExpr (SFT_parser_nodes[560])
+#define COLOR_AForExpr (SFT_parser_nodes[561])
+#define ATTR_parser_nodes___AForExpr____n_vardecl(recv) ATTR(recv, (SFT_parser_nodes[562] + 0))
+#define ATTR_parser_nodes___AForExpr____n_kwdo(recv) ATTR(recv, (SFT_parser_nodes[562] + 1))
+#define ATTR_parser_nodes___AForExpr____n_block(recv) ATTR(recv, (SFT_parser_nodes[562] + 2))
+#define INIT_TABLE_POS_AForExpr (SFT_parser_nodes[563] + 0)
+#define CALL_parser_nodes___AForExpr___n_vardecl(recv) ((parser_nodes___AForExpr___n_vardecl_t)CALL((recv), (SFT_parser_nodes[563] + 1)))
+#define CALL_parser_nodes___AForExpr___n_vardecl__eq(recv) ((parser_nodes___AForExpr___n_vardecl__eq_t)CALL((recv), (SFT_parser_nodes[563] + 2)))
+#define CALL_parser_nodes___AForExpr___n_kwdo(recv) ((parser_nodes___AForExpr___n_kwdo_t)CALL((recv), (SFT_parser_nodes[563] + 3)))
+#define CALL_parser_nodes___AForExpr___n_kwdo__eq(recv) ((parser_nodes___AForExpr___n_kwdo__eq_t)CALL((recv), (SFT_parser_nodes[563] + 4)))
+#define CALL_parser_nodes___AForExpr___n_block(recv) ((parser_nodes___AForExpr___n_block_t)CALL((recv), (SFT_parser_nodes[563] + 5)))
+#define CALL_parser_nodes___AForExpr___n_block__eq(recv) ((parser_nodes___AForExpr___n_block__eq_t)CALL((recv), (SFT_parser_nodes[563] + 6)))
+#define ID_AForVardeclExpr (SFT_parser_nodes[564])
+#define COLOR_AForVardeclExpr (SFT_parser_nodes[565])
+#define ATTR_parser_nodes___AForVardeclExpr____n_kwfor(recv) ATTR(recv, (SFT_parser_nodes[566] + 0))
+#define ATTR_parser_nodes___AForVardeclExpr____n_id(recv) ATTR(recv, (SFT_parser_nodes[566] + 1))
+#define ATTR_parser_nodes___AForVardeclExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[566] + 2))
+#define INIT_TABLE_POS_AForVardeclExpr (SFT_parser_nodes[567] + 0)
+#define CALL_parser_nodes___AForVardeclExpr___n_kwfor(recv) ((parser_nodes___AForVardeclExpr___n_kwfor_t)CALL((recv), (SFT_parser_nodes[567] + 1)))
+#define CALL_parser_nodes___AForVardeclExpr___n_kwfor__eq(recv) ((parser_nodes___AForVardeclExpr___n_kwfor__eq_t)CALL((recv), (SFT_parser_nodes[567] + 2)))
+#define CALL_parser_nodes___AForVardeclExpr___n_id(recv) ((parser_nodes___AForVardeclExpr___n_id_t)CALL((recv), (SFT_parser_nodes[567] + 3)))
+#define CALL_parser_nodes___AForVardeclExpr___n_id__eq(recv) ((parser_nodes___AForVardeclExpr___n_id__eq_t)CALL((recv), (SFT_parser_nodes[567] + 4)))
+#define CALL_parser_nodes___AForVardeclExpr___n_expr(recv) ((parser_nodes___AForVardeclExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[567] + 5)))
+#define CALL_parser_nodes___AForVardeclExpr___n_expr__eq(recv) ((parser_nodes___AForVardeclExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[567] + 6)))
+#define ID_AAssertExpr (SFT_parser_nodes[568])
+#define COLOR_AAssertExpr (SFT_parser_nodes[569])
+#define ATTR_parser_nodes___AAssertExpr____n_kwassert(recv) ATTR(recv, (SFT_parser_nodes[570] + 0))
+#define ATTR_parser_nodes___AAssertExpr____n_id(recv) ATTR(recv, (SFT_parser_nodes[570] + 1))
+#define ATTR_parser_nodes___AAssertExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[570] + 2))
+#define INIT_TABLE_POS_AAssertExpr (SFT_parser_nodes[571] + 0)
+#define CALL_parser_nodes___AAssertExpr___n_kwassert(recv) ((parser_nodes___AAssertExpr___n_kwassert_t)CALL((recv), (SFT_parser_nodes[571] + 1)))
+#define CALL_parser_nodes___AAssertExpr___n_kwassert__eq(recv) ((parser_nodes___AAssertExpr___n_kwassert__eq_t)CALL((recv), (SFT_parser_nodes[571] + 2)))
+#define CALL_parser_nodes___AAssertExpr___n_id(recv) ((parser_nodes___AAssertExpr___n_id_t)CALL((recv), (SFT_parser_nodes[571] + 3)))
+#define CALL_parser_nodes___AAssertExpr___n_id__eq(recv) ((parser_nodes___AAssertExpr___n_id__eq_t)CALL((recv), (SFT_parser_nodes[571] + 4)))
+#define CALL_parser_nodes___AAssertExpr___n_expr(recv) ((parser_nodes___AAssertExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[571] + 5)))
+#define CALL_parser_nodes___AAssertExpr___n_expr__eq(recv) ((parser_nodes___AAssertExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[571] + 6)))
+#define ID_AAssignFormExpr (SFT_parser_nodes[572])
+#define COLOR_AAssignFormExpr (SFT_parser_nodes[573])
+#define ATTR_parser_nodes___AAssignFormExpr____n_assign(recv) ATTR(recv, (SFT_parser_nodes[574] + 0))
+#define ATTR_parser_nodes___AAssignFormExpr____n_value(recv) ATTR(recv, (SFT_parser_nodes[574] + 1))
+#define INIT_TABLE_POS_AAssignFormExpr (SFT_parser_nodes[575] + 0)
+#define CALL_parser_nodes___AAssignFormExpr___n_assign(recv) ((parser_nodes___AAssignFormExpr___n_assign_t)CALL((recv), (SFT_parser_nodes[575] + 1)))
+#define CALL_parser_nodes___AAssignFormExpr___n_assign__eq(recv) ((parser_nodes___AAssignFormExpr___n_assign__eq_t)CALL((recv), (SFT_parser_nodes[575] + 2)))
+#define CALL_parser_nodes___AAssignFormExpr___n_value(recv) ((parser_nodes___AAssignFormExpr___n_value_t)CALL((recv), (SFT_parser_nodes[575] + 3)))
+#define CALL_parser_nodes___AAssignFormExpr___n_value__eq(recv) ((parser_nodes___AAssignFormExpr___n_value__eq_t)CALL((recv), (SFT_parser_nodes[575] + 4)))
+#define ID_AReassignFormExpr (SFT_parser_nodes[576])
+#define COLOR_AReassignFormExpr (SFT_parser_nodes[577])
+#define ATTR_parser_nodes___AReassignFormExpr____n_assign_op(recv) ATTR(recv, (SFT_parser_nodes[578] + 0))
+#define ATTR_parser_nodes___AReassignFormExpr____n_value(recv) ATTR(recv, (SFT_parser_nodes[578] + 1))
+#define INIT_TABLE_POS_AReassignFormExpr (SFT_parser_nodes[579] + 0)
+#define CALL_parser_nodes___AReassignFormExpr___n_assign_op(recv) ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL((recv), (SFT_parser_nodes[579] + 1)))
+#define CALL_parser_nodes___AReassignFormExpr___n_assign_op__eq(recv) ((parser_nodes___AReassignFormExpr___n_assign_op__eq_t)CALL((recv), (SFT_parser_nodes[579] + 2)))
+#define CALL_parser_nodes___AReassignFormExpr___n_value(recv) ((parser_nodes___AReassignFormExpr___n_value_t)CALL((recv), (SFT_parser_nodes[579] + 3)))
+#define CALL_parser_nodes___AReassignFormExpr___n_value__eq(recv) ((parser_nodes___AReassignFormExpr___n_value__eq_t)CALL((recv), (SFT_parser_nodes[579] + 4)))
+#define ID_AOnceExpr (SFT_parser_nodes[580])
+#define COLOR_AOnceExpr (SFT_parser_nodes[581])
+#define ATTR_parser_nodes___AOnceExpr____n_kwonce(recv) ATTR(recv, (SFT_parser_nodes[582] + 0))
+#define INIT_TABLE_POS_AOnceExpr (SFT_parser_nodes[583] + 0)
+#define CALL_parser_nodes___AOnceExpr___n_kwonce(recv) ((parser_nodes___AOnceExpr___n_kwonce_t)CALL((recv), (SFT_parser_nodes[583] + 1)))
+#define CALL_parser_nodes___AOnceExpr___n_kwonce__eq(recv) ((parser_nodes___AOnceExpr___n_kwonce__eq_t)CALL((recv), (SFT_parser_nodes[583] + 2)))
+#define ID_ASendExpr (SFT_parser_nodes[584])
+#define COLOR_ASendExpr (SFT_parser_nodes[585])
+#define ATTR_parser_nodes___ASendExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[586] + 0))
+#define ATTR_parser_nodes___ASendExpr____n_closure_defs(recv) ATTR(recv, (SFT_parser_nodes[586] + 1))
+#define INIT_TABLE_POS_ASendExpr (SFT_parser_nodes[587] + 0)
+#define CALL_parser_nodes___ASendExpr___n_expr(recv) ((parser_nodes___ASendExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[587] + 1)))
+#define CALL_parser_nodes___ASendExpr___n_expr__eq(recv) ((parser_nodes___ASendExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[587] + 2)))
+#define CALL_parser_nodes___ASendExpr___n_closure_defs(recv) ((parser_nodes___ASendExpr___n_closure_defs_t)CALL((recv), (SFT_parser_nodes[587] + 3)))
+#define CALL_parser_nodes___ASendExpr___n_closure_defs__eq(recv) ((parser_nodes___ASendExpr___n_closure_defs__eq_t)CALL((recv), (SFT_parser_nodes[587] + 4)))
+#define ID_ABinopExpr (SFT_parser_nodes[588])
+#define COLOR_ABinopExpr (SFT_parser_nodes[589])
+#define ATTR_parser_nodes___ABinopExpr____n_expr2(recv) ATTR(recv, (SFT_parser_nodes[590] + 0))
+#define INIT_TABLE_POS_ABinopExpr (SFT_parser_nodes[591] + 0)
+#define CALL_parser_nodes___ABinopExpr___n_expr2(recv) ((parser_nodes___ABinopExpr___n_expr2_t)CALL((recv), (SFT_parser_nodes[591] + 1)))
+#define CALL_parser_nodes___ABinopExpr___n_expr2__eq(recv) ((parser_nodes___ABinopExpr___n_expr2__eq_t)CALL((recv), (SFT_parser_nodes[591] + 2)))
+#define ID_ABoolExpr (SFT_parser_nodes[592])
+#define COLOR_ABoolExpr (SFT_parser_nodes[593])
+#define INIT_TABLE_POS_ABoolExpr (SFT_parser_nodes[594] + 0)
+#define ID_AOrExpr (SFT_parser_nodes[595])
+#define COLOR_AOrExpr (SFT_parser_nodes[596])
+#define ATTR_parser_nodes___AOrExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[597] + 0))
+#define ATTR_parser_nodes___AOrExpr____n_expr2(recv) ATTR(recv, (SFT_parser_nodes[597] + 1))
+#define INIT_TABLE_POS_AOrExpr (SFT_parser_nodes[598] + 0)
+#define CALL_parser_nodes___AOrExpr___n_expr(recv) ((parser_nodes___AOrExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[598] + 1)))
+#define CALL_parser_nodes___AOrExpr___n_expr__eq(recv) ((parser_nodes___AOrExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[598] + 2)))
+#define CALL_parser_nodes___AOrExpr___n_expr2(recv) ((parser_nodes___AOrExpr___n_expr2_t)CALL((recv), (SFT_parser_nodes[598] + 3)))
+#define CALL_parser_nodes___AOrExpr___n_expr2__eq(recv) ((parser_nodes___AOrExpr___n_expr2__eq_t)CALL((recv), (SFT_parser_nodes[598] + 4)))
+#define ID_AAndExpr (SFT_parser_nodes[599])
+#define COLOR_AAndExpr (SFT_parser_nodes[600])
+#define ATTR_parser_nodes___AAndExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[601] + 0))
+#define ATTR_parser_nodes___AAndExpr____n_expr2(recv) ATTR(recv, (SFT_parser_nodes[601] + 1))
+#define INIT_TABLE_POS_AAndExpr (SFT_parser_nodes[602] + 0)
+#define CALL_parser_nodes___AAndExpr___n_expr(recv) ((parser_nodes___AAndExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[602] + 1)))
+#define CALL_parser_nodes___AAndExpr___n_expr__eq(recv) ((parser_nodes___AAndExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[602] + 2)))
+#define CALL_parser_nodes___AAndExpr___n_expr2(recv) ((parser_nodes___AAndExpr___n_expr2_t)CALL((recv), (SFT_parser_nodes[602] + 3)))
+#define CALL_parser_nodes___AAndExpr___n_expr2__eq(recv) ((parser_nodes___AAndExpr___n_expr2__eq_t)CALL((recv), (SFT_parser_nodes[602] + 4)))
+#define ID_ANotExpr (SFT_parser_nodes[603])
+#define COLOR_ANotExpr (SFT_parser_nodes[604])
+#define ATTR_parser_nodes___ANotExpr____n_kwnot(recv) ATTR(recv, (SFT_parser_nodes[605] + 0))
+#define ATTR_parser_nodes___ANotExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[605] + 1))
+#define INIT_TABLE_POS_ANotExpr (SFT_parser_nodes[606] + 0)
+#define CALL_parser_nodes___ANotExpr___n_kwnot(recv) ((parser_nodes___ANotExpr___n_kwnot_t)CALL((recv), (SFT_parser_nodes[606] + 1)))
+#define CALL_parser_nodes___ANotExpr___n_kwnot__eq(recv) ((parser_nodes___ANotExpr___n_kwnot__eq_t)CALL((recv), (SFT_parser_nodes[606] + 2)))
+#define CALL_parser_nodes___ANotExpr___n_expr(recv) ((parser_nodes___ANotExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[606] + 3)))
+#define CALL_parser_nodes___ANotExpr___n_expr__eq(recv) ((parser_nodes___ANotExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[606] + 4)))
+#define ID_AEqExpr (SFT_parser_nodes[607])
+#define COLOR_AEqExpr (SFT_parser_nodes[608])
+#define INIT_TABLE_POS_AEqExpr (SFT_parser_nodes[609] + 0)
+#define ID_AEeExpr (SFT_parser_nodes[610])
+#define COLOR_AEeExpr (SFT_parser_nodes[611])
+#define ATTR_parser_nodes___AEeExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[612] + 0))
+#define ATTR_parser_nodes___AEeExpr____n_expr2(recv) ATTR(recv, (SFT_parser_nodes[612] + 1))
+#define INIT_TABLE_POS_AEeExpr (SFT_parser_nodes[613] + 0)
+#define CALL_parser_nodes___AEeExpr___n_expr(recv) ((parser_nodes___AEeExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[613] + 1)))
+#define CALL_parser_nodes___AEeExpr___n_expr__eq(recv) ((parser_nodes___AEeExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[613] + 2)))
+#define CALL_parser_nodes___AEeExpr___n_expr2(recv) ((parser_nodes___AEeExpr___n_expr2_t)CALL((recv), (SFT_parser_nodes[613] + 3)))
+#define CALL_parser_nodes___AEeExpr___n_expr2__eq(recv) ((parser_nodes___AEeExpr___n_expr2__eq_t)CALL((recv), (SFT_parser_nodes[613] + 4)))
+#define ID_ANeExpr (SFT_parser_nodes[614])
+#define COLOR_ANeExpr (SFT_parser_nodes[615])
+#define INIT_TABLE_POS_ANeExpr (SFT_parser_nodes[616] + 0)
+#define ID_ALtExpr (SFT_parser_nodes[617])
+#define COLOR_ALtExpr (SFT_parser_nodes[618])
+#define INIT_TABLE_POS_ALtExpr (SFT_parser_nodes[619] + 0)
+#define ID_ALeExpr (SFT_parser_nodes[620])
+#define COLOR_ALeExpr (SFT_parser_nodes[621])
+#define INIT_TABLE_POS_ALeExpr (SFT_parser_nodes[622] + 0)
+#define ID_AGtExpr (SFT_parser_nodes[623])
+#define COLOR_AGtExpr (SFT_parser_nodes[624])
+#define INIT_TABLE_POS_AGtExpr (SFT_parser_nodes[625] + 0)
+#define ID_AGeExpr (SFT_parser_nodes[626])
+#define COLOR_AGeExpr (SFT_parser_nodes[627])
+#define INIT_TABLE_POS_AGeExpr (SFT_parser_nodes[628] + 0)
+#define ID_AIsaExpr (SFT_parser_nodes[629])
+#define COLOR_AIsaExpr (SFT_parser_nodes[630])
+#define ATTR_parser_nodes___AIsaExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[631] + 0))
+#define ATTR_parser_nodes___AIsaExpr____n_type(recv) ATTR(recv, (SFT_parser_nodes[631] + 1))
+#define INIT_TABLE_POS_AIsaExpr (SFT_parser_nodes[632] + 0)
+#define CALL_parser_nodes___AIsaExpr___n_expr(recv) ((parser_nodes___AIsaExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[632] + 1)))
+#define CALL_parser_nodes___AIsaExpr___n_expr__eq(recv) ((parser_nodes___AIsaExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[632] + 2)))
+#define CALL_parser_nodes___AIsaExpr___n_type(recv) ((parser_nodes___AIsaExpr___n_type_t)CALL((recv), (SFT_parser_nodes[632] + 3)))
+#define CALL_parser_nodes___AIsaExpr___n_type__eq(recv) ((parser_nodes___AIsaExpr___n_type__eq_t)CALL((recv), (SFT_parser_nodes[632] + 4)))
+#define ID_APlusExpr (SFT_parser_nodes[633])
+#define COLOR_APlusExpr (SFT_parser_nodes[634])
+#define INIT_TABLE_POS_APlusExpr (SFT_parser_nodes[635] + 0)
+#define ID_AMinusExpr (SFT_parser_nodes[636])
+#define COLOR_AMinusExpr (SFT_parser_nodes[637])
+#define INIT_TABLE_POS_AMinusExpr (SFT_parser_nodes[638] + 0)
+#define ID_AStarshipExpr (SFT_parser_nodes[639])
+#define COLOR_AStarshipExpr (SFT_parser_nodes[640])
+#define INIT_TABLE_POS_AStarshipExpr (SFT_parser_nodes[641] + 0)
+#define ID_AStarExpr (SFT_parser_nodes[642])
+#define COLOR_AStarExpr (SFT_parser_nodes[643])
+#define INIT_TABLE_POS_AStarExpr (SFT_parser_nodes[644] + 0)
+#define ID_ASlashExpr (SFT_parser_nodes[645])
+#define COLOR_ASlashExpr (SFT_parser_nodes[646])
+#define INIT_TABLE_POS_ASlashExpr (SFT_parser_nodes[647] + 0)
+#define ID_APercentExpr (SFT_parser_nodes[648])
+#define COLOR_APercentExpr (SFT_parser_nodes[649])
+#define INIT_TABLE_POS_APercentExpr (SFT_parser_nodes[650] + 0)
+#define ID_AUminusExpr (SFT_parser_nodes[651])
+#define COLOR_AUminusExpr (SFT_parser_nodes[652])
+#define ATTR_parser_nodes___AUminusExpr____n_minus(recv) ATTR(recv, (SFT_parser_nodes[653] + 0))
+#define INIT_TABLE_POS_AUminusExpr (SFT_parser_nodes[654] + 0)
+#define CALL_parser_nodes___AUminusExpr___n_minus(recv) ((parser_nodes___AUminusExpr___n_minus_t)CALL((recv), (SFT_parser_nodes[654] + 1)))
+#define CALL_parser_nodes___AUminusExpr___n_minus__eq(recv) ((parser_nodes___AUminusExpr___n_minus__eq_t)CALL((recv), (SFT_parser_nodes[654] + 2)))
+#define ID_ANewExpr (SFT_parser_nodes[655])
+#define COLOR_ANewExpr (SFT_parser_nodes[656])
+#define ATTR_parser_nodes___ANewExpr____n_kwnew(recv) ATTR(recv, (SFT_parser_nodes[657] + 0))
+#define ATTR_parser_nodes___ANewExpr____n_type(recv) ATTR(recv, (SFT_parser_nodes[657] + 1))
+#define ATTR_parser_nodes___ANewExpr____n_id(recv) ATTR(recv, (SFT_parser_nodes[657] + 2))
+#define ATTR_parser_nodes___ANewExpr____n_args(recv) ATTR(recv, (SFT_parser_nodes[657] + 3))
+#define INIT_TABLE_POS_ANewExpr (SFT_parser_nodes[658] + 0)
+#define CALL_parser_nodes___ANewExpr___n_kwnew(recv) ((parser_nodes___ANewExpr___n_kwnew_t)CALL((recv), (SFT_parser_nodes[658] + 1)))
+#define CALL_parser_nodes___ANewExpr___n_kwnew__eq(recv) ((parser_nodes___ANewExpr___n_kwnew__eq_t)CALL((recv), (SFT_parser_nodes[658] + 2)))
+#define CALL_parser_nodes___ANewExpr___n_type(recv) ((parser_nodes___ANewExpr___n_type_t)CALL((recv), (SFT_parser_nodes[658] + 3)))
+#define CALL_parser_nodes___ANewExpr___n_type__eq(recv) ((parser_nodes___ANewExpr___n_type__eq_t)CALL((recv), (SFT_parser_nodes[658] + 4)))
+#define CALL_parser_nodes___ANewExpr___n_id(recv) ((parser_nodes___ANewExpr___n_id_t)CALL((recv), (SFT_parser_nodes[658] + 5)))
+#define CALL_parser_nodes___ANewExpr___n_id__eq(recv) ((parser_nodes___ANewExpr___n_id__eq_t)CALL((recv), (SFT_parser_nodes[658] + 6)))
+#define CALL_parser_nodes___ANewExpr___n_args(recv) ((parser_nodes___ANewExpr___n_args_t)CALL((recv), (SFT_parser_nodes[658] + 7)))
+#define CALL_parser_nodes___ANewExpr___n_args__eq(recv) ((parser_nodes___ANewExpr___n_args__eq_t)CALL((recv), (SFT_parser_nodes[658] + 8)))
+#define ID_AAttrFormExpr (SFT_parser_nodes[659])
+#define COLOR_AAttrFormExpr (SFT_parser_nodes[660])
+#define ATTR_parser_nodes___AAttrFormExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[661] + 0))
+#define ATTR_parser_nodes___AAttrFormExpr____n_id(recv) ATTR(recv, (SFT_parser_nodes[661] + 1))
+#define INIT_TABLE_POS_AAttrFormExpr (SFT_parser_nodes[662] + 0)
+#define CALL_parser_nodes___AAttrFormExpr___n_expr(recv) ((parser_nodes___AAttrFormExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[662] + 1)))
+#define CALL_parser_nodes___AAttrFormExpr___n_expr__eq(recv) ((parser_nodes___AAttrFormExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[662] + 2)))
+#define CALL_parser_nodes___AAttrFormExpr___n_id(recv) ((parser_nodes___AAttrFormExpr___n_id_t)CALL((recv), (SFT_parser_nodes[662] + 3)))
+#define CALL_parser_nodes___AAttrFormExpr___n_id__eq(recv) ((parser_nodes___AAttrFormExpr___n_id__eq_t)CALL((recv), (SFT_parser_nodes[662] + 4)))
+#define ID_AAttrExpr (SFT_parser_nodes[663])
+#define COLOR_AAttrExpr (SFT_parser_nodes[664])
+#define INIT_TABLE_POS_AAttrExpr (SFT_parser_nodes[665] + 0)
+#define ID_AAttrAssignExpr (SFT_parser_nodes[666])
+#define COLOR_AAttrAssignExpr (SFT_parser_nodes[667])
+#define INIT_TABLE_POS_AAttrAssignExpr (SFT_parser_nodes[668] + 0)
+#define ID_ACallFormExpr (SFT_parser_nodes[669])
+#define COLOR_ACallFormExpr (SFT_parser_nodes[670])
+#define ATTR_parser_nodes___ACallFormExpr____n_id(recv) ATTR(recv, (SFT_parser_nodes[671] + 0))
+#define ATTR_parser_nodes___ACallFormExpr____n_args(recv) ATTR(recv, (SFT_parser_nodes[671] + 1))
+#define INIT_TABLE_POS_ACallFormExpr (SFT_parser_nodes[672] + 0)
+#define CALL_parser_nodes___ACallFormExpr___n_id(recv) ((parser_nodes___ACallFormExpr___n_id_t)CALL((recv), (SFT_parser_nodes[672] + 1)))
+#define CALL_parser_nodes___ACallFormExpr___n_id__eq(recv) ((parser_nodes___ACallFormExpr___n_id__eq_t)CALL((recv), (SFT_parser_nodes[672] + 2)))
+#define CALL_parser_nodes___ACallFormExpr___n_args(recv) ((parser_nodes___ACallFormExpr___n_args_t)CALL((recv), (SFT_parser_nodes[672] + 3)))
+#define CALL_parser_nodes___ACallFormExpr___n_args__eq(recv) ((parser_nodes___ACallFormExpr___n_args__eq_t)CALL((recv), (SFT_parser_nodes[672] + 4)))
+#define ID_AAttrReassignExpr (SFT_parser_nodes[673])
+#define COLOR_AAttrReassignExpr (SFT_parser_nodes[674])
+#define INIT_TABLE_POS_AAttrReassignExpr (SFT_parser_nodes[675] + 0)
+#define ID_ACallExpr (SFT_parser_nodes[676])
+#define COLOR_ACallExpr (SFT_parser_nodes[677])
+#define INIT_TABLE_POS_ACallExpr (SFT_parser_nodes[678] + 0)
+#define ID_ACallAssignExpr (SFT_parser_nodes[679])
+#define COLOR_ACallAssignExpr (SFT_parser_nodes[680])
+#define INIT_TABLE_POS_ACallAssignExpr (SFT_parser_nodes[681] + 0)
+#define ID_ACallReassignExpr (SFT_parser_nodes[682])
+#define COLOR_ACallReassignExpr (SFT_parser_nodes[683])
+#define INIT_TABLE_POS_ACallReassignExpr (SFT_parser_nodes[684] + 0)
+#define ID_ASuperExpr (SFT_parser_nodes[685])
+#define COLOR_ASuperExpr (SFT_parser_nodes[686])
+#define ATTR_parser_nodes___ASuperExpr____n_qualified(recv) ATTR(recv, (SFT_parser_nodes[687] + 0))
+#define ATTR_parser_nodes___ASuperExpr____n_kwsuper(recv) ATTR(recv, (SFT_parser_nodes[687] + 1))
+#define ATTR_parser_nodes___ASuperExpr____n_args(recv) ATTR(recv, (SFT_parser_nodes[687] + 2))
+#define INIT_TABLE_POS_ASuperExpr (SFT_parser_nodes[688] + 0)
+#define CALL_parser_nodes___ASuperExpr___n_qualified(recv) ((parser_nodes___ASuperExpr___n_qualified_t)CALL((recv), (SFT_parser_nodes[688] + 1)))
+#define CALL_parser_nodes___ASuperExpr___n_qualified__eq(recv) ((parser_nodes___ASuperExpr___n_qualified__eq_t)CALL((recv), (SFT_parser_nodes[688] + 2)))
+#define CALL_parser_nodes___ASuperExpr___n_kwsuper(recv) ((parser_nodes___ASuperExpr___n_kwsuper_t)CALL((recv), (SFT_parser_nodes[688] + 3)))
+#define CALL_parser_nodes___ASuperExpr___n_kwsuper__eq(recv) ((parser_nodes___ASuperExpr___n_kwsuper__eq_t)CALL((recv), (SFT_parser_nodes[688] + 4)))
+#define CALL_parser_nodes___ASuperExpr___n_args(recv) ((parser_nodes___ASuperExpr___n_args_t)CALL((recv), (SFT_parser_nodes[688] + 5)))
+#define CALL_parser_nodes___ASuperExpr___n_args__eq(recv) ((parser_nodes___ASuperExpr___n_args__eq_t)CALL((recv), (SFT_parser_nodes[688] + 6)))
+#define ID_AInitExpr (SFT_parser_nodes[689])
+#define COLOR_AInitExpr (SFT_parser_nodes[690])
+#define ATTR_parser_nodes___AInitExpr____n_kwinit(recv) ATTR(recv, (SFT_parser_nodes[691] + 0))
+#define ATTR_parser_nodes___AInitExpr____n_args(recv) ATTR(recv, (SFT_parser_nodes[691] + 1))
+#define INIT_TABLE_POS_AInitExpr (SFT_parser_nodes[692] + 0)
+#define CALL_parser_nodes___AInitExpr___n_kwinit(recv) ((parser_nodes___AInitExpr___n_kwinit_t)CALL((recv), (SFT_parser_nodes[692] + 1)))
+#define CALL_parser_nodes___AInitExpr___n_kwinit__eq(recv) ((parser_nodes___AInitExpr___n_kwinit__eq_t)CALL((recv), (SFT_parser_nodes[692] + 2)))
+#define CALL_parser_nodes___AInitExpr___n_args(recv) ((parser_nodes___AInitExpr___n_args_t)CALL((recv), (SFT_parser_nodes[692] + 3)))
+#define CALL_parser_nodes___AInitExpr___n_args__eq(recv) ((parser_nodes___AInitExpr___n_args__eq_t)CALL((recv), (SFT_parser_nodes[692] + 4)))
+#define ID_ABraFormExpr (SFT_parser_nodes[693])
+#define COLOR_ABraFormExpr (SFT_parser_nodes[694])
+#define ATTR_parser_nodes___ABraFormExpr____n_args(recv) ATTR(recv, (SFT_parser_nodes[695] + 0))
+#define INIT_TABLE_POS_ABraFormExpr (SFT_parser_nodes[696] + 0)
+#define CALL_parser_nodes___ABraFormExpr___n_args(recv) ((parser_nodes___ABraFormExpr___n_args_t)CALL((recv), (SFT_parser_nodes[696] + 1)))
+#define CALL_parser_nodes___ABraFormExpr___n_args__eq(recv) ((parser_nodes___ABraFormExpr___n_args__eq_t)CALL((recv), (SFT_parser_nodes[696] + 2)))
+#define ID_ABraExpr (SFT_parser_nodes[697])
+#define COLOR_ABraExpr (SFT_parser_nodes[698])
+#define INIT_TABLE_POS_ABraExpr (SFT_parser_nodes[699] + 0)
+#define ID_ABraAssignExpr (SFT_parser_nodes[700])
+#define COLOR_ABraAssignExpr (SFT_parser_nodes[701])
+#define INIT_TABLE_POS_ABraAssignExpr (SFT_parser_nodes[702] + 0)
+#define ID_AVarFormExpr (SFT_parser_nodes[703])
+#define COLOR_AVarFormExpr (SFT_parser_nodes[704])
+#define ATTR_parser_nodes___AVarFormExpr____n_id(recv) ATTR(recv, (SFT_parser_nodes[705] + 0))
+#define INIT_TABLE_POS_AVarFormExpr (SFT_parser_nodes[706] + 0)
+#define CALL_parser_nodes___AVarFormExpr___n_id(recv) ((parser_nodes___AVarFormExpr___n_id_t)CALL((recv), (SFT_parser_nodes[706] + 1)))
+#define CALL_parser_nodes___AVarFormExpr___n_id__eq(recv) ((parser_nodes___AVarFormExpr___n_id__eq_t)CALL((recv), (SFT_parser_nodes[706] + 2)))
+#define ID_ABraReassignExpr (SFT_parser_nodes[707])
+#define COLOR_ABraReassignExpr (SFT_parser_nodes[708])
+#define INIT_TABLE_POS_ABraReassignExpr (SFT_parser_nodes[709] + 0)
+#define ID_AVarExpr (SFT_parser_nodes[710])
+#define COLOR_AVarExpr (SFT_parser_nodes[711])
+#define INIT_TABLE_POS_AVarExpr (SFT_parser_nodes[712] + 0)
+#define ID_AVarAssignExpr (SFT_parser_nodes[713])
+#define COLOR_AVarAssignExpr (SFT_parser_nodes[714])
+#define INIT_TABLE_POS_AVarAssignExpr (SFT_parser_nodes[715] + 0)
+#define ID_AVarReassignExpr (SFT_parser_nodes[716])
+#define COLOR_AVarReassignExpr (SFT_parser_nodes[717])
+#define INIT_TABLE_POS_AVarReassignExpr (SFT_parser_nodes[718] + 0)
+#define ID_AClosureCallExpr (SFT_parser_nodes[719])
+#define COLOR_AClosureCallExpr (SFT_parser_nodes[720])
+#define INIT_TABLE_POS_AClosureCallExpr (SFT_parser_nodes[721] + 0)
+#define CALL_parser_nodes___AClosureCallExpr___init(recv) ((parser_nodes___AClosureCallExpr___init_t)CALL((recv), (SFT_parser_nodes[721] + 1)))
+#define ID_ARangeExpr (SFT_parser_nodes[722])
+#define COLOR_ARangeExpr (SFT_parser_nodes[723])
+#define ATTR_parser_nodes___ARangeExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[724] + 0))
+#define ATTR_parser_nodes___ARangeExpr____n_expr2(recv) ATTR(recv, (SFT_parser_nodes[724] + 1))
+#define INIT_TABLE_POS_ARangeExpr (SFT_parser_nodes[725] + 0)
+#define CALL_parser_nodes___ARangeExpr___n_expr(recv) ((parser_nodes___ARangeExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[725] + 1)))
+#define CALL_parser_nodes___ARangeExpr___n_expr__eq(recv) ((parser_nodes___ARangeExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[725] + 2)))
+#define CALL_parser_nodes___ARangeExpr___n_expr2(recv) ((parser_nodes___ARangeExpr___n_expr2_t)CALL((recv), (SFT_parser_nodes[725] + 3)))
+#define CALL_parser_nodes___ARangeExpr___n_expr2__eq(recv) ((parser_nodes___ARangeExpr___n_expr2__eq_t)CALL((recv), (SFT_parser_nodes[725] + 4)))
+#define ID_ACrangeExpr (SFT_parser_nodes[726])
+#define COLOR_ACrangeExpr (SFT_parser_nodes[727])
+#define INIT_TABLE_POS_ACrangeExpr (SFT_parser_nodes[728] + 0)
+#define ID_AOrangeExpr (SFT_parser_nodes[729])
+#define COLOR_AOrangeExpr (SFT_parser_nodes[730])
+#define INIT_TABLE_POS_AOrangeExpr (SFT_parser_nodes[731] + 0)
+#define ID_AArrayExpr (SFT_parser_nodes[732])
+#define COLOR_AArrayExpr (SFT_parser_nodes[733])
+#define ATTR_parser_nodes___AArrayExpr____n_exprs(recv) ATTR(recv, (SFT_parser_nodes[734] + 0))
+#define INIT_TABLE_POS_AArrayExpr (SFT_parser_nodes[735] + 0)
+#define CALL_parser_nodes___AArrayExpr___n_exprs(recv) ((parser_nodes___AArrayExpr___n_exprs_t)CALL((recv), (SFT_parser_nodes[735] + 1)))
+#define CALL_parser_nodes___AArrayExpr___n_exprs__eq(recv) ((parser_nodes___AArrayExpr___n_exprs__eq_t)CALL((recv), (SFT_parser_nodes[735] + 2)))
+#define ID_ASelfExpr (SFT_parser_nodes[736])
+#define COLOR_ASelfExpr (SFT_parser_nodes[737])
+#define ATTR_parser_nodes___ASelfExpr____n_kwself(recv) ATTR(recv, (SFT_parser_nodes[738] + 0))
+#define INIT_TABLE_POS_ASelfExpr (SFT_parser_nodes[739] + 0)
+#define CALL_parser_nodes___ASelfExpr___n_kwself(recv) ((parser_nodes___ASelfExpr___n_kwself_t)CALL((recv), (SFT_parser_nodes[739] + 1)))
+#define CALL_parser_nodes___ASelfExpr___n_kwself__eq(recv) ((parser_nodes___ASelfExpr___n_kwself__eq_t)CALL((recv), (SFT_parser_nodes[739] + 2)))
+#define ID_AImplicitSelfExpr (SFT_parser_nodes[740])
+#define COLOR_AImplicitSelfExpr (SFT_parser_nodes[741])
+#define INIT_TABLE_POS_AImplicitSelfExpr (SFT_parser_nodes[742] + 0)
+#define ID_ATrueExpr (SFT_parser_nodes[743])
+#define COLOR_ATrueExpr (SFT_parser_nodes[744])
+#define ATTR_parser_nodes___ATrueExpr____n_kwtrue(recv) ATTR(recv, (SFT_parser_nodes[745] + 0))
+#define INIT_TABLE_POS_ATrueExpr (SFT_parser_nodes[746] + 0)
+#define CALL_parser_nodes___ATrueExpr___n_kwtrue(recv) ((parser_nodes___ATrueExpr___n_kwtrue_t)CALL((recv), (SFT_parser_nodes[746] + 1)))
+#define CALL_parser_nodes___ATrueExpr___n_kwtrue__eq(recv) ((parser_nodes___ATrueExpr___n_kwtrue__eq_t)CALL((recv), (SFT_parser_nodes[746] + 2)))
+#define ID_AFalseExpr (SFT_parser_nodes[747])
+#define COLOR_AFalseExpr (SFT_parser_nodes[748])
+#define ATTR_parser_nodes___AFalseExpr____n_kwfalse(recv) ATTR(recv, (SFT_parser_nodes[749] + 0))
+#define INIT_TABLE_POS_AFalseExpr (SFT_parser_nodes[750] + 0)
+#define CALL_parser_nodes___AFalseExpr___n_kwfalse(recv) ((parser_nodes___AFalseExpr___n_kwfalse_t)CALL((recv), (SFT_parser_nodes[750] + 1)))
+#define CALL_parser_nodes___AFalseExpr___n_kwfalse__eq(recv) ((parser_nodes___AFalseExpr___n_kwfalse__eq_t)CALL((recv), (SFT_parser_nodes[750] + 2)))
+#define ID_ANullExpr (SFT_parser_nodes[751])
+#define COLOR_ANullExpr (SFT_parser_nodes[752])
+#define ATTR_parser_nodes___ANullExpr____n_kwnull(recv) ATTR(recv, (SFT_parser_nodes[753] + 0))
+#define INIT_TABLE_POS_ANullExpr (SFT_parser_nodes[754] + 0)
+#define CALL_parser_nodes___ANullExpr___n_kwnull(recv) ((parser_nodes___ANullExpr___n_kwnull_t)CALL((recv), (SFT_parser_nodes[754] + 1)))
+#define CALL_parser_nodes___ANullExpr___n_kwnull__eq(recv) ((parser_nodes___ANullExpr___n_kwnull__eq_t)CALL((recv), (SFT_parser_nodes[754] + 2)))
+#define ID_AIntExpr (SFT_parser_nodes[755])
+#define COLOR_AIntExpr (SFT_parser_nodes[756])
+#define ATTR_parser_nodes___AIntExpr____n_number(recv) ATTR(recv, (SFT_parser_nodes[757] + 0))
+#define INIT_TABLE_POS_AIntExpr (SFT_parser_nodes[758] + 0)
+#define CALL_parser_nodes___AIntExpr___n_number(recv) ((parser_nodes___AIntExpr___n_number_t)CALL((recv), (SFT_parser_nodes[758] + 1)))
+#define CALL_parser_nodes___AIntExpr___n_number__eq(recv) ((parser_nodes___AIntExpr___n_number__eq_t)CALL((recv), (SFT_parser_nodes[758] + 2)))
+#define ID_AFloatExpr (SFT_parser_nodes[759])
+#define COLOR_AFloatExpr (SFT_parser_nodes[760])
+#define ATTR_parser_nodes___AFloatExpr____n_float(recv) ATTR(recv, (SFT_parser_nodes[761] + 0))
+#define INIT_TABLE_POS_AFloatExpr (SFT_parser_nodes[762] + 0)
+#define CALL_parser_nodes___AFloatExpr___n_float(recv) ((parser_nodes___AFloatExpr___n_float_t)CALL((recv), (SFT_parser_nodes[762] + 1)))
+#define CALL_parser_nodes___AFloatExpr___n_float__eq(recv) ((parser_nodes___AFloatExpr___n_float__eq_t)CALL((recv), (SFT_parser_nodes[762] + 2)))
+#define ID_ACharExpr (SFT_parser_nodes[763])
+#define COLOR_ACharExpr (SFT_parser_nodes[764])
+#define ATTR_parser_nodes___ACharExpr____n_char(recv) ATTR(recv, (SFT_parser_nodes[765] + 0))
+#define INIT_TABLE_POS_ACharExpr (SFT_parser_nodes[766] + 0)
+#define CALL_parser_nodes___ACharExpr___n_char(recv) ((parser_nodes___ACharExpr___n_char_t)CALL((recv), (SFT_parser_nodes[766] + 1)))
+#define CALL_parser_nodes___ACharExpr___n_char__eq(recv) ((parser_nodes___ACharExpr___n_char__eq_t)CALL((recv), (SFT_parser_nodes[766] + 2)))
+#define ID_AStringFormExpr (SFT_parser_nodes[767])
+#define COLOR_AStringFormExpr (SFT_parser_nodes[768])
+#define INIT_TABLE_POS_AStringFormExpr (SFT_parser_nodes[769] + 0)
+#define ID_AStringExpr (SFT_parser_nodes[770])
+#define COLOR_AStringExpr (SFT_parser_nodes[771])
+#define ATTR_parser_nodes___AStringExpr____n_string(recv) ATTR(recv, (SFT_parser_nodes[772] + 0))
+#define INIT_TABLE_POS_AStringExpr (SFT_parser_nodes[773] + 0)
+#define CALL_parser_nodes___AStringExpr___n_string(recv) ((parser_nodes___AStringExpr___n_string_t)CALL((recv), (SFT_parser_nodes[773] + 1)))
+#define CALL_parser_nodes___AStringExpr___n_string__eq(recv) ((parser_nodes___AStringExpr___n_string__eq_t)CALL((recv), (SFT_parser_nodes[773] + 2)))
+#define ID_AStartStringExpr (SFT_parser_nodes[774])
+#define COLOR_AStartStringExpr (SFT_parser_nodes[775])
+#define ATTR_parser_nodes___AStartStringExpr____n_string(recv) ATTR(recv, (SFT_parser_nodes[776] + 0))
+#define INIT_TABLE_POS_AStartStringExpr (SFT_parser_nodes[777] + 0)
+#define CALL_parser_nodes___AStartStringExpr___n_string(recv) ((parser_nodes___AStartStringExpr___n_string_t)CALL((recv), (SFT_parser_nodes[777] + 1)))
+#define CALL_parser_nodes___AStartStringExpr___n_string__eq(recv) ((parser_nodes___AStartStringExpr___n_string__eq_t)CALL((recv), (SFT_parser_nodes[777] + 2)))
+#define ID_AMidStringExpr (SFT_parser_nodes[778])
+#define COLOR_AMidStringExpr (SFT_parser_nodes[779])
+#define ATTR_parser_nodes___AMidStringExpr____n_string(recv) ATTR(recv, (SFT_parser_nodes[780] + 0))
+#define INIT_TABLE_POS_AMidStringExpr (SFT_parser_nodes[781] + 0)
+#define CALL_parser_nodes___AMidStringExpr___n_string(recv) ((parser_nodes___AMidStringExpr___n_string_t)CALL((recv), (SFT_parser_nodes[781] + 1)))
+#define CALL_parser_nodes___AMidStringExpr___n_string__eq(recv) ((parser_nodes___AMidStringExpr___n_string__eq_t)CALL((recv), (SFT_parser_nodes[781] + 2)))
+#define ID_AEndStringExpr (SFT_parser_nodes[782])
+#define COLOR_AEndStringExpr (SFT_parser_nodes[783])
+#define ATTR_parser_nodes___AEndStringExpr____n_string(recv) ATTR(recv, (SFT_parser_nodes[784] + 0))
+#define INIT_TABLE_POS_AEndStringExpr (SFT_parser_nodes[785] + 0)
+#define CALL_parser_nodes___AEndStringExpr___n_string(recv) ((parser_nodes___AEndStringExpr___n_string_t)CALL((recv), (SFT_parser_nodes[785] + 1)))
+#define CALL_parser_nodes___AEndStringExpr___n_string__eq(recv) ((parser_nodes___AEndStringExpr___n_string__eq_t)CALL((recv), (SFT_parser_nodes[785] + 2)))
+#define ID_ASuperstringExpr (SFT_parser_nodes[786])
+#define COLOR_ASuperstringExpr (SFT_parser_nodes[787])
+#define ATTR_parser_nodes___ASuperstringExpr____n_exprs(recv) ATTR(recv, (SFT_parser_nodes[788] + 0))
+#define INIT_TABLE_POS_ASuperstringExpr (SFT_parser_nodes[789] + 0)
+#define CALL_parser_nodes___ASuperstringExpr___n_exprs(recv) ((parser_nodes___ASuperstringExpr___n_exprs_t)CALL((recv), (SFT_parser_nodes[789] + 1)))
+#define CALL_parser_nodes___ASuperstringExpr___n_exprs__eq(recv) ((parser_nodes___ASuperstringExpr___n_exprs__eq_t)CALL((recv), (SFT_parser_nodes[789] + 2)))
+#define ID_AParExpr (SFT_parser_nodes[790])
+#define COLOR_AParExpr (SFT_parser_nodes[791])
+#define INIT_TABLE_POS_AParExpr (SFT_parser_nodes[792] + 0)
+#define ID_AProxyExpr (SFT_parser_nodes[793])
+#define COLOR_AProxyExpr (SFT_parser_nodes[794])
+#define ATTR_parser_nodes___AProxyExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[795] + 0))
+#define INIT_TABLE_POS_AProxyExpr (SFT_parser_nodes[796] + 0)
+#define CALL_parser_nodes___AProxyExpr___n_expr(recv) ((parser_nodes___AProxyExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[796] + 1)))
+#define CALL_parser_nodes___AProxyExpr___n_expr__eq(recv) ((parser_nodes___AProxyExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[796] + 2)))
+#define ID_AAsCastExpr (SFT_parser_nodes[797])
+#define COLOR_AAsCastExpr (SFT_parser_nodes[798])
+#define ATTR_parser_nodes___AAsCastExpr____n_expr(recv) ATTR(recv, (SFT_parser_nodes[799] + 0))
+#define ATTR_parser_nodes___AAsCastExpr____n_kwas(recv) ATTR(recv, (SFT_parser_nodes[799] + 1))
+#define ATTR_parser_nodes___AAsCastExpr____n_type(recv) ATTR(recv, (SFT_parser_nodes[799] + 2))
+#define INIT_TABLE_POS_AAsCastExpr (SFT_parser_nodes[800] + 0)
+#define CALL_parser_nodes___AAsCastExpr___n_expr(recv) ((parser_nodes___AAsCastExpr___n_expr_t)CALL((recv), (SFT_parser_nodes[800] + 1)))
+#define CALL_parser_nodes___AAsCastExpr___n_expr__eq(recv) ((parser_nodes___AAsCastExpr___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[800] + 2)))
+#define CALL_parser_nodes___AAsCastExpr___n_kwas(recv) ((parser_nodes___AAsCastExpr___n_kwas_t)CALL((recv), (SFT_parser_nodes[800] + 3)))
+#define CALL_parser_nodes___AAsCastExpr___n_kwas__eq(recv) ((parser_nodes___AAsCastExpr___n_kwas__eq_t)CALL((recv), (SFT_parser_nodes[800] + 4)))
+#define CALL_parser_nodes___AAsCastExpr___n_type(recv) ((parser_nodes___AAsCastExpr___n_type_t)CALL((recv), (SFT_parser_nodes[800] + 5)))
+#define CALL_parser_nodes___AAsCastExpr___n_type__eq(recv) ((parser_nodes___AAsCastExpr___n_type__eq_t)CALL((recv), (SFT_parser_nodes[800] + 6)))
+#define ID_APlusAssignOp (SFT_parser_nodes[801])
+#define COLOR_APlusAssignOp (SFT_parser_nodes[802])
+#define ATTR_parser_nodes___APlusAssignOp____n_pluseq(recv) ATTR(recv, (SFT_parser_nodes[803] + 0))
+#define INIT_TABLE_POS_APlusAssignOp (SFT_parser_nodes[804] + 0)
+#define CALL_parser_nodes___APlusAssignOp___n_pluseq(recv) ((parser_nodes___APlusAssignOp___n_pluseq_t)CALL((recv), (SFT_parser_nodes[804] + 1)))
+#define CALL_parser_nodes___APlusAssignOp___n_pluseq__eq(recv) ((parser_nodes___APlusAssignOp___n_pluseq__eq_t)CALL((recv), (SFT_parser_nodes[804] + 2)))
+#define ID_AMinusAssignOp (SFT_parser_nodes[805])
+#define COLOR_AMinusAssignOp (SFT_parser_nodes[806])
+#define ATTR_parser_nodes___AMinusAssignOp____n_minuseq(recv) ATTR(recv, (SFT_parser_nodes[807] + 0))
+#define INIT_TABLE_POS_AMinusAssignOp (SFT_parser_nodes[808] + 0)
+#define CALL_parser_nodes___AMinusAssignOp___n_minuseq(recv) ((parser_nodes___AMinusAssignOp___n_minuseq_t)CALL((recv), (SFT_parser_nodes[808] + 1)))
+#define CALL_parser_nodes___AMinusAssignOp___n_minuseq__eq(recv) ((parser_nodes___AMinusAssignOp___n_minuseq__eq_t)CALL((recv), (SFT_parser_nodes[808] + 2)))
+#define ID_AClosureDef (SFT_parser_nodes[809])
+#define COLOR_AClosureDef (SFT_parser_nodes[810])
+#define ATTR_parser_nodes___AClosureDef____n_kwwith(recv) ATTR(recv, (SFT_parser_nodes[811] + 0))
+#define ATTR_parser_nodes___AClosureDef____n_id(recv) ATTR(recv, (SFT_parser_nodes[811] + 1))
+#define ATTR_parser_nodes___AClosureDef____n_kwdo(recv) ATTR(recv, (SFT_parser_nodes[811] + 2))
+#define ATTR_parser_nodes___AClosureDef____n_expr(recv) ATTR(recv, (SFT_parser_nodes[811] + 3))
+#define INIT_TABLE_POS_AClosureDef (SFT_parser_nodes[812] + 0)
+#define CALL_parser_nodes___AClosureDef___n_kwwith(recv) ((parser_nodes___AClosureDef___n_kwwith_t)CALL((recv), (SFT_parser_nodes[812] + 1)))
+#define CALL_parser_nodes___AClosureDef___n_kwwith__eq(recv) ((parser_nodes___AClosureDef___n_kwwith__eq_t)CALL((recv), (SFT_parser_nodes[812] + 2)))
+#define CALL_parser_nodes___AClosureDef___n_id(recv) ((parser_nodes___AClosureDef___n_id_t)CALL((recv), (SFT_parser_nodes[812] + 3)))
+#define CALL_parser_nodes___AClosureDef___n_id__eq(recv) ((parser_nodes___AClosureDef___n_id__eq_t)CALL((recv), (SFT_parser_nodes[812] + 4)))
+#define CALL_parser_nodes___AClosureDef___n_kwdo(recv) ((parser_nodes___AClosureDef___n_kwdo_t)CALL((recv), (SFT_parser_nodes[812] + 5)))
+#define CALL_parser_nodes___AClosureDef___n_kwdo__eq(recv) ((parser_nodes___AClosureDef___n_kwdo__eq_t)CALL((recv), (SFT_parser_nodes[812] + 6)))
+#define CALL_parser_nodes___AClosureDef___n_expr(recv) ((parser_nodes___AClosureDef___n_expr_t)CALL((recv), (SFT_parser_nodes[812] + 7)))
+#define CALL_parser_nodes___AClosureDef___n_expr__eq(recv) ((parser_nodes___AClosureDef___n_expr__eq_t)CALL((recv), (SFT_parser_nodes[812] + 8)))
+#define ID_AQualified (SFT_parser_nodes[813])
+#define COLOR_AQualified (SFT_parser_nodes[814])
+#define ATTR_parser_nodes___AQualified____n_id(recv) ATTR(recv, (SFT_parser_nodes[815] + 0))
+#define ATTR_parser_nodes___AQualified____n_classid(recv) ATTR(recv, (SFT_parser_nodes[815] + 1))
+#define INIT_TABLE_POS_AQualified (SFT_parser_nodes[816] + 0)
+#define CALL_parser_nodes___AQualified___n_id(recv) ((parser_nodes___AQualified___n_id_t)CALL((recv), (SFT_parser_nodes[816] + 1)))
+#define CALL_parser_nodes___AQualified___n_id__eq(recv) ((parser_nodes___AQualified___n_id__eq_t)CALL((recv), (SFT_parser_nodes[816] + 2)))
+#define CALL_parser_nodes___AQualified___n_classid(recv) ((parser_nodes___AQualified___n_classid_t)CALL((recv), (SFT_parser_nodes[816] + 3)))
+#define CALL_parser_nodes___AQualified___n_classid__eq(recv) ((parser_nodes___AQualified___n_classid__eq_t)CALL((recv), (SFT_parser_nodes[816] + 4)))
+#define ID_ADoc (SFT_parser_nodes[817])
+#define COLOR_ADoc (SFT_parser_nodes[818])
+#define ATTR_parser_nodes___ADoc____n_comment(recv) ATTR(recv, (SFT_parser_nodes[819] + 0))
+#define INIT_TABLE_POS_ADoc (SFT_parser_nodes[820] + 0)
+#define CALL_parser_nodes___ADoc___n_comment(recv) ((parser_nodes___ADoc___n_comment_t)CALL((recv), (SFT_parser_nodes[820] + 1)))
+#define CALL_parser_nodes___ADoc___n_comment__eq(recv) ((parser_nodes___ADoc___n_comment__eq_t)CALL((recv), (SFT_parser_nodes[820] + 2)))
+#define ID_Start (SFT_parser_nodes[821])
+#define COLOR_Start (SFT_parser_nodes[822])
+#define ATTR_parser_nodes___Start____n_base(recv) ATTR(recv, (SFT_parser_nodes[823] + 0))
+#define ATTR_parser_nodes___Start____n_eof(recv) ATTR(recv, (SFT_parser_nodes[823] + 1))
+#define INIT_TABLE_POS_Start (SFT_parser_nodes[824] + 0)
+#define CALL_parser_nodes___Start___n_base(recv) ((parser_nodes___Start___n_base_t)CALL((recv), (SFT_parser_nodes[824] + 1)))
+#define CALL_parser_nodes___Start___n_base__eq(recv) ((parser_nodes___Start___n_base__eq_t)CALL((recv), (SFT_parser_nodes[824] + 2)))
+#define CALL_parser_nodes___Start___n_eof(recv) ((parser_nodes___Start___n_eof_t)CALL((recv), (SFT_parser_nodes[824] + 3)))
+#define CALL_parser_nodes___Start___n_eof__eq(recv) ((parser_nodes___Start___n_eof__eq_t)CALL((recv), (SFT_parser_nodes[824] + 4)))
 typedef void (* parser_nodes___PNode___init_t)(val_t  self, int* init_table);
 void parser_nodes___PNode___init(val_t  self, int* init_table);
 #define LOCATE_parser_nodes___PNode___init "parser_nodes::PNode::init"
@@ -1912,7 +1912,6 @@ val_t NEW_PClasskind_parser_nodes___PNode___init();
 val_t NEW_PFormaldef_parser_nodes___PNode___init();
 val_t NEW_PSuperclass_parser_nodes___PNode___init();
 val_t NEW_PPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___PPropdef____n_doc(recv) ATTR(recv, COLOR_parser_nodes___PPropdef____n_doc)
 typedef val_t (* parser_nodes___PPropdef___n_doc_t)(val_t  self);
 val_t parser_nodes___PPropdef___n_doc(val_t  self);
 #define LOCATE_parser_nodes___PPropdef___n_doc "parser_nodes::PPropdef::n_doc"
@@ -1920,7 +1919,6 @@ typedef void (* parser_nodes___PPropdef___n_doc__eq_t)(val_t  self, val_t  param
 void parser_nodes___PPropdef___n_doc__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___PPropdef___n_doc__eq "parser_nodes::PPropdef::n_doc="
 val_t NEW_PAble_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___PAble____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___PAble____n_kwredef)
 typedef val_t (* parser_nodes___PAble___n_kwredef_t)(val_t  self);
 val_t parser_nodes___PAble___n_kwredef(val_t  self);
 #define LOCATE_parser_nodes___PAble___n_kwredef "parser_nodes::PAble::n_kwredef"
@@ -1930,14 +1928,12 @@ void parser_nodes___PAble___n_kwredef__eq(val_t  self, val_t  param0);
 val_t NEW_PMethid_parser_nodes___PNode___init();
 val_t NEW_PSignature_parser_nodes___PNode___init();
 val_t NEW_PParam_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___PParam____n_id(recv) ATTR(recv, COLOR_parser_nodes___PParam____n_id)
 typedef val_t (* parser_nodes___PParam___n_id_t)(val_t  self);
 val_t parser_nodes___PParam___n_id(val_t  self);
 #define LOCATE_parser_nodes___PParam___n_id "parser_nodes::PParam::n_id"
 typedef void (* parser_nodes___PParam___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___PParam___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___PParam___n_id__eq "parser_nodes::PParam::n_id="
-#define ATTR_parser_nodes___PParam____n_type(recv) ATTR(recv, COLOR_parser_nodes___PParam____n_type)
 typedef val_t (* parser_nodes___PParam___n_type_t)(val_t  self);
 val_t parser_nodes___PParam___n_type(val_t  self);
 #define LOCATE_parser_nodes___PParam___n_type "parser_nodes::PParam::n_type"
@@ -1952,21 +1948,18 @@ val_t NEW_PClosureDef_parser_nodes___PNode___init();
 val_t NEW_PQualified_parser_nodes___PNode___init();
 val_t NEW_PDoc_parser_nodes___PNode___init();
 val_t NEW_AModule_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AModule____n_packagedecl(recv) ATTR(recv, COLOR_parser_nodes___AModule____n_packagedecl)
 typedef val_t (* parser_nodes___AModule___n_packagedecl_t)(val_t  self);
 val_t parser_nodes___AModule___n_packagedecl(val_t  self);
 #define LOCATE_parser_nodes___AModule___n_packagedecl "parser_nodes::AModule::n_packagedecl"
 typedef void (* parser_nodes___AModule___n_packagedecl__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AModule___n_packagedecl__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AModule___n_packagedecl__eq "parser_nodes::AModule::n_packagedecl="
-#define ATTR_parser_nodes___AModule____n_imports(recv) ATTR(recv, COLOR_parser_nodes___AModule____n_imports)
 typedef val_t (* parser_nodes___AModule___n_imports_t)(val_t  self);
 val_t parser_nodes___AModule___n_imports(val_t  self);
 #define LOCATE_parser_nodes___AModule___n_imports "parser_nodes::AModule::n_imports"
 typedef void (* parser_nodes___AModule___n_imports__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AModule___n_imports__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AModule___n_imports__eq "parser_nodes::AModule::n_imports="
-#define ATTR_parser_nodes___AModule____n_classdefs(recv) ATTR(recv, COLOR_parser_nodes___AModule____n_classdefs)
 typedef val_t (* parser_nodes___AModule___n_classdefs_t)(val_t  self);
 val_t parser_nodes___AModule___n_classdefs(val_t  self);
 #define LOCATE_parser_nodes___AModule___n_classdefs "parser_nodes::AModule::n_classdefs"
@@ -1974,21 +1967,18 @@ typedef void (* parser_nodes___AModule___n_classdefs__eq_t)(val_t  self, val_t
 void parser_nodes___AModule___n_classdefs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AModule___n_classdefs__eq "parser_nodes::AModule::n_classdefs="
 val_t NEW_APackagedecl_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___APackagedecl____n_doc(recv) ATTR(recv, COLOR_parser_nodes___APackagedecl____n_doc)
 typedef val_t (* parser_nodes___APackagedecl___n_doc_t)(val_t  self);
 val_t parser_nodes___APackagedecl___n_doc(val_t  self);
 #define LOCATE_parser_nodes___APackagedecl___n_doc "parser_nodes::APackagedecl::n_doc"
 typedef void (* parser_nodes___APackagedecl___n_doc__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___APackagedecl___n_doc__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___APackagedecl___n_doc__eq "parser_nodes::APackagedecl::n_doc="
-#define ATTR_parser_nodes___APackagedecl____n_kwpackage(recv) ATTR(recv, COLOR_parser_nodes___APackagedecl____n_kwpackage)
 typedef val_t (* parser_nodes___APackagedecl___n_kwpackage_t)(val_t  self);
 val_t parser_nodes___APackagedecl___n_kwpackage(val_t  self);
 #define LOCATE_parser_nodes___APackagedecl___n_kwpackage "parser_nodes::APackagedecl::n_kwpackage"
 typedef void (* parser_nodes___APackagedecl___n_kwpackage__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___APackagedecl___n_kwpackage__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___APackagedecl___n_kwpackage__eq "parser_nodes::APackagedecl::n_kwpackage="
-#define ATTR_parser_nodes___APackagedecl____n_id(recv) ATTR(recv, COLOR_parser_nodes___APackagedecl____n_id)
 typedef val_t (* parser_nodes___APackagedecl___n_id_t)(val_t  self);
 val_t parser_nodes___APackagedecl___n_id(val_t  self);
 #define LOCATE_parser_nodes___APackagedecl___n_id "parser_nodes::APackagedecl::n_id"
@@ -1996,21 +1986,18 @@ typedef void (* parser_nodes___APackagedecl___n_id__eq_t)(val_t  self, val_t  pa
 void parser_nodes___APackagedecl___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___APackagedecl___n_id__eq "parser_nodes::APackagedecl::n_id="
 val_t NEW_AImport_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AImport____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AImport____n_visibility)
 typedef val_t (* parser_nodes___AImport___n_visibility_t)(val_t  self);
 val_t parser_nodes___AImport___n_visibility(val_t  self);
 #define LOCATE_parser_nodes___AImport___n_visibility "parser_nodes::AImport::n_visibility"
 typedef void (* parser_nodes___AImport___n_visibility__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AImport___n_visibility__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AImport___n_visibility__eq "parser_nodes::AImport::n_visibility="
-#define ATTR_parser_nodes___AImport____n_kwimport(recv) ATTR(recv, COLOR_parser_nodes___AImport____n_kwimport)
 typedef val_t (* parser_nodes___AImport___n_kwimport_t)(val_t  self);
 val_t parser_nodes___AImport___n_kwimport(val_t  self);
 #define LOCATE_parser_nodes___AImport___n_kwimport "parser_nodes::AImport::n_kwimport"
 typedef void (* parser_nodes___AImport___n_kwimport__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AImport___n_kwimport__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AImport___n_kwimport__eq "parser_nodes::AImport::n_kwimport="
-#define ATTR_parser_nodes___AImport____n_id(recv) ATTR(recv, COLOR_parser_nodes___AImport____n_id)
 typedef val_t (* parser_nodes___AImport___n_id_t)(val_t  self);
 val_t parser_nodes___AImport___n_id(val_t  self);
 #define LOCATE_parser_nodes___AImport___n_id "parser_nodes::AImport::n_id"
@@ -2018,21 +2005,18 @@ typedef void (* parser_nodes___AImport___n_id__eq_t)(val_t  self, val_t  param0)
 void parser_nodes___AImport___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AImport___n_id__eq "parser_nodes::AImport::n_id="
 val_t NEW_ANoImport_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ANoImport____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___ANoImport____n_visibility)
 typedef val_t (* parser_nodes___ANoImport___n_visibility_t)(val_t  self);
 val_t parser_nodes___ANoImport___n_visibility(val_t  self);
 #define LOCATE_parser_nodes___ANoImport___n_visibility "parser_nodes::ANoImport::n_visibility"
 typedef void (* parser_nodes___ANoImport___n_visibility__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ANoImport___n_visibility__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANoImport___n_visibility__eq "parser_nodes::ANoImport::n_visibility="
-#define ATTR_parser_nodes___ANoImport____n_kwimport(recv) ATTR(recv, COLOR_parser_nodes___ANoImport____n_kwimport)
 typedef val_t (* parser_nodes___ANoImport___n_kwimport_t)(val_t  self);
 val_t parser_nodes___ANoImport___n_kwimport(val_t  self);
 #define LOCATE_parser_nodes___ANoImport___n_kwimport "parser_nodes::ANoImport::n_kwimport"
 typedef void (* parser_nodes___ANoImport___n_kwimport__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ANoImport___n_kwimport__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANoImport___n_kwimport__eq "parser_nodes::ANoImport::n_kwimport="
-#define ATTR_parser_nodes___ANoImport____n_kwend(recv) ATTR(recv, COLOR_parser_nodes___ANoImport____n_kwend)
 typedef val_t (* parser_nodes___ANoImport___n_kwend_t)(val_t  self);
 val_t parser_nodes___ANoImport___n_kwend(val_t  self);
 #define LOCATE_parser_nodes___ANoImport___n_kwend "parser_nodes::ANoImport::n_kwend"
@@ -2041,7 +2025,6 @@ void parser_nodes___ANoImport___n_kwend__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANoImport___n_kwend__eq "parser_nodes::ANoImport::n_kwend="
 val_t NEW_APublicVisibility_parser_nodes___PNode___init();
 val_t NEW_APrivateVisibility_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___APrivateVisibility____n_kwprivate(recv) ATTR(recv, COLOR_parser_nodes___APrivateVisibility____n_kwprivate)
 typedef val_t (* parser_nodes___APrivateVisibility___n_kwprivate_t)(val_t  self);
 val_t parser_nodes___APrivateVisibility___n_kwprivate(val_t  self);
 #define LOCATE_parser_nodes___APrivateVisibility___n_kwprivate "parser_nodes::APrivateVisibility::n_kwprivate"
@@ -2049,7 +2032,6 @@ typedef void (* parser_nodes___APrivateVisibility___n_kwprivate__eq_t)(val_t  se
 void parser_nodes___APrivateVisibility___n_kwprivate__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___APrivateVisibility___n_kwprivate__eq "parser_nodes::APrivateVisibility::n_kwprivate="
 val_t NEW_AProtectedVisibility_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(recv) ATTR(recv, COLOR_parser_nodes___AProtectedVisibility____n_kwprotected)
 typedef val_t (* parser_nodes___AProtectedVisibility___n_kwprotected_t)(val_t  self);
 val_t parser_nodes___AProtectedVisibility___n_kwprotected(val_t  self);
 #define LOCATE_parser_nodes___AProtectedVisibility___n_kwprotected "parser_nodes::AProtectedVisibility::n_kwprotected"
@@ -2057,7 +2039,6 @@ typedef void (* parser_nodes___AProtectedVisibility___n_kwprotected__eq_t)(val_t
 void parser_nodes___AProtectedVisibility___n_kwprotected__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AProtectedVisibility___n_kwprotected__eq "parser_nodes::AProtectedVisibility::n_kwprotected="
 val_t NEW_AIntrudeVisibility_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(recv) ATTR(recv, COLOR_parser_nodes___AIntrudeVisibility____n_kwintrude)
 typedef val_t (* parser_nodes___AIntrudeVisibility___n_kwintrude_t)(val_t  self);
 val_t parser_nodes___AIntrudeVisibility___n_kwintrude(val_t  self);
 #define LOCATE_parser_nodes___AIntrudeVisibility___n_kwintrude "parser_nodes::AIntrudeVisibility::n_kwintrude"
@@ -2065,56 +2046,48 @@ typedef void (* parser_nodes___AIntrudeVisibility___n_kwintrude__eq_t)(val_t  se
 void parser_nodes___AIntrudeVisibility___n_kwintrude__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIntrudeVisibility___n_kwintrude__eq "parser_nodes::AIntrudeVisibility::n_kwintrude="
 val_t NEW_AClassdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AClassdef____n_doc(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_doc)
 typedef val_t (* parser_nodes___AClassdef___n_doc_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_doc(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_doc "parser_nodes::AClassdef::n_doc"
 typedef void (* parser_nodes___AClassdef___n_doc__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClassdef___n_doc__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_doc__eq "parser_nodes::AClassdef::n_doc="
-#define ATTR_parser_nodes___AClassdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_kwredef)
 typedef val_t (* parser_nodes___AClassdef___n_kwredef_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_kwredef(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_kwredef "parser_nodes::AClassdef::n_kwredef"
 typedef void (* parser_nodes___AClassdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClassdef___n_kwredef__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_kwredef__eq "parser_nodes::AClassdef::n_kwredef="
-#define ATTR_parser_nodes___AClassdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_visibility)
 typedef val_t (* parser_nodes___AClassdef___n_visibility_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_visibility(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_visibility "parser_nodes::AClassdef::n_visibility"
 typedef void (* parser_nodes___AClassdef___n_visibility__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClassdef___n_visibility__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_visibility__eq "parser_nodes::AClassdef::n_visibility="
-#define ATTR_parser_nodes___AClassdef____n_classkind(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_classkind)
 typedef val_t (* parser_nodes___AClassdef___n_classkind_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_classkind(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_classkind "parser_nodes::AClassdef::n_classkind"
 typedef void (* parser_nodes___AClassdef___n_classkind__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClassdef___n_classkind__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_classkind__eq "parser_nodes::AClassdef::n_classkind="
-#define ATTR_parser_nodes___AClassdef____n_id(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_id)
 typedef val_t (* parser_nodes___AClassdef___n_id_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_id(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_id "parser_nodes::AClassdef::n_id"
 typedef void (* parser_nodes___AClassdef___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClassdef___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_id__eq "parser_nodes::AClassdef::n_id="
-#define ATTR_parser_nodes___AClassdef____n_formaldefs(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_formaldefs)
 typedef val_t (* parser_nodes___AClassdef___n_formaldefs_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_formaldefs(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_formaldefs "parser_nodes::AClassdef::n_formaldefs"
 typedef void (* parser_nodes___AClassdef___n_formaldefs__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClassdef___n_formaldefs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_formaldefs__eq "parser_nodes::AClassdef::n_formaldefs="
-#define ATTR_parser_nodes___AClassdef____n_superclasses(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_superclasses)
 typedef val_t (* parser_nodes___AClassdef___n_superclasses_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_superclasses(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_superclasses "parser_nodes::AClassdef::n_superclasses"
 typedef void (* parser_nodes___AClassdef___n_superclasses__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClassdef___n_superclasses__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_superclasses__eq "parser_nodes::AClassdef::n_superclasses="
-#define ATTR_parser_nodes___AClassdef____n_propdefs(recv) ATTR(recv, COLOR_parser_nodes___AClassdef____n_propdefs)
 typedef val_t (* parser_nodes___AClassdef___n_propdefs_t)(val_t  self);
 val_t parser_nodes___AClassdef___n_propdefs(val_t  self);
 #define LOCATE_parser_nodes___AClassdef___n_propdefs "parser_nodes::AClassdef::n_propdefs"
@@ -2122,7 +2095,6 @@ typedef void (* parser_nodes___AClassdef___n_propdefs__eq_t)(val_t  self, val_t
 void parser_nodes___AClassdef___n_propdefs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClassdef___n_propdefs__eq "parser_nodes::AClassdef::n_propdefs="
 val_t NEW_ATopClassdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ATopClassdef____n_propdefs(recv) ATTR(recv, COLOR_parser_nodes___ATopClassdef____n_propdefs)
 typedef val_t (* parser_nodes___ATopClassdef___n_propdefs_t)(val_t  self);
 val_t parser_nodes___ATopClassdef___n_propdefs(val_t  self);
 #define LOCATE_parser_nodes___ATopClassdef___n_propdefs "parser_nodes::ATopClassdef::n_propdefs"
@@ -2130,7 +2102,6 @@ typedef void (* parser_nodes___ATopClassdef___n_propdefs__eq_t)(val_t  self, val
 void parser_nodes___ATopClassdef___n_propdefs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ATopClassdef___n_propdefs__eq "parser_nodes::ATopClassdef::n_propdefs="
 val_t NEW_AMainClassdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AMainClassdef____n_propdefs(recv) ATTR(recv, COLOR_parser_nodes___AMainClassdef____n_propdefs)
 typedef val_t (* parser_nodes___AMainClassdef___n_propdefs_t)(val_t  self);
 val_t parser_nodes___AMainClassdef___n_propdefs(val_t  self);
 #define LOCATE_parser_nodes___AMainClassdef___n_propdefs "parser_nodes::AMainClassdef::n_propdefs"
@@ -2138,7 +2109,6 @@ typedef void (* parser_nodes___AMainClassdef___n_propdefs__eq_t)(val_t  self, va
 void parser_nodes___AMainClassdef___n_propdefs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMainClassdef___n_propdefs__eq "parser_nodes::AMainClassdef::n_propdefs="
 val_t NEW_AConcreteClasskind_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AConcreteClasskind____n_kwclass(recv) ATTR(recv, COLOR_parser_nodes___AConcreteClasskind____n_kwclass)
 typedef val_t (* parser_nodes___AConcreteClasskind___n_kwclass_t)(val_t  self);
 val_t parser_nodes___AConcreteClasskind___n_kwclass(val_t  self);
 #define LOCATE_parser_nodes___AConcreteClasskind___n_kwclass "parser_nodes::AConcreteClasskind::n_kwclass"
@@ -2146,14 +2116,12 @@ typedef void (* parser_nodes___AConcreteClasskind___n_kwclass__eq_t)(val_t  self
 void parser_nodes___AConcreteClasskind___n_kwclass__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AConcreteClasskind___n_kwclass__eq "parser_nodes::AConcreteClasskind::n_kwclass="
 val_t NEW_AAbstractClasskind_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(recv) ATTR(recv, COLOR_parser_nodes___AAbstractClasskind____n_kwabstract)
 typedef val_t (* parser_nodes___AAbstractClasskind___n_kwabstract_t)(val_t  self);
 val_t parser_nodes___AAbstractClasskind___n_kwabstract(val_t  self);
 #define LOCATE_parser_nodes___AAbstractClasskind___n_kwabstract "parser_nodes::AAbstractClasskind::n_kwabstract"
 typedef void (* parser_nodes___AAbstractClasskind___n_kwabstract__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAbstractClasskind___n_kwabstract__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAbstractClasskind___n_kwabstract__eq "parser_nodes::AAbstractClasskind::n_kwabstract="
-#define ATTR_parser_nodes___AAbstractClasskind____n_kwclass(recv) ATTR(recv, COLOR_parser_nodes___AAbstractClasskind____n_kwclass)
 typedef val_t (* parser_nodes___AAbstractClasskind___n_kwclass_t)(val_t  self);
 val_t parser_nodes___AAbstractClasskind___n_kwclass(val_t  self);
 #define LOCATE_parser_nodes___AAbstractClasskind___n_kwclass "parser_nodes::AAbstractClasskind::n_kwclass"
@@ -2161,7 +2129,6 @@ typedef void (* parser_nodes___AAbstractClasskind___n_kwclass__eq_t)(val_t  self
 void parser_nodes___AAbstractClasskind___n_kwclass__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAbstractClasskind___n_kwclass__eq "parser_nodes::AAbstractClasskind::n_kwclass="
 val_t NEW_AInterfaceClasskind_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(recv) ATTR(recv, COLOR_parser_nodes___AInterfaceClasskind____n_kwinterface)
 typedef val_t (* parser_nodes___AInterfaceClasskind___n_kwinterface_t)(val_t  self);
 val_t parser_nodes___AInterfaceClasskind___n_kwinterface(val_t  self);
 #define LOCATE_parser_nodes___AInterfaceClasskind___n_kwinterface "parser_nodes::AInterfaceClasskind::n_kwinterface"
@@ -2169,7 +2136,6 @@ typedef void (* parser_nodes___AInterfaceClasskind___n_kwinterface__eq_t)(val_t
 void parser_nodes___AInterfaceClasskind___n_kwinterface__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AInterfaceClasskind___n_kwinterface__eq "parser_nodes::AInterfaceClasskind::n_kwinterface="
 val_t NEW_AUniversalClasskind_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(recv) ATTR(recv, COLOR_parser_nodes___AUniversalClasskind____n_kwuniversal)
 typedef val_t (* parser_nodes___AUniversalClasskind___n_kwuniversal_t)(val_t  self);
 val_t parser_nodes___AUniversalClasskind___n_kwuniversal(val_t  self);
 #define LOCATE_parser_nodes___AUniversalClasskind___n_kwuniversal "parser_nodes::AUniversalClasskind::n_kwuniversal"
@@ -2177,14 +2143,12 @@ typedef void (* parser_nodes___AUniversalClasskind___n_kwuniversal__eq_t)(val_t
 void parser_nodes___AUniversalClasskind___n_kwuniversal__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AUniversalClasskind___n_kwuniversal__eq "parser_nodes::AUniversalClasskind::n_kwuniversal="
 val_t NEW_AFormaldef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AFormaldef____n_id(recv) ATTR(recv, COLOR_parser_nodes___AFormaldef____n_id)
 typedef val_t (* parser_nodes___AFormaldef___n_id_t)(val_t  self);
 val_t parser_nodes___AFormaldef___n_id(val_t  self);
 #define LOCATE_parser_nodes___AFormaldef___n_id "parser_nodes::AFormaldef::n_id"
 typedef void (* parser_nodes___AFormaldef___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AFormaldef___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AFormaldef___n_id__eq "parser_nodes::AFormaldef::n_id="
-#define ATTR_parser_nodes___AFormaldef____n_type(recv) ATTR(recv, COLOR_parser_nodes___AFormaldef____n_type)
 typedef val_t (* parser_nodes___AFormaldef___n_type_t)(val_t  self);
 val_t parser_nodes___AFormaldef___n_type(val_t  self);
 #define LOCATE_parser_nodes___AFormaldef___n_type "parser_nodes::AFormaldef::n_type"
@@ -2192,14 +2156,12 @@ typedef void (* parser_nodes___AFormaldef___n_type__eq_t)(val_t  self, val_t  pa
 void parser_nodes___AFormaldef___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AFormaldef___n_type__eq "parser_nodes::AFormaldef::n_type="
 val_t NEW_ASuperclass_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ASuperclass____n_kwspecial(recv) ATTR(recv, COLOR_parser_nodes___ASuperclass____n_kwspecial)
 typedef val_t (* parser_nodes___ASuperclass___n_kwspecial_t)(val_t  self);
 val_t parser_nodes___ASuperclass___n_kwspecial(val_t  self);
 #define LOCATE_parser_nodes___ASuperclass___n_kwspecial "parser_nodes::ASuperclass::n_kwspecial"
 typedef void (* parser_nodes___ASuperclass___n_kwspecial__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ASuperclass___n_kwspecial__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASuperclass___n_kwspecial__eq "parser_nodes::ASuperclass::n_kwspecial="
-#define ATTR_parser_nodes___ASuperclass____n_type(recv) ATTR(recv, COLOR_parser_nodes___ASuperclass____n_type)
 typedef val_t (* parser_nodes___ASuperclass___n_type_t)(val_t  self);
 val_t parser_nodes___ASuperclass___n_type(val_t  self);
 #define LOCATE_parser_nodes___ASuperclass___n_type "parser_nodes::ASuperclass::n_type"
@@ -2207,56 +2169,48 @@ typedef void (* parser_nodes___ASuperclass___n_type__eq_t)(val_t  self, val_t  p
 void parser_nodes___ASuperclass___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASuperclass___n_type__eq "parser_nodes::ASuperclass::n_type="
 val_t NEW_AAttrPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAttrPropdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_kwredef)
 typedef val_t (* parser_nodes___AAttrPropdef___n_kwredef_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_kwredef(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_kwredef "parser_nodes::AAttrPropdef::n_kwredef"
 typedef void (* parser_nodes___AAttrPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrPropdef___n_kwredef__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_kwredef__eq "parser_nodes::AAttrPropdef::n_kwredef="
-#define ATTR_parser_nodes___AAttrPropdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_visibility)
 typedef val_t (* parser_nodes___AAttrPropdef___n_visibility_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_visibility(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_visibility "parser_nodes::AAttrPropdef::n_visibility"
 typedef void (* parser_nodes___AAttrPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrPropdef___n_visibility__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_visibility__eq "parser_nodes::AAttrPropdef::n_visibility="
-#define ATTR_parser_nodes___AAttrPropdef____n_kwattr(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_kwattr)
 typedef val_t (* parser_nodes___AAttrPropdef___n_kwattr_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_kwattr(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_kwattr "parser_nodes::AAttrPropdef::n_kwattr"
 typedef void (* parser_nodes___AAttrPropdef___n_kwattr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrPropdef___n_kwattr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_kwattr__eq "parser_nodes::AAttrPropdef::n_kwattr="
-#define ATTR_parser_nodes___AAttrPropdef____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_id)
 typedef val_t (* parser_nodes___AAttrPropdef___n_id_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_id(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_id "parser_nodes::AAttrPropdef::n_id"
 typedef void (* parser_nodes___AAttrPropdef___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrPropdef___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_id__eq "parser_nodes::AAttrPropdef::n_id="
-#define ATTR_parser_nodes___AAttrPropdef____n_type(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_type)
 typedef val_t (* parser_nodes___AAttrPropdef___n_type_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_type(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_type "parser_nodes::AAttrPropdef::n_type"
 typedef void (* parser_nodes___AAttrPropdef___n_type__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrPropdef___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_type__eq "parser_nodes::AAttrPropdef::n_type="
-#define ATTR_parser_nodes___AAttrPropdef____n_readable(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_readable)
 typedef val_t (* parser_nodes___AAttrPropdef___n_readable_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_readable(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_readable "parser_nodes::AAttrPropdef::n_readable"
 typedef void (* parser_nodes___AAttrPropdef___n_readable__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrPropdef___n_readable__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_readable__eq "parser_nodes::AAttrPropdef::n_readable="
-#define ATTR_parser_nodes___AAttrPropdef____n_writable(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_writable)
 typedef val_t (* parser_nodes___AAttrPropdef___n_writable_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_writable(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_writable "parser_nodes::AAttrPropdef::n_writable"
 typedef void (* parser_nodes___AAttrPropdef___n_writable__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrPropdef___n_writable__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_writable__eq "parser_nodes::AAttrPropdef::n_writable="
-#define ATTR_parser_nodes___AAttrPropdef____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAttrPropdef____n_expr)
 typedef val_t (* parser_nodes___AAttrPropdef___n_expr_t)(val_t  self);
 val_t parser_nodes___AAttrPropdef___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AAttrPropdef___n_expr "parser_nodes::AAttrPropdef::n_expr"
@@ -2264,28 +2218,24 @@ typedef void (* parser_nodes___AAttrPropdef___n_expr__eq_t)(val_t  self, val_t
 void parser_nodes___AAttrPropdef___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrPropdef___n_expr__eq "parser_nodes::AAttrPropdef::n_expr="
 val_t NEW_AMethPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AMethPropdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_kwredef)
 typedef val_t (* parser_nodes___AMethPropdef___n_kwredef_t)(val_t  self);
 val_t parser_nodes___AMethPropdef___n_kwredef(val_t  self);
 #define LOCATE_parser_nodes___AMethPropdef___n_kwredef "parser_nodes::AMethPropdef::n_kwredef"
 typedef void (* parser_nodes___AMethPropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AMethPropdef___n_kwredef__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMethPropdef___n_kwredef__eq "parser_nodes::AMethPropdef::n_kwredef="
-#define ATTR_parser_nodes___AMethPropdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_visibility)
 typedef val_t (* parser_nodes___AMethPropdef___n_visibility_t)(val_t  self);
 val_t parser_nodes___AMethPropdef___n_visibility(val_t  self);
 #define LOCATE_parser_nodes___AMethPropdef___n_visibility "parser_nodes::AMethPropdef::n_visibility"
 typedef void (* parser_nodes___AMethPropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AMethPropdef___n_visibility__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMethPropdef___n_visibility__eq "parser_nodes::AMethPropdef::n_visibility="
-#define ATTR_parser_nodes___AMethPropdef____n_methid(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_methid)
 typedef val_t (* parser_nodes___AMethPropdef___n_methid_t)(val_t  self);
 val_t parser_nodes___AMethPropdef___n_methid(val_t  self);
 #define LOCATE_parser_nodes___AMethPropdef___n_methid "parser_nodes::AMethPropdef::n_methid"
 typedef void (* parser_nodes___AMethPropdef___n_methid__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AMethPropdef___n_methid__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMethPropdef___n_methid__eq "parser_nodes::AMethPropdef::n_methid="
-#define ATTR_parser_nodes___AMethPropdef____n_signature(recv) ATTR(recv, COLOR_parser_nodes___AMethPropdef____n_signature)
 typedef val_t (* parser_nodes___AMethPropdef___n_signature_t)(val_t  self);
 val_t parser_nodes___AMethPropdef___n_signature(val_t  self);
 #define LOCATE_parser_nodes___AMethPropdef___n_signature "parser_nodes::AMethPropdef::n_signature"
@@ -2293,7 +2243,6 @@ typedef void (* parser_nodes___AMethPropdef___n_signature__eq_t)(val_t  self, va
 void parser_nodes___AMethPropdef___n_signature__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMethPropdef___n_signature__eq "parser_nodes::AMethPropdef::n_signature="
 val_t NEW_ADeferredMethPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___ADeferredMethPropdef____n_kwmeth)
 typedef val_t (* parser_nodes___ADeferredMethPropdef___n_kwmeth_t)(val_t  self);
 val_t parser_nodes___ADeferredMethPropdef___n_kwmeth(val_t  self);
 #define LOCATE_parser_nodes___ADeferredMethPropdef___n_kwmeth "parser_nodes::ADeferredMethPropdef::n_kwmeth"
@@ -2301,7 +2250,6 @@ typedef void (* parser_nodes___ADeferredMethPropdef___n_kwmeth__eq_t)(val_t  sel
 void parser_nodes___ADeferredMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ADeferredMethPropdef___n_kwmeth__eq "parser_nodes::ADeferredMethPropdef::n_kwmeth="
 val_t NEW_AInternMethPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___AInternMethPropdef____n_kwmeth)
 typedef val_t (* parser_nodes___AInternMethPropdef___n_kwmeth_t)(val_t  self);
 val_t parser_nodes___AInternMethPropdef___n_kwmeth(val_t  self);
 #define LOCATE_parser_nodes___AInternMethPropdef___n_kwmeth "parser_nodes::AInternMethPropdef::n_kwmeth"
@@ -2309,14 +2257,12 @@ typedef void (* parser_nodes___AInternMethPropdef___n_kwmeth__eq_t)(val_t  self,
 void parser_nodes___AInternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AInternMethPropdef___n_kwmeth__eq "parser_nodes::AInternMethPropdef::n_kwmeth="
 val_t NEW_AExternMethPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___AExternMethPropdef____n_kwmeth)
 typedef val_t (* parser_nodes___AExternMethPropdef___n_kwmeth_t)(val_t  self);
 val_t parser_nodes___AExternMethPropdef___n_kwmeth(val_t  self);
 #define LOCATE_parser_nodes___AExternMethPropdef___n_kwmeth "parser_nodes::AExternMethPropdef::n_kwmeth"
 typedef void (* parser_nodes___AExternMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AExternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AExternMethPropdef___n_kwmeth__eq "parser_nodes::AExternMethPropdef::n_kwmeth="
-#define ATTR_parser_nodes___AExternMethPropdef____n_extern(recv) ATTR(recv, COLOR_parser_nodes___AExternMethPropdef____n_extern)
 typedef val_t (* parser_nodes___AExternMethPropdef___n_extern_t)(val_t  self);
 val_t parser_nodes___AExternMethPropdef___n_extern(val_t  self);
 #define LOCATE_parser_nodes___AExternMethPropdef___n_extern "parser_nodes::AExternMethPropdef::n_extern"
@@ -2324,14 +2270,12 @@ typedef void (* parser_nodes___AExternMethPropdef___n_extern__eq_t)(val_t  self,
 void parser_nodes___AExternMethPropdef___n_extern__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AExternMethPropdef___n_extern__eq "parser_nodes::AExternMethPropdef::n_extern="
 val_t NEW_AConcreteMethPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(recv) ATTR(recv, COLOR_parser_nodes___AConcreteMethPropdef____n_kwmeth)
 typedef val_t (* parser_nodes___AConcreteMethPropdef___n_kwmeth_t)(val_t  self);
 val_t parser_nodes___AConcreteMethPropdef___n_kwmeth(val_t  self);
 #define LOCATE_parser_nodes___AConcreteMethPropdef___n_kwmeth "parser_nodes::AConcreteMethPropdef::n_kwmeth"
 typedef void (* parser_nodes___AConcreteMethPropdef___n_kwmeth__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AConcreteMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AConcreteMethPropdef___n_kwmeth__eq "parser_nodes::AConcreteMethPropdef::n_kwmeth="
-#define ATTR_parser_nodes___AConcreteMethPropdef____n_block(recv) ATTR(recv, COLOR_parser_nodes___AConcreteMethPropdef____n_block)
 typedef val_t (* parser_nodes___AConcreteMethPropdef___n_block_t)(val_t  self);
 val_t parser_nodes___AConcreteMethPropdef___n_block(val_t  self);
 #define LOCATE_parser_nodes___AConcreteMethPropdef___n_block "parser_nodes::AConcreteMethPropdef::n_block"
@@ -2339,7 +2283,6 @@ typedef void (* parser_nodes___AConcreteMethPropdef___n_block__eq_t)(val_t  self
 void parser_nodes___AConcreteMethPropdef___n_block__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AConcreteMethPropdef___n_block__eq "parser_nodes::AConcreteMethPropdef::n_block="
 val_t NEW_AConcreteInitPropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(recv) ATTR(recv, COLOR_parser_nodes___AConcreteInitPropdef____n_kwinit)
 typedef val_t (* parser_nodes___AConcreteInitPropdef___n_kwinit_t)(val_t  self);
 val_t parser_nodes___AConcreteInitPropdef___n_kwinit(val_t  self);
 #define LOCATE_parser_nodes___AConcreteInitPropdef___n_kwinit "parser_nodes::AConcreteInitPropdef::n_kwinit"
@@ -2348,35 +2291,30 @@ void parser_nodes___AConcreteInitPropdef___n_kwinit__eq(val_t  self, val_t  para
 #define LOCATE_parser_nodes___AConcreteInitPropdef___n_kwinit__eq "parser_nodes::AConcreteInitPropdef::n_kwinit="
 val_t NEW_AMainMethPropdef_parser_nodes___PNode___init();
 val_t NEW_ATypePropdef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ATypePropdef____n_kwredef(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_kwredef)
 typedef val_t (* parser_nodes___ATypePropdef___n_kwredef_t)(val_t  self);
 val_t parser_nodes___ATypePropdef___n_kwredef(val_t  self);
 #define LOCATE_parser_nodes___ATypePropdef___n_kwredef "parser_nodes::ATypePropdef::n_kwredef"
 typedef void (* parser_nodes___ATypePropdef___n_kwredef__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ATypePropdef___n_kwredef__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ATypePropdef___n_kwredef__eq "parser_nodes::ATypePropdef::n_kwredef="
-#define ATTR_parser_nodes___ATypePropdef____n_visibility(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_visibility)
 typedef val_t (* parser_nodes___ATypePropdef___n_visibility_t)(val_t  self);
 val_t parser_nodes___ATypePropdef___n_visibility(val_t  self);
 #define LOCATE_parser_nodes___ATypePropdef___n_visibility "parser_nodes::ATypePropdef::n_visibility"
 typedef void (* parser_nodes___ATypePropdef___n_visibility__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ATypePropdef___n_visibility__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ATypePropdef___n_visibility__eq "parser_nodes::ATypePropdef::n_visibility="
-#define ATTR_parser_nodes___ATypePropdef____n_kwtype(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_kwtype)
 typedef val_t (* parser_nodes___ATypePropdef___n_kwtype_t)(val_t  self);
 val_t parser_nodes___ATypePropdef___n_kwtype(val_t  self);
 #define LOCATE_parser_nodes___ATypePropdef___n_kwtype "parser_nodes::ATypePropdef::n_kwtype"
 typedef void (* parser_nodes___ATypePropdef___n_kwtype__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ATypePropdef___n_kwtype__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ATypePropdef___n_kwtype__eq "parser_nodes::ATypePropdef::n_kwtype="
-#define ATTR_parser_nodes___ATypePropdef____n_id(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_id)
 typedef val_t (* parser_nodes___ATypePropdef___n_id_t)(val_t  self);
 val_t parser_nodes___ATypePropdef___n_id(val_t  self);
 #define LOCATE_parser_nodes___ATypePropdef___n_id "parser_nodes::ATypePropdef::n_id"
 typedef void (* parser_nodes___ATypePropdef___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ATypePropdef___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ATypePropdef___n_id__eq "parser_nodes::ATypePropdef::n_id="
-#define ATTR_parser_nodes___ATypePropdef____n_type(recv) ATTR(recv, COLOR_parser_nodes___ATypePropdef____n_type)
 typedef val_t (* parser_nodes___ATypePropdef___n_type_t)(val_t  self);
 val_t parser_nodes___ATypePropdef___n_type(val_t  self);
 #define LOCATE_parser_nodes___ATypePropdef___n_type "parser_nodes::ATypePropdef::n_type"
@@ -2384,7 +2322,6 @@ typedef void (* parser_nodes___ATypePropdef___n_type__eq_t)(val_t  self, val_t
 void parser_nodes___ATypePropdef___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ATypePropdef___n_type__eq "parser_nodes::ATypePropdef::n_type="
 val_t NEW_AReadAble_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AReadAble____n_kwreadable(recv) ATTR(recv, COLOR_parser_nodes___AReadAble____n_kwreadable)
 typedef val_t (* parser_nodes___AReadAble___n_kwreadable_t)(val_t  self);
 val_t parser_nodes___AReadAble___n_kwreadable(val_t  self);
 #define LOCATE_parser_nodes___AReadAble___n_kwreadable "parser_nodes::AReadAble::n_kwreadable"
@@ -2392,7 +2329,6 @@ typedef void (* parser_nodes___AReadAble___n_kwreadable__eq_t)(val_t  self, val_
 void parser_nodes___AReadAble___n_kwreadable__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AReadAble___n_kwreadable__eq "parser_nodes::AReadAble::n_kwreadable="
 val_t NEW_AWriteAble_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AWriteAble____n_kwwritable(recv) ATTR(recv, COLOR_parser_nodes___AWriteAble____n_kwwritable)
 typedef val_t (* parser_nodes___AWriteAble___n_kwwritable_t)(val_t  self);
 val_t parser_nodes___AWriteAble___n_kwwritable(val_t  self);
 #define LOCATE_parser_nodes___AWriteAble___n_kwwritable "parser_nodes::AWriteAble::n_kwwritable"
@@ -2400,7 +2336,6 @@ typedef void (* parser_nodes___AWriteAble___n_kwwritable__eq_t)(val_t  self, val
 void parser_nodes___AWriteAble___n_kwwritable__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AWriteAble___n_kwwritable__eq "parser_nodes::AWriteAble::n_kwwritable="
 val_t NEW_AIdMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AIdMethid____n_id(recv) ATTR(recv, COLOR_parser_nodes___AIdMethid____n_id)
 typedef val_t (* parser_nodes___AIdMethid___n_id_t)(val_t  self);
 val_t parser_nodes___AIdMethid___n_id(val_t  self);
 #define LOCATE_parser_nodes___AIdMethid___n_id "parser_nodes::AIdMethid::n_id"
@@ -2408,7 +2343,6 @@ typedef void (* parser_nodes___AIdMethid___n_id__eq_t)(val_t  self, val_t  param
 void parser_nodes___AIdMethid___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIdMethid___n_id__eq "parser_nodes::AIdMethid::n_id="
 val_t NEW_APlusMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___APlusMethid____n_plus(recv) ATTR(recv, COLOR_parser_nodes___APlusMethid____n_plus)
 typedef val_t (* parser_nodes___APlusMethid___n_plus_t)(val_t  self);
 val_t parser_nodes___APlusMethid___n_plus(val_t  self);
 #define LOCATE_parser_nodes___APlusMethid___n_plus "parser_nodes::APlusMethid::n_plus"
@@ -2416,7 +2350,6 @@ typedef void (* parser_nodes___APlusMethid___n_plus__eq_t)(val_t  self, val_t  p
 void parser_nodes___APlusMethid___n_plus__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___APlusMethid___n_plus__eq "parser_nodes::APlusMethid::n_plus="
 val_t NEW_AMinusMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AMinusMethid____n_minus(recv) ATTR(recv, COLOR_parser_nodes___AMinusMethid____n_minus)
 typedef val_t (* parser_nodes___AMinusMethid___n_minus_t)(val_t  self);
 val_t parser_nodes___AMinusMethid___n_minus(val_t  self);
 #define LOCATE_parser_nodes___AMinusMethid___n_minus "parser_nodes::AMinusMethid::n_minus"
@@ -2424,7 +2357,6 @@ typedef void (* parser_nodes___AMinusMethid___n_minus__eq_t)(val_t  self, val_t
 void parser_nodes___AMinusMethid___n_minus__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMinusMethid___n_minus__eq "parser_nodes::AMinusMethid::n_minus="
 val_t NEW_AStarMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AStarMethid____n_star(recv) ATTR(recv, COLOR_parser_nodes___AStarMethid____n_star)
 typedef val_t (* parser_nodes___AStarMethid___n_star_t)(val_t  self);
 val_t parser_nodes___AStarMethid___n_star(val_t  self);
 #define LOCATE_parser_nodes___AStarMethid___n_star "parser_nodes::AStarMethid::n_star"
@@ -2432,7 +2364,6 @@ typedef void (* parser_nodes___AStarMethid___n_star__eq_t)(val_t  self, val_t  p
 void parser_nodes___AStarMethid___n_star__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AStarMethid___n_star__eq "parser_nodes::AStarMethid::n_star="
 val_t NEW_ASlashMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ASlashMethid____n_slash(recv) ATTR(recv, COLOR_parser_nodes___ASlashMethid____n_slash)
 typedef val_t (* parser_nodes___ASlashMethid___n_slash_t)(val_t  self);
 val_t parser_nodes___ASlashMethid___n_slash(val_t  self);
 #define LOCATE_parser_nodes___ASlashMethid___n_slash "parser_nodes::ASlashMethid::n_slash"
@@ -2440,7 +2371,6 @@ typedef void (* parser_nodes___ASlashMethid___n_slash__eq_t)(val_t  self, val_t
 void parser_nodes___ASlashMethid___n_slash__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASlashMethid___n_slash__eq "parser_nodes::ASlashMethid::n_slash="
 val_t NEW_APercentMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___APercentMethid____n_percent(recv) ATTR(recv, COLOR_parser_nodes___APercentMethid____n_percent)
 typedef val_t (* parser_nodes___APercentMethid___n_percent_t)(val_t  self);
 val_t parser_nodes___APercentMethid___n_percent(val_t  self);
 #define LOCATE_parser_nodes___APercentMethid___n_percent "parser_nodes::APercentMethid::n_percent"
@@ -2448,7 +2378,6 @@ typedef void (* parser_nodes___APercentMethid___n_percent__eq_t)(val_t  self, va
 void parser_nodes___APercentMethid___n_percent__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___APercentMethid___n_percent__eq "parser_nodes::APercentMethid::n_percent="
 val_t NEW_AEqMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AEqMethid____n_eq(recv) ATTR(recv, COLOR_parser_nodes___AEqMethid____n_eq)
 typedef val_t (* parser_nodes___AEqMethid___n_eq_t)(val_t  self);
 val_t parser_nodes___AEqMethid___n_eq(val_t  self);
 #define LOCATE_parser_nodes___AEqMethid___n_eq "parser_nodes::AEqMethid::n_eq"
@@ -2456,7 +2385,6 @@ typedef void (* parser_nodes___AEqMethid___n_eq__eq_t)(val_t  self, val_t  param
 void parser_nodes___AEqMethid___n_eq__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AEqMethid___n_eq__eq "parser_nodes::AEqMethid::n_eq="
 val_t NEW_ANeMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ANeMethid____n_ne(recv) ATTR(recv, COLOR_parser_nodes___ANeMethid____n_ne)
 typedef val_t (* parser_nodes___ANeMethid___n_ne_t)(val_t  self);
 val_t parser_nodes___ANeMethid___n_ne(val_t  self);
 #define LOCATE_parser_nodes___ANeMethid___n_ne "parser_nodes::ANeMethid::n_ne"
@@ -2464,7 +2392,6 @@ typedef void (* parser_nodes___ANeMethid___n_ne__eq_t)(val_t  self, val_t  param
 void parser_nodes___ANeMethid___n_ne__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANeMethid___n_ne__eq "parser_nodes::ANeMethid::n_ne="
 val_t NEW_ALeMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ALeMethid____n_le(recv) ATTR(recv, COLOR_parser_nodes___ALeMethid____n_le)
 typedef val_t (* parser_nodes___ALeMethid___n_le_t)(val_t  self);
 val_t parser_nodes___ALeMethid___n_le(val_t  self);
 #define LOCATE_parser_nodes___ALeMethid___n_le "parser_nodes::ALeMethid::n_le"
@@ -2472,7 +2399,6 @@ typedef void (* parser_nodes___ALeMethid___n_le__eq_t)(val_t  self, val_t  param
 void parser_nodes___ALeMethid___n_le__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ALeMethid___n_le__eq "parser_nodes::ALeMethid::n_le="
 val_t NEW_AGeMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AGeMethid____n_ge(recv) ATTR(recv, COLOR_parser_nodes___AGeMethid____n_ge)
 typedef val_t (* parser_nodes___AGeMethid___n_ge_t)(val_t  self);
 val_t parser_nodes___AGeMethid___n_ge(val_t  self);
 #define LOCATE_parser_nodes___AGeMethid___n_ge "parser_nodes::AGeMethid::n_ge"
@@ -2480,7 +2406,6 @@ typedef void (* parser_nodes___AGeMethid___n_ge__eq_t)(val_t  self, val_t  param
 void parser_nodes___AGeMethid___n_ge__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AGeMethid___n_ge__eq "parser_nodes::AGeMethid::n_ge="
 val_t NEW_ALtMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ALtMethid____n_lt(recv) ATTR(recv, COLOR_parser_nodes___ALtMethid____n_lt)
 typedef val_t (* parser_nodes___ALtMethid___n_lt_t)(val_t  self);
 val_t parser_nodes___ALtMethid___n_lt(val_t  self);
 #define LOCATE_parser_nodes___ALtMethid___n_lt "parser_nodes::ALtMethid::n_lt"
@@ -2488,7 +2413,6 @@ typedef void (* parser_nodes___ALtMethid___n_lt__eq_t)(val_t  self, val_t  param
 void parser_nodes___ALtMethid___n_lt__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ALtMethid___n_lt__eq "parser_nodes::ALtMethid::n_lt="
 val_t NEW_AGtMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AGtMethid____n_gt(recv) ATTR(recv, COLOR_parser_nodes___AGtMethid____n_gt)
 typedef val_t (* parser_nodes___AGtMethid___n_gt_t)(val_t  self);
 val_t parser_nodes___AGtMethid___n_gt(val_t  self);
 #define LOCATE_parser_nodes___AGtMethid___n_gt "parser_nodes::AGtMethid::n_gt"
@@ -2496,14 +2420,12 @@ typedef void (* parser_nodes___AGtMethid___n_gt__eq_t)(val_t  self, val_t  param
 void parser_nodes___AGtMethid___n_gt__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AGtMethid___n_gt__eq "parser_nodes::AGtMethid::n_gt="
 val_t NEW_ABraMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ABraMethid____n_obra(recv) ATTR(recv, COLOR_parser_nodes___ABraMethid____n_obra)
 typedef val_t (* parser_nodes___ABraMethid___n_obra_t)(val_t  self);
 val_t parser_nodes___ABraMethid___n_obra(val_t  self);
 #define LOCATE_parser_nodes___ABraMethid___n_obra "parser_nodes::ABraMethid::n_obra"
 typedef void (* parser_nodes___ABraMethid___n_obra__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ABraMethid___n_obra__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABraMethid___n_obra__eq "parser_nodes::ABraMethid::n_obra="
-#define ATTR_parser_nodes___ABraMethid____n_cbra(recv) ATTR(recv, COLOR_parser_nodes___ABraMethid____n_cbra)
 typedef val_t (* parser_nodes___ABraMethid___n_cbra_t)(val_t  self);
 val_t parser_nodes___ABraMethid___n_cbra(val_t  self);
 #define LOCATE_parser_nodes___ABraMethid___n_cbra "parser_nodes::ABraMethid::n_cbra"
@@ -2511,7 +2433,6 @@ typedef void (* parser_nodes___ABraMethid___n_cbra__eq_t)(val_t  self, val_t  pa
 void parser_nodes___ABraMethid___n_cbra__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABraMethid___n_cbra__eq "parser_nodes::ABraMethid::n_cbra="
 val_t NEW_AStarshipMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AStarshipMethid____n_starship(recv) ATTR(recv, COLOR_parser_nodes___AStarshipMethid____n_starship)
 typedef val_t (* parser_nodes___AStarshipMethid___n_starship_t)(val_t  self);
 val_t parser_nodes___AStarshipMethid___n_starship(val_t  self);
 #define LOCATE_parser_nodes___AStarshipMethid___n_starship "parser_nodes::AStarshipMethid::n_starship"
@@ -2519,14 +2440,12 @@ typedef void (* parser_nodes___AStarshipMethid___n_starship__eq_t)(val_t  self,
 void parser_nodes___AStarshipMethid___n_starship__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AStarshipMethid___n_starship__eq "parser_nodes::AStarshipMethid::n_starship="
 val_t NEW_AAssignMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAssignMethid____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAssignMethid____n_id)
 typedef val_t (* parser_nodes___AAssignMethid___n_id_t)(val_t  self);
 val_t parser_nodes___AAssignMethid___n_id(val_t  self);
 #define LOCATE_parser_nodes___AAssignMethid___n_id "parser_nodes::AAssignMethid::n_id"
 typedef void (* parser_nodes___AAssignMethid___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAssignMethid___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAssignMethid___n_id__eq "parser_nodes::AAssignMethid::n_id="
-#define ATTR_parser_nodes___AAssignMethid____n_assign(recv) ATTR(recv, COLOR_parser_nodes___AAssignMethid____n_assign)
 typedef val_t (* parser_nodes___AAssignMethid___n_assign_t)(val_t  self);
 val_t parser_nodes___AAssignMethid___n_assign(val_t  self);
 #define LOCATE_parser_nodes___AAssignMethid___n_assign "parser_nodes::AAssignMethid::n_assign"
@@ -2534,21 +2453,18 @@ typedef void (* parser_nodes___AAssignMethid___n_assign__eq_t)(val_t  self, val_
 void parser_nodes___AAssignMethid___n_assign__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAssignMethid___n_assign__eq "parser_nodes::AAssignMethid::n_assign="
 val_t NEW_ABraassignMethid_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ABraassignMethid____n_obra(recv) ATTR(recv, COLOR_parser_nodes___ABraassignMethid____n_obra)
 typedef val_t (* parser_nodes___ABraassignMethid___n_obra_t)(val_t  self);
 val_t parser_nodes___ABraassignMethid___n_obra(val_t  self);
 #define LOCATE_parser_nodes___ABraassignMethid___n_obra "parser_nodes::ABraassignMethid::n_obra"
 typedef void (* parser_nodes___ABraassignMethid___n_obra__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ABraassignMethid___n_obra__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABraassignMethid___n_obra__eq "parser_nodes::ABraassignMethid::n_obra="
-#define ATTR_parser_nodes___ABraassignMethid____n_cbra(recv) ATTR(recv, COLOR_parser_nodes___ABraassignMethid____n_cbra)
 typedef val_t (* parser_nodes___ABraassignMethid___n_cbra_t)(val_t  self);
 val_t parser_nodes___ABraassignMethid___n_cbra(val_t  self);
 #define LOCATE_parser_nodes___ABraassignMethid___n_cbra "parser_nodes::ABraassignMethid::n_cbra"
 typedef void (* parser_nodes___ABraassignMethid___n_cbra__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ABraassignMethid___n_cbra__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABraassignMethid___n_cbra__eq "parser_nodes::ABraassignMethid::n_cbra="
-#define ATTR_parser_nodes___ABraassignMethid____n_assign(recv) ATTR(recv, COLOR_parser_nodes___ABraassignMethid____n_assign)
 typedef val_t (* parser_nodes___ABraassignMethid___n_assign_t)(val_t  self);
 val_t parser_nodes___ABraassignMethid___n_assign(val_t  self);
 #define LOCATE_parser_nodes___ABraassignMethid___n_assign "parser_nodes::ABraassignMethid::n_assign"
@@ -2556,21 +2472,18 @@ typedef void (* parser_nodes___ABraassignMethid___n_assign__eq_t)(val_t  self, v
 void parser_nodes___ABraassignMethid___n_assign__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABraassignMethid___n_assign__eq "parser_nodes::ABraassignMethid::n_assign="
 val_t NEW_ASignature_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ASignature____n_params(recv) ATTR(recv, COLOR_parser_nodes___ASignature____n_params)
 typedef val_t (* parser_nodes___ASignature___n_params_t)(val_t  self);
 val_t parser_nodes___ASignature___n_params(val_t  self);
 #define LOCATE_parser_nodes___ASignature___n_params "parser_nodes::ASignature::n_params"
 typedef void (* parser_nodes___ASignature___n_params__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ASignature___n_params__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASignature___n_params__eq "parser_nodes::ASignature::n_params="
-#define ATTR_parser_nodes___ASignature____n_type(recv) ATTR(recv, COLOR_parser_nodes___ASignature____n_type)
 typedef val_t (* parser_nodes___ASignature___n_type_t)(val_t  self);
 val_t parser_nodes___ASignature___n_type(val_t  self);
 #define LOCATE_parser_nodes___ASignature___n_type "parser_nodes::ASignature::n_type"
 typedef void (* parser_nodes___ASignature___n_type__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ASignature___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASignature___n_type__eq "parser_nodes::ASignature::n_type="
-#define ATTR_parser_nodes___ASignature____n_closure_decls(recv) ATTR(recv, COLOR_parser_nodes___ASignature____n_closure_decls)
 typedef val_t (* parser_nodes___ASignature___n_closure_decls_t)(val_t  self);
 val_t parser_nodes___ASignature___n_closure_decls(val_t  self);
 #define LOCATE_parser_nodes___ASignature___n_closure_decls "parser_nodes::ASignature::n_closure_decls"
@@ -2578,7 +2491,6 @@ typedef void (* parser_nodes___ASignature___n_closure_decls__eq_t)(val_t  self,
 void parser_nodes___ASignature___n_closure_decls__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASignature___n_closure_decls__eq "parser_nodes::ASignature::n_closure_decls="
 val_t NEW_AParam_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AParam____n_dotdotdot(recv) ATTR(recv, COLOR_parser_nodes___AParam____n_dotdotdot)
 typedef val_t (* parser_nodes___AParam___n_dotdotdot_t)(val_t  self);
 val_t parser_nodes___AParam___n_dotdotdot(val_t  self);
 #define LOCATE_parser_nodes___AParam___n_dotdotdot "parser_nodes::AParam::n_dotdotdot"
@@ -2586,35 +2498,30 @@ typedef void (* parser_nodes___AParam___n_dotdotdot__eq_t)(val_t  self, val_t  p
 void parser_nodes___AParam___n_dotdotdot__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AParam___n_dotdotdot__eq "parser_nodes::AParam::n_dotdotdot="
 val_t NEW_AClosureDecl_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AClosureDecl____n_kwwith(recv) ATTR(recv, COLOR_parser_nodes___AClosureDecl____n_kwwith)
 typedef val_t (* parser_nodes___AClosureDecl___n_kwwith_t)(val_t  self);
 val_t parser_nodes___AClosureDecl___n_kwwith(val_t  self);
 #define LOCATE_parser_nodes___AClosureDecl___n_kwwith "parser_nodes::AClosureDecl::n_kwwith"
 typedef void (* parser_nodes___AClosureDecl___n_kwwith__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClosureDecl___n_kwwith__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDecl___n_kwwith__eq "parser_nodes::AClosureDecl::n_kwwith="
-#define ATTR_parser_nodes___AClosureDecl____n_kwbreak(recv) ATTR(recv, COLOR_parser_nodes___AClosureDecl____n_kwbreak)
 typedef val_t (* parser_nodes___AClosureDecl___n_kwbreak_t)(val_t  self);
 val_t parser_nodes___AClosureDecl___n_kwbreak(val_t  self);
 #define LOCATE_parser_nodes___AClosureDecl___n_kwbreak "parser_nodes::AClosureDecl::n_kwbreak"
 typedef void (* parser_nodes___AClosureDecl___n_kwbreak__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClosureDecl___n_kwbreak__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDecl___n_kwbreak__eq "parser_nodes::AClosureDecl::n_kwbreak="
-#define ATTR_parser_nodes___AClosureDecl____n_id(recv) ATTR(recv, COLOR_parser_nodes___AClosureDecl____n_id)
 typedef val_t (* parser_nodes___AClosureDecl___n_id_t)(val_t  self);
 val_t parser_nodes___AClosureDecl___n_id(val_t  self);
 #define LOCATE_parser_nodes___AClosureDecl___n_id "parser_nodes::AClosureDecl::n_id"
 typedef void (* parser_nodes___AClosureDecl___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClosureDecl___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDecl___n_id__eq "parser_nodes::AClosureDecl::n_id="
-#define ATTR_parser_nodes___AClosureDecl____n_signature(recv) ATTR(recv, COLOR_parser_nodes___AClosureDecl____n_signature)
 typedef val_t (* parser_nodes___AClosureDecl___n_signature_t)(val_t  self);
 val_t parser_nodes___AClosureDecl___n_signature(val_t  self);
 #define LOCATE_parser_nodes___AClosureDecl___n_signature "parser_nodes::AClosureDecl::n_signature"
 typedef void (* parser_nodes___AClosureDecl___n_signature__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClosureDecl___n_signature__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDecl___n_signature__eq "parser_nodes::AClosureDecl::n_signature="
-#define ATTR_parser_nodes___AClosureDecl____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AClosureDecl____n_expr)
 typedef val_t (* parser_nodes___AClosureDecl___n_expr_t)(val_t  self);
 val_t parser_nodes___AClosureDecl___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AClosureDecl___n_expr "parser_nodes::AClosureDecl::n_expr"
@@ -2622,14 +2529,12 @@ typedef void (* parser_nodes___AClosureDecl___n_expr__eq_t)(val_t  self, val_t
 void parser_nodes___AClosureDecl___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDecl___n_expr__eq "parser_nodes::AClosureDecl::n_expr="
 val_t NEW_AType_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AType____n_id(recv) ATTR(recv, COLOR_parser_nodes___AType____n_id)
 typedef val_t (* parser_nodes___AType___n_id_t)(val_t  self);
 val_t parser_nodes___AType___n_id(val_t  self);
 #define LOCATE_parser_nodes___AType___n_id "parser_nodes::AType::n_id"
 typedef void (* parser_nodes___AType___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AType___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AType___n_id__eq "parser_nodes::AType::n_id="
-#define ATTR_parser_nodes___AType____n_types(recv) ATTR(recv, COLOR_parser_nodes___AType____n_types)
 typedef val_t (* parser_nodes___AType___n_types_t)(val_t  self);
 val_t parser_nodes___AType___n_types(val_t  self);
 #define LOCATE_parser_nodes___AType___n_types "parser_nodes::AType::n_types"
@@ -2637,7 +2542,6 @@ typedef void (* parser_nodes___AType___n_types__eq_t)(val_t  self, val_t  param0
 void parser_nodes___AType___n_types__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AType___n_types__eq "parser_nodes::AType::n_types="
 val_t NEW_ABlockExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ABlockExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ABlockExpr____n_expr)
 typedef val_t (* parser_nodes___ABlockExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___ABlockExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___ABlockExpr___n_expr "parser_nodes::ABlockExpr::n_expr"
@@ -2645,35 +2549,30 @@ typedef void (* parser_nodes___ABlockExpr___n_expr__eq_t)(val_t  self, val_t  pa
 void parser_nodes___ABlockExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABlockExpr___n_expr__eq "parser_nodes::ABlockExpr::n_expr="
 val_t NEW_AVardeclExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AVardeclExpr____n_kwvar(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_kwvar)
 typedef val_t (* parser_nodes___AVardeclExpr___n_kwvar_t)(val_t  self);
 val_t parser_nodes___AVardeclExpr___n_kwvar(val_t  self);
 #define LOCATE_parser_nodes___AVardeclExpr___n_kwvar "parser_nodes::AVardeclExpr::n_kwvar"
 typedef void (* parser_nodes___AVardeclExpr___n_kwvar__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AVardeclExpr___n_kwvar__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AVardeclExpr___n_kwvar__eq "parser_nodes::AVardeclExpr::n_kwvar="
-#define ATTR_parser_nodes___AVardeclExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_id)
 typedef val_t (* parser_nodes___AVardeclExpr___n_id_t)(val_t  self);
 val_t parser_nodes___AVardeclExpr___n_id(val_t  self);
 #define LOCATE_parser_nodes___AVardeclExpr___n_id "parser_nodes::AVardeclExpr::n_id"
 typedef void (* parser_nodes___AVardeclExpr___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AVardeclExpr___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AVardeclExpr___n_id__eq "parser_nodes::AVardeclExpr::n_id="
-#define ATTR_parser_nodes___AVardeclExpr____n_type(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_type)
 typedef val_t (* parser_nodes___AVardeclExpr___n_type_t)(val_t  self);
 val_t parser_nodes___AVardeclExpr___n_type(val_t  self);
 #define LOCATE_parser_nodes___AVardeclExpr___n_type "parser_nodes::AVardeclExpr::n_type"
 typedef void (* parser_nodes___AVardeclExpr___n_type__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AVardeclExpr___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AVardeclExpr___n_type__eq "parser_nodes::AVardeclExpr::n_type="
-#define ATTR_parser_nodes___AVardeclExpr____n_assign(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_assign)
 typedef val_t (* parser_nodes___AVardeclExpr___n_assign_t)(val_t  self);
 val_t parser_nodes___AVardeclExpr___n_assign(val_t  self);
 #define LOCATE_parser_nodes___AVardeclExpr___n_assign "parser_nodes::AVardeclExpr::n_assign"
 typedef void (* parser_nodes___AVardeclExpr___n_assign__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AVardeclExpr___n_assign__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AVardeclExpr___n_assign__eq "parser_nodes::AVardeclExpr::n_assign="
-#define ATTR_parser_nodes___AVardeclExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AVardeclExpr____n_expr)
 typedef val_t (* parser_nodes___AVardeclExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AVardeclExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AVardeclExpr___n_expr "parser_nodes::AVardeclExpr::n_expr"
@@ -2681,14 +2580,12 @@ typedef void (* parser_nodes___AVardeclExpr___n_expr__eq_t)(val_t  self, val_t
 void parser_nodes___AVardeclExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AVardeclExpr___n_expr__eq "parser_nodes::AVardeclExpr::n_expr="
 val_t NEW_AReturnExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AReturnExpr____n_kwreturn(recv) ATTR(recv, COLOR_parser_nodes___AReturnExpr____n_kwreturn)
 typedef val_t (* parser_nodes___AReturnExpr___n_kwreturn_t)(val_t  self);
 val_t parser_nodes___AReturnExpr___n_kwreturn(val_t  self);
 #define LOCATE_parser_nodes___AReturnExpr___n_kwreturn "parser_nodes::AReturnExpr::n_kwreturn"
 typedef void (* parser_nodes___AReturnExpr___n_kwreturn__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AReturnExpr___n_kwreturn__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AReturnExpr___n_kwreturn__eq "parser_nodes::AReturnExpr::n_kwreturn="
-#define ATTR_parser_nodes___AReturnExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AReturnExpr____n_expr)
 typedef val_t (* parser_nodes___AReturnExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AReturnExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AReturnExpr___n_expr "parser_nodes::AReturnExpr::n_expr"
@@ -2696,14 +2593,12 @@ typedef void (* parser_nodes___AReturnExpr___n_expr__eq_t)(val_t  self, val_t  p
 void parser_nodes___AReturnExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AReturnExpr___n_expr__eq "parser_nodes::AReturnExpr::n_expr="
 val_t NEW_ABreakExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ABreakExpr____n_kwbreak(recv) ATTR(recv, COLOR_parser_nodes___ABreakExpr____n_kwbreak)
 typedef val_t (* parser_nodes___ABreakExpr___n_kwbreak_t)(val_t  self);
 val_t parser_nodes___ABreakExpr___n_kwbreak(val_t  self);
 #define LOCATE_parser_nodes___ABreakExpr___n_kwbreak "parser_nodes::ABreakExpr::n_kwbreak"
 typedef void (* parser_nodes___ABreakExpr___n_kwbreak__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ABreakExpr___n_kwbreak__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABreakExpr___n_kwbreak__eq "parser_nodes::ABreakExpr::n_kwbreak="
-#define ATTR_parser_nodes___ABreakExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ABreakExpr____n_expr)
 typedef val_t (* parser_nodes___ABreakExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___ABreakExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___ABreakExpr___n_expr "parser_nodes::ABreakExpr::n_expr"
@@ -2711,7 +2606,6 @@ typedef void (* parser_nodes___ABreakExpr___n_expr__eq_t)(val_t  self, val_t  pa
 void parser_nodes___ABreakExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABreakExpr___n_expr__eq "parser_nodes::ABreakExpr::n_expr="
 val_t NEW_AAbortExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAbortExpr____n_kwabort(recv) ATTR(recv, COLOR_parser_nodes___AAbortExpr____n_kwabort)
 typedef val_t (* parser_nodes___AAbortExpr___n_kwabort_t)(val_t  self);
 val_t parser_nodes___AAbortExpr___n_kwabort(val_t  self);
 #define LOCATE_parser_nodes___AAbortExpr___n_kwabort "parser_nodes::AAbortExpr::n_kwabort"
@@ -2719,14 +2613,12 @@ typedef void (* parser_nodes___AAbortExpr___n_kwabort__eq_t)(val_t  self, val_t
 void parser_nodes___AAbortExpr___n_kwabort__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAbortExpr___n_kwabort__eq "parser_nodes::AAbortExpr::n_kwabort="
 val_t NEW_AContinueExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AContinueExpr____n_kwcontinue(recv) ATTR(recv, COLOR_parser_nodes___AContinueExpr____n_kwcontinue)
 typedef val_t (* parser_nodes___AContinueExpr___n_kwcontinue_t)(val_t  self);
 val_t parser_nodes___AContinueExpr___n_kwcontinue(val_t  self);
 #define LOCATE_parser_nodes___AContinueExpr___n_kwcontinue "parser_nodes::AContinueExpr::n_kwcontinue"
 typedef void (* parser_nodes___AContinueExpr___n_kwcontinue__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AContinueExpr___n_kwcontinue__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AContinueExpr___n_kwcontinue__eq "parser_nodes::AContinueExpr::n_kwcontinue="
-#define ATTR_parser_nodes___AContinueExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AContinueExpr____n_expr)
 typedef val_t (* parser_nodes___AContinueExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AContinueExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AContinueExpr___n_expr "parser_nodes::AContinueExpr::n_expr"
@@ -2734,14 +2626,12 @@ typedef void (* parser_nodes___AContinueExpr___n_expr__eq_t)(val_t  self, val_t
 void parser_nodes___AContinueExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AContinueExpr___n_expr__eq "parser_nodes::AContinueExpr::n_expr="
 val_t NEW_ADoExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ADoExpr____n_kwdo(recv) ATTR(recv, COLOR_parser_nodes___ADoExpr____n_kwdo)
 typedef val_t (* parser_nodes___ADoExpr___n_kwdo_t)(val_t  self);
 val_t parser_nodes___ADoExpr___n_kwdo(val_t  self);
 #define LOCATE_parser_nodes___ADoExpr___n_kwdo "parser_nodes::ADoExpr::n_kwdo"
 typedef void (* parser_nodes___ADoExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ADoExpr___n_kwdo__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ADoExpr___n_kwdo__eq "parser_nodes::ADoExpr::n_kwdo="
-#define ATTR_parser_nodes___ADoExpr____n_block(recv) ATTR(recv, COLOR_parser_nodes___ADoExpr____n_block)
 typedef val_t (* parser_nodes___ADoExpr___n_block_t)(val_t  self);
 val_t parser_nodes___ADoExpr___n_block(val_t  self);
 #define LOCATE_parser_nodes___ADoExpr___n_block "parser_nodes::ADoExpr::n_block"
@@ -2749,28 +2639,24 @@ typedef void (* parser_nodes___ADoExpr___n_block__eq_t)(val_t  self, val_t  para
 void parser_nodes___ADoExpr___n_block__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ADoExpr___n_block__eq "parser_nodes::ADoExpr::n_block="
 val_t NEW_AIfExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AIfExpr____n_kwif(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_kwif)
 typedef val_t (* parser_nodes___AIfExpr___n_kwif_t)(val_t  self);
 val_t parser_nodes___AIfExpr___n_kwif(val_t  self);
 #define LOCATE_parser_nodes___AIfExpr___n_kwif "parser_nodes::AIfExpr::n_kwif"
 typedef void (* parser_nodes___AIfExpr___n_kwif__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfExpr___n_kwif__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfExpr___n_kwif__eq "parser_nodes::AIfExpr::n_kwif="
-#define ATTR_parser_nodes___AIfExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_expr)
 typedef val_t (* parser_nodes___AIfExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AIfExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AIfExpr___n_expr "parser_nodes::AIfExpr::n_expr"
 typedef void (* parser_nodes___AIfExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfExpr___n_expr__eq "parser_nodes::AIfExpr::n_expr="
-#define ATTR_parser_nodes___AIfExpr____n_then(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_then)
 typedef val_t (* parser_nodes___AIfExpr___n_then_t)(val_t  self);
 val_t parser_nodes___AIfExpr___n_then(val_t  self);
 #define LOCATE_parser_nodes___AIfExpr___n_then "parser_nodes::AIfExpr::n_then"
 typedef void (* parser_nodes___AIfExpr___n_then__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfExpr___n_then__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfExpr___n_then__eq "parser_nodes::AIfExpr::n_then="
-#define ATTR_parser_nodes___AIfExpr____n_else(recv) ATTR(recv, COLOR_parser_nodes___AIfExpr____n_else)
 typedef val_t (* parser_nodes___AIfExpr___n_else_t)(val_t  self);
 val_t parser_nodes___AIfExpr___n_else(val_t  self);
 #define LOCATE_parser_nodes___AIfExpr___n_else "parser_nodes::AIfExpr::n_else"
@@ -2778,42 +2664,36 @@ typedef void (* parser_nodes___AIfExpr___n_else__eq_t)(val_t  self, val_t  param
 void parser_nodes___AIfExpr___n_else__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfExpr___n_else__eq "parser_nodes::AIfExpr::n_else="
 val_t NEW_AIfexprExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AIfexprExpr____n_kwif(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_kwif)
 typedef val_t (* parser_nodes___AIfexprExpr___n_kwif_t)(val_t  self);
 val_t parser_nodes___AIfexprExpr___n_kwif(val_t  self);
 #define LOCATE_parser_nodes___AIfexprExpr___n_kwif "parser_nodes::AIfexprExpr::n_kwif"
 typedef void (* parser_nodes___AIfexprExpr___n_kwif__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfexprExpr___n_kwif__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfexprExpr___n_kwif__eq "parser_nodes::AIfexprExpr::n_kwif="
-#define ATTR_parser_nodes___AIfexprExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_expr)
 typedef val_t (* parser_nodes___AIfexprExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AIfexprExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AIfexprExpr___n_expr "parser_nodes::AIfexprExpr::n_expr"
 typedef void (* parser_nodes___AIfexprExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfexprExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfexprExpr___n_expr__eq "parser_nodes::AIfexprExpr::n_expr="
-#define ATTR_parser_nodes___AIfexprExpr____n_kwthen(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_kwthen)
 typedef val_t (* parser_nodes___AIfexprExpr___n_kwthen_t)(val_t  self);
 val_t parser_nodes___AIfexprExpr___n_kwthen(val_t  self);
 #define LOCATE_parser_nodes___AIfexprExpr___n_kwthen "parser_nodes::AIfexprExpr::n_kwthen"
 typedef void (* parser_nodes___AIfexprExpr___n_kwthen__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfexprExpr___n_kwthen__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfexprExpr___n_kwthen__eq "parser_nodes::AIfexprExpr::n_kwthen="
-#define ATTR_parser_nodes___AIfexprExpr____n_then(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_then)
 typedef val_t (* parser_nodes___AIfexprExpr___n_then_t)(val_t  self);
 val_t parser_nodes___AIfexprExpr___n_then(val_t  self);
 #define LOCATE_parser_nodes___AIfexprExpr___n_then "parser_nodes::AIfexprExpr::n_then"
 typedef void (* parser_nodes___AIfexprExpr___n_then__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfexprExpr___n_then__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfexprExpr___n_then__eq "parser_nodes::AIfexprExpr::n_then="
-#define ATTR_parser_nodes___AIfexprExpr____n_kwelse(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_kwelse)
 typedef val_t (* parser_nodes___AIfexprExpr___n_kwelse_t)(val_t  self);
 val_t parser_nodes___AIfexprExpr___n_kwelse(val_t  self);
 #define LOCATE_parser_nodes___AIfexprExpr___n_kwelse "parser_nodes::AIfexprExpr::n_kwelse"
 typedef void (* parser_nodes___AIfexprExpr___n_kwelse__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIfexprExpr___n_kwelse__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfexprExpr___n_kwelse__eq "parser_nodes::AIfexprExpr::n_kwelse="
-#define ATTR_parser_nodes___AIfexprExpr____n_else(recv) ATTR(recv, COLOR_parser_nodes___AIfexprExpr____n_else)
 typedef val_t (* parser_nodes___AIfexprExpr___n_else_t)(val_t  self);
 val_t parser_nodes___AIfexprExpr___n_else(val_t  self);
 #define LOCATE_parser_nodes___AIfexprExpr___n_else "parser_nodes::AIfexprExpr::n_else"
@@ -2821,28 +2701,24 @@ typedef void (* parser_nodes___AIfexprExpr___n_else__eq_t)(val_t  self, val_t  p
 void parser_nodes___AIfexprExpr___n_else__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIfexprExpr___n_else__eq "parser_nodes::AIfexprExpr::n_else="
 val_t NEW_AWhileExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AWhileExpr____n_kwwhile(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_kwwhile)
 typedef val_t (* parser_nodes___AWhileExpr___n_kwwhile_t)(val_t  self);
 val_t parser_nodes___AWhileExpr___n_kwwhile(val_t  self);
 #define LOCATE_parser_nodes___AWhileExpr___n_kwwhile "parser_nodes::AWhileExpr::n_kwwhile"
 typedef void (* parser_nodes___AWhileExpr___n_kwwhile__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AWhileExpr___n_kwwhile__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AWhileExpr___n_kwwhile__eq "parser_nodes::AWhileExpr::n_kwwhile="
-#define ATTR_parser_nodes___AWhileExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_expr)
 typedef val_t (* parser_nodes___AWhileExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AWhileExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AWhileExpr___n_expr "parser_nodes::AWhileExpr::n_expr"
 typedef void (* parser_nodes___AWhileExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AWhileExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AWhileExpr___n_expr__eq "parser_nodes::AWhileExpr::n_expr="
-#define ATTR_parser_nodes___AWhileExpr____n_kwdo(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_kwdo)
 typedef val_t (* parser_nodes___AWhileExpr___n_kwdo_t)(val_t  self);
 val_t parser_nodes___AWhileExpr___n_kwdo(val_t  self);
 #define LOCATE_parser_nodes___AWhileExpr___n_kwdo "parser_nodes::AWhileExpr::n_kwdo"
 typedef void (* parser_nodes___AWhileExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AWhileExpr___n_kwdo__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AWhileExpr___n_kwdo__eq "parser_nodes::AWhileExpr::n_kwdo="
-#define ATTR_parser_nodes___AWhileExpr____n_block(recv) ATTR(recv, COLOR_parser_nodes___AWhileExpr____n_block)
 typedef val_t (* parser_nodes___AWhileExpr___n_block_t)(val_t  self);
 val_t parser_nodes___AWhileExpr___n_block(val_t  self);
 #define LOCATE_parser_nodes___AWhileExpr___n_block "parser_nodes::AWhileExpr::n_block"
@@ -2850,21 +2726,18 @@ typedef void (* parser_nodes___AWhileExpr___n_block__eq_t)(val_t  self, val_t  p
 void parser_nodes___AWhileExpr___n_block__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AWhileExpr___n_block__eq "parser_nodes::AWhileExpr::n_block="
 val_t NEW_AForExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AForExpr____n_vardecl(recv) ATTR(recv, COLOR_parser_nodes___AForExpr____n_vardecl)
 typedef val_t (* parser_nodes___AForExpr___n_vardecl_t)(val_t  self);
 val_t parser_nodes___AForExpr___n_vardecl(val_t  self);
 #define LOCATE_parser_nodes___AForExpr___n_vardecl "parser_nodes::AForExpr::n_vardecl"
 typedef void (* parser_nodes___AForExpr___n_vardecl__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AForExpr___n_vardecl__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AForExpr___n_vardecl__eq "parser_nodes::AForExpr::n_vardecl="
-#define ATTR_parser_nodes___AForExpr____n_kwdo(recv) ATTR(recv, COLOR_parser_nodes___AForExpr____n_kwdo)
 typedef val_t (* parser_nodes___AForExpr___n_kwdo_t)(val_t  self);
 val_t parser_nodes___AForExpr___n_kwdo(val_t  self);
 #define LOCATE_parser_nodes___AForExpr___n_kwdo "parser_nodes::AForExpr::n_kwdo"
 typedef void (* parser_nodes___AForExpr___n_kwdo__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AForExpr___n_kwdo__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AForExpr___n_kwdo__eq "parser_nodes::AForExpr::n_kwdo="
-#define ATTR_parser_nodes___AForExpr____n_block(recv) ATTR(recv, COLOR_parser_nodes___AForExpr____n_block)
 typedef val_t (* parser_nodes___AForExpr___n_block_t)(val_t  self);
 val_t parser_nodes___AForExpr___n_block(val_t  self);
 #define LOCATE_parser_nodes___AForExpr___n_block "parser_nodes::AForExpr::n_block"
@@ -2872,21 +2745,18 @@ typedef void (* parser_nodes___AForExpr___n_block__eq_t)(val_t  self, val_t  par
 void parser_nodes___AForExpr___n_block__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AForExpr___n_block__eq "parser_nodes::AForExpr::n_block="
 val_t NEW_AForVardeclExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AForVardeclExpr____n_kwfor(recv) ATTR(recv, COLOR_parser_nodes___AForVardeclExpr____n_kwfor)
 typedef val_t (* parser_nodes___AForVardeclExpr___n_kwfor_t)(val_t  self);
 val_t parser_nodes___AForVardeclExpr___n_kwfor(val_t  self);
 #define LOCATE_parser_nodes___AForVardeclExpr___n_kwfor "parser_nodes::AForVardeclExpr::n_kwfor"
 typedef void (* parser_nodes___AForVardeclExpr___n_kwfor__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AForVardeclExpr___n_kwfor__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AForVardeclExpr___n_kwfor__eq "parser_nodes::AForVardeclExpr::n_kwfor="
-#define ATTR_parser_nodes___AForVardeclExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AForVardeclExpr____n_id)
 typedef val_t (* parser_nodes___AForVardeclExpr___n_id_t)(val_t  self);
 val_t parser_nodes___AForVardeclExpr___n_id(val_t  self);
 #define LOCATE_parser_nodes___AForVardeclExpr___n_id "parser_nodes::AForVardeclExpr::n_id"
 typedef void (* parser_nodes___AForVardeclExpr___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AForVardeclExpr___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AForVardeclExpr___n_id__eq "parser_nodes::AForVardeclExpr::n_id="
-#define ATTR_parser_nodes___AForVardeclExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AForVardeclExpr____n_expr)
 typedef val_t (* parser_nodes___AForVardeclExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AForVardeclExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AForVardeclExpr___n_expr "parser_nodes::AForVardeclExpr::n_expr"
@@ -2894,21 +2764,18 @@ typedef void (* parser_nodes___AForVardeclExpr___n_expr__eq_t)(val_t  self, val_
 void parser_nodes___AForVardeclExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AForVardeclExpr___n_expr__eq "parser_nodes::AForVardeclExpr::n_expr="
 val_t NEW_AAssertExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAssertExpr____n_kwassert(recv) ATTR(recv, COLOR_parser_nodes___AAssertExpr____n_kwassert)
 typedef val_t (* parser_nodes___AAssertExpr___n_kwassert_t)(val_t  self);
 val_t parser_nodes___AAssertExpr___n_kwassert(val_t  self);
 #define LOCATE_parser_nodes___AAssertExpr___n_kwassert "parser_nodes::AAssertExpr::n_kwassert"
 typedef void (* parser_nodes___AAssertExpr___n_kwassert__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAssertExpr___n_kwassert__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAssertExpr___n_kwassert__eq "parser_nodes::AAssertExpr::n_kwassert="
-#define ATTR_parser_nodes___AAssertExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAssertExpr____n_id)
 typedef val_t (* parser_nodes___AAssertExpr___n_id_t)(val_t  self);
 val_t parser_nodes___AAssertExpr___n_id(val_t  self);
 #define LOCATE_parser_nodes___AAssertExpr___n_id "parser_nodes::AAssertExpr::n_id"
 typedef void (* parser_nodes___AAssertExpr___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAssertExpr___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAssertExpr___n_id__eq "parser_nodes::AAssertExpr::n_id="
-#define ATTR_parser_nodes___AAssertExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAssertExpr____n_expr)
 typedef val_t (* parser_nodes___AAssertExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AAssertExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AAssertExpr___n_expr "parser_nodes::AAssertExpr::n_expr"
@@ -2916,14 +2783,12 @@ typedef void (* parser_nodes___AAssertExpr___n_expr__eq_t)(val_t  self, val_t  p
 void parser_nodes___AAssertExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAssertExpr___n_expr__eq "parser_nodes::AAssertExpr::n_expr="
 val_t NEW_AAssignFormExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAssignFormExpr____n_assign(recv) ATTR(recv, COLOR_parser_nodes___AAssignFormExpr____n_assign)
 typedef val_t (* parser_nodes___AAssignFormExpr___n_assign_t)(val_t  self);
 val_t parser_nodes___AAssignFormExpr___n_assign(val_t  self);
 #define LOCATE_parser_nodes___AAssignFormExpr___n_assign "parser_nodes::AAssignFormExpr::n_assign"
 typedef void (* parser_nodes___AAssignFormExpr___n_assign__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAssignFormExpr___n_assign__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAssignFormExpr___n_assign__eq "parser_nodes::AAssignFormExpr::n_assign="
-#define ATTR_parser_nodes___AAssignFormExpr____n_value(recv) ATTR(recv, COLOR_parser_nodes___AAssignFormExpr____n_value)
 typedef val_t (* parser_nodes___AAssignFormExpr___n_value_t)(val_t  self);
 val_t parser_nodes___AAssignFormExpr___n_value(val_t  self);
 #define LOCATE_parser_nodes___AAssignFormExpr___n_value "parser_nodes::AAssignFormExpr::n_value"
@@ -2931,14 +2796,12 @@ typedef void (* parser_nodes___AAssignFormExpr___n_value__eq_t)(val_t  self, val
 void parser_nodes___AAssignFormExpr___n_value__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAssignFormExpr___n_value__eq "parser_nodes::AAssignFormExpr::n_value="
 val_t NEW_AReassignFormExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AReassignFormExpr____n_assign_op(recv) ATTR(recv, COLOR_parser_nodes___AReassignFormExpr____n_assign_op)
 typedef val_t (* parser_nodes___AReassignFormExpr___n_assign_op_t)(val_t  self);
 val_t parser_nodes___AReassignFormExpr___n_assign_op(val_t  self);
 #define LOCATE_parser_nodes___AReassignFormExpr___n_assign_op "parser_nodes::AReassignFormExpr::n_assign_op"
 typedef void (* parser_nodes___AReassignFormExpr___n_assign_op__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AReassignFormExpr___n_assign_op__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AReassignFormExpr___n_assign_op__eq "parser_nodes::AReassignFormExpr::n_assign_op="
-#define ATTR_parser_nodes___AReassignFormExpr____n_value(recv) ATTR(recv, COLOR_parser_nodes___AReassignFormExpr____n_value)
 typedef val_t (* parser_nodes___AReassignFormExpr___n_value_t)(val_t  self);
 val_t parser_nodes___AReassignFormExpr___n_value(val_t  self);
 #define LOCATE_parser_nodes___AReassignFormExpr___n_value "parser_nodes::AReassignFormExpr::n_value"
@@ -2946,7 +2809,6 @@ typedef void (* parser_nodes___AReassignFormExpr___n_value__eq_t)(val_t  self, v
 void parser_nodes___AReassignFormExpr___n_value__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AReassignFormExpr___n_value__eq "parser_nodes::AReassignFormExpr::n_value="
 val_t NEW_AOnceExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AOnceExpr____n_kwonce(recv) ATTR(recv, COLOR_parser_nodes___AOnceExpr____n_kwonce)
 typedef val_t (* parser_nodes___AOnceExpr___n_kwonce_t)(val_t  self);
 val_t parser_nodes___AOnceExpr___n_kwonce(val_t  self);
 #define LOCATE_parser_nodes___AOnceExpr___n_kwonce "parser_nodes::AOnceExpr::n_kwonce"
@@ -2954,14 +2816,12 @@ typedef void (* parser_nodes___AOnceExpr___n_kwonce__eq_t)(val_t  self, val_t  p
 void parser_nodes___AOnceExpr___n_kwonce__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AOnceExpr___n_kwonce__eq "parser_nodes::AOnceExpr::n_kwonce="
 val_t NEW_ASendExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ASendExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ASendExpr____n_expr)
 typedef val_t (* parser_nodes___ASendExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___ASendExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___ASendExpr___n_expr "parser_nodes::ASendExpr::n_expr"
 typedef void (* parser_nodes___ASendExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ASendExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASendExpr___n_expr__eq "parser_nodes::ASendExpr::n_expr="
-#define ATTR_parser_nodes___ASendExpr____n_closure_defs(recv) ATTR(recv, COLOR_parser_nodes___ASendExpr____n_closure_defs)
 typedef val_t (* parser_nodes___ASendExpr___n_closure_defs_t)(val_t  self);
 val_t parser_nodes___ASendExpr___n_closure_defs(val_t  self);
 #define LOCATE_parser_nodes___ASendExpr___n_closure_defs "parser_nodes::ASendExpr::n_closure_defs"
@@ -2969,7 +2829,6 @@ typedef void (* parser_nodes___ASendExpr___n_closure_defs__eq_t)(val_t  self, va
 void parser_nodes___ASendExpr___n_closure_defs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASendExpr___n_closure_defs__eq "parser_nodes::ASendExpr::n_closure_defs="
 val_t NEW_ABinopExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ABinopExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___ABinopExpr____n_expr2)
 typedef val_t (* parser_nodes___ABinopExpr___n_expr2_t)(val_t  self);
 val_t parser_nodes___ABinopExpr___n_expr2(val_t  self);
 #define LOCATE_parser_nodes___ABinopExpr___n_expr2 "parser_nodes::ABinopExpr::n_expr2"
@@ -2978,14 +2837,12 @@ void parser_nodes___ABinopExpr___n_expr2__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ABinopExpr___n_expr2__eq "parser_nodes::ABinopExpr::n_expr2="
 val_t NEW_ABoolExpr_parser_nodes___PNode___init();
 val_t NEW_AOrExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AOrExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AOrExpr____n_expr)
 typedef val_t (* parser_nodes___AOrExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AOrExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AOrExpr___n_expr "parser_nodes::AOrExpr::n_expr"
 typedef void (* parser_nodes___AOrExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AOrExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AOrExpr___n_expr__eq "parser_nodes::AOrExpr::n_expr="
-#define ATTR_parser_nodes___AOrExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___AOrExpr____n_expr2)
 typedef val_t (* parser_nodes___AOrExpr___n_expr2_t)(val_t  self);
 val_t parser_nodes___AOrExpr___n_expr2(val_t  self);
 #define LOCATE_parser_nodes___AOrExpr___n_expr2 "parser_nodes::AOrExpr::n_expr2"
@@ -2993,14 +2850,12 @@ typedef void (* parser_nodes___AOrExpr___n_expr2__eq_t)(val_t  self, val_t  para
 void parser_nodes___AOrExpr___n_expr2__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AOrExpr___n_expr2__eq "parser_nodes::AOrExpr::n_expr2="
 val_t NEW_AAndExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAndExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAndExpr____n_expr)
 typedef val_t (* parser_nodes___AAndExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AAndExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AAndExpr___n_expr "parser_nodes::AAndExpr::n_expr"
 typedef void (* parser_nodes___AAndExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAndExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAndExpr___n_expr__eq "parser_nodes::AAndExpr::n_expr="
-#define ATTR_parser_nodes___AAndExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___AAndExpr____n_expr2)
 typedef val_t (* parser_nodes___AAndExpr___n_expr2_t)(val_t  self);
 val_t parser_nodes___AAndExpr___n_expr2(val_t  self);
 #define LOCATE_parser_nodes___AAndExpr___n_expr2 "parser_nodes::AAndExpr::n_expr2"
@@ -3008,14 +2863,12 @@ typedef void (* parser_nodes___AAndExpr___n_expr2__eq_t)(val_t  self, val_t  par
 void parser_nodes___AAndExpr___n_expr2__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAndExpr___n_expr2__eq "parser_nodes::AAndExpr::n_expr2="
 val_t NEW_ANotExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ANotExpr____n_kwnot(recv) ATTR(recv, COLOR_parser_nodes___ANotExpr____n_kwnot)
 typedef val_t (* parser_nodes___ANotExpr___n_kwnot_t)(val_t  self);
 val_t parser_nodes___ANotExpr___n_kwnot(val_t  self);
 #define LOCATE_parser_nodes___ANotExpr___n_kwnot "parser_nodes::ANotExpr::n_kwnot"
 typedef void (* parser_nodes___ANotExpr___n_kwnot__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ANotExpr___n_kwnot__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANotExpr___n_kwnot__eq "parser_nodes::ANotExpr::n_kwnot="
-#define ATTR_parser_nodes___ANotExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ANotExpr____n_expr)
 typedef val_t (* parser_nodes___ANotExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___ANotExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___ANotExpr___n_expr "parser_nodes::ANotExpr::n_expr"
@@ -3024,14 +2877,12 @@ void parser_nodes___ANotExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANotExpr___n_expr__eq "parser_nodes::ANotExpr::n_expr="
 val_t NEW_AEqExpr_parser_nodes___PNode___init();
 val_t NEW_AEeExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AEeExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AEeExpr____n_expr)
 typedef val_t (* parser_nodes___AEeExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AEeExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AEeExpr___n_expr "parser_nodes::AEeExpr::n_expr"
 typedef void (* parser_nodes___AEeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AEeExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AEeExpr___n_expr__eq "parser_nodes::AEeExpr::n_expr="
-#define ATTR_parser_nodes___AEeExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___AEeExpr____n_expr2)
 typedef val_t (* parser_nodes___AEeExpr___n_expr2_t)(val_t  self);
 val_t parser_nodes___AEeExpr___n_expr2(val_t  self);
 #define LOCATE_parser_nodes___AEeExpr___n_expr2 "parser_nodes::AEeExpr::n_expr2"
@@ -3044,14 +2895,12 @@ val_t NEW_ALeExpr_parser_nodes___PNode___init();
 val_t NEW_AGtExpr_parser_nodes___PNode___init();
 val_t NEW_AGeExpr_parser_nodes___PNode___init();
 val_t NEW_AIsaExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AIsaExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AIsaExpr____n_expr)
 typedef val_t (* parser_nodes___AIsaExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AIsaExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AIsaExpr___n_expr "parser_nodes::AIsaExpr::n_expr"
 typedef void (* parser_nodes___AIsaExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AIsaExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIsaExpr___n_expr__eq "parser_nodes::AIsaExpr::n_expr="
-#define ATTR_parser_nodes___AIsaExpr____n_type(recv) ATTR(recv, COLOR_parser_nodes___AIsaExpr____n_type)
 typedef val_t (* parser_nodes___AIsaExpr___n_type_t)(val_t  self);
 val_t parser_nodes___AIsaExpr___n_type(val_t  self);
 #define LOCATE_parser_nodes___AIsaExpr___n_type "parser_nodes::AIsaExpr::n_type"
@@ -3065,7 +2914,6 @@ val_t NEW_AStarExpr_parser_nodes___PNode___init();
 val_t NEW_ASlashExpr_parser_nodes___PNode___init();
 val_t NEW_APercentExpr_parser_nodes___PNode___init();
 val_t NEW_AUminusExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AUminusExpr____n_minus(recv) ATTR(recv, COLOR_parser_nodes___AUminusExpr____n_minus)
 typedef val_t (* parser_nodes___AUminusExpr___n_minus_t)(val_t  self);
 val_t parser_nodes___AUminusExpr___n_minus(val_t  self);
 #define LOCATE_parser_nodes___AUminusExpr___n_minus "parser_nodes::AUminusExpr::n_minus"
@@ -3073,28 +2921,24 @@ typedef void (* parser_nodes___AUminusExpr___n_minus__eq_t)(val_t  self, val_t
 void parser_nodes___AUminusExpr___n_minus__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AUminusExpr___n_minus__eq "parser_nodes::AUminusExpr::n_minus="
 val_t NEW_ANewExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ANewExpr____n_kwnew(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_kwnew)
 typedef val_t (* parser_nodes___ANewExpr___n_kwnew_t)(val_t  self);
 val_t parser_nodes___ANewExpr___n_kwnew(val_t  self);
 #define LOCATE_parser_nodes___ANewExpr___n_kwnew "parser_nodes::ANewExpr::n_kwnew"
 typedef void (* parser_nodes___ANewExpr___n_kwnew__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ANewExpr___n_kwnew__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANewExpr___n_kwnew__eq "parser_nodes::ANewExpr::n_kwnew="
-#define ATTR_parser_nodes___ANewExpr____n_type(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_type)
 typedef val_t (* parser_nodes___ANewExpr___n_type_t)(val_t  self);
 val_t parser_nodes___ANewExpr___n_type(val_t  self);
 #define LOCATE_parser_nodes___ANewExpr___n_type "parser_nodes::ANewExpr::n_type"
 typedef void (* parser_nodes___ANewExpr___n_type__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ANewExpr___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANewExpr___n_type__eq "parser_nodes::ANewExpr::n_type="
-#define ATTR_parser_nodes___ANewExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_id)
 typedef val_t (* parser_nodes___ANewExpr___n_id_t)(val_t  self);
 val_t parser_nodes___ANewExpr___n_id(val_t  self);
 #define LOCATE_parser_nodes___ANewExpr___n_id "parser_nodes::ANewExpr::n_id"
 typedef void (* parser_nodes___ANewExpr___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ANewExpr___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANewExpr___n_id__eq "parser_nodes::ANewExpr::n_id="
-#define ATTR_parser_nodes___ANewExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ANewExpr____n_args)
 typedef val_t (* parser_nodes___ANewExpr___n_args_t)(val_t  self);
 val_t parser_nodes___ANewExpr___n_args(val_t  self);
 #define LOCATE_parser_nodes___ANewExpr___n_args "parser_nodes::ANewExpr::n_args"
@@ -3102,14 +2946,12 @@ typedef void (* parser_nodes___ANewExpr___n_args__eq_t)(val_t  self, val_t  para
 void parser_nodes___ANewExpr___n_args__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANewExpr___n_args__eq "parser_nodes::ANewExpr::n_args="
 val_t NEW_AAttrFormExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAttrFormExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAttrFormExpr____n_expr)
 typedef val_t (* parser_nodes___AAttrFormExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AAttrFormExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AAttrFormExpr___n_expr "parser_nodes::AAttrFormExpr::n_expr"
 typedef void (* parser_nodes___AAttrFormExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAttrFormExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAttrFormExpr___n_expr__eq "parser_nodes::AAttrFormExpr::n_expr="
-#define ATTR_parser_nodes___AAttrFormExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AAttrFormExpr____n_id)
 typedef val_t (* parser_nodes___AAttrFormExpr___n_id_t)(val_t  self);
 val_t parser_nodes___AAttrFormExpr___n_id(val_t  self);
 #define LOCATE_parser_nodes___AAttrFormExpr___n_id "parser_nodes::AAttrFormExpr::n_id"
@@ -3119,14 +2961,12 @@ void parser_nodes___AAttrFormExpr___n_id__eq(val_t  self, val_t  param0);
 val_t NEW_AAttrExpr_parser_nodes___PNode___init();
 val_t NEW_AAttrAssignExpr_parser_nodes___PNode___init();
 val_t NEW_ACallFormExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ACallFormExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___ACallFormExpr____n_id)
 typedef val_t (* parser_nodes___ACallFormExpr___n_id_t)(val_t  self);
 val_t parser_nodes___ACallFormExpr___n_id(val_t  self);
 #define LOCATE_parser_nodes___ACallFormExpr___n_id "parser_nodes::ACallFormExpr::n_id"
 typedef void (* parser_nodes___ACallFormExpr___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ACallFormExpr___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ACallFormExpr___n_id__eq "parser_nodes::ACallFormExpr::n_id="
-#define ATTR_parser_nodes___ACallFormExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ACallFormExpr____n_args)
 typedef val_t (* parser_nodes___ACallFormExpr___n_args_t)(val_t  self);
 val_t parser_nodes___ACallFormExpr___n_args(val_t  self);
 #define LOCATE_parser_nodes___ACallFormExpr___n_args "parser_nodes::ACallFormExpr::n_args"
@@ -3138,21 +2978,18 @@ val_t NEW_ACallExpr_parser_nodes___PNode___init();
 val_t NEW_ACallAssignExpr_parser_nodes___PNode___init();
 val_t NEW_ACallReassignExpr_parser_nodes___PNode___init();
 val_t NEW_ASuperExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ASuperExpr____n_qualified(recv) ATTR(recv, COLOR_parser_nodes___ASuperExpr____n_qualified)
 typedef val_t (* parser_nodes___ASuperExpr___n_qualified_t)(val_t  self);
 val_t parser_nodes___ASuperExpr___n_qualified(val_t  self);
 #define LOCATE_parser_nodes___ASuperExpr___n_qualified "parser_nodes::ASuperExpr::n_qualified"
 typedef void (* parser_nodes___ASuperExpr___n_qualified__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ASuperExpr___n_qualified__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASuperExpr___n_qualified__eq "parser_nodes::ASuperExpr::n_qualified="
-#define ATTR_parser_nodes___ASuperExpr____n_kwsuper(recv) ATTR(recv, COLOR_parser_nodes___ASuperExpr____n_kwsuper)
 typedef val_t (* parser_nodes___ASuperExpr___n_kwsuper_t)(val_t  self);
 val_t parser_nodes___ASuperExpr___n_kwsuper(val_t  self);
 #define LOCATE_parser_nodes___ASuperExpr___n_kwsuper "parser_nodes::ASuperExpr::n_kwsuper"
 typedef void (* parser_nodes___ASuperExpr___n_kwsuper__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ASuperExpr___n_kwsuper__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASuperExpr___n_kwsuper__eq "parser_nodes::ASuperExpr::n_kwsuper="
-#define ATTR_parser_nodes___ASuperExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ASuperExpr____n_args)
 typedef val_t (* parser_nodes___ASuperExpr___n_args_t)(val_t  self);
 val_t parser_nodes___ASuperExpr___n_args(val_t  self);
 #define LOCATE_parser_nodes___ASuperExpr___n_args "parser_nodes::ASuperExpr::n_args"
@@ -3160,14 +2997,12 @@ typedef void (* parser_nodes___ASuperExpr___n_args__eq_t)(val_t  self, val_t  pa
 void parser_nodes___ASuperExpr___n_args__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASuperExpr___n_args__eq "parser_nodes::ASuperExpr::n_args="
 val_t NEW_AInitExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AInitExpr____n_kwinit(recv) ATTR(recv, COLOR_parser_nodes___AInitExpr____n_kwinit)
 typedef val_t (* parser_nodes___AInitExpr___n_kwinit_t)(val_t  self);
 val_t parser_nodes___AInitExpr___n_kwinit(val_t  self);
 #define LOCATE_parser_nodes___AInitExpr___n_kwinit "parser_nodes::AInitExpr::n_kwinit"
 typedef void (* parser_nodes___AInitExpr___n_kwinit__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AInitExpr___n_kwinit__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AInitExpr___n_kwinit__eq "parser_nodes::AInitExpr::n_kwinit="
-#define ATTR_parser_nodes___AInitExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___AInitExpr____n_args)
 typedef val_t (* parser_nodes___AInitExpr___n_args_t)(val_t  self);
 val_t parser_nodes___AInitExpr___n_args(val_t  self);
 #define LOCATE_parser_nodes___AInitExpr___n_args "parser_nodes::AInitExpr::n_args"
@@ -3175,7 +3010,6 @@ typedef void (* parser_nodes___AInitExpr___n_args__eq_t)(val_t  self, val_t  par
 void parser_nodes___AInitExpr___n_args__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AInitExpr___n_args__eq "parser_nodes::AInitExpr::n_args="
 val_t NEW_ABraFormExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ABraFormExpr____n_args(recv) ATTR(recv, COLOR_parser_nodes___ABraFormExpr____n_args)
 typedef val_t (* parser_nodes___ABraFormExpr___n_args_t)(val_t  self);
 val_t parser_nodes___ABraFormExpr___n_args(val_t  self);
 #define LOCATE_parser_nodes___ABraFormExpr___n_args "parser_nodes::ABraFormExpr::n_args"
@@ -3185,7 +3019,6 @@ void parser_nodes___ABraFormExpr___n_args__eq(val_t  self, val_t  param0);
 val_t NEW_ABraExpr_parser_nodes___PNode___init();
 val_t NEW_ABraAssignExpr_parser_nodes___PNode___init();
 val_t NEW_AVarFormExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AVarFormExpr____n_id(recv) ATTR(recv, COLOR_parser_nodes___AVarFormExpr____n_id)
 typedef val_t (* parser_nodes___AVarFormExpr___n_id_t)(val_t  self);
 val_t parser_nodes___AVarFormExpr___n_id(val_t  self);
 #define LOCATE_parser_nodes___AVarFormExpr___n_id "parser_nodes::AVarFormExpr::n_id"
@@ -3201,14 +3034,12 @@ void parser_nodes___AClosureCallExpr___init(val_t  self, val_t  param0, val_t  p
 #define LOCATE_parser_nodes___AClosureCallExpr___init "parser_nodes::AClosureCallExpr::init"
 val_t NEW_AClosureCallExpr_parser_nodes___AClosureCallExpr___init(val_t p0, val_t p1, val_t p2);
 val_t NEW_ARangeExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ARangeExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___ARangeExpr____n_expr)
 typedef val_t (* parser_nodes___ARangeExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___ARangeExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___ARangeExpr___n_expr "parser_nodes::ARangeExpr::n_expr"
 typedef void (* parser_nodes___ARangeExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___ARangeExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ARangeExpr___n_expr__eq "parser_nodes::ARangeExpr::n_expr="
-#define ATTR_parser_nodes___ARangeExpr____n_expr2(recv) ATTR(recv, COLOR_parser_nodes___ARangeExpr____n_expr2)
 typedef val_t (* parser_nodes___ARangeExpr___n_expr2_t)(val_t  self);
 val_t parser_nodes___ARangeExpr___n_expr2(val_t  self);
 #define LOCATE_parser_nodes___ARangeExpr___n_expr2 "parser_nodes::ARangeExpr::n_expr2"
@@ -3218,7 +3049,6 @@ void parser_nodes___ARangeExpr___n_expr2__eq(val_t  self, val_t  param0);
 val_t NEW_ACrangeExpr_parser_nodes___PNode___init();
 val_t NEW_AOrangeExpr_parser_nodes___PNode___init();
 val_t NEW_AArrayExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AArrayExpr____n_exprs(recv) ATTR(recv, COLOR_parser_nodes___AArrayExpr____n_exprs)
 typedef val_t (* parser_nodes___AArrayExpr___n_exprs_t)(val_t  self);
 val_t parser_nodes___AArrayExpr___n_exprs(val_t  self);
 #define LOCATE_parser_nodes___AArrayExpr___n_exprs "parser_nodes::AArrayExpr::n_exprs"
@@ -3226,7 +3056,6 @@ typedef void (* parser_nodes___AArrayExpr___n_exprs__eq_t)(val_t  self, val_t  p
 void parser_nodes___AArrayExpr___n_exprs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AArrayExpr___n_exprs__eq "parser_nodes::AArrayExpr::n_exprs="
 val_t NEW_ASelfExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ASelfExpr____n_kwself(recv) ATTR(recv, COLOR_parser_nodes___ASelfExpr____n_kwself)
 typedef val_t (* parser_nodes___ASelfExpr___n_kwself_t)(val_t  self);
 val_t parser_nodes___ASelfExpr___n_kwself(val_t  self);
 #define LOCATE_parser_nodes___ASelfExpr___n_kwself "parser_nodes::ASelfExpr::n_kwself"
@@ -3235,7 +3064,6 @@ void parser_nodes___ASelfExpr___n_kwself__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASelfExpr___n_kwself__eq "parser_nodes::ASelfExpr::n_kwself="
 val_t NEW_AImplicitSelfExpr_parser_nodes___PNode___init();
 val_t NEW_ATrueExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ATrueExpr____n_kwtrue(recv) ATTR(recv, COLOR_parser_nodes___ATrueExpr____n_kwtrue)
 typedef val_t (* parser_nodes___ATrueExpr___n_kwtrue_t)(val_t  self);
 val_t parser_nodes___ATrueExpr___n_kwtrue(val_t  self);
 #define LOCATE_parser_nodes___ATrueExpr___n_kwtrue "parser_nodes::ATrueExpr::n_kwtrue"
@@ -3243,7 +3071,6 @@ typedef void (* parser_nodes___ATrueExpr___n_kwtrue__eq_t)(val_t  self, val_t  p
 void parser_nodes___ATrueExpr___n_kwtrue__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ATrueExpr___n_kwtrue__eq "parser_nodes::ATrueExpr::n_kwtrue="
 val_t NEW_AFalseExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AFalseExpr____n_kwfalse(recv) ATTR(recv, COLOR_parser_nodes___AFalseExpr____n_kwfalse)
 typedef val_t (* parser_nodes___AFalseExpr___n_kwfalse_t)(val_t  self);
 val_t parser_nodes___AFalseExpr___n_kwfalse(val_t  self);
 #define LOCATE_parser_nodes___AFalseExpr___n_kwfalse "parser_nodes::AFalseExpr::n_kwfalse"
@@ -3251,7 +3078,6 @@ typedef void (* parser_nodes___AFalseExpr___n_kwfalse__eq_t)(val_t  self, val_t
 void parser_nodes___AFalseExpr___n_kwfalse__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AFalseExpr___n_kwfalse__eq "parser_nodes::AFalseExpr::n_kwfalse="
 val_t NEW_ANullExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ANullExpr____n_kwnull(recv) ATTR(recv, COLOR_parser_nodes___ANullExpr____n_kwnull)
 typedef val_t (* parser_nodes___ANullExpr___n_kwnull_t)(val_t  self);
 val_t parser_nodes___ANullExpr___n_kwnull(val_t  self);
 #define LOCATE_parser_nodes___ANullExpr___n_kwnull "parser_nodes::ANullExpr::n_kwnull"
@@ -3259,7 +3085,6 @@ typedef void (* parser_nodes___ANullExpr___n_kwnull__eq_t)(val_t  self, val_t  p
 void parser_nodes___ANullExpr___n_kwnull__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ANullExpr___n_kwnull__eq "parser_nodes::ANullExpr::n_kwnull="
 val_t NEW_AIntExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AIntExpr____n_number(recv) ATTR(recv, COLOR_parser_nodes___AIntExpr____n_number)
 typedef val_t (* parser_nodes___AIntExpr___n_number_t)(val_t  self);
 val_t parser_nodes___AIntExpr___n_number(val_t  self);
 #define LOCATE_parser_nodes___AIntExpr___n_number "parser_nodes::AIntExpr::n_number"
@@ -3267,7 +3092,6 @@ typedef void (* parser_nodes___AIntExpr___n_number__eq_t)(val_t  self, val_t  pa
 void parser_nodes___AIntExpr___n_number__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AIntExpr___n_number__eq "parser_nodes::AIntExpr::n_number="
 val_t NEW_AFloatExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AFloatExpr____n_float(recv) ATTR(recv, COLOR_parser_nodes___AFloatExpr____n_float)
 typedef val_t (* parser_nodes___AFloatExpr___n_float_t)(val_t  self);
 val_t parser_nodes___AFloatExpr___n_float(val_t  self);
 #define LOCATE_parser_nodes___AFloatExpr___n_float "parser_nodes::AFloatExpr::n_float"
@@ -3275,7 +3099,6 @@ typedef void (* parser_nodes___AFloatExpr___n_float__eq_t)(val_t  self, val_t  p
 void parser_nodes___AFloatExpr___n_float__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AFloatExpr___n_float__eq "parser_nodes::AFloatExpr::n_float="
 val_t NEW_ACharExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ACharExpr____n_char(recv) ATTR(recv, COLOR_parser_nodes___ACharExpr____n_char)
 typedef val_t (* parser_nodes___ACharExpr___n_char_t)(val_t  self);
 val_t parser_nodes___ACharExpr___n_char(val_t  self);
 #define LOCATE_parser_nodes___ACharExpr___n_char "parser_nodes::ACharExpr::n_char"
@@ -3284,7 +3107,6 @@ void parser_nodes___ACharExpr___n_char__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ACharExpr___n_char__eq "parser_nodes::ACharExpr::n_char="
 val_t NEW_AStringFormExpr_parser_nodes___PNode___init();
 val_t NEW_AStringExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AStringExpr____n_string)
 typedef val_t (* parser_nodes___AStringExpr___n_string_t)(val_t  self);
 val_t parser_nodes___AStringExpr___n_string(val_t  self);
 #define LOCATE_parser_nodes___AStringExpr___n_string "parser_nodes::AStringExpr::n_string"
@@ -3292,7 +3114,6 @@ typedef void (* parser_nodes___AStringExpr___n_string__eq_t)(val_t  self, val_t
 void parser_nodes___AStringExpr___n_string__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AStringExpr___n_string__eq "parser_nodes::AStringExpr::n_string="
 val_t NEW_AStartStringExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AStartStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AStartStringExpr____n_string)
 typedef val_t (* parser_nodes___AStartStringExpr___n_string_t)(val_t  self);
 val_t parser_nodes___AStartStringExpr___n_string(val_t  self);
 #define LOCATE_parser_nodes___AStartStringExpr___n_string "parser_nodes::AStartStringExpr::n_string"
@@ -3300,7 +3121,6 @@ typedef void (* parser_nodes___AStartStringExpr___n_string__eq_t)(val_t  self, v
 void parser_nodes___AStartStringExpr___n_string__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AStartStringExpr___n_string__eq "parser_nodes::AStartStringExpr::n_string="
 val_t NEW_AMidStringExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AMidStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AMidStringExpr____n_string)
 typedef val_t (* parser_nodes___AMidStringExpr___n_string_t)(val_t  self);
 val_t parser_nodes___AMidStringExpr___n_string(val_t  self);
 #define LOCATE_parser_nodes___AMidStringExpr___n_string "parser_nodes::AMidStringExpr::n_string"
@@ -3308,7 +3128,6 @@ typedef void (* parser_nodes___AMidStringExpr___n_string__eq_t)(val_t  self, val
 void parser_nodes___AMidStringExpr___n_string__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMidStringExpr___n_string__eq "parser_nodes::AMidStringExpr::n_string="
 val_t NEW_AEndStringExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AEndStringExpr____n_string(recv) ATTR(recv, COLOR_parser_nodes___AEndStringExpr____n_string)
 typedef val_t (* parser_nodes___AEndStringExpr___n_string_t)(val_t  self);
 val_t parser_nodes___AEndStringExpr___n_string(val_t  self);
 #define LOCATE_parser_nodes___AEndStringExpr___n_string "parser_nodes::AEndStringExpr::n_string"
@@ -3316,7 +3135,6 @@ typedef void (* parser_nodes___AEndStringExpr___n_string__eq_t)(val_t  self, val
 void parser_nodes___AEndStringExpr___n_string__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AEndStringExpr___n_string__eq "parser_nodes::AEndStringExpr::n_string="
 val_t NEW_ASuperstringExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ASuperstringExpr____n_exprs(recv) ATTR(recv, COLOR_parser_nodes___ASuperstringExpr____n_exprs)
 typedef val_t (* parser_nodes___ASuperstringExpr___n_exprs_t)(val_t  self);
 val_t parser_nodes___ASuperstringExpr___n_exprs(val_t  self);
 #define LOCATE_parser_nodes___ASuperstringExpr___n_exprs "parser_nodes::ASuperstringExpr::n_exprs"
@@ -3325,7 +3143,6 @@ void parser_nodes___ASuperstringExpr___n_exprs__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ASuperstringExpr___n_exprs__eq "parser_nodes::ASuperstringExpr::n_exprs="
 val_t NEW_AParExpr_parser_nodes___PNode___init();
 val_t NEW_AProxyExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AProxyExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AProxyExpr____n_expr)
 typedef val_t (* parser_nodes___AProxyExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AProxyExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AProxyExpr___n_expr "parser_nodes::AProxyExpr::n_expr"
@@ -3333,21 +3150,18 @@ typedef void (* parser_nodes___AProxyExpr___n_expr__eq_t)(val_t  self, val_t  pa
 void parser_nodes___AProxyExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AProxyExpr___n_expr__eq "parser_nodes::AProxyExpr::n_expr="
 val_t NEW_AAsCastExpr_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AAsCastExpr____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AAsCastExpr____n_expr)
 typedef val_t (* parser_nodes___AAsCastExpr___n_expr_t)(val_t  self);
 val_t parser_nodes___AAsCastExpr___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AAsCastExpr___n_expr "parser_nodes::AAsCastExpr::n_expr"
 typedef void (* parser_nodes___AAsCastExpr___n_expr__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAsCastExpr___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAsCastExpr___n_expr__eq "parser_nodes::AAsCastExpr::n_expr="
-#define ATTR_parser_nodes___AAsCastExpr____n_kwas(recv) ATTR(recv, COLOR_parser_nodes___AAsCastExpr____n_kwas)
 typedef val_t (* parser_nodes___AAsCastExpr___n_kwas_t)(val_t  self);
 val_t parser_nodes___AAsCastExpr___n_kwas(val_t  self);
 #define LOCATE_parser_nodes___AAsCastExpr___n_kwas "parser_nodes::AAsCastExpr::n_kwas"
 typedef void (* parser_nodes___AAsCastExpr___n_kwas__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AAsCastExpr___n_kwas__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAsCastExpr___n_kwas__eq "parser_nodes::AAsCastExpr::n_kwas="
-#define ATTR_parser_nodes___AAsCastExpr____n_type(recv) ATTR(recv, COLOR_parser_nodes___AAsCastExpr____n_type)
 typedef val_t (* parser_nodes___AAsCastExpr___n_type_t)(val_t  self);
 val_t parser_nodes___AAsCastExpr___n_type(val_t  self);
 #define LOCATE_parser_nodes___AAsCastExpr___n_type "parser_nodes::AAsCastExpr::n_type"
@@ -3355,7 +3169,6 @@ typedef void (* parser_nodes___AAsCastExpr___n_type__eq_t)(val_t  self, val_t  p
 void parser_nodes___AAsCastExpr___n_type__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AAsCastExpr___n_type__eq "parser_nodes::AAsCastExpr::n_type="
 val_t NEW_APlusAssignOp_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___APlusAssignOp____n_pluseq(recv) ATTR(recv, COLOR_parser_nodes___APlusAssignOp____n_pluseq)
 typedef val_t (* parser_nodes___APlusAssignOp___n_pluseq_t)(val_t  self);
 val_t parser_nodes___APlusAssignOp___n_pluseq(val_t  self);
 #define LOCATE_parser_nodes___APlusAssignOp___n_pluseq "parser_nodes::APlusAssignOp::n_pluseq"
@@ -3363,7 +3176,6 @@ typedef void (* parser_nodes___APlusAssignOp___n_pluseq__eq_t)(val_t  self, val_
 void parser_nodes___APlusAssignOp___n_pluseq__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___APlusAssignOp___n_pluseq__eq "parser_nodes::APlusAssignOp::n_pluseq="
 val_t NEW_AMinusAssignOp_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AMinusAssignOp____n_minuseq(recv) ATTR(recv, COLOR_parser_nodes___AMinusAssignOp____n_minuseq)
 typedef val_t (* parser_nodes___AMinusAssignOp___n_minuseq_t)(val_t  self);
 val_t parser_nodes___AMinusAssignOp___n_minuseq(val_t  self);
 #define LOCATE_parser_nodes___AMinusAssignOp___n_minuseq "parser_nodes::AMinusAssignOp::n_minuseq"
@@ -3371,28 +3183,24 @@ typedef void (* parser_nodes___AMinusAssignOp___n_minuseq__eq_t)(val_t  self, va
 void parser_nodes___AMinusAssignOp___n_minuseq__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AMinusAssignOp___n_minuseq__eq "parser_nodes::AMinusAssignOp::n_minuseq="
 val_t NEW_AClosureDef_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AClosureDef____n_kwwith(recv) ATTR(recv, COLOR_parser_nodes___AClosureDef____n_kwwith)
 typedef val_t (* parser_nodes___AClosureDef___n_kwwith_t)(val_t  self);
 val_t parser_nodes___AClosureDef___n_kwwith(val_t  self);
 #define LOCATE_parser_nodes___AClosureDef___n_kwwith "parser_nodes::AClosureDef::n_kwwith"
 typedef void (* parser_nodes___AClosureDef___n_kwwith__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClosureDef___n_kwwith__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDef___n_kwwith__eq "parser_nodes::AClosureDef::n_kwwith="
-#define ATTR_parser_nodes___AClosureDef____n_id(recv) ATTR(recv, COLOR_parser_nodes___AClosureDef____n_id)
 typedef val_t (* parser_nodes___AClosureDef___n_id_t)(val_t  self);
 val_t parser_nodes___AClosureDef___n_id(val_t  self);
 #define LOCATE_parser_nodes___AClosureDef___n_id "parser_nodes::AClosureDef::n_id"
 typedef void (* parser_nodes___AClosureDef___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClosureDef___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDef___n_id__eq "parser_nodes::AClosureDef::n_id="
-#define ATTR_parser_nodes___AClosureDef____n_kwdo(recv) ATTR(recv, COLOR_parser_nodes___AClosureDef____n_kwdo)
 typedef val_t (* parser_nodes___AClosureDef___n_kwdo_t)(val_t  self);
 val_t parser_nodes___AClosureDef___n_kwdo(val_t  self);
 #define LOCATE_parser_nodes___AClosureDef___n_kwdo "parser_nodes::AClosureDef::n_kwdo"
 typedef void (* parser_nodes___AClosureDef___n_kwdo__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AClosureDef___n_kwdo__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDef___n_kwdo__eq "parser_nodes::AClosureDef::n_kwdo="
-#define ATTR_parser_nodes___AClosureDef____n_expr(recv) ATTR(recv, COLOR_parser_nodes___AClosureDef____n_expr)
 typedef val_t (* parser_nodes___AClosureDef___n_expr_t)(val_t  self);
 val_t parser_nodes___AClosureDef___n_expr(val_t  self);
 #define LOCATE_parser_nodes___AClosureDef___n_expr "parser_nodes::AClosureDef::n_expr"
@@ -3400,14 +3208,12 @@ typedef void (* parser_nodes___AClosureDef___n_expr__eq_t)(val_t  self, val_t  p
 void parser_nodes___AClosureDef___n_expr__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AClosureDef___n_expr__eq "parser_nodes::AClosureDef::n_expr="
 val_t NEW_AQualified_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___AQualified____n_id(recv) ATTR(recv, COLOR_parser_nodes___AQualified____n_id)
 typedef val_t (* parser_nodes___AQualified___n_id_t)(val_t  self);
 val_t parser_nodes___AQualified___n_id(val_t  self);
 #define LOCATE_parser_nodes___AQualified___n_id "parser_nodes::AQualified::n_id"
 typedef void (* parser_nodes___AQualified___n_id__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___AQualified___n_id__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AQualified___n_id__eq "parser_nodes::AQualified::n_id="
-#define ATTR_parser_nodes___AQualified____n_classid(recv) ATTR(recv, COLOR_parser_nodes___AQualified____n_classid)
 typedef val_t (* parser_nodes___AQualified___n_classid_t)(val_t  self);
 val_t parser_nodes___AQualified___n_classid(val_t  self);
 #define LOCATE_parser_nodes___AQualified___n_classid "parser_nodes::AQualified::n_classid"
@@ -3415,7 +3221,6 @@ typedef void (* parser_nodes___AQualified___n_classid__eq_t)(val_t  self, val_t
 void parser_nodes___AQualified___n_classid__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___AQualified___n_classid__eq "parser_nodes::AQualified::n_classid="
 val_t NEW_ADoc_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___ADoc____n_comment(recv) ATTR(recv, COLOR_parser_nodes___ADoc____n_comment)
 typedef val_t (* parser_nodes___ADoc___n_comment_t)(val_t  self);
 val_t parser_nodes___ADoc___n_comment(val_t  self);
 #define LOCATE_parser_nodes___ADoc___n_comment "parser_nodes::ADoc::n_comment"
@@ -3423,14 +3228,12 @@ typedef void (* parser_nodes___ADoc___n_comment__eq_t)(val_t  self, val_t  param
 void parser_nodes___ADoc___n_comment__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___ADoc___n_comment__eq "parser_nodes::ADoc::n_comment="
 val_t NEW_Start_parser_nodes___PNode___init();
-#define ATTR_parser_nodes___Start____n_base(recv) ATTR(recv, COLOR_parser_nodes___Start____n_base)
 typedef val_t (* parser_nodes___Start___n_base_t)(val_t  self);
 val_t parser_nodes___Start___n_base(val_t  self);
 #define LOCATE_parser_nodes___Start___n_base "parser_nodes::Start::n_base"
 typedef void (* parser_nodes___Start___n_base__eq_t)(val_t  self, val_t  param0);
 void parser_nodes___Start___n_base__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_nodes___Start___n_base__eq "parser_nodes::Start::n_base="
-#define ATTR_parser_nodes___Start____n_eof(recv) ATTR(recv, COLOR_parser_nodes___Start____n_eof)
 typedef val_t (* parser_nodes___Start___n_eof_t)(val_t  self);
 val_t parser_nodes___Start___n_eof(val_t  self);
 #define LOCATE_parser_nodes___Start___n_eof "parser_nodes::Start::n_eof"
index 1fb13b0..69af4aa 100644 (file)
@@ -28,7 +28,7 @@ void parser_prod___PNode___remove_child(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((parser_prod___PNode___replace_child_t)CALL(variable[3],COLOR_parser_prod___PNode___replace_child))(variable[3],  variable[1] /*child*/,  NIT_NULL /*null*/) /*PNode::replace_child*/;
+  CALL_parser_prod___PNode___replace_child(variable[3])(variable[3],  variable[1] /*child*/,  NIT_NULL /*null*/) /*PNode::replace_child*/;
   return_label0: while(false);
   tracehead = trace.prev;
   return;
@@ -55,12 +55,12 @@ void parser_prod___PNode___replace_with(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_prod___PNode____parent(variable[3]) /*PNode::_parent*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_prod___PNode____parent(variable[3]) /*PNode::_parent*/;
     variable[4] = variable[0];
-    ((parser_prod___PNode___replace_child_t)CALL(variable[3],COLOR_parser_prod___PNode___replace_child))(variable[3], variable[4],  variable[1] /*node*/) /*PNode::replace_child*/;
+    CALL_parser_prod___PNode___replace_child(variable[3])(variable[3], variable[4],  variable[1] /*node*/) /*PNode::replace_child*/;
   }
   return_label1: while(false);
   tracehead = trace.prev;
@@ -123,23 +123,24 @@ void parser_prod___PNode___printl(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_prod___PNode___locate_t)CALL(variable[7],COLOR_parser_prod___PNode___locate))(variable[7]) /*PNode::locate*/;
+  variable[7] = CALL_parser_prod___PNode___locate(variable[7])(variable[7]) /*PNode::locate*/;
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
   variable[9] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
   variable[10] = variable[9];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
   variable[11] =  variable[1] /*str*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[11]) /*AbstractArray::add*/;
   variable[12] = NEW_String_string___String___with_native(BOX_NativeString("\n"), TAG_Int(1)); /*new String*/
   variable[13] = variable[12];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[13]) /*String::append*/;
-  ((file___Object___print_t)CALL(variable[3],COLOR_file___Object___print))(variable[3], variable[4]) /*Object::print*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[13]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+  CALL_file___Object___print(variable[3])(variable[3], variable[4]) /*Object::print*/;
   return_label2: while(false);
   tracehead = trace.prev;
   return;
@@ -188,33 +189,34 @@ val_t parser_prod___Token___locate(val_t  self) {
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_parser_prod;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
-  variable[5] = ((lexer___Token___filename_t)CALL(variable[5],COLOR_lexer___Token___filename))(variable[5]) /*Token::filename*/;
+  variable[5] = CALL_lexer___Token___filename(variable[5])(variable[5]) /*Token::filename*/;
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
   variable[9] = variable[0];
-  variable[9] = ((lexer___Token___line_t)CALL(variable[9],COLOR_lexer___Token___line))(variable[9]) /*Token::line*/;
+  variable[9] = CALL_lexer___Token___line(variable[9])(variable[9]) /*Token::line*/;
   variable[10] = variable[9];
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
   variable[13] = variable[0];
-  variable[13] = ((lexer___Token___pos_t)CALL(variable[13],COLOR_lexer___Token___pos))(variable[13]) /*Token::pos*/;
+  variable[13] = CALL_lexer___Token___pos(variable[13])(variable[13]) /*Token::pos*/;
   variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[16]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
   goto return_label6;
   return_label6: while(false);
@@ -229,7 +231,7 @@ val_t parser_prod___Token___line_number(val_t  self) {
   trace.file = LOCATE_parser_prod;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((lexer___Token___line_t)CALL(variable[2],COLOR_lexer___Token___line))(variable[2]) /*Token::line*/;
+  variable[2] = CALL_lexer___Token___line(variable[2])(variable[2]) /*Token::line*/;
   variable[1] = variable[2];
   goto return_label7;
   return_label7: while(false);
@@ -244,15 +246,15 @@ void parser_prod___Prod___replace_with(val_t  self, val_t  param0) {
   trace.file = LOCATE_parser_prod;
   variable[0] =  self;
   variable[1] =  param0;
-  ((parser_prod___Prod___replace_with_t)CALL(variable[0],COLOR_SUPER_parser_prod___Prod___replace_with))(variable[0], variable[1]) /*super Prod::replace_with*/;
+  CALL_SUPER_parser_prod___Prod___replace_with(variable[0])(variable[0], variable[1]) /*super Prod::replace_with*/;
   variable[3] = TAG_Bool(( variable[1] /*n*/==NIT_NULL) || VAL_ISA( variable[1] /*n*/, COLOR_Prod, ID_Prod)) /*cast Prod*/;
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___Prod___replace_with, LOCATE_parser_prod, 86); nit_exit(1);}
   variable[3] = variable[0];
-  variable[3] = ((parser_prod___Prod___first_token_t)CALL(variable[3],COLOR_parser_prod___Prod___first_token))(variable[3]) /*Prod::first_token*/;
-  ((parser_prod___Prod___first_token__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___Prod___first_token__eq))( variable[1] /*n*/, variable[3]) /*Prod::first_token=*/;
+  variable[3] = CALL_parser_prod___Prod___first_token(variable[3])(variable[3]) /*Prod::first_token*/;
+  CALL_parser_prod___Prod___first_token__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*Prod::first_token=*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_prod___Prod___last_token_t)CALL(variable[3],COLOR_parser_prod___Prod___last_token))(variable[3]) /*Prod::last_token*/;
-  ((parser_prod___Prod___last_token__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___Prod___last_token__eq))( variable[1] /*n*/, variable[3]) /*Prod::last_token=*/;
+  variable[3] = CALL_parser_prod___Prod___last_token(variable[3])(variable[3]) /*Prod::last_token*/;
+  CALL_parser_prod___Prod___last_token__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*Prod::last_token=*/;
   return_label8: while(false);
   tracehead = trace.prev;
   return;
@@ -265,79 +267,81 @@ val_t parser_prod___Prod___locate(val_t  self) {
   trace.file = LOCATE_parser_prod;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_prod___Prod___first_token_t)CALL(variable[2],COLOR_parser_prod___Prod___first_token))(variable[2]) /*Prod::first_token*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = CALL_parser_prod___Prod___first_token(variable[2])(variable[2]) /*Prod::first_token*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("????"), TAG_Int(4)); /*new String*/
     variable[1] = variable[2];
     goto return_label9;
   }
   variable[3] = variable[0];
-  variable[3] = ((parser_prod___Prod___last_token_t)CALL(variable[3],COLOR_parser_prod___Prod___last_token))(variable[3]) /*Prod::last_token*/;
-  variable[3] = ((lexer___Token___pos_t)CALL(variable[3],COLOR_lexer___Token___pos))(variable[3]) /*Token::pos*/;
+  variable[3] = CALL_parser_prod___Prod___last_token(variable[3])(variable[3]) /*Prod::last_token*/;
+  variable[3] = CALL_lexer___Token___pos(variable[3])(variable[3]) /*Token::pos*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_prod___Prod___last_token_t)CALL(variable[4],COLOR_parser_prod___Prod___last_token))(variable[4]) /*Prod::last_token*/;
-  variable[4] = ((lexer___Token___text_t)CALL(variable[4],COLOR_lexer___Token___text))(variable[4]) /*Token::text*/;
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_parser_prod___Prod___last_token(variable[4])(variable[4]) /*Prod::last_token*/;
+  variable[4] = CALL_lexer___Token___text(variable[4])(variable[4]) /*Token::text*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int(variable[4]));
   variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((parser_prod___Prod___first_token_t)CALL(variable[3],COLOR_parser_prod___Prod___first_token))(variable[3]) /*Prod::first_token*/;
-  variable[3] = ((lexer___Token___line_t)CALL(variable[3],COLOR_lexer___Token___line))(variable[3]) /*Token::line*/;
+  variable[3] = CALL_parser_prod___Prod___first_token(variable[3])(variable[3]) /*Prod::first_token*/;
+  variable[3] = CALL_lexer___Token___line(variable[3])(variable[3]) /*Token::line*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_prod___Prod___last_token_t)CALL(variable[4],COLOR_parser_prod___Prod___last_token))(variable[4]) /*Prod::last_token*/;
-  variable[4] = ((lexer___Token___line_t)CALL(variable[4],COLOR_lexer___Token___line))(variable[4]) /*Token::line*/;
+  variable[4] = CALL_parser_prod___Prod___last_token(variable[4])(variable[4]) /*Prod::last_token*/;
+  variable[4] = CALL_lexer___Token___line(variable[4])(variable[4]) /*Token::line*/;
   variable[3] = TAG_Bool((variable[3])==(variable[4]));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
-    variable[6] = ((parser_prod___Prod___first_token_t)CALL(variable[6],COLOR_parser_prod___Prod___first_token))(variable[6]) /*Prod::first_token*/;
-    variable[6] = ((parser_prod___Token___locate_t)CALL(variable[6],COLOR_parser_prod___PNode___locate))(variable[6]) /*Token::locate*/;
+    variable[6] = CALL_parser_prod___Prod___first_token(variable[6])(variable[6]) /*Prod::first_token*/;
+    variable[6] = CALL_parser_prod___PNode___locate(variable[6])(variable[6]) /*Token::locate*/;
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[2] /*lastpos*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[1] = variable[3];
     goto return_label9;
   } else { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
-    variable[6] = ((parser_prod___Prod___first_token_t)CALL(variable[6],COLOR_parser_prod___Prod___first_token))(variable[6]) /*Prod::first_token*/;
-    variable[6] = ((parser_prod___Token___locate_t)CALL(variable[6],COLOR_parser_prod___PNode___locate))(variable[6]) /*Token::locate*/;
+    variable[6] = CALL_parser_prod___Prod___first_token(variable[6])(variable[6]) /*Prod::first_token*/;
+    variable[6] = CALL_parser_prod___PNode___locate(variable[6])(variable[6]) /*Token::locate*/;
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("--"), TAG_Int(2)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
     variable[10] = variable[0];
-    variable[10] = ((parser_prod___Prod___last_token_t)CALL(variable[10],COLOR_parser_prod___Prod___last_token))(variable[10]) /*Prod::last_token*/;
-    variable[10] = ((lexer___Token___line_t)CALL(variable[10],COLOR_lexer___Token___line))(variable[10]) /*Token::line*/;
+    variable[10] = CALL_parser_prod___Prod___last_token(variable[10])(variable[10]) /*Prod::last_token*/;
+    variable[10] = CALL_lexer___Token___line(variable[10])(variable[10]) /*Token::line*/;
     variable[11] = variable[10];
-    variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[11]) /*String::append*/;
+    variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString(":"), TAG_Int(1)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[13]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
     variable[14] =  variable[2] /*lastpos*/;
-    variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[14]) /*String::append*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[16]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
     variable[1] = variable[3];
     goto return_label9;
   }
@@ -353,12 +357,12 @@ val_t parser_prod___Prod___line_number(val_t  self) {
   trace.file = LOCATE_parser_prod;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_prod___Prod___first_token_t)CALL(variable[2],COLOR_parser_prod___Prod___first_token))(variable[2]) /*Prod::first_token*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = CALL_parser_prod___Prod___first_token(variable[2])(variable[2]) /*Prod::first_token*/;
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((parser_prod___Prod___first_token_t)CALL(variable[2],COLOR_parser_prod___Prod___first_token))(variable[2]) /*Prod::first_token*/;
-    variable[2] = ((lexer___Token___line_t)CALL(variable[2],COLOR_lexer___Token___line))(variable[2]) /*Token::line*/;
+    variable[2] = CALL_parser_prod___Prod___first_token(variable[2])(variable[2]) /*Prod::first_token*/;
+    variable[2] = CALL_lexer___Token___line(variable[2])(variable[2]) /*Token::line*/;
     variable[1] = variable[2];
     goto return_label10;
   } else { /*if*/
@@ -438,10 +442,10 @@ void parser_prod___AModule___n_packagedecl__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label11: while(false);
   tracehead = trace.prev;
@@ -456,16 +460,16 @@ void parser_prod___AModule___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 147); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AModule____n_packagedecl(variable[4]) /*AModule::_n_packagedecl*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPackagedecl, ID_PPackagedecl)) /*cast PPackagedecl*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 151); nit_exit(1);}
       variable[4] = variable[0];
@@ -478,74 +482,74 @@ void parser_prod___AModule___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[4]) /*AModule::_n_imports*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[7]) /*AModule::_n_imports*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 161); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[7]) /*AModule::_n_imports*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AModule____n_imports(variable[7]) /*AModule::_n_imports*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label12;
     }
     continue_13: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_13: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[4]) /*AModule::_n_classdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[7]) /*AModule::_n_classdefs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___replace_child, LOCATE_parser_prod, 173); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[7]) /*AModule::_n_classdefs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AModule____n_classdefs(variable[7]) /*AModule::_n_classdefs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label12;
     }
     continue_14: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_14: while(0);
   return_label12: while(false);
@@ -562,36 +566,36 @@ void parser_prod___AModule___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AModule____n_imports(variable[3]) /*AModule::_n_imports*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_16: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_16: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AModule____n_classdefs(variable[3]) /*AModule::_n_classdefs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_17: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_17: while(0);
   return_label15: while(false);
@@ -608,23 +612,23 @@ void parser_prod___AModule___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AModule____n_packagedecl(variable[3]) /*AModule::_n_packagedecl*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[4]) /*AModule::_n_imports*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AModule____n_imports(variable[4]) /*AModule::_n_imports*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_19: while(0);
@@ -632,15 +636,15 @@ void parser_prod___AModule___visit_all_reverse(val_t  self, val_t  param0) {
   break_19: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[4]) /*AModule::_n_classdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AModule____n_classdefs(variable[4]) /*AModule::_n_classdefs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_20: while(0);
@@ -675,52 +679,52 @@ void parser_prod___AModule___init_amodule(val_t  self, val_t  param0, val_t  par
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AModule].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AModule___empty_init_t)CALL(variable[5],COLOR_parser_prod___AModule___empty_init))(variable[5], init_table /*YYY*/) /*AModule::empty_init*/;
+  CALL_parser_prod___AModule___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AModule::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AModule____n_packagedecl(variable[5]) /*AModule::_n_packagedecl*/ =  variable[1] /*n_packagedecl*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_packagedecl*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_packagedecl*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_packagedecl*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_packagedecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_packagedecl*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_packagedecl*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_packagedecl*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_packagedecl*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_packagedecl*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_packagedecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_packagedecl*/)( variable[1] /*n_packagedecl*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_packagedecl*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_packagedecl*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_packagedecl*/)( variable[1] /*n_packagedecl*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PImport]*/
   ATTR_parser_nodes___AModule____n_imports(variable[5]) /*AModule::_n_imports*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*n_imports*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*n_imports*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_imports*/)( variable[2] /*n_imports*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PImport, ID_PImport)) /*cast PImport*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___init_amodule, LOCATE_parser_prod, 133); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___AModule____n_imports(variable[8]) /*AModule::_n_imports*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_23: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_23: while(0);
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PClassdef]*/
   ATTR_parser_nodes___AModule____n_classdefs(variable[5]) /*AModule::_n_classdefs*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_classdefs*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_classdefs*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_classdefs*/)( variable[3] /*n_classdefs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClassdef, ID_PClassdef)) /*cast PClassdef*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AModule___init_amodule, LOCATE_parser_prod, 139); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___AModule____n_classdefs(variable[8]) /*AModule::_n_classdefs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_24: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_24: while(0);
   return_label22: while(false);
@@ -738,10 +742,10 @@ void parser_prod___APackagedecl___n_doc__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label25: while(false);
   tracehead = trace.prev;
@@ -757,10 +761,10 @@ void parser_prod___APackagedecl___n_kwpackage__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label26: while(false);
   tracehead = trace.prev;
@@ -776,10 +780,10 @@ void parser_prod___APackagedecl___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label27: while(false);
   tracehead = trace.prev;
@@ -794,16 +798,16 @@ void parser_prod___APackagedecl___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 266); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___APackagedecl____n_doc(variable[4]) /*APackagedecl::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 270); nit_exit(1);}
       variable[4] = variable[0];
@@ -816,12 +820,12 @@ void parser_prod___APackagedecl___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[4]) /*APackagedecl::_n_kwpackage*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwpackage, ID_TKwpackage)) /*cast TKwpackage*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 280); nit_exit(1);}
       variable[4] = variable[0];
@@ -834,12 +838,12 @@ void parser_prod___APackagedecl___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___APackagedecl____n_id(variable[4]) /*APackagedecl::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APackagedecl___replace_child, LOCATE_parser_prod, 290); nit_exit(1);}
       variable[4] = variable[0];
@@ -864,27 +868,27 @@ void parser_prod___APackagedecl___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label29: while(false);
   tracehead = trace.prev;
@@ -900,27 +904,27 @@ void parser_prod___APackagedecl___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APackagedecl____n_doc(variable[3]) /*APackagedecl::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[3]) /*APackagedecl::_n_kwpackage*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APackagedecl____n_id(variable[3]) /*APackagedecl::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label30: while(false);
   tracehead = trace.prev;
@@ -951,27 +955,27 @@ void parser_prod___APackagedecl___init_apackagedecl(val_t  self, val_t  param0,
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___APackagedecl___empty_init_t)CALL(variable[5],COLOR_parser_prod___APackagedecl___empty_init))(variable[5], init_table /*YYY*/) /*APackagedecl::empty_init*/;
+  CALL_parser_prod___APackagedecl___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*APackagedecl::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___APackagedecl____n_doc(variable[5]) /*APackagedecl::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___APackagedecl____n_kwpackage(variable[5]) /*APackagedecl::_n_kwpackage*/ =  variable[2] /*n_kwpackage*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwpackage*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwpackage*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwpackage*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwpackage*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwpackage*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwpackage*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwpackage*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwpackage*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwpackage*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwpackage*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwpackage*/)( variable[2] /*n_kwpackage*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwpackage*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwpackage*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwpackage*/)( variable[2] /*n_kwpackage*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___APackagedecl____n_id(variable[5]) /*APackagedecl::_n_id*/ =  variable[3] /*n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_id*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[5]) /*PNode::parent=*/;
   }
   return_label32: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APackagedecl].i] = 1;
@@ -988,10 +992,10 @@ void parser_prod___AImport___n_visibility__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label33: while(false);
   tracehead = trace.prev;
@@ -1007,10 +1011,10 @@ void parser_prod___AImport___n_kwimport__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label34: while(false);
   tracehead = trace.prev;
@@ -1026,10 +1030,10 @@ void parser_prod___AImport___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label35: while(false);
   tracehead = trace.prev;
@@ -1044,16 +1048,16 @@ void parser_prod___AImport___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 373); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AImport____n_visibility(variable[4]) /*AImport::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 377); nit_exit(1);}
       variable[4] = variable[0];
@@ -1066,12 +1070,12 @@ void parser_prod___AImport___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AImport____n_kwimport(variable[4]) /*AImport::_n_kwimport*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 387); nit_exit(1);}
       variable[4] = variable[0];
@@ -1084,12 +1088,12 @@ void parser_prod___AImport___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AImport____n_id(variable[4]) /*AImport::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImport___replace_child, LOCATE_parser_prod, 397); nit_exit(1);}
       variable[4] = variable[0];
@@ -1114,27 +1118,27 @@ void parser_prod___AImport___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label37: while(false);
   tracehead = trace.prev;
@@ -1150,27 +1154,27 @@ void parser_prod___AImport___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AImport____n_visibility(variable[3]) /*AImport::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AImport____n_kwimport(variable[3]) /*AImport::_n_kwimport*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AImport____n_id(variable[3]) /*AImport::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label38: while(false);
   tracehead = trace.prev;
@@ -1201,27 +1205,27 @@ void parser_prod___AImport___init_aimport(val_t  self, val_t  param0, val_t  par
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AImport___empty_init_t)CALL(variable[5],COLOR_parser_prod___AImport___empty_init))(variable[5], init_table /*YYY*/) /*AImport::empty_init*/;
+  CALL_parser_prod___AImport___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AImport::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AImport____n_visibility(variable[5]) /*AImport::_n_visibility*/ =  variable[1] /*n_visibility*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_visibility*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AImport____n_kwimport(variable[5]) /*AImport::_n_kwimport*/ =  variable[2] /*n_kwimport*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwimport*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwimport*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwimport*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwimport*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwimport*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwimport*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwimport*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwimport*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwimport*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AImport____n_id(variable[5]) /*AImport::_n_id*/ =  variable[3] /*n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_id*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[5]) /*PNode::parent=*/;
   }
   return_label40: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImport].i] = 1;
@@ -1238,10 +1242,10 @@ void parser_prod___ANoImport___n_visibility__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label41: while(false);
   tracehead = trace.prev;
@@ -1257,10 +1261,10 @@ void parser_prod___ANoImport___n_kwimport__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label42: while(false);
   tracehead = trace.prev;
@@ -1276,10 +1280,10 @@ void parser_prod___ANoImport___n_kwend__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label43: while(false);
   tracehead = trace.prev;
@@ -1294,16 +1298,16 @@ void parser_prod___ANoImport___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 480); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANoImport____n_visibility(variable[4]) /*ANoImport::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 484); nit_exit(1);}
       variable[4] = variable[0];
@@ -1316,12 +1320,12 @@ void parser_prod___ANoImport___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[4]) /*ANoImport::_n_kwimport*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwimport, ID_TKwimport)) /*cast TKwimport*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 494); nit_exit(1);}
       variable[4] = variable[0];
@@ -1334,12 +1338,12 @@ void parser_prod___ANoImport___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANoImport____n_kwend(variable[4]) /*ANoImport::_n_kwend*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwend, ID_TKwend)) /*cast TKwend*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANoImport___replace_child, LOCATE_parser_prod, 504); nit_exit(1);}
       variable[4] = variable[0];
@@ -1364,27 +1368,27 @@ void parser_prod___ANoImport___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label45: while(false);
   tracehead = trace.prev;
@@ -1400,27 +1404,27 @@ void parser_prod___ANoImport___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANoImport____n_visibility(variable[3]) /*ANoImport::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANoImport____n_kwimport(variable[3]) /*ANoImport::_n_kwimport*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANoImport____n_kwend(variable[3]) /*ANoImport::_n_kwend*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label46: while(false);
   tracehead = trace.prev;
@@ -1451,27 +1455,27 @@ void parser_prod___ANoImport___init_anoimport(val_t  self, val_t  param0, val_t
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___ANoImport___empty_init_t)CALL(variable[5],COLOR_parser_prod___ANoImport___empty_init))(variable[5], init_table /*YYY*/) /*ANoImport::empty_init*/;
+  CALL_parser_prod___ANoImport___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ANoImport::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___ANoImport____n_visibility(variable[5]) /*ANoImport::_n_visibility*/ =  variable[1] /*n_visibility*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_visibility*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_visibility*/)( variable[1] /*n_visibility*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___ANoImport____n_kwimport(variable[5]) /*ANoImport::_n_kwimport*/ =  variable[2] /*n_kwimport*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwimport*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwimport*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwimport*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwimport*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwimport*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwimport*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwimport*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwimport*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwimport*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwimport*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwimport*/)( variable[2] /*n_kwimport*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___ANoImport____n_kwend(variable[5]) /*ANoImport::_n_kwend*/ =  variable[3] /*n_kwend*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwend*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwend*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwend*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwend*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwend*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_kwend*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwend*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwend*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwend*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwend*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwend*/)( variable[3] /*n_kwend*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_kwend*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_kwend*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwend*/)( variable[3] /*n_kwend*/, variable[5]) /*PNode::parent=*/;
   }
   return_label48: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANoImport].i] = 1;
@@ -1487,7 +1491,7 @@ void parser_prod___APublicVisibility___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APublicVisibility___replace_child, LOCATE_parser_prod, 550); nit_exit(1);}
   return_label49: while(false);
   tracehead = trace.prev;
@@ -1539,7 +1543,7 @@ void parser_prod___APublicVisibility___init_apublicvisibility(val_t  self, int*
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i]) return;
   variable[2] = variable[0];
-  ((parser_prod___APublicVisibility___empty_init_t)CALL(variable[2],COLOR_parser_prod___APublicVisibility___empty_init))(variable[2], init_table /*YYY*/) /*APublicVisibility::empty_init*/;
+  CALL_parser_prod___APublicVisibility___empty_init(variable[2])(variable[2], init_table /*YYY*/) /*APublicVisibility::empty_init*/;
   return_label53: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APublicVisibility].i] = 1;
   tracehead = trace.prev;
@@ -1555,10 +1559,10 @@ void parser_prod___APrivateVisibility___n_kwprivate__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label54: while(false);
   tracehead = trace.prev;
@@ -1573,16 +1577,16 @@ void parser_prod___APrivateVisibility___replace_child(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APrivateVisibility___replace_child, LOCATE_parser_prod, 585); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[4]) /*APrivateVisibility::_n_kwprivate*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwprivate, ID_TKwprivate)) /*cast TKwprivate*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APrivateVisibility___replace_child, LOCATE_parser_prod, 589); nit_exit(1);}
       variable[4] = variable[0];
@@ -1607,11 +1611,11 @@ void parser_prod___APrivateVisibility___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label56: while(false);
   tracehead = trace.prev;
@@ -1627,11 +1631,11 @@ void parser_prod___APrivateVisibility___visit_all_reverse(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label57: while(false);
   tracehead = trace.prev;
@@ -1660,13 +1664,13 @@ void parser_prod___APrivateVisibility___init_aprivatevisibility(val_t  self, val
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___APrivateVisibility___empty_init_t)CALL(variable[3],COLOR_parser_prod___APrivateVisibility___empty_init))(variable[3], init_table /*YYY*/) /*APrivateVisibility::empty_init*/;
+  CALL_parser_prod___APrivateVisibility___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APrivateVisibility::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___APrivateVisibility____n_kwprivate(variable[3]) /*APrivateVisibility::_n_kwprivate*/ =  variable[1] /*n_kwprivate*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwprivate*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwprivate*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwprivate*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwprivate*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwprivate*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwprivate*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwprivate*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwprivate*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwprivate*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwprivate*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwprivate*/)( variable[1] /*n_kwprivate*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwprivate*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwprivate*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwprivate*/)( variable[1] /*n_kwprivate*/, variable[3]) /*PNode::parent=*/;
   }
   return_label59: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APrivateVisibility].i] = 1;
@@ -1683,10 +1687,10 @@ void parser_prod___AProtectedVisibility___n_kwprotected__eq(val_t  self, val_t
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label60: while(false);
   tracehead = trace.prev;
@@ -1701,16 +1705,16 @@ void parser_prod___AProtectedVisibility___replace_child(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AProtectedVisibility___replace_child, LOCATE_parser_prod, 636); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[4]) /*AProtectedVisibility::_n_kwprotected*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwprotected, ID_TKwprotected)) /*cast TKwprotected*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AProtectedVisibility___replace_child, LOCATE_parser_prod, 640); nit_exit(1);}
       variable[4] = variable[0];
@@ -1735,11 +1739,11 @@ void parser_prod___AProtectedVisibility___visit_all(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label62: while(false);
   tracehead = trace.prev;
@@ -1755,11 +1759,11 @@ void parser_prod___AProtectedVisibility___visit_all_reverse(val_t  self, val_t
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label63: while(false);
   tracehead = trace.prev;
@@ -1788,13 +1792,13 @@ void parser_prod___AProtectedVisibility___init_aprotectedvisibility(val_t  self,
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AProtectedVisibility___empty_init_t)CALL(variable[3],COLOR_parser_prod___AProtectedVisibility___empty_init))(variable[3], init_table /*YYY*/) /*AProtectedVisibility::empty_init*/;
+  CALL_parser_prod___AProtectedVisibility___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AProtectedVisibility::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AProtectedVisibility____n_kwprotected(variable[3]) /*AProtectedVisibility::_n_kwprotected*/ =  variable[1] /*n_kwprotected*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwprotected*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwprotected*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwprotected*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwprotected*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwprotected*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwprotected*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwprotected*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwprotected*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwprotected*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwprotected*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwprotected*/)( variable[1] /*n_kwprotected*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwprotected*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwprotected*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwprotected*/)( variable[1] /*n_kwprotected*/, variable[3]) /*PNode::parent=*/;
   }
   return_label65: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AProtectedVisibility].i] = 1;
@@ -1811,10 +1815,10 @@ void parser_prod___AIntrudeVisibility___n_kwintrude__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label66: while(false);
   tracehead = trace.prev;
@@ -1829,16 +1833,16 @@ void parser_prod___AIntrudeVisibility___replace_child(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntrudeVisibility___replace_child, LOCATE_parser_prod, 687); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[4]) /*AIntrudeVisibility::_n_kwintrude*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwintrude, ID_TKwintrude)) /*cast TKwintrude*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntrudeVisibility___replace_child, LOCATE_parser_prod, 691); nit_exit(1);}
       variable[4] = variable[0];
@@ -1863,11 +1867,11 @@ void parser_prod___AIntrudeVisibility___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label68: while(false);
   tracehead = trace.prev;
@@ -1883,11 +1887,11 @@ void parser_prod___AIntrudeVisibility___visit_all_reverse(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label69: while(false);
   tracehead = trace.prev;
@@ -1916,13 +1920,13 @@ void parser_prod___AIntrudeVisibility___init_aintrudevisibility(val_t  self, val
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AIntrudeVisibility___empty_init_t)CALL(variable[3],COLOR_parser_prod___AIntrudeVisibility___empty_init))(variable[3], init_table /*YYY*/) /*AIntrudeVisibility::empty_init*/;
+  CALL_parser_prod___AIntrudeVisibility___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AIntrudeVisibility::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIntrudeVisibility____n_kwintrude(variable[3]) /*AIntrudeVisibility::_n_kwintrude*/ =  variable[1] /*n_kwintrude*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwintrude*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwintrude*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwintrude*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwintrude*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwintrude*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwintrude*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwintrude*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwintrude*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwintrude*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwintrude*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwintrude*/)( variable[1] /*n_kwintrude*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwintrude*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwintrude*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwintrude*/)( variable[1] /*n_kwintrude*/, variable[3]) /*PNode::parent=*/;
   }
   return_label71: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntrudeVisibility].i] = 1;
@@ -1939,10 +1943,10 @@ void parser_prod___AClassdef___n_doc__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label72: while(false);
   tracehead = trace.prev;
@@ -1958,10 +1962,10 @@ void parser_prod___AClassdef___n_kwredef__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label73: while(false);
   tracehead = trace.prev;
@@ -1977,10 +1981,10 @@ void parser_prod___AClassdef___n_visibility__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label74: while(false);
   tracehead = trace.prev;
@@ -1996,10 +2000,10 @@ void parser_prod___AClassdef___n_classkind__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label75: while(false);
   tracehead = trace.prev;
@@ -2015,10 +2019,10 @@ void parser_prod___AClassdef___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label76: while(false);
   tracehead = trace.prev;
@@ -2033,16 +2037,16 @@ void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 807); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_doc(variable[4]) /*AClassdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 811); nit_exit(1);}
       variable[4] = variable[0];
@@ -2055,12 +2059,12 @@ void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[4]) /*AClassdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 821); nit_exit(1);}
       variable[4] = variable[0];
@@ -2073,12 +2077,12 @@ void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_visibility(variable[4]) /*AClassdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 831); nit_exit(1);}
       variable[4] = variable[0];
@@ -2091,12 +2095,12 @@ void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_classkind(variable[4]) /*AClassdef::_n_classkind*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClasskind, ID_PClasskind)) /*cast PClasskind*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 841); nit_exit(1);}
       variable[4] = variable[0];
@@ -2109,12 +2113,12 @@ void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_id(variable[4]) /*AClassdef::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 851); nit_exit(1);}
       variable[4] = variable[0];
@@ -2127,110 +2131,110 @@ void parser_prod___AClassdef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[4]) /*AClassdef::_n_formaldefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[7]) /*AClassdef::_n_formaldefs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 861); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[7]) /*AClassdef::_n_formaldefs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[7]) /*AClassdef::_n_formaldefs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label77;
     }
     continue_78: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_78: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[4]) /*AClassdef::_n_superclasses*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[7]) /*AClassdef::_n_superclasses*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 873); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[7]) /*AClassdef::_n_superclasses*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[7]) /*AClassdef::_n_superclasses*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label77;
     }
     continue_79: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_79: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[4]) /*AClassdef::_n_propdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[7]) /*AClassdef::_n_propdefs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___replace_child, LOCATE_parser_prod, 885); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[7]) /*AClassdef::_n_propdefs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[7]) /*AClassdef::_n_propdefs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label77;
     }
     continue_80: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_80: while(0);
   return_label77: while(false);
@@ -2247,81 +2251,81 @@ void parser_prod___AClassdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[3]) /*AClassdef::_n_formaldefs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_82: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_82: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[3]) /*AClassdef::_n_superclasses*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_83: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_83: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[3]) /*AClassdef::_n_propdefs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_84: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_84: while(0);
   return_label81: while(false);
@@ -2338,55 +2342,55 @@ void parser_prod___AClassdef___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_doc(variable[3]) /*AClassdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_kwredef(variable[3]) /*AClassdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_visibility(variable[3]) /*AClassdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_classkind(variable[3]) /*AClassdef::_n_classkind*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClassdef____n_id(variable[3]) /*AClassdef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[4]) /*AClassdef::_n_formaldefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[4]) /*AClassdef::_n_formaldefs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_86: while(0);
@@ -2394,15 +2398,15 @@ void parser_prod___AClassdef___visit_all_reverse(val_t  self, val_t  param0) {
   break_86: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[4]) /*AClassdef::_n_superclasses*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[4]) /*AClassdef::_n_superclasses*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_87: while(0);
@@ -2410,15 +2414,15 @@ void parser_prod___AClassdef___visit_all_reverse(val_t  self, val_t  param0) {
   break_87: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[4]) /*AClassdef::_n_propdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[4]) /*AClassdef::_n_propdefs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_88: while(0);
@@ -2458,100 +2462,100 @@ void parser_prod___AClassdef___init_aclassdef(val_t  self, val_t  param0, val_t
   variable[8] =  param7;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClassdef].i]) return;
   variable[10] = variable[0];
-  ((parser_prod___AClassdef___empty_init_t)CALL(variable[10],COLOR_parser_prod___AClassdef___empty_init))(variable[10], init_table /*YYY*/) /*AClassdef::empty_init*/;
+  CALL_parser_prod___AClassdef___empty_init(variable[10])(variable[10], init_table /*YYY*/) /*AClassdef::empty_init*/;
   variable[10] = variable[0];
   ATTR_parser_nodes___AClassdef____n_doc(variable[10]) /*AClassdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
     variable[10] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[10]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[10]) /*PNode::parent=*/;
   }
   variable[10] = variable[0];
   ATTR_parser_nodes___AClassdef____n_kwredef(variable[10]) /*AClassdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
     variable[10] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[10]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[10]) /*PNode::parent=*/;
   }
   variable[10] = variable[0];
   ATTR_parser_nodes___AClassdef____n_visibility(variable[10]) /*AClassdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
     variable[10] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[10]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[10]) /*PNode::parent=*/;
   }
   variable[10] = variable[0];
   ATTR_parser_nodes___AClassdef____n_classkind(variable[10]) /*AClassdef::_n_classkind*/ =  variable[4] /*n_classkind*/;
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_classkind*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_classkind*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_classkind*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_classkind*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_classkind*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_classkind*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_classkind*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_classkind*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_classkind*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_classkind*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_classkind*/)( variable[4] /*n_classkind*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
     variable[10] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_classkind*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_classkind*/, variable[10]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_classkind*/)( variable[4] /*n_classkind*/, variable[10]) /*PNode::parent=*/;
   }
   variable[10] = variable[0];
   ATTR_parser_nodes___AClassdef____n_id(variable[10]) /*AClassdef::_n_id*/ =  variable[5] /*n_id*/;
-  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)( variable[5] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[10])) { /*if*/
     variable[10] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_id*/, variable[10]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_id*/)( variable[5] /*n_id*/, variable[10]) /*PNode::parent=*/;
   }
   variable[10] = variable[0];
   variable[11] = NEW_List_list___List___init(); /*new List[PFormaldef]*/
   ATTR_parser_nodes___AClassdef____n_formaldefs(variable[10]) /*AClassdef::_n_formaldefs*/ = variable[11];
-  variable[10] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*n_formaldefs*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*n_formaldefs*/) /*AbstractArray::iterator*/;
+  variable[10] = CALL_abstract_collection___Collection___iterator( variable[6] /*n_formaldefs*/)( variable[6] /*n_formaldefs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+    variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[11])) break; /*for*/
-    variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
     variable[12] = variable[11];
     variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PFormaldef, ID_PFormaldef)) /*cast PFormaldef*/;
     if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___init_aclassdef, LOCATE_parser_prod, 787); nit_exit(1);}
     variable[13] = variable[0];
     variable[13] = ATTR_parser_nodes___AClassdef____n_formaldefs(variable[13]) /*AClassdef::_n_formaldefs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  variable[12] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  variable[12] /*n*/) /*IndexedCollection::add*/;
     variable[13] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[12] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
     continue_91: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
   }
   break_91: while(0);
   variable[10] = variable[0];
   variable[11] = NEW_List_list___List___init(); /*new List[PSuperclass]*/
   ATTR_parser_nodes___AClassdef____n_superclasses(variable[10]) /*AClassdef::_n_superclasses*/ = variable[11];
-  variable[10] = ((array___AbstractArray___iterator_t)CALL( variable[7] /*n_superclasses*/,COLOR_abstract_collection___Collection___iterator))( variable[7] /*n_superclasses*/) /*AbstractArray::iterator*/;
+  variable[10] = CALL_abstract_collection___Collection___iterator( variable[7] /*n_superclasses*/)( variable[7] /*n_superclasses*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+    variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[11])) break; /*for*/
-    variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
     variable[12] = variable[11];
     variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PSuperclass, ID_PSuperclass)) /*cast PSuperclass*/;
     if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___init_aclassdef, LOCATE_parser_prod, 793); nit_exit(1);}
     variable[13] = variable[0];
     variable[13] = ATTR_parser_nodes___AClassdef____n_superclasses(variable[13]) /*AClassdef::_n_superclasses*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  variable[12] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  variable[12] /*n*/) /*IndexedCollection::add*/;
     variable[13] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[12] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
     continue_92: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
   }
   break_92: while(0);
   variable[10] = variable[0];
   variable[11] = NEW_List_list___List___init(); /*new List[PPropdef]*/
   ATTR_parser_nodes___AClassdef____n_propdefs(variable[10]) /*AClassdef::_n_propdefs*/ = variable[11];
-  variable[10] = ((array___AbstractArray___iterator_t)CALL( variable[8] /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable[8] /*n_propdefs*/) /*AbstractArray::iterator*/;
+  variable[10] = CALL_abstract_collection___Collection___iterator( variable[8] /*n_propdefs*/)( variable[8] /*n_propdefs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+    variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[11])) break; /*for*/
-    variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+    variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
     variable[12] = variable[11];
     variable[13] = TAG_Bool(( variable[12] /*n*/==NIT_NULL) || VAL_ISA( variable[12] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
     if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClassdef___init_aclassdef, LOCATE_parser_prod, 799); nit_exit(1);}
     variable[13] = variable[0];
     variable[13] = ATTR_parser_nodes___AClassdef____n_propdefs(variable[13]) /*AClassdef::_n_propdefs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  variable[12] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  variable[12] /*n*/) /*IndexedCollection::add*/;
     variable[13] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[12] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[12] /*n*/)( variable[12] /*n*/, variable[13]) /*PNode::parent=*/;
     continue_93: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
   }
   break_93: while(0);
   return_label90: while(false);
@@ -2568,42 +2572,42 @@ void parser_prod___ATopClassdef___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATopClassdef___replace_child, LOCATE_parser_prod, 983); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[4]) /*ATopClassdef::_n_propdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[7]) /*ATopClassdef::_n_propdefs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATopClassdef___replace_child, LOCATE_parser_prod, 987); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[7]) /*ATopClassdef::_n_propdefs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[7]) /*ATopClassdef::_n_propdefs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label94;
     }
     continue_95: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_95: while(0);
   return_label94: while(false);
@@ -2620,15 +2624,15 @@ void parser_prod___ATopClassdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[3]) /*ATopClassdef::_n_propdefs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_97: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_97: while(0);
   return_label96: while(false);
@@ -2645,15 +2649,15 @@ void parser_prod___ATopClassdef___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[4]) /*ATopClassdef::_n_propdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[4]) /*ATopClassdef::_n_propdefs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_99: while(0);
@@ -2686,25 +2690,25 @@ void parser_prod___ATopClassdef___init_atopclassdef(val_t  self, val_t  param0,
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATopClassdef].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ATopClassdef___empty_init_t)CALL(variable[3],COLOR_parser_prod___ATopClassdef___empty_init))(variable[3], init_table /*YYY*/) /*ATopClassdef::empty_init*/;
+  CALL_parser_prod___ATopClassdef___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ATopClassdef::empty_init*/;
   variable[3] = variable[0];
   variable[4] = NEW_List_list___List___init(); /*new List[PPropdef]*/
   ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[3]) /*ATopClassdef::_n_propdefs*/ = variable[4];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_propdefs*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_propdefs*/)( variable[1] /*n_propdefs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATopClassdef___init_atopclassdef, LOCATE_parser_prod, 975); nit_exit(1);}
     variable[6] = variable[0];
     variable[6] = ATTR_parser_nodes___ATopClassdef____n_propdefs(variable[6]) /*ATopClassdef::_n_propdefs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
     continue_102: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_102: while(0);
   return_label101: while(false);
@@ -2721,42 +2725,42 @@ void parser_prod___AMainClassdef___replace_child(val_t  self, val_t  param0, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainClassdef___replace_child, LOCATE_parser_prod, 1035); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[4]) /*AMainClassdef::_n_propdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[7]) /*AMainClassdef::_n_propdefs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainClassdef___replace_child, LOCATE_parser_prod, 1039); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[7]) /*AMainClassdef::_n_propdefs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[7]) /*AMainClassdef::_n_propdefs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label103;
     }
     continue_104: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_104: while(0);
   return_label103: while(false);
@@ -2773,15 +2777,15 @@ void parser_prod___AMainClassdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[3]) /*AMainClassdef::_n_propdefs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_106: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_106: while(0);
   return_label105: while(false);
@@ -2798,15 +2802,15 @@ void parser_prod___AMainClassdef___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[4]) /*AMainClassdef::_n_propdefs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[4]) /*AMainClassdef::_n_propdefs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_108: while(0);
@@ -2839,25 +2843,25 @@ void parser_prod___AMainClassdef___init_amainclassdef(val_t  self, val_t  param0
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainClassdef].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AMainClassdef___empty_init_t)CALL(variable[3],COLOR_parser_prod___AMainClassdef___empty_init))(variable[3], init_table /*YYY*/) /*AMainClassdef::empty_init*/;
+  CALL_parser_prod___AMainClassdef___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMainClassdef::empty_init*/;
   variable[3] = variable[0];
   variable[4] = NEW_List_list___List___init(); /*new List[PPropdef]*/
   ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[3]) /*AMainClassdef::_n_propdefs*/ = variable[4];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_propdefs*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_propdefs*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_propdefs*/)( variable[1] /*n_propdefs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PPropdef, ID_PPropdef)) /*cast PPropdef*/;
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainClassdef___init_amainclassdef, LOCATE_parser_prod, 1027); nit_exit(1);}
     variable[6] = variable[0];
     variable[6] = ATTR_parser_nodes___AMainClassdef____n_propdefs(variable[6]) /*AMainClassdef::_n_propdefs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
     continue_111: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_111: while(0);
   return_label110: while(false);
@@ -2875,10 +2879,10 @@ void parser_prod___AConcreteClasskind___n_kwclass__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label112: while(false);
   tracehead = trace.prev;
@@ -2893,16 +2897,16 @@ void parser_prod___AConcreteClasskind___replace_child(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteClasskind___replace_child, LOCATE_parser_prod, 1092); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[4]) /*AConcreteClasskind::_n_kwclass*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteClasskind___replace_child, LOCATE_parser_prod, 1096); nit_exit(1);}
       variable[4] = variable[0];
@@ -2927,11 +2931,11 @@ void parser_prod___AConcreteClasskind___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label114: while(false);
   tracehead = trace.prev;
@@ -2947,11 +2951,11 @@ void parser_prod___AConcreteClasskind___visit_all_reverse(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label115: while(false);
   tracehead = trace.prev;
@@ -2980,13 +2984,13 @@ void parser_prod___AConcreteClasskind___init_aconcreteclasskind(val_t  self, val
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AConcreteClasskind___empty_init_t)CALL(variable[3],COLOR_parser_prod___AConcreteClasskind___empty_init))(variable[3], init_table /*YYY*/) /*AConcreteClasskind::empty_init*/;
+  CALL_parser_prod___AConcreteClasskind___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AConcreteClasskind::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AConcreteClasskind____n_kwclass(variable[3]) /*AConcreteClasskind::_n_kwclass*/ =  variable[1] /*n_kwclass*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwclass*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwclass*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwclass*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwclass*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwclass*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwclass*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwclass*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwclass*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwclass*/)( variable[1] /*n_kwclass*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwclass*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwclass*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwclass*/)( variable[1] /*n_kwclass*/, variable[3]) /*PNode::parent=*/;
   }
   return_label117: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteClasskind].i] = 1;
@@ -3003,10 +3007,10 @@ void parser_prod___AAbstractClasskind___n_kwabstract__eq(val_t  self, val_t  par
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label118: while(false);
   tracehead = trace.prev;
@@ -3022,10 +3026,10 @@ void parser_prod___AAbstractClasskind___n_kwclass__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label119: while(false);
   tracehead = trace.prev;
@@ -3040,16 +3044,16 @@ void parser_prod___AAbstractClasskind___replace_child(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbstractClasskind___replace_child, LOCATE_parser_prod, 1155); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[4]) /*AAbstractClasskind::_n_kwabstract*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwabstract, ID_TKwabstract)) /*cast TKwabstract*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbstractClasskind___replace_child, LOCATE_parser_prod, 1159); nit_exit(1);}
       variable[4] = variable[0];
@@ -3062,12 +3066,12 @@ void parser_prod___AAbstractClasskind___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[4]) /*AAbstractClasskind::_n_kwclass*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwclass, ID_TKwclass)) /*cast TKwclass*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbstractClasskind___replace_child, LOCATE_parser_prod, 1169); nit_exit(1);}
       variable[4] = variable[0];
@@ -3092,19 +3096,19 @@ void parser_prod___AAbstractClasskind___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label121: while(false);
   tracehead = trace.prev;
@@ -3120,19 +3124,19 @@ void parser_prod___AAbstractClasskind___visit_all_reverse(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[3]) /*AAbstractClasskind::_n_kwabstract*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[3]) /*AAbstractClasskind::_n_kwclass*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label122: while(false);
   tracehead = trace.prev;
@@ -3162,20 +3166,20 @@ void parser_prod___AAbstractClasskind___init_aabstractclasskind(val_t  self, val
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AAbstractClasskind___empty_init_t)CALL(variable[4],COLOR_parser_prod___AAbstractClasskind___empty_init))(variable[4], init_table /*YYY*/) /*AAbstractClasskind::empty_init*/;
+  CALL_parser_prod___AAbstractClasskind___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAbstractClasskind::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AAbstractClasskind____n_kwabstract(variable[4]) /*AAbstractClasskind::_n_kwabstract*/ =  variable[1] /*n_kwabstract*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwabstract*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwabstract*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwabstract*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwabstract*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwabstract*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwabstract*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwabstract*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwabstract*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwabstract*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwabstract*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwabstract*/)( variable[1] /*n_kwabstract*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwabstract*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwabstract*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwabstract*/)( variable[1] /*n_kwabstract*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AAbstractClasskind____n_kwclass(variable[4]) /*AAbstractClasskind::_n_kwclass*/ =  variable[2] /*n_kwclass*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwclass*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwclass*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwclass*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwclass*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwclass*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwclass*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwclass*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwclass*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwclass*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwclass*/)( variable[2] /*n_kwclass*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwclass*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwclass*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwclass*/)( variable[2] /*n_kwclass*/, variable[4]) /*PNode::parent=*/;
   }
   return_label124: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbstractClasskind].i] = 1;
@@ -3192,10 +3196,10 @@ void parser_prod___AInterfaceClasskind___n_kwinterface__eq(val_t  self, val_t  p
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label125: while(false);
   tracehead = trace.prev;
@@ -3210,16 +3214,16 @@ void parser_prod___AInterfaceClasskind___replace_child(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInterfaceClasskind___replace_child, LOCATE_parser_prod, 1222); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[4]) /*AInterfaceClasskind::_n_kwinterface*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinterface, ID_TKwinterface)) /*cast TKwinterface*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInterfaceClasskind___replace_child, LOCATE_parser_prod, 1226); nit_exit(1);}
       variable[4] = variable[0];
@@ -3244,11 +3248,11 @@ void parser_prod___AInterfaceClasskind___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label127: while(false);
   tracehead = trace.prev;
@@ -3264,11 +3268,11 @@ void parser_prod___AInterfaceClasskind___visit_all_reverse(val_t  self, val_t  p
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label128: while(false);
   tracehead = trace.prev;
@@ -3297,13 +3301,13 @@ void parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(val_t  self, v
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AInterfaceClasskind___empty_init_t)CALL(variable[3],COLOR_parser_prod___AInterfaceClasskind___empty_init))(variable[3], init_table /*YYY*/) /*AInterfaceClasskind::empty_init*/;
+  CALL_parser_prod___AInterfaceClasskind___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AInterfaceClasskind::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AInterfaceClasskind____n_kwinterface(variable[3]) /*AInterfaceClasskind::_n_kwinterface*/ =  variable[1] /*n_kwinterface*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwinterface*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwinterface*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwinterface*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwinterface*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwinterface*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwinterface*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwinterface*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwinterface*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwinterface*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwinterface*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwinterface*/)( variable[1] /*n_kwinterface*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwinterface*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwinterface*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwinterface*/)( variable[1] /*n_kwinterface*/, variable[3]) /*PNode::parent=*/;
   }
   return_label130: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInterfaceClasskind].i] = 1;
@@ -3320,10 +3324,10 @@ void parser_prod___AUniversalClasskind___n_kwuniversal__eq(val_t  self, val_t  p
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label131: while(false);
   tracehead = trace.prev;
@@ -3338,16 +3342,16 @@ void parser_prod___AUniversalClasskind___replace_child(val_t  self, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUniversalClasskind___replace_child, LOCATE_parser_prod, 1273); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[4]) /*AUniversalClasskind::_n_kwuniversal*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwuniversal, ID_TKwuniversal)) /*cast TKwuniversal*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUniversalClasskind___replace_child, LOCATE_parser_prod, 1277); nit_exit(1);}
       variable[4] = variable[0];
@@ -3372,11 +3376,11 @@ void parser_prod___AUniversalClasskind___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label133: while(false);
   tracehead = trace.prev;
@@ -3392,11 +3396,11 @@ void parser_prod___AUniversalClasskind___visit_all_reverse(val_t  self, val_t  p
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label134: while(false);
   tracehead = trace.prev;
@@ -3425,13 +3429,13 @@ void parser_prod___AUniversalClasskind___init_auniversalclasskind(val_t  self, v
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AUniversalClasskind___empty_init_t)CALL(variable[3],COLOR_parser_prod___AUniversalClasskind___empty_init))(variable[3], init_table /*YYY*/) /*AUniversalClasskind::empty_init*/;
+  CALL_parser_prod___AUniversalClasskind___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AUniversalClasskind::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AUniversalClasskind____n_kwuniversal(variable[3]) /*AUniversalClasskind::_n_kwuniversal*/ =  variable[1] /*n_kwuniversal*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwuniversal*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwuniversal*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwuniversal*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwuniversal*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwuniversal*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwuniversal*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwuniversal*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwuniversal*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwuniversal*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwuniversal*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwuniversal*/)( variable[1] /*n_kwuniversal*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwuniversal*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwuniversal*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwuniversal*/)( variable[1] /*n_kwuniversal*/, variable[3]) /*PNode::parent=*/;
   }
   return_label136: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUniversalClasskind].i] = 1;
@@ -3448,10 +3452,10 @@ void parser_prod___AFormaldef___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label137: while(false);
   tracehead = trace.prev;
@@ -3467,10 +3471,10 @@ void parser_prod___AFormaldef___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label138: while(false);
   tracehead = trace.prev;
@@ -3485,16 +3489,16 @@ void parser_prod___AFormaldef___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFormaldef___replace_child, LOCATE_parser_prod, 1336); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AFormaldef____n_id(variable[4]) /*AFormaldef::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFormaldef___replace_child, LOCATE_parser_prod, 1340); nit_exit(1);}
       variable[4] = variable[0];
@@ -3507,12 +3511,12 @@ void parser_prod___AFormaldef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AFormaldef____n_type(variable[4]) /*AFormaldef::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFormaldef___replace_child, LOCATE_parser_prod, 1350); nit_exit(1);}
       variable[4] = variable[0];
@@ -3537,19 +3541,19 @@ void parser_prod___AFormaldef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label140: while(false);
   tracehead = trace.prev;
@@ -3565,19 +3569,19 @@ void parser_prod___AFormaldef___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFormaldef____n_id(variable[3]) /*AFormaldef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFormaldef____n_type(variable[3]) /*AFormaldef::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label141: while(false);
   tracehead = trace.prev;
@@ -3607,20 +3611,20 @@ void parser_prod___AFormaldef___init_aformaldef(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AFormaldef___empty_init_t)CALL(variable[4],COLOR_parser_prod___AFormaldef___empty_init))(variable[4], init_table /*YYY*/) /*AFormaldef::empty_init*/;
+  CALL_parser_prod___AFormaldef___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AFormaldef::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AFormaldef____n_id(variable[4]) /*AFormaldef::_n_id*/ =  variable[1] /*n_id*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AFormaldef____n_type(variable[4]) /*AFormaldef::_n_type*/ =  variable[2] /*n_type*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
   }
   return_label143: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFormaldef].i] = 1;
@@ -3637,10 +3641,10 @@ void parser_prod___ASuperclass___n_kwspecial__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label144: while(false);
   tracehead = trace.prev;
@@ -3656,10 +3660,10 @@ void parser_prod___ASuperclass___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label145: while(false);
   tracehead = trace.prev;
@@ -3674,16 +3678,16 @@ void parser_prod___ASuperclass___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperclass___replace_child, LOCATE_parser_prod, 1415); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[4]) /*ASuperclass::_n_kwspecial*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwspecial, ID_TKwspecial)) /*cast TKwspecial*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperclass___replace_child, LOCATE_parser_prod, 1419); nit_exit(1);}
       variable[4] = variable[0];
@@ -3696,12 +3700,12 @@ void parser_prod___ASuperclass___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperclass____n_type(variable[4]) /*ASuperclass::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperclass___replace_child, LOCATE_parser_prod, 1429); nit_exit(1);}
       variable[4] = variable[0];
@@ -3726,19 +3730,19 @@ void parser_prod___ASuperclass___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label147: while(false);
   tracehead = trace.prev;
@@ -3754,19 +3758,19 @@ void parser_prod___ASuperclass___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[3]) /*ASuperclass::_n_kwspecial*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperclass____n_type(variable[3]) /*ASuperclass::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label148: while(false);
   tracehead = trace.prev;
@@ -3796,20 +3800,20 @@ void parser_prod___ASuperclass___init_asuperclass(val_t  self, val_t  param0, va
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ASuperclass___empty_init_t)CALL(variable[4],COLOR_parser_prod___ASuperclass___empty_init))(variable[4], init_table /*YYY*/) /*ASuperclass::empty_init*/;
+  CALL_parser_prod___ASuperclass___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ASuperclass::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASuperclass____n_kwspecial(variable[4]) /*ASuperclass::_n_kwspecial*/ =  variable[1] /*n_kwspecial*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwspecial*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwspecial*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwspecial*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwspecial*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwspecial*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwspecial*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwspecial*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwspecial*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwspecial*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwspecial*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwspecial*/)( variable[1] /*n_kwspecial*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwspecial*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwspecial*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwspecial*/)( variable[1] /*n_kwspecial*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ASuperclass____n_type(variable[4]) /*ASuperclass::_n_type*/ =  variable[2] /*n_type*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
   }
   return_label150: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperclass].i] = 1;
@@ -3826,10 +3830,10 @@ void parser_prod___AAttrPropdef___n_doc__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label151: while(false);
   tracehead = trace.prev;
@@ -3845,10 +3849,10 @@ void parser_prod___AAttrPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label152: while(false);
   tracehead = trace.prev;
@@ -3864,10 +3868,10 @@ void parser_prod___AAttrPropdef___n_visibility__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label153: while(false);
   tracehead = trace.prev;
@@ -3883,10 +3887,10 @@ void parser_prod___AAttrPropdef___n_kwattr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label154: while(false);
   tracehead = trace.prev;
@@ -3902,10 +3906,10 @@ void parser_prod___AAttrPropdef___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label155: while(false);
   tracehead = trace.prev;
@@ -3921,10 +3925,10 @@ void parser_prod___AAttrPropdef___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label156: while(false);
   tracehead = trace.prev;
@@ -3940,10 +3944,10 @@ void parser_prod___AAttrPropdef___n_readable__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label157: while(false);
   tracehead = trace.prev;
@@ -3959,10 +3963,10 @@ void parser_prod___AAttrPropdef___n_writable__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label158: while(false);
   tracehead = trace.prev;
@@ -3978,10 +3982,10 @@ void parser_prod___AAttrPropdef___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label159: while(false);
   tracehead = trace.prev;
@@ -3996,16 +4000,16 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1578); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1582); nit_exit(1);}
       variable[4] = variable[0];
@@ -4018,12 +4022,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[4]) /*AAttrPropdef::_n_readable*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1592); nit_exit(1);}
       variable[4] = variable[0];
@@ -4036,12 +4040,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[4]) /*AAttrPropdef::_n_writable*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAble, ID_PAble)) /*cast PAble*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1602); nit_exit(1);}
       variable[4] = variable[0];
@@ -4054,12 +4058,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[4]) /*AAttrPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1612); nit_exit(1);}
       variable[4] = variable[0];
@@ -4072,12 +4076,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[4]) /*AAttrPropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1622); nit_exit(1);}
       variable[4] = variable[0];
@@ -4090,12 +4094,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[4]) /*AAttrPropdef::_n_kwattr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwattr, ID_TKwattr)) /*cast TKwattr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1632); nit_exit(1);}
       variable[4] = variable[0];
@@ -4108,12 +4112,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[4]) /*AAttrPropdef::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1642); nit_exit(1);}
       variable[4] = variable[0];
@@ -4126,12 +4130,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[4]) /*AAttrPropdef::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1652); nit_exit(1);}
       variable[4] = variable[0];
@@ -4144,12 +4148,12 @@ void parser_prod___AAttrPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[4]) /*AAttrPropdef::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrPropdef___replace_child, LOCATE_parser_prod, 1662); nit_exit(1);}
       variable[4] = variable[0];
@@ -4174,75 +4178,75 @@ void parser_prod___AAttrPropdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label161: while(false);
   tracehead = trace.prev;
@@ -4258,75 +4262,75 @@ void parser_prod___AAttrPropdef___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_readable(variable[3]) /*AAttrPropdef::_n_readable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_writable(variable[3]) /*AAttrPropdef::_n_writable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[3]) /*AAttrPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[3]) /*AAttrPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[3]) /*AAttrPropdef::_n_kwattr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_id(variable[3]) /*AAttrPropdef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_type(variable[3]) /*AAttrPropdef::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrPropdef____n_expr(variable[3]) /*AAttrPropdef::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label162: while(false);
   tracehead = trace.prev;
@@ -4363,69 +4367,69 @@ void parser_prod___AAttrPropdef___init_aattrpropdef(val_t  self, val_t  param0,
   variable[9] =  param8;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i]) return;
   variable[11] = variable[0];
-  ((parser_prod___AAttrPropdef___empty_init_t)CALL(variable[11],COLOR_parser_prod___AAttrPropdef___empty_init))(variable[11], init_table /*YYY*/) /*AAttrPropdef::empty_init*/;
+  CALL_parser_prod___AAttrPropdef___empty_init(variable[11])(variable[11], init_table /*YYY*/) /*AAttrPropdef::empty_init*/;
   variable[11] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[11]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_readable(variable[11]) /*AAttrPropdef::_n_readable*/ =  variable[2] /*n_readable*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_readable*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_readable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_readable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_readable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_readable*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_readable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_readable*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_readable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_readable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_readable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_readable*/)( variable[2] /*n_readable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_readable*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_readable*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_readable*/)( variable[2] /*n_readable*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_writable(variable[11]) /*AAttrPropdef::_n_writable*/ =  variable[3] /*n_writable*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_writable*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_writable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_writable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_writable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_writable*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_writable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_writable*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_writable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_writable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_writable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_writable*/)( variable[3] /*n_writable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_writable*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_writable*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_writable*/)( variable[3] /*n_writable*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_kwredef(variable[11]) /*AAttrPropdef::_n_kwredef*/ =  variable[4] /*n_kwredef*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwredef*/)( variable[4] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_kwredef*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwredef*/)( variable[4] /*n_kwredef*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_visibility(variable[11]) /*AAttrPropdef::_n_visibility*/ =  variable[5] /*n_visibility*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_visibility*/)( variable[5] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_visibility*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_visibility*/)( variable[5] /*n_visibility*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_kwattr(variable[11]) /*AAttrPropdef::_n_kwattr*/ =  variable[6] /*n_kwattr*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_kwattr*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_kwattr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_kwattr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_kwattr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_kwattr*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_kwattr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_kwattr*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_kwattr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_kwattr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_kwattr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_kwattr*/)( variable[6] /*n_kwattr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_kwattr*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_kwattr*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_kwattr*/)( variable[6] /*n_kwattr*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_id(variable[11]) /*AAttrPropdef::_n_id*/ =  variable[7] /*n_id*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[7] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_id*/)( variable[7] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n_id*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n_id*/)( variable[7] /*n_id*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_type(variable[11]) /*AAttrPropdef::_n_type*/ =  variable[8] /*n_type*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[8] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[8] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[8] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[8] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*n_type*/)( variable[8] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[8] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[8] /*n_type*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[8] /*n_type*/)( variable[8] /*n_type*/, variable[11]) /*PNode::parent=*/;
   }
   variable[11] = variable[0];
   ATTR_parser_nodes___AAttrPropdef____n_expr(variable[11]) /*AAttrPropdef::_n_expr*/ =  variable[9] /*n_expr*/;
-  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[9] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[9] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[9] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*n_expr*/)( variable[9] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[11])) { /*if*/
     variable[11] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[9] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[9] /*n_expr*/, variable[11]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[9] /*n_expr*/)( variable[9] /*n_expr*/, variable[11]) /*PNode::parent=*/;
   }
   return_label164: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrPropdef].i] = 1;
@@ -4442,10 +4446,10 @@ void parser_prod___AMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label165: while(false);
   tracehead = trace.prev;
@@ -4461,10 +4465,10 @@ void parser_prod___AMethPropdef___n_kwredef__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label166: while(false);
   tracehead = trace.prev;
@@ -4480,10 +4484,10 @@ void parser_prod___AMethPropdef___n_visibility__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label167: while(false);
   tracehead = trace.prev;
@@ -4499,10 +4503,10 @@ void parser_prod___AMethPropdef___n_methid__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label168: while(false);
   tracehead = trace.prev;
@@ -4518,10 +4522,10 @@ void parser_prod___AMethPropdef___n_signature__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label169: while(false);
   tracehead = trace.prev;
@@ -4536,16 +4540,16 @@ void parser_prod___AMethPropdef___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1805); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1809); nit_exit(1);}
       variable[4] = variable[0];
@@ -4558,12 +4562,12 @@ void parser_prod___AMethPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1819); nit_exit(1);}
       variable[4] = variable[0];
@@ -4576,12 +4580,12 @@ void parser_prod___AMethPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1829); nit_exit(1);}
       variable[4] = variable[0];
@@ -4594,12 +4598,12 @@ void parser_prod___AMethPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1839); nit_exit(1);}
       variable[4] = variable[0];
@@ -4612,12 +4616,12 @@ void parser_prod___AMethPropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMethPropdef___replace_child, LOCATE_parser_prod, 1849); nit_exit(1);}
       variable[4] = variable[0];
@@ -4642,43 +4646,43 @@ void parser_prod___AMethPropdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label171: while(false);
   tracehead = trace.prev;
@@ -4694,43 +4698,43 @@ void parser_prod___AMethPropdef___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label172: while(false);
   tracehead = trace.prev;
@@ -4763,41 +4767,41 @@ void parser_prod___AMethPropdef___init_amethpropdef(val_t  self, val_t  param0,
   variable[5] =  param4;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i]) return;
   variable[7] = variable[0];
-  ((parser_prod___AMethPropdef___empty_init_t)CALL(variable[7],COLOR_parser_prod___AMethPropdef___empty_init))(variable[7], init_table /*YYY*/) /*AMethPropdef::empty_init*/;
+  CALL_parser_prod___AMethPropdef___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*AMethPropdef::empty_init*/;
   variable[7] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[7]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[7]) /*AMethPropdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[7]) /*AMethPropdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[7]) /*AMethPropdef::_n_methid*/ =  variable[4] /*n_methid*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_methid*/)( variable[4] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_methid*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_methid*/)( variable[4] /*n_methid*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[7]) /*AMethPropdef::_n_signature*/ =  variable[5] /*n_signature*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_signature*/)( variable[5] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_signature*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_signature*/)( variable[5] /*n_signature*/, variable[7]) /*PNode::parent=*/;
   }
   return_label174: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMethPropdef].i] = 1;
@@ -4814,10 +4818,10 @@ void parser_prod___ADeferredMethPropdef___n_doc__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label175: while(false);
   tracehead = trace.prev;
@@ -4833,10 +4837,10 @@ void parser_prod___ADeferredMethPropdef___n_kwredef__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label176: while(false);
   tracehead = trace.prev;
@@ -4852,10 +4856,10 @@ void parser_prod___ADeferredMethPropdef___n_visibility__eq(val_t  self, val_t  p
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label177: while(false);
   tracehead = trace.prev;
@@ -4871,10 +4875,10 @@ void parser_prod___ADeferredMethPropdef___n_methid__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label178: while(false);
   tracehead = trace.prev;
@@ -4890,10 +4894,10 @@ void parser_prod___ADeferredMethPropdef___n_signature__eq(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label179: while(false);
   tracehead = trace.prev;
@@ -4909,10 +4913,10 @@ void parser_prod___ADeferredMethPropdef___n_kwmeth__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label180: while(false);
   tracehead = trace.prev;
@@ -4927,16 +4931,16 @@ void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 1980); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 1984); nit_exit(1);}
       variable[4] = variable[0];
@@ -4949,12 +4953,12 @@ void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 1994); nit_exit(1);}
       variable[4] = variable[0];
@@ -4967,12 +4971,12 @@ void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2004); nit_exit(1);}
       variable[4] = variable[0];
@@ -4985,12 +4989,12 @@ void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[4]) /*ADeferredMethPropdef::_n_kwmeth*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2014); nit_exit(1);}
       variable[4] = variable[0];
@@ -5003,12 +5007,12 @@ void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2024); nit_exit(1);}
       variable[4] = variable[0];
@@ -5021,12 +5025,12 @@ void parser_prod___ADeferredMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADeferredMethPropdef___replace_child, LOCATE_parser_prod, 2034); nit_exit(1);}
       variable[4] = variable[0];
@@ -5051,51 +5055,51 @@ void parser_prod___ADeferredMethPropdef___visit_all(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label182: while(false);
   tracehead = trace.prev;
@@ -5111,51 +5115,51 @@ void parser_prod___ADeferredMethPropdef___visit_all_reverse(val_t  self, val_t
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[3]) /*ADeferredMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label183: while(false);
   tracehead = trace.prev;
@@ -5189,48 +5193,48 @@ void parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(val_t  self,
   variable[6] =  param5;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i]) return;
   variable[8] = variable[0];
-  ((parser_prod___ADeferredMethPropdef___empty_init_t)CALL(variable[8],COLOR_parser_prod___ADeferredMethPropdef___empty_init))(variable[8], init_table /*YYY*/) /*ADeferredMethPropdef::empty_init*/;
+  CALL_parser_prod___ADeferredMethPropdef___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*ADeferredMethPropdef::empty_init*/;
   variable[8] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[8]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[8]) /*AMethPropdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[8]) /*AMethPropdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___ADeferredMethPropdef____n_kwmeth(variable[8]) /*ADeferredMethPropdef::_n_kwmeth*/ =  variable[4] /*n_kwmeth*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_kwmeth*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[8]) /*AMethPropdef::_n_methid*/ =  variable[5] /*n_methid*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_methid*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[8]) /*AMethPropdef::_n_signature*/ =  variable[6] /*n_signature*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_signature*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[8]) /*PNode::parent=*/;
   }
   return_label185: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADeferredMethPropdef].i] = 1;
@@ -5247,10 +5251,10 @@ void parser_prod___AInternMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label186: while(false);
   tracehead = trace.prev;
@@ -5266,10 +5270,10 @@ void parser_prod___AInternMethPropdef___n_kwredef__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label187: while(false);
   tracehead = trace.prev;
@@ -5285,10 +5289,10 @@ void parser_prod___AInternMethPropdef___n_visibility__eq(val_t  self, val_t  par
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label188: while(false);
   tracehead = trace.prev;
@@ -5304,10 +5308,10 @@ void parser_prod___AInternMethPropdef___n_methid__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label189: while(false);
   tracehead = trace.prev;
@@ -5323,10 +5327,10 @@ void parser_prod___AInternMethPropdef___n_signature__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label190: while(false);
   tracehead = trace.prev;
@@ -5342,10 +5346,10 @@ void parser_prod___AInternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label191: while(false);
   tracehead = trace.prev;
@@ -5360,16 +5364,16 @@ void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2171); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2175); nit_exit(1);}
       variable[4] = variable[0];
@@ -5382,12 +5386,12 @@ void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2185); nit_exit(1);}
       variable[4] = variable[0];
@@ -5400,12 +5404,12 @@ void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2195); nit_exit(1);}
       variable[4] = variable[0];
@@ -5418,12 +5422,12 @@ void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[4]) /*AInternMethPropdef::_n_kwmeth*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2205); nit_exit(1);}
       variable[4] = variable[0];
@@ -5436,12 +5440,12 @@ void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2215); nit_exit(1);}
       variable[4] = variable[0];
@@ -5454,12 +5458,12 @@ void parser_prod___AInternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInternMethPropdef___replace_child, LOCATE_parser_prod, 2225); nit_exit(1);}
       variable[4] = variable[0];
@@ -5484,51 +5488,51 @@ void parser_prod___AInternMethPropdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label193: while(false);
   tracehead = trace.prev;
@@ -5544,51 +5548,51 @@ void parser_prod___AInternMethPropdef___visit_all_reverse(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[3]) /*AInternMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label194: while(false);
   tracehead = trace.prev;
@@ -5622,48 +5626,48 @@ void parser_prod___AInternMethPropdef___init_ainternmethpropdef(val_t  self, val
   variable[6] =  param5;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i]) return;
   variable[8] = variable[0];
-  ((parser_prod___AInternMethPropdef___empty_init_t)CALL(variable[8],COLOR_parser_prod___AInternMethPropdef___empty_init))(variable[8], init_table /*YYY*/) /*AInternMethPropdef::empty_init*/;
+  CALL_parser_prod___AInternMethPropdef___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*AInternMethPropdef::empty_init*/;
   variable[8] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[8]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[8]) /*AMethPropdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[8]) /*AMethPropdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AInternMethPropdef____n_kwmeth(variable[8]) /*AInternMethPropdef::_n_kwmeth*/ =  variable[4] /*n_kwmeth*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_kwmeth*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[8]) /*AMethPropdef::_n_methid*/ =  variable[5] /*n_methid*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_methid*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[8]) /*AMethPropdef::_n_signature*/ =  variable[6] /*n_signature*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_signature*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[8]) /*PNode::parent=*/;
   }
   return_label196: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInternMethPropdef].i] = 1;
@@ -5680,10 +5684,10 @@ void parser_prod___AExternMethPropdef___n_doc__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label197: while(false);
   tracehead = trace.prev;
@@ -5699,10 +5703,10 @@ void parser_prod___AExternMethPropdef___n_kwredef__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label198: while(false);
   tracehead = trace.prev;
@@ -5718,10 +5722,10 @@ void parser_prod___AExternMethPropdef___n_visibility__eq(val_t  self, val_t  par
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label199: while(false);
   tracehead = trace.prev;
@@ -5737,10 +5741,10 @@ void parser_prod___AExternMethPropdef___n_methid__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label200: while(false);
   tracehead = trace.prev;
@@ -5756,10 +5760,10 @@ void parser_prod___AExternMethPropdef___n_signature__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label201: while(false);
   tracehead = trace.prev;
@@ -5775,10 +5779,10 @@ void parser_prod___AExternMethPropdef___n_kwmeth__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label202: while(false);
   tracehead = trace.prev;
@@ -5794,10 +5798,10 @@ void parser_prod___AExternMethPropdef___n_extern__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label203: while(false);
   tracehead = trace.prev;
@@ -5812,16 +5816,16 @@ void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2374); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2378); nit_exit(1);}
       variable[4] = variable[0];
@@ -5834,12 +5838,12 @@ void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2388); nit_exit(1);}
       variable[4] = variable[0];
@@ -5852,12 +5856,12 @@ void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2398); nit_exit(1);}
       variable[4] = variable[0];
@@ -5870,12 +5874,12 @@ void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[4]) /*AExternMethPropdef::_n_kwmeth*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2408); nit_exit(1);}
       variable[4] = variable[0];
@@ -5888,12 +5892,12 @@ void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2418); nit_exit(1);}
       variable[4] = variable[0];
@@ -5906,12 +5910,12 @@ void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2428); nit_exit(1);}
       variable[4] = variable[0];
@@ -5924,12 +5928,12 @@ void parser_prod___AExternMethPropdef___replace_child(val_t  self, val_t  param0
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[4]) /*AExternMethPropdef::_n_extern*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AExternMethPropdef___replace_child, LOCATE_parser_prod, 2438); nit_exit(1);}
       variable[4] = variable[0];
@@ -5954,59 +5958,59 @@ void parser_prod___AExternMethPropdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label205: while(false);
   tracehead = trace.prev;
@@ -6022,59 +6026,59 @@ void parser_prod___AExternMethPropdef___visit_all_reverse(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[3]) /*AExternMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[3]) /*AExternMethPropdef::_n_extern*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label206: while(false);
   tracehead = trace.prev;
@@ -6109,55 +6113,55 @@ void parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t  self, val
   variable[7] =  param6;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i]) return;
   variable[9] = variable[0];
-  ((parser_prod___AExternMethPropdef___empty_init_t)CALL(variable[9],COLOR_parser_prod___AExternMethPropdef___empty_init))(variable[9], init_table /*YYY*/) /*AExternMethPropdef::empty_init*/;
+  CALL_parser_prod___AExternMethPropdef___empty_init(variable[9])(variable[9], init_table /*YYY*/) /*AExternMethPropdef::empty_init*/;
   variable[9] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[9]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[9]) /*AMethPropdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[9]) /*AMethPropdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AExternMethPropdef____n_kwmeth(variable[9]) /*AExternMethPropdef::_n_kwmeth*/ =  variable[4] /*n_kwmeth*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_kwmeth*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[9]) /*AMethPropdef::_n_methid*/ =  variable[5] /*n_methid*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[9]) /*AMethPropdef::_n_signature*/ =  variable[6] /*n_signature*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AExternMethPropdef____n_extern(variable[9]) /*AExternMethPropdef::_n_extern*/ =  variable[7] /*n_extern*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_extern*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_extern*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*n_extern*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_extern*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*n_extern*/,COLOR_kernel___Object_____eqeq))( variable[7] /*n_extern*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_extern*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_extern*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_extern*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_extern*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_extern*/)( variable[7] /*n_extern*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n_extern*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n_extern*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n_extern*/)( variable[7] /*n_extern*/, variable[9]) /*PNode::parent=*/;
   }
   return_label208: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AExternMethPropdef].i] = 1;
@@ -6174,10 +6178,10 @@ void parser_prod___AConcreteMethPropdef___n_doc__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label209: while(false);
   tracehead = trace.prev;
@@ -6193,10 +6197,10 @@ void parser_prod___AConcreteMethPropdef___n_kwredef__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label210: while(false);
   tracehead = trace.prev;
@@ -6212,10 +6216,10 @@ void parser_prod___AConcreteMethPropdef___n_visibility__eq(val_t  self, val_t  p
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label211: while(false);
   tracehead = trace.prev;
@@ -6231,10 +6235,10 @@ void parser_prod___AConcreteMethPropdef___n_methid__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label212: while(false);
   tracehead = trace.prev;
@@ -6250,10 +6254,10 @@ void parser_prod___AConcreteMethPropdef___n_signature__eq(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label213: while(false);
   tracehead = trace.prev;
@@ -6269,10 +6273,10 @@ void parser_prod___AConcreteMethPropdef___n_kwmeth__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label214: while(false);
   tracehead = trace.prev;
@@ -6288,10 +6292,10 @@ void parser_prod___AConcreteMethPropdef___n_block__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label215: while(false);
   tracehead = trace.prev;
@@ -6306,16 +6310,16 @@ void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2593); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2597); nit_exit(1);}
       variable[4] = variable[0];
@@ -6328,12 +6332,12 @@ void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2607); nit_exit(1);}
       variable[4] = variable[0];
@@ -6346,12 +6350,12 @@ void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2617); nit_exit(1);}
       variable[4] = variable[0];
@@ -6364,12 +6368,12 @@ void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[4]) /*AConcreteMethPropdef::_n_kwmeth*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwmeth, ID_TKwmeth)) /*cast TKwmeth*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2627); nit_exit(1);}
       variable[4] = variable[0];
@@ -6382,12 +6386,12 @@ void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2637); nit_exit(1);}
       variable[4] = variable[0];
@@ -6400,12 +6404,12 @@ void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2647); nit_exit(1);}
       variable[4] = variable[0];
@@ -6418,12 +6422,12 @@ void parser_prod___AConcreteMethPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteMethPropdef___replace_child, LOCATE_parser_prod, 2657); nit_exit(1);}
       variable[4] = variable[0];
@@ -6448,59 +6452,59 @@ void parser_prod___AConcreteMethPropdef___visit_all(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label217: while(false);
   tracehead = trace.prev;
@@ -6516,59 +6520,59 @@ void parser_prod___AConcreteMethPropdef___visit_all_reverse(val_t  self, val_t
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[3]) /*AConcreteMethPropdef::_n_kwmeth*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label218: while(false);
   tracehead = trace.prev;
@@ -6603,55 +6607,55 @@ void parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t  self,
   variable[7] =  param6;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i]) return;
   variable[9] = variable[0];
-  ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL(variable[9],COLOR_parser_prod___AConcreteMethPropdef___empty_init))(variable[9], init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
+  CALL_parser_prod___AConcreteMethPropdef___empty_init(variable[9])(variable[9], init_table /*YYY*/) /*AConcreteMethPropdef::empty_init*/;
   variable[9] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[9]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[9]) /*AMethPropdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[9]) /*AMethPropdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_kwmeth(variable[9]) /*AConcreteMethPropdef::_n_kwmeth*/ =  variable[4] /*n_kwmeth*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwmeth*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwmeth*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwmeth*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_kwmeth*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_kwmeth*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwmeth*/)( variable[4] /*n_kwmeth*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[9]) /*AMethPropdef::_n_methid*/ =  variable[5] /*n_methid*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[9]) /*AMethPropdef::_n_signature*/ =  variable[6] /*n_signature*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[9]) /*AConcreteMethPropdef::_n_block*/ =  variable[7] /*n_block*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*n_block*/,COLOR_kernel___Object_____eqeq))( variable[7] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)( variable[7] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n_block*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n_block*/)( variable[7] /*n_block*/, variable[9]) /*PNode::parent=*/;
   }
   return_label220: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteMethPropdef].i] = 1;
@@ -6668,10 +6672,10 @@ void parser_prod___AConcreteInitPropdef___n_doc__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label221: while(false);
   tracehead = trace.prev;
@@ -6687,10 +6691,10 @@ void parser_prod___AConcreteInitPropdef___n_kwredef__eq(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label222: while(false);
   tracehead = trace.prev;
@@ -6706,10 +6710,10 @@ void parser_prod___AConcreteInitPropdef___n_visibility__eq(val_t  self, val_t  p
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label223: while(false);
   tracehead = trace.prev;
@@ -6725,10 +6729,10 @@ void parser_prod___AConcreteInitPropdef___n_methid__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label224: while(false);
   tracehead = trace.prev;
@@ -6744,10 +6748,10 @@ void parser_prod___AConcreteInitPropdef___n_signature__eq(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label225: while(false);
   tracehead = trace.prev;
@@ -6763,10 +6767,10 @@ void parser_prod___AConcreteInitPropdef___n_block__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label226: while(false);
   tracehead = trace.prev;
@@ -6782,10 +6786,10 @@ void parser_prod___AConcreteInitPropdef___n_kwinit__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label227: while(false);
   tracehead = trace.prev;
@@ -6800,16 +6804,16 @@ void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2812); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2816); nit_exit(1);}
       variable[4] = variable[0];
@@ -6822,12 +6826,12 @@ void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2826); nit_exit(1);}
       variable[4] = variable[0];
@@ -6840,12 +6844,12 @@ void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[4]) /*AMethPropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2836); nit_exit(1);}
       variable[4] = variable[0];
@@ -6858,12 +6862,12 @@ void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[4]) /*AConcreteInitPropdef::_n_kwinit*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2846); nit_exit(1);}
       variable[4] = variable[0];
@@ -6876,12 +6880,12 @@ void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[4]) /*AMethPropdef::_n_methid*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PMethid, ID_PMethid)) /*cast PMethid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2856); nit_exit(1);}
       variable[4] = variable[0];
@@ -6894,12 +6898,12 @@ void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[4]) /*AMethPropdef::_n_signature*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2866); nit_exit(1);}
       variable[4] = variable[0];
@@ -6912,12 +6916,12 @@ void parser_prod___AConcreteInitPropdef___replace_child(val_t  self, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AConcreteInitPropdef___replace_child, LOCATE_parser_prod, 2876); nit_exit(1);}
       variable[4] = variable[0];
@@ -6942,59 +6946,59 @@ void parser_prod___AConcreteInitPropdef___visit_all(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label229: while(false);
   tracehead = trace.prev;
@@ -7010,59 +7014,59 @@ void parser_prod___AConcreteInitPropdef___visit_all_reverse(val_t  self, val_t
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_visibility(variable[3]) /*AMethPropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[3]) /*AConcreteInitPropdef::_n_kwinit*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_methid(variable[3]) /*AMethPropdef::_n_methid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_signature(variable[3]) /*AMethPropdef::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label230: while(false);
   tracehead = trace.prev;
@@ -7097,55 +7101,55 @@ void parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(val_t  self,
   variable[7] =  param6;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i]) return;
   variable[9] = variable[0];
-  ((parser_prod___AConcreteInitPropdef___empty_init_t)CALL(variable[9],COLOR_parser_prod___AConcreteInitPropdef___empty_init))(variable[9], init_table /*YYY*/) /*AConcreteInitPropdef::empty_init*/;
+  CALL_parser_prod___AConcreteInitPropdef___empty_init(variable[9])(variable[9], init_table /*YYY*/) /*AConcreteInitPropdef::empty_init*/;
   variable[9] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[9]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[9]) /*AMethPropdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_visibility(variable[9]) /*AMethPropdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AConcreteInitPropdef____n_kwinit(variable[9]) /*AConcreteInitPropdef::_n_kwinit*/ =  variable[4] /*n_kwinit*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwinit*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwinit*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwinit*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwinit*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_kwinit*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwinit*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwinit*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwinit*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwinit*/)( variable[4] /*n_kwinit*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_kwinit*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_kwinit*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwinit*/)( variable[4] /*n_kwinit*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_methid(variable[9]) /*AMethPropdef::_n_methid*/ =  variable[5] /*n_methid*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_methid*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_methid*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_methid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_methid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_methid*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_methid*/)( variable[5] /*n_methid*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_signature(variable[9]) /*AMethPropdef::_n_signature*/ =  variable[6] /*n_signature*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_signature*/)( variable[6] /*n_signature*/, variable[9]) /*PNode::parent=*/;
   }
   variable[9] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[9]) /*AConcreteMethPropdef::_n_block*/ =  variable[7] /*n_block*/;
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*n_block*/,COLOR_kernel___Object_____eqeq))( variable[7] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[7] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*n_block*/)( variable[7] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n_block*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n_block*/)( variable[7] /*n_block*/, variable[9]) /*PNode::parent=*/;
   }
   return_label232: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AConcreteInitPropdef].i] = 1;
@@ -7162,10 +7166,10 @@ void parser_prod___AMainMethPropdef___n_kwredef__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label233: while(false);
   tracehead = trace.prev;
@@ -7181,10 +7185,10 @@ void parser_prod___AMainMethPropdef___n_block__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label234: while(false);
   tracehead = trace.prev;
@@ -7199,16 +7203,16 @@ void parser_prod___AMainMethPropdef___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainMethPropdef___replace_child, LOCATE_parser_prod, 2971); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainMethPropdef___replace_child, LOCATE_parser_prod, 2975); nit_exit(1);}
       variable[4] = variable[0];
@@ -7221,12 +7225,12 @@ void parser_prod___AMainMethPropdef___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMainMethPropdef___replace_child, LOCATE_parser_prod, 2985); nit_exit(1);}
       variable[4] = variable[0];
@@ -7251,19 +7255,19 @@ void parser_prod___AMainMethPropdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label236: while(false);
   tracehead = trace.prev;
@@ -7279,19 +7283,19 @@ void parser_prod___AMainMethPropdef___visit_all_reverse(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[3]) /*AMethPropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[3]) /*AConcreteMethPropdef::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label237: while(false);
   tracehead = trace.prev;
@@ -7321,20 +7325,20 @@ void parser_prod___AMainMethPropdef___init_amainmethpropdef(val_t  self, val_t
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AMainMethPropdef___empty_init_t)CALL(variable[4],COLOR_parser_prod___AMainMethPropdef___empty_init))(variable[4], init_table /*YYY*/) /*AMainMethPropdef::empty_init*/;
+  CALL_parser_prod___AMainMethPropdef___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AMainMethPropdef::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AMethPropdef____n_kwredef(variable[4]) /*AMethPropdef::_n_kwredef*/ =  variable[1] /*n_kwredef*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AConcreteMethPropdef____n_block(variable[4]) /*AConcreteMethPropdef::_n_block*/ =  variable[2] /*n_block*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_block*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)( variable[2] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_block*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_block*/)( variable[2] /*n_block*/, variable[4]) /*PNode::parent=*/;
   }
   return_label239: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMainMethPropdef].i] = 1;
@@ -7351,10 +7355,10 @@ void parser_prod___ATypePropdef___n_doc__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label240: while(false);
   tracehead = trace.prev;
@@ -7370,10 +7374,10 @@ void parser_prod___ATypePropdef___n_kwredef__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label241: while(false);
   tracehead = trace.prev;
@@ -7389,10 +7393,10 @@ void parser_prod___ATypePropdef___n_visibility__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label242: while(false);
   tracehead = trace.prev;
@@ -7408,10 +7412,10 @@ void parser_prod___ATypePropdef___n_kwtype__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label243: while(false);
   tracehead = trace.prev;
@@ -7427,10 +7431,10 @@ void parser_prod___ATypePropdef___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label244: while(false);
   tracehead = trace.prev;
@@ -7446,10 +7450,10 @@ void parser_prod___ATypePropdef___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label245: while(false);
   tracehead = trace.prev;
@@ -7464,16 +7468,16 @@ void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3098); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PPropdef____n_doc(variable[4]) /*PPropdef::_n_doc*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PDoc, ID_PDoc)) /*cast PDoc*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3102); nit_exit(1);}
       variable[4] = variable[0];
@@ -7486,12 +7490,12 @@ void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[4]) /*ATypePropdef::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3112); nit_exit(1);}
       variable[4] = variable[0];
@@ -7504,12 +7508,12 @@ void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[4]) /*ATypePropdef::_n_visibility*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PVisibility, ID_PVisibility)) /*cast PVisibility*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3122); nit_exit(1);}
       variable[4] = variable[0];
@@ -7522,12 +7526,12 @@ void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[4]) /*ATypePropdef::_n_kwtype*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwtype, ID_TKwtype)) /*cast TKwtype*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3132); nit_exit(1);}
       variable[4] = variable[0];
@@ -7540,12 +7544,12 @@ void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATypePropdef____n_id(variable[4]) /*ATypePropdef::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3142); nit_exit(1);}
       variable[4] = variable[0];
@@ -7558,12 +7562,12 @@ void parser_prod___ATypePropdef___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATypePropdef____n_type(variable[4]) /*ATypePropdef::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATypePropdef___replace_child, LOCATE_parser_prod, 3152); nit_exit(1);}
       variable[4] = variable[0];
@@ -7588,51 +7592,51 @@ void parser_prod___ATypePropdef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label247: while(false);
   tracehead = trace.prev;
@@ -7648,51 +7652,51 @@ void parser_prod___ATypePropdef___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PPropdef____n_doc(variable[3]) /*PPropdef::_n_doc*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[3]) /*ATypePropdef::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_visibility(variable[3]) /*ATypePropdef::_n_visibility*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[3]) /*ATypePropdef::_n_kwtype*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_id(variable[3]) /*ATypePropdef::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATypePropdef____n_type(variable[3]) /*ATypePropdef::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label248: while(false);
   tracehead = trace.prev;
@@ -7726,48 +7730,48 @@ void parser_prod___ATypePropdef___init_atypepropdef(val_t  self, val_t  param0,
   variable[6] =  param5;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i]) return;
   variable[8] = variable[0];
-  ((parser_prod___ATypePropdef___empty_init_t)CALL(variable[8],COLOR_parser_prod___ATypePropdef___empty_init))(variable[8], init_table /*YYY*/) /*ATypePropdef::empty_init*/;
+  CALL_parser_prod___ATypePropdef___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*ATypePropdef::empty_init*/;
   variable[8] = variable[0];
   ATTR_parser_nodes___PPropdef____n_doc(variable[8]) /*PPropdef::_n_doc*/ =  variable[1] /*n_doc*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_doc*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_doc*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_doc*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_doc*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_doc*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_doc*/)( variable[1] /*n_doc*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_kwredef(variable[8]) /*ATypePropdef::_n_kwredef*/ =  variable[2] /*n_kwredef*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwredef*/)( variable[2] /*n_kwredef*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_visibility(variable[8]) /*ATypePropdef::_n_visibility*/ =  variable[3] /*n_visibility*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_visibility*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_visibility*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_visibility*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_visibility*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_visibility*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_visibility*/)( variable[3] /*n_visibility*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_kwtype(variable[8]) /*ATypePropdef::_n_kwtype*/ =  variable[4] /*n_kwtype*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwtype*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwtype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwtype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_kwtype*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_kwtype*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_kwtype*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_kwtype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_kwtype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_kwtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_kwtype*/)( variable[4] /*n_kwtype*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_kwtype*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_kwtype*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_kwtype*/)( variable[4] /*n_kwtype*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_id(variable[8]) /*ATypePropdef::_n_id*/ =  variable[5] /*n_id*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_id*/)( variable[5] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_id*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_id*/)( variable[5] /*n_id*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___ATypePropdef____n_type(variable[8]) /*ATypePropdef::_n_type*/ =  variable[6] /*n_type*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_type*/)( variable[6] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_type*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_type*/)( variable[6] /*n_type*/, variable[8]) /*PNode::parent=*/;
   }
   return_label250: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATypePropdef].i] = 1;
@@ -7784,10 +7788,10 @@ void parser_prod___AReadAble___n_kwredef__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label251: while(false);
   tracehead = trace.prev;
@@ -7803,10 +7807,10 @@ void parser_prod___AReadAble___n_kwreadable__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label252: while(false);
   tracehead = trace.prev;
@@ -7821,16 +7825,16 @@ void parser_prod___AReadAble___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReadAble___replace_child, LOCATE_parser_prod, 3241); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReadAble___replace_child, LOCATE_parser_prod, 3245); nit_exit(1);}
       variable[4] = variable[0];
@@ -7843,12 +7847,12 @@ void parser_prod___AReadAble___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[4]) /*AReadAble::_n_kwreadable*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwreadable, ID_TKwreadable)) /*cast TKwreadable*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReadAble___replace_child, LOCATE_parser_prod, 3255); nit_exit(1);}
       variable[4] = variable[0];
@@ -7873,19 +7877,19 @@ void parser_prod___AReadAble___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label254: while(false);
   tracehead = trace.prev;
@@ -7901,19 +7905,19 @@ void parser_prod___AReadAble___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReadAble____n_kwreadable(variable[3]) /*AReadAble::_n_kwreadable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label255: while(false);
   tracehead = trace.prev;
@@ -7943,20 +7947,20 @@ void parser_prod___AReadAble___init_areadable(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AReadAble___empty_init_t)CALL(variable[4],COLOR_parser_prod___AReadAble___empty_init))(variable[4], init_table /*YYY*/) /*AReadAble::empty_init*/;
+  CALL_parser_prod___AReadAble___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AReadAble::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ =  variable[1] /*n_kwredef*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AReadAble____n_kwreadable(variable[4]) /*AReadAble::_n_kwreadable*/ =  variable[2] /*n_kwreadable*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwreadable*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwreadable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwreadable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwreadable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwreadable*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwreadable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwreadable*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwreadable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwreadable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwreadable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwreadable*/)( variable[2] /*n_kwreadable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwreadable*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwreadable*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwreadable*/)( variable[2] /*n_kwreadable*/, variable[4]) /*PNode::parent=*/;
   }
   return_label257: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReadAble].i] = 1;
@@ -7973,10 +7977,10 @@ void parser_prod___AWriteAble___n_kwredef__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label258: while(false);
   tracehead = trace.prev;
@@ -7992,10 +7996,10 @@ void parser_prod___AWriteAble___n_kwwritable__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label259: while(false);
   tracehead = trace.prev;
@@ -8010,16 +8014,16 @@ void parser_prod___AWriteAble___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWriteAble___replace_child, LOCATE_parser_prod, 3320); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwredef, ID_TKwredef)) /*cast TKwredef*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWriteAble___replace_child, LOCATE_parser_prod, 3324); nit_exit(1);}
       variable[4] = variable[0];
@@ -8032,12 +8036,12 @@ void parser_prod___AWriteAble___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[4]) /*AWriteAble::_n_kwwritable*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwritable, ID_TKwwritable)) /*cast TKwwritable*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWriteAble___replace_child, LOCATE_parser_prod, 3334); nit_exit(1);}
       variable[4] = variable[0];
@@ -8062,19 +8066,19 @@ void parser_prod___AWriteAble___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label261: while(false);
   tracehead = trace.prev;
@@ -8090,19 +8094,19 @@ void parser_prod___AWriteAble___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PAble____n_kwredef(variable[3]) /*PAble::_n_kwredef*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[3]) /*AWriteAble::_n_kwwritable*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label262: while(false);
   tracehead = trace.prev;
@@ -8132,20 +8136,20 @@ void parser_prod___AWriteAble___init_awriteable(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AWriteAble___empty_init_t)CALL(variable[4],COLOR_parser_prod___AWriteAble___empty_init))(variable[4], init_table /*YYY*/) /*AWriteAble::empty_init*/;
+  CALL_parser_prod___AWriteAble___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AWriteAble::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___PAble____n_kwredef(variable[4]) /*PAble::_n_kwredef*/ =  variable[1] /*n_kwredef*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwredef*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwredef*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwredef*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwredef*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwredef*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwredef*/)( variable[1] /*n_kwredef*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AWriteAble____n_kwwritable(variable[4]) /*AWriteAble::_n_kwwritable*/ =  variable[2] /*n_kwwritable*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwwritable*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwwritable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwwritable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwwritable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwwritable*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwwritable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwwritable*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwwritable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwwritable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwwritable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwwritable*/)( variable[2] /*n_kwwritable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwwritable*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwwritable*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwwritable*/)( variable[2] /*n_kwwritable*/, variable[4]) /*PNode::parent=*/;
   }
   return_label264: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWriteAble].i] = 1;
@@ -8162,10 +8166,10 @@ void parser_prod___AIdMethid___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label265: while(false);
   tracehead = trace.prev;
@@ -8180,16 +8184,16 @@ void parser_prod___AIdMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIdMethid___replace_child, LOCATE_parser_prod, 3387); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIdMethid____n_id(variable[4]) /*AIdMethid::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIdMethid___replace_child, LOCATE_parser_prod, 3391); nit_exit(1);}
       variable[4] = variable[0];
@@ -8214,11 +8218,11 @@ void parser_prod___AIdMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label267: while(false);
   tracehead = trace.prev;
@@ -8234,11 +8238,11 @@ void parser_prod___AIdMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label268: while(false);
   tracehead = trace.prev;
@@ -8267,13 +8271,13 @@ void parser_prod___AIdMethid___init_aidmethid(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AIdMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___AIdMethid___empty_init))(variable[3], init_table /*YYY*/) /*AIdMethid::empty_init*/;
+  CALL_parser_prod___AIdMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AIdMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIdMethid____n_id(variable[3]) /*AIdMethid::_n_id*/ =  variable[1] /*n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[3]) /*PNode::parent=*/;
   }
   return_label270: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIdMethid].i] = 1;
@@ -8290,10 +8294,10 @@ void parser_prod___APlusMethid___n_plus__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label271: while(false);
   tracehead = trace.prev;
@@ -8308,16 +8312,16 @@ void parser_prod___APlusMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusMethid___replace_child, LOCATE_parser_prod, 3438); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___APlusMethid____n_plus(variable[4]) /*APlusMethid::_n_plus*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPlus, ID_TPlus)) /*cast TPlus*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusMethid___replace_child, LOCATE_parser_prod, 3442); nit_exit(1);}
       variable[4] = variable[0];
@@ -8342,11 +8346,11 @@ void parser_prod___APlusMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label273: while(false);
   tracehead = trace.prev;
@@ -8362,11 +8366,11 @@ void parser_prod___APlusMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label274: while(false);
   tracehead = trace.prev;
@@ -8395,13 +8399,13 @@ void parser_prod___APlusMethid___init_aplusmethid(val_t  self, val_t  param0, in
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___APlusMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___APlusMethid___empty_init))(variable[3], init_table /*YYY*/) /*APlusMethid::empty_init*/;
+  CALL_parser_prod___APlusMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APlusMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___APlusMethid____n_plus(variable[3]) /*APlusMethid::_n_plus*/ =  variable[1] /*n_plus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_plus*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_plus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_plus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_plus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_plus*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_plus*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_plus*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_plus*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_plus*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_plus*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_plus*/)( variable[1] /*n_plus*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_plus*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_plus*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_plus*/)( variable[1] /*n_plus*/, variable[3]) /*PNode::parent=*/;
   }
   return_label276: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusMethid].i] = 1;
@@ -8418,10 +8422,10 @@ void parser_prod___AMinusMethid___n_minus__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label277: while(false);
   tracehead = trace.prev;
@@ -8436,16 +8440,16 @@ void parser_prod___AMinusMethid___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusMethid___replace_child, LOCATE_parser_prod, 3489); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[4]) /*AMinusMethid::_n_minus*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusMethid___replace_child, LOCATE_parser_prod, 3493); nit_exit(1);}
       variable[4] = variable[0];
@@ -8470,11 +8474,11 @@ void parser_prod___AMinusMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label279: while(false);
   tracehead = trace.prev;
@@ -8490,11 +8494,11 @@ void parser_prod___AMinusMethid___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label280: while(false);
   tracehead = trace.prev;
@@ -8523,13 +8527,13 @@ void parser_prod___AMinusMethid___init_aminusmethid(val_t  self, val_t  param0,
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AMinusMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___AMinusMethid___empty_init))(variable[3], init_table /*YYY*/) /*AMinusMethid::empty_init*/;
+  CALL_parser_prod___AMinusMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMinusMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMinusMethid____n_minus(variable[3]) /*AMinusMethid::_n_minus*/ =  variable[1] /*n_minus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minus*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_minus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_minus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_minus*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_minus*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minus*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_minus*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_minus*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_minus*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, variable[3]) /*PNode::parent=*/;
   }
   return_label282: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusMethid].i] = 1;
@@ -8546,10 +8550,10 @@ void parser_prod___AStarMethid___n_star__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label283: while(false);
   tracehead = trace.prev;
@@ -8564,16 +8568,16 @@ void parser_prod___AStarMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarMethid___replace_child, LOCATE_parser_prod, 3540); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AStarMethid____n_star(variable[4]) /*AStarMethid::_n_star*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStar, ID_TStar)) /*cast TStar*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarMethid___replace_child, LOCATE_parser_prod, 3544); nit_exit(1);}
       variable[4] = variable[0];
@@ -8598,11 +8602,11 @@ void parser_prod___AStarMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label285: while(false);
   tracehead = trace.prev;
@@ -8618,11 +8622,11 @@ void parser_prod___AStarMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label286: while(false);
   tracehead = trace.prev;
@@ -8651,13 +8655,13 @@ void parser_prod___AStarMethid___init_astarmethid(val_t  self, val_t  param0, in
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AStarMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___AStarMethid___empty_init))(variable[3], init_table /*YYY*/) /*AStarMethid::empty_init*/;
+  CALL_parser_prod___AStarMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStarMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStarMethid____n_star(variable[3]) /*AStarMethid::_n_star*/ =  variable[1] /*n_star*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_star*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_star*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_star*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_star*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_star*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_star*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_star*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_star*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_star*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_star*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_star*/)( variable[1] /*n_star*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_star*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_star*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_star*/)( variable[1] /*n_star*/, variable[3]) /*PNode::parent=*/;
   }
   return_label288: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarMethid].i] = 1;
@@ -8674,10 +8678,10 @@ void parser_prod___ASlashMethid___n_slash__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label289: while(false);
   tracehead = trace.prev;
@@ -8692,16 +8696,16 @@ void parser_prod___ASlashMethid___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashMethid___replace_child, LOCATE_parser_prod, 3591); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[4]) /*ASlashMethid::_n_slash*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TSlash, ID_TSlash)) /*cast TSlash*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashMethid___replace_child, LOCATE_parser_prod, 3595); nit_exit(1);}
       variable[4] = variable[0];
@@ -8726,11 +8730,11 @@ void parser_prod___ASlashMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label291: while(false);
   tracehead = trace.prev;
@@ -8746,11 +8750,11 @@ void parser_prod___ASlashMethid___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label292: while(false);
   tracehead = trace.prev;
@@ -8779,13 +8783,13 @@ void parser_prod___ASlashMethid___init_aslashmethid(val_t  self, val_t  param0,
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ASlashMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___ASlashMethid___empty_init))(variable[3], init_table /*YYY*/) /*ASlashMethid::empty_init*/;
+  CALL_parser_prod___ASlashMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASlashMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASlashMethid____n_slash(variable[3]) /*ASlashMethid::_n_slash*/ =  variable[1] /*n_slash*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_slash*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_slash*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_slash*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_slash*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_slash*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_slash*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_slash*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_slash*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_slash*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_slash*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_slash*/)( variable[1] /*n_slash*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_slash*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_slash*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_slash*/)( variable[1] /*n_slash*/, variable[3]) /*PNode::parent=*/;
   }
   return_label294: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashMethid].i] = 1;
@@ -8802,10 +8806,10 @@ void parser_prod___APercentMethid___n_percent__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label295: while(false);
   tracehead = trace.prev;
@@ -8820,16 +8824,16 @@ void parser_prod___APercentMethid___replace_child(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentMethid___replace_child, LOCATE_parser_prod, 3642); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___APercentMethid____n_percent(variable[4]) /*APercentMethid::_n_percent*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPercent, ID_TPercent)) /*cast TPercent*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentMethid___replace_child, LOCATE_parser_prod, 3646); nit_exit(1);}
       variable[4] = variable[0];
@@ -8854,11 +8858,11 @@ void parser_prod___APercentMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label297: while(false);
   tracehead = trace.prev;
@@ -8874,11 +8878,11 @@ void parser_prod___APercentMethid___visit_all_reverse(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label298: while(false);
   tracehead = trace.prev;
@@ -8907,13 +8911,13 @@ void parser_prod___APercentMethid___init_apercentmethid(val_t  self, val_t  para
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___APercentMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___APercentMethid___empty_init))(variable[3], init_table /*YYY*/) /*APercentMethid::empty_init*/;
+  CALL_parser_prod___APercentMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APercentMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___APercentMethid____n_percent(variable[3]) /*APercentMethid::_n_percent*/ =  variable[1] /*n_percent*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_percent*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_percent*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_percent*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_percent*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_percent*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_percent*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_percent*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_percent*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_percent*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_percent*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_percent*/)( variable[1] /*n_percent*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_percent*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_percent*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_percent*/)( variable[1] /*n_percent*/, variable[3]) /*PNode::parent=*/;
   }
   return_label300: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentMethid].i] = 1;
@@ -8930,10 +8934,10 @@ void parser_prod___AEqMethid___n_eq__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label301: while(false);
   tracehead = trace.prev;
@@ -8948,16 +8952,16 @@ void parser_prod___AEqMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqMethid___replace_child, LOCATE_parser_prod, 3693); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AEqMethid____n_eq(variable[4]) /*AEqMethid::_n_eq*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TEq, ID_TEq)) /*cast TEq*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqMethid___replace_child, LOCATE_parser_prod, 3697); nit_exit(1);}
       variable[4] = variable[0];
@@ -8982,11 +8986,11 @@ void parser_prod___AEqMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label303: while(false);
   tracehead = trace.prev;
@@ -9002,11 +9006,11 @@ void parser_prod___AEqMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label304: while(false);
   tracehead = trace.prev;
@@ -9035,13 +9039,13 @@ void parser_prod___AEqMethid___init_aeqmethid(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AEqMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___AEqMethid___empty_init))(variable[3], init_table /*YYY*/) /*AEqMethid::empty_init*/;
+  CALL_parser_prod___AEqMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AEqMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AEqMethid____n_eq(variable[3]) /*AEqMethid::_n_eq*/ =  variable[1] /*n_eq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_eq*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_eq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_eq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_eq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_eq*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_eq*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_eq*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_eq*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_eq*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_eq*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_eq*/)( variable[1] /*n_eq*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_eq*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_eq*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_eq*/)( variable[1] /*n_eq*/, variable[3]) /*PNode::parent=*/;
   }
   return_label306: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqMethid].i] = 1;
@@ -9058,10 +9062,10 @@ void parser_prod___ANeMethid___n_ne__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label307: while(false);
   tracehead = trace.prev;
@@ -9076,16 +9080,16 @@ void parser_prod___ANeMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeMethid___replace_child, LOCATE_parser_prod, 3744); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANeMethid____n_ne(variable[4]) /*ANeMethid::_n_ne*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TNe, ID_TNe)) /*cast TNe*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeMethid___replace_child, LOCATE_parser_prod, 3748); nit_exit(1);}
       variable[4] = variable[0];
@@ -9110,11 +9114,11 @@ void parser_prod___ANeMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label309: while(false);
   tracehead = trace.prev;
@@ -9130,11 +9134,11 @@ void parser_prod___ANeMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label310: while(false);
   tracehead = trace.prev;
@@ -9163,13 +9167,13 @@ void parser_prod___ANeMethid___init_anemethid(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ANeMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___ANeMethid___empty_init))(variable[3], init_table /*YYY*/) /*ANeMethid::empty_init*/;
+  CALL_parser_prod___ANeMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ANeMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANeMethid____n_ne(variable[3]) /*ANeMethid::_n_ne*/ =  variable[1] /*n_ne*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_ne*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_ne*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_ne*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_ne*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_ne*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_ne*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_ne*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_ne*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_ne*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_ne*/)( variable[1] /*n_ne*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_ne*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_ne*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_ne*/)( variable[1] /*n_ne*/, variable[3]) /*PNode::parent=*/;
   }
   return_label312: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeMethid].i] = 1;
@@ -9186,10 +9190,10 @@ void parser_prod___ALeMethid___n_le__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label313: while(false);
   tracehead = trace.prev;
@@ -9204,16 +9208,16 @@ void parser_prod___ALeMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeMethid___replace_child, LOCATE_parser_prod, 3795); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ALeMethid____n_le(variable[4]) /*ALeMethid::_n_le*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TLe, ID_TLe)) /*cast TLe*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeMethid___replace_child, LOCATE_parser_prod, 3799); nit_exit(1);}
       variable[4] = variable[0];
@@ -9238,11 +9242,11 @@ void parser_prod___ALeMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label315: while(false);
   tracehead = trace.prev;
@@ -9258,11 +9262,11 @@ void parser_prod___ALeMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label316: while(false);
   tracehead = trace.prev;
@@ -9291,13 +9295,13 @@ void parser_prod___ALeMethid___init_alemethid(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ALeMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___ALeMethid___empty_init))(variable[3], init_table /*YYY*/) /*ALeMethid::empty_init*/;
+  CALL_parser_prod___ALeMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ALeMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ALeMethid____n_le(variable[3]) /*ALeMethid::_n_le*/ =  variable[1] /*n_le*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_le*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_le*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_le*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_le*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_le*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_le*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_le*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_le*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_le*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_le*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_le*/)( variable[1] /*n_le*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_le*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_le*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_le*/)( variable[1] /*n_le*/, variable[3]) /*PNode::parent=*/;
   }
   return_label318: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeMethid].i] = 1;
@@ -9314,10 +9318,10 @@ void parser_prod___AGeMethid___n_ge__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label319: while(false);
   tracehead = trace.prev;
@@ -9332,16 +9336,16 @@ void parser_prod___AGeMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeMethid___replace_child, LOCATE_parser_prod, 3846); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AGeMethid____n_ge(variable[4]) /*AGeMethid::_n_ge*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TGe, ID_TGe)) /*cast TGe*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeMethid___replace_child, LOCATE_parser_prod, 3850); nit_exit(1);}
       variable[4] = variable[0];
@@ -9366,11 +9370,11 @@ void parser_prod___AGeMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label321: while(false);
   tracehead = trace.prev;
@@ -9386,11 +9390,11 @@ void parser_prod___AGeMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label322: while(false);
   tracehead = trace.prev;
@@ -9419,13 +9423,13 @@ void parser_prod___AGeMethid___init_agemethid(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AGeMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___AGeMethid___empty_init))(variable[3], init_table /*YYY*/) /*AGeMethid::empty_init*/;
+  CALL_parser_prod___AGeMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AGeMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AGeMethid____n_ge(variable[3]) /*AGeMethid::_n_ge*/ =  variable[1] /*n_ge*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_ge*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_ge*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_ge*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_ge*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_ge*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_ge*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_ge*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_ge*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_ge*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_ge*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_ge*/)( variable[1] /*n_ge*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_ge*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_ge*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_ge*/)( variable[1] /*n_ge*/, variable[3]) /*PNode::parent=*/;
   }
   return_label324: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeMethid].i] = 1;
@@ -9442,10 +9446,10 @@ void parser_prod___ALtMethid___n_lt__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label325: while(false);
   tracehead = trace.prev;
@@ -9460,16 +9464,16 @@ void parser_prod___ALtMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtMethid___replace_child, LOCATE_parser_prod, 3897); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ALtMethid____n_lt(variable[4]) /*ALtMethid::_n_lt*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TLt, ID_TLt)) /*cast TLt*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtMethid___replace_child, LOCATE_parser_prod, 3901); nit_exit(1);}
       variable[4] = variable[0];
@@ -9494,11 +9498,11 @@ void parser_prod___ALtMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label327: while(false);
   tracehead = trace.prev;
@@ -9514,11 +9518,11 @@ void parser_prod___ALtMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label328: while(false);
   tracehead = trace.prev;
@@ -9547,13 +9551,13 @@ void parser_prod___ALtMethid___init_altmethid(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ALtMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___ALtMethid___empty_init))(variable[3], init_table /*YYY*/) /*ALtMethid::empty_init*/;
+  CALL_parser_prod___ALtMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ALtMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ALtMethid____n_lt(variable[3]) /*ALtMethid::_n_lt*/ =  variable[1] /*n_lt*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_lt*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_lt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_lt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_lt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_lt*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_lt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_lt*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_lt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_lt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_lt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_lt*/)( variable[1] /*n_lt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_lt*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_lt*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_lt*/)( variable[1] /*n_lt*/, variable[3]) /*PNode::parent=*/;
   }
   return_label330: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtMethid].i] = 1;
@@ -9570,10 +9574,10 @@ void parser_prod___AGtMethid___n_gt__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label331: while(false);
   tracehead = trace.prev;
@@ -9588,16 +9592,16 @@ void parser_prod___AGtMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtMethid___replace_child, LOCATE_parser_prod, 3948); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AGtMethid____n_gt(variable[4]) /*AGtMethid::_n_gt*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TGt, ID_TGt)) /*cast TGt*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtMethid___replace_child, LOCATE_parser_prod, 3952); nit_exit(1);}
       variable[4] = variable[0];
@@ -9622,11 +9626,11 @@ void parser_prod___AGtMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label333: while(false);
   tracehead = trace.prev;
@@ -9642,11 +9646,11 @@ void parser_prod___AGtMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label334: while(false);
   tracehead = trace.prev;
@@ -9675,13 +9679,13 @@ void parser_prod___AGtMethid___init_agtmethid(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AGtMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___AGtMethid___empty_init))(variable[3], init_table /*YYY*/) /*AGtMethid::empty_init*/;
+  CALL_parser_prod___AGtMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AGtMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AGtMethid____n_gt(variable[3]) /*AGtMethid::_n_gt*/ =  variable[1] /*n_gt*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_gt*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_gt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_gt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_gt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_gt*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_gt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_gt*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_gt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_gt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_gt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_gt*/)( variable[1] /*n_gt*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_gt*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_gt*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_gt*/)( variable[1] /*n_gt*/, variable[3]) /*PNode::parent=*/;
   }
   return_label336: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtMethid].i] = 1;
@@ -9698,10 +9702,10 @@ void parser_prod___ABraMethid___n_obra__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label337: while(false);
   tracehead = trace.prev;
@@ -9717,10 +9721,10 @@ void parser_prod___ABraMethid___n_cbra__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label338: while(false);
   tracehead = trace.prev;
@@ -9735,16 +9739,16 @@ void parser_prod___ABraMethid___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraMethid___replace_child, LOCATE_parser_prod, 4011); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraMethid____n_obra(variable[4]) /*ABraMethid::_n_obra*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraMethid___replace_child, LOCATE_parser_prod, 4015); nit_exit(1);}
       variable[4] = variable[0];
@@ -9757,12 +9761,12 @@ void parser_prod___ABraMethid___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[4]) /*ABraMethid::_n_cbra*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraMethid___replace_child, LOCATE_parser_prod, 4025); nit_exit(1);}
       variable[4] = variable[0];
@@ -9787,19 +9791,19 @@ void parser_prod___ABraMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label340: while(false);
   tracehead = trace.prev;
@@ -9815,19 +9819,19 @@ void parser_prod___ABraMethid___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraMethid____n_obra(variable[3]) /*ABraMethid::_n_obra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraMethid____n_cbra(variable[3]) /*ABraMethid::_n_cbra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label341: while(false);
   tracehead = trace.prev;
@@ -9857,20 +9861,20 @@ void parser_prod___ABraMethid___init_abramethid(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ABraMethid___empty_init_t)CALL(variable[4],COLOR_parser_prod___ABraMethid___empty_init))(variable[4], init_table /*YYY*/) /*ABraMethid::empty_init*/;
+  CALL_parser_prod___ABraMethid___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ABraMethid::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ABraMethid____n_obra(variable[4]) /*ABraMethid::_n_obra*/ =  variable[1] /*n_obra*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_obra*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_obra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_obra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_obra*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_obra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_obra*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_obra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_obra*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_obra*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABraMethid____n_cbra(variable[4]) /*ABraMethid::_n_cbra*/ =  variable[2] /*n_cbra*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_cbra*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_cbra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_cbra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_cbra*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_cbra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_cbra*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_cbra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_cbra*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_cbra*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, variable[4]) /*PNode::parent=*/;
   }
   return_label343: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraMethid].i] = 1;
@@ -9887,10 +9891,10 @@ void parser_prod___AStarshipMethid___n_starship__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label344: while(false);
   tracehead = trace.prev;
@@ -9905,16 +9909,16 @@ void parser_prod___AStarshipMethid___replace_child(val_t  self, val_t  param0, v
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipMethid___replace_child, LOCATE_parser_prod, 4078); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[4]) /*AStarshipMethid::_n_starship*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStarship, ID_TStarship)) /*cast TStarship*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipMethid___replace_child, LOCATE_parser_prod, 4082); nit_exit(1);}
       variable[4] = variable[0];
@@ -9939,11 +9943,11 @@ void parser_prod___AStarshipMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label346: while(false);
   tracehead = trace.prev;
@@ -9959,11 +9963,11 @@ void parser_prod___AStarshipMethid___visit_all_reverse(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label347: while(false);
   tracehead = trace.prev;
@@ -9992,13 +9996,13 @@ void parser_prod___AStarshipMethid___init_astarshipmethid(val_t  self, val_t  pa
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AStarshipMethid___empty_init_t)CALL(variable[3],COLOR_parser_prod___AStarshipMethid___empty_init))(variable[3], init_table /*YYY*/) /*AStarshipMethid::empty_init*/;
+  CALL_parser_prod___AStarshipMethid___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStarshipMethid::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStarshipMethid____n_starship(variable[3]) /*AStarshipMethid::_n_starship*/ =  variable[1] /*n_starship*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_starship*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_starship*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_starship*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_starship*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_starship*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_starship*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_starship*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_starship*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_starship*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_starship*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_starship*/)( variable[1] /*n_starship*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_starship*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_starship*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_starship*/)( variable[1] /*n_starship*/, variable[3]) /*PNode::parent=*/;
   }
   return_label349: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipMethid].i] = 1;
@@ -10015,10 +10019,10 @@ void parser_prod___AAssignMethid___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label350: while(false);
   tracehead = trace.prev;
@@ -10034,10 +10038,10 @@ void parser_prod___AAssignMethid___n_assign__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label351: while(false);
   tracehead = trace.prev;
@@ -10052,16 +10056,16 @@ void parser_prod___AAssignMethid___replace_child(val_t  self, val_t  param0, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssignMethid___replace_child, LOCATE_parser_prod, 4141); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignMethid____n_id(variable[4]) /*AAssignMethid::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssignMethid___replace_child, LOCATE_parser_prod, 4145); nit_exit(1);}
       variable[4] = variable[0];
@@ -10074,12 +10078,12 @@ void parser_prod___AAssignMethid___replace_child(val_t  self, val_t  param0, val
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[4]) /*AAssignMethid::_n_assign*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssignMethid___replace_child, LOCATE_parser_prod, 4155); nit_exit(1);}
       variable[4] = variable[0];
@@ -10104,19 +10108,19 @@ void parser_prod___AAssignMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label353: while(false);
   tracehead = trace.prev;
@@ -10132,19 +10136,19 @@ void parser_prod___AAssignMethid___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignMethid____n_id(variable[3]) /*AAssignMethid::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignMethid____n_assign(variable[3]) /*AAssignMethid::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label354: while(false);
   tracehead = trace.prev;
@@ -10174,20 +10178,20 @@ void parser_prod___AAssignMethid___init_aassignmethid(val_t  self, val_t  param0
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AAssignMethid___empty_init_t)CALL(variable[4],COLOR_parser_prod___AAssignMethid___empty_init))(variable[4], init_table /*YYY*/) /*AAssignMethid::empty_init*/;
+  CALL_parser_prod___AAssignMethid___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAssignMethid::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AAssignMethid____n_id(variable[4]) /*AAssignMethid::_n_id*/ =  variable[1] /*n_id*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AAssignMethid____n_assign(variable[4]) /*AAssignMethid::_n_assign*/ =  variable[2] /*n_assign*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_assign*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, variable[4]) /*PNode::parent=*/;
   }
   return_label356: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssignMethid].i] = 1;
@@ -10204,10 +10208,10 @@ void parser_prod___ABraassignMethid___n_obra__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label357: while(false);
   tracehead = trace.prev;
@@ -10223,10 +10227,10 @@ void parser_prod___ABraassignMethid___n_cbra__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label358: while(false);
   tracehead = trace.prev;
@@ -10242,10 +10246,10 @@ void parser_prod___ABraassignMethid___n_assign__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label359: while(false);
   tracehead = trace.prev;
@@ -10260,16 +10264,16 @@ void parser_prod___ABraassignMethid___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4232); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[4]) /*ABraassignMethid::_n_obra*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TObra, ID_TObra)) /*cast TObra*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4236); nit_exit(1);}
       variable[4] = variable[0];
@@ -10282,12 +10286,12 @@ void parser_prod___ABraassignMethid___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[4]) /*ABraassignMethid::_n_cbra*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TCbra, ID_TCbra)) /*cast TCbra*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4246); nit_exit(1);}
       variable[4] = variable[0];
@@ -10300,12 +10304,12 @@ void parser_prod___ABraassignMethid___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[4]) /*ABraassignMethid::_n_assign*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraassignMethid___replace_child, LOCATE_parser_prod, 4256); nit_exit(1);}
       variable[4] = variable[0];
@@ -10330,27 +10334,27 @@ void parser_prod___ABraassignMethid___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label361: while(false);
   tracehead = trace.prev;
@@ -10366,27 +10370,27 @@ void parser_prod___ABraassignMethid___visit_all_reverse(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraassignMethid____n_obra(variable[3]) /*ABraassignMethid::_n_obra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[3]) /*ABraassignMethid::_n_cbra*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABraassignMethid____n_assign(variable[3]) /*ABraassignMethid::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label362: while(false);
   tracehead = trace.prev;
@@ -10417,27 +10421,27 @@ void parser_prod___ABraassignMethid___init_abraassignmethid(val_t  self, val_t
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___ABraassignMethid___empty_init_t)CALL(variable[5],COLOR_parser_prod___ABraassignMethid___empty_init))(variable[5], init_table /*YYY*/) /*ABraassignMethid::empty_init*/;
+  CALL_parser_prod___ABraassignMethid___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ABraassignMethid::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___ABraassignMethid____n_obra(variable[5]) /*ABraassignMethid::_n_obra*/ =  variable[1] /*n_obra*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_obra*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_obra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_obra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_obra*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_obra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_obra*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_obra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_obra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_obra*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_obra*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_obra*/)( variable[1] /*n_obra*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___ABraassignMethid____n_cbra(variable[5]) /*ABraassignMethid::_n_cbra*/ =  variable[2] /*n_cbra*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_cbra*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_cbra*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_cbra*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_cbra*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_cbra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_cbra*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_cbra*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_cbra*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_cbra*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_cbra*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_cbra*/)( variable[2] /*n_cbra*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___ABraassignMethid____n_assign(variable[5]) /*ABraassignMethid::_n_assign*/ =  variable[3] /*n_assign*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_assign*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[5]) /*PNode::parent=*/;
   }
   return_label364: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraassignMethid].i] = 1;
@@ -10454,10 +10458,10 @@ void parser_prod___ASignature___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label365: while(false);
   tracehead = trace.prev;
@@ -10472,52 +10476,52 @@ void parser_prod___ASignature___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4329); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[4]) /*ASignature::_n_params*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[7]) /*ASignature::_n_params*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4333); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[7]) /*ASignature::_n_params*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASignature____n_params(variable[7]) /*ASignature::_n_params*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label366;
     }
     continue_367: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_367: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASignature____n_type(variable[4]) /*ASignature::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4345); nit_exit(1);}
       variable[4] = variable[0];
@@ -10530,38 +10534,38 @@ void parser_prod___ASignature___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[4]) /*ASignature::_n_closure_decls*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[7]) /*ASignature::_n_closure_decls*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___replace_child, LOCATE_parser_prod, 4355); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[7]) /*ASignature::_n_closure_decls*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[7]) /*ASignature::_n_closure_decls*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label366;
     }
     continue_368: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_368: while(0);
   return_label366: while(false);
@@ -10578,36 +10582,36 @@ void parser_prod___ASignature___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASignature____n_params(variable[3]) /*ASignature::_n_params*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_370: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_370: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[3]) /*ASignature::_n_closure_decls*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_371: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_371: while(0);
   return_label369: while(false);
@@ -10624,15 +10628,15 @@ void parser_prod___ASignature___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[4]) /*ASignature::_n_params*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ASignature____n_params(variable[4]) /*ASignature::_n_params*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_373: while(0);
@@ -10640,23 +10644,23 @@ void parser_prod___ASignature___visit_all_reverse(val_t  self, val_t  param0) {
   break_373: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASignature____n_type(variable[3]) /*ASignature::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[4]) /*ASignature::_n_closure_decls*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[4]) /*ASignature::_n_closure_decls*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_374: while(0);
@@ -10691,52 +10695,52 @@ void parser_prod___ASignature___init_asignature(val_t  self, val_t  param0, val_
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASignature].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___ASignature___empty_init_t)CALL(variable[5],COLOR_parser_prod___ASignature___empty_init))(variable[5], init_table /*YYY*/) /*ASignature::empty_init*/;
+  CALL_parser_prod___ASignature___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ASignature::empty_init*/;
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PParam]*/
   ATTR_parser_nodes___ASignature____n_params(variable[5]) /*ASignature::_n_params*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_params*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_params*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_params*/)( variable[1] /*n_params*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PParam, ID_PParam)) /*cast PParam*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___init_asignature, LOCATE_parser_prod, 4311); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___ASignature____n_params(variable[8]) /*ASignature::_n_params*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_377: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_377: while(0);
   variable[5] = variable[0];
   ATTR_parser_nodes___ASignature____n_type(variable[5]) /*ASignature::_n_type*/ =  variable[2] /*n_type*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_type*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PClosureDecl]*/
   ATTR_parser_nodes___ASignature____n_closure_decls(variable[5]) /*ASignature::_n_closure_decls*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_closure_decls*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_closure_decls*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_closure_decls*/)( variable[3] /*n_closure_decls*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClosureDecl, ID_PClosureDecl)) /*cast PClosureDecl*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASignature___init_asignature, LOCATE_parser_prod, 4321); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___ASignature____n_closure_decls(variable[8]) /*ASignature::_n_closure_decls*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_378: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_378: while(0);
   return_label376: while(false);
@@ -10754,10 +10758,10 @@ void parser_prod___AParam___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label379: while(false);
   tracehead = trace.prev;
@@ -10773,10 +10777,10 @@ void parser_prod___AParam___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label380: while(false);
   tracehead = trace.prev;
@@ -10792,10 +10796,10 @@ void parser_prod___AParam___n_dotdotdot__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label381: while(false);
   tracehead = trace.prev;
@@ -10810,16 +10814,16 @@ void parser_prod___AParam___replace_child(val_t  self, val_t  param0, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4448); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PParam____n_id(variable[4]) /*PParam::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4452); nit_exit(1);}
       variable[4] = variable[0];
@@ -10832,12 +10836,12 @@ void parser_prod___AParam___replace_child(val_t  self, val_t  param0, val_t  par
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___PParam____n_type(variable[4]) /*PParam::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4462); nit_exit(1);}
       variable[4] = variable[0];
@@ -10850,12 +10854,12 @@ void parser_prod___AParam___replace_child(val_t  self, val_t  param0, val_t  par
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[4]) /*AParam::_n_dotdotdot*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TDotdotdot, ID_TDotdotdot)) /*cast TDotdotdot*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParam___replace_child, LOCATE_parser_prod, 4472); nit_exit(1);}
       variable[4] = variable[0];
@@ -10880,27 +10884,27 @@ void parser_prod___AParam___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label383: while(false);
   tracehead = trace.prev;
@@ -10916,27 +10920,27 @@ void parser_prod___AParam___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PParam____n_id(variable[3]) /*PParam::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___PParam____n_type(variable[3]) /*PParam::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AParam____n_dotdotdot(variable[3]) /*AParam::_n_dotdotdot*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label384: while(false);
   tracehead = trace.prev;
@@ -10967,27 +10971,27 @@ void parser_prod___AParam___init_aparam(val_t  self, val_t  param0, val_t  param
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AParam___empty_init_t)CALL(variable[5],COLOR_parser_prod___AParam___empty_init))(variable[5], init_table /*YYY*/) /*AParam::empty_init*/;
+  CALL_parser_prod___AParam___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AParam::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___PParam____n_id(variable[5]) /*PParam::_n_id*/ =  variable[1] /*n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___PParam____n_type(variable[5]) /*PParam::_n_type*/ =  variable[2] /*n_type*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_type*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AParam____n_dotdotdot(variable[5]) /*AParam::_n_dotdotdot*/ =  variable[3] /*n_dotdotdot*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_dotdotdot*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_dotdotdot*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_dotdotdot*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_dotdotdot*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_dotdotdot*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_dotdotdot*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_dotdotdot*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_dotdotdot*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_dotdotdot*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_dotdotdot*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_dotdotdot*/)( variable[3] /*n_dotdotdot*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_dotdotdot*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_dotdotdot*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_dotdotdot*/)( variable[3] /*n_dotdotdot*/, variable[5]) /*PNode::parent=*/;
   }
   return_label386: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParam].i] = 1;
@@ -11004,10 +11008,10 @@ void parser_prod___AClosureDecl___n_kwwith__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label387: while(false);
   tracehead = trace.prev;
@@ -11023,10 +11027,10 @@ void parser_prod___AClosureDecl___n_kwbreak__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label388: while(false);
   tracehead = trace.prev;
@@ -11042,10 +11046,10 @@ void parser_prod___AClosureDecl___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label389: while(false);
   tracehead = trace.prev;
@@ -11061,10 +11065,10 @@ void parser_prod___AClosureDecl___n_signature__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label390: while(false);
   tracehead = trace.prev;
@@ -11080,10 +11084,10 @@ void parser_prod___AClosureDecl___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label391: while(false);
   tracehead = trace.prev;
@@ -11098,16 +11102,16 @@ void parser_prod___AClosureDecl___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4579); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[4]) /*AClosureDecl::_n_kwwith*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4583); nit_exit(1);}
       variable[4] = variable[0];
@@ -11120,12 +11124,12 @@ void parser_prod___AClosureDecl___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[4]) /*AClosureDecl::_n_kwbreak*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4593); nit_exit(1);}
       variable[4] = variable[0];
@@ -11138,12 +11142,12 @@ void parser_prod___AClosureDecl___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDecl____n_id(variable[4]) /*AClosureDecl::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4603); nit_exit(1);}
       variable[4] = variable[0];
@@ -11156,12 +11160,12 @@ void parser_prod___AClosureDecl___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[4]) /*AClosureDecl::_n_signature*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PSignature, ID_PSignature)) /*cast PSignature*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4613); nit_exit(1);}
       variable[4] = variable[0];
@@ -11174,12 +11178,12 @@ void parser_prod___AClosureDecl___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[4]) /*AClosureDecl::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDecl___replace_child, LOCATE_parser_prod, 4623); nit_exit(1);}
       variable[4] = variable[0];
@@ -11204,43 +11208,43 @@ void parser_prod___AClosureDecl___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label393: while(false);
   tracehead = trace.prev;
@@ -11256,43 +11260,43 @@ void parser_prod___AClosureDecl___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[3]) /*AClosureDecl::_n_kwwith*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[3]) /*AClosureDecl::_n_kwbreak*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_id(variable[3]) /*AClosureDecl::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_signature(variable[3]) /*AClosureDecl::_n_signature*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDecl____n_expr(variable[3]) /*AClosureDecl::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label394: while(false);
   tracehead = trace.prev;
@@ -11325,41 +11329,41 @@ void parser_prod___AClosureDecl___init_aclosuredecl(val_t  self, val_t  param0,
   variable[5] =  param4;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i]) return;
   variable[7] = variable[0];
-  ((parser_prod___AClosureDecl___empty_init_t)CALL(variable[7],COLOR_parser_prod___AClosureDecl___empty_init))(variable[7], init_table /*YYY*/) /*AClosureDecl::empty_init*/;
+  CALL_parser_prod___AClosureDecl___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*AClosureDecl::empty_init*/;
   variable[7] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_kwwith(variable[7]) /*AClosureDecl::_n_kwwith*/ =  variable[1] /*n_kwwith*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwith*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwwith*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwwith*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwith*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwwith*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwwith*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwith*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwwith*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwith*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwwith*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwwith*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_kwbreak(variable[7]) /*AClosureDecl::_n_kwbreak*/ =  variable[2] /*n_kwbreak*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwbreak*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwbreak*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwbreak*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwbreak*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwbreak*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwbreak*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwbreak*/)( variable[2] /*n_kwbreak*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwbreak*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwbreak*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwbreak*/)( variable[2] /*n_kwbreak*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_id(variable[7]) /*AClosureDecl::_n_id*/ =  variable[3] /*n_id*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_id*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_signature(variable[7]) /*AClosureDecl::_n_signature*/ =  variable[4] /*n_signature*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_signature*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_signature*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_signature*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_signature*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_signature*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_signature*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_signature*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_signature*/)( variable[4] /*n_signature*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_signature*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_signature*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_signature*/)( variable[4] /*n_signature*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AClosureDecl____n_expr(variable[7]) /*AClosureDecl::_n_expr*/ =  variable[5] /*n_expr*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_expr*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, variable[7]) /*PNode::parent=*/;
   }
   return_label396: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDecl].i] = 1;
@@ -11376,10 +11380,10 @@ void parser_prod___AType___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label397: while(false);
   tracehead = trace.prev;
@@ -11394,16 +11398,16 @@ void parser_prod___AType___replace_child(val_t  self, val_t  param0, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___replace_child, LOCATE_parser_prod, 4701); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AType____n_id(variable[4]) /*AType::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___replace_child, LOCATE_parser_prod, 4705); nit_exit(1);}
       variable[4] = variable[0];
@@ -11416,38 +11420,38 @@ void parser_prod___AType___replace_child(val_t  self, val_t  param0, val_t  para
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___replace_child, LOCATE_parser_prod, 4715); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label398;
     }
     continue_399: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_399: while(0);
   return_label398: while(false);
@@ -11464,23 +11468,23 @@ void parser_prod___AType___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AType____n_types(variable[3]) /*AType::_n_types*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_401: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_401: while(0);
   return_label400: while(false);
@@ -11497,23 +11501,23 @@ void parser_prod___AType___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AType____n_id(variable[3]) /*AType::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_403: while(0);
@@ -11547,32 +11551,32 @@ void parser_prod___AType___init_atype(val_t  self, val_t  param0, val_t  param1,
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AType].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AType___empty_init_t)CALL(variable[4],COLOR_parser_prod___AType___empty_init))(variable[4], init_table /*YYY*/) /*AType::empty_init*/;
+  CALL_parser_prod___AType___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AType::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AType____n_id(variable[4]) /*AType::_n_id*/ =  variable[1] /*n_id*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   variable[5] = NEW_List_list___List___init(); /*new List[PType]*/
   ATTR_parser_nodes___AType____n_types(variable[4]) /*AType::_n_types*/ = variable[5];
-  variable[4] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*n_types*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*n_types*/) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_types*/)( variable[2] /*n_types*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
     variable[7] = TAG_Bool(( variable[6] /*n*/==NIT_NULL) || VAL_ISA( variable[6] /*n*/, COLOR_PType, ID_PType)) /*cast PType*/;
     if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AType___init_atype, LOCATE_parser_prod, 4693); nit_exit(1);}
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AType____n_types(variable[7]) /*AType::_n_types*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[6] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[6] /*n*/) /*IndexedCollection::add*/;
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n*/)( variable[6] /*n*/, variable[7]) /*PNode::parent=*/;
     continue_406: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_406: while(0);
   return_label405: while(false);
@@ -11589,42 +11593,42 @@ void parser_prod___ABlockExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABlockExpr___replace_child, LOCATE_parser_prod, 4769); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[4]) /*ABlockExpr::_n_expr*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[7]) /*ABlockExpr::_n_expr*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABlockExpr___replace_child, LOCATE_parser_prod, 4773); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[7]) /*ABlockExpr::_n_expr*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[7]) /*ABlockExpr::_n_expr*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label407;
     }
     continue_408: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_408: while(0);
   return_label407: while(false);
@@ -11641,15 +11645,15 @@ void parser_prod___ABlockExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[3]) /*ABlockExpr::_n_expr*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_410: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_410: while(0);
   return_label409: while(false);
@@ -11666,15 +11670,15 @@ void parser_prod___ABlockExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[4]) /*ABlockExpr::_n_expr*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[4]) /*ABlockExpr::_n_expr*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_412: while(0);
@@ -11707,25 +11711,25 @@ void parser_prod___ABlockExpr___init_ablockexpr(val_t  self, val_t  param0, int*
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABlockExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ABlockExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___ABlockExpr___empty_init))(variable[3], init_table /*YYY*/) /*ABlockExpr::empty_init*/;
+  CALL_parser_prod___ABlockExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ABlockExpr::empty_init*/;
   variable[3] = variable[0];
   variable[4] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ABlockExpr____n_expr(variable[3]) /*ABlockExpr::_n_expr*/ = variable[4];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_expr*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_expr*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_expr*/)( variable[1] /*n_expr*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABlockExpr___init_ablockexpr, LOCATE_parser_prod, 4761); nit_exit(1);}
     variable[6] = variable[0];
     variable[6] = ATTR_parser_nodes___ABlockExpr____n_expr(variable[6]) /*ABlockExpr::_n_expr*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
     continue_415: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_415: while(0);
   return_label414: while(false);
@@ -11743,10 +11747,10 @@ void parser_prod___AVardeclExpr___n_kwvar__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label416: while(false);
   tracehead = trace.prev;
@@ -11762,10 +11766,10 @@ void parser_prod___AVardeclExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label417: while(false);
   tracehead = trace.prev;
@@ -11781,10 +11785,10 @@ void parser_prod___AVardeclExpr___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label418: while(false);
   tracehead = trace.prev;
@@ -11800,10 +11804,10 @@ void parser_prod___AVardeclExpr___n_assign__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label419: while(false);
   tracehead = trace.prev;
@@ -11819,10 +11823,10 @@ void parser_prod___AVardeclExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label420: while(false);
   tracehead = trace.prev;
@@ -11837,16 +11841,16 @@ void parser_prod___AVardeclExpr___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4874); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[4]) /*AVardeclExpr::_n_kwvar*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwvar, ID_TKwvar)) /*cast TKwvar*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4878); nit_exit(1);}
       variable[4] = variable[0];
@@ -11859,12 +11863,12 @@ void parser_prod___AVardeclExpr___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[4]) /*AVardeclExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4888); nit_exit(1);}
       variable[4] = variable[0];
@@ -11877,12 +11881,12 @@ void parser_prod___AVardeclExpr___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[4]) /*AVardeclExpr::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4898); nit_exit(1);}
       variable[4] = variable[0];
@@ -11895,12 +11899,12 @@ void parser_prod___AVardeclExpr___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[4]) /*AVardeclExpr::_n_assign*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4908); nit_exit(1);}
       variable[4] = variable[0];
@@ -11913,12 +11917,12 @@ void parser_prod___AVardeclExpr___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[4]) /*AVardeclExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVardeclExpr___replace_child, LOCATE_parser_prod, 4918); nit_exit(1);}
       variable[4] = variable[0];
@@ -11943,43 +11947,43 @@ void parser_prod___AVardeclExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label422: while(false);
   tracehead = trace.prev;
@@ -11995,43 +11999,43 @@ void parser_prod___AVardeclExpr___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[3]) /*AVardeclExpr::_n_kwvar*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_id(variable[3]) /*AVardeclExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_type(variable[3]) /*AVardeclExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_assign(variable[3]) /*AVardeclExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVardeclExpr____n_expr(variable[3]) /*AVardeclExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label423: while(false);
   tracehead = trace.prev;
@@ -12064,41 +12068,41 @@ void parser_prod___AVardeclExpr___init_avardeclexpr(val_t  self, val_t  param0,
   variable[5] =  param4;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i]) return;
   variable[7] = variable[0];
-  ((parser_prod___AVardeclExpr___empty_init_t)CALL(variable[7],COLOR_parser_prod___AVardeclExpr___empty_init))(variable[7], init_table /*YYY*/) /*AVardeclExpr::empty_init*/;
+  CALL_parser_prod___AVardeclExpr___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*AVardeclExpr::empty_init*/;
   variable[7] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_kwvar(variable[7]) /*AVardeclExpr::_n_kwvar*/ =  variable[1] /*n_kwvar*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwvar*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwvar*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwvar*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwvar*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwvar*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwvar*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwvar*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwvar*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwvar*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwvar*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwvar*/)( variable[1] /*n_kwvar*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwvar*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwvar*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwvar*/)( variable[1] /*n_kwvar*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_id(variable[7]) /*AVardeclExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_type(variable[7]) /*AVardeclExpr::_n_type*/ =  variable[3] /*n_type*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)( variable[3] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_type*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_type*/)( variable[3] /*n_type*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_assign(variable[7]) /*AVardeclExpr::_n_assign*/ =  variable[4] /*n_assign*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_assign*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AVardeclExpr____n_expr(variable[7]) /*AVardeclExpr::_n_expr*/ =  variable[5] /*n_expr*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_expr*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_expr*/)( variable[5] /*n_expr*/, variable[7]) /*PNode::parent=*/;
   }
   return_label425: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVardeclExpr].i] = 1;
@@ -12115,10 +12119,10 @@ void parser_prod___AReturnExpr___n_kwreturn__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label426: while(false);
   tracehead = trace.prev;
@@ -12134,10 +12138,10 @@ void parser_prod___AReturnExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label427: while(false);
   tracehead = trace.prev;
@@ -12152,16 +12156,16 @@ void parser_prod___AReturnExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReturnExpr___replace_child, LOCATE_parser_prod, 5001); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[4]) /*AReturnExpr::_n_kwreturn*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwreturn, ID_TKwreturn)) /*cast TKwreturn*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReturnExpr___replace_child, LOCATE_parser_prod, 5005); nit_exit(1);}
       variable[4] = variable[0];
@@ -12174,12 +12178,12 @@ void parser_prod___AReturnExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[4]) /*AReturnExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AReturnExpr___replace_child, LOCATE_parser_prod, 5015); nit_exit(1);}
       variable[4] = variable[0];
@@ -12204,19 +12208,19 @@ void parser_prod___AReturnExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label429: while(false);
   tracehead = trace.prev;
@@ -12232,19 +12236,19 @@ void parser_prod___AReturnExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[3]) /*AReturnExpr::_n_kwreturn*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReturnExpr____n_expr(variable[3]) /*AReturnExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label430: while(false);
   tracehead = trace.prev;
@@ -12274,20 +12278,20 @@ void parser_prod___AReturnExpr___init_areturnexpr(val_t  self, val_t  param0, va
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AReturnExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AReturnExpr___empty_init))(variable[4], init_table /*YYY*/) /*AReturnExpr::empty_init*/;
+  CALL_parser_prod___AReturnExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AReturnExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AReturnExpr____n_kwreturn(variable[4]) /*AReturnExpr::_n_kwreturn*/ =  variable[1] /*n_kwreturn*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwreturn*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwreturn*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwreturn*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwreturn*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwreturn*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwreturn*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwreturn*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwreturn*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwreturn*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwreturn*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwreturn*/)( variable[1] /*n_kwreturn*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwreturn*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwreturn*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwreturn*/)( variable[1] /*n_kwreturn*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AReturnExpr____n_expr(variable[4]) /*AReturnExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   return_label432: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AReturnExpr].i] = 1;
@@ -12304,10 +12308,10 @@ void parser_prod___ABreakExpr___n_kwbreak__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label433: while(false);
   tracehead = trace.prev;
@@ -12323,10 +12327,10 @@ void parser_prod___ABreakExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label434: while(false);
   tracehead = trace.prev;
@@ -12341,16 +12345,16 @@ void parser_prod___ABreakExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABreakExpr___replace_child, LOCATE_parser_prod, 5080); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[4]) /*ABreakExpr::_n_kwbreak*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwbreak, ID_TKwbreak)) /*cast TKwbreak*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABreakExpr___replace_child, LOCATE_parser_prod, 5084); nit_exit(1);}
       variable[4] = variable[0];
@@ -12363,12 +12367,12 @@ void parser_prod___ABreakExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[4]) /*ABreakExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABreakExpr___replace_child, LOCATE_parser_prod, 5094); nit_exit(1);}
       variable[4] = variable[0];
@@ -12393,19 +12397,19 @@ void parser_prod___ABreakExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label436: while(false);
   tracehead = trace.prev;
@@ -12421,19 +12425,19 @@ void parser_prod___ABreakExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[3]) /*ABreakExpr::_n_kwbreak*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABreakExpr____n_expr(variable[3]) /*ABreakExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label437: while(false);
   tracehead = trace.prev;
@@ -12463,20 +12467,20 @@ void parser_prod___ABreakExpr___init_abreakexpr(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ABreakExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ABreakExpr___empty_init))(variable[4], init_table /*YYY*/) /*ABreakExpr::empty_init*/;
+  CALL_parser_prod___ABreakExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ABreakExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ABreakExpr____n_kwbreak(variable[4]) /*ABreakExpr::_n_kwbreak*/ =  variable[1] /*n_kwbreak*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwbreak*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwbreak*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwbreak*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwbreak*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwbreak*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwbreak*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwbreak*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwbreak*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwbreak*/)( variable[1] /*n_kwbreak*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwbreak*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwbreak*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwbreak*/)( variable[1] /*n_kwbreak*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABreakExpr____n_expr(variable[4]) /*ABreakExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   return_label439: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABreakExpr].i] = 1;
@@ -12493,10 +12497,10 @@ void parser_prod___AAbortExpr___n_kwabort__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label440: while(false);
   tracehead = trace.prev;
@@ -12511,16 +12515,16 @@ void parser_prod___AAbortExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbortExpr___replace_child, LOCATE_parser_prod, 5147); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[4]) /*AAbortExpr::_n_kwabort*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwabort, ID_TKwabort)) /*cast TKwabort*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAbortExpr___replace_child, LOCATE_parser_prod, 5151); nit_exit(1);}
       variable[4] = variable[0];
@@ -12545,11 +12549,11 @@ void parser_prod___AAbortExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label442: while(false);
   tracehead = trace.prev;
@@ -12565,11 +12569,11 @@ void parser_prod___AAbortExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label443: while(false);
   tracehead = trace.prev;
@@ -12598,13 +12602,13 @@ void parser_prod___AAbortExpr___init_aabortexpr(val_t  self, val_t  param0, int*
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AAbortExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AAbortExpr___empty_init))(variable[3], init_table /*YYY*/) /*AAbortExpr::empty_init*/;
+  CALL_parser_prod___AAbortExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AAbortExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAbortExpr____n_kwabort(variable[3]) /*AAbortExpr::_n_kwabort*/ =  variable[1] /*n_kwabort*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwabort*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwabort*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwabort*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwabort*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwabort*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwabort*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwabort*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwabort*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwabort*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwabort*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwabort*/)( variable[1] /*n_kwabort*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwabort*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwabort*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwabort*/)( variable[1] /*n_kwabort*/, variable[3]) /*PNode::parent=*/;
   }
   return_label445: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAbortExpr].i] = 1;
@@ -12621,10 +12625,10 @@ void parser_prod___AContinueExpr___n_kwcontinue__eq(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label446: while(false);
   tracehead = trace.prev;
@@ -12640,10 +12644,10 @@ void parser_prod___AContinueExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label447: while(false);
   tracehead = trace.prev;
@@ -12658,16 +12662,16 @@ void parser_prod___AContinueExpr___replace_child(val_t  self, val_t  param0, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AContinueExpr___replace_child, LOCATE_parser_prod, 5210); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[4]) /*AContinueExpr::_n_kwcontinue*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwcontinue, ID_TKwcontinue)) /*cast TKwcontinue*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AContinueExpr___replace_child, LOCATE_parser_prod, 5214); nit_exit(1);}
       variable[4] = variable[0];
@@ -12680,12 +12684,12 @@ void parser_prod___AContinueExpr___replace_child(val_t  self, val_t  param0, val
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[4]) /*AContinueExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AContinueExpr___replace_child, LOCATE_parser_prod, 5224); nit_exit(1);}
       variable[4] = variable[0];
@@ -12710,19 +12714,19 @@ void parser_prod___AContinueExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label449: while(false);
   tracehead = trace.prev;
@@ -12738,19 +12742,19 @@ void parser_prod___AContinueExpr___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[3]) /*AContinueExpr::_n_kwcontinue*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AContinueExpr____n_expr(variable[3]) /*AContinueExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label450: while(false);
   tracehead = trace.prev;
@@ -12780,20 +12784,20 @@ void parser_prod___AContinueExpr___init_acontinueexpr(val_t  self, val_t  param0
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AContinueExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AContinueExpr___empty_init))(variable[4], init_table /*YYY*/) /*AContinueExpr::empty_init*/;
+  CALL_parser_prod___AContinueExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AContinueExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AContinueExpr____n_kwcontinue(variable[4]) /*AContinueExpr::_n_kwcontinue*/ =  variable[1] /*n_kwcontinue*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwcontinue*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwcontinue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwcontinue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwcontinue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwcontinue*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwcontinue*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwcontinue*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwcontinue*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwcontinue*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwcontinue*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwcontinue*/)( variable[1] /*n_kwcontinue*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwcontinue*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwcontinue*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwcontinue*/)( variable[1] /*n_kwcontinue*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AContinueExpr____n_expr(variable[4]) /*AContinueExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   return_label452: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AContinueExpr].i] = 1;
@@ -12810,10 +12814,10 @@ void parser_prod___ADoExpr___n_kwdo__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label453: while(false);
   tracehead = trace.prev;
@@ -12829,10 +12833,10 @@ void parser_prod___ADoExpr___n_block__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label454: while(false);
   tracehead = trace.prev;
@@ -12847,16 +12851,16 @@ void parser_prod___ADoExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoExpr___replace_child, LOCATE_parser_prod, 5289); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[4]) /*ADoExpr::_n_kwdo*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoExpr___replace_child, LOCATE_parser_prod, 5293); nit_exit(1);}
       variable[4] = variable[0];
@@ -12869,12 +12873,12 @@ void parser_prod___ADoExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ADoExpr____n_block(variable[4]) /*ADoExpr::_n_block*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoExpr___replace_child, LOCATE_parser_prod, 5303); nit_exit(1);}
       variable[4] = variable[0];
@@ -12899,19 +12903,19 @@ void parser_prod___ADoExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label456: while(false);
   tracehead = trace.prev;
@@ -12927,19 +12931,19 @@ void parser_prod___ADoExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ADoExpr____n_kwdo(variable[3]) /*ADoExpr::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ADoExpr____n_block(variable[3]) /*ADoExpr::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label457: while(false);
   tracehead = trace.prev;
@@ -12969,20 +12973,20 @@ void parser_prod___ADoExpr___init_adoexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ADoExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ADoExpr___empty_init))(variable[4], init_table /*YYY*/) /*ADoExpr::empty_init*/;
+  CALL_parser_prod___ADoExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ADoExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ADoExpr____n_kwdo(variable[4]) /*ADoExpr::_n_kwdo*/ =  variable[1] /*n_kwdo*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwdo*/)( variable[1] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwdo*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwdo*/)( variable[1] /*n_kwdo*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ADoExpr____n_block(variable[4]) /*ADoExpr::_n_block*/ =  variable[2] /*n_block*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_block*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_block*/)( variable[2] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_block*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_block*/)( variable[2] /*n_block*/, variable[4]) /*PNode::parent=*/;
   }
   return_label459: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoExpr].i] = 1;
@@ -12999,10 +13003,10 @@ void parser_prod___AIfExpr___n_kwif__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label460: while(false);
   tracehead = trace.prev;
@@ -13018,10 +13022,10 @@ void parser_prod___AIfExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label461: while(false);
   tracehead = trace.prev;
@@ -13037,10 +13041,10 @@ void parser_prod___AIfExpr___n_then__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label462: while(false);
   tracehead = trace.prev;
@@ -13056,10 +13060,10 @@ void parser_prod___AIfExpr___n_else__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label463: while(false);
   tracehead = trace.prev;
@@ -13074,16 +13078,16 @@ void parser_prod___AIfExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5392); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[4]) /*AIfExpr::_n_kwif*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5396); nit_exit(1);}
       variable[4] = variable[0];
@@ -13096,12 +13100,12 @@ void parser_prod___AIfExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfExpr____n_expr(variable[4]) /*AIfExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5406); nit_exit(1);}
       variable[4] = variable[0];
@@ -13114,12 +13118,12 @@ void parser_prod___AIfExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfExpr____n_then(variable[4]) /*AIfExpr::_n_then*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5416); nit_exit(1);}
       variable[4] = variable[0];
@@ -13132,12 +13136,12 @@ void parser_prod___AIfExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfExpr____n_else(variable[4]) /*AIfExpr::_n_else*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfExpr___replace_child, LOCATE_parser_prod, 5426); nit_exit(1);}
       variable[4] = variable[0];
@@ -13162,35 +13166,35 @@ void parser_prod___AIfExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label465: while(false);
   tracehead = trace.prev;
@@ -13206,35 +13210,35 @@ void parser_prod___AIfExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_kwif(variable[3]) /*AIfExpr::_n_kwif*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_expr(variable[3]) /*AIfExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_then(variable[3]) /*AIfExpr::_n_then*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfExpr____n_else(variable[3]) /*AIfExpr::_n_else*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label466: while(false);
   tracehead = trace.prev;
@@ -13266,34 +13270,34 @@ void parser_prod___AIfExpr___init_aifexpr(val_t  self, val_t  param0, val_t  par
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___AIfExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___AIfExpr___empty_init))(variable[6], init_table /*YYY*/) /*AIfExpr::empty_init*/;
+  CALL_parser_prod___AIfExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AIfExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_kwif(variable[6]) /*AIfExpr::_n_kwif*/ =  variable[1] /*n_kwif*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwif*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwif*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwif*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwif*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwif*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwif*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwif*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwif*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwif*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_expr(variable[6]) /*AIfExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_then(variable[6]) /*AIfExpr::_n_then*/ =  variable[3] /*n_then*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_then*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_then*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_then*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_then*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_then*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_then*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_then*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_then*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_then*/)( variable[3] /*n_then*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_then*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_then*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_then*/)( variable[3] /*n_then*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AIfExpr____n_else(variable[6]) /*AIfExpr::_n_else*/ =  variable[4] /*n_else*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_else*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_else*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_else*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_else*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_else*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_else*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_else*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_else*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_else*/)( variable[4] /*n_else*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_else*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_else*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_else*/)( variable[4] /*n_else*/, variable[6]) /*PNode::parent=*/;
   }
   return_label468: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfExpr].i] = 1;
@@ -13310,10 +13314,10 @@ void parser_prod___AIfexprExpr___n_kwif__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label469: while(false);
   tracehead = trace.prev;
@@ -13329,10 +13333,10 @@ void parser_prod___AIfexprExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label470: while(false);
   tracehead = trace.prev;
@@ -13348,10 +13352,10 @@ void parser_prod___AIfexprExpr___n_kwthen__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label471: while(false);
   tracehead = trace.prev;
@@ -13367,10 +13371,10 @@ void parser_prod___AIfexprExpr___n_then__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label472: while(false);
   tracehead = trace.prev;
@@ -13386,10 +13390,10 @@ void parser_prod___AIfexprExpr___n_kwelse__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label473: while(false);
   tracehead = trace.prev;
@@ -13405,10 +13409,10 @@ void parser_prod___AIfexprExpr___n_else__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label474: while(false);
   tracehead = trace.prev;
@@ -13423,16 +13427,16 @@ void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5551); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[4]) /*AIfexprExpr::_n_kwif*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwif, ID_TKwif)) /*cast TKwif*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5555); nit_exit(1);}
       variable[4] = variable[0];
@@ -13445,12 +13449,12 @@ void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[4]) /*AIfexprExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5565); nit_exit(1);}
       variable[4] = variable[0];
@@ -13463,12 +13467,12 @@ void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[4]) /*AIfexprExpr::_n_kwthen*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwthen, ID_TKwthen)) /*cast TKwthen*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5575); nit_exit(1);}
       variable[4] = variable[0];
@@ -13481,12 +13485,12 @@ void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[4]) /*AIfexprExpr::_n_then*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5585); nit_exit(1);}
       variable[4] = variable[0];
@@ -13499,12 +13503,12 @@ void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[4]) /*AIfexprExpr::_n_kwelse*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwelse, ID_TKwelse)) /*cast TKwelse*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5595); nit_exit(1);}
       variable[4] = variable[0];
@@ -13517,12 +13521,12 @@ void parser_prod___AIfexprExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[4]) /*AIfexprExpr::_n_else*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIfexprExpr___replace_child, LOCATE_parser_prod, 5605); nit_exit(1);}
       variable[4] = variable[0];
@@ -13547,51 +13551,51 @@ void parser_prod___AIfexprExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label476: while(false);
   tracehead = trace.prev;
@@ -13607,51 +13611,51 @@ void parser_prod___AIfexprExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[3]) /*AIfexprExpr::_n_kwif*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_expr(variable[3]) /*AIfexprExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[3]) /*AIfexprExpr::_n_kwthen*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_then(variable[3]) /*AIfexprExpr::_n_then*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[3]) /*AIfexprExpr::_n_kwelse*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIfexprExpr____n_else(variable[3]) /*AIfexprExpr::_n_else*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label477: while(false);
   tracehead = trace.prev;
@@ -13685,48 +13689,48 @@ void parser_prod___AIfexprExpr___init_aifexprexpr(val_t  self, val_t  param0, va
   variable[6] =  param5;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i]) return;
   variable[8] = variable[0];
-  ((parser_prod___AIfexprExpr___empty_init_t)CALL(variable[8],COLOR_parser_prod___AIfexprExpr___empty_init))(variable[8], init_table /*YYY*/) /*AIfexprExpr::empty_init*/;
+  CALL_parser_prod___AIfexprExpr___empty_init(variable[8])(variable[8], init_table /*YYY*/) /*AIfexprExpr::empty_init*/;
   variable[8] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_kwif(variable[8]) /*AIfexprExpr::_n_kwif*/ =  variable[1] /*n_kwif*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwif*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwif*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwif*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwif*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwif*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwif*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwif*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwif*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwif*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwif*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwif*/)( variable[1] /*n_kwif*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_expr(variable[8]) /*AIfexprExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_kwthen(variable[8]) /*AIfexprExpr::_n_kwthen*/ =  variable[3] /*n_kwthen*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwthen*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwthen*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwthen*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwthen*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwthen*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_kwthen*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwthen*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwthen*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwthen*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwthen*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwthen*/)( variable[3] /*n_kwthen*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_kwthen*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_kwthen*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwthen*/)( variable[3] /*n_kwthen*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_then(variable[8]) /*AIfexprExpr::_n_then*/ =  variable[4] /*n_then*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_then*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_then*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_then*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_then*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_then*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_then*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_then*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_then*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_then*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_then*/)( variable[4] /*n_then*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_then*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_then*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_then*/)( variable[4] /*n_then*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_kwelse(variable[8]) /*AIfexprExpr::_n_kwelse*/ =  variable[5] /*n_kwelse*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_kwelse*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_kwelse*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_kwelse*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_kwelse*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_kwelse*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_kwelse*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_kwelse*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_kwelse*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_kwelse*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_kwelse*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_kwelse*/)( variable[5] /*n_kwelse*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_kwelse*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_kwelse*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_kwelse*/)( variable[5] /*n_kwelse*/, variable[8]) /*PNode::parent=*/;
   }
   variable[8] = variable[0];
   ATTR_parser_nodes___AIfexprExpr____n_else(variable[8]) /*AIfexprExpr::_n_else*/ =  variable[6] /*n_else*/;
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_else*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_else*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*n_else*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*n_else*/,COLOR_kernel___Object_____eqeq))( variable[6] /*n_else*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*n_else*/ ==  NIT_NULL /*null*/) || (( variable[6] /*n_else*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*n_else*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*n_else*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*n_else*/)( variable[6] /*n_else*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n_else*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n_else*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n_else*/)( variable[6] /*n_else*/, variable[8]) /*PNode::parent=*/;
   }
   return_label479: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIfexprExpr].i] = 1;
@@ -13743,10 +13747,10 @@ void parser_prod___AWhileExpr___n_kwwhile__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label480: while(false);
   tracehead = trace.prev;
@@ -13762,10 +13766,10 @@ void parser_prod___AWhileExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label481: while(false);
   tracehead = trace.prev;
@@ -13781,10 +13785,10 @@ void parser_prod___AWhileExpr___n_kwdo__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label482: while(false);
   tracehead = trace.prev;
@@ -13800,10 +13804,10 @@ void parser_prod___AWhileExpr___n_block__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label483: while(false);
   tracehead = trace.prev;
@@ -13818,16 +13822,16 @@ void parser_prod___AWhileExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5718); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[4]) /*AWhileExpr::_n_kwwhile*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwhile, ID_TKwwhile)) /*cast TKwwhile*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5722); nit_exit(1);}
       variable[4] = variable[0];
@@ -13840,12 +13844,12 @@ void parser_prod___AWhileExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[4]) /*AWhileExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5732); nit_exit(1);}
       variable[4] = variable[0];
@@ -13858,12 +13862,12 @@ void parser_prod___AWhileExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[4]) /*AWhileExpr::_n_kwdo*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5742); nit_exit(1);}
       variable[4] = variable[0];
@@ -13876,12 +13880,12 @@ void parser_prod___AWhileExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AWhileExpr____n_block(variable[4]) /*AWhileExpr::_n_block*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AWhileExpr___replace_child, LOCATE_parser_prod, 5752); nit_exit(1);}
       variable[4] = variable[0];
@@ -13906,35 +13910,35 @@ void parser_prod___AWhileExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label485: while(false);
   tracehead = trace.prev;
@@ -13950,35 +13954,35 @@ void parser_prod___AWhileExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[3]) /*AWhileExpr::_n_kwwhile*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_expr(variable[3]) /*AWhileExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[3]) /*AWhileExpr::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AWhileExpr____n_block(variable[3]) /*AWhileExpr::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label486: while(false);
   tracehead = trace.prev;
@@ -14010,34 +14014,34 @@ void parser_prod___AWhileExpr___init_awhileexpr(val_t  self, val_t  param0, val_
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___AWhileExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___AWhileExpr___empty_init))(variable[6], init_table /*YYY*/) /*AWhileExpr::empty_init*/;
+  CALL_parser_prod___AWhileExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AWhileExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_kwwhile(variable[6]) /*AWhileExpr::_n_kwwhile*/ =  variable[1] /*n_kwwhile*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwhile*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwwhile*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwwhile*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwhile*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwwhile*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwwhile*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwhile*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwwhile*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwwhile*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwhile*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwwhile*/)( variable[1] /*n_kwwhile*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwwhile*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwwhile*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwhile*/)( variable[1] /*n_kwwhile*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_expr(variable[6]) /*AWhileExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_kwdo(variable[6]) /*AWhileExpr::_n_kwdo*/ =  variable[3] /*n_kwdo*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_kwdo*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AWhileExpr____n_block(variable[6]) /*AWhileExpr::_n_block*/ =  variable[4] /*n_block*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_block*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_block*/)( variable[4] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_block*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_block*/)( variable[4] /*n_block*/, variable[6]) /*PNode::parent=*/;
   }
   return_label488: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AWhileExpr].i] = 1;
@@ -14054,10 +14058,10 @@ void parser_prod___AForExpr___n_vardecl__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label489: while(false);
   tracehead = trace.prev;
@@ -14073,10 +14077,10 @@ void parser_prod___AForExpr___n_kwdo__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label490: while(false);
   tracehead = trace.prev;
@@ -14092,10 +14096,10 @@ void parser_prod___AForExpr___n_block__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label491: while(false);
   tracehead = trace.prev;
@@ -14110,16 +14114,16 @@ void parser_prod___AForExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5841); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[4]) /*AForExpr::_n_vardecl*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5845); nit_exit(1);}
       variable[4] = variable[0];
@@ -14132,12 +14136,12 @@ void parser_prod___AForExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[4]) /*AForExpr::_n_kwdo*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5855); nit_exit(1);}
       variable[4] = variable[0];
@@ -14150,12 +14154,12 @@ void parser_prod___AForExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AForExpr____n_block(variable[4]) /*AForExpr::_n_block*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForExpr___replace_child, LOCATE_parser_prod, 5865); nit_exit(1);}
       variable[4] = variable[0];
@@ -14180,27 +14184,27 @@ void parser_prod___AForExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label493: while(false);
   tracehead = trace.prev;
@@ -14216,27 +14220,27 @@ void parser_prod___AForExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForExpr____n_vardecl(variable[3]) /*AForExpr::_n_vardecl*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForExpr____n_kwdo(variable[3]) /*AForExpr::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForExpr____n_block(variable[3]) /*AForExpr::_n_block*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label494: while(false);
   tracehead = trace.prev;
@@ -14267,27 +14271,27 @@ void parser_prod___AForExpr___init_aforexpr(val_t  self, val_t  param0, val_t  p
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AForExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___AForExpr___empty_init))(variable[5], init_table /*YYY*/) /*AForExpr::empty_init*/;
+  CALL_parser_prod___AForExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AForExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AForExpr____n_vardecl(variable[5]) /*AForExpr::_n_vardecl*/ =  variable[1] /*n_vardecl*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_vardecl*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_vardecl*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_vardecl*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_vardecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_vardecl*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_vardecl*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_vardecl*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_vardecl*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_vardecl*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_vardecl*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_vardecl*/)( variable[1] /*n_vardecl*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_vardecl*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_vardecl*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_vardecl*/)( variable[1] /*n_vardecl*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AForExpr____n_kwdo(variable[5]) /*AForExpr::_n_kwdo*/ =  variable[2] /*n_kwdo*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwdo*/)( variable[2] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwdo*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwdo*/)( variable[2] /*n_kwdo*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AForExpr____n_block(variable[5]) /*AForExpr::_n_block*/ =  variable[3] /*n_block*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_block*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_block*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_block*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_block*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_block*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_block*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_block*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_block*/)( variable[3] /*n_block*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_block*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_block*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_block*/)( variable[3] /*n_block*/, variable[5]) /*PNode::parent=*/;
   }
   return_label496: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForExpr].i] = 1;
@@ -14304,10 +14308,10 @@ void parser_prod___AForVardeclExpr___n_kwfor__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label497: while(false);
   tracehead = trace.prev;
@@ -14323,10 +14327,10 @@ void parser_prod___AForVardeclExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label498: while(false);
   tracehead = trace.prev;
@@ -14342,10 +14346,10 @@ void parser_prod___AForVardeclExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label499: while(false);
   tracehead = trace.prev;
@@ -14360,16 +14364,16 @@ void parser_prod___AForVardeclExpr___replace_child(val_t  self, val_t  param0, v
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5948); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[4]) /*AForVardeclExpr::_n_kwfor*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwfor, ID_TKwfor)) /*cast TKwfor*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5952); nit_exit(1);}
       variable[4] = variable[0];
@@ -14382,12 +14386,12 @@ void parser_prod___AForVardeclExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[4]) /*AForVardeclExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5962); nit_exit(1);}
       variable[4] = variable[0];
@@ -14400,12 +14404,12 @@ void parser_prod___AForVardeclExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[4]) /*AForVardeclExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AForVardeclExpr___replace_child, LOCATE_parser_prod, 5972); nit_exit(1);}
       variable[4] = variable[0];
@@ -14430,27 +14434,27 @@ void parser_prod___AForVardeclExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label501: while(false);
   tracehead = trace.prev;
@@ -14466,27 +14470,27 @@ void parser_prod___AForVardeclExpr___visit_all_reverse(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[3]) /*AForVardeclExpr::_n_kwfor*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_id(variable[3]) /*AForVardeclExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[3]) /*AForVardeclExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label502: while(false);
   tracehead = trace.prev;
@@ -14517,27 +14521,27 @@ void parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t  self, val_t  pa
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForVardeclExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AForVardeclExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___AForVardeclExpr___empty_init))(variable[5], init_table /*YYY*/) /*AForVardeclExpr::empty_init*/;
+  CALL_parser_prod___AForVardeclExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AForVardeclExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AForVardeclExpr____n_kwfor(variable[5]) /*AForVardeclExpr::_n_kwfor*/ =  variable[1] /*n_kwfor*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwfor*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwfor*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwfor*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwfor*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwfor*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwfor*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwfor*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwfor*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwfor*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwfor*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwfor*/)( variable[1] /*n_kwfor*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwfor*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwfor*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwfor*/)( variable[1] /*n_kwfor*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AForVardeclExpr____n_id(variable[5]) /*AForVardeclExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AForVardeclExpr____n_expr(variable[5]) /*AForVardeclExpr::_n_expr*/ =  variable[3] /*n_expr*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_expr*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, variable[5]) /*PNode::parent=*/;
   }
   return_label504: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AForVardeclExpr].i] = 1;
@@ -14554,10 +14558,10 @@ void parser_prod___AAssertExpr___n_kwassert__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label505: while(false);
   tracehead = trace.prev;
@@ -14573,10 +14577,10 @@ void parser_prod___AAssertExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label506: while(false);
   tracehead = trace.prev;
@@ -14592,10 +14596,10 @@ void parser_prod___AAssertExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label507: while(false);
   tracehead = trace.prev;
@@ -14610,16 +14614,16 @@ void parser_prod___AAssertExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6055); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[4]) /*AAssertExpr::_n_kwassert*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwassert, ID_TKwassert)) /*cast TKwassert*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6059); nit_exit(1);}
       variable[4] = variable[0];
@@ -14632,12 +14636,12 @@ void parser_prod___AAssertExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssertExpr____n_id(variable[4]) /*AAssertExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6069); nit_exit(1);}
       variable[4] = variable[0];
@@ -14650,12 +14654,12 @@ void parser_prod___AAssertExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[4]) /*AAssertExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAssertExpr___replace_child, LOCATE_parser_prod, 6079); nit_exit(1);}
       variable[4] = variable[0];
@@ -14680,27 +14684,27 @@ void parser_prod___AAssertExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label509: while(false);
   tracehead = trace.prev;
@@ -14716,27 +14720,27 @@ void parser_prod___AAssertExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[3]) /*AAssertExpr::_n_kwassert*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssertExpr____n_id(variable[3]) /*AAssertExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssertExpr____n_expr(variable[3]) /*AAssertExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label510: while(false);
   tracehead = trace.prev;
@@ -14767,27 +14771,27 @@ void parser_prod___AAssertExpr___init_aassertexpr(val_t  self, val_t  param0, va
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AAssertExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___AAssertExpr___empty_init))(variable[5], init_table /*YYY*/) /*AAssertExpr::empty_init*/;
+  CALL_parser_prod___AAssertExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AAssertExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AAssertExpr____n_kwassert(variable[5]) /*AAssertExpr::_n_kwassert*/ =  variable[1] /*n_kwassert*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwassert*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwassert*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwassert*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwassert*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwassert*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwassert*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwassert*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwassert*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwassert*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwassert*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwassert*/)( variable[1] /*n_kwassert*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwassert*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwassert*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwassert*/)( variable[1] /*n_kwassert*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AAssertExpr____n_id(variable[5]) /*AAssertExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AAssertExpr____n_expr(variable[5]) /*AAssertExpr::_n_expr*/ =  variable[3] /*n_expr*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_expr*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_expr*/)( variable[3] /*n_expr*/, variable[5]) /*PNode::parent=*/;
   }
   return_label512: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAssertExpr].i] = 1;
@@ -14804,10 +14808,10 @@ void parser_prod___AOnceExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label513: while(false);
   tracehead = trace.prev;
@@ -14823,10 +14827,10 @@ void parser_prod___AOnceExpr___n_kwonce__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label514: while(false);
   tracehead = trace.prev;
@@ -14841,16 +14845,16 @@ void parser_prod___AOnceExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOnceExpr___replace_child, LOCATE_parser_prod, 6150); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[4]) /*AOnceExpr::_n_kwonce*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwonce, ID_TKwonce)) /*cast TKwonce*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOnceExpr___replace_child, LOCATE_parser_prod, 6154); nit_exit(1);}
       variable[4] = variable[0];
@@ -14863,12 +14867,12 @@ void parser_prod___AOnceExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOnceExpr___replace_child, LOCATE_parser_prod, 6164); nit_exit(1);}
       variable[4] = variable[0];
@@ -14893,19 +14897,19 @@ void parser_prod___AOnceExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label516: while(false);
   tracehead = trace.prev;
@@ -14921,19 +14925,19 @@ void parser_prod___AOnceExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[3]) /*AOnceExpr::_n_kwonce*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label517: while(false);
   tracehead = trace.prev;
@@ -14963,20 +14967,20 @@ void parser_prod___AOnceExpr___init_aonceexpr(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AOnceExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AOnceExpr___empty_init))(variable[4], init_table /*YYY*/) /*AOnceExpr::empty_init*/;
+  CALL_parser_prod___AOnceExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AOnceExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AOnceExpr____n_kwonce(variable[4]) /*AOnceExpr::_n_kwonce*/ =  variable[1] /*n_kwonce*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwonce*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwonce*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwonce*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwonce*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwonce*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwonce*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwonce*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwonce*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwonce*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwonce*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwonce*/)( variable[1] /*n_kwonce*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwonce*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwonce*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwonce*/)( variable[1] /*n_kwonce*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   return_label519: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOnceExpr].i] = 1;
@@ -14993,10 +14997,10 @@ void parser_prod___ASendExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label520: while(false);
   tracehead = trace.prev;
@@ -15011,16 +15015,16 @@ void parser_prod___ASendExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASendExpr___replace_child, LOCATE_parser_prod, 6217); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASendExpr___replace_child, LOCATE_parser_prod, 6221); nit_exit(1);}
       variable[4] = variable[0];
@@ -15045,11 +15049,11 @@ void parser_prod___ASendExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label522: while(false);
   tracehead = trace.prev;
@@ -15065,11 +15069,11 @@ void parser_prod___ASendExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label523: while(false);
   tracehead = trace.prev;
@@ -15098,13 +15102,13 @@ void parser_prod___ASendExpr___init_asendexpr(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ASendExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___ASendExpr___empty_init))(variable[3], init_table /*YYY*/) /*ASendExpr::empty_init*/;
+  CALL_parser_prod___ASendExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASendExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[3]) /*PNode::parent=*/;
   }
   return_label525: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASendExpr].i] = 1;
@@ -15121,10 +15125,10 @@ void parser_prod___ABinopExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label526: while(false);
   tracehead = trace.prev;
@@ -15140,10 +15144,10 @@ void parser_prod___ABinopExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label527: while(false);
   tracehead = trace.prev;
@@ -15158,16 +15162,16 @@ void parser_prod___ABinopExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABinopExpr___replace_child, LOCATE_parser_prod, 6280); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABinopExpr___replace_child, LOCATE_parser_prod, 6284); nit_exit(1);}
       variable[4] = variable[0];
@@ -15180,12 +15184,12 @@ void parser_prod___ABinopExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABinopExpr___replace_child, LOCATE_parser_prod, 6294); nit_exit(1);}
       variable[4] = variable[0];
@@ -15210,19 +15214,19 @@ void parser_prod___ABinopExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label529: while(false);
   tracehead = trace.prev;
@@ -15238,19 +15242,19 @@ void parser_prod___ABinopExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label530: while(false);
   tracehead = trace.prev;
@@ -15280,20 +15284,20 @@ void parser_prod___ABinopExpr___init_abinopexpr(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ABinopExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ABinopExpr___empty_init))(variable[4], init_table /*YYY*/) /*ABinopExpr::empty_init*/;
+  CALL_parser_prod___ABinopExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ABinopExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label532: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABinopExpr].i] = 1;
@@ -15310,10 +15314,10 @@ void parser_prod___AOrExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label533: while(false);
   tracehead = trace.prev;
@@ -15329,10 +15333,10 @@ void parser_prod___AOrExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label534: while(false);
   tracehead = trace.prev;
@@ -15347,16 +15351,16 @@ void parser_prod___AOrExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrExpr___replace_child, LOCATE_parser_prod, 6359); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AOrExpr____n_expr(variable[4]) /*AOrExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrExpr___replace_child, LOCATE_parser_prod, 6363); nit_exit(1);}
       variable[4] = variable[0];
@@ -15369,12 +15373,12 @@ void parser_prod___AOrExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[4]) /*AOrExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrExpr___replace_child, LOCATE_parser_prod, 6373); nit_exit(1);}
       variable[4] = variable[0];
@@ -15399,19 +15403,19 @@ void parser_prod___AOrExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label536: while(false);
   tracehead = trace.prev;
@@ -15427,19 +15431,19 @@ void parser_prod___AOrExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AOrExpr____n_expr(variable[3]) /*AOrExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AOrExpr____n_expr2(variable[3]) /*AOrExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label537: while(false);
   tracehead = trace.prev;
@@ -15469,20 +15473,20 @@ void parser_prod___AOrExpr___init_aorexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AOrExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AOrExpr___empty_init))(variable[4], init_table /*YYY*/) /*AOrExpr::empty_init*/;
+  CALL_parser_prod___AOrExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AOrExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AOrExpr____n_expr(variable[4]) /*AOrExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AOrExpr____n_expr2(variable[4]) /*AOrExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label539: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrExpr].i] = 1;
@@ -15499,10 +15503,10 @@ void parser_prod___AAndExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label540: while(false);
   tracehead = trace.prev;
@@ -15518,10 +15522,10 @@ void parser_prod___AAndExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label541: while(false);
   tracehead = trace.prev;
@@ -15536,16 +15540,16 @@ void parser_prod___AAndExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAndExpr___replace_child, LOCATE_parser_prod, 6438); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAndExpr____n_expr(variable[4]) /*AAndExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAndExpr___replace_child, LOCATE_parser_prod, 6442); nit_exit(1);}
       variable[4] = variable[0];
@@ -15558,12 +15562,12 @@ void parser_prod___AAndExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[4]) /*AAndExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAndExpr___replace_child, LOCATE_parser_prod, 6452); nit_exit(1);}
       variable[4] = variable[0];
@@ -15588,19 +15592,19 @@ void parser_prod___AAndExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label543: while(false);
   tracehead = trace.prev;
@@ -15616,19 +15620,19 @@ void parser_prod___AAndExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAndExpr____n_expr(variable[3]) /*AAndExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAndExpr____n_expr2(variable[3]) /*AAndExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label544: while(false);
   tracehead = trace.prev;
@@ -15658,20 +15662,20 @@ void parser_prod___AAndExpr___init_aandexpr(val_t  self, val_t  param0, val_t  p
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AAndExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AAndExpr___empty_init))(variable[4], init_table /*YYY*/) /*AAndExpr::empty_init*/;
+  CALL_parser_prod___AAndExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAndExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AAndExpr____n_expr(variable[4]) /*AAndExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AAndExpr____n_expr2(variable[4]) /*AAndExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label546: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAndExpr].i] = 1;
@@ -15688,10 +15692,10 @@ void parser_prod___ANotExpr___n_kwnot__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label547: while(false);
   tracehead = trace.prev;
@@ -15707,10 +15711,10 @@ void parser_prod___ANotExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label548: while(false);
   tracehead = trace.prev;
@@ -15725,16 +15729,16 @@ void parser_prod___ANotExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANotExpr___replace_child, LOCATE_parser_prod, 6517); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[4]) /*ANotExpr::_n_kwnot*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnot, ID_TKwnot)) /*cast TKwnot*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANotExpr___replace_child, LOCATE_parser_prod, 6521); nit_exit(1);}
       variable[4] = variable[0];
@@ -15747,12 +15751,12 @@ void parser_prod___ANotExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANotExpr____n_expr(variable[4]) /*ANotExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANotExpr___replace_child, LOCATE_parser_prod, 6531); nit_exit(1);}
       variable[4] = variable[0];
@@ -15777,19 +15781,19 @@ void parser_prod___ANotExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label550: while(false);
   tracehead = trace.prev;
@@ -15805,19 +15809,19 @@ void parser_prod___ANotExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANotExpr____n_kwnot(variable[3]) /*ANotExpr::_n_kwnot*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANotExpr____n_expr(variable[3]) /*ANotExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label551: while(false);
   tracehead = trace.prev;
@@ -15847,20 +15851,20 @@ void parser_prod___ANotExpr___init_anotexpr(val_t  self, val_t  param0, val_t  p
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ANotExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ANotExpr___empty_init))(variable[4], init_table /*YYY*/) /*ANotExpr::empty_init*/;
+  CALL_parser_prod___ANotExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ANotExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ANotExpr____n_kwnot(variable[4]) /*ANotExpr::_n_kwnot*/ =  variable[1] /*n_kwnot*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnot*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwnot*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwnot*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnot*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwnot*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwnot*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnot*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwnot*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwnot*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnot*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwnot*/)( variable[1] /*n_kwnot*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwnot*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwnot*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnot*/)( variable[1] /*n_kwnot*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ANotExpr____n_expr(variable[4]) /*ANotExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   return_label553: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANotExpr].i] = 1;
@@ -15877,10 +15881,10 @@ void parser_prod___AEqExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label554: while(false);
   tracehead = trace.prev;
@@ -15896,10 +15900,10 @@ void parser_prod___AEqExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label555: while(false);
   tracehead = trace.prev;
@@ -15914,16 +15918,16 @@ void parser_prod___AEqExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqExpr___replace_child, LOCATE_parser_prod, 6596); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqExpr___replace_child, LOCATE_parser_prod, 6600); nit_exit(1);}
       variable[4] = variable[0];
@@ -15936,12 +15940,12 @@ void parser_prod___AEqExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEqExpr___replace_child, LOCATE_parser_prod, 6610); nit_exit(1);}
       variable[4] = variable[0];
@@ -15966,19 +15970,19 @@ void parser_prod___AEqExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label557: while(false);
   tracehead = trace.prev;
@@ -15994,19 +15998,19 @@ void parser_prod___AEqExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label558: while(false);
   tracehead = trace.prev;
@@ -16036,20 +16040,20 @@ void parser_prod___AEqExpr___init_aeqexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AEqExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AEqExpr___empty_init))(variable[4], init_table /*YYY*/) /*AEqExpr::empty_init*/;
+  CALL_parser_prod___AEqExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AEqExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label560: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEqExpr].i] = 1;
@@ -16066,10 +16070,10 @@ void parser_prod___AEeExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label561: while(false);
   tracehead = trace.prev;
@@ -16085,10 +16089,10 @@ void parser_prod___AEeExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label562: while(false);
   tracehead = trace.prev;
@@ -16103,16 +16107,16 @@ void parser_prod___AEeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEeExpr___replace_child, LOCATE_parser_prod, 6675); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AEeExpr____n_expr(variable[4]) /*AEeExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEeExpr___replace_child, LOCATE_parser_prod, 6679); nit_exit(1);}
       variable[4] = variable[0];
@@ -16125,12 +16129,12 @@ void parser_prod___AEeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[4]) /*AEeExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEeExpr___replace_child, LOCATE_parser_prod, 6689); nit_exit(1);}
       variable[4] = variable[0];
@@ -16155,19 +16159,19 @@ void parser_prod___AEeExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label564: while(false);
   tracehead = trace.prev;
@@ -16183,19 +16187,19 @@ void parser_prod___AEeExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEeExpr____n_expr(variable[3]) /*AEeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEeExpr____n_expr2(variable[3]) /*AEeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label565: while(false);
   tracehead = trace.prev;
@@ -16225,20 +16229,20 @@ void parser_prod___AEeExpr___init_aeeexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AEeExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AEeExpr___empty_init))(variable[4], init_table /*YYY*/) /*AEeExpr::empty_init*/;
+  CALL_parser_prod___AEeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AEeExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AEeExpr____n_expr(variable[4]) /*AEeExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AEeExpr____n_expr2(variable[4]) /*AEeExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label567: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEeExpr].i] = 1;
@@ -16255,10 +16259,10 @@ void parser_prod___ANeExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label568: while(false);
   tracehead = trace.prev;
@@ -16274,10 +16278,10 @@ void parser_prod___ANeExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label569: while(false);
   tracehead = trace.prev;
@@ -16292,16 +16296,16 @@ void parser_prod___ANeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeExpr___replace_child, LOCATE_parser_prod, 6754); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeExpr___replace_child, LOCATE_parser_prod, 6758); nit_exit(1);}
       variable[4] = variable[0];
@@ -16314,12 +16318,12 @@ void parser_prod___ANeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANeExpr___replace_child, LOCATE_parser_prod, 6768); nit_exit(1);}
       variable[4] = variable[0];
@@ -16344,19 +16348,19 @@ void parser_prod___ANeExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label571: while(false);
   tracehead = trace.prev;
@@ -16372,19 +16376,19 @@ void parser_prod___ANeExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label572: while(false);
   tracehead = trace.prev;
@@ -16414,20 +16418,20 @@ void parser_prod___ANeExpr___init_aneexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ANeExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ANeExpr___empty_init))(variable[4], init_table /*YYY*/) /*ANeExpr::empty_init*/;
+  CALL_parser_prod___ANeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ANeExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label574: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANeExpr].i] = 1;
@@ -16444,10 +16448,10 @@ void parser_prod___ALtExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label575: while(false);
   tracehead = trace.prev;
@@ -16463,10 +16467,10 @@ void parser_prod___ALtExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label576: while(false);
   tracehead = trace.prev;
@@ -16481,16 +16485,16 @@ void parser_prod___ALtExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtExpr___replace_child, LOCATE_parser_prod, 6833); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtExpr___replace_child, LOCATE_parser_prod, 6837); nit_exit(1);}
       variable[4] = variable[0];
@@ -16503,12 +16507,12 @@ void parser_prod___ALtExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALtExpr___replace_child, LOCATE_parser_prod, 6847); nit_exit(1);}
       variable[4] = variable[0];
@@ -16533,19 +16537,19 @@ void parser_prod___ALtExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label578: while(false);
   tracehead = trace.prev;
@@ -16561,19 +16565,19 @@ void parser_prod___ALtExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label579: while(false);
   tracehead = trace.prev;
@@ -16603,20 +16607,20 @@ void parser_prod___ALtExpr___init_altexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ALtExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ALtExpr___empty_init))(variable[4], init_table /*YYY*/) /*ALtExpr::empty_init*/;
+  CALL_parser_prod___ALtExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ALtExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label581: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALtExpr].i] = 1;
@@ -16633,10 +16637,10 @@ void parser_prod___ALeExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label582: while(false);
   tracehead = trace.prev;
@@ -16652,10 +16656,10 @@ void parser_prod___ALeExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label583: while(false);
   tracehead = trace.prev;
@@ -16670,16 +16674,16 @@ void parser_prod___ALeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeExpr___replace_child, LOCATE_parser_prod, 6912); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeExpr___replace_child, LOCATE_parser_prod, 6916); nit_exit(1);}
       variable[4] = variable[0];
@@ -16692,12 +16696,12 @@ void parser_prod___ALeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ALeExpr___replace_child, LOCATE_parser_prod, 6926); nit_exit(1);}
       variable[4] = variable[0];
@@ -16722,19 +16726,19 @@ void parser_prod___ALeExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label585: while(false);
   tracehead = trace.prev;
@@ -16750,19 +16754,19 @@ void parser_prod___ALeExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label586: while(false);
   tracehead = trace.prev;
@@ -16792,20 +16796,20 @@ void parser_prod___ALeExpr___init_aleexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ALeExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ALeExpr___empty_init))(variable[4], init_table /*YYY*/) /*ALeExpr::empty_init*/;
+  CALL_parser_prod___ALeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ALeExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label588: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ALeExpr].i] = 1;
@@ -16822,10 +16826,10 @@ void parser_prod___AGtExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label589: while(false);
   tracehead = trace.prev;
@@ -16841,10 +16845,10 @@ void parser_prod___AGtExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label590: while(false);
   tracehead = trace.prev;
@@ -16859,16 +16863,16 @@ void parser_prod___AGtExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtExpr___replace_child, LOCATE_parser_prod, 6991); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtExpr___replace_child, LOCATE_parser_prod, 6995); nit_exit(1);}
       variable[4] = variable[0];
@@ -16881,12 +16885,12 @@ void parser_prod___AGtExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGtExpr___replace_child, LOCATE_parser_prod, 7005); nit_exit(1);}
       variable[4] = variable[0];
@@ -16911,19 +16915,19 @@ void parser_prod___AGtExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label592: while(false);
   tracehead = trace.prev;
@@ -16939,19 +16943,19 @@ void parser_prod___AGtExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label593: while(false);
   tracehead = trace.prev;
@@ -16981,20 +16985,20 @@ void parser_prod___AGtExpr___init_agtexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AGtExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AGtExpr___empty_init))(variable[4], init_table /*YYY*/) /*AGtExpr::empty_init*/;
+  CALL_parser_prod___AGtExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AGtExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label595: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGtExpr].i] = 1;
@@ -17011,10 +17015,10 @@ void parser_prod___AGeExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label596: while(false);
   tracehead = trace.prev;
@@ -17030,10 +17034,10 @@ void parser_prod___AGeExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label597: while(false);
   tracehead = trace.prev;
@@ -17048,16 +17052,16 @@ void parser_prod___AGeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeExpr___replace_child, LOCATE_parser_prod, 7070); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeExpr___replace_child, LOCATE_parser_prod, 7074); nit_exit(1);}
       variable[4] = variable[0];
@@ -17070,12 +17074,12 @@ void parser_prod___AGeExpr___replace_child(val_t  self, val_t  param0, val_t  pa
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AGeExpr___replace_child, LOCATE_parser_prod, 7084); nit_exit(1);}
       variable[4] = variable[0];
@@ -17100,19 +17104,19 @@ void parser_prod___AGeExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label599: while(false);
   tracehead = trace.prev;
@@ -17128,19 +17132,19 @@ void parser_prod___AGeExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label600: while(false);
   tracehead = trace.prev;
@@ -17170,20 +17174,20 @@ void parser_prod___AGeExpr___init_ageexpr(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AGeExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AGeExpr___empty_init))(variable[4], init_table /*YYY*/) /*AGeExpr::empty_init*/;
+  CALL_parser_prod___AGeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AGeExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label602: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AGeExpr].i] = 1;
@@ -17200,10 +17204,10 @@ void parser_prod___AIsaExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label603: while(false);
   tracehead = trace.prev;
@@ -17219,10 +17223,10 @@ void parser_prod___AIsaExpr___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label604: while(false);
   tracehead = trace.prev;
@@ -17237,16 +17241,16 @@ void parser_prod___AIsaExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIsaExpr___replace_child, LOCATE_parser_prod, 7149); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[4]) /*AIsaExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIsaExpr___replace_child, LOCATE_parser_prod, 7153); nit_exit(1);}
       variable[4] = variable[0];
@@ -17259,12 +17263,12 @@ void parser_prod___AIsaExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIsaExpr____n_type(variable[4]) /*AIsaExpr::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIsaExpr___replace_child, LOCATE_parser_prod, 7163); nit_exit(1);}
       variable[4] = variable[0];
@@ -17289,19 +17293,19 @@ void parser_prod___AIsaExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label606: while(false);
   tracehead = trace.prev;
@@ -17317,19 +17321,19 @@ void parser_prod___AIsaExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIsaExpr____n_expr(variable[3]) /*AIsaExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIsaExpr____n_type(variable[3]) /*AIsaExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label607: while(false);
   tracehead = trace.prev;
@@ -17359,20 +17363,20 @@ void parser_prod___AIsaExpr___init_aisaexpr(val_t  self, val_t  param0, val_t  p
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AIsaExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AIsaExpr___empty_init))(variable[4], init_table /*YYY*/) /*AIsaExpr::empty_init*/;
+  CALL_parser_prod___AIsaExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AIsaExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AIsaExpr____n_expr(variable[4]) /*AIsaExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AIsaExpr____n_type(variable[4]) /*AIsaExpr::_n_type*/ =  variable[2] /*n_type*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[4]) /*PNode::parent=*/;
   }
   return_label609: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIsaExpr].i] = 1;
@@ -17389,10 +17393,10 @@ void parser_prod___APlusExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label610: while(false);
   tracehead = trace.prev;
@@ -17408,10 +17412,10 @@ void parser_prod___APlusExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label611: while(false);
   tracehead = trace.prev;
@@ -17426,16 +17430,16 @@ void parser_prod___APlusExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusExpr___replace_child, LOCATE_parser_prod, 7228); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusExpr___replace_child, LOCATE_parser_prod, 7232); nit_exit(1);}
       variable[4] = variable[0];
@@ -17448,12 +17452,12 @@ void parser_prod___APlusExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusExpr___replace_child, LOCATE_parser_prod, 7242); nit_exit(1);}
       variable[4] = variable[0];
@@ -17478,19 +17482,19 @@ void parser_prod___APlusExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label613: while(false);
   tracehead = trace.prev;
@@ -17506,19 +17510,19 @@ void parser_prod___APlusExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label614: while(false);
   tracehead = trace.prev;
@@ -17548,20 +17552,20 @@ void parser_prod___APlusExpr___init_aplusexpr(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___APlusExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___APlusExpr___empty_init))(variable[4], init_table /*YYY*/) /*APlusExpr::empty_init*/;
+  CALL_parser_prod___APlusExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*APlusExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label616: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusExpr].i] = 1;
@@ -17578,10 +17582,10 @@ void parser_prod___AMinusExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label617: while(false);
   tracehead = trace.prev;
@@ -17597,10 +17601,10 @@ void parser_prod___AMinusExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label618: while(false);
   tracehead = trace.prev;
@@ -17615,16 +17619,16 @@ void parser_prod___AMinusExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusExpr___replace_child, LOCATE_parser_prod, 7307); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusExpr___replace_child, LOCATE_parser_prod, 7311); nit_exit(1);}
       variable[4] = variable[0];
@@ -17637,12 +17641,12 @@ void parser_prod___AMinusExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusExpr___replace_child, LOCATE_parser_prod, 7321); nit_exit(1);}
       variable[4] = variable[0];
@@ -17667,19 +17671,19 @@ void parser_prod___AMinusExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label620: while(false);
   tracehead = trace.prev;
@@ -17695,19 +17699,19 @@ void parser_prod___AMinusExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label621: while(false);
   tracehead = trace.prev;
@@ -17737,20 +17741,20 @@ void parser_prod___AMinusExpr___init_aminusexpr(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AMinusExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AMinusExpr___empty_init))(variable[4], init_table /*YYY*/) /*AMinusExpr::empty_init*/;
+  CALL_parser_prod___AMinusExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AMinusExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label623: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusExpr].i] = 1;
@@ -17767,10 +17771,10 @@ void parser_prod___AStarshipExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label624: while(false);
   tracehead = trace.prev;
@@ -17786,10 +17790,10 @@ void parser_prod___AStarshipExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label625: while(false);
   tracehead = trace.prev;
@@ -17804,16 +17808,16 @@ void parser_prod___AStarshipExpr___replace_child(val_t  self, val_t  param0, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipExpr___replace_child, LOCATE_parser_prod, 7386); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipExpr___replace_child, LOCATE_parser_prod, 7390); nit_exit(1);}
       variable[4] = variable[0];
@@ -17826,12 +17830,12 @@ void parser_prod___AStarshipExpr___replace_child(val_t  self, val_t  param0, val
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarshipExpr___replace_child, LOCATE_parser_prod, 7400); nit_exit(1);}
       variable[4] = variable[0];
@@ -17856,19 +17860,19 @@ void parser_prod___AStarshipExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label627: while(false);
   tracehead = trace.prev;
@@ -17884,19 +17888,19 @@ void parser_prod___AStarshipExpr___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label628: while(false);
   tracehead = trace.prev;
@@ -17926,20 +17930,20 @@ void parser_prod___AStarshipExpr___init_astarshipexpr(val_t  self, val_t  param0
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AStarshipExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AStarshipExpr___empty_init))(variable[4], init_table /*YYY*/) /*AStarshipExpr::empty_init*/;
+  CALL_parser_prod___AStarshipExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AStarshipExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label630: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarshipExpr].i] = 1;
@@ -17956,10 +17960,10 @@ void parser_prod___AStarExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label631: while(false);
   tracehead = trace.prev;
@@ -17975,10 +17979,10 @@ void parser_prod___AStarExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label632: while(false);
   tracehead = trace.prev;
@@ -17993,16 +17997,16 @@ void parser_prod___AStarExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarExpr___replace_child, LOCATE_parser_prod, 7465); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarExpr___replace_child, LOCATE_parser_prod, 7469); nit_exit(1);}
       variable[4] = variable[0];
@@ -18015,12 +18019,12 @@ void parser_prod___AStarExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStarExpr___replace_child, LOCATE_parser_prod, 7479); nit_exit(1);}
       variable[4] = variable[0];
@@ -18045,19 +18049,19 @@ void parser_prod___AStarExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label634: while(false);
   tracehead = trace.prev;
@@ -18073,19 +18077,19 @@ void parser_prod___AStarExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label635: while(false);
   tracehead = trace.prev;
@@ -18115,20 +18119,20 @@ void parser_prod___AStarExpr___init_astarexpr(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AStarExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AStarExpr___empty_init))(variable[4], init_table /*YYY*/) /*AStarExpr::empty_init*/;
+  CALL_parser_prod___AStarExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AStarExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label637: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStarExpr].i] = 1;
@@ -18145,10 +18149,10 @@ void parser_prod___ASlashExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label638: while(false);
   tracehead = trace.prev;
@@ -18164,10 +18168,10 @@ void parser_prod___ASlashExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label639: while(false);
   tracehead = trace.prev;
@@ -18182,16 +18186,16 @@ void parser_prod___ASlashExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashExpr___replace_child, LOCATE_parser_prod, 7544); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashExpr___replace_child, LOCATE_parser_prod, 7548); nit_exit(1);}
       variable[4] = variable[0];
@@ -18204,12 +18208,12 @@ void parser_prod___ASlashExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASlashExpr___replace_child, LOCATE_parser_prod, 7558); nit_exit(1);}
       variable[4] = variable[0];
@@ -18234,19 +18238,19 @@ void parser_prod___ASlashExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label641: while(false);
   tracehead = trace.prev;
@@ -18262,19 +18266,19 @@ void parser_prod___ASlashExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label642: while(false);
   tracehead = trace.prev;
@@ -18304,20 +18308,20 @@ void parser_prod___ASlashExpr___init_aslashexpr(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ASlashExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ASlashExpr___empty_init))(variable[4], init_table /*YYY*/) /*ASlashExpr::empty_init*/;
+  CALL_parser_prod___ASlashExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ASlashExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label644: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASlashExpr].i] = 1;
@@ -18334,10 +18338,10 @@ void parser_prod___APercentExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label645: while(false);
   tracehead = trace.prev;
@@ -18353,10 +18357,10 @@ void parser_prod___APercentExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label646: while(false);
   tracehead = trace.prev;
@@ -18371,16 +18375,16 @@ void parser_prod___APercentExpr___replace_child(val_t  self, val_t  param0, val_
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentExpr___replace_child, LOCATE_parser_prod, 7623); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentExpr___replace_child, LOCATE_parser_prod, 7627); nit_exit(1);}
       variable[4] = variable[0];
@@ -18393,12 +18397,12 @@ void parser_prod___APercentExpr___replace_child(val_t  self, val_t  param0, val_
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APercentExpr___replace_child, LOCATE_parser_prod, 7637); nit_exit(1);}
       variable[4] = variable[0];
@@ -18423,19 +18427,19 @@ void parser_prod___APercentExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label648: while(false);
   tracehead = trace.prev;
@@ -18451,19 +18455,19 @@ void parser_prod___APercentExpr___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ABinopExpr____n_expr2(variable[3]) /*ABinopExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label649: while(false);
   tracehead = trace.prev;
@@ -18493,20 +18497,20 @@ void parser_prod___APercentExpr___init_apercentexpr(val_t  self, val_t  param0,
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___APercentExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___APercentExpr___empty_init))(variable[4], init_table /*YYY*/) /*APercentExpr::empty_init*/;
+  CALL_parser_prod___APercentExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*APercentExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ABinopExpr____n_expr2(variable[4]) /*ABinopExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label651: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APercentExpr].i] = 1;
@@ -18523,10 +18527,10 @@ void parser_prod___AUminusExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label652: while(false);
   tracehead = trace.prev;
@@ -18542,10 +18546,10 @@ void parser_prod___AUminusExpr___n_minus__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label653: while(false);
   tracehead = trace.prev;
@@ -18560,16 +18564,16 @@ void parser_prod___AUminusExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUminusExpr___replace_child, LOCATE_parser_prod, 7702); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[4]) /*AUminusExpr::_n_minus*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinus, ID_TMinus)) /*cast TMinus*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUminusExpr___replace_child, LOCATE_parser_prod, 7706); nit_exit(1);}
       variable[4] = variable[0];
@@ -18582,12 +18586,12 @@ void parser_prod___AUminusExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AUminusExpr___replace_child, LOCATE_parser_prod, 7716); nit_exit(1);}
       variable[4] = variable[0];
@@ -18612,19 +18616,19 @@ void parser_prod___AUminusExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label655: while(false);
   tracehead = trace.prev;
@@ -18640,19 +18644,19 @@ void parser_prod___AUminusExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AUminusExpr____n_minus(variable[3]) /*AUminusExpr::_n_minus*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label656: while(false);
   tracehead = trace.prev;
@@ -18682,20 +18686,20 @@ void parser_prod___AUminusExpr___init_auminusexpr(val_t  self, val_t  param0, va
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AUminusExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AUminusExpr___empty_init))(variable[4], init_table /*YYY*/) /*AUminusExpr::empty_init*/;
+  CALL_parser_prod___AUminusExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AUminusExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AUminusExpr____n_minus(variable[4]) /*AUminusExpr::_n_minus*/ =  variable[1] /*n_minus*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minus*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_minus*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_minus*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_minus*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_minus*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minus*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_minus*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minus*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_minus*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_minus*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minus*/)( variable[1] /*n_minus*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/ =  variable[2] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr*/)( variable[2] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   return_label658: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AUminusExpr].i] = 1;
@@ -18712,10 +18716,10 @@ void parser_prod___ANewExpr___n_kwnew__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label659: while(false);
   tracehead = trace.prev;
@@ -18731,10 +18735,10 @@ void parser_prod___ANewExpr___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label660: while(false);
   tracehead = trace.prev;
@@ -18750,10 +18754,10 @@ void parser_prod___ANewExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label661: while(false);
   tracehead = trace.prev;
@@ -18768,16 +18772,16 @@ void parser_prod___ANewExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7800); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[4]) /*ANewExpr::_n_kwnew*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnew, ID_TKwnew)) /*cast TKwnew*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7804); nit_exit(1);}
       variable[4] = variable[0];
@@ -18790,12 +18794,12 @@ void parser_prod___ANewExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANewExpr____n_type(variable[4]) /*ANewExpr::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7814); nit_exit(1);}
       variable[4] = variable[0];
@@ -18808,12 +18812,12 @@ void parser_prod___ANewExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANewExpr____n_id(variable[4]) /*ANewExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7824); nit_exit(1);}
       variable[4] = variable[0];
@@ -18826,38 +18830,38 @@ void parser_prod___ANewExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[4]) /*ANewExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[7]) /*ANewExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___replace_child, LOCATE_parser_prod, 7834); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[7]) /*ANewExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ANewExpr____n_args(variable[7]) /*ANewExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label662;
     }
     continue_663: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_663: while(0);
   return_label662: while(false);
@@ -18874,39 +18878,39 @@ void parser_prod___ANewExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANewExpr____n_args(variable[3]) /*ANewExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_665: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_665: while(0);
   return_label664: while(false);
@@ -18923,39 +18927,39 @@ void parser_prod___ANewExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANewExpr____n_kwnew(variable[3]) /*ANewExpr::_n_kwnew*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANewExpr____n_type(variable[3]) /*ANewExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANewExpr____n_id(variable[3]) /*ANewExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[4]) /*ANewExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ANewExpr____n_args(variable[4]) /*ANewExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_667: while(0);
@@ -18991,46 +18995,46 @@ void parser_prod___ANewExpr___init_anewexpr(val_t  self, val_t  param0, val_t  p
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANewExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___ANewExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___ANewExpr___empty_init))(variable[6], init_table /*YYY*/) /*ANewExpr::empty_init*/;
+  CALL_parser_prod___ANewExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ANewExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___ANewExpr____n_kwnew(variable[6]) /*ANewExpr::_n_kwnew*/ =  variable[1] /*n_kwnew*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnew*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwnew*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwnew*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnew*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwnew*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwnew*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnew*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwnew*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwnew*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnew*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwnew*/)( variable[1] /*n_kwnew*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwnew*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwnew*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnew*/)( variable[1] /*n_kwnew*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___ANewExpr____n_type(variable[6]) /*ANewExpr::_n_type*/ =  variable[2] /*n_type*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_type*/)( variable[2] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_type*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_type*/)( variable[2] /*n_type*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___ANewExpr____n_id(variable[6]) /*ANewExpr::_n_id*/ =  variable[3] /*n_id*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_id*/)( variable[3] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_id*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_id*/)( variable[3] /*n_id*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ANewExpr____n_args(variable[6]) /*ANewExpr::_n_args*/ = variable[7];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*n_args*/)( variable[4] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANewExpr___init_anewexpr, LOCATE_parser_prod, 7792); nit_exit(1);}
     variable[9] = variable[0];
     variable[9] = ATTR_parser_nodes___ANewExpr____n_args(variable[9]) /*ANewExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[8] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
     continue_670: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_670: while(0);
   return_label669: while(false);
@@ -19048,10 +19052,10 @@ void parser_prod___AAttrExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label671: while(false);
   tracehead = trace.prev;
@@ -19067,10 +19071,10 @@ void parser_prod___AAttrExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label672: while(false);
   tracehead = trace.prev;
@@ -19085,16 +19089,16 @@ void parser_prod___AAttrExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrExpr___replace_child, LOCATE_parser_prod, 7917); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrExpr___replace_child, LOCATE_parser_prod, 7921); nit_exit(1);}
       variable[4] = variable[0];
@@ -19107,12 +19111,12 @@ void parser_prod___AAttrExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrExpr___replace_child, LOCATE_parser_prod, 7931); nit_exit(1);}
       variable[4] = variable[0];
@@ -19137,19 +19141,19 @@ void parser_prod___AAttrExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label674: while(false);
   tracehead = trace.prev;
@@ -19165,19 +19169,19 @@ void parser_prod___AAttrExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label675: while(false);
   tracehead = trace.prev;
@@ -19207,20 +19211,20 @@ void parser_prod___AAttrExpr___init_aattrexpr(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AAttrExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AAttrExpr___empty_init))(variable[4], init_table /*YYY*/) /*AAttrExpr::empty_init*/;
+  CALL_parser_prod___AAttrExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AAttrExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[4]) /*PNode::parent=*/;
   }
   return_label677: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrExpr].i] = 1;
@@ -19237,10 +19241,10 @@ void parser_prod___AAttrAssignExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label678: while(false);
   tracehead = trace.prev;
@@ -19256,10 +19260,10 @@ void parser_prod___AAttrAssignExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label679: while(false);
   tracehead = trace.prev;
@@ -19275,10 +19279,10 @@ void parser_prod___AAttrAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label680: while(false);
   tracehead = trace.prev;
@@ -19294,10 +19298,10 @@ void parser_prod___AAttrAssignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label681: while(false);
   tracehead = trace.prev;
@@ -19312,16 +19316,16 @@ void parser_prod___AAttrAssignExpr___replace_child(val_t  self, val_t  param0, v
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8020); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8024); nit_exit(1);}
       variable[4] = variable[0];
@@ -19334,12 +19338,12 @@ void parser_prod___AAttrAssignExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8034); nit_exit(1);}
       variable[4] = variable[0];
@@ -19352,12 +19356,12 @@ void parser_prod___AAttrAssignExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8044); nit_exit(1);}
       variable[4] = variable[0];
@@ -19370,12 +19374,12 @@ void parser_prod___AAttrAssignExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrAssignExpr___replace_child, LOCATE_parser_prod, 8054); nit_exit(1);}
       variable[4] = variable[0];
@@ -19400,35 +19404,35 @@ void parser_prod___AAttrAssignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label683: while(false);
   tracehead = trace.prev;
@@ -19444,35 +19448,35 @@ void parser_prod___AAttrAssignExpr___visit_all_reverse(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label684: while(false);
   tracehead = trace.prev;
@@ -19504,34 +19508,34 @@ void parser_prod___AAttrAssignExpr___init_aattrassignexpr(val_t  self, val_t  pa
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___AAttrAssignExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___AAttrAssignExpr___empty_init))(variable[6], init_table /*YYY*/) /*AAttrAssignExpr::empty_init*/;
+  CALL_parser_prod___AAttrAssignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AAttrAssignExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[6]) /*AAttrFormExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_id(variable[6]) /*AAttrFormExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[6]) /*AAssignFormExpr::_n_assign*/ =  variable[3] /*n_assign*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_assign*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[6]) /*AAssignFormExpr::_n_value*/ =  variable[4] /*n_value*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
   }
   return_label686: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrAssignExpr].i] = 1;
@@ -19548,10 +19552,10 @@ void parser_prod___AAttrReassignExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label687: while(false);
   tracehead = trace.prev;
@@ -19567,10 +19571,10 @@ void parser_prod___AAttrReassignExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label688: while(false);
   tracehead = trace.prev;
@@ -19586,10 +19590,10 @@ void parser_prod___AAttrReassignExpr___n_assign_op__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label689: while(false);
   tracehead = trace.prev;
@@ -19605,10 +19609,10 @@ void parser_prod___AAttrReassignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label690: while(false);
   tracehead = trace.prev;
@@ -19623,16 +19627,16 @@ void parser_prod___AAttrReassignExpr___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8155); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[4]) /*AAttrFormExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8159); nit_exit(1);}
       variable[4] = variable[0];
@@ -19645,12 +19649,12 @@ void parser_prod___AAttrReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[4]) /*AAttrFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAttrid, ID_TAttrid)) /*cast TAttrid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8169); nit_exit(1);}
       variable[4] = variable[0];
@@ -19663,12 +19667,12 @@ void parser_prod___AAttrReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8179); nit_exit(1);}
       variable[4] = variable[0];
@@ -19681,12 +19685,12 @@ void parser_prod___AAttrReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAttrReassignExpr___replace_child, LOCATE_parser_prod, 8189); nit_exit(1);}
       variable[4] = variable[0];
@@ -19711,35 +19715,35 @@ void parser_prod___AAttrReassignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label692: while(false);
   tracehead = trace.prev;
@@ -19755,35 +19759,35 @@ void parser_prod___AAttrReassignExpr___visit_all_reverse(val_t  self, val_t  par
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[3]) /*AAttrFormExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAttrFormExpr____n_id(variable[3]) /*AAttrFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label693: while(false);
   tracehead = trace.prev;
@@ -19815,34 +19819,34 @@ void parser_prod___AAttrReassignExpr___init_aattrreassignexpr(val_t  self, val_t
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___AAttrReassignExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___AAttrReassignExpr___empty_init))(variable[6], init_table /*YYY*/) /*AAttrReassignExpr::empty_init*/;
+  CALL_parser_prod___AAttrReassignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AAttrReassignExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_expr(variable[6]) /*AAttrFormExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AAttrFormExpr____n_id(variable[6]) /*AAttrFormExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[6]) /*AReassignFormExpr::_n_assign_op*/ =  variable[3] /*n_assign_op*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_assign_op*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[6]) /*AReassignFormExpr::_n_value*/ =  variable[4] /*n_value*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
   }
   return_label695: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAttrReassignExpr].i] = 1;
@@ -19859,10 +19863,10 @@ void parser_prod___ACallExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label696: while(false);
   tracehead = trace.prev;
@@ -19878,10 +19882,10 @@ void parser_prod___ACallExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label697: while(false);
   tracehead = trace.prev;
@@ -19896,16 +19900,16 @@ void parser_prod___ACallExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8280); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8284); nit_exit(1);}
       variable[4] = variable[0];
@@ -19918,12 +19922,12 @@ void parser_prod___ACallExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8294); nit_exit(1);}
       variable[4] = variable[0];
@@ -19936,74 +19940,74 @@ void parser_prod___ACallExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8304); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label698;
     }
     continue_699: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_699: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___replace_child, LOCATE_parser_prod, 8316); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label698;
     }
     continue_700: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_700: while(0);
   return_label698: while(false);
@@ -20020,44 +20024,44 @@ void parser_prod___ACallExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[3]) /*ACallFormExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_702: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_702: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[3]) /*ASendExpr::_n_closure_defs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_703: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_703: while(0);
   return_label701: while(false);
@@ -20074,31 +20078,31 @@ void parser_prod___ACallExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_705: while(0);
@@ -20106,15 +20110,15 @@ void parser_prod___ACallExpr___visit_all_reverse(val_t  self, val_t  param0) {
   break_705: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_706: while(0);
@@ -20150,59 +20154,59 @@ void parser_prod___ACallExpr___init_acallexpr(val_t  self, val_t  param0, val_t
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___ACallExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___ACallExpr___empty_init))(variable[6], init_table /*YYY*/) /*ACallExpr::empty_init*/;
+  CALL_parser_prod___ACallExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ACallExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[6]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___ACallFormExpr____n_id(variable[6]) /*ACallFormExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ACallFormExpr____n_args(variable[6]) /*ACallFormExpr::_n_args*/ = variable[7];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___init_acallexpr, LOCATE_parser_prod, 8266); nit_exit(1);}
     variable[9] = variable[0];
     variable[9] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[9]) /*ACallFormExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[8] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
     continue_709: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_709: while(0);
   variable[6] = variable[0];
   variable[7] = NEW_List_list___List___init(); /*new List[PClosureDef]*/
   ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[6]) /*ASendExpr::_n_closure_defs*/ = variable[7];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*n_closure_defs*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*n_closure_defs*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*n_closure_defs*/)( variable[4] /*n_closure_defs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallExpr___init_acallexpr, LOCATE_parser_prod, 8272); nit_exit(1);}
     variable[9] = variable[0];
     variable[9] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[9]) /*ASendExpr::_n_closure_defs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[8] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
     continue_710: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_710: while(0);
   return_label708: while(false);
@@ -20220,10 +20224,10 @@ void parser_prod___ACallAssignExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label711: while(false);
   tracehead = trace.prev;
@@ -20239,10 +20243,10 @@ void parser_prod___ACallAssignExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label712: while(false);
   tracehead = trace.prev;
@@ -20258,10 +20262,10 @@ void parser_prod___ACallAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label713: while(false);
   tracehead = trace.prev;
@@ -20277,10 +20281,10 @@ void parser_prod___ACallAssignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label714: while(false);
   tracehead = trace.prev;
@@ -20295,16 +20299,16 @@ void parser_prod___ACallAssignExpr___replace_child(val_t  self, val_t  param0, v
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8434); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8438); nit_exit(1);}
       variable[4] = variable[0];
@@ -20317,12 +20321,12 @@ void parser_prod___ACallAssignExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8448); nit_exit(1);}
       variable[4] = variable[0];
@@ -20335,48 +20339,48 @@ void parser_prod___ACallAssignExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8458); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label715;
     }
     continue_716: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_716: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8470); nit_exit(1);}
       variable[4] = variable[0];
@@ -20389,12 +20393,12 @@ void parser_prod___ACallAssignExpr___replace_child(val_t  self, val_t  param0, v
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___replace_child, LOCATE_parser_prod, 8480); nit_exit(1);}
       variable[4] = variable[0];
@@ -20419,48 +20423,48 @@ void parser_prod___ACallAssignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[3]) /*ACallFormExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_718: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_718: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label717: while(false);
   tracehead = trace.prev;
@@ -20476,31 +20480,31 @@ void parser_prod___ACallAssignExpr___visit_all_reverse(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_720: while(0);
@@ -20508,19 +20512,19 @@ void parser_prod___ACallAssignExpr___visit_all_reverse(val_t  self, val_t  param
   break_720: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label719: while(false);
   tracehead = trace.prev;
@@ -20553,54 +20557,54 @@ void parser_prod___ACallAssignExpr___init_acallassignexpr(val_t  self, val_t  pa
   variable[5] =  param4;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i]) return;
   variable[7] = variable[0];
-  ((parser_prod___ACallAssignExpr___empty_init_t)CALL(variable[7],COLOR_parser_prod___ACallAssignExpr___empty_init))(variable[7], init_table /*YYY*/) /*ACallAssignExpr::empty_init*/;
+  CALL_parser_prod___ACallAssignExpr___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*ACallAssignExpr::empty_init*/;
   variable[7] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[7]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___ACallFormExpr____n_id(variable[7]) /*ACallFormExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   variable[8] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/ = variable[8];
-  variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
     variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallAssignExpr___init_acallassignexpr, LOCATE_parser_prod, 8418); nit_exit(1);}
     variable[10] = variable[0];
     variable[10] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[10]) /*ACallFormExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  variable[9] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  variable[9] /*n*/) /*IndexedCollection::add*/;
     variable[10] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[9] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[9] /*n*/, variable[10]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[9] /*n*/)( variable[9] /*n*/, variable[10]) /*PNode::parent=*/;
     continue_723: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
   break_723: while(0);
   variable[7] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[7]) /*AAssignFormExpr::_n_assign*/ =  variable[4] /*n_assign*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_assign*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign*/)( variable[4] /*n_assign*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[7]) /*AAssignFormExpr::_n_value*/ =  variable[5] /*n_value*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)( variable[5] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_value*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_value*/)( variable[5] /*n_value*/, variable[7]) /*PNode::parent=*/;
   }
   return_label722: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallAssignExpr].i] = 1;
@@ -20617,10 +20621,10 @@ void parser_prod___ACallReassignExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label724: while(false);
   tracehead = trace.prev;
@@ -20636,10 +20640,10 @@ void parser_prod___ACallReassignExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label725: while(false);
   tracehead = trace.prev;
@@ -20655,10 +20659,10 @@ void parser_prod___ACallReassignExpr___n_assign_op__eq(val_t  self, val_t  param
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label726: while(false);
   tracehead = trace.prev;
@@ -20674,10 +20678,10 @@ void parser_prod___ACallReassignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label727: while(false);
   tracehead = trace.prev;
@@ -20692,16 +20696,16 @@ void parser_prod___ACallReassignExpr___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8598); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8602); nit_exit(1);}
       variable[4] = variable[0];
@@ -20714,12 +20718,12 @@ void parser_prod___ACallReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[4]) /*ACallFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8612); nit_exit(1);}
       variable[4] = variable[0];
@@ -20732,48 +20736,48 @@ void parser_prod___ACallReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8622); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label728;
     }
     continue_729: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_729: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8634); nit_exit(1);}
       variable[4] = variable[0];
@@ -20786,12 +20790,12 @@ void parser_prod___ACallReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___replace_child, LOCATE_parser_prod, 8644); nit_exit(1);}
       variable[4] = variable[0];
@@ -20816,48 +20820,48 @@ void parser_prod___ACallReassignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[3]) /*ACallFormExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_731: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_731: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label730: while(false);
   tracehead = trace.prev;
@@ -20873,31 +20877,31 @@ void parser_prod___ACallReassignExpr___visit_all_reverse(val_t  self, val_t  par
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACallFormExpr____n_id(variable[3]) /*ACallFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[4]) /*ACallFormExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_733: while(0);
@@ -20905,19 +20909,19 @@ void parser_prod___ACallReassignExpr___visit_all_reverse(val_t  self, val_t  par
   break_733: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label732: while(false);
   tracehead = trace.prev;
@@ -20950,54 +20954,54 @@ void parser_prod___ACallReassignExpr___init_acallreassignexpr(val_t  self, val_t
   variable[5] =  param4;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i]) return;
   variable[7] = variable[0];
-  ((parser_prod___ACallReassignExpr___empty_init_t)CALL(variable[7],COLOR_parser_prod___ACallReassignExpr___empty_init))(variable[7], init_table /*YYY*/) /*ACallReassignExpr::empty_init*/;
+  CALL_parser_prod___ACallReassignExpr___empty_init(variable[7])(variable[7], init_table /*YYY*/) /*ACallReassignExpr::empty_init*/;
   variable[7] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[7]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___ACallFormExpr____n_id(variable[7]) /*ACallFormExpr::_n_id*/ =  variable[2] /*n_id*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_id*/)( variable[2] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_id*/)( variable[2] /*n_id*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   variable[8] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ACallFormExpr____n_args(variable[7]) /*ACallFormExpr::_n_args*/ = variable[8];
-  variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
     variable[10] = TAG_Bool(( variable[9] /*n*/==NIT_NULL) || VAL_ISA( variable[9] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[10])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACallReassignExpr___init_acallreassignexpr, LOCATE_parser_prod, 8582); nit_exit(1);}
     variable[10] = variable[0];
     variable[10] = ATTR_parser_nodes___ACallFormExpr____n_args(variable[10]) /*ACallFormExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  variable[9] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  variable[9] /*n*/) /*IndexedCollection::add*/;
     variable[10] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[9] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[9] /*n*/, variable[10]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[9] /*n*/)( variable[9] /*n*/, variable[10]) /*PNode::parent=*/;
     continue_736: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
   break_736: while(0);
   variable[7] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[7]) /*AReassignFormExpr::_n_assign_op*/ =  variable[4] /*n_assign_op*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_assign_op*/)( variable[4] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_assign_op*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_assign_op*/)( variable[4] /*n_assign_op*/, variable[7]) /*PNode::parent=*/;
   }
   variable[7] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[7]) /*AReassignFormExpr::_n_value*/ =  variable[5] /*n_value*/;
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[5] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[5] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*n_value*/)( variable[5] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n_value*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n_value*/)( variable[5] /*n_value*/, variable[7]) /*PNode::parent=*/;
   }
   return_label735: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACallReassignExpr].i] = 1;
@@ -21014,10 +21018,10 @@ void parser_prod___ASuperExpr___n_qualified__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label737: while(false);
   tracehead = trace.prev;
@@ -21033,10 +21037,10 @@ void parser_prod___ASuperExpr___n_kwsuper__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label738: while(false);
   tracehead = trace.prev;
@@ -21051,16 +21055,16 @@ void parser_prod___ASuperExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8738); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[4]) /*ASuperExpr::_n_qualified*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PQualified, ID_PQualified)) /*cast PQualified*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8742); nit_exit(1);}
       variable[4] = variable[0];
@@ -21073,12 +21077,12 @@ void parser_prod___ASuperExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[4]) /*ASuperExpr::_n_kwsuper*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwsuper, ID_TKwsuper)) /*cast TKwsuper*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8752); nit_exit(1);}
       variable[4] = variable[0];
@@ -21091,38 +21095,38 @@ void parser_prod___ASuperExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[4]) /*ASuperExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[7]) /*ASuperExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___replace_child, LOCATE_parser_prod, 8762); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[7]) /*ASuperExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASuperExpr____n_args(variable[7]) /*ASuperExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label739;
     }
     continue_740: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_740: while(0);
   return_label739: while(false);
@@ -21139,31 +21143,31 @@ void parser_prod___ASuperExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperExpr____n_args(variable[3]) /*ASuperExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_742: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_742: while(0);
   return_label741: while(false);
@@ -21180,31 +21184,31 @@ void parser_prod___ASuperExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperExpr____n_qualified(variable[3]) /*ASuperExpr::_n_qualified*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[3]) /*ASuperExpr::_n_kwsuper*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[4]) /*ASuperExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ASuperExpr____n_args(variable[4]) /*ASuperExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_744: while(0);
@@ -21239,39 +21243,39 @@ void parser_prod___ASuperExpr___init_asuperexpr(val_t  self, val_t  param0, val_
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___ASuperExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___ASuperExpr___empty_init))(variable[5], init_table /*YYY*/) /*ASuperExpr::empty_init*/;
+  CALL_parser_prod___ASuperExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ASuperExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___ASuperExpr____n_qualified(variable[5]) /*ASuperExpr::_n_qualified*/ =  variable[1] /*n_qualified*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_qualified*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_qualified*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_qualified*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_qualified*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_qualified*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_qualified*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_qualified*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_qualified*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_qualified*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_qualified*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_qualified*/)( variable[1] /*n_qualified*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_qualified*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_qualified*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_qualified*/)( variable[1] /*n_qualified*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___ASuperExpr____n_kwsuper(variable[5]) /*ASuperExpr::_n_kwsuper*/ =  variable[2] /*n_kwsuper*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwsuper*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwsuper*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwsuper*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwsuper*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwsuper*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwsuper*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwsuper*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwsuper*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwsuper*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwsuper*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwsuper*/)( variable[2] /*n_kwsuper*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwsuper*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwsuper*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwsuper*/)( variable[2] /*n_kwsuper*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ASuperExpr____n_args(variable[5]) /*ASuperExpr::_n_args*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperExpr___init_asuperexpr, LOCATE_parser_prod, 8730); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___ASuperExpr____n_args(variable[8]) /*ASuperExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_747: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_747: while(0);
   return_label746: while(false);
@@ -21289,10 +21293,10 @@ void parser_prod___AInitExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label748: while(false);
   tracehead = trace.prev;
@@ -21308,10 +21312,10 @@ void parser_prod___AInitExpr___n_kwinit__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label749: while(false);
   tracehead = trace.prev;
@@ -21326,16 +21330,16 @@ void parser_prod___AInitExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8846); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8850); nit_exit(1);}
       variable[4] = variable[0];
@@ -21348,12 +21352,12 @@ void parser_prod___AInitExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[4]) /*AInitExpr::_n_kwinit*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwinit, ID_TKwinit)) /*cast TKwinit*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8860); nit_exit(1);}
       variable[4] = variable[0];
@@ -21366,38 +21370,38 @@ void parser_prod___AInitExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[4]) /*AInitExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[7]) /*AInitExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___replace_child, LOCATE_parser_prod, 8870); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[7]) /*AInitExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AInitExpr____n_args(variable[7]) /*AInitExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label750;
     }
     continue_751: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_751: while(0);
   return_label750: while(false);
@@ -21414,31 +21418,31 @@ void parser_prod___AInitExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AInitExpr____n_args(variable[3]) /*AInitExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_753: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_753: while(0);
   return_label752: while(false);
@@ -21455,31 +21459,31 @@ void parser_prod___AInitExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AInitExpr____n_kwinit(variable[3]) /*AInitExpr::_n_kwinit*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[4]) /*AInitExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AInitExpr____n_args(variable[4]) /*AInitExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_755: while(0);
@@ -21514,39 +21518,39 @@ void parser_prod___AInitExpr___init_ainitexpr(val_t  self, val_t  param0, val_t
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AInitExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AInitExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___AInitExpr___empty_init))(variable[5], init_table /*YYY*/) /*AInitExpr::empty_init*/;
+  CALL_parser_prod___AInitExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AInitExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[5]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AInitExpr____n_kwinit(variable[5]) /*AInitExpr::_n_kwinit*/ =  variable[2] /*n_kwinit*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwinit*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwinit*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwinit*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwinit*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwinit*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwinit*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwinit*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwinit*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwinit*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwinit*/)( variable[2] /*n_kwinit*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwinit*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwinit*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwinit*/)( variable[2] /*n_kwinit*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___AInitExpr____n_args(variable[5]) /*AInitExpr::_n_args*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_args*/)( variable[3] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AInitExpr___init_ainitexpr, LOCATE_parser_prod, 8838); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___AInitExpr____n_args(variable[8]) /*AInitExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_758: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_758: while(0);
   return_label757: while(false);
@@ -21564,10 +21568,10 @@ void parser_prod___ABraExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label759: while(false);
   tracehead = trace.prev;
@@ -21582,16 +21586,16 @@ void parser_prod___ABraExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8949); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8953); nit_exit(1);}
       variable[4] = variable[0];
@@ -21604,74 +21608,74 @@ void parser_prod___ABraExpr___replace_child(val_t  self, val_t  param0, val_t  p
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8963); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label760;
     }
     continue_761: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_761: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___replace_child, LOCATE_parser_prod, 8975); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[7]) /*ASendExpr::_n_closure_defs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label760;
     }
     continue_762: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_762: while(0);
   return_label760: while(false);
@@ -21688,36 +21692,36 @@ void parser_prod___ABraExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[3]) /*ABraFormExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_764: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_764: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[3]) /*ASendExpr::_n_closure_defs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_765: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_765: while(0);
   return_label763: while(false);
@@ -21734,23 +21738,23 @@ void parser_prod___ABraExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_767: while(0);
@@ -21758,15 +21762,15 @@ void parser_prod___ABraExpr___visit_all_reverse(val_t  self, val_t  param0) {
   break_767: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[4]) /*ASendExpr::_n_closure_defs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_768: while(0);
@@ -21801,52 +21805,52 @@ void parser_prod___ABraExpr___init_abraexpr(val_t  self, val_t  param0, val_t  p
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___ABraExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___ABraExpr___empty_init))(variable[5], init_table /*YYY*/) /*ABraExpr::empty_init*/;
+  CALL_parser_prod___ABraExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*ABraExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[5]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ABraFormExpr____n_args(variable[5]) /*ABraFormExpr::_n_args*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___init_abraexpr, LOCATE_parser_prod, 8935); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[8]) /*ABraFormExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_771: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_771: while(0);
   variable[5] = variable[0];
   variable[6] = NEW_List_list___List___init(); /*new List[PClosureDef]*/
   ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[5]) /*ASendExpr::_n_closure_defs*/ = variable[6];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*n_closure_defs*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*n_closure_defs*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*n_closure_defs*/)( variable[3] /*n_closure_defs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
     variable[8] = TAG_Bool(( variable[7] /*n*/==NIT_NULL) || VAL_ISA( variable[7] /*n*/, COLOR_PClosureDef, ID_PClosureDef)) /*cast PClosureDef*/;
     if (!UNTAG_Bool(variable[8])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraExpr___init_abraexpr, LOCATE_parser_prod, 8941); nit_exit(1);}
     variable[8] = variable[0];
     variable[8] = ATTR_parser_nodes___ASendExpr____n_closure_defs(variable[8]) /*ASendExpr::_n_closure_defs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  variable[7] /*n*/) /*IndexedCollection::add*/;
     variable[8] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[7] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[7] /*n*/)( variable[7] /*n*/, variable[8]) /*PNode::parent=*/;
     continue_772: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_772: while(0);
   return_label770: while(false);
@@ -21864,10 +21868,10 @@ void parser_prod___ABraAssignExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label773: while(false);
   tracehead = trace.prev;
@@ -21883,10 +21887,10 @@ void parser_prod___ABraAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label774: while(false);
   tracehead = trace.prev;
@@ -21902,10 +21906,10 @@ void parser_prod___ABraAssignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label775: while(false);
   tracehead = trace.prev;
@@ -21920,16 +21924,16 @@ void parser_prod___ABraAssignExpr___replace_child(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9075); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9079); nit_exit(1);}
       variable[4] = variable[0];
@@ -21942,48 +21946,48 @@ void parser_prod___ABraAssignExpr___replace_child(val_t  self, val_t  param0, va
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9089); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label776;
     }
     continue_777: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_777: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9101); nit_exit(1);}
       variable[4] = variable[0];
@@ -21996,12 +22000,12 @@ void parser_prod___ABraAssignExpr___replace_child(val_t  self, val_t  param0, va
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___replace_child, LOCATE_parser_prod, 9111); nit_exit(1);}
       variable[4] = variable[0];
@@ -22026,40 +22030,40 @@ void parser_prod___ABraAssignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[3]) /*ABraFormExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_779: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_779: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label778: while(false);
   tracehead = trace.prev;
@@ -22075,23 +22079,23 @@ void parser_prod___ABraAssignExpr___visit_all_reverse(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_781: while(0);
@@ -22099,19 +22103,19 @@ void parser_prod___ABraAssignExpr___visit_all_reverse(val_t  self, val_t  param0
   break_781: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label780: while(false);
   tracehead = trace.prev;
@@ -22143,47 +22147,47 @@ void parser_prod___ABraAssignExpr___init_abraassignexpr(val_t  self, val_t  para
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___ABraAssignExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___ABraAssignExpr___empty_init))(variable[6], init_table /*YYY*/) /*ABraAssignExpr::empty_init*/;
+  CALL_parser_prod___ABraAssignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ABraAssignExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[6]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ABraFormExpr____n_args(variable[6]) /*ABraFormExpr::_n_args*/ = variable[7];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraAssignExpr___init_abraassignexpr, LOCATE_parser_prod, 9059); nit_exit(1);}
     variable[9] = variable[0];
     variable[9] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[9]) /*ABraFormExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[8] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
     continue_784: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_784: while(0);
   variable[6] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[6]) /*AAssignFormExpr::_n_assign*/ =  variable[3] /*n_assign*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_assign*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign*/)( variable[3] /*n_assign*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[6]) /*AAssignFormExpr::_n_value*/ =  variable[4] /*n_value*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
   }
   return_label783: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraAssignExpr].i] = 1;
@@ -22200,10 +22204,10 @@ void parser_prod___ABraReassignExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label785: while(false);
   tracehead = trace.prev;
@@ -22219,10 +22223,10 @@ void parser_prod___ABraReassignExpr___n_assign_op__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label786: while(false);
   tracehead = trace.prev;
@@ -22238,10 +22242,10 @@ void parser_prod___ABraReassignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label787: while(false);
   tracehead = trace.prev;
@@ -22256,16 +22260,16 @@ void parser_prod___ABraReassignExpr___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9211); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASendExpr____n_expr(variable[4]) /*ASendExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9215); nit_exit(1);}
       variable[4] = variable[0];
@@ -22278,48 +22282,48 @@ void parser_prod___ABraReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9225); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[7]) /*ABraFormExpr::_n_args*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label788;
     }
     continue_789: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_789: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9237); nit_exit(1);}
       variable[4] = variable[0];
@@ -22332,12 +22336,12 @@ void parser_prod___ABraReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___replace_child, LOCATE_parser_prod, 9247); nit_exit(1);}
       variable[4] = variable[0];
@@ -22362,40 +22366,40 @@ void parser_prod___ABraReassignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[3]) /*ABraFormExpr::_n_args*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_791: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_791: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label790: while(false);
   tracehead = trace.prev;
@@ -22411,23 +22415,23 @@ void parser_prod___ABraReassignExpr___visit_all_reverse(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASendExpr____n_expr(variable[3]) /*ASendExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[4]) /*ABraFormExpr::_n_args*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_793: while(0);
@@ -22435,19 +22439,19 @@ void parser_prod___ABraReassignExpr___visit_all_reverse(val_t  self, val_t  para
   break_793: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label792: while(false);
   tracehead = trace.prev;
@@ -22479,47 +22483,47 @@ void parser_prod___ABraReassignExpr___init_abrareassignexpr(val_t  self, val_t
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___ABraReassignExpr___empty_init_t)CALL(variable[6],COLOR_parser_prod___ABraReassignExpr___empty_init))(variable[6], init_table /*YYY*/) /*ABraReassignExpr::empty_init*/;
+  CALL_parser_prod___ABraReassignExpr___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*ABraReassignExpr::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___ASendExpr____n_expr(variable[6]) /*ASendExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   variable[7] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ABraFormExpr____n_args(variable[6]) /*ABraFormExpr::_n_args*/ = variable[7];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*n_args*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_args*/)( variable[2] /*n_args*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ABraReassignExpr___init_abrareassignexpr, LOCATE_parser_prod, 9195); nit_exit(1);}
     variable[9] = variable[0];
     variable[9] = ATTR_parser_nodes___ABraFormExpr____n_args(variable[9]) /*ABraFormExpr::_n_args*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[8] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
     continue_796: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_796: while(0);
   variable[6] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[6]) /*AReassignFormExpr::_n_assign_op*/ =  variable[3] /*n_assign_op*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_assign_op*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_assign_op*/)( variable[3] /*n_assign_op*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[6]) /*AReassignFormExpr::_n_value*/ =  variable[4] /*n_value*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_value*/)( variable[4] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_value*/)( variable[4] /*n_value*/, variable[6]) /*PNode::parent=*/;
   }
   return_label795: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ABraReassignExpr].i] = 1;
@@ -22536,10 +22540,10 @@ void parser_prod___AVarExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label797: while(false);
   tracehead = trace.prev;
@@ -22554,16 +22558,16 @@ void parser_prod___AVarExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarExpr___replace_child, LOCATE_parser_prod, 9316); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarExpr___replace_child, LOCATE_parser_prod, 9320); nit_exit(1);}
       variable[4] = variable[0];
@@ -22588,11 +22592,11 @@ void parser_prod___AVarExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label799: while(false);
   tracehead = trace.prev;
@@ -22608,11 +22612,11 @@ void parser_prod___AVarExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label800: while(false);
   tracehead = trace.prev;
@@ -22641,13 +22645,13 @@ void parser_prod___AVarExpr___init_avarexpr(val_t  self, val_t  param0, int* ini
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AVarExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AVarExpr___empty_init))(variable[3], init_table /*YYY*/) /*AVarExpr::empty_init*/;
+  CALL_parser_prod___AVarExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AVarExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ =  variable[1] /*n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[3]) /*PNode::parent=*/;
   }
   return_label802: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarExpr].i] = 1;
@@ -22664,10 +22668,10 @@ void parser_prod___AVarAssignExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label803: while(false);
   tracehead = trace.prev;
@@ -22683,10 +22687,10 @@ void parser_prod___AVarAssignExpr___n_assign__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label804: while(false);
   tracehead = trace.prev;
@@ -22702,10 +22706,10 @@ void parser_prod___AVarAssignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label805: while(false);
   tracehead = trace.prev;
@@ -22720,16 +22724,16 @@ void parser_prod___AVarAssignExpr___replace_child(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9391); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9395); nit_exit(1);}
       variable[4] = variable[0];
@@ -22742,12 +22746,12 @@ void parser_prod___AVarAssignExpr___replace_child(val_t  self, val_t  param0, va
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[4]) /*AAssignFormExpr::_n_assign*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TAssign, ID_TAssign)) /*cast TAssign*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9405); nit_exit(1);}
       variable[4] = variable[0];
@@ -22760,12 +22764,12 @@ void parser_prod___AVarAssignExpr___replace_child(val_t  self, val_t  param0, va
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[4]) /*AAssignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarAssignExpr___replace_child, LOCATE_parser_prod, 9415); nit_exit(1);}
       variable[4] = variable[0];
@@ -22790,27 +22794,27 @@ void parser_prod___AVarAssignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label807: while(false);
   tracehead = trace.prev;
@@ -22826,27 +22830,27 @@ void parser_prod___AVarAssignExpr___visit_all_reverse(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[3]) /*AAssignFormExpr::_n_assign*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAssignFormExpr____n_value(variable[3]) /*AAssignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label808: while(false);
   tracehead = trace.prev;
@@ -22877,27 +22881,27 @@ void parser_prod___AVarAssignExpr___init_avarassignexpr(val_t  self, val_t  para
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AVarAssignExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___AVarAssignExpr___empty_init))(variable[5], init_table /*YYY*/) /*AVarAssignExpr::empty_init*/;
+  CALL_parser_prod___AVarAssignExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AVarAssignExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AVarFormExpr____n_id(variable[5]) /*AVarFormExpr::_n_id*/ =  variable[1] /*n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_assign(variable[5]) /*AAssignFormExpr::_n_assign*/ =  variable[2] /*n_assign*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_assign*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_assign*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_assign*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_assign*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_assign*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_assign*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign*/)( variable[2] /*n_assign*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AAssignFormExpr____n_value(variable[5]) /*AAssignFormExpr::_n_value*/ =  variable[3] /*n_value*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)( variable[3] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_value*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_value*/)( variable[3] /*n_value*/, variable[5]) /*PNode::parent=*/;
   }
   return_label810: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarAssignExpr].i] = 1;
@@ -22914,10 +22918,10 @@ void parser_prod___AVarReassignExpr___n_id__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label811: while(false);
   tracehead = trace.prev;
@@ -22933,10 +22937,10 @@ void parser_prod___AVarReassignExpr___n_assign_op__eq(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label812: while(false);
   tracehead = trace.prev;
@@ -22952,10 +22956,10 @@ void parser_prod___AVarReassignExpr___n_value__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label813: while(false);
   tracehead = trace.prev;
@@ -22970,16 +22974,16 @@ void parser_prod___AVarReassignExpr___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9498); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[4]) /*AVarFormExpr::_n_id*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9502); nit_exit(1);}
       variable[4] = variable[0];
@@ -22992,12 +22996,12 @@ void parser_prod___AVarReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[4]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PAssignOp, ID_PAssignOp)) /*cast PAssignOp*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9512); nit_exit(1);}
       variable[4] = variable[0];
@@ -23010,12 +23014,12 @@ void parser_prod___AVarReassignExpr___replace_child(val_t  self, val_t  param0,
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[4]) /*AReassignFormExpr::_n_value*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AVarReassignExpr___replace_child, LOCATE_parser_prod, 9522); nit_exit(1);}
       variable[4] = variable[0];
@@ -23040,27 +23044,27 @@ void parser_prod___AVarReassignExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label815: while(false);
   tracehead = trace.prev;
@@ -23076,27 +23080,27 @@ void parser_prod___AVarReassignExpr___visit_all_reverse(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AVarFormExpr____n_id(variable[3]) /*AVarFormExpr::_n_id*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[3]) /*AReassignFormExpr::_n_assign_op*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AReassignFormExpr____n_value(variable[3]) /*AReassignFormExpr::_n_value*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label816: while(false);
   tracehead = trace.prev;
@@ -23127,27 +23131,27 @@ void parser_prod___AVarReassignExpr___init_avarreassignexpr(val_t  self, val_t
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AVarReassignExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___AVarReassignExpr___empty_init))(variable[5], init_table /*YYY*/) /*AVarReassignExpr::empty_init*/;
+  CALL_parser_prod___AVarReassignExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AVarReassignExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AVarFormExpr____n_id(variable[5]) /*AVarFormExpr::_n_id*/ =  variable[1] /*n_id*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_id*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_id*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_id*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_id*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_id*/)( variable[1] /*n_id*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_id*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_id*/)( variable[1] /*n_id*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_assign_op(variable[5]) /*AReassignFormExpr::_n_assign_op*/ =  variable[2] /*n_assign_op*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_assign_op*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_assign_op*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_assign_op*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_assign_op*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_assign_op*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_assign_op*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_assign_op*/)( variable[2] /*n_assign_op*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_assign_op*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_assign_op*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_assign_op*/)( variable[2] /*n_assign_op*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AReassignFormExpr____n_value(variable[5]) /*AReassignFormExpr::_n_value*/ =  variable[3] /*n_value*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_value*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_value*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_value*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_value*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_value*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_value*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_value*/)( variable[3] /*n_value*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_value*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_value*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_value*/)( variable[3] /*n_value*/, variable[5]) /*PNode::parent=*/;
   }
   return_label818: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AVarReassignExpr].i] = 1;
@@ -23164,10 +23168,10 @@ void parser_prod___ARangeExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label819: while(false);
   tracehead = trace.prev;
@@ -23183,10 +23187,10 @@ void parser_prod___ARangeExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label820: while(false);
   tracehead = trace.prev;
@@ -23201,16 +23205,16 @@ void parser_prod___ARangeExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ARangeExpr___replace_child, LOCATE_parser_prod, 9593); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ARangeExpr___replace_child, LOCATE_parser_prod, 9597); nit_exit(1);}
       variable[4] = variable[0];
@@ -23223,12 +23227,12 @@ void parser_prod___ARangeExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ARangeExpr___replace_child, LOCATE_parser_prod, 9607); nit_exit(1);}
       variable[4] = variable[0];
@@ -23253,19 +23257,19 @@ void parser_prod___ARangeExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label822: while(false);
   tracehead = trace.prev;
@@ -23281,19 +23285,19 @@ void parser_prod___ARangeExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label823: while(false);
   tracehead = trace.prev;
@@ -23323,20 +23327,20 @@ void parser_prod___ARangeExpr___init_arangeexpr(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ARangeExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ARangeExpr___empty_init))(variable[4], init_table /*YYY*/) /*ARangeExpr::empty_init*/;
+  CALL_parser_prod___ARangeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ARangeExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label825: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ARangeExpr].i] = 1;
@@ -23353,10 +23357,10 @@ void parser_prod___ACrangeExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label826: while(false);
   tracehead = trace.prev;
@@ -23372,10 +23376,10 @@ void parser_prod___ACrangeExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label827: while(false);
   tracehead = trace.prev;
@@ -23390,16 +23394,16 @@ void parser_prod___ACrangeExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACrangeExpr___replace_child, LOCATE_parser_prod, 9672); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACrangeExpr___replace_child, LOCATE_parser_prod, 9676); nit_exit(1);}
       variable[4] = variable[0];
@@ -23412,12 +23416,12 @@ void parser_prod___ACrangeExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACrangeExpr___replace_child, LOCATE_parser_prod, 9686); nit_exit(1);}
       variable[4] = variable[0];
@@ -23442,19 +23446,19 @@ void parser_prod___ACrangeExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label829: while(false);
   tracehead = trace.prev;
@@ -23470,19 +23474,19 @@ void parser_prod___ACrangeExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label830: while(false);
   tracehead = trace.prev;
@@ -23512,20 +23516,20 @@ void parser_prod___ACrangeExpr___init_acrangeexpr(val_t  self, val_t  param0, va
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___ACrangeExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___ACrangeExpr___empty_init))(variable[4], init_table /*YYY*/) /*ACrangeExpr::empty_init*/;
+  CALL_parser_prod___ACrangeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*ACrangeExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label832: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACrangeExpr].i] = 1;
@@ -23542,10 +23546,10 @@ void parser_prod___AOrangeExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label833: while(false);
   tracehead = trace.prev;
@@ -23561,10 +23565,10 @@ void parser_prod___AOrangeExpr___n_expr2__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label834: while(false);
   tracehead = trace.prev;
@@ -23579,16 +23583,16 @@ void parser_prod___AOrangeExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrangeExpr___replace_child, LOCATE_parser_prod, 9751); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrangeExpr___replace_child, LOCATE_parser_prod, 9755); nit_exit(1);}
       variable[4] = variable[0];
@@ -23601,12 +23605,12 @@ void parser_prod___AOrangeExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AOrangeExpr___replace_child, LOCATE_parser_prod, 9765); nit_exit(1);}
       variable[4] = variable[0];
@@ -23631,19 +23635,19 @@ void parser_prod___AOrangeExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label836: while(false);
   tracehead = trace.prev;
@@ -23659,19 +23663,19 @@ void parser_prod___AOrangeExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr(variable[3]) /*ARangeExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ARangeExpr____n_expr2(variable[3]) /*ARangeExpr::_n_expr2*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label837: while(false);
   tracehead = trace.prev;
@@ -23701,20 +23705,20 @@ void parser_prod___AOrangeExpr___init_aorangeexpr(val_t  self, val_t  param0, va
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AOrangeExpr___empty_init_t)CALL(variable[4],COLOR_parser_prod___AOrangeExpr___empty_init))(variable[4], init_table /*YYY*/) /*AOrangeExpr::empty_init*/;
+  CALL_parser_prod___AOrangeExpr___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AOrangeExpr::empty_init*/;
   variable[4] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr(variable[4]) /*ARangeExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[4]) /*PNode::parent=*/;
   }
   variable[4] = variable[0];
   ATTR_parser_nodes___ARangeExpr____n_expr2(variable[4]) /*ARangeExpr::_n_expr2*/ =  variable[2] /*n_expr2*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_expr2*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_expr2*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_expr2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_expr2*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_expr2*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_expr2*/)( variable[2] /*n_expr2*/, variable[4]) /*PNode::parent=*/;
   }
   return_label839: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AOrangeExpr].i] = 1;
@@ -23730,42 +23734,42 @@ void parser_prod___AArrayExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AArrayExpr___replace_child, LOCATE_parser_prod, 9813); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[4]) /*AArrayExpr::_n_exprs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[7]) /*AArrayExpr::_n_exprs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AArrayExpr___replace_child, LOCATE_parser_prod, 9817); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[7]) /*AArrayExpr::_n_exprs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[7]) /*AArrayExpr::_n_exprs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label840;
     }
     continue_841: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_841: while(0);
   return_label840: while(false);
@@ -23782,15 +23786,15 @@ void parser_prod___AArrayExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[3]) /*AArrayExpr::_n_exprs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_843: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_843: while(0);
   return_label842: while(false);
@@ -23807,15 +23811,15 @@ void parser_prod___AArrayExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[4]) /*AArrayExpr::_n_exprs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[4]) /*AArrayExpr::_n_exprs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_845: while(0);
@@ -23848,25 +23852,25 @@ void parser_prod___AArrayExpr___init_aarrayexpr(val_t  self, val_t  param0, int*
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AArrayExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AArrayExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AArrayExpr___empty_init))(variable[3], init_table /*YYY*/) /*AArrayExpr::empty_init*/;
+  CALL_parser_prod___AArrayExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AArrayExpr::empty_init*/;
   variable[3] = variable[0];
   variable[4] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___AArrayExpr____n_exprs(variable[3]) /*AArrayExpr::_n_exprs*/ = variable[4];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_exprs*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_exprs*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_exprs*/)( variable[1] /*n_exprs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AArrayExpr___init_aarrayexpr, LOCATE_parser_prod, 9805); nit_exit(1);}
     variable[6] = variable[0];
     variable[6] = ATTR_parser_nodes___AArrayExpr____n_exprs(variable[6]) /*AArrayExpr::_n_exprs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
     continue_848: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_848: while(0);
   return_label847: while(false);
@@ -23884,10 +23888,10 @@ void parser_prod___ASelfExpr___n_kwself__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label849: while(false);
   tracehead = trace.prev;
@@ -23902,16 +23906,16 @@ void parser_prod___ASelfExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASelfExpr___replace_child, LOCATE_parser_prod, 9870); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[4]) /*ASelfExpr::_n_kwself*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwself, ID_TKwself)) /*cast TKwself*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASelfExpr___replace_child, LOCATE_parser_prod, 9874); nit_exit(1);}
       variable[4] = variable[0];
@@ -23936,11 +23940,11 @@ void parser_prod___ASelfExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label851: while(false);
   tracehead = trace.prev;
@@ -23956,11 +23960,11 @@ void parser_prod___ASelfExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label852: while(false);
   tracehead = trace.prev;
@@ -23989,13 +23993,13 @@ void parser_prod___ASelfExpr___init_aselfexpr(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ASelfExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___ASelfExpr___empty_init))(variable[3], init_table /*YYY*/) /*ASelfExpr::empty_init*/;
+  CALL_parser_prod___ASelfExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASelfExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ASelfExpr____n_kwself(variable[3]) /*ASelfExpr::_n_kwself*/ =  variable[1] /*n_kwself*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwself*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwself*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwself*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwself*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwself*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwself*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwself*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwself*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwself*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwself*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwself*/)( variable[1] /*n_kwself*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwself*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwself*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwself*/)( variable[1] /*n_kwself*/, variable[3]) /*PNode::parent=*/;
   }
   return_label854: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASelfExpr].i] = 1;
@@ -24011,7 +24015,7 @@ void parser_prod___AImplicitSelfExpr___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AImplicitSelfExpr___replace_child, LOCATE_parser_prod, 9908); nit_exit(1);}
   return_label855: while(false);
   tracehead = trace.prev;
@@ -24063,7 +24067,7 @@ void parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(val_t  self, int*
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i]) return;
   variable[2] = variable[0];
-  ((parser_prod___AImplicitSelfExpr___empty_init_t)CALL(variable[2],COLOR_parser_prod___AImplicitSelfExpr___empty_init))(variable[2], init_table /*YYY*/) /*AImplicitSelfExpr::empty_init*/;
+  CALL_parser_prod___AImplicitSelfExpr___empty_init(variable[2])(variable[2], init_table /*YYY*/) /*AImplicitSelfExpr::empty_init*/;
   return_label859: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AImplicitSelfExpr].i] = 1;
   tracehead = trace.prev;
@@ -24079,10 +24083,10 @@ void parser_prod___ATrueExpr___n_kwtrue__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label860: while(false);
   tracehead = trace.prev;
@@ -24097,16 +24101,16 @@ void parser_prod___ATrueExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATrueExpr___replace_child, LOCATE_parser_prod, 9943); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[4]) /*ATrueExpr::_n_kwtrue*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwtrue, ID_TKwtrue)) /*cast TKwtrue*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ATrueExpr___replace_child, LOCATE_parser_prod, 9947); nit_exit(1);}
       variable[4] = variable[0];
@@ -24131,11 +24135,11 @@ void parser_prod___ATrueExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label862: while(false);
   tracehead = trace.prev;
@@ -24151,11 +24155,11 @@ void parser_prod___ATrueExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label863: while(false);
   tracehead = trace.prev;
@@ -24184,13 +24188,13 @@ void parser_prod___ATrueExpr___init_atrueexpr(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ATrueExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___ATrueExpr___empty_init))(variable[3], init_table /*YYY*/) /*ATrueExpr::empty_init*/;
+  CALL_parser_prod___ATrueExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ATrueExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ATrueExpr____n_kwtrue(variable[3]) /*ATrueExpr::_n_kwtrue*/ =  variable[1] /*n_kwtrue*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwtrue*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwtrue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwtrue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwtrue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwtrue*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwtrue*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwtrue*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwtrue*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwtrue*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwtrue*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwtrue*/)( variable[1] /*n_kwtrue*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwtrue*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwtrue*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwtrue*/)( variable[1] /*n_kwtrue*/, variable[3]) /*PNode::parent=*/;
   }
   return_label865: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ATrueExpr].i] = 1;
@@ -24207,10 +24211,10 @@ void parser_prod___AFalseExpr___n_kwfalse__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label866: while(false);
   tracehead = trace.prev;
@@ -24225,16 +24229,16 @@ void parser_prod___AFalseExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFalseExpr___replace_child, LOCATE_parser_prod, 9994); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[4]) /*AFalseExpr::_n_kwfalse*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwfalse, ID_TKwfalse)) /*cast TKwfalse*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFalseExpr___replace_child, LOCATE_parser_prod, 9998); nit_exit(1);}
       variable[4] = variable[0];
@@ -24259,11 +24263,11 @@ void parser_prod___AFalseExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label868: while(false);
   tracehead = trace.prev;
@@ -24279,11 +24283,11 @@ void parser_prod___AFalseExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label869: while(false);
   tracehead = trace.prev;
@@ -24312,13 +24316,13 @@ void parser_prod___AFalseExpr___init_afalseexpr(val_t  self, val_t  param0, int*
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AFalseExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AFalseExpr___empty_init))(variable[3], init_table /*YYY*/) /*AFalseExpr::empty_init*/;
+  CALL_parser_prod___AFalseExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AFalseExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AFalseExpr____n_kwfalse(variable[3]) /*AFalseExpr::_n_kwfalse*/ =  variable[1] /*n_kwfalse*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwfalse*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwfalse*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwfalse*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwfalse*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwfalse*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwfalse*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwfalse*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwfalse*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwfalse*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwfalse*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwfalse*/)( variable[1] /*n_kwfalse*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwfalse*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwfalse*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwfalse*/)( variable[1] /*n_kwfalse*/, variable[3]) /*PNode::parent=*/;
   }
   return_label871: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFalseExpr].i] = 1;
@@ -24335,10 +24339,10 @@ void parser_prod___ANullExpr___n_kwnull__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label872: while(false);
   tracehead = trace.prev;
@@ -24353,16 +24357,16 @@ void parser_prod___ANullExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANullExpr___replace_child, LOCATE_parser_prod, 10045); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[4]) /*ANullExpr::_n_kwnull*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwnull, ID_TKwnull)) /*cast TKwnull*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ANullExpr___replace_child, LOCATE_parser_prod, 10049); nit_exit(1);}
       variable[4] = variable[0];
@@ -24387,11 +24391,11 @@ void parser_prod___ANullExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label874: while(false);
   tracehead = trace.prev;
@@ -24407,11 +24411,11 @@ void parser_prod___ANullExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label875: while(false);
   tracehead = trace.prev;
@@ -24440,13 +24444,13 @@ void parser_prod___ANullExpr___init_anullexpr(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ANullExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___ANullExpr___empty_init))(variable[3], init_table /*YYY*/) /*ANullExpr::empty_init*/;
+  CALL_parser_prod___ANullExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ANullExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ANullExpr____n_kwnull(variable[3]) /*ANullExpr::_n_kwnull*/ =  variable[1] /*n_kwnull*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnull*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwnull*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwnull*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnull*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwnull*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwnull*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwnull*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwnull*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwnull*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwnull*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwnull*/)( variable[1] /*n_kwnull*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwnull*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwnull*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwnull*/)( variable[1] /*n_kwnull*/, variable[3]) /*PNode::parent=*/;
   }
   return_label877: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ANullExpr].i] = 1;
@@ -24463,10 +24467,10 @@ void parser_prod___AIntExpr___n_number__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label878: while(false);
   tracehead = trace.prev;
@@ -24481,16 +24485,16 @@ void parser_prod___AIntExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntExpr___replace_child, LOCATE_parser_prod, 10096); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AIntExpr____n_number(variable[4]) /*AIntExpr::_n_number*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TNumber, ID_TNumber)) /*cast TNumber*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AIntExpr___replace_child, LOCATE_parser_prod, 10100); nit_exit(1);}
       variable[4] = variable[0];
@@ -24515,11 +24519,11 @@ void parser_prod___AIntExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label880: while(false);
   tracehead = trace.prev;
@@ -24535,11 +24539,11 @@ void parser_prod___AIntExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label881: while(false);
   tracehead = trace.prev;
@@ -24568,13 +24572,13 @@ void parser_prod___AIntExpr___init_aintexpr(val_t  self, val_t  param0, int* ini
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AIntExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AIntExpr___empty_init))(variable[3], init_table /*YYY*/) /*AIntExpr::empty_init*/;
+  CALL_parser_prod___AIntExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AIntExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AIntExpr____n_number(variable[3]) /*AIntExpr::_n_number*/ =  variable[1] /*n_number*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_number*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_number*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_number*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_number*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_number*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_number*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_number*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_number*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_number*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_number*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_number*/)( variable[1] /*n_number*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_number*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_number*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_number*/)( variable[1] /*n_number*/, variable[3]) /*PNode::parent=*/;
   }
   return_label883: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AIntExpr].i] = 1;
@@ -24591,10 +24595,10 @@ void parser_prod___AFloatExpr___n_float__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label884: while(false);
   tracehead = trace.prev;
@@ -24609,16 +24613,16 @@ void parser_prod___AFloatExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFloatExpr___replace_child, LOCATE_parser_prod, 10147); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AFloatExpr____n_float(variable[4]) /*AFloatExpr::_n_float*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TFloat, ID_TFloat)) /*cast TFloat*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AFloatExpr___replace_child, LOCATE_parser_prod, 10151); nit_exit(1);}
       variable[4] = variable[0];
@@ -24643,11 +24647,11 @@ void parser_prod___AFloatExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label886: while(false);
   tracehead = trace.prev;
@@ -24663,11 +24667,11 @@ void parser_prod___AFloatExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label887: while(false);
   tracehead = trace.prev;
@@ -24696,13 +24700,13 @@ void parser_prod___AFloatExpr___init_afloatexpr(val_t  self, val_t  param0, int*
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AFloatExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AFloatExpr___empty_init))(variable[3], init_table /*YYY*/) /*AFloatExpr::empty_init*/;
+  CALL_parser_prod___AFloatExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AFloatExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AFloatExpr____n_float(variable[3]) /*AFloatExpr::_n_float*/ =  variable[1] /*n_float*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_float*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_float*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_float*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_float*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_float*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_float*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_float*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_float*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_float*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_float*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_float*/)( variable[1] /*n_float*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_float*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_float*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_float*/)( variable[1] /*n_float*/, variable[3]) /*PNode::parent=*/;
   }
   return_label889: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AFloatExpr].i] = 1;
@@ -24719,10 +24723,10 @@ void parser_prod___ACharExpr___n_char__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label890: while(false);
   tracehead = trace.prev;
@@ -24737,16 +24741,16 @@ void parser_prod___ACharExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACharExpr___replace_child, LOCATE_parser_prod, 10198); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ACharExpr____n_char(variable[4]) /*ACharExpr::_n_char*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TChar, ID_TChar)) /*cast TChar*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ACharExpr___replace_child, LOCATE_parser_prod, 10202); nit_exit(1);}
       variable[4] = variable[0];
@@ -24771,11 +24775,11 @@ void parser_prod___ACharExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label892: while(false);
   tracehead = trace.prev;
@@ -24791,11 +24795,11 @@ void parser_prod___ACharExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label893: while(false);
   tracehead = trace.prev;
@@ -24824,13 +24828,13 @@ void parser_prod___ACharExpr___init_acharexpr(val_t  self, val_t  param0, int* i
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ACharExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___ACharExpr___empty_init))(variable[3], init_table /*YYY*/) /*ACharExpr::empty_init*/;
+  CALL_parser_prod___ACharExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ACharExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___ACharExpr____n_char(variable[3]) /*ACharExpr::_n_char*/ =  variable[1] /*n_char*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_char*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_char*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_char*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_char*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_char*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_char*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_char*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_char*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_char*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_char*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_char*/)( variable[1] /*n_char*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_char*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_char*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_char*/)( variable[1] /*n_char*/, variable[3]) /*PNode::parent=*/;
   }
   return_label895: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ACharExpr].i] = 1;
@@ -24847,10 +24851,10 @@ void parser_prod___AStringExpr___n_string__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label896: while(false);
   tracehead = trace.prev;
@@ -24865,16 +24869,16 @@ void parser_prod___AStringExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStringExpr___replace_child, LOCATE_parser_prod, 10249); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AStringExpr____n_string(variable[4]) /*AStringExpr::_n_string*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TString, ID_TString)) /*cast TString*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStringExpr___replace_child, LOCATE_parser_prod, 10253); nit_exit(1);}
       variable[4] = variable[0];
@@ -24899,11 +24903,11 @@ void parser_prod___AStringExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label898: while(false);
   tracehead = trace.prev;
@@ -24919,11 +24923,11 @@ void parser_prod___AStringExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label899: while(false);
   tracehead = trace.prev;
@@ -24952,13 +24956,13 @@ void parser_prod___AStringExpr___init_astringexpr(val_t  self, val_t  param0, in
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AStringExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AStringExpr___empty_init))(variable[3], init_table /*YYY*/) /*AStringExpr::empty_init*/;
+  CALL_parser_prod___AStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStringExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStringExpr____n_string(variable[3]) /*AStringExpr::_n_string*/ =  variable[1] /*n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
   }
   return_label901: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStringExpr].i] = 1;
@@ -24975,10 +24979,10 @@ void parser_prod___AStartStringExpr___n_string__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label902: while(false);
   tracehead = trace.prev;
@@ -24993,16 +24997,16 @@ void parser_prod___AStartStringExpr___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStartStringExpr___replace_child, LOCATE_parser_prod, 10300); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[4]) /*AStartStringExpr::_n_string*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TStartString, ID_TStartString)) /*cast TStartString*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AStartStringExpr___replace_child, LOCATE_parser_prod, 10304); nit_exit(1);}
       variable[4] = variable[0];
@@ -25027,11 +25031,11 @@ void parser_prod___AStartStringExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label904: while(false);
   tracehead = trace.prev;
@@ -25047,11 +25051,11 @@ void parser_prod___AStartStringExpr___visit_all_reverse(val_t  self, val_t  para
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label905: while(false);
   tracehead = trace.prev;
@@ -25080,13 +25084,13 @@ void parser_prod___AStartStringExpr___init_astartstringexpr(val_t  self, val_t
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AStartStringExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AStartStringExpr___empty_init))(variable[3], init_table /*YYY*/) /*AStartStringExpr::empty_init*/;
+  CALL_parser_prod___AStartStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AStartStringExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AStartStringExpr____n_string(variable[3]) /*AStartStringExpr::_n_string*/ =  variable[1] /*n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
   }
   return_label907: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AStartStringExpr].i] = 1;
@@ -25103,10 +25107,10 @@ void parser_prod___AMidStringExpr___n_string__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label908: while(false);
   tracehead = trace.prev;
@@ -25121,16 +25125,16 @@ void parser_prod___AMidStringExpr___replace_child(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMidStringExpr___replace_child, LOCATE_parser_prod, 10351); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[4]) /*AMidStringExpr::_n_string*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMidString, ID_TMidString)) /*cast TMidString*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMidStringExpr___replace_child, LOCATE_parser_prod, 10355); nit_exit(1);}
       variable[4] = variable[0];
@@ -25155,11 +25159,11 @@ void parser_prod___AMidStringExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label910: while(false);
   tracehead = trace.prev;
@@ -25175,11 +25179,11 @@ void parser_prod___AMidStringExpr___visit_all_reverse(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label911: while(false);
   tracehead = trace.prev;
@@ -25208,13 +25212,13 @@ void parser_prod___AMidStringExpr___init_amidstringexpr(val_t  self, val_t  para
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AMidStringExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AMidStringExpr___empty_init))(variable[3], init_table /*YYY*/) /*AMidStringExpr::empty_init*/;
+  CALL_parser_prod___AMidStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMidStringExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMidStringExpr____n_string(variable[3]) /*AMidStringExpr::_n_string*/ =  variable[1] /*n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
   }
   return_label913: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMidStringExpr].i] = 1;
@@ -25231,10 +25235,10 @@ void parser_prod___AEndStringExpr___n_string__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label914: while(false);
   tracehead = trace.prev;
@@ -25249,16 +25253,16 @@ void parser_prod___AEndStringExpr___replace_child(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEndStringExpr___replace_child, LOCATE_parser_prod, 10402); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[4]) /*AEndStringExpr::_n_string*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TEndString, ID_TEndString)) /*cast TEndString*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AEndStringExpr___replace_child, LOCATE_parser_prod, 10406); nit_exit(1);}
       variable[4] = variable[0];
@@ -25283,11 +25287,11 @@ void parser_prod___AEndStringExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label916: while(false);
   tracehead = trace.prev;
@@ -25303,11 +25307,11 @@ void parser_prod___AEndStringExpr___visit_all_reverse(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label917: while(false);
   tracehead = trace.prev;
@@ -25336,13 +25340,13 @@ void parser_prod___AEndStringExpr___init_aendstringexpr(val_t  self, val_t  para
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AEndStringExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AEndStringExpr___empty_init))(variable[3], init_table /*YYY*/) /*AEndStringExpr::empty_init*/;
+  CALL_parser_prod___AEndStringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AEndStringExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AEndStringExpr____n_string(variable[3]) /*AEndStringExpr::_n_string*/ =  variable[1] /*n_string*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_string*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_string*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_string*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_string*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_string*/)( variable[1] /*n_string*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_string*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_string*/)( variable[1] /*n_string*/, variable[3]) /*PNode::parent=*/;
   }
   return_label919: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AEndStringExpr].i] = 1;
@@ -25358,42 +25362,42 @@ void parser_prod___ASuperstringExpr___replace_child(val_t  self, val_t  param0,
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperstringExpr___replace_child, LOCATE_parser_prod, 10448); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[4]) /*ASuperstringExpr::_n_exprs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[7]) /*ASuperstringExpr::_n_exprs*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperstringExpr___replace_child, LOCATE_parser_prod, 10452); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[7]) /*ASuperstringExpr::_n_exprs*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[7]) /*ASuperstringExpr::_n_exprs*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label920;
     }
     continue_921: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_921: while(0);
   return_label920: while(false);
@@ -25410,15 +25414,15 @@ void parser_prod___ASuperstringExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[3]) /*ASuperstringExpr::_n_exprs*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_923: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_923: while(0);
   return_label922: while(false);
@@ -25435,15 +25439,15 @@ void parser_prod___ASuperstringExpr___visit_all_reverse(val_t  self, val_t  para
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[4]) /*ASuperstringExpr::_n_exprs*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[4]) /*ASuperstringExpr::_n_exprs*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_925: while(0);
@@ -25476,25 +25480,25 @@ void parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t  self, val_t
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ASuperstringExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ASuperstringExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___ASuperstringExpr___empty_init))(variable[3], init_table /*YYY*/) /*ASuperstringExpr::empty_init*/;
+  CALL_parser_prod___ASuperstringExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ASuperstringExpr::empty_init*/;
   variable[3] = variable[0];
   variable[4] = NEW_List_list___List___init(); /*new List[PExpr]*/
   ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[3]) /*ASuperstringExpr::_n_exprs*/ = variable[4];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_exprs*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_exprs*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_exprs*/)( variable[1] /*n_exprs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ASuperstringExpr___init_asuperstringexpr, LOCATE_parser_prod, 10440); nit_exit(1);}
     variable[6] = variable[0];
     variable[6] = ATTR_parser_nodes___ASuperstringExpr____n_exprs(variable[6]) /*ASuperstringExpr::_n_exprs*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
     continue_928: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_928: while(0);
   return_label927: while(false);
@@ -25512,10 +25516,10 @@ void parser_prod___AParExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label929: while(false);
   tracehead = trace.prev;
@@ -25530,16 +25534,16 @@ void parser_prod___AParExpr___replace_child(val_t  self, val_t  param0, val_t  p
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParExpr___replace_child, LOCATE_parser_prod, 10505); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[4]) /*AProxyExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AParExpr___replace_child, LOCATE_parser_prod, 10509); nit_exit(1);}
       variable[4] = variable[0];
@@ -25564,11 +25568,11 @@ void parser_prod___AParExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label931: while(false);
   tracehead = trace.prev;
@@ -25584,11 +25588,11 @@ void parser_prod___AParExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label932: while(false);
   tracehead = trace.prev;
@@ -25617,13 +25621,13 @@ void parser_prod___AParExpr___init_aparexpr(val_t  self, val_t  param0, int* ini
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AParExpr___empty_init_t)CALL(variable[3],COLOR_parser_prod___AParExpr___empty_init))(variable[3], init_table /*YYY*/) /*AParExpr::empty_init*/;
+  CALL_parser_prod___AParExpr___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AParExpr::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AProxyExpr____n_expr(variable[3]) /*AProxyExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[3]) /*PNode::parent=*/;
   }
   return_label934: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AParExpr].i] = 1;
@@ -25640,10 +25644,10 @@ void parser_prod___AAsCastExpr___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label935: while(false);
   tracehead = trace.prev;
@@ -25659,10 +25663,10 @@ void parser_prod___AAsCastExpr___n_kwas__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label936: while(false);
   tracehead = trace.prev;
@@ -25678,10 +25682,10 @@ void parser_prod___AAsCastExpr___n_type__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label937: while(false);
   tracehead = trace.prev;
@@ -25696,16 +25700,16 @@ void parser_prod___AAsCastExpr___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10580); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[4]) /*AAsCastExpr::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10584); nit_exit(1);}
       variable[4] = variable[0];
@@ -25718,12 +25722,12 @@ void parser_prod___AAsCastExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[4]) /*AAsCastExpr::_n_kwas*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwas, ID_TKwas)) /*cast TKwas*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10594); nit_exit(1);}
       variable[4] = variable[0];
@@ -25736,12 +25740,12 @@ void parser_prod___AAsCastExpr___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[4]) /*AAsCastExpr::_n_type*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PType, ID_PType)) /*cast PType*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AAsCastExpr___replace_child, LOCATE_parser_prod, 10604); nit_exit(1);}
       variable[4] = variable[0];
@@ -25766,27 +25770,27 @@ void parser_prod___AAsCastExpr___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label939: while(false);
   tracehead = trace.prev;
@@ -25802,27 +25806,27 @@ void parser_prod___AAsCastExpr___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAsCastExpr____n_expr(variable[3]) /*AAsCastExpr::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[3]) /*AAsCastExpr::_n_kwas*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AAsCastExpr____n_type(variable[3]) /*AAsCastExpr::_n_type*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label940: while(false);
   tracehead = trace.prev;
@@ -25853,27 +25857,27 @@ void parser_prod___AAsCastExpr___init_aascastexpr(val_t  self, val_t  param0, va
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i]) return;
   variable[5] = variable[0];
-  ((parser_prod___AAsCastExpr___empty_init_t)CALL(variable[5],COLOR_parser_prod___AAsCastExpr___empty_init))(variable[5], init_table /*YYY*/) /*AAsCastExpr::empty_init*/;
+  CALL_parser_prod___AAsCastExpr___empty_init(variable[5])(variable[5], init_table /*YYY*/) /*AAsCastExpr::empty_init*/;
   variable[5] = variable[0];
   ATTR_parser_nodes___AAsCastExpr____n_expr(variable[5]) /*AAsCastExpr::_n_expr*/ =  variable[1] /*n_expr*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_expr*/)( variable[1] /*n_expr*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AAsCastExpr____n_kwas(variable[5]) /*AAsCastExpr::_n_kwas*/ =  variable[2] /*n_kwas*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwas*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwas*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwas*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwas*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_kwas*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_kwas*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_kwas*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_kwas*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_kwas*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_kwas*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_kwas*/)( variable[2] /*n_kwas*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_kwas*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_kwas*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_kwas*/)( variable[2] /*n_kwas*/, variable[5]) /*PNode::parent=*/;
   }
   variable[5] = variable[0];
   ATTR_parser_nodes___AAsCastExpr____n_type(variable[5]) /*AAsCastExpr::_n_type*/ =  variable[3] /*n_type*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_type*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_type*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_type*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_type*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_type*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_type*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_type*/)( variable[3] /*n_type*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_type*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_type*/, variable[5]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_type*/)( variable[3] /*n_type*/, variable[5]) /*PNode::parent=*/;
   }
   return_label942: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AAsCastExpr].i] = 1;
@@ -25890,10 +25894,10 @@ void parser_prod___APlusAssignOp___n_pluseq__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label943: while(false);
   tracehead = trace.prev;
@@ -25908,16 +25912,16 @@ void parser_prod___APlusAssignOp___replace_child(val_t  self, val_t  param0, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusAssignOp___replace_child, LOCATE_parser_prod, 10663); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[4]) /*APlusAssignOp::_n_pluseq*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TPluseq, ID_TPluseq)) /*cast TPluseq*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___APlusAssignOp___replace_child, LOCATE_parser_prod, 10667); nit_exit(1);}
       variable[4] = variable[0];
@@ -25942,11 +25946,11 @@ void parser_prod___APlusAssignOp___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label945: while(false);
   tracehead = trace.prev;
@@ -25962,11 +25966,11 @@ void parser_prod___APlusAssignOp___visit_all_reverse(val_t  self, val_t  param0)
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label946: while(false);
   tracehead = trace.prev;
@@ -25995,13 +25999,13 @@ void parser_prod___APlusAssignOp___init_aplusassignop(val_t  self, val_t  param0
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___APlusAssignOp___empty_init_t)CALL(variable[3],COLOR_parser_prod___APlusAssignOp___empty_init))(variable[3], init_table /*YYY*/) /*APlusAssignOp::empty_init*/;
+  CALL_parser_prod___APlusAssignOp___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*APlusAssignOp::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___APlusAssignOp____n_pluseq(variable[3]) /*APlusAssignOp::_n_pluseq*/ =  variable[1] /*n_pluseq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_pluseq*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_pluseq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_pluseq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_pluseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_pluseq*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_pluseq*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_pluseq*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_pluseq*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_pluseq*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_pluseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_pluseq*/)( variable[1] /*n_pluseq*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_pluseq*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_pluseq*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_pluseq*/)( variable[1] /*n_pluseq*/, variable[3]) /*PNode::parent=*/;
   }
   return_label948: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_APlusAssignOp].i] = 1;
@@ -26018,10 +26022,10 @@ void parser_prod___AMinusAssignOp___n_minuseq__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label949: while(false);
   tracehead = trace.prev;
@@ -26036,16 +26040,16 @@ void parser_prod___AMinusAssignOp___replace_child(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusAssignOp___replace_child, LOCATE_parser_prod, 10714); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[4]) /*AMinusAssignOp::_n_minuseq*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TMinuseq, ID_TMinuseq)) /*cast TMinuseq*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AMinusAssignOp___replace_child, LOCATE_parser_prod, 10718); nit_exit(1);}
       variable[4] = variable[0];
@@ -26070,11 +26074,11 @@ void parser_prod___AMinusAssignOp___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label951: while(false);
   tracehead = trace.prev;
@@ -26090,11 +26094,11 @@ void parser_prod___AMinusAssignOp___visit_all_reverse(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label952: while(false);
   tracehead = trace.prev;
@@ -26123,13 +26127,13 @@ void parser_prod___AMinusAssignOp___init_aminusassignop(val_t  self, val_t  para
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___AMinusAssignOp___empty_init_t)CALL(variable[3],COLOR_parser_prod___AMinusAssignOp___empty_init))(variable[3], init_table /*YYY*/) /*AMinusAssignOp::empty_init*/;
+  CALL_parser_prod___AMinusAssignOp___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*AMinusAssignOp::empty_init*/;
   variable[3] = variable[0];
   ATTR_parser_nodes___AMinusAssignOp____n_minuseq(variable[3]) /*AMinusAssignOp::_n_minuseq*/ =  variable[1] /*n_minuseq*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minuseq*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_minuseq*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_minuseq*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minuseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_minuseq*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_minuseq*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_minuseq*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_minuseq*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_minuseq*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_minuseq*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_minuseq*/)( variable[1] /*n_minuseq*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_minuseq*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_minuseq*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_minuseq*/)( variable[1] /*n_minuseq*/, variable[3]) /*PNode::parent=*/;
   }
   return_label954: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AMinusAssignOp].i] = 1;
@@ -26146,10 +26150,10 @@ void parser_prod___AClosureDef___n_kwwith__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label955: while(false);
   tracehead = trace.prev;
@@ -26165,10 +26169,10 @@ void parser_prod___AClosureDef___n_kwdo__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label956: while(false);
   tracehead = trace.prev;
@@ -26184,10 +26188,10 @@ void parser_prod___AClosureDef___n_expr__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label957: while(false);
   tracehead = trace.prev;
@@ -26202,16 +26206,16 @@ void parser_prod___AClosureDef___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 10796); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[4]) /*AClosureDef::_n_kwwith*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwwith, ID_TKwwith)) /*cast TKwwith*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 10800); nit_exit(1);}
       variable[4] = variable[0];
@@ -26224,48 +26228,48 @@ void parser_prod___AClosureDef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[4]) /*AClosureDef::_n_id*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[7]) /*AClosureDef::_n_id*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 10810); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[7]) /*AClosureDef::_n_id*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AClosureDef____n_id(variable[7]) /*AClosureDef::_n_id*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label958;
     }
     continue_959: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_959: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[4]) /*AClosureDef::_n_kwdo*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TKwdo, ID_TKwdo)) /*cast TKwdo*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 10822); nit_exit(1);}
       variable[4] = variable[0];
@@ -26278,12 +26282,12 @@ void parser_prod___AClosureDef___replace_child(val_t  self, val_t  param0, val_t
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDef____n_expr(variable[4]) /*AClosureDef::_n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PExpr, ID_PExpr)) /*cast PExpr*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___replace_child, LOCATE_parser_prod, 10832); nit_exit(1);}
       variable[4] = variable[0];
@@ -26308,40 +26312,40 @@ void parser_prod___AClosureDef___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDef____n_id(variable[3]) /*AClosureDef::_n_id*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_961: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_961: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label960: while(false);
   tracehead = trace.prev;
@@ -26357,23 +26361,23 @@ void parser_prod___AClosureDef___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDef____n_kwwith(variable[3]) /*AClosureDef::_n_kwwith*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[4]) /*AClosureDef::_n_id*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AClosureDef____n_id(variable[4]) /*AClosureDef::_n_id*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_963: while(0);
@@ -26381,19 +26385,19 @@ void parser_prod___AClosureDef___visit_all_reverse(val_t  self, val_t  param0) {
   break_963: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDef____n_kwdo(variable[3]) /*AClosureDef::_n_kwdo*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AClosureDef____n_expr(variable[3]) /*AClosureDef::_n_expr*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label962: while(false);
   tracehead = trace.prev;
@@ -26425,47 +26429,47 @@ void parser_prod___AClosureDef___init_aclosuredef(val_t  self, val_t  param0, va
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i]) return;
   variable[6] = variable[0];
-  ((parser_prod___AClosureDef___empty_init_t)CALL(variable[6],COLOR_parser_prod___AClosureDef___empty_init))(variable[6], init_table /*YYY*/) /*AClosureDef::empty_init*/;
+  CALL_parser_prod___AClosureDef___empty_init(variable[6])(variable[6], init_table /*YYY*/) /*AClosureDef::empty_init*/;
   variable[6] = variable[0];
   ATTR_parser_nodes___AClosureDef____n_kwwith(variable[6]) /*AClosureDef::_n_kwwith*/ =  variable[1] /*n_kwwith*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwith*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwwith*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwwith*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwith*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n_kwwith*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n_kwwith*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n_kwwith*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n_kwwith*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n_kwwith*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n_kwwith*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n_kwwith*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n_kwwith*/)( variable[1] /*n_kwwith*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   variable[7] = NEW_List_list___List___init(); /*new List[TId]*/
   ATTR_parser_nodes___AClosureDef____n_id(variable[6]) /*AClosureDef::_n_id*/ = variable[7];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*n_id*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*n_id*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*n_id*/)( variable[2] /*n_id*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
     variable[9] = TAG_Bool(( variable[8] /*n*/==NIT_NULL) || VAL_ISA( variable[8] /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
     if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AClosureDef___init_aclosuredef, LOCATE_parser_prod, 10780); nit_exit(1);}
     variable[9] = variable[0];
     variable[9] = ATTR_parser_nodes___AClosureDef____n_id(variable[9]) /*AClosureDef::_n_id*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[8] /*n*/) /*IndexedCollection::add*/;
     variable[9] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[8] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[8] /*n*/)( variable[8] /*n*/, variable[9]) /*PNode::parent=*/;
     continue_966: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_966: while(0);
   variable[6] = variable[0];
   ATTR_parser_nodes___AClosureDef____n_kwdo(variable[6]) /*AClosureDef::_n_kwdo*/ =  variable[3] /*n_kwdo*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwdo*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*n_kwdo*/,COLOR_kernel___Object_____eqeq))( variable[3] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*n_kwdo*/ ==  NIT_NULL /*null*/) || (( variable[3] /*n_kwdo*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*n_kwdo*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[3] /*n_kwdo*/,COLOR_parser_prod___PNode___parent__eq))( variable[3] /*n_kwdo*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[3] /*n_kwdo*/)( variable[3] /*n_kwdo*/, variable[6]) /*PNode::parent=*/;
   }
   variable[6] = variable[0];
   ATTR_parser_nodes___AClosureDef____n_expr(variable[6]) /*AClosureDef::_n_expr*/ =  variable[4] /*n_expr*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_expr*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*n_expr*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*n_expr*/,COLOR_kernel___Object_____eqeq))( variable[4] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*n_expr*/ ==  NIT_NULL /*null*/) || (( variable[4] /*n_expr*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*n_expr*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*n_expr*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*n_expr*/)( variable[4] /*n_expr*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[4] /*n_expr*/,COLOR_parser_prod___PNode___parent__eq))( variable[4] /*n_expr*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[4] /*n_expr*/)( variable[4] /*n_expr*/, variable[6]) /*PNode::parent=*/;
   }
   return_label965: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AClosureDef].i] = 1;
@@ -26482,10 +26486,10 @@ void parser_prod___AQualified___n_classid__eq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/ =  variable[1] /*n*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::parent=*/;
   }
   return_label967: while(false);
   tracehead = trace.prev;
@@ -26500,52 +26504,52 @@ void parser_prod___AQualified___replace_child(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___replace_child, LOCATE_parser_prod, 10908); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TId, ID_TId)) /*cast TId*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___replace_child, LOCATE_parser_prod, 10912); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label968;
     }
     continue_969: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_969: while(0);
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AQualified____n_classid(variable[4]) /*AQualified::_n_classid*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TClassid, ID_TClassid)) /*cast TClassid*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___replace_child, LOCATE_parser_prod, 10924); nit_exit(1);}
       variable[4] = variable[0];
@@ -26570,24 +26574,24 @@ void parser_prod___AQualified___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AQualified____n_id(variable[3]) /*AQualified::_n_id*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_971: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_971: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label970: while(false);
   tracehead = trace.prev;
@@ -26603,15 +26607,15 @@ void parser_prod___AQualified___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_973: while(0);
@@ -26619,11 +26623,11 @@ void parser_prod___AQualified___visit_all_reverse(val_t  self, val_t  param0) {
   break_973: while(0);
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___AQualified____n_classid(variable[3]) /*AQualified::_n_classid*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label972: while(false);
   tracehead = trace.prev;
@@ -26653,33 +26657,33 @@ void parser_prod___AQualified___init_aqualified(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i]) return;
   variable[4] = variable[0];
-  ((parser_prod___AQualified___empty_init_t)CALL(variable[4],COLOR_parser_prod___AQualified___empty_init))(variable[4], init_table /*YYY*/) /*AQualified::empty_init*/;
+  CALL_parser_prod___AQualified___empty_init(variable[4])(variable[4], init_table /*YYY*/) /*AQualified::empty_init*/;
   variable[4] = variable[0];
   variable[5] = NEW_List_list___List___init(); /*new List[TId]*/
   ATTR_parser_nodes___AQualified____n_id(variable[4]) /*AQualified::_n_id*/ = variable[5];
-  variable[4] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_id*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_id*/) /*AbstractArray::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_id*/)( variable[1] /*n_id*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
     variable[6] = variable[5];
     variable[7] = TAG_Bool(( variable[6] /*n*/==NIT_NULL) || VAL_ISA( variable[6] /*n*/, COLOR_TId, ID_TId)) /*cast TId*/;
     if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___AQualified___init_aqualified, LOCATE_parser_prod, 10896); nit_exit(1);}
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___AQualified____n_id(variable[7]) /*AQualified::_n_id*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  variable[6] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  variable[6] /*n*/) /*IndexedCollection::add*/;
     variable[7] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[6] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[6] /*n*/, variable[7]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[6] /*n*/)( variable[6] /*n*/, variable[7]) /*PNode::parent=*/;
     continue_976: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
   }
   break_976: while(0);
   variable[4] = variable[0];
   ATTR_parser_nodes___AQualified____n_classid(variable[4]) /*AQualified::_n_classid*/ =  variable[2] /*n_classid*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_classid*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_classid*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*n_classid*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_classid*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*n_classid*/,COLOR_kernel___Object_____eqeq))( variable[2] /*n_classid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*n_classid*/ ==  NIT_NULL /*null*/) || (( variable[2] /*n_classid*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*n_classid*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*n_classid*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*n_classid*/)( variable[2] /*n_classid*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*n_classid*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*n_classid*/, variable[4]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[2] /*n_classid*/)( variable[2] /*n_classid*/, variable[4]) /*PNode::parent=*/;
   }
   return_label975: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AQualified].i] = 1;
@@ -26695,42 +26699,42 @@ void parser_prod___ADoc___replace_child(val_t  self, val_t  param0, val_t  param
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoc___replace_child, LOCATE_parser_prod, 10976); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[4]) /*ADoc::_n_comment*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[5] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[4]); /*new Range[Int]*/
   variable[4] = variable[5];
-  variable[4] = ((range___Range___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Range::iterator*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*Iterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/;
     variable[6] = variable[5];
     variable[7] = variable[0];
     variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[7]) /*ADoc::_n_comment*/;
-    variable[7] = ((list___List_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[6] /*i*/) /*List::[]*/;
-    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[6] /*i*/) /*List::[]*/;
+    variable[7] = TAG_Bool((variable[7] ==  variable[1] /*old_child*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  variable[1] /*old_child*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
         if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoc___replace_child, LOCATE_parser_prod, 10980); nit_exit(1);}
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[7]) /*ADoc::_n_comment*/;
-        ((list___List_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
+        CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*i*/,  variable[2] /*new_child*/) /*List::[]=*/;
         variable[7] = variable[0];
-        ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
+        CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[7]) /*PNode::parent=*/;
       } else { /*if*/
         variable[7] = variable[0];
         variable[7] = ATTR_parser_nodes___ADoc____n_comment(variable[7]) /*ADoc::_n_comment*/;
-        ((list___List___remove_at_t)CALL(variable[7],COLOR_abstract_collection___Map___remove_at))(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
+        CALL_abstract_collection___Map___remove_at(variable[7])(variable[7],  variable[6] /*i*/) /*List::remove_at*/;
       }
       goto return_label977;
     }
     continue_978: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
   }
   break_978: while(0);
   return_label977: while(false);
@@ -26747,15 +26751,15 @@ void parser_prod___ADoc___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___ADoc____n_comment(variable[3]) /*ADoc::_n_comment*/;
-  variable[3] = ((list___List___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*List::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((list___ListIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ListIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((list___ListIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ListIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ListIterator::item*/;
     variable[5] = variable[4];
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*n*/) /*Visitor::visit*/;
     continue_980: while(0);
-    ((list___ListIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ListIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ListIterator::next*/;
   }
   break_980: while(0);
   return_label979: while(false);
@@ -26772,15 +26776,15 @@ void parser_prod___ADoc___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[4]) /*ADoc::_n_comment*/;
-  variable[4] = ((list___List___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*List::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*List::length*/;
   variable[3] = variable[4];
   while (true) { /*while*/
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_parser_nodes___ADoc____n_comment(variable[4]) /*ADoc::_n_comment*/;
-    variable[4] = ((list___List_____bra_t)CALL(variable[4],COLOR_abstract_collection___Map_____bra))(variable[4],  variable[3] /*i*/) /*List::[]*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
+    variable[4] = CALL_abstract_collection___Map_____bra(variable[4])(variable[4],  variable[3] /*i*/) /*List::[]*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*Visitor::visit*/;
     variable[4] = TAG_Int(UNTAG_Int( variable[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[3] = variable[4] /*i=*/;
     continue_982: while(0);
@@ -26813,25 +26817,25 @@ void parser_prod___ADoc___init_adoc(val_t  self, val_t  param0, int* init_table)
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ADoc].i]) return;
   variable[3] = variable[0];
-  ((parser_prod___ADoc___empty_init_t)CALL(variable[3],COLOR_parser_prod___ADoc___empty_init))(variable[3], init_table /*YYY*/) /*ADoc::empty_init*/;
+  CALL_parser_prod___ADoc___empty_init(variable[3])(variable[3], init_table /*YYY*/) /*ADoc::empty_init*/;
   variable[3] = variable[0];
   variable[4] = NEW_List_list___List___init(); /*new List[TComment]*/
   ATTR_parser_nodes___ADoc____n_comment(variable[3]) /*ADoc::_n_comment*/ = variable[4];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*n_comment*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*n_comment*/) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*n_comment*/)( variable[1] /*n_comment*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
     variable[6] = TAG_Bool(( variable[5] /*n*/==NIT_NULL) || VAL_ISA( variable[5] /*n*/, COLOR_TComment, ID_TComment)) /*cast TComment*/;
     if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___ADoc___init_adoc, LOCATE_parser_prod, 10968); nit_exit(1);}
     variable[6] = variable[0];
     variable[6] = ATTR_parser_nodes___ADoc____n_comment(variable[6]) /*ADoc::_n_comment*/;
-    ((abstract_collection___IndexedCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[5] /*n*/) /*IndexedCollection::add*/;
     variable[6] = variable[0];
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[5] /*n*/,COLOR_parser_prod___PNode___parent__eq))( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[5] /*n*/)( variable[5] /*n*/, variable[6]) /*PNode::parent=*/;
     continue_985: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_985: while(0);
   return_label984: while(false);
@@ -26848,23 +26852,23 @@ void parser_prod___Start___replace_child(val_t  self, val_t  param0, val_t  para
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*old_child*/,COLOR_kernel___Object_____eqeq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*old_child*/ ==  NIT_NULL /*null*/) || (( variable[1] /*old_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*old_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___Start___replace_child, LOCATE_parser_prod, 11021); nit_exit(1);}
   variable[4] = variable[0];
   variable[4] = ATTR_parser_nodes___Start____n_base(variable[4]) /*Start::_n_base*/;
-  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool((variable[4] ==  variable[1] /*old_child*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*old_child*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*old_child*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*new_child*/,COLOR_kernel___Object_____eqeq))( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[4] = TAG_Bool(( variable[2] /*new_child*/ ==  NIT_NULL /*null*/) || (( variable[2] /*new_child*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*new_child*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*new_child*/)( variable[2] /*new_child*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[4])) { /*if*/
     } else { /*if*/
       variable[4] = variable[0];
-      ((parser_prod___PNode___parent__eq_t)CALL( variable[2] /*new_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
+      CALL_parser_prod___PNode___parent__eq( variable[2] /*new_child*/)( variable[2] /*new_child*/, variable[4]) /*PNode::parent=*/;
       variable[4] = TAG_Bool(( variable[2] /*new_child*/==NIT_NULL) || VAL_ISA( variable[2] /*new_child*/, COLOR_PModule, ID_PModule)) /*cast PModule*/;
       if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_parser_prod___Start___replace_child, LOCATE_parser_prod, 11026); nit_exit(1);}
       variable[4] = variable[0];
       ATTR_parser_nodes___Start____n_base(variable[4]) /*Start::_n_base*/ =  variable[2] /*new_child*/;
     }
-    ((parser_prod___PNode___parent__eq_t)CALL( variable[1] /*old_child*/,COLOR_parser_prod___PNode___parent__eq))( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*PNode::parent=*/;
+    CALL_parser_prod___PNode___parent__eq( variable[1] /*old_child*/)( variable[1] /*old_child*/,  NIT_NULL /*null*/) /*PNode::parent=*/;
     goto return_label986;
   }
   return_label986: while(false);
@@ -26881,11 +26885,11 @@ void parser_prod___Start___visit_all(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label987: while(false);
   tracehead = trace.prev;
@@ -26901,11 +26905,11 @@ void parser_prod___Start___visit_all_reverse(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_parser_nodes___Start____n_base(variable[3]) /*Start::_n_base*/;
-    ((parser_prod___Visitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*Visitor::visit*/;
   }
   return_label988: while(false);
   tracehead = trace.prev;
index 60069dd..ea173db 100644 (file)
 extern const classtable_elt_t VFT_Visitor[];
 extern const char *LOCATE_parser_prod;
 extern const int SFT_parser_prod[];
-#define COLOR_parser_prod___PNode____parent SFT_parser_prod[0]
-#define COLOR_parser_prod___PNode___parent SFT_parser_prod[1]
-#define COLOR_parser_prod___PNode___parent__eq SFT_parser_prod[2]
-#define COLOR_parser_prod___PNode___remove_child SFT_parser_prod[3]
-#define COLOR_parser_prod___PNode___replace_child SFT_parser_prod[4]
-#define COLOR_parser_prod___PNode___replace_with SFT_parser_prod[5]
-#define COLOR_parser_prod___PNode___visit_all SFT_parser_prod[6]
-#define COLOR_parser_prod___PNode___visit_all_reverse SFT_parser_prod[7]
-#define COLOR_parser_prod___PNode___locate SFT_parser_prod[8]
-#define COLOR_parser_prod___PNode___line_number SFT_parser_prod[9]
-#define COLOR_parser_prod___PNode___printl SFT_parser_prod[10]
-#define COLOR_parser_prod___Prod____first_token SFT_parser_prod[11]
-#define COLOR_parser_prod___Prod____last_token SFT_parser_prod[12]
-#define COLOR_parser_prod___Prod___first_token SFT_parser_prod[13]
-#define COLOR_parser_prod___Prod___first_token__eq SFT_parser_prod[14]
-#define COLOR_parser_prod___Prod___last_token SFT_parser_prod[15]
-#define COLOR_parser_prod___Prod___last_token__eq SFT_parser_prod[16]
-#define COLOR_SUPER_parser_prod___Prod___replace_with SFT_parser_prod[17]
-#define ID_Visitor SFT_parser_prod[18]
-#define COLOR_Visitor SFT_parser_prod[19]
-#define INIT_TABLE_POS_Visitor SFT_parser_prod[20]
-#define COLOR_parser_prod___Visitor___visit SFT_parser_prod[21]
-#define COLOR_parser_prod___Visitor___init SFT_parser_prod[22]
-#define COLOR_parser_prod___AModule___empty_init SFT_parser_prod[23]
-#define COLOR_parser_prod___AModule___init_amodule SFT_parser_prod[24]
-#define COLOR_parser_prod___APackagedecl___empty_init SFT_parser_prod[25]
-#define COLOR_parser_prod___APackagedecl___init_apackagedecl SFT_parser_prod[26]
-#define COLOR_parser_prod___AImport___empty_init SFT_parser_prod[27]
-#define COLOR_parser_prod___AImport___init_aimport SFT_parser_prod[28]
-#define COLOR_parser_prod___ANoImport___empty_init SFT_parser_prod[29]
-#define COLOR_parser_prod___ANoImport___init_anoimport SFT_parser_prod[30]
-#define COLOR_parser_prod___APublicVisibility___empty_init SFT_parser_prod[31]
-#define COLOR_parser_prod___APublicVisibility___init_apublicvisibility SFT_parser_prod[32]
-#define COLOR_parser_prod___APrivateVisibility___empty_init SFT_parser_prod[33]
-#define COLOR_parser_prod___APrivateVisibility___init_aprivatevisibility SFT_parser_prod[34]
-#define COLOR_parser_prod___AProtectedVisibility___empty_init SFT_parser_prod[35]
-#define COLOR_parser_prod___AProtectedVisibility___init_aprotectedvisibility SFT_parser_prod[36]
-#define COLOR_parser_prod___AIntrudeVisibility___empty_init SFT_parser_prod[37]
-#define COLOR_parser_prod___AIntrudeVisibility___init_aintrudevisibility SFT_parser_prod[38]
-#define COLOR_parser_prod___AClassdef___empty_init SFT_parser_prod[39]
-#define COLOR_parser_prod___AClassdef___init_aclassdef SFT_parser_prod[40]
-#define COLOR_parser_prod___ATopClassdef___empty_init SFT_parser_prod[41]
-#define COLOR_parser_prod___ATopClassdef___init_atopclassdef SFT_parser_prod[42]
-#define COLOR_parser_prod___AMainClassdef___empty_init SFT_parser_prod[43]
-#define COLOR_parser_prod___AMainClassdef___init_amainclassdef SFT_parser_prod[44]
-#define COLOR_parser_prod___AConcreteClasskind___empty_init SFT_parser_prod[45]
-#define COLOR_parser_prod___AConcreteClasskind___init_aconcreteclasskind SFT_parser_prod[46]
-#define COLOR_parser_prod___AAbstractClasskind___empty_init SFT_parser_prod[47]
-#define COLOR_parser_prod___AAbstractClasskind___init_aabstractclasskind SFT_parser_prod[48]
-#define COLOR_parser_prod___AInterfaceClasskind___empty_init SFT_parser_prod[49]
-#define COLOR_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind SFT_parser_prod[50]
-#define COLOR_parser_prod___AUniversalClasskind___empty_init SFT_parser_prod[51]
-#define COLOR_parser_prod___AUniversalClasskind___init_auniversalclasskind SFT_parser_prod[52]
-#define COLOR_parser_prod___AFormaldef___empty_init SFT_parser_prod[53]
-#define COLOR_parser_prod___AFormaldef___init_aformaldef SFT_parser_prod[54]
-#define COLOR_parser_prod___ASuperclass___empty_init SFT_parser_prod[55]
-#define COLOR_parser_prod___ASuperclass___init_asuperclass SFT_parser_prod[56]
-#define COLOR_parser_prod___AAttrPropdef___empty_init SFT_parser_prod[57]
-#define COLOR_parser_prod___AAttrPropdef___init_aattrpropdef SFT_parser_prod[58]
-#define COLOR_parser_prod___AMethPropdef___empty_init SFT_parser_prod[59]
-#define COLOR_parser_prod___AMethPropdef___init_amethpropdef SFT_parser_prod[60]
-#define COLOR_parser_prod___ADeferredMethPropdef___empty_init SFT_parser_prod[61]
-#define COLOR_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef SFT_parser_prod[62]
-#define COLOR_parser_prod___AInternMethPropdef___empty_init SFT_parser_prod[63]
-#define COLOR_parser_prod___AInternMethPropdef___init_ainternmethpropdef SFT_parser_prod[64]
-#define COLOR_parser_prod___AExternMethPropdef___empty_init SFT_parser_prod[65]
-#define COLOR_parser_prod___AExternMethPropdef___init_aexternmethpropdef SFT_parser_prod[66]
-#define COLOR_parser_prod___AConcreteMethPropdef___empty_init SFT_parser_prod[67]
-#define COLOR_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef SFT_parser_prod[68]
-#define COLOR_parser_prod___AConcreteInitPropdef___empty_init SFT_parser_prod[69]
-#define COLOR_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef SFT_parser_prod[70]
-#define COLOR_parser_prod___AMainMethPropdef___empty_init SFT_parser_prod[71]
-#define COLOR_parser_prod___AMainMethPropdef___init_amainmethpropdef SFT_parser_prod[72]
-#define COLOR_parser_prod___ATypePropdef___empty_init SFT_parser_prod[73]
-#define COLOR_parser_prod___ATypePropdef___init_atypepropdef SFT_parser_prod[74]
-#define COLOR_parser_prod___AReadAble___empty_init SFT_parser_prod[75]
-#define COLOR_parser_prod___AReadAble___init_areadable SFT_parser_prod[76]
-#define COLOR_parser_prod___AWriteAble___empty_init SFT_parser_prod[77]
-#define COLOR_parser_prod___AWriteAble___init_awriteable SFT_parser_prod[78]
-#define COLOR_parser_prod___AIdMethid___empty_init SFT_parser_prod[79]
-#define COLOR_parser_prod___AIdMethid___init_aidmethid SFT_parser_prod[80]
-#define COLOR_parser_prod___APlusMethid___empty_init SFT_parser_prod[81]
-#define COLOR_parser_prod___APlusMethid___init_aplusmethid SFT_parser_prod[82]
-#define COLOR_parser_prod___AMinusMethid___empty_init SFT_parser_prod[83]
-#define COLOR_parser_prod___AMinusMethid___init_aminusmethid SFT_parser_prod[84]
-#define COLOR_parser_prod___AStarMethid___empty_init SFT_parser_prod[85]
-#define COLOR_parser_prod___AStarMethid___init_astarmethid SFT_parser_prod[86]
-#define COLOR_parser_prod___ASlashMethid___empty_init SFT_parser_prod[87]
-#define COLOR_parser_prod___ASlashMethid___init_aslashmethid SFT_parser_prod[88]
-#define COLOR_parser_prod___APercentMethid___empty_init SFT_parser_prod[89]
-#define COLOR_parser_prod___APercentMethid___init_apercentmethid SFT_parser_prod[90]
-#define COLOR_parser_prod___AEqMethid___empty_init SFT_parser_prod[91]
-#define COLOR_parser_prod___AEqMethid___init_aeqmethid SFT_parser_prod[92]
-#define COLOR_parser_prod___ANeMethid___empty_init SFT_parser_prod[93]
-#define COLOR_parser_prod___ANeMethid___init_anemethid SFT_parser_prod[94]
-#define COLOR_parser_prod___ALeMethid___empty_init SFT_parser_prod[95]
-#define COLOR_parser_prod___ALeMethid___init_alemethid SFT_parser_prod[96]
-#define COLOR_parser_prod___AGeMethid___empty_init SFT_parser_prod[97]
-#define COLOR_parser_prod___AGeMethid___init_agemethid SFT_parser_prod[98]
-#define COLOR_parser_prod___ALtMethid___empty_init SFT_parser_prod[99]
-#define COLOR_parser_prod___ALtMethid___init_altmethid SFT_parser_prod[100]
-#define COLOR_parser_prod___AGtMethid___empty_init SFT_parser_prod[101]
-#define COLOR_parser_prod___AGtMethid___init_agtmethid SFT_parser_prod[102]
-#define COLOR_parser_prod___ABraMethid___empty_init SFT_parser_prod[103]
-#define COLOR_parser_prod___ABraMethid___init_abramethid SFT_parser_prod[104]
-#define COLOR_parser_prod___AStarshipMethid___empty_init SFT_parser_prod[105]
-#define COLOR_parser_prod___AStarshipMethid___init_astarshipmethid SFT_parser_prod[106]
-#define COLOR_parser_prod___AAssignMethid___empty_init SFT_parser_prod[107]
-#define COLOR_parser_prod___AAssignMethid___init_aassignmethid SFT_parser_prod[108]
-#define COLOR_parser_prod___ABraassignMethid___empty_init SFT_parser_prod[109]
-#define COLOR_parser_prod___ABraassignMethid___init_abraassignmethid SFT_parser_prod[110]
-#define COLOR_parser_prod___ASignature___empty_init SFT_parser_prod[111]
-#define COLOR_parser_prod___ASignature___init_asignature SFT_parser_prod[112]
-#define COLOR_parser_prod___AParam___empty_init SFT_parser_prod[113]
-#define COLOR_parser_prod___AParam___init_aparam SFT_parser_prod[114]
-#define COLOR_parser_prod___AClosureDecl___empty_init SFT_parser_prod[115]
-#define COLOR_parser_prod___AClosureDecl___init_aclosuredecl SFT_parser_prod[116]
-#define COLOR_parser_prod___AType___empty_init SFT_parser_prod[117]
-#define COLOR_parser_prod___AType___init_atype SFT_parser_prod[118]
-#define COLOR_parser_prod___ABlockExpr___empty_init SFT_parser_prod[119]
-#define COLOR_parser_prod___ABlockExpr___init_ablockexpr SFT_parser_prod[120]
-#define COLOR_parser_prod___AVardeclExpr___empty_init SFT_parser_prod[121]
-#define COLOR_parser_prod___AVardeclExpr___init_avardeclexpr SFT_parser_prod[122]
-#define COLOR_parser_prod___AReturnExpr___empty_init SFT_parser_prod[123]
-#define COLOR_parser_prod___AReturnExpr___init_areturnexpr SFT_parser_prod[124]
-#define COLOR_parser_prod___ABreakExpr___empty_init SFT_parser_prod[125]
-#define COLOR_parser_prod___ABreakExpr___init_abreakexpr SFT_parser_prod[126]
-#define COLOR_parser_prod___AAbortExpr___empty_init SFT_parser_prod[127]
-#define COLOR_parser_prod___AAbortExpr___init_aabortexpr SFT_parser_prod[128]
-#define COLOR_parser_prod___AContinueExpr___empty_init SFT_parser_prod[129]
-#define COLOR_parser_prod___AContinueExpr___init_acontinueexpr SFT_parser_prod[130]
-#define COLOR_parser_prod___ADoExpr___empty_init SFT_parser_prod[131]
-#define COLOR_parser_prod___ADoExpr___init_adoexpr SFT_parser_prod[132]
-#define COLOR_parser_prod___AIfExpr___empty_init SFT_parser_prod[133]
-#define COLOR_parser_prod___AIfExpr___init_aifexpr SFT_parser_prod[134]
-#define COLOR_parser_prod___AIfexprExpr___empty_init SFT_parser_prod[135]
-#define COLOR_parser_prod___AIfexprExpr___init_aifexprexpr SFT_parser_prod[136]
-#define COLOR_parser_prod___AWhileExpr___empty_init SFT_parser_prod[137]
-#define COLOR_parser_prod___AWhileExpr___init_awhileexpr SFT_parser_prod[138]
-#define COLOR_parser_prod___AForExpr___empty_init SFT_parser_prod[139]
-#define COLOR_parser_prod___AForExpr___init_aforexpr SFT_parser_prod[140]
-#define COLOR_parser_prod___AForVardeclExpr___empty_init SFT_parser_prod[141]
-#define COLOR_parser_prod___AForVardeclExpr___init_aforvardeclexpr SFT_parser_prod[142]
-#define COLOR_parser_prod___AAssertExpr___empty_init SFT_parser_prod[143]
-#define COLOR_parser_prod___AAssertExpr___init_aassertexpr SFT_parser_prod[144]
-#define COLOR_parser_prod___AOnceExpr___empty_init SFT_parser_prod[145]
-#define COLOR_parser_prod___AOnceExpr___init_aonceexpr SFT_parser_prod[146]
-#define COLOR_parser_prod___ASendExpr___empty_init SFT_parser_prod[147]
-#define COLOR_parser_prod___ASendExpr___init_asendexpr SFT_parser_prod[148]
-#define COLOR_parser_prod___ABinopExpr___empty_init SFT_parser_prod[149]
-#define COLOR_parser_prod___ABinopExpr___init_abinopexpr SFT_parser_prod[150]
-#define COLOR_parser_prod___AOrExpr___empty_init SFT_parser_prod[151]
-#define COLOR_parser_prod___AOrExpr___init_aorexpr SFT_parser_prod[152]
-#define COLOR_parser_prod___AAndExpr___empty_init SFT_parser_prod[153]
-#define COLOR_parser_prod___AAndExpr___init_aandexpr SFT_parser_prod[154]
-#define COLOR_parser_prod___ANotExpr___empty_init SFT_parser_prod[155]
-#define COLOR_parser_prod___ANotExpr___init_anotexpr SFT_parser_prod[156]
-#define COLOR_parser_prod___AEqExpr___empty_init SFT_parser_prod[157]
-#define COLOR_parser_prod___AEqExpr___init_aeqexpr SFT_parser_prod[158]
-#define COLOR_parser_prod___AEeExpr___empty_init SFT_parser_prod[159]
-#define COLOR_parser_prod___AEeExpr___init_aeeexpr SFT_parser_prod[160]
-#define COLOR_parser_prod___ANeExpr___empty_init SFT_parser_prod[161]
-#define COLOR_parser_prod___ANeExpr___init_aneexpr SFT_parser_prod[162]
-#define COLOR_parser_prod___ALtExpr___empty_init SFT_parser_prod[163]
-#define COLOR_parser_prod___ALtExpr___init_altexpr SFT_parser_prod[164]
-#define COLOR_parser_prod___ALeExpr___empty_init SFT_parser_prod[165]
-#define COLOR_parser_prod___ALeExpr___init_aleexpr SFT_parser_prod[166]
-#define COLOR_parser_prod___AGtExpr___empty_init SFT_parser_prod[167]
-#define COLOR_parser_prod___AGtExpr___init_agtexpr SFT_parser_prod[168]
-#define COLOR_parser_prod___AGeExpr___empty_init SFT_parser_prod[169]
-#define COLOR_parser_prod___AGeExpr___init_ageexpr SFT_parser_prod[170]
-#define COLOR_parser_prod___AIsaExpr___empty_init SFT_parser_prod[171]
-#define COLOR_parser_prod___AIsaExpr___init_aisaexpr SFT_parser_prod[172]
-#define COLOR_parser_prod___APlusExpr___empty_init SFT_parser_prod[173]
-#define COLOR_parser_prod___APlusExpr___init_aplusexpr SFT_parser_prod[174]
-#define COLOR_parser_prod___AMinusExpr___empty_init SFT_parser_prod[175]
-#define COLOR_parser_prod___AMinusExpr___init_aminusexpr SFT_parser_prod[176]
-#define COLOR_parser_prod___AStarshipExpr___empty_init SFT_parser_prod[177]
-#define COLOR_parser_prod___AStarshipExpr___init_astarshipexpr SFT_parser_prod[178]
-#define COLOR_parser_prod___AStarExpr___empty_init SFT_parser_prod[179]
-#define COLOR_parser_prod___AStarExpr___init_astarexpr SFT_parser_prod[180]
-#define COLOR_parser_prod___ASlashExpr___empty_init SFT_parser_prod[181]
-#define COLOR_parser_prod___ASlashExpr___init_aslashexpr SFT_parser_prod[182]
-#define COLOR_parser_prod___APercentExpr___empty_init SFT_parser_prod[183]
-#define COLOR_parser_prod___APercentExpr___init_apercentexpr SFT_parser_prod[184]
-#define COLOR_parser_prod___AUminusExpr___empty_init SFT_parser_prod[185]
-#define COLOR_parser_prod___AUminusExpr___init_auminusexpr SFT_parser_prod[186]
-#define COLOR_parser_prod___ANewExpr___empty_init SFT_parser_prod[187]
-#define COLOR_parser_prod___ANewExpr___init_anewexpr SFT_parser_prod[188]
-#define COLOR_parser_prod___AAttrExpr___empty_init SFT_parser_prod[189]
-#define COLOR_parser_prod___AAttrExpr___init_aattrexpr SFT_parser_prod[190]
-#define COLOR_parser_prod___AAttrAssignExpr___empty_init SFT_parser_prod[191]
-#define COLOR_parser_prod___AAttrAssignExpr___init_aattrassignexpr SFT_parser_prod[192]
-#define COLOR_parser_prod___AAttrReassignExpr___empty_init SFT_parser_prod[193]
-#define COLOR_parser_prod___AAttrReassignExpr___init_aattrreassignexpr SFT_parser_prod[194]
-#define COLOR_parser_prod___ACallExpr___empty_init SFT_parser_prod[195]
-#define COLOR_parser_prod___ACallExpr___init_acallexpr SFT_parser_prod[196]
-#define COLOR_parser_prod___ACallAssignExpr___empty_init SFT_parser_prod[197]
-#define COLOR_parser_prod___ACallAssignExpr___init_acallassignexpr SFT_parser_prod[198]
-#define COLOR_parser_prod___ACallReassignExpr___empty_init SFT_parser_prod[199]
-#define COLOR_parser_prod___ACallReassignExpr___init_acallreassignexpr SFT_parser_prod[200]
-#define COLOR_parser_prod___ASuperExpr___empty_init SFT_parser_prod[201]
-#define COLOR_parser_prod___ASuperExpr___init_asuperexpr SFT_parser_prod[202]
-#define COLOR_parser_prod___AInitExpr___empty_init SFT_parser_prod[203]
-#define COLOR_parser_prod___AInitExpr___init_ainitexpr SFT_parser_prod[204]
-#define COLOR_parser_prod___ABraExpr___empty_init SFT_parser_prod[205]
-#define COLOR_parser_prod___ABraExpr___init_abraexpr SFT_parser_prod[206]
-#define COLOR_parser_prod___ABraAssignExpr___empty_init SFT_parser_prod[207]
-#define COLOR_parser_prod___ABraAssignExpr___init_abraassignexpr SFT_parser_prod[208]
-#define COLOR_parser_prod___ABraReassignExpr___empty_init SFT_parser_prod[209]
-#define COLOR_parser_prod___ABraReassignExpr___init_abrareassignexpr SFT_parser_prod[210]
-#define COLOR_parser_prod___AVarExpr___empty_init SFT_parser_prod[211]
-#define COLOR_parser_prod___AVarExpr___init_avarexpr SFT_parser_prod[212]
-#define COLOR_parser_prod___AVarAssignExpr___empty_init SFT_parser_prod[213]
-#define COLOR_parser_prod___AVarAssignExpr___init_avarassignexpr SFT_parser_prod[214]
-#define COLOR_parser_prod___AVarReassignExpr___empty_init SFT_parser_prod[215]
-#define COLOR_parser_prod___AVarReassignExpr___init_avarreassignexpr SFT_parser_prod[216]
-#define COLOR_parser_prod___ARangeExpr___empty_init SFT_parser_prod[217]
-#define COLOR_parser_prod___ARangeExpr___init_arangeexpr SFT_parser_prod[218]
-#define COLOR_parser_prod___ACrangeExpr___empty_init SFT_parser_prod[219]
-#define COLOR_parser_prod___ACrangeExpr___init_acrangeexpr SFT_parser_prod[220]
-#define COLOR_parser_prod___AOrangeExpr___empty_init SFT_parser_prod[221]
-#define COLOR_parser_prod___AOrangeExpr___init_aorangeexpr SFT_parser_prod[222]
-#define COLOR_parser_prod___AArrayExpr___empty_init SFT_parser_prod[223]
-#define COLOR_parser_prod___AArrayExpr___init_aarrayexpr SFT_parser_prod[224]
-#define COLOR_parser_prod___ASelfExpr___empty_init SFT_parser_prod[225]
-#define COLOR_parser_prod___ASelfExpr___init_aselfexpr SFT_parser_prod[226]
-#define COLOR_parser_prod___AImplicitSelfExpr___empty_init SFT_parser_prod[227]
-#define COLOR_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr SFT_parser_prod[228]
-#define COLOR_parser_prod___ATrueExpr___empty_init SFT_parser_prod[229]
-#define COLOR_parser_prod___ATrueExpr___init_atrueexpr SFT_parser_prod[230]
-#define COLOR_parser_prod___AFalseExpr___empty_init SFT_parser_prod[231]
-#define COLOR_parser_prod___AFalseExpr___init_afalseexpr SFT_parser_prod[232]
-#define COLOR_parser_prod___ANullExpr___empty_init SFT_parser_prod[233]
-#define COLOR_parser_prod___ANullExpr___init_anullexpr SFT_parser_prod[234]
-#define COLOR_parser_prod___AIntExpr___empty_init SFT_parser_prod[235]
-#define COLOR_parser_prod___AIntExpr___init_aintexpr SFT_parser_prod[236]
-#define COLOR_parser_prod___AFloatExpr___empty_init SFT_parser_prod[237]
-#define COLOR_parser_prod___AFloatExpr___init_afloatexpr SFT_parser_prod[238]
-#define COLOR_parser_prod___ACharExpr___empty_init SFT_parser_prod[239]
-#define COLOR_parser_prod___ACharExpr___init_acharexpr SFT_parser_prod[240]
-#define COLOR_parser_prod___AStringExpr___empty_init SFT_parser_prod[241]
-#define COLOR_parser_prod___AStringExpr___init_astringexpr SFT_parser_prod[242]
-#define COLOR_parser_prod___AStartStringExpr___empty_init SFT_parser_prod[243]
-#define COLOR_parser_prod___AStartStringExpr___init_astartstringexpr SFT_parser_prod[244]
-#define COLOR_parser_prod___AMidStringExpr___empty_init SFT_parser_prod[245]
-#define COLOR_parser_prod___AMidStringExpr___init_amidstringexpr SFT_parser_prod[246]
-#define COLOR_parser_prod___AEndStringExpr___empty_init SFT_parser_prod[247]
-#define COLOR_parser_prod___AEndStringExpr___init_aendstringexpr SFT_parser_prod[248]
-#define COLOR_parser_prod___ASuperstringExpr___empty_init SFT_parser_prod[249]
-#define COLOR_parser_prod___ASuperstringExpr___init_asuperstringexpr SFT_parser_prod[250]
-#define COLOR_parser_prod___AParExpr___empty_init SFT_parser_prod[251]
-#define COLOR_parser_prod___AParExpr___init_aparexpr SFT_parser_prod[252]
-#define COLOR_parser_prod___AAsCastExpr___empty_init SFT_parser_prod[253]
-#define COLOR_parser_prod___AAsCastExpr___init_aascastexpr SFT_parser_prod[254]
-#define COLOR_parser_prod___APlusAssignOp___empty_init SFT_parser_prod[255]
-#define COLOR_parser_prod___APlusAssignOp___init_aplusassignop SFT_parser_prod[256]
-#define COLOR_parser_prod___AMinusAssignOp___empty_init SFT_parser_prod[257]
-#define COLOR_parser_prod___AMinusAssignOp___init_aminusassignop SFT_parser_prod[258]
-#define COLOR_parser_prod___AClosureDef___empty_init SFT_parser_prod[259]
-#define COLOR_parser_prod___AClosureDef___init_aclosuredef SFT_parser_prod[260]
-#define COLOR_parser_prod___AQualified___empty_init SFT_parser_prod[261]
-#define COLOR_parser_prod___AQualified___init_aqualified SFT_parser_prod[262]
-#define COLOR_parser_prod___ADoc___empty_init SFT_parser_prod[263]
-#define COLOR_parser_prod___ADoc___init_adoc SFT_parser_prod[264]
-#define COLOR_parser_prod___Start___init SFT_parser_prod[265]
+#define ATTR_parser_prod___PNode____parent(recv) ATTR(recv, (SFT_parser_prod[0] + 0))
+#define CALL_parser_prod___PNode___parent(recv) ((parser_prod___PNode___parent_t)CALL((recv), (SFT_parser_prod[1] + 0)))
+#define CALL_parser_prod___PNode___parent__eq(recv) ((parser_prod___PNode___parent__eq_t)CALL((recv), (SFT_parser_prod[1] + 1)))
+#define CALL_parser_prod___PNode___remove_child(recv) ((parser_prod___PNode___remove_child_t)CALL((recv), (SFT_parser_prod[1] + 2)))
+#define CALL_parser_prod___PNode___replace_child(recv) ((parser_prod___PNode___replace_child_t)CALL((recv), (SFT_parser_prod[1] + 3)))
+#define CALL_parser_prod___PNode___replace_with(recv) ((parser_prod___PNode___replace_with_t)CALL((recv), (SFT_parser_prod[1] + 4)))
+#define CALL_parser_prod___PNode___visit_all(recv) ((parser_prod___PNode___visit_all_t)CALL((recv), (SFT_parser_prod[1] + 5)))
+#define CALL_parser_prod___PNode___visit_all_reverse(recv) ((parser_prod___PNode___visit_all_reverse_t)CALL((recv), (SFT_parser_prod[1] + 6)))
+#define CALL_parser_prod___PNode___locate(recv) ((parser_prod___PNode___locate_t)CALL((recv), (SFT_parser_prod[1] + 7)))
+#define CALL_parser_prod___PNode___line_number(recv) ((parser_prod___PNode___line_number_t)CALL((recv), (SFT_parser_prod[1] + 8)))
+#define CALL_parser_prod___PNode___printl(recv) ((parser_prod___PNode___printl_t)CALL((recv), (SFT_parser_prod[1] + 9)))
+#define ATTR_parser_prod___Prod____first_token(recv) ATTR(recv, (SFT_parser_prod[2] + 0))
+#define ATTR_parser_prod___Prod____last_token(recv) ATTR(recv, (SFT_parser_prod[2] + 1))
+#define CALL_parser_prod___Prod___first_token(recv) ((parser_prod___Prod___first_token_t)CALL((recv), (SFT_parser_prod[3] + 0)))
+#define CALL_parser_prod___Prod___first_token__eq(recv) ((parser_prod___Prod___first_token__eq_t)CALL((recv), (SFT_parser_prod[3] + 1)))
+#define CALL_parser_prod___Prod___last_token(recv) ((parser_prod___Prod___last_token_t)CALL((recv), (SFT_parser_prod[3] + 2)))
+#define CALL_parser_prod___Prod___last_token__eq(recv) ((parser_prod___Prod___last_token__eq_t)CALL((recv), (SFT_parser_prod[3] + 3)))
+#define CALL_SUPER_parser_prod___Prod___replace_with(recv) ((parser_prod___Prod___replace_with_t)CALL((recv), (SFT_parser_prod[3] + 4)))
+#define ID_Visitor (SFT_parser_prod[4])
+#define COLOR_Visitor (SFT_parser_prod[5])
+#define INIT_TABLE_POS_Visitor (SFT_parser_prod[6] + 0)
+#define CALL_parser_prod___Visitor___visit(recv) ((parser_prod___Visitor___visit_t)CALL((recv), (SFT_parser_prod[6] + 1)))
+#define CALL_parser_prod___Visitor___init(recv) ((parser_prod___Visitor___init_t)CALL((recv), (SFT_parser_prod[6] + 2)))
+#define CALL_parser_prod___AModule___empty_init(recv) ((parser_prod___AModule___empty_init_t)CALL((recv), (SFT_parser_prod[7] + 0)))
+#define CALL_parser_prod___AModule___init_amodule(recv) ((parser_prod___AModule___init_amodule_t)CALL((recv), (SFT_parser_prod[7] + 1)))
+#define CALL_parser_prod___APackagedecl___empty_init(recv) ((parser_prod___APackagedecl___empty_init_t)CALL((recv), (SFT_parser_prod[8] + 0)))
+#define CALL_parser_prod___APackagedecl___init_apackagedecl(recv) ((parser_prod___APackagedecl___init_apackagedecl_t)CALL((recv), (SFT_parser_prod[8] + 1)))
+#define CALL_parser_prod___AImport___empty_init(recv) ((parser_prod___AImport___empty_init_t)CALL((recv), (SFT_parser_prod[9] + 0)))
+#define CALL_parser_prod___AImport___init_aimport(recv) ((parser_prod___AImport___init_aimport_t)CALL((recv), (SFT_parser_prod[9] + 1)))
+#define CALL_parser_prod___ANoImport___empty_init(recv) ((parser_prod___ANoImport___empty_init_t)CALL((recv), (SFT_parser_prod[10] + 0)))
+#define CALL_parser_prod___ANoImport___init_anoimport(recv) ((parser_prod___ANoImport___init_anoimport_t)CALL((recv), (SFT_parser_prod[10] + 1)))
+#define CALL_parser_prod___APublicVisibility___empty_init(recv) ((parser_prod___APublicVisibility___empty_init_t)CALL((recv), (SFT_parser_prod[11] + 0)))
+#define CALL_parser_prod___APublicVisibility___init_apublicvisibility(recv) ((parser_prod___APublicVisibility___init_apublicvisibility_t)CALL((recv), (SFT_parser_prod[11] + 1)))
+#define CALL_parser_prod___APrivateVisibility___empty_init(recv) ((parser_prod___APrivateVisibility___empty_init_t)CALL((recv), (SFT_parser_prod[12] + 0)))
+#define CALL_parser_prod___APrivateVisibility___init_aprivatevisibility(recv) ((parser_prod___APrivateVisibility___init_aprivatevisibility_t)CALL((recv), (SFT_parser_prod[12] + 1)))
+#define CALL_parser_prod___AProtectedVisibility___empty_init(recv) ((parser_prod___AProtectedVisibility___empty_init_t)CALL((recv), (SFT_parser_prod[13] + 0)))
+#define CALL_parser_prod___AProtectedVisibility___init_aprotectedvisibility(recv) ((parser_prod___AProtectedVisibility___init_aprotectedvisibility_t)CALL((recv), (SFT_parser_prod[13] + 1)))
+#define CALL_parser_prod___AIntrudeVisibility___empty_init(recv) ((parser_prod___AIntrudeVisibility___empty_init_t)CALL((recv), (SFT_parser_prod[14] + 0)))
+#define CALL_parser_prod___AIntrudeVisibility___init_aintrudevisibility(recv) ((parser_prod___AIntrudeVisibility___init_aintrudevisibility_t)CALL((recv), (SFT_parser_prod[14] + 1)))
+#define CALL_parser_prod___AClassdef___empty_init(recv) ((parser_prod___AClassdef___empty_init_t)CALL((recv), (SFT_parser_prod[15] + 0)))
+#define CALL_parser_prod___AClassdef___init_aclassdef(recv) ((parser_prod___AClassdef___init_aclassdef_t)CALL((recv), (SFT_parser_prod[15] + 1)))
+#define CALL_parser_prod___ATopClassdef___empty_init(recv) ((parser_prod___ATopClassdef___empty_init_t)CALL((recv), (SFT_parser_prod[16] + 0)))
+#define CALL_parser_prod___ATopClassdef___init_atopclassdef(recv) ((parser_prod___ATopClassdef___init_atopclassdef_t)CALL((recv), (SFT_parser_prod[16] + 1)))
+#define CALL_parser_prod___AMainClassdef___empty_init(recv) ((parser_prod___AMainClassdef___empty_init_t)CALL((recv), (SFT_parser_prod[17] + 0)))
+#define CALL_parser_prod___AMainClassdef___init_amainclassdef(recv) ((parser_prod___AMainClassdef___init_amainclassdef_t)CALL((recv), (SFT_parser_prod[17] + 1)))
+#define CALL_parser_prod___AConcreteClasskind___empty_init(recv) ((parser_prod___AConcreteClasskind___empty_init_t)CALL((recv), (SFT_parser_prod[18] + 0)))
+#define CALL_parser_prod___AConcreteClasskind___init_aconcreteclasskind(recv) ((parser_prod___AConcreteClasskind___init_aconcreteclasskind_t)CALL((recv), (SFT_parser_prod[18] + 1)))
+#define CALL_parser_prod___AAbstractClasskind___empty_init(recv) ((parser_prod___AAbstractClasskind___empty_init_t)CALL((recv), (SFT_parser_prod[19] + 0)))
+#define CALL_parser_prod___AAbstractClasskind___init_aabstractclasskind(recv) ((parser_prod___AAbstractClasskind___init_aabstractclasskind_t)CALL((recv), (SFT_parser_prod[19] + 1)))
+#define CALL_parser_prod___AInterfaceClasskind___empty_init(recv) ((parser_prod___AInterfaceClasskind___empty_init_t)CALL((recv), (SFT_parser_prod[20] + 0)))
+#define CALL_parser_prod___AInterfaceClasskind___init_ainterfaceclasskind(recv) ((parser_prod___AInterfaceClasskind___init_ainterfaceclasskind_t)CALL((recv), (SFT_parser_prod[20] + 1)))
+#define CALL_parser_prod___AUniversalClasskind___empty_init(recv) ((parser_prod___AUniversalClasskind___empty_init_t)CALL((recv), (SFT_parser_prod[21] + 0)))
+#define CALL_parser_prod___AUniversalClasskind___init_auniversalclasskind(recv) ((parser_prod___AUniversalClasskind___init_auniversalclasskind_t)CALL((recv), (SFT_parser_prod[21] + 1)))
+#define CALL_parser_prod___AFormaldef___empty_init(recv) ((parser_prod___AFormaldef___empty_init_t)CALL((recv), (SFT_parser_prod[22] + 0)))
+#define CALL_parser_prod___AFormaldef___init_aformaldef(recv) ((parser_prod___AFormaldef___init_aformaldef_t)CALL((recv), (SFT_parser_prod[22] + 1)))
+#define CALL_parser_prod___ASuperclass___empty_init(recv) ((parser_prod___ASuperclass___empty_init_t)CALL((recv), (SFT_parser_prod[23] + 0)))
+#define CALL_parser_prod___ASuperclass___init_asuperclass(recv) ((parser_prod___ASuperclass___init_asuperclass_t)CALL((recv), (SFT_parser_prod[23] + 1)))
+#define CALL_parser_prod___AAttrPropdef___empty_init(recv) ((parser_prod___AAttrPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[24] + 0)))
+#define CALL_parser_prod___AAttrPropdef___init_aattrpropdef(recv) ((parser_prod___AAttrPropdef___init_aattrpropdef_t)CALL((recv), (SFT_parser_prod[24] + 1)))
+#define CALL_parser_prod___AMethPropdef___empty_init(recv) ((parser_prod___AMethPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[25] + 0)))
+#define CALL_parser_prod___AMethPropdef___init_amethpropdef(recv) ((parser_prod___AMethPropdef___init_amethpropdef_t)CALL((recv), (SFT_parser_prod[25] + 1)))
+#define CALL_parser_prod___ADeferredMethPropdef___empty_init(recv) ((parser_prod___ADeferredMethPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[26] + 0)))
+#define CALL_parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef(recv) ((parser_prod___ADeferredMethPropdef___init_adeferredmethpropdef_t)CALL((recv), (SFT_parser_prod[26] + 1)))
+#define CALL_parser_prod___AInternMethPropdef___empty_init(recv) ((parser_prod___AInternMethPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[27] + 0)))
+#define CALL_parser_prod___AInternMethPropdef___init_ainternmethpropdef(recv) ((parser_prod___AInternMethPropdef___init_ainternmethpropdef_t)CALL((recv), (SFT_parser_prod[27] + 1)))
+#define CALL_parser_prod___AExternMethPropdef___empty_init(recv) ((parser_prod___AExternMethPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[28] + 0)))
+#define CALL_parser_prod___AExternMethPropdef___init_aexternmethpropdef(recv) ((parser_prod___AExternMethPropdef___init_aexternmethpropdef_t)CALL((recv), (SFT_parser_prod[28] + 1)))
+#define CALL_parser_prod___AConcreteMethPropdef___empty_init(recv) ((parser_prod___AConcreteMethPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[29] + 0)))
+#define CALL_parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(recv) ((parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef_t)CALL((recv), (SFT_parser_prod[29] + 1)))
+#define CALL_parser_prod___AConcreteInitPropdef___empty_init(recv) ((parser_prod___AConcreteInitPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[30] + 0)))
+#define CALL_parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef(recv) ((parser_prod___AConcreteInitPropdef___init_aconcreteinitpropdef_t)CALL((recv), (SFT_parser_prod[30] + 1)))
+#define CALL_parser_prod___AMainMethPropdef___empty_init(recv) ((parser_prod___AMainMethPropdef___empty_init_t)CALL((recv), (SFT_parser_prod[31] + 0)))
+#define CALL_parser_prod___AMainMethPropdef___init_amainmethpropdef(recv) ((parser_prod___AMainMethPropdef___init_amainmethpropdef_t)CALL((recv), (SFT_parser_prod[31] + 1)))
+#define CALL_parser_prod___ATypePropdef___empty_init(recv) ((parser_prod___ATypePropdef___empty_init_t)CALL((recv), (SFT_parser_prod[32] + 0)))
+#define CALL_parser_prod___ATypePropdef___init_atypepropdef(recv) ((parser_prod___ATypePropdef___init_atypepropdef_t)CALL((recv), (SFT_parser_prod[32] + 1)))
+#define CALL_parser_prod___AReadAble___empty_init(recv) ((parser_prod___AReadAble___empty_init_t)CALL((recv), (SFT_parser_prod[33] + 0)))
+#define CALL_parser_prod___AReadAble___init_areadable(recv) ((parser_prod___AReadAble___init_areadable_t)CALL((recv), (SFT_parser_prod[33] + 1)))
+#define CALL_parser_prod___AWriteAble___empty_init(recv) ((parser_prod___AWriteAble___empty_init_t)CALL((recv), (SFT_parser_prod[34] + 0)))
+#define CALL_parser_prod___AWriteAble___init_awriteable(recv) ((parser_prod___AWriteAble___init_awriteable_t)CALL((recv), (SFT_parser_prod[34] + 1)))
+#define CALL_parser_prod___AIdMethid___empty_init(recv) ((parser_prod___AIdMethid___empty_init_t)CALL((recv), (SFT_parser_prod[35] + 0)))
+#define CALL_parser_prod___AIdMethid___init_aidmethid(recv) ((parser_prod___AIdMethid___init_aidmethid_t)CALL((recv), (SFT_parser_prod[35] + 1)))
+#define CALL_parser_prod___APlusMethid___empty_init(recv) ((parser_prod___APlusMethid___empty_init_t)CALL((recv), (SFT_parser_prod[36] + 0)))
+#define CALL_parser_prod___APlusMethid___init_aplusmethid(recv) ((parser_prod___APlusMethid___init_aplusmethid_t)CALL((recv), (SFT_parser_prod[36] + 1)))
+#define CALL_parser_prod___AMinusMethid___empty_init(recv) ((parser_prod___AMinusMethid___empty_init_t)CALL((recv), (SFT_parser_prod[37] + 0)))
+#define CALL_parser_prod___AMinusMethid___init_aminusmethid(recv) ((parser_prod___AMinusMethid___init_aminusmethid_t)CALL((recv), (SFT_parser_prod[37] + 1)))
+#define CALL_parser_prod___AStarMethid___empty_init(recv) ((parser_prod___AStarMethid___empty_init_t)CALL((recv), (SFT_parser_prod[38] + 0)))
+#define CALL_parser_prod___AStarMethid___init_astarmethid(recv) ((parser_prod___AStarMethid___init_astarmethid_t)CALL((recv), (SFT_parser_prod[38] + 1)))
+#define CALL_parser_prod___ASlashMethid___empty_init(recv) ((parser_prod___ASlashMethid___empty_init_t)CALL((recv), (SFT_parser_prod[39] + 0)))
+#define CALL_parser_prod___ASlashMethid___init_aslashmethid(recv) ((parser_prod___ASlashMethid___init_aslashmethid_t)CALL((recv), (SFT_parser_prod[39] + 1)))
+#define CALL_parser_prod___APercentMethid___empty_init(recv) ((parser_prod___APercentMethid___empty_init_t)CALL((recv), (SFT_parser_prod[40] + 0)))
+#define CALL_parser_prod___APercentMethid___init_apercentmethid(recv) ((parser_prod___APercentMethid___init_apercentmethid_t)CALL((recv), (SFT_parser_prod[40] + 1)))
+#define CALL_parser_prod___AEqMethid___empty_init(recv) ((parser_prod___AEqMethid___empty_init_t)CALL((recv), (SFT_parser_prod[41] + 0)))
+#define CALL_parser_prod___AEqMethid___init_aeqmethid(recv) ((parser_prod___AEqMethid___init_aeqmethid_t)CALL((recv), (SFT_parser_prod[41] + 1)))
+#define CALL_parser_prod___ANeMethid___empty_init(recv) ((parser_prod___ANeMethid___empty_init_t)CALL((recv), (SFT_parser_prod[42] + 0)))
+#define CALL_parser_prod___ANeMethid___init_anemethid(recv) ((parser_prod___ANeMethid___init_anemethid_t)CALL((recv), (SFT_parser_prod[42] + 1)))
+#define CALL_parser_prod___ALeMethid___empty_init(recv) ((parser_prod___ALeMethid___empty_init_t)CALL((recv), (SFT_parser_prod[43] + 0)))
+#define CALL_parser_prod___ALeMethid___init_alemethid(recv) ((parser_prod___ALeMethid___init_alemethid_t)CALL((recv), (SFT_parser_prod[43] + 1)))
+#define CALL_parser_prod___AGeMethid___empty_init(recv) ((parser_prod___AGeMethid___empty_init_t)CALL((recv), (SFT_parser_prod[44] + 0)))
+#define CALL_parser_prod___AGeMethid___init_agemethid(recv) ((parser_prod___AGeMethid___init_agemethid_t)CALL((recv), (SFT_parser_prod[44] + 1)))
+#define CALL_parser_prod___ALtMethid___empty_init(recv) ((parser_prod___ALtMethid___empty_init_t)CALL((recv), (SFT_parser_prod[45] + 0)))
+#define CALL_parser_prod___ALtMethid___init_altmethid(recv) ((parser_prod___ALtMethid___init_altmethid_t)CALL((recv), (SFT_parser_prod[45] + 1)))
+#define CALL_parser_prod___AGtMethid___empty_init(recv) ((parser_prod___AGtMethid___empty_init_t)CALL((recv), (SFT_parser_prod[46] + 0)))
+#define CALL_parser_prod___AGtMethid___init_agtmethid(recv) ((parser_prod___AGtMethid___init_agtmethid_t)CALL((recv), (SFT_parser_prod[46] + 1)))
+#define CALL_parser_prod___ABraMethid___empty_init(recv) ((parser_prod___ABraMethid___empty_init_t)CALL((recv), (SFT_parser_prod[47] + 0)))
+#define CALL_parser_prod___ABraMethid___init_abramethid(recv) ((parser_prod___ABraMethid___init_abramethid_t)CALL((recv), (SFT_parser_prod[47] + 1)))
+#define CALL_parser_prod___AStarshipMethid___empty_init(recv) ((parser_prod___AStarshipMethid___empty_init_t)CALL((recv), (SFT_parser_prod[48] + 0)))
+#define CALL_parser_prod___AStarshipMethid___init_astarshipmethid(recv) ((parser_prod___AStarshipMethid___init_astarshipmethid_t)CALL((recv), (SFT_parser_prod[48] + 1)))
+#define CALL_parser_prod___AAssignMethid___empty_init(recv) ((parser_prod___AAssignMethid___empty_init_t)CALL((recv), (SFT_parser_prod[49] + 0)))
+#define CALL_parser_prod___AAssignMethid___init_aassignmethid(recv) ((parser_prod___AAssignMethid___init_aassignmethid_t)CALL((recv), (SFT_parser_prod[49] + 1)))
+#define CALL_parser_prod___ABraassignMethid___empty_init(recv) ((parser_prod___ABraassignMethid___empty_init_t)CALL((recv), (SFT_parser_prod[50] + 0)))
+#define CALL_parser_prod___ABraassignMethid___init_abraassignmethid(recv) ((parser_prod___ABraassignMethid___init_abraassignmethid_t)CALL((recv), (SFT_parser_prod[50] + 1)))
+#define CALL_parser_prod___ASignature___empty_init(recv) ((parser_prod___ASignature___empty_init_t)CALL((recv), (SFT_parser_prod[51] + 0)))
+#define CALL_parser_prod___ASignature___init_asignature(recv) ((parser_prod___ASignature___init_asignature_t)CALL((recv), (SFT_parser_prod[51] + 1)))
+#define CALL_parser_prod___AParam___empty_init(recv) ((parser_prod___AParam___empty_init_t)CALL((recv), (SFT_parser_prod[52] + 0)))
+#define CALL_parser_prod___AParam___init_aparam(recv) ((parser_prod___AParam___init_aparam_t)CALL((recv), (SFT_parser_prod[52] + 1)))
+#define CALL_parser_prod___AClosureDecl___empty_init(recv) ((parser_prod___AClosureDecl___empty_init_t)CALL((recv), (SFT_parser_prod[53] + 0)))
+#define CALL_parser_prod___AClosureDecl___init_aclosuredecl(recv) ((parser_prod___AClosureDecl___init_aclosuredecl_t)CALL((recv), (SFT_parser_prod[53] + 1)))
+#define CALL_parser_prod___AType___empty_init(recv) ((parser_prod___AType___empty_init_t)CALL((recv), (SFT_parser_prod[54] + 0)))
+#define CALL_parser_prod___AType___init_atype(recv) ((parser_prod___AType___init_atype_t)CALL((recv), (SFT_parser_prod[54] + 1)))
+#define CALL_parser_prod___ABlockExpr___empty_init(recv) ((parser_prod___ABlockExpr___empty_init_t)CALL((recv), (SFT_parser_prod[55] + 0)))
+#define CALL_parser_prod___ABlockExpr___init_ablockexpr(recv) ((parser_prod___ABlockExpr___init_ablockexpr_t)CALL((recv), (SFT_parser_prod[55] + 1)))
+#define CALL_parser_prod___AVardeclExpr___empty_init(recv) ((parser_prod___AVardeclExpr___empty_init_t)CALL((recv), (SFT_parser_prod[56] + 0)))
+#define CALL_parser_prod___AVardeclExpr___init_avardeclexpr(recv) ((parser_prod___AVardeclExpr___init_avardeclexpr_t)CALL((recv), (SFT_parser_prod[56] + 1)))
+#define CALL_parser_prod___AReturnExpr___empty_init(recv) ((parser_prod___AReturnExpr___empty_init_t)CALL((recv), (SFT_parser_prod[57] + 0)))
+#define CALL_parser_prod___AReturnExpr___init_areturnexpr(recv) ((parser_prod___AReturnExpr___init_areturnexpr_t)CALL((recv), (SFT_parser_prod[57] + 1)))
+#define CALL_parser_prod___ABreakExpr___empty_init(recv) ((parser_prod___ABreakExpr___empty_init_t)CALL((recv), (SFT_parser_prod[58] + 0)))
+#define CALL_parser_prod___ABreakExpr___init_abreakexpr(recv) ((parser_prod___ABreakExpr___init_abreakexpr_t)CALL((recv), (SFT_parser_prod[58] + 1)))
+#define CALL_parser_prod___AAbortExpr___empty_init(recv) ((parser_prod___AAbortExpr___empty_init_t)CALL((recv), (SFT_parser_prod[59] + 0)))
+#define CALL_parser_prod___AAbortExpr___init_aabortexpr(recv) ((parser_prod___AAbortExpr___init_aabortexpr_t)CALL((recv), (SFT_parser_prod[59] + 1)))
+#define CALL_parser_prod___AContinueExpr___empty_init(recv) ((parser_prod___AContinueExpr___empty_init_t)CALL((recv), (SFT_parser_prod[60] + 0)))
+#define CALL_parser_prod___AContinueExpr___init_acontinueexpr(recv) ((parser_prod___AContinueExpr___init_acontinueexpr_t)CALL((recv), (SFT_parser_prod[60] + 1)))
+#define CALL_parser_prod___ADoExpr___empty_init(recv) ((parser_prod___ADoExpr___empty_init_t)CALL((recv), (SFT_parser_prod[61] + 0)))
+#define CALL_parser_prod___ADoExpr___init_adoexpr(recv) ((parser_prod___ADoExpr___init_adoexpr_t)CALL((recv), (SFT_parser_prod[61] + 1)))
+#define CALL_parser_prod___AIfExpr___empty_init(recv) ((parser_prod___AIfExpr___empty_init_t)CALL((recv), (SFT_parser_prod[62] + 0)))
+#define CALL_parser_prod___AIfExpr___init_aifexpr(recv) ((parser_prod___AIfExpr___init_aifexpr_t)CALL((recv), (SFT_parser_prod[62] + 1)))
+#define CALL_parser_prod___AIfexprExpr___empty_init(recv) ((parser_prod___AIfexprExpr___empty_init_t)CALL((recv), (SFT_parser_prod[63] + 0)))
+#define CALL_parser_prod___AIfexprExpr___init_aifexprexpr(recv) ((parser_prod___AIfexprExpr___init_aifexprexpr_t)CALL((recv), (SFT_parser_prod[63] + 1)))
+#define CALL_parser_prod___AWhileExpr___empty_init(recv) ((parser_prod___AWhileExpr___empty_init_t)CALL((recv), (SFT_parser_prod[64] + 0)))
+#define CALL_parser_prod___AWhileExpr___init_awhileexpr(recv) ((parser_prod___AWhileExpr___init_awhileexpr_t)CALL((recv), (SFT_parser_prod[64] + 1)))
+#define CALL_parser_prod___AForExpr___empty_init(recv) ((parser_prod___AForExpr___empty_init_t)CALL((recv), (SFT_parser_prod[65] + 0)))
+#define CALL_parser_prod___AForExpr___init_aforexpr(recv) ((parser_prod___AForExpr___init_aforexpr_t)CALL((recv), (SFT_parser_prod[65] + 1)))
+#define CALL_parser_prod___AForVardeclExpr___empty_init(recv) ((parser_prod___AForVardeclExpr___empty_init_t)CALL((recv), (SFT_parser_prod[66] + 0)))
+#define CALL_parser_prod___AForVardeclExpr___init_aforvardeclexpr(recv) ((parser_prod___AForVardeclExpr___init_aforvardeclexpr_t)CALL((recv), (SFT_parser_prod[66] + 1)))
+#define CALL_parser_prod___AAssertExpr___empty_init(recv) ((parser_prod___AAssertExpr___empty_init_t)CALL((recv), (SFT_parser_prod[67] + 0)))
+#define CALL_parser_prod___AAssertExpr___init_aassertexpr(recv) ((parser_prod___AAssertExpr___init_aassertexpr_t)CALL((recv), (SFT_parser_prod[67] + 1)))
+#define CALL_parser_prod___AOnceExpr___empty_init(recv) ((parser_prod___AOnceExpr___empty_init_t)CALL((recv), (SFT_parser_prod[68] + 0)))
+#define CALL_parser_prod___AOnceExpr___init_aonceexpr(recv) ((parser_prod___AOnceExpr___init_aonceexpr_t)CALL((recv), (SFT_parser_prod[68] + 1)))
+#define CALL_parser_prod___ASendExpr___empty_init(recv) ((parser_prod___ASendExpr___empty_init_t)CALL((recv), (SFT_parser_prod[69] + 0)))
+#define CALL_parser_prod___ASendExpr___init_asendexpr(recv) ((parser_prod___ASendExpr___init_asendexpr_t)CALL((recv), (SFT_parser_prod[69] + 1)))
+#define CALL_parser_prod___ABinopExpr___empty_init(recv) ((parser_prod___ABinopExpr___empty_init_t)CALL((recv), (SFT_parser_prod[70] + 0)))
+#define CALL_parser_prod___ABinopExpr___init_abinopexpr(recv) ((parser_prod___ABinopExpr___init_abinopexpr_t)CALL((recv), (SFT_parser_prod[70] + 1)))
+#define CALL_parser_prod___AOrExpr___empty_init(recv) ((parser_prod___AOrExpr___empty_init_t)CALL((recv), (SFT_parser_prod[71] + 0)))
+#define CALL_parser_prod___AOrExpr___init_aorexpr(recv) ((parser_prod___AOrExpr___init_aorexpr_t)CALL((recv), (SFT_parser_prod[71] + 1)))
+#define CALL_parser_prod___AAndExpr___empty_init(recv) ((parser_prod___AAndExpr___empty_init_t)CALL((recv), (SFT_parser_prod[72] + 0)))
+#define CALL_parser_prod___AAndExpr___init_aandexpr(recv) ((parser_prod___AAndExpr___init_aandexpr_t)CALL((recv), (SFT_parser_prod[72] + 1)))
+#define CALL_parser_prod___ANotExpr___empty_init(recv) ((parser_prod___ANotExpr___empty_init_t)CALL((recv), (SFT_parser_prod[73] + 0)))
+#define CALL_parser_prod___ANotExpr___init_anotexpr(recv) ((parser_prod___ANotExpr___init_anotexpr_t)CALL((recv), (SFT_parser_prod[73] + 1)))
+#define CALL_parser_prod___AEqExpr___empty_init(recv) ((parser_prod___AEqExpr___empty_init_t)CALL((recv), (SFT_parser_prod[74] + 0)))
+#define CALL_parser_prod___AEqExpr___init_aeqexpr(recv) ((parser_prod___AEqExpr___init_aeqexpr_t)CALL((recv), (SFT_parser_prod[74] + 1)))
+#define CALL_parser_prod___AEeExpr___empty_init(recv) ((parser_prod___AEeExpr___empty_init_t)CALL((recv), (SFT_parser_prod[75] + 0)))
+#define CALL_parser_prod___AEeExpr___init_aeeexpr(recv) ((parser_prod___AEeExpr___init_aeeexpr_t)CALL((recv), (SFT_parser_prod[75] + 1)))
+#define CALL_parser_prod___ANeExpr___empty_init(recv) ((parser_prod___ANeExpr___empty_init_t)CALL((recv), (SFT_parser_prod[76] + 0)))
+#define CALL_parser_prod___ANeExpr___init_aneexpr(recv) ((parser_prod___ANeExpr___init_aneexpr_t)CALL((recv), (SFT_parser_prod[76] + 1)))
+#define CALL_parser_prod___ALtExpr___empty_init(recv) ((parser_prod___ALtExpr___empty_init_t)CALL((recv), (SFT_parser_prod[77] + 0)))
+#define CALL_parser_prod___ALtExpr___init_altexpr(recv) ((parser_prod___ALtExpr___init_altexpr_t)CALL((recv), (SFT_parser_prod[77] + 1)))
+#define CALL_parser_prod___ALeExpr___empty_init(recv) ((parser_prod___ALeExpr___empty_init_t)CALL((recv), (SFT_parser_prod[78] + 0)))
+#define CALL_parser_prod___ALeExpr___init_aleexpr(recv) ((parser_prod___ALeExpr___init_aleexpr_t)CALL((recv), (SFT_parser_prod[78] + 1)))
+#define CALL_parser_prod___AGtExpr___empty_init(recv) ((parser_prod___AGtExpr___empty_init_t)CALL((recv), (SFT_parser_prod[79] + 0)))
+#define CALL_parser_prod___AGtExpr___init_agtexpr(recv) ((parser_prod___AGtExpr___init_agtexpr_t)CALL((recv), (SFT_parser_prod[79] + 1)))
+#define CALL_parser_prod___AGeExpr___empty_init(recv) ((parser_prod___AGeExpr___empty_init_t)CALL((recv), (SFT_parser_prod[80] + 0)))
+#define CALL_parser_prod___AGeExpr___init_ageexpr(recv) ((parser_prod___AGeExpr___init_ageexpr_t)CALL((recv), (SFT_parser_prod[80] + 1)))
+#define CALL_parser_prod___AIsaExpr___empty_init(recv) ((parser_prod___AIsaExpr___empty_init_t)CALL((recv), (SFT_parser_prod[81] + 0)))
+#define CALL_parser_prod___AIsaExpr___init_aisaexpr(recv) ((parser_prod___AIsaExpr___init_aisaexpr_t)CALL((recv), (SFT_parser_prod[81] + 1)))
+#define CALL_parser_prod___APlusExpr___empty_init(recv) ((parser_prod___APlusExpr___empty_init_t)CALL((recv), (SFT_parser_prod[82] + 0)))
+#define CALL_parser_prod___APlusExpr___init_aplusexpr(recv) ((parser_prod___APlusExpr___init_aplusexpr_t)CALL((recv), (SFT_parser_prod[82] + 1)))
+#define CALL_parser_prod___AMinusExpr___empty_init(recv) ((parser_prod___AMinusExpr___empty_init_t)CALL((recv), (SFT_parser_prod[83] + 0)))
+#define CALL_parser_prod___AMinusExpr___init_aminusexpr(recv) ((parser_prod___AMinusExpr___init_aminusexpr_t)CALL((recv), (SFT_parser_prod[83] + 1)))
+#define CALL_parser_prod___AStarshipExpr___empty_init(recv) ((parser_prod___AStarshipExpr___empty_init_t)CALL((recv), (SFT_parser_prod[84] + 0)))
+#define CALL_parser_prod___AStarshipExpr___init_astarshipexpr(recv) ((parser_prod___AStarshipExpr___init_astarshipexpr_t)CALL((recv), (SFT_parser_prod[84] + 1)))
+#define CALL_parser_prod___AStarExpr___empty_init(recv) ((parser_prod___AStarExpr___empty_init_t)CALL((recv), (SFT_parser_prod[85] + 0)))
+#define CALL_parser_prod___AStarExpr___init_astarexpr(recv) ((parser_prod___AStarExpr___init_astarexpr_t)CALL((recv), (SFT_parser_prod[85] + 1)))
+#define CALL_parser_prod___ASlashExpr___empty_init(recv) ((parser_prod___ASlashExpr___empty_init_t)CALL((recv), (SFT_parser_prod[86] + 0)))
+#define CALL_parser_prod___ASlashExpr___init_aslashexpr(recv) ((parser_prod___ASlashExpr___init_aslashexpr_t)CALL((recv), (SFT_parser_prod[86] + 1)))
+#define CALL_parser_prod___APercentExpr___empty_init(recv) ((parser_prod___APercentExpr___empty_init_t)CALL((recv), (SFT_parser_prod[87] + 0)))
+#define CALL_parser_prod___APercentExpr___init_apercentexpr(recv) ((parser_prod___APercentExpr___init_apercentexpr_t)CALL((recv), (SFT_parser_prod[87] + 1)))
+#define CALL_parser_prod___AUminusExpr___empty_init(recv) ((parser_prod___AUminusExpr___empty_init_t)CALL((recv), (SFT_parser_prod[88] + 0)))
+#define CALL_parser_prod___AUminusExpr___init_auminusexpr(recv) ((parser_prod___AUminusExpr___init_auminusexpr_t)CALL((recv), (SFT_parser_prod[88] + 1)))
+#define CALL_parser_prod___ANewExpr___empty_init(recv) ((parser_prod___ANewExpr___empty_init_t)CALL((recv), (SFT_parser_prod[89] + 0)))
+#define CALL_parser_prod___ANewExpr___init_anewexpr(recv) ((parser_prod___ANewExpr___init_anewexpr_t)CALL((recv), (SFT_parser_prod[89] + 1)))
+#define CALL_parser_prod___AAttrExpr___empty_init(recv) ((parser_prod___AAttrExpr___empty_init_t)CALL((recv), (SFT_parser_prod[90] + 0)))
+#define CALL_parser_prod___AAttrExpr___init_aattrexpr(recv) ((parser_prod___AAttrExpr___init_aattrexpr_t)CALL((recv), (SFT_parser_prod[90] + 1)))
+#define CALL_parser_prod___AAttrAssignExpr___empty_init(recv) ((parser_prod___AAttrAssignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[91] + 0)))
+#define CALL_parser_prod___AAttrAssignExpr___init_aattrassignexpr(recv) ((parser_prod___AAttrAssignExpr___init_aattrassignexpr_t)CALL((recv), (SFT_parser_prod[91] + 1)))
+#define CALL_parser_prod___AAttrReassignExpr___empty_init(recv) ((parser_prod___AAttrReassignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[92] + 0)))
+#define CALL_parser_prod___AAttrReassignExpr___init_aattrreassignexpr(recv) ((parser_prod___AAttrReassignExpr___init_aattrreassignexpr_t)CALL((recv), (SFT_parser_prod[92] + 1)))
+#define CALL_parser_prod___ACallExpr___empty_init(recv) ((parser_prod___ACallExpr___empty_init_t)CALL((recv), (SFT_parser_prod[93] + 0)))
+#define CALL_parser_prod___ACallExpr___init_acallexpr(recv) ((parser_prod___ACallExpr___init_acallexpr_t)CALL((recv), (SFT_parser_prod[93] + 1)))
+#define CALL_parser_prod___ACallAssignExpr___empty_init(recv) ((parser_prod___ACallAssignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[94] + 0)))
+#define CALL_parser_prod___ACallAssignExpr___init_acallassignexpr(recv) ((parser_prod___ACallAssignExpr___init_acallassignexpr_t)CALL((recv), (SFT_parser_prod[94] + 1)))
+#define CALL_parser_prod___ACallReassignExpr___empty_init(recv) ((parser_prod___ACallReassignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[95] + 0)))
+#define CALL_parser_prod___ACallReassignExpr___init_acallreassignexpr(recv) ((parser_prod___ACallReassignExpr___init_acallreassignexpr_t)CALL((recv), (SFT_parser_prod[95] + 1)))
+#define CALL_parser_prod___ASuperExpr___empty_init(recv) ((parser_prod___ASuperExpr___empty_init_t)CALL((recv), (SFT_parser_prod[96] + 0)))
+#define CALL_parser_prod___ASuperExpr___init_asuperexpr(recv) ((parser_prod___ASuperExpr___init_asuperexpr_t)CALL((recv), (SFT_parser_prod[96] + 1)))
+#define CALL_parser_prod___AInitExpr___empty_init(recv) ((parser_prod___AInitExpr___empty_init_t)CALL((recv), (SFT_parser_prod[97] + 0)))
+#define CALL_parser_prod___AInitExpr___init_ainitexpr(recv) ((parser_prod___AInitExpr___init_ainitexpr_t)CALL((recv), (SFT_parser_prod[97] + 1)))
+#define CALL_parser_prod___ABraExpr___empty_init(recv) ((parser_prod___ABraExpr___empty_init_t)CALL((recv), (SFT_parser_prod[98] + 0)))
+#define CALL_parser_prod___ABraExpr___init_abraexpr(recv) ((parser_prod___ABraExpr___init_abraexpr_t)CALL((recv), (SFT_parser_prod[98] + 1)))
+#define CALL_parser_prod___ABraAssignExpr___empty_init(recv) ((parser_prod___ABraAssignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[99] + 0)))
+#define CALL_parser_prod___ABraAssignExpr___init_abraassignexpr(recv) ((parser_prod___ABraAssignExpr___init_abraassignexpr_t)CALL((recv), (SFT_parser_prod[99] + 1)))
+#define CALL_parser_prod___ABraReassignExpr___empty_init(recv) ((parser_prod___ABraReassignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[100] + 0)))
+#define CALL_parser_prod___ABraReassignExpr___init_abrareassignexpr(recv) ((parser_prod___ABraReassignExpr___init_abrareassignexpr_t)CALL((recv), (SFT_parser_prod[100] + 1)))
+#define CALL_parser_prod___AVarExpr___empty_init(recv) ((parser_prod___AVarExpr___empty_init_t)CALL((recv), (SFT_parser_prod[101] + 0)))
+#define CALL_parser_prod___AVarExpr___init_avarexpr(recv) ((parser_prod___AVarExpr___init_avarexpr_t)CALL((recv), (SFT_parser_prod[101] + 1)))
+#define CALL_parser_prod___AVarAssignExpr___empty_init(recv) ((parser_prod___AVarAssignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[102] + 0)))
+#define CALL_parser_prod___AVarAssignExpr___init_avarassignexpr(recv) ((parser_prod___AVarAssignExpr___init_avarassignexpr_t)CALL((recv), (SFT_parser_prod[102] + 1)))
+#define CALL_parser_prod___AVarReassignExpr___empty_init(recv) ((parser_prod___AVarReassignExpr___empty_init_t)CALL((recv), (SFT_parser_prod[103] + 0)))
+#define CALL_parser_prod___AVarReassignExpr___init_avarreassignexpr(recv) ((parser_prod___AVarReassignExpr___init_avarreassignexpr_t)CALL((recv), (SFT_parser_prod[103] + 1)))
+#define CALL_parser_prod___ARangeExpr___empty_init(recv) ((parser_prod___ARangeExpr___empty_init_t)CALL((recv), (SFT_parser_prod[104] + 0)))
+#define CALL_parser_prod___ARangeExpr___init_arangeexpr(recv) ((parser_prod___ARangeExpr___init_arangeexpr_t)CALL((recv), (SFT_parser_prod[104] + 1)))
+#define CALL_parser_prod___ACrangeExpr___empty_init(recv) ((parser_prod___ACrangeExpr___empty_init_t)CALL((recv), (SFT_parser_prod[105] + 0)))
+#define CALL_parser_prod___ACrangeExpr___init_acrangeexpr(recv) ((parser_prod___ACrangeExpr___init_acrangeexpr_t)CALL((recv), (SFT_parser_prod[105] + 1)))
+#define CALL_parser_prod___AOrangeExpr___empty_init(recv) ((parser_prod___AOrangeExpr___empty_init_t)CALL((recv), (SFT_parser_prod[106] + 0)))
+#define CALL_parser_prod___AOrangeExpr___init_aorangeexpr(recv) ((parser_prod___AOrangeExpr___init_aorangeexpr_t)CALL((recv), (SFT_parser_prod[106] + 1)))
+#define CALL_parser_prod___AArrayExpr___empty_init(recv) ((parser_prod___AArrayExpr___empty_init_t)CALL((recv), (SFT_parser_prod[107] + 0)))
+#define CALL_parser_prod___AArrayExpr___init_aarrayexpr(recv) ((parser_prod___AArrayExpr___init_aarrayexpr_t)CALL((recv), (SFT_parser_prod[107] + 1)))
+#define CALL_parser_prod___ASelfExpr___empty_init(recv) ((parser_prod___ASelfExpr___empty_init_t)CALL((recv), (SFT_parser_prod[108] + 0)))
+#define CALL_parser_prod___ASelfExpr___init_aselfexpr(recv) ((parser_prod___ASelfExpr___init_aselfexpr_t)CALL((recv), (SFT_parser_prod[108] + 1)))
+#define CALL_parser_prod___AImplicitSelfExpr___empty_init(recv) ((parser_prod___AImplicitSelfExpr___empty_init_t)CALL((recv), (SFT_parser_prod[109] + 0)))
+#define CALL_parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(recv) ((parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr_t)CALL((recv), (SFT_parser_prod[109] + 1)))
+#define CALL_parser_prod___ATrueExpr___empty_init(recv) ((parser_prod___ATrueExpr___empty_init_t)CALL((recv), (SFT_parser_prod[110] + 0)))
+#define CALL_parser_prod___ATrueExpr___init_atrueexpr(recv) ((parser_prod___ATrueExpr___init_atrueexpr_t)CALL((recv), (SFT_parser_prod[110] + 1)))
+#define CALL_parser_prod___AFalseExpr___empty_init(recv) ((parser_prod___AFalseExpr___empty_init_t)CALL((recv), (SFT_parser_prod[111] + 0)))
+#define CALL_parser_prod___AFalseExpr___init_afalseexpr(recv) ((parser_prod___AFalseExpr___init_afalseexpr_t)CALL((recv), (SFT_parser_prod[111] + 1)))
+#define CALL_parser_prod___ANullExpr___empty_init(recv) ((parser_prod___ANullExpr___empty_init_t)CALL((recv), (SFT_parser_prod[112] + 0)))
+#define CALL_parser_prod___ANullExpr___init_anullexpr(recv) ((parser_prod___ANullExpr___init_anullexpr_t)CALL((recv), (SFT_parser_prod[112] + 1)))
+#define CALL_parser_prod___AIntExpr___empty_init(recv) ((parser_prod___AIntExpr___empty_init_t)CALL((recv), (SFT_parser_prod[113] + 0)))
+#define CALL_parser_prod___AIntExpr___init_aintexpr(recv) ((parser_prod___AIntExpr___init_aintexpr_t)CALL((recv), (SFT_parser_prod[113] + 1)))
+#define CALL_parser_prod___AFloatExpr___empty_init(recv) ((parser_prod___AFloatExpr___empty_init_t)CALL((recv), (SFT_parser_prod[114] + 0)))
+#define CALL_parser_prod___AFloatExpr___init_afloatexpr(recv) ((parser_prod___AFloatExpr___init_afloatexpr_t)CALL((recv), (SFT_parser_prod[114] + 1)))
+#define CALL_parser_prod___ACharExpr___empty_init(recv) ((parser_prod___ACharExpr___empty_init_t)CALL((recv), (SFT_parser_prod[115] + 0)))
+#define CALL_parser_prod___ACharExpr___init_acharexpr(recv) ((parser_prod___ACharExpr___init_acharexpr_t)CALL((recv), (SFT_parser_prod[115] + 1)))
+#define CALL_parser_prod___AStringExpr___empty_init(recv) ((parser_prod___AStringExpr___empty_init_t)CALL((recv), (SFT_parser_prod[116] + 0)))
+#define CALL_parser_prod___AStringExpr___init_astringexpr(recv) ((parser_prod___AStringExpr___init_astringexpr_t)CALL((recv), (SFT_parser_prod[116] + 1)))
+#define CALL_parser_prod___AStartStringExpr___empty_init(recv) ((parser_prod___AStartStringExpr___empty_init_t)CALL((recv), (SFT_parser_prod[117] + 0)))
+#define CALL_parser_prod___AStartStringExpr___init_astartstringexpr(recv) ((parser_prod___AStartStringExpr___init_astartstringexpr_t)CALL((recv), (SFT_parser_prod[117] + 1)))
+#define CALL_parser_prod___AMidStringExpr___empty_init(recv) ((parser_prod___AMidStringExpr___empty_init_t)CALL((recv), (SFT_parser_prod[118] + 0)))
+#define CALL_parser_prod___AMidStringExpr___init_amidstringexpr(recv) ((parser_prod___AMidStringExpr___init_amidstringexpr_t)CALL((recv), (SFT_parser_prod[118] + 1)))
+#define CALL_parser_prod___AEndStringExpr___empty_init(recv) ((parser_prod___AEndStringExpr___empty_init_t)CALL((recv), (SFT_parser_prod[119] + 0)))
+#define CALL_parser_prod___AEndStringExpr___init_aendstringexpr(recv) ((parser_prod___AEndStringExpr___init_aendstringexpr_t)CALL((recv), (SFT_parser_prod[119] + 1)))
+#define CALL_parser_prod___ASuperstringExpr___empty_init(recv) ((parser_prod___ASuperstringExpr___empty_init_t)CALL((recv), (SFT_parser_prod[120] + 0)))
+#define CALL_parser_prod___ASuperstringExpr___init_asuperstringexpr(recv) ((parser_prod___ASuperstringExpr___init_asuperstringexpr_t)CALL((recv), (SFT_parser_prod[120] + 1)))
+#define CALL_parser_prod___AParExpr___empty_init(recv) ((parser_prod___AParExpr___empty_init_t)CALL((recv), (SFT_parser_prod[121] + 0)))
+#define CALL_parser_prod___AParExpr___init_aparexpr(recv) ((parser_prod___AParExpr___init_aparexpr_t)CALL((recv), (SFT_parser_prod[121] + 1)))
+#define CALL_parser_prod___AAsCastExpr___empty_init(recv) ((parser_prod___AAsCastExpr___empty_init_t)CALL((recv), (SFT_parser_prod[122] + 0)))
+#define CALL_parser_prod___AAsCastExpr___init_aascastexpr(recv) ((parser_prod___AAsCastExpr___init_aascastexpr_t)CALL((recv), (SFT_parser_prod[122] + 1)))
+#define CALL_parser_prod___APlusAssignOp___empty_init(recv) ((parser_prod___APlusAssignOp___empty_init_t)CALL((recv), (SFT_parser_prod[123] + 0)))
+#define CALL_parser_prod___APlusAssignOp___init_aplusassignop(recv) ((parser_prod___APlusAssignOp___init_aplusassignop_t)CALL((recv), (SFT_parser_prod[123] + 1)))
+#define CALL_parser_prod___AMinusAssignOp___empty_init(recv) ((parser_prod___AMinusAssignOp___empty_init_t)CALL((recv), (SFT_parser_prod[124] + 0)))
+#define CALL_parser_prod___AMinusAssignOp___init_aminusassignop(recv) ((parser_prod___AMinusAssignOp___init_aminusassignop_t)CALL((recv), (SFT_parser_prod[124] + 1)))
+#define CALL_parser_prod___AClosureDef___empty_init(recv) ((parser_prod___AClosureDef___empty_init_t)CALL((recv), (SFT_parser_prod[125] + 0)))
+#define CALL_parser_prod___AClosureDef___init_aclosuredef(recv) ((parser_prod___AClosureDef___init_aclosuredef_t)CALL((recv), (SFT_parser_prod[125] + 1)))
+#define CALL_parser_prod___AQualified___empty_init(recv) ((parser_prod___AQualified___empty_init_t)CALL((recv), (SFT_parser_prod[126] + 0)))
+#define CALL_parser_prod___AQualified___init_aqualified(recv) ((parser_prod___AQualified___init_aqualified_t)CALL((recv), (SFT_parser_prod[126] + 1)))
+#define CALL_parser_prod___ADoc___empty_init(recv) ((parser_prod___ADoc___empty_init_t)CALL((recv), (SFT_parser_prod[127] + 0)))
+#define CALL_parser_prod___ADoc___init_adoc(recv) ((parser_prod___ADoc___init_adoc_t)CALL((recv), (SFT_parser_prod[127] + 1)))
+#define CALL_parser_prod___Start___init(recv) ((parser_prod___Start___init_t)CALL((recv), (SFT_parser_prod[128] + 0)))
 val_t NEW_PNode_parser_nodes___PNode___init();
-#define ATTR_parser_prod___PNode____parent(recv) ATTR(recv, COLOR_parser_prod___PNode____parent)
 typedef val_t (* parser_prod___PNode___parent_t)(val_t  self);
 val_t parser_prod___PNode___parent(val_t  self);
 #define LOCATE_parser_prod___PNode___parent "parser_prod::PNode::parent"
@@ -331,14 +330,12 @@ val_t parser_prod___Prod___locate(val_t  self);
 typedef val_t (* parser_prod___Prod___line_number_t)(val_t  self);
 val_t parser_prod___Prod___line_number(val_t  self);
 #define LOCATE_parser_prod___Prod___line_number "parser_prod::Prod::(parser_prod::PNode::line_number)"
-#define ATTR_parser_prod___Prod____first_token(recv) ATTR(recv, COLOR_parser_prod___Prod____first_token)
 typedef val_t (* parser_prod___Prod___first_token_t)(val_t  self);
 val_t parser_prod___Prod___first_token(val_t  self);
 #define LOCATE_parser_prod___Prod___first_token "parser_prod::Prod::first_token"
 typedef void (* parser_prod___Prod___first_token__eq_t)(val_t  self, val_t  param0);
 void parser_prod___Prod___first_token__eq(val_t  self, val_t  param0);
 #define LOCATE_parser_prod___Prod___first_token__eq "parser_prod::Prod::first_token="
-#define ATTR_parser_prod___Prod____last_token(recv) ATTR(recv, COLOR_parser_prod___Prod____last_token)
 typedef val_t (* parser_prod___Prod___last_token_t)(val_t  self);
 val_t parser_prod___Prod___last_token(val_t  self);
 #define LOCATE_parser_prod___Prod___last_token "parser_prod::Prod::last_token"
index 0575816..e3a4818 100644 (file)
@@ -13,3908 +13,3908 @@ void parser_tables___ParserTable___build_action_table(val_t  self) {
   else {
     variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(1301)); /*new Array[Array[Int]]*/
     variable[4] = variable[0];
-    variable[4] = ((parser_tables___ParserTable___action_table_row1_t)CALL(variable[4],COLOR_parser_tables___ParserTable___action_table_row1))(variable[4]) /*ParserTable::action_table_row1*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_parser_tables___ParserTable___action_table_row1(variable[4])(variable[4]) /*ParserTable::action_table_row1*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
     variable[5] = variable[0];
-    variable[5] = ((parser_tables___ParserTable___action_table_row2_t)CALL(variable[5],COLOR_parser_tables___ParserTable___action_table_row2))(variable[5]) /*ParserTable::action_table_row2*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[5]) /*AbstractArray::add*/;
+    variable[5] = CALL_parser_tables___ParserTable___action_table_row2(variable[5])(variable[5]) /*ParserTable::action_table_row2*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
-    variable[6] = ((parser_tables___ParserTable___action_table_row3_t)CALL(variable[6],COLOR_parser_tables___ParserTable___action_table_row3))(variable[6]) /*ParserTable::action_table_row3*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[6]) /*AbstractArray::add*/;
+    variable[6] = CALL_parser_tables___ParserTable___action_table_row3(variable[6])(variable[6]) /*ParserTable::action_table_row3*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
     variable[7] = variable[0];
-    variable[7] = ((parser_tables___ParserTable___action_table_row4_t)CALL(variable[7],COLOR_parser_tables___ParserTable___action_table_row4))(variable[7]) /*ParserTable::action_table_row4*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[7]) /*AbstractArray::add*/;
+    variable[7] = CALL_parser_tables___ParserTable___action_table_row4(variable[7])(variable[7]) /*ParserTable::action_table_row4*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = variable[0];
-    variable[8] = ((parser_tables___ParserTable___action_table_row5_t)CALL(variable[8],COLOR_parser_tables___ParserTable___action_table_row5))(variable[8]) /*ParserTable::action_table_row5*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[8]) /*AbstractArray::add*/;
+    variable[8] = CALL_parser_tables___ParserTable___action_table_row5(variable[8])(variable[8]) /*ParserTable::action_table_row5*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
     variable[9] = variable[0];
-    variable[9] = ((parser_tables___ParserTable___action_table_row6_t)CALL(variable[9],COLOR_parser_tables___ParserTable___action_table_row6))(variable[9]) /*ParserTable::action_table_row6*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[9] = CALL_parser_tables___ParserTable___action_table_row6(variable[9])(variable[9]) /*ParserTable::action_table_row6*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
     variable[10] = variable[0];
-    variable[10] = ((parser_tables___ParserTable___action_table_row7_t)CALL(variable[10],COLOR_parser_tables___ParserTable___action_table_row7))(variable[10]) /*ParserTable::action_table_row7*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[10]) /*AbstractArray::add*/;
+    variable[10] = CALL_parser_tables___ParserTable___action_table_row7(variable[10])(variable[10]) /*ParserTable::action_table_row7*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
     variable[11] = variable[0];
-    variable[11] = ((parser_tables___ParserTable___action_table_row8_t)CALL(variable[11],COLOR_parser_tables___ParserTable___action_table_row8))(variable[11]) /*ParserTable::action_table_row8*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[11]) /*AbstractArray::add*/;
+    variable[11] = CALL_parser_tables___ParserTable___action_table_row8(variable[11])(variable[11]) /*ParserTable::action_table_row8*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
     variable[12] = variable[0];
-    variable[12] = ((parser_tables___ParserTable___action_table_row9_t)CALL(variable[12],COLOR_parser_tables___ParserTable___action_table_row9))(variable[12]) /*ParserTable::action_table_row9*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[12]) /*AbstractArray::add*/;
+    variable[12] = CALL_parser_tables___ParserTable___action_table_row9(variable[12])(variable[12]) /*ParserTable::action_table_row9*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
     variable[13] = variable[0];
-    variable[13] = ((parser_tables___ParserTable___action_table_row10_t)CALL(variable[13],COLOR_parser_tables___ParserTable___action_table_row10))(variable[13]) /*ParserTable::action_table_row10*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[13]) /*AbstractArray::add*/;
+    variable[13] = CALL_parser_tables___ParserTable___action_table_row10(variable[13])(variable[13]) /*ParserTable::action_table_row10*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
     variable[14] = variable[0];
-    variable[14] = ((parser_tables___ParserTable___action_table_row11_t)CALL(variable[14],COLOR_parser_tables___ParserTable___action_table_row11))(variable[14]) /*ParserTable::action_table_row11*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[14]) /*AbstractArray::add*/;
+    variable[14] = CALL_parser_tables___ParserTable___action_table_row11(variable[14])(variable[14]) /*ParserTable::action_table_row11*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[14]) /*AbstractArray::add*/;
     variable[15] = variable[0];
-    variable[15] = ((parser_tables___ParserTable___action_table_row12_t)CALL(variable[15],COLOR_parser_tables___ParserTable___action_table_row12))(variable[15]) /*ParserTable::action_table_row12*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[15]) /*AbstractArray::add*/;
+    variable[15] = CALL_parser_tables___ParserTable___action_table_row12(variable[15])(variable[15]) /*ParserTable::action_table_row12*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[15]) /*AbstractArray::add*/;
     variable[16] = variable[0];
-    variable[16] = ((parser_tables___ParserTable___action_table_row13_t)CALL(variable[16],COLOR_parser_tables___ParserTable___action_table_row13))(variable[16]) /*ParserTable::action_table_row13*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[16]) /*AbstractArray::add*/;
+    variable[16] = CALL_parser_tables___ParserTable___action_table_row13(variable[16])(variable[16]) /*ParserTable::action_table_row13*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[16]) /*AbstractArray::add*/;
     variable[17] = variable[0];
-    variable[17] = ((parser_tables___ParserTable___action_table_row14_t)CALL(variable[17],COLOR_parser_tables___ParserTable___action_table_row14))(variable[17]) /*ParserTable::action_table_row14*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[17]) /*AbstractArray::add*/;
+    variable[17] = CALL_parser_tables___ParserTable___action_table_row14(variable[17])(variable[17]) /*ParserTable::action_table_row14*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[17]) /*AbstractArray::add*/;
     variable[18] = variable[0];
-    variable[18] = ((parser_tables___ParserTable___action_table_row15_t)CALL(variable[18],COLOR_parser_tables___ParserTable___action_table_row15))(variable[18]) /*ParserTable::action_table_row15*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[18]) /*AbstractArray::add*/;
+    variable[18] = CALL_parser_tables___ParserTable___action_table_row15(variable[18])(variable[18]) /*ParserTable::action_table_row15*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[18]) /*AbstractArray::add*/;
     variable[19] = variable[0];
-    variable[19] = ((parser_tables___ParserTable___action_table_row16_t)CALL(variable[19],COLOR_parser_tables___ParserTable___action_table_row16))(variable[19]) /*ParserTable::action_table_row16*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[19]) /*AbstractArray::add*/;
+    variable[19] = CALL_parser_tables___ParserTable___action_table_row16(variable[19])(variable[19]) /*ParserTable::action_table_row16*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[19]) /*AbstractArray::add*/;
     variable[20] = variable[0];
-    variable[20] = ((parser_tables___ParserTable___action_table_row17_t)CALL(variable[20],COLOR_parser_tables___ParserTable___action_table_row17))(variable[20]) /*ParserTable::action_table_row17*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[20]) /*AbstractArray::add*/;
+    variable[20] = CALL_parser_tables___ParserTable___action_table_row17(variable[20])(variable[20]) /*ParserTable::action_table_row17*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[20]) /*AbstractArray::add*/;
     variable[21] = variable[0];
-    variable[21] = ((parser_tables___ParserTable___action_table_row18_t)CALL(variable[21],COLOR_parser_tables___ParserTable___action_table_row18))(variable[21]) /*ParserTable::action_table_row18*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[21]) /*AbstractArray::add*/;
+    variable[21] = CALL_parser_tables___ParserTable___action_table_row18(variable[21])(variable[21]) /*ParserTable::action_table_row18*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[21]) /*AbstractArray::add*/;
     variable[22] = variable[0];
-    variable[22] = ((parser_tables___ParserTable___action_table_row19_t)CALL(variable[22],COLOR_parser_tables___ParserTable___action_table_row19))(variable[22]) /*ParserTable::action_table_row19*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[22]) /*AbstractArray::add*/;
+    variable[22] = CALL_parser_tables___ParserTable___action_table_row19(variable[22])(variable[22]) /*ParserTable::action_table_row19*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[22]) /*AbstractArray::add*/;
     variable[23] = variable[0];
-    variable[23] = ((parser_tables___ParserTable___action_table_row20_t)CALL(variable[23],COLOR_parser_tables___ParserTable___action_table_row20))(variable[23]) /*ParserTable::action_table_row20*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[23]) /*AbstractArray::add*/;
+    variable[23] = CALL_parser_tables___ParserTable___action_table_row20(variable[23])(variable[23]) /*ParserTable::action_table_row20*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[23]) /*AbstractArray::add*/;
     variable[24] = variable[0];
-    variable[24] = ((parser_tables___ParserTable___action_table_row21_t)CALL(variable[24],COLOR_parser_tables___ParserTable___action_table_row21))(variable[24]) /*ParserTable::action_table_row21*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[24]) /*AbstractArray::add*/;
+    variable[24] = CALL_parser_tables___ParserTable___action_table_row21(variable[24])(variable[24]) /*ParserTable::action_table_row21*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[24]) /*AbstractArray::add*/;
     variable[25] = variable[0];
-    variable[25] = ((parser_tables___ParserTable___action_table_row22_t)CALL(variable[25],COLOR_parser_tables___ParserTable___action_table_row22))(variable[25]) /*ParserTable::action_table_row22*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[25]) /*AbstractArray::add*/;
+    variable[25] = CALL_parser_tables___ParserTable___action_table_row22(variable[25])(variable[25]) /*ParserTable::action_table_row22*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[25]) /*AbstractArray::add*/;
     variable[26] = variable[0];
-    variable[26] = ((parser_tables___ParserTable___action_table_row23_t)CALL(variable[26],COLOR_parser_tables___ParserTable___action_table_row23))(variable[26]) /*ParserTable::action_table_row23*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[26]) /*AbstractArray::add*/;
+    variable[26] = CALL_parser_tables___ParserTable___action_table_row23(variable[26])(variable[26]) /*ParserTable::action_table_row23*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[26]) /*AbstractArray::add*/;
     variable[27] = variable[0];
-    variable[27] = ((parser_tables___ParserTable___action_table_row24_t)CALL(variable[27],COLOR_parser_tables___ParserTable___action_table_row24))(variable[27]) /*ParserTable::action_table_row24*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[27]) /*AbstractArray::add*/;
+    variable[27] = CALL_parser_tables___ParserTable___action_table_row24(variable[27])(variable[27]) /*ParserTable::action_table_row24*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[27]) /*AbstractArray::add*/;
     variable[28] = variable[0];
-    variable[28] = ((parser_tables___ParserTable___action_table_row25_t)CALL(variable[28],COLOR_parser_tables___ParserTable___action_table_row25))(variable[28]) /*ParserTable::action_table_row25*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[28]) /*AbstractArray::add*/;
+    variable[28] = CALL_parser_tables___ParserTable___action_table_row25(variable[28])(variable[28]) /*ParserTable::action_table_row25*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[28]) /*AbstractArray::add*/;
     variable[29] = variable[0];
-    variable[29] = ((parser_tables___ParserTable___action_table_row26_t)CALL(variable[29],COLOR_parser_tables___ParserTable___action_table_row26))(variable[29]) /*ParserTable::action_table_row26*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[29]) /*AbstractArray::add*/;
+    variable[29] = CALL_parser_tables___ParserTable___action_table_row26(variable[29])(variable[29]) /*ParserTable::action_table_row26*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[29]) /*AbstractArray::add*/;
     variable[30] = variable[0];
-    variable[30] = ((parser_tables___ParserTable___action_table_row27_t)CALL(variable[30],COLOR_parser_tables___ParserTable___action_table_row27))(variable[30]) /*ParserTable::action_table_row27*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[30]) /*AbstractArray::add*/;
+    variable[30] = CALL_parser_tables___ParserTable___action_table_row27(variable[30])(variable[30]) /*ParserTable::action_table_row27*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[30]) /*AbstractArray::add*/;
     variable[31] = variable[0];
-    variable[31] = ((parser_tables___ParserTable___action_table_row28_t)CALL(variable[31],COLOR_parser_tables___ParserTable___action_table_row28))(variable[31]) /*ParserTable::action_table_row28*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[31]) /*AbstractArray::add*/;
+    variable[31] = CALL_parser_tables___ParserTable___action_table_row28(variable[31])(variable[31]) /*ParserTable::action_table_row28*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[31]) /*AbstractArray::add*/;
     variable[32] = variable[0];
-    variable[32] = ((parser_tables___ParserTable___action_table_row29_t)CALL(variable[32],COLOR_parser_tables___ParserTable___action_table_row29))(variable[32]) /*ParserTable::action_table_row29*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[32]) /*AbstractArray::add*/;
+    variable[32] = CALL_parser_tables___ParserTable___action_table_row29(variable[32])(variable[32]) /*ParserTable::action_table_row29*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[32]) /*AbstractArray::add*/;
     variable[33] = variable[0];
-    variable[33] = ((parser_tables___ParserTable___action_table_row30_t)CALL(variable[33],COLOR_parser_tables___ParserTable___action_table_row30))(variable[33]) /*ParserTable::action_table_row30*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[33]) /*AbstractArray::add*/;
+    variable[33] = CALL_parser_tables___ParserTable___action_table_row30(variable[33])(variable[33]) /*ParserTable::action_table_row30*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[33]) /*AbstractArray::add*/;
     variable[34] = variable[0];
-    variable[34] = ((parser_tables___ParserTable___action_table_row31_t)CALL(variable[34],COLOR_parser_tables___ParserTable___action_table_row31))(variable[34]) /*ParserTable::action_table_row31*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[34]) /*AbstractArray::add*/;
+    variable[34] = CALL_parser_tables___ParserTable___action_table_row31(variable[34])(variable[34]) /*ParserTable::action_table_row31*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[34]) /*AbstractArray::add*/;
     variable[35] = variable[0];
-    variable[35] = ((parser_tables___ParserTable___action_table_row32_t)CALL(variable[35],COLOR_parser_tables___ParserTable___action_table_row32))(variable[35]) /*ParserTable::action_table_row32*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[35]) /*AbstractArray::add*/;
+    variable[35] = CALL_parser_tables___ParserTable___action_table_row32(variable[35])(variable[35]) /*ParserTable::action_table_row32*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[35]) /*AbstractArray::add*/;
     variable[36] = variable[0];
-    variable[36] = ((parser_tables___ParserTable___action_table_row33_t)CALL(variable[36],COLOR_parser_tables___ParserTable___action_table_row33))(variable[36]) /*ParserTable::action_table_row33*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[36]) /*AbstractArray::add*/;
+    variable[36] = CALL_parser_tables___ParserTable___action_table_row33(variable[36])(variable[36]) /*ParserTable::action_table_row33*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[36]) /*AbstractArray::add*/;
     variable[37] = variable[0];
-    variable[37] = ((parser_tables___ParserTable___action_table_row34_t)CALL(variable[37],COLOR_parser_tables___ParserTable___action_table_row34))(variable[37]) /*ParserTable::action_table_row34*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[37]) /*AbstractArray::add*/;
+    variable[37] = CALL_parser_tables___ParserTable___action_table_row34(variable[37])(variable[37]) /*ParserTable::action_table_row34*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[37]) /*AbstractArray::add*/;
     variable[38] = variable[0];
-    variable[38] = ((parser_tables___ParserTable___action_table_row35_t)CALL(variable[38],COLOR_parser_tables___ParserTable___action_table_row35))(variable[38]) /*ParserTable::action_table_row35*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[38]) /*AbstractArray::add*/;
+    variable[38] = CALL_parser_tables___ParserTable___action_table_row35(variable[38])(variable[38]) /*ParserTable::action_table_row35*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[38]) /*AbstractArray::add*/;
     variable[39] = variable[0];
-    variable[39] = ((parser_tables___ParserTable___action_table_row36_t)CALL(variable[39],COLOR_parser_tables___ParserTable___action_table_row36))(variable[39]) /*ParserTable::action_table_row36*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[39]) /*AbstractArray::add*/;
+    variable[39] = CALL_parser_tables___ParserTable___action_table_row36(variable[39])(variable[39]) /*ParserTable::action_table_row36*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[39]) /*AbstractArray::add*/;
     variable[40] = variable[0];
-    variable[40] = ((parser_tables___ParserTable___action_table_row37_t)CALL(variable[40],COLOR_parser_tables___ParserTable___action_table_row37))(variable[40]) /*ParserTable::action_table_row37*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[40]) /*AbstractArray::add*/;
+    variable[40] = CALL_parser_tables___ParserTable___action_table_row37(variable[40])(variable[40]) /*ParserTable::action_table_row37*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[40]) /*AbstractArray::add*/;
     variable[41] = variable[0];
-    variable[41] = ((parser_tables___ParserTable___action_table_row38_t)CALL(variable[41],COLOR_parser_tables___ParserTable___action_table_row38))(variable[41]) /*ParserTable::action_table_row38*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[41]) /*AbstractArray::add*/;
+    variable[41] = CALL_parser_tables___ParserTable___action_table_row38(variable[41])(variable[41]) /*ParserTable::action_table_row38*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[41]) /*AbstractArray::add*/;
     variable[42] = variable[0];
-    variable[42] = ((parser_tables___ParserTable___action_table_row39_t)CALL(variable[42],COLOR_parser_tables___ParserTable___action_table_row39))(variable[42]) /*ParserTable::action_table_row39*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[42]) /*AbstractArray::add*/;
+    variable[42] = CALL_parser_tables___ParserTable___action_table_row39(variable[42])(variable[42]) /*ParserTable::action_table_row39*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[42]) /*AbstractArray::add*/;
     variable[43] = variable[0];
-    variable[43] = ((parser_tables___ParserTable___action_table_row40_t)CALL(variable[43],COLOR_parser_tables___ParserTable___action_table_row40))(variable[43]) /*ParserTable::action_table_row40*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[43]) /*AbstractArray::add*/;
+    variable[43] = CALL_parser_tables___ParserTable___action_table_row40(variable[43])(variable[43]) /*ParserTable::action_table_row40*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[43]) /*AbstractArray::add*/;
     variable[44] = variable[0];
-    variable[44] = ((parser_tables___ParserTable___action_table_row41_t)CALL(variable[44],COLOR_parser_tables___ParserTable___action_table_row41))(variable[44]) /*ParserTable::action_table_row41*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[44]) /*AbstractArray::add*/;
+    variable[44] = CALL_parser_tables___ParserTable___action_table_row41(variable[44])(variable[44]) /*ParserTable::action_table_row41*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[44]) /*AbstractArray::add*/;
     variable[45] = variable[0];
-    variable[45] = ((parser_tables___ParserTable___action_table_row42_t)CALL(variable[45],COLOR_parser_tables___ParserTable___action_table_row42))(variable[45]) /*ParserTable::action_table_row42*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[45]) /*AbstractArray::add*/;
+    variable[45] = CALL_parser_tables___ParserTable___action_table_row42(variable[45])(variable[45]) /*ParserTable::action_table_row42*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[45]) /*AbstractArray::add*/;
     variable[46] = variable[0];
-    variable[46] = ((parser_tables___ParserTable___action_table_row43_t)CALL(variable[46],COLOR_parser_tables___ParserTable___action_table_row43))(variable[46]) /*ParserTable::action_table_row43*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[46]) /*AbstractArray::add*/;
+    variable[46] = CALL_parser_tables___ParserTable___action_table_row43(variable[46])(variable[46]) /*ParserTable::action_table_row43*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[46]) /*AbstractArray::add*/;
     variable[47] = variable[0];
-    variable[47] = ((parser_tables___ParserTable___action_table_row44_t)CALL(variable[47],COLOR_parser_tables___ParserTable___action_table_row44))(variable[47]) /*ParserTable::action_table_row44*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[47]) /*AbstractArray::add*/;
+    variable[47] = CALL_parser_tables___ParserTable___action_table_row44(variable[47])(variable[47]) /*ParserTable::action_table_row44*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[47]) /*AbstractArray::add*/;
     variable[48] = variable[0];
-    variable[48] = ((parser_tables___ParserTable___action_table_row45_t)CALL(variable[48],COLOR_parser_tables___ParserTable___action_table_row45))(variable[48]) /*ParserTable::action_table_row45*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[48]) /*AbstractArray::add*/;
+    variable[48] = CALL_parser_tables___ParserTable___action_table_row45(variable[48])(variable[48]) /*ParserTable::action_table_row45*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[48]) /*AbstractArray::add*/;
     variable[49] = variable[0];
-    variable[49] = ((parser_tables___ParserTable___action_table_row46_t)CALL(variable[49],COLOR_parser_tables___ParserTable___action_table_row46))(variable[49]) /*ParserTable::action_table_row46*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[49]) /*AbstractArray::add*/;
+    variable[49] = CALL_parser_tables___ParserTable___action_table_row46(variable[49])(variable[49]) /*ParserTable::action_table_row46*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[49]) /*AbstractArray::add*/;
     variable[50] = variable[0];
-    variable[50] = ((parser_tables___ParserTable___action_table_row47_t)CALL(variable[50],COLOR_parser_tables___ParserTable___action_table_row47))(variable[50]) /*ParserTable::action_table_row47*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[50]) /*AbstractArray::add*/;
+    variable[50] = CALL_parser_tables___ParserTable___action_table_row47(variable[50])(variable[50]) /*ParserTable::action_table_row47*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[50]) /*AbstractArray::add*/;
     variable[51] = variable[0];
-    variable[51] = ((parser_tables___ParserTable___action_table_row48_t)CALL(variable[51],COLOR_parser_tables___ParserTable___action_table_row48))(variable[51]) /*ParserTable::action_table_row48*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[51]) /*AbstractArray::add*/;
+    variable[51] = CALL_parser_tables___ParserTable___action_table_row48(variable[51])(variable[51]) /*ParserTable::action_table_row48*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[51]) /*AbstractArray::add*/;
     variable[52] = variable[0];
-    variable[52] = ((parser_tables___ParserTable___action_table_row49_t)CALL(variable[52],COLOR_parser_tables___ParserTable___action_table_row49))(variable[52]) /*ParserTable::action_table_row49*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[52]) /*AbstractArray::add*/;
+    variable[52] = CALL_parser_tables___ParserTable___action_table_row49(variable[52])(variable[52]) /*ParserTable::action_table_row49*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[52]) /*AbstractArray::add*/;
     variable[53] = variable[0];
-    variable[53] = ((parser_tables___ParserTable___action_table_row50_t)CALL(variable[53],COLOR_parser_tables___ParserTable___action_table_row50))(variable[53]) /*ParserTable::action_table_row50*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[53]) /*AbstractArray::add*/;
+    variable[53] = CALL_parser_tables___ParserTable___action_table_row50(variable[53])(variable[53]) /*ParserTable::action_table_row50*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[53]) /*AbstractArray::add*/;
     variable[54] = variable[0];
-    variable[54] = ((parser_tables___ParserTable___action_table_row51_t)CALL(variable[54],COLOR_parser_tables___ParserTable___action_table_row51))(variable[54]) /*ParserTable::action_table_row51*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[54]) /*AbstractArray::add*/;
+    variable[54] = CALL_parser_tables___ParserTable___action_table_row51(variable[54])(variable[54]) /*ParserTable::action_table_row51*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[54]) /*AbstractArray::add*/;
     variable[55] = variable[0];
-    variable[55] = ((parser_tables___ParserTable___action_table_row52_t)CALL(variable[55],COLOR_parser_tables___ParserTable___action_table_row52))(variable[55]) /*ParserTable::action_table_row52*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[55]) /*AbstractArray::add*/;
+    variable[55] = CALL_parser_tables___ParserTable___action_table_row52(variable[55])(variable[55]) /*ParserTable::action_table_row52*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[55]) /*AbstractArray::add*/;
     variable[56] = variable[0];
-    variable[56] = ((parser_tables___ParserTable___action_table_row53_t)CALL(variable[56],COLOR_parser_tables___ParserTable___action_table_row53))(variable[56]) /*ParserTable::action_table_row53*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[56]) /*AbstractArray::add*/;
+    variable[56] = CALL_parser_tables___ParserTable___action_table_row53(variable[56])(variable[56]) /*ParserTable::action_table_row53*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[56]) /*AbstractArray::add*/;
     variable[57] = variable[0];
-    variable[57] = ((parser_tables___ParserTable___action_table_row54_t)CALL(variable[57],COLOR_parser_tables___ParserTable___action_table_row54))(variable[57]) /*ParserTable::action_table_row54*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[57]) /*AbstractArray::add*/;
+    variable[57] = CALL_parser_tables___ParserTable___action_table_row54(variable[57])(variable[57]) /*ParserTable::action_table_row54*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[57]) /*AbstractArray::add*/;
     variable[58] = variable[0];
-    variable[58] = ((parser_tables___ParserTable___action_table_row55_t)CALL(variable[58],COLOR_parser_tables___ParserTable___action_table_row55))(variable[58]) /*ParserTable::action_table_row55*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[58]) /*AbstractArray::add*/;
+    variable[58] = CALL_parser_tables___ParserTable___action_table_row55(variable[58])(variable[58]) /*ParserTable::action_table_row55*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[58]) /*AbstractArray::add*/;
     variable[59] = variable[0];
-    variable[59] = ((parser_tables___ParserTable___action_table_row56_t)CALL(variable[59],COLOR_parser_tables___ParserTable___action_table_row56))(variable[59]) /*ParserTable::action_table_row56*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[59]) /*AbstractArray::add*/;
+    variable[59] = CALL_parser_tables___ParserTable___action_table_row56(variable[59])(variable[59]) /*ParserTable::action_table_row56*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[59]) /*AbstractArray::add*/;
     variable[60] = variable[0];
-    variable[60] = ((parser_tables___ParserTable___action_table_row57_t)CALL(variable[60],COLOR_parser_tables___ParserTable___action_table_row57))(variable[60]) /*ParserTable::action_table_row57*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[60]) /*AbstractArray::add*/;
+    variable[60] = CALL_parser_tables___ParserTable___action_table_row57(variable[60])(variable[60]) /*ParserTable::action_table_row57*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[60]) /*AbstractArray::add*/;
     variable[61] = variable[0];
-    variable[61] = ((parser_tables___ParserTable___action_table_row58_t)CALL(variable[61],COLOR_parser_tables___ParserTable___action_table_row58))(variable[61]) /*ParserTable::action_table_row58*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[61]) /*AbstractArray::add*/;
+    variable[61] = CALL_parser_tables___ParserTable___action_table_row58(variable[61])(variable[61]) /*ParserTable::action_table_row58*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[61]) /*AbstractArray::add*/;
     variable[62] = variable[0];
-    variable[62] = ((parser_tables___ParserTable___action_table_row59_t)CALL(variable[62],COLOR_parser_tables___ParserTable___action_table_row59))(variable[62]) /*ParserTable::action_table_row59*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[62]) /*AbstractArray::add*/;
+    variable[62] = CALL_parser_tables___ParserTable___action_table_row59(variable[62])(variable[62]) /*ParserTable::action_table_row59*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[62]) /*AbstractArray::add*/;
     variable[63] = variable[0];
-    variable[63] = ((parser_tables___ParserTable___action_table_row60_t)CALL(variable[63],COLOR_parser_tables___ParserTable___action_table_row60))(variable[63]) /*ParserTable::action_table_row60*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[63]) /*AbstractArray::add*/;
+    variable[63] = CALL_parser_tables___ParserTable___action_table_row60(variable[63])(variable[63]) /*ParserTable::action_table_row60*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[63]) /*AbstractArray::add*/;
     variable[64] = variable[0];
-    variable[64] = ((parser_tables___ParserTable___action_table_row61_t)CALL(variable[64],COLOR_parser_tables___ParserTable___action_table_row61))(variable[64]) /*ParserTable::action_table_row61*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[64]) /*AbstractArray::add*/;
+    variable[64] = CALL_parser_tables___ParserTable___action_table_row61(variable[64])(variable[64]) /*ParserTable::action_table_row61*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[64]) /*AbstractArray::add*/;
     variable[65] = variable[0];
-    variable[65] = ((parser_tables___ParserTable___action_table_row62_t)CALL(variable[65],COLOR_parser_tables___ParserTable___action_table_row62))(variable[65]) /*ParserTable::action_table_row62*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[65]) /*AbstractArray::add*/;
+    variable[65] = CALL_parser_tables___ParserTable___action_table_row62(variable[65])(variable[65]) /*ParserTable::action_table_row62*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[65]) /*AbstractArray::add*/;
     variable[66] = variable[0];
-    variable[66] = ((parser_tables___ParserTable___action_table_row63_t)CALL(variable[66],COLOR_parser_tables___ParserTable___action_table_row63))(variable[66]) /*ParserTable::action_table_row63*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[66]) /*AbstractArray::add*/;
+    variable[66] = CALL_parser_tables___ParserTable___action_table_row63(variable[66])(variable[66]) /*ParserTable::action_table_row63*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[66]) /*AbstractArray::add*/;
     variable[67] = variable[0];
-    variable[67] = ((parser_tables___ParserTable___action_table_row64_t)CALL(variable[67],COLOR_parser_tables___ParserTable___action_table_row64))(variable[67]) /*ParserTable::action_table_row64*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[67]) /*AbstractArray::add*/;
+    variable[67] = CALL_parser_tables___ParserTable___action_table_row64(variable[67])(variable[67]) /*ParserTable::action_table_row64*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[67]) /*AbstractArray::add*/;
     variable[68] = variable[0];
-    variable[68] = ((parser_tables___ParserTable___action_table_row65_t)CALL(variable[68],COLOR_parser_tables___ParserTable___action_table_row65))(variable[68]) /*ParserTable::action_table_row65*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[68]) /*AbstractArray::add*/;
+    variable[68] = CALL_parser_tables___ParserTable___action_table_row65(variable[68])(variable[68]) /*ParserTable::action_table_row65*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[68]) /*AbstractArray::add*/;
     variable[69] = variable[0];
-    variable[69] = ((parser_tables___ParserTable___action_table_row66_t)CALL(variable[69],COLOR_parser_tables___ParserTable___action_table_row66))(variable[69]) /*ParserTable::action_table_row66*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[69]) /*AbstractArray::add*/;
+    variable[69] = CALL_parser_tables___ParserTable___action_table_row66(variable[69])(variable[69]) /*ParserTable::action_table_row66*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[69]) /*AbstractArray::add*/;
     variable[70] = variable[0];
-    variable[70] = ((parser_tables___ParserTable___action_table_row67_t)CALL(variable[70],COLOR_parser_tables___ParserTable___action_table_row67))(variable[70]) /*ParserTable::action_table_row67*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[70]) /*AbstractArray::add*/;
+    variable[70] = CALL_parser_tables___ParserTable___action_table_row67(variable[70])(variable[70]) /*ParserTable::action_table_row67*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[70]) /*AbstractArray::add*/;
     variable[71] = variable[0];
-    variable[71] = ((parser_tables___ParserTable___action_table_row68_t)CALL(variable[71],COLOR_parser_tables___ParserTable___action_table_row68))(variable[71]) /*ParserTable::action_table_row68*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[71]) /*AbstractArray::add*/;
+    variable[71] = CALL_parser_tables___ParserTable___action_table_row68(variable[71])(variable[71]) /*ParserTable::action_table_row68*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[71]) /*AbstractArray::add*/;
     variable[72] = variable[0];
-    variable[72] = ((parser_tables___ParserTable___action_table_row69_t)CALL(variable[72],COLOR_parser_tables___ParserTable___action_table_row69))(variable[72]) /*ParserTable::action_table_row69*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[72]) /*AbstractArray::add*/;
+    variable[72] = CALL_parser_tables___ParserTable___action_table_row69(variable[72])(variable[72]) /*ParserTable::action_table_row69*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[72]) /*AbstractArray::add*/;
     variable[73] = variable[0];
-    variable[73] = ((parser_tables___ParserTable___action_table_row70_t)CALL(variable[73],COLOR_parser_tables___ParserTable___action_table_row70))(variable[73]) /*ParserTable::action_table_row70*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[73]) /*AbstractArray::add*/;
+    variable[73] = CALL_parser_tables___ParserTable___action_table_row70(variable[73])(variable[73]) /*ParserTable::action_table_row70*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[73]) /*AbstractArray::add*/;
     variable[74] = variable[0];
-    variable[74] = ((parser_tables___ParserTable___action_table_row71_t)CALL(variable[74],COLOR_parser_tables___ParserTable___action_table_row71))(variable[74]) /*ParserTable::action_table_row71*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[74]) /*AbstractArray::add*/;
+    variable[74] = CALL_parser_tables___ParserTable___action_table_row71(variable[74])(variable[74]) /*ParserTable::action_table_row71*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[74]) /*AbstractArray::add*/;
     variable[75] = variable[0];
-    variable[75] = ((parser_tables___ParserTable___action_table_row72_t)CALL(variable[75],COLOR_parser_tables___ParserTable___action_table_row72))(variable[75]) /*ParserTable::action_table_row72*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[75]) /*AbstractArray::add*/;
+    variable[75] = CALL_parser_tables___ParserTable___action_table_row72(variable[75])(variable[75]) /*ParserTable::action_table_row72*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[75]) /*AbstractArray::add*/;
     variable[76] = variable[0];
-    variable[76] = ((parser_tables___ParserTable___action_table_row73_t)CALL(variable[76],COLOR_parser_tables___ParserTable___action_table_row73))(variable[76]) /*ParserTable::action_table_row73*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[76]) /*AbstractArray::add*/;
+    variable[76] = CALL_parser_tables___ParserTable___action_table_row73(variable[76])(variable[76]) /*ParserTable::action_table_row73*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[76]) /*AbstractArray::add*/;
     variable[77] = variable[0];
-    variable[77] = ((parser_tables___ParserTable___action_table_row74_t)CALL(variable[77],COLOR_parser_tables___ParserTable___action_table_row74))(variable[77]) /*ParserTable::action_table_row74*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[77]) /*AbstractArray::add*/;
+    variable[77] = CALL_parser_tables___ParserTable___action_table_row74(variable[77])(variable[77]) /*ParserTable::action_table_row74*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[77]) /*AbstractArray::add*/;
     variable[78] = variable[0];
-    variable[78] = ((parser_tables___ParserTable___action_table_row75_t)CALL(variable[78],COLOR_parser_tables___ParserTable___action_table_row75))(variable[78]) /*ParserTable::action_table_row75*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[78]) /*AbstractArray::add*/;
+    variable[78] = CALL_parser_tables___ParserTable___action_table_row75(variable[78])(variable[78]) /*ParserTable::action_table_row75*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[78]) /*AbstractArray::add*/;
     variable[79] = variable[0];
-    variable[79] = ((parser_tables___ParserTable___action_table_row76_t)CALL(variable[79],COLOR_parser_tables___ParserTable___action_table_row76))(variable[79]) /*ParserTable::action_table_row76*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[79]) /*AbstractArray::add*/;
+    variable[79] = CALL_parser_tables___ParserTable___action_table_row76(variable[79])(variable[79]) /*ParserTable::action_table_row76*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[79]) /*AbstractArray::add*/;
     variable[80] = variable[0];
-    variable[80] = ((parser_tables___ParserTable___action_table_row77_t)CALL(variable[80],COLOR_parser_tables___ParserTable___action_table_row77))(variable[80]) /*ParserTable::action_table_row77*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[80]) /*AbstractArray::add*/;
+    variable[80] = CALL_parser_tables___ParserTable___action_table_row77(variable[80])(variable[80]) /*ParserTable::action_table_row77*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[80]) /*AbstractArray::add*/;
     variable[81] = variable[0];
-    variable[81] = ((parser_tables___ParserTable___action_table_row78_t)CALL(variable[81],COLOR_parser_tables___ParserTable___action_table_row78))(variable[81]) /*ParserTable::action_table_row78*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[81]) /*AbstractArray::add*/;
+    variable[81] = CALL_parser_tables___ParserTable___action_table_row78(variable[81])(variable[81]) /*ParserTable::action_table_row78*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[81]) /*AbstractArray::add*/;
     variable[82] = variable[0];
-    variable[82] = ((parser_tables___ParserTable___action_table_row79_t)CALL(variable[82],COLOR_parser_tables___ParserTable___action_table_row79))(variable[82]) /*ParserTable::action_table_row79*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[82]) /*AbstractArray::add*/;
+    variable[82] = CALL_parser_tables___ParserTable___action_table_row79(variable[82])(variable[82]) /*ParserTable::action_table_row79*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[82]) /*AbstractArray::add*/;
     variable[83] = variable[0];
-    variable[83] = ((parser_tables___ParserTable___action_table_row80_t)CALL(variable[83],COLOR_parser_tables___ParserTable___action_table_row80))(variable[83]) /*ParserTable::action_table_row80*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[83]) /*AbstractArray::add*/;
+    variable[83] = CALL_parser_tables___ParserTable___action_table_row80(variable[83])(variable[83]) /*ParserTable::action_table_row80*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[83]) /*AbstractArray::add*/;
     variable[84] = variable[0];
-    variable[84] = ((parser_tables___ParserTable___action_table_row81_t)CALL(variable[84],COLOR_parser_tables___ParserTable___action_table_row81))(variable[84]) /*ParserTable::action_table_row81*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[84]) /*AbstractArray::add*/;
+    variable[84] = CALL_parser_tables___ParserTable___action_table_row81(variable[84])(variable[84]) /*ParserTable::action_table_row81*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[84]) /*AbstractArray::add*/;
     variable[85] = variable[0];
-    variable[85] = ((parser_tables___ParserTable___action_table_row82_t)CALL(variable[85],COLOR_parser_tables___ParserTable___action_table_row82))(variable[85]) /*ParserTable::action_table_row82*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[85]) /*AbstractArray::add*/;
+    variable[85] = CALL_parser_tables___ParserTable___action_table_row82(variable[85])(variable[85]) /*ParserTable::action_table_row82*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[85]) /*AbstractArray::add*/;
     variable[86] = variable[0];
-    variable[86] = ((parser_tables___ParserTable___action_table_row83_t)CALL(variable[86],COLOR_parser_tables___ParserTable___action_table_row83))(variable[86]) /*ParserTable::action_table_row83*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[86]) /*AbstractArray::add*/;
+    variable[86] = CALL_parser_tables___ParserTable___action_table_row83(variable[86])(variable[86]) /*ParserTable::action_table_row83*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[86]) /*AbstractArray::add*/;
     variable[87] = variable[0];
-    variable[87] = ((parser_tables___ParserTable___action_table_row84_t)CALL(variable[87],COLOR_parser_tables___ParserTable___action_table_row84))(variable[87]) /*ParserTable::action_table_row84*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[87]) /*AbstractArray::add*/;
+    variable[87] = CALL_parser_tables___ParserTable___action_table_row84(variable[87])(variable[87]) /*ParserTable::action_table_row84*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[87]) /*AbstractArray::add*/;
     variable[88] = variable[0];
-    variable[88] = ((parser_tables___ParserTable___action_table_row85_t)CALL(variable[88],COLOR_parser_tables___ParserTable___action_table_row85))(variable[88]) /*ParserTable::action_table_row85*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[88]) /*AbstractArray::add*/;
+    variable[88] = CALL_parser_tables___ParserTable___action_table_row85(variable[88])(variable[88]) /*ParserTable::action_table_row85*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[88]) /*AbstractArray::add*/;
     variable[89] = variable[0];
-    variable[89] = ((parser_tables___ParserTable___action_table_row86_t)CALL(variable[89],COLOR_parser_tables___ParserTable___action_table_row86))(variable[89]) /*ParserTable::action_table_row86*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[89]) /*AbstractArray::add*/;
+    variable[89] = CALL_parser_tables___ParserTable___action_table_row86(variable[89])(variable[89]) /*ParserTable::action_table_row86*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[89]) /*AbstractArray::add*/;
     variable[90] = variable[0];
-    variable[90] = ((parser_tables___ParserTable___action_table_row87_t)CALL(variable[90],COLOR_parser_tables___ParserTable___action_table_row87))(variable[90]) /*ParserTable::action_table_row87*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[90]) /*AbstractArray::add*/;
+    variable[90] = CALL_parser_tables___ParserTable___action_table_row87(variable[90])(variable[90]) /*ParserTable::action_table_row87*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[90]) /*AbstractArray::add*/;
     variable[91] = variable[0];
-    variable[91] = ((parser_tables___ParserTable___action_table_row88_t)CALL(variable[91],COLOR_parser_tables___ParserTable___action_table_row88))(variable[91]) /*ParserTable::action_table_row88*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[91]) /*AbstractArray::add*/;
+    variable[91] = CALL_parser_tables___ParserTable___action_table_row88(variable[91])(variable[91]) /*ParserTable::action_table_row88*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[91]) /*AbstractArray::add*/;
     variable[92] = variable[0];
-    variable[92] = ((parser_tables___ParserTable___action_table_row89_t)CALL(variable[92],COLOR_parser_tables___ParserTable___action_table_row89))(variable[92]) /*ParserTable::action_table_row89*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[92]) /*AbstractArray::add*/;
+    variable[92] = CALL_parser_tables___ParserTable___action_table_row89(variable[92])(variable[92]) /*ParserTable::action_table_row89*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[92]) /*AbstractArray::add*/;
     variable[93] = variable[0];
-    variable[93] = ((parser_tables___ParserTable___action_table_row90_t)CALL(variable[93],COLOR_parser_tables___ParserTable___action_table_row90))(variable[93]) /*ParserTable::action_table_row90*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[93]) /*AbstractArray::add*/;
+    variable[93] = CALL_parser_tables___ParserTable___action_table_row90(variable[93])(variable[93]) /*ParserTable::action_table_row90*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[93]) /*AbstractArray::add*/;
     variable[94] = variable[0];
-    variable[94] = ((parser_tables___ParserTable___action_table_row91_t)CALL(variable[94],COLOR_parser_tables___ParserTable___action_table_row91))(variable[94]) /*ParserTable::action_table_row91*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[94]) /*AbstractArray::add*/;
+    variable[94] = CALL_parser_tables___ParserTable___action_table_row91(variable[94])(variable[94]) /*ParserTable::action_table_row91*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[94]) /*AbstractArray::add*/;
     variable[95] = variable[0];
-    variable[95] = ((parser_tables___ParserTable___action_table_row92_t)CALL(variable[95],COLOR_parser_tables___ParserTable___action_table_row92))(variable[95]) /*ParserTable::action_table_row92*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[95]) /*AbstractArray::add*/;
+    variable[95] = CALL_parser_tables___ParserTable___action_table_row92(variable[95])(variable[95]) /*ParserTable::action_table_row92*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[95]) /*AbstractArray::add*/;
     variable[96] = variable[0];
-    variable[96] = ((parser_tables___ParserTable___action_table_row93_t)CALL(variable[96],COLOR_parser_tables___ParserTable___action_table_row93))(variable[96]) /*ParserTable::action_table_row93*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[96]) /*AbstractArray::add*/;
+    variable[96] = CALL_parser_tables___ParserTable___action_table_row93(variable[96])(variable[96]) /*ParserTable::action_table_row93*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[96]) /*AbstractArray::add*/;
     variable[97] = variable[0];
-    variable[97] = ((parser_tables___ParserTable___action_table_row94_t)CALL(variable[97],COLOR_parser_tables___ParserTable___action_table_row94))(variable[97]) /*ParserTable::action_table_row94*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[97]) /*AbstractArray::add*/;
+    variable[97] = CALL_parser_tables___ParserTable___action_table_row94(variable[97])(variable[97]) /*ParserTable::action_table_row94*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[97]) /*AbstractArray::add*/;
     variable[98] = variable[0];
-    variable[98] = ((parser_tables___ParserTable___action_table_row95_t)CALL(variable[98],COLOR_parser_tables___ParserTable___action_table_row95))(variable[98]) /*ParserTable::action_table_row95*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[98]) /*AbstractArray::add*/;
+    variable[98] = CALL_parser_tables___ParserTable___action_table_row95(variable[98])(variable[98]) /*ParserTable::action_table_row95*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[98]) /*AbstractArray::add*/;
     variable[99] = variable[0];
-    variable[99] = ((parser_tables___ParserTable___action_table_row96_t)CALL(variable[99],COLOR_parser_tables___ParserTable___action_table_row96))(variable[99]) /*ParserTable::action_table_row96*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[99]) /*AbstractArray::add*/;
+    variable[99] = CALL_parser_tables___ParserTable___action_table_row96(variable[99])(variable[99]) /*ParserTable::action_table_row96*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[99]) /*AbstractArray::add*/;
     variable[100] = variable[0];
-    variable[100] = ((parser_tables___ParserTable___action_table_row97_t)CALL(variable[100],COLOR_parser_tables___ParserTable___action_table_row97))(variable[100]) /*ParserTable::action_table_row97*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[100]) /*AbstractArray::add*/;
+    variable[100] = CALL_parser_tables___ParserTable___action_table_row97(variable[100])(variable[100]) /*ParserTable::action_table_row97*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[100]) /*AbstractArray::add*/;
     variable[101] = variable[0];
-    variable[101] = ((parser_tables___ParserTable___action_table_row98_t)CALL(variable[101],COLOR_parser_tables___ParserTable___action_table_row98))(variable[101]) /*ParserTable::action_table_row98*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[101]) /*AbstractArray::add*/;
+    variable[101] = CALL_parser_tables___ParserTable___action_table_row98(variable[101])(variable[101]) /*ParserTable::action_table_row98*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[101]) /*AbstractArray::add*/;
     variable[102] = variable[0];
-    variable[102] = ((parser_tables___ParserTable___action_table_row99_t)CALL(variable[102],COLOR_parser_tables___ParserTable___action_table_row99))(variable[102]) /*ParserTable::action_table_row99*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[102]) /*AbstractArray::add*/;
+    variable[102] = CALL_parser_tables___ParserTable___action_table_row99(variable[102])(variable[102]) /*ParserTable::action_table_row99*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[102]) /*AbstractArray::add*/;
     variable[103] = variable[0];
-    variable[103] = ((parser_tables___ParserTable___action_table_row100_t)CALL(variable[103],COLOR_parser_tables___ParserTable___action_table_row100))(variable[103]) /*ParserTable::action_table_row100*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[103]) /*AbstractArray::add*/;
+    variable[103] = CALL_parser_tables___ParserTable___action_table_row100(variable[103])(variable[103]) /*ParserTable::action_table_row100*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[103]) /*AbstractArray::add*/;
     variable[104] = variable[0];
-    variable[104] = ((parser_tables___ParserTable___action_table_row101_t)CALL(variable[104],COLOR_parser_tables___ParserTable___action_table_row101))(variable[104]) /*ParserTable::action_table_row101*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[104]) /*AbstractArray::add*/;
+    variable[104] = CALL_parser_tables___ParserTable___action_table_row101(variable[104])(variable[104]) /*ParserTable::action_table_row101*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[104]) /*AbstractArray::add*/;
     variable[105] = variable[0];
-    variable[105] = ((parser_tables___ParserTable___action_table_row102_t)CALL(variable[105],COLOR_parser_tables___ParserTable___action_table_row102))(variable[105]) /*ParserTable::action_table_row102*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[105]) /*AbstractArray::add*/;
+    variable[105] = CALL_parser_tables___ParserTable___action_table_row102(variable[105])(variable[105]) /*ParserTable::action_table_row102*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[105]) /*AbstractArray::add*/;
     variable[106] = variable[0];
-    variable[106] = ((parser_tables___ParserTable___action_table_row103_t)CALL(variable[106],COLOR_parser_tables___ParserTable___action_table_row103))(variable[106]) /*ParserTable::action_table_row103*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[106]) /*AbstractArray::add*/;
+    variable[106] = CALL_parser_tables___ParserTable___action_table_row103(variable[106])(variable[106]) /*ParserTable::action_table_row103*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[106]) /*AbstractArray::add*/;
     variable[107] = variable[0];
-    variable[107] = ((parser_tables___ParserTable___action_table_row104_t)CALL(variable[107],COLOR_parser_tables___ParserTable___action_table_row104))(variable[107]) /*ParserTable::action_table_row104*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[107]) /*AbstractArray::add*/;
+    variable[107] = CALL_parser_tables___ParserTable___action_table_row104(variable[107])(variable[107]) /*ParserTable::action_table_row104*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[107]) /*AbstractArray::add*/;
     variable[108] = variable[0];
-    variable[108] = ((parser_tables___ParserTable___action_table_row105_t)CALL(variable[108],COLOR_parser_tables___ParserTable___action_table_row105))(variable[108]) /*ParserTable::action_table_row105*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[108]) /*AbstractArray::add*/;
+    variable[108] = CALL_parser_tables___ParserTable___action_table_row105(variable[108])(variable[108]) /*ParserTable::action_table_row105*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[108]) /*AbstractArray::add*/;
     variable[109] = variable[0];
-    variable[109] = ((parser_tables___ParserTable___action_table_row106_t)CALL(variable[109],COLOR_parser_tables___ParserTable___action_table_row106))(variable[109]) /*ParserTable::action_table_row106*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[109]) /*AbstractArray::add*/;
+    variable[109] = CALL_parser_tables___ParserTable___action_table_row106(variable[109])(variable[109]) /*ParserTable::action_table_row106*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[109]) /*AbstractArray::add*/;
     variable[110] = variable[0];
-    variable[110] = ((parser_tables___ParserTable___action_table_row107_t)CALL(variable[110],COLOR_parser_tables___ParserTable___action_table_row107))(variable[110]) /*ParserTable::action_table_row107*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[110]) /*AbstractArray::add*/;
+    variable[110] = CALL_parser_tables___ParserTable___action_table_row107(variable[110])(variable[110]) /*ParserTable::action_table_row107*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[110]) /*AbstractArray::add*/;
     variable[111] = variable[0];
-    variable[111] = ((parser_tables___ParserTable___action_table_row108_t)CALL(variable[111],COLOR_parser_tables___ParserTable___action_table_row108))(variable[111]) /*ParserTable::action_table_row108*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[111]) /*AbstractArray::add*/;
+    variable[111] = CALL_parser_tables___ParserTable___action_table_row108(variable[111])(variable[111]) /*ParserTable::action_table_row108*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[111]) /*AbstractArray::add*/;
     variable[112] = variable[0];
-    variable[112] = ((parser_tables___ParserTable___action_table_row109_t)CALL(variable[112],COLOR_parser_tables___ParserTable___action_table_row109))(variable[112]) /*ParserTable::action_table_row109*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[112]) /*AbstractArray::add*/;
+    variable[112] = CALL_parser_tables___ParserTable___action_table_row109(variable[112])(variable[112]) /*ParserTable::action_table_row109*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[112]) /*AbstractArray::add*/;
     variable[113] = variable[0];
-    variable[113] = ((parser_tables___ParserTable___action_table_row110_t)CALL(variable[113],COLOR_parser_tables___ParserTable___action_table_row110))(variable[113]) /*ParserTable::action_table_row110*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[113]) /*AbstractArray::add*/;
+    variable[113] = CALL_parser_tables___ParserTable___action_table_row110(variable[113])(variable[113]) /*ParserTable::action_table_row110*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[113]) /*AbstractArray::add*/;
     variable[114] = variable[0];
-    variable[114] = ((parser_tables___ParserTable___action_table_row111_t)CALL(variable[114],COLOR_parser_tables___ParserTable___action_table_row111))(variable[114]) /*ParserTable::action_table_row111*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[114]) /*AbstractArray::add*/;
+    variable[114] = CALL_parser_tables___ParserTable___action_table_row111(variable[114])(variable[114]) /*ParserTable::action_table_row111*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[114]) /*AbstractArray::add*/;
     variable[115] = variable[0];
-    variable[115] = ((parser_tables___ParserTable___action_table_row112_t)CALL(variable[115],COLOR_parser_tables___ParserTable___action_table_row112))(variable[115]) /*ParserTable::action_table_row112*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[115]) /*AbstractArray::add*/;
+    variable[115] = CALL_parser_tables___ParserTable___action_table_row112(variable[115])(variable[115]) /*ParserTable::action_table_row112*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[115]) /*AbstractArray::add*/;
     variable[116] = variable[0];
-    variable[116] = ((parser_tables___ParserTable___action_table_row113_t)CALL(variable[116],COLOR_parser_tables___ParserTable___action_table_row113))(variable[116]) /*ParserTable::action_table_row113*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[116]) /*AbstractArray::add*/;
+    variable[116] = CALL_parser_tables___ParserTable___action_table_row113(variable[116])(variable[116]) /*ParserTable::action_table_row113*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[116]) /*AbstractArray::add*/;
     variable[117] = variable[0];
-    variable[117] = ((parser_tables___ParserTable___action_table_row114_t)CALL(variable[117],COLOR_parser_tables___ParserTable___action_table_row114))(variable[117]) /*ParserTable::action_table_row114*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[117]) /*AbstractArray::add*/;
+    variable[117] = CALL_parser_tables___ParserTable___action_table_row114(variable[117])(variable[117]) /*ParserTable::action_table_row114*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[117]) /*AbstractArray::add*/;
     variable[118] = variable[0];
-    variable[118] = ((parser_tables___ParserTable___action_table_row115_t)CALL(variable[118],COLOR_parser_tables___ParserTable___action_table_row115))(variable[118]) /*ParserTable::action_table_row115*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[118]) /*AbstractArray::add*/;
+    variable[118] = CALL_parser_tables___ParserTable___action_table_row115(variable[118])(variable[118]) /*ParserTable::action_table_row115*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[118]) /*AbstractArray::add*/;
     variable[119] = variable[0];
-    variable[119] = ((parser_tables___ParserTable___action_table_row116_t)CALL(variable[119],COLOR_parser_tables___ParserTable___action_table_row116))(variable[119]) /*ParserTable::action_table_row116*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[119]) /*AbstractArray::add*/;
+    variable[119] = CALL_parser_tables___ParserTable___action_table_row116(variable[119])(variable[119]) /*ParserTable::action_table_row116*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[119]) /*AbstractArray::add*/;
     variable[120] = variable[0];
-    variable[120] = ((parser_tables___ParserTable___action_table_row117_t)CALL(variable[120],COLOR_parser_tables___ParserTable___action_table_row117))(variable[120]) /*ParserTable::action_table_row117*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[120]) /*AbstractArray::add*/;
+    variable[120] = CALL_parser_tables___ParserTable___action_table_row117(variable[120])(variable[120]) /*ParserTable::action_table_row117*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[120]) /*AbstractArray::add*/;
     variable[121] = variable[0];
-    variable[121] = ((parser_tables___ParserTable___action_table_row118_t)CALL(variable[121],COLOR_parser_tables___ParserTable___action_table_row118))(variable[121]) /*ParserTable::action_table_row118*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[121]) /*AbstractArray::add*/;
+    variable[121] = CALL_parser_tables___ParserTable___action_table_row118(variable[121])(variable[121]) /*ParserTable::action_table_row118*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[121]) /*AbstractArray::add*/;
     variable[122] = variable[0];
-    variable[122] = ((parser_tables___ParserTable___action_table_row119_t)CALL(variable[122],COLOR_parser_tables___ParserTable___action_table_row119))(variable[122]) /*ParserTable::action_table_row119*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[122]) /*AbstractArray::add*/;
+    variable[122] = CALL_parser_tables___ParserTable___action_table_row119(variable[122])(variable[122]) /*ParserTable::action_table_row119*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[122]) /*AbstractArray::add*/;
     variable[123] = variable[0];
-    variable[123] = ((parser_tables___ParserTable___action_table_row120_t)CALL(variable[123],COLOR_parser_tables___ParserTable___action_table_row120))(variable[123]) /*ParserTable::action_table_row120*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[123]) /*AbstractArray::add*/;
+    variable[123] = CALL_parser_tables___ParserTable___action_table_row120(variable[123])(variable[123]) /*ParserTable::action_table_row120*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[123]) /*AbstractArray::add*/;
     variable[124] = variable[0];
-    variable[124] = ((parser_tables___ParserTable___action_table_row121_t)CALL(variable[124],COLOR_parser_tables___ParserTable___action_table_row121))(variable[124]) /*ParserTable::action_table_row121*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[124]) /*AbstractArray::add*/;
+    variable[124] = CALL_parser_tables___ParserTable___action_table_row121(variable[124])(variable[124]) /*ParserTable::action_table_row121*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[124]) /*AbstractArray::add*/;
     variable[125] = variable[0];
-    variable[125] = ((parser_tables___ParserTable___action_table_row122_t)CALL(variable[125],COLOR_parser_tables___ParserTable___action_table_row122))(variable[125]) /*ParserTable::action_table_row122*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[125]) /*AbstractArray::add*/;
+    variable[125] = CALL_parser_tables___ParserTable___action_table_row122(variable[125])(variable[125]) /*ParserTable::action_table_row122*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[125]) /*AbstractArray::add*/;
     variable[126] = variable[0];
-    variable[126] = ((parser_tables___ParserTable___action_table_row123_t)CALL(variable[126],COLOR_parser_tables___ParserTable___action_table_row123))(variable[126]) /*ParserTable::action_table_row123*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[126]) /*AbstractArray::add*/;
+    variable[126] = CALL_parser_tables___ParserTable___action_table_row123(variable[126])(variable[126]) /*ParserTable::action_table_row123*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[126]) /*AbstractArray::add*/;
     variable[127] = variable[0];
-    variable[127] = ((parser_tables___ParserTable___action_table_row124_t)CALL(variable[127],COLOR_parser_tables___ParserTable___action_table_row124))(variable[127]) /*ParserTable::action_table_row124*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[127]) /*AbstractArray::add*/;
+    variable[127] = CALL_parser_tables___ParserTable___action_table_row124(variable[127])(variable[127]) /*ParserTable::action_table_row124*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[127]) /*AbstractArray::add*/;
     variable[128] = variable[0];
-    variable[128] = ((parser_tables___ParserTable___action_table_row125_t)CALL(variable[128],COLOR_parser_tables___ParserTable___action_table_row125))(variable[128]) /*ParserTable::action_table_row125*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[128]) /*AbstractArray::add*/;
+    variable[128] = CALL_parser_tables___ParserTable___action_table_row125(variable[128])(variable[128]) /*ParserTable::action_table_row125*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[128]) /*AbstractArray::add*/;
     variable[129] = variable[0];
-    variable[129] = ((parser_tables___ParserTable___action_table_row126_t)CALL(variable[129],COLOR_parser_tables___ParserTable___action_table_row126))(variable[129]) /*ParserTable::action_table_row126*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[129]) /*AbstractArray::add*/;
+    variable[129] = CALL_parser_tables___ParserTable___action_table_row126(variable[129])(variable[129]) /*ParserTable::action_table_row126*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[129]) /*AbstractArray::add*/;
     variable[130] = variable[0];
-    variable[130] = ((parser_tables___ParserTable___action_table_row127_t)CALL(variable[130],COLOR_parser_tables___ParserTable___action_table_row127))(variable[130]) /*ParserTable::action_table_row127*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[130]) /*AbstractArray::add*/;
+    variable[130] = CALL_parser_tables___ParserTable___action_table_row127(variable[130])(variable[130]) /*ParserTable::action_table_row127*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[130]) /*AbstractArray::add*/;
     variable[131] = variable[0];
-    variable[131] = ((parser_tables___ParserTable___action_table_row128_t)CALL(variable[131],COLOR_parser_tables___ParserTable___action_table_row128))(variable[131]) /*ParserTable::action_table_row128*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[131]) /*AbstractArray::add*/;
+    variable[131] = CALL_parser_tables___ParserTable___action_table_row128(variable[131])(variable[131]) /*ParserTable::action_table_row128*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[131]) /*AbstractArray::add*/;
     variable[132] = variable[0];
-    variable[132] = ((parser_tables___ParserTable___action_table_row129_t)CALL(variable[132],COLOR_parser_tables___ParserTable___action_table_row129))(variable[132]) /*ParserTable::action_table_row129*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[132]) /*AbstractArray::add*/;
+    variable[132] = CALL_parser_tables___ParserTable___action_table_row129(variable[132])(variable[132]) /*ParserTable::action_table_row129*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[132]) /*AbstractArray::add*/;
     variable[133] = variable[0];
-    variable[133] = ((parser_tables___ParserTable___action_table_row130_t)CALL(variable[133],COLOR_parser_tables___ParserTable___action_table_row130))(variable[133]) /*ParserTable::action_table_row130*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[133]) /*AbstractArray::add*/;
+    variable[133] = CALL_parser_tables___ParserTable___action_table_row130(variable[133])(variable[133]) /*ParserTable::action_table_row130*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[133]) /*AbstractArray::add*/;
     variable[134] = variable[0];
-    variable[134] = ((parser_tables___ParserTable___action_table_row131_t)CALL(variable[134],COLOR_parser_tables___ParserTable___action_table_row131))(variable[134]) /*ParserTable::action_table_row131*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[134]) /*AbstractArray::add*/;
+    variable[134] = CALL_parser_tables___ParserTable___action_table_row131(variable[134])(variable[134]) /*ParserTable::action_table_row131*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[134]) /*AbstractArray::add*/;
     variable[135] = variable[0];
-    variable[135] = ((parser_tables___ParserTable___action_table_row132_t)CALL(variable[135],COLOR_parser_tables___ParserTable___action_table_row132))(variable[135]) /*ParserTable::action_table_row132*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[135]) /*AbstractArray::add*/;
+    variable[135] = CALL_parser_tables___ParserTable___action_table_row132(variable[135])(variable[135]) /*ParserTable::action_table_row132*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[135]) /*AbstractArray::add*/;
     variable[136] = variable[0];
-    variable[136] = ((parser_tables___ParserTable___action_table_row133_t)CALL(variable[136],COLOR_parser_tables___ParserTable___action_table_row133))(variable[136]) /*ParserTable::action_table_row133*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[136]) /*AbstractArray::add*/;
+    variable[136] = CALL_parser_tables___ParserTable___action_table_row133(variable[136])(variable[136]) /*ParserTable::action_table_row133*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[136]) /*AbstractArray::add*/;
     variable[137] = variable[0];
-    variable[137] = ((parser_tables___ParserTable___action_table_row134_t)CALL(variable[137],COLOR_parser_tables___ParserTable___action_table_row134))(variable[137]) /*ParserTable::action_table_row134*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[137]) /*AbstractArray::add*/;
+    variable[137] = CALL_parser_tables___ParserTable___action_table_row134(variable[137])(variable[137]) /*ParserTable::action_table_row134*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[137]) /*AbstractArray::add*/;
     variable[138] = variable[0];
-    variable[138] = ((parser_tables___ParserTable___action_table_row135_t)CALL(variable[138],COLOR_parser_tables___ParserTable___action_table_row135))(variable[138]) /*ParserTable::action_table_row135*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[138]) /*AbstractArray::add*/;
+    variable[138] = CALL_parser_tables___ParserTable___action_table_row135(variable[138])(variable[138]) /*ParserTable::action_table_row135*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[138]) /*AbstractArray::add*/;
     variable[139] = variable[0];
-    variable[139] = ((parser_tables___ParserTable___action_table_row136_t)CALL(variable[139],COLOR_parser_tables___ParserTable___action_table_row136))(variable[139]) /*ParserTable::action_table_row136*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[139]) /*AbstractArray::add*/;
+    variable[139] = CALL_parser_tables___ParserTable___action_table_row136(variable[139])(variable[139]) /*ParserTable::action_table_row136*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[139]) /*AbstractArray::add*/;
     variable[140] = variable[0];
-    variable[140] = ((parser_tables___ParserTable___action_table_row137_t)CALL(variable[140],COLOR_parser_tables___ParserTable___action_table_row137))(variable[140]) /*ParserTable::action_table_row137*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[140]) /*AbstractArray::add*/;
+    variable[140] = CALL_parser_tables___ParserTable___action_table_row137(variable[140])(variable[140]) /*ParserTable::action_table_row137*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[140]) /*AbstractArray::add*/;
     variable[141] = variable[0];
-    variable[141] = ((parser_tables___ParserTable___action_table_row138_t)CALL(variable[141],COLOR_parser_tables___ParserTable___action_table_row138))(variable[141]) /*ParserTable::action_table_row138*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[141]) /*AbstractArray::add*/;
+    variable[141] = CALL_parser_tables___ParserTable___action_table_row138(variable[141])(variable[141]) /*ParserTable::action_table_row138*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[141]) /*AbstractArray::add*/;
     variable[142] = variable[0];
-    variable[142] = ((parser_tables___ParserTable___action_table_row139_t)CALL(variable[142],COLOR_parser_tables___ParserTable___action_table_row139))(variable[142]) /*ParserTable::action_table_row139*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[142]) /*AbstractArray::add*/;
+    variable[142] = CALL_parser_tables___ParserTable___action_table_row139(variable[142])(variable[142]) /*ParserTable::action_table_row139*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[142]) /*AbstractArray::add*/;
     variable[143] = variable[0];
-    variable[143] = ((parser_tables___ParserTable___action_table_row140_t)CALL(variable[143],COLOR_parser_tables___ParserTable___action_table_row140))(variable[143]) /*ParserTable::action_table_row140*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[143]) /*AbstractArray::add*/;
+    variable[143] = CALL_parser_tables___ParserTable___action_table_row140(variable[143])(variable[143]) /*ParserTable::action_table_row140*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[143]) /*AbstractArray::add*/;
     variable[144] = variable[0];
-    variable[144] = ((parser_tables___ParserTable___action_table_row141_t)CALL(variable[144],COLOR_parser_tables___ParserTable___action_table_row141))(variable[144]) /*ParserTable::action_table_row141*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[144]) /*AbstractArray::add*/;
+    variable[144] = CALL_parser_tables___ParserTable___action_table_row141(variable[144])(variable[144]) /*ParserTable::action_table_row141*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[144]) /*AbstractArray::add*/;
     variable[145] = variable[0];
-    variable[145] = ((parser_tables___ParserTable___action_table_row142_t)CALL(variable[145],COLOR_parser_tables___ParserTable___action_table_row142))(variable[145]) /*ParserTable::action_table_row142*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[145]) /*AbstractArray::add*/;
+    variable[145] = CALL_parser_tables___ParserTable___action_table_row142(variable[145])(variable[145]) /*ParserTable::action_table_row142*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[145]) /*AbstractArray::add*/;
     variable[146] = variable[0];
-    variable[146] = ((parser_tables___ParserTable___action_table_row143_t)CALL(variable[146],COLOR_parser_tables___ParserTable___action_table_row143))(variable[146]) /*ParserTable::action_table_row143*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[146]) /*AbstractArray::add*/;
+    variable[146] = CALL_parser_tables___ParserTable___action_table_row143(variable[146])(variable[146]) /*ParserTable::action_table_row143*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[146]) /*AbstractArray::add*/;
     variable[147] = variable[0];
-    variable[147] = ((parser_tables___ParserTable___action_table_row144_t)CALL(variable[147],COLOR_parser_tables___ParserTable___action_table_row144))(variable[147]) /*ParserTable::action_table_row144*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[147]) /*AbstractArray::add*/;
+    variable[147] = CALL_parser_tables___ParserTable___action_table_row144(variable[147])(variable[147]) /*ParserTable::action_table_row144*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[147]) /*AbstractArray::add*/;
     variable[148] = variable[0];
-    variable[148] = ((parser_tables___ParserTable___action_table_row145_t)CALL(variable[148],COLOR_parser_tables___ParserTable___action_table_row145))(variable[148]) /*ParserTable::action_table_row145*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[148]) /*AbstractArray::add*/;
+    variable[148] = CALL_parser_tables___ParserTable___action_table_row145(variable[148])(variable[148]) /*ParserTable::action_table_row145*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[148]) /*AbstractArray::add*/;
     variable[149] = variable[0];
-    variable[149] = ((parser_tables___ParserTable___action_table_row146_t)CALL(variable[149],COLOR_parser_tables___ParserTable___action_table_row146))(variable[149]) /*ParserTable::action_table_row146*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[149]) /*AbstractArray::add*/;
+    variable[149] = CALL_parser_tables___ParserTable___action_table_row146(variable[149])(variable[149]) /*ParserTable::action_table_row146*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[149]) /*AbstractArray::add*/;
     variable[150] = variable[0];
-    variable[150] = ((parser_tables___ParserTable___action_table_row147_t)CALL(variable[150],COLOR_parser_tables___ParserTable___action_table_row147))(variable[150]) /*ParserTable::action_table_row147*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[150]) /*AbstractArray::add*/;
+    variable[150] = CALL_parser_tables___ParserTable___action_table_row147(variable[150])(variable[150]) /*ParserTable::action_table_row147*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[150]) /*AbstractArray::add*/;
     variable[151] = variable[0];
-    variable[151] = ((parser_tables___ParserTable___action_table_row148_t)CALL(variable[151],COLOR_parser_tables___ParserTable___action_table_row148))(variable[151]) /*ParserTable::action_table_row148*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[151]) /*AbstractArray::add*/;
+    variable[151] = CALL_parser_tables___ParserTable___action_table_row148(variable[151])(variable[151]) /*ParserTable::action_table_row148*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[151]) /*AbstractArray::add*/;
     variable[152] = variable[0];
-    variable[152] = ((parser_tables___ParserTable___action_table_row149_t)CALL(variable[152],COLOR_parser_tables___ParserTable___action_table_row149))(variable[152]) /*ParserTable::action_table_row149*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[152]) /*AbstractArray::add*/;
+    variable[152] = CALL_parser_tables___ParserTable___action_table_row149(variable[152])(variable[152]) /*ParserTable::action_table_row149*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[152]) /*AbstractArray::add*/;
     variable[153] = variable[0];
-    variable[153] = ((parser_tables___ParserTable___action_table_row150_t)CALL(variable[153],COLOR_parser_tables___ParserTable___action_table_row150))(variable[153]) /*ParserTable::action_table_row150*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[153]) /*AbstractArray::add*/;
+    variable[153] = CALL_parser_tables___ParserTable___action_table_row150(variable[153])(variable[153]) /*ParserTable::action_table_row150*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[153]) /*AbstractArray::add*/;
     variable[154] = variable[0];
-    variable[154] = ((parser_tables___ParserTable___action_table_row151_t)CALL(variable[154],COLOR_parser_tables___ParserTable___action_table_row151))(variable[154]) /*ParserTable::action_table_row151*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[154]) /*AbstractArray::add*/;
+    variable[154] = CALL_parser_tables___ParserTable___action_table_row151(variable[154])(variable[154]) /*ParserTable::action_table_row151*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[154]) /*AbstractArray::add*/;
     variable[155] = variable[0];
-    variable[155] = ((parser_tables___ParserTable___action_table_row152_t)CALL(variable[155],COLOR_parser_tables___ParserTable___action_table_row152))(variable[155]) /*ParserTable::action_table_row152*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[155]) /*AbstractArray::add*/;
+    variable[155] = CALL_parser_tables___ParserTable___action_table_row152(variable[155])(variable[155]) /*ParserTable::action_table_row152*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[155]) /*AbstractArray::add*/;
     variable[156] = variable[0];
-    variable[156] = ((parser_tables___ParserTable___action_table_row153_t)CALL(variable[156],COLOR_parser_tables___ParserTable___action_table_row153))(variable[156]) /*ParserTable::action_table_row153*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[156]) /*AbstractArray::add*/;
+    variable[156] = CALL_parser_tables___ParserTable___action_table_row153(variable[156])(variable[156]) /*ParserTable::action_table_row153*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[156]) /*AbstractArray::add*/;
     variable[157] = variable[0];
-    variable[157] = ((parser_tables___ParserTable___action_table_row154_t)CALL(variable[157],COLOR_parser_tables___ParserTable___action_table_row154))(variable[157]) /*ParserTable::action_table_row154*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[157]) /*AbstractArray::add*/;
+    variable[157] = CALL_parser_tables___ParserTable___action_table_row154(variable[157])(variable[157]) /*ParserTable::action_table_row154*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[157]) /*AbstractArray::add*/;
     variable[158] = variable[0];
-    variable[158] = ((parser_tables___ParserTable___action_table_row155_t)CALL(variable[158],COLOR_parser_tables___ParserTable___action_table_row155))(variable[158]) /*ParserTable::action_table_row155*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[158]) /*AbstractArray::add*/;
+    variable[158] = CALL_parser_tables___ParserTable___action_table_row155(variable[158])(variable[158]) /*ParserTable::action_table_row155*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[158]) /*AbstractArray::add*/;
     variable[159] = variable[0];
-    variable[159] = ((parser_tables___ParserTable___action_table_row156_t)CALL(variable[159],COLOR_parser_tables___ParserTable___action_table_row156))(variable[159]) /*ParserTable::action_table_row156*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[159]) /*AbstractArray::add*/;
+    variable[159] = CALL_parser_tables___ParserTable___action_table_row156(variable[159])(variable[159]) /*ParserTable::action_table_row156*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[159]) /*AbstractArray::add*/;
     variable[160] = variable[0];
-    variable[160] = ((parser_tables___ParserTable___action_table_row157_t)CALL(variable[160],COLOR_parser_tables___ParserTable___action_table_row157))(variable[160]) /*ParserTable::action_table_row157*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[160]) /*AbstractArray::add*/;
+    variable[160] = CALL_parser_tables___ParserTable___action_table_row157(variable[160])(variable[160]) /*ParserTable::action_table_row157*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[160]) /*AbstractArray::add*/;
     variable[161] = variable[0];
-    variable[161] = ((parser_tables___ParserTable___action_table_row158_t)CALL(variable[161],COLOR_parser_tables___ParserTable___action_table_row158))(variable[161]) /*ParserTable::action_table_row158*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[161]) /*AbstractArray::add*/;
+    variable[161] = CALL_parser_tables___ParserTable___action_table_row158(variable[161])(variable[161]) /*ParserTable::action_table_row158*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[161]) /*AbstractArray::add*/;
     variable[162] = variable[0];
-    variable[162] = ((parser_tables___ParserTable___action_table_row159_t)CALL(variable[162],COLOR_parser_tables___ParserTable___action_table_row159))(variable[162]) /*ParserTable::action_table_row159*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[162]) /*AbstractArray::add*/;
+    variable[162] = CALL_parser_tables___ParserTable___action_table_row159(variable[162])(variable[162]) /*ParserTable::action_table_row159*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[162]) /*AbstractArray::add*/;
     variable[163] = variable[0];
-    variable[163] = ((parser_tables___ParserTable___action_table_row160_t)CALL(variable[163],COLOR_parser_tables___ParserTable___action_table_row160))(variable[163]) /*ParserTable::action_table_row160*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[163]) /*AbstractArray::add*/;
+    variable[163] = CALL_parser_tables___ParserTable___action_table_row160(variable[163])(variable[163]) /*ParserTable::action_table_row160*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[163]) /*AbstractArray::add*/;
     variable[164] = variable[0];
-    variable[164] = ((parser_tables___ParserTable___action_table_row161_t)CALL(variable[164],COLOR_parser_tables___ParserTable___action_table_row161))(variable[164]) /*ParserTable::action_table_row161*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[164]) /*AbstractArray::add*/;
+    variable[164] = CALL_parser_tables___ParserTable___action_table_row161(variable[164])(variable[164]) /*ParserTable::action_table_row161*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[164]) /*AbstractArray::add*/;
     variable[165] = variable[0];
-    variable[165] = ((parser_tables___ParserTable___action_table_row162_t)CALL(variable[165],COLOR_parser_tables___ParserTable___action_table_row162))(variable[165]) /*ParserTable::action_table_row162*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[165]) /*AbstractArray::add*/;
+    variable[165] = CALL_parser_tables___ParserTable___action_table_row162(variable[165])(variable[165]) /*ParserTable::action_table_row162*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[165]) /*AbstractArray::add*/;
     variable[166] = variable[0];
-    variable[166] = ((parser_tables___ParserTable___action_table_row163_t)CALL(variable[166],COLOR_parser_tables___ParserTable___action_table_row163))(variable[166]) /*ParserTable::action_table_row163*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[166]) /*AbstractArray::add*/;
+    variable[166] = CALL_parser_tables___ParserTable___action_table_row163(variable[166])(variable[166]) /*ParserTable::action_table_row163*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[166]) /*AbstractArray::add*/;
     variable[167] = variable[0];
-    variable[167] = ((parser_tables___ParserTable___action_table_row164_t)CALL(variable[167],COLOR_parser_tables___ParserTable___action_table_row164))(variable[167]) /*ParserTable::action_table_row164*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[167]) /*AbstractArray::add*/;
+    variable[167] = CALL_parser_tables___ParserTable___action_table_row164(variable[167])(variable[167]) /*ParserTable::action_table_row164*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[167]) /*AbstractArray::add*/;
     variable[168] = variable[0];
-    variable[168] = ((parser_tables___ParserTable___action_table_row165_t)CALL(variable[168],COLOR_parser_tables___ParserTable___action_table_row165))(variable[168]) /*ParserTable::action_table_row165*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[168]) /*AbstractArray::add*/;
+    variable[168] = CALL_parser_tables___ParserTable___action_table_row165(variable[168])(variable[168]) /*ParserTable::action_table_row165*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[168]) /*AbstractArray::add*/;
     variable[169] = variable[0];
-    variable[169] = ((parser_tables___ParserTable___action_table_row166_t)CALL(variable[169],COLOR_parser_tables___ParserTable___action_table_row166))(variable[169]) /*ParserTable::action_table_row166*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[169]) /*AbstractArray::add*/;
+    variable[169] = CALL_parser_tables___ParserTable___action_table_row166(variable[169])(variable[169]) /*ParserTable::action_table_row166*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[169]) /*AbstractArray::add*/;
     variable[170] = variable[0];
-    variable[170] = ((parser_tables___ParserTable___action_table_row167_t)CALL(variable[170],COLOR_parser_tables___ParserTable___action_table_row167))(variable[170]) /*ParserTable::action_table_row167*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[170]) /*AbstractArray::add*/;
+    variable[170] = CALL_parser_tables___ParserTable___action_table_row167(variable[170])(variable[170]) /*ParserTable::action_table_row167*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[170]) /*AbstractArray::add*/;
     variable[171] = variable[0];
-    variable[171] = ((parser_tables___ParserTable___action_table_row168_t)CALL(variable[171],COLOR_parser_tables___ParserTable___action_table_row168))(variable[171]) /*ParserTable::action_table_row168*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[171]) /*AbstractArray::add*/;
+    variable[171] = CALL_parser_tables___ParserTable___action_table_row168(variable[171])(variable[171]) /*ParserTable::action_table_row168*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[171]) /*AbstractArray::add*/;
     variable[172] = variable[0];
-    variable[172] = ((parser_tables___ParserTable___action_table_row169_t)CALL(variable[172],COLOR_parser_tables___ParserTable___action_table_row169))(variable[172]) /*ParserTable::action_table_row169*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[172]) /*AbstractArray::add*/;
+    variable[172] = CALL_parser_tables___ParserTable___action_table_row169(variable[172])(variable[172]) /*ParserTable::action_table_row169*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[172]) /*AbstractArray::add*/;
     variable[173] = variable[0];
-    variable[173] = ((parser_tables___ParserTable___action_table_row170_t)CALL(variable[173],COLOR_parser_tables___ParserTable___action_table_row170))(variable[173]) /*ParserTable::action_table_row170*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[173]) /*AbstractArray::add*/;
+    variable[173] = CALL_parser_tables___ParserTable___action_table_row170(variable[173])(variable[173]) /*ParserTable::action_table_row170*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[173]) /*AbstractArray::add*/;
     variable[174] = variable[0];
-    variable[174] = ((parser_tables___ParserTable___action_table_row171_t)CALL(variable[174],COLOR_parser_tables___ParserTable___action_table_row171))(variable[174]) /*ParserTable::action_table_row171*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[174]) /*AbstractArray::add*/;
+    variable[174] = CALL_parser_tables___ParserTable___action_table_row171(variable[174])(variable[174]) /*ParserTable::action_table_row171*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[174]) /*AbstractArray::add*/;
     variable[175] = variable[0];
-    variable[175] = ((parser_tables___ParserTable___action_table_row172_t)CALL(variable[175],COLOR_parser_tables___ParserTable___action_table_row172))(variable[175]) /*ParserTable::action_table_row172*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[175]) /*AbstractArray::add*/;
+    variable[175] = CALL_parser_tables___ParserTable___action_table_row172(variable[175])(variable[175]) /*ParserTable::action_table_row172*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[175]) /*AbstractArray::add*/;
     variable[176] = variable[0];
-    variable[176] = ((parser_tables___ParserTable___action_table_row173_t)CALL(variable[176],COLOR_parser_tables___ParserTable___action_table_row173))(variable[176]) /*ParserTable::action_table_row173*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[176]) /*AbstractArray::add*/;
+    variable[176] = CALL_parser_tables___ParserTable___action_table_row173(variable[176])(variable[176]) /*ParserTable::action_table_row173*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[176]) /*AbstractArray::add*/;
     variable[177] = variable[0];
-    variable[177] = ((parser_tables___ParserTable___action_table_row174_t)CALL(variable[177],COLOR_parser_tables___ParserTable___action_table_row174))(variable[177]) /*ParserTable::action_table_row174*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[177]) /*AbstractArray::add*/;
+    variable[177] = CALL_parser_tables___ParserTable___action_table_row174(variable[177])(variable[177]) /*ParserTable::action_table_row174*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[177]) /*AbstractArray::add*/;
     variable[178] = variable[0];
-    variable[178] = ((parser_tables___ParserTable___action_table_row175_t)CALL(variable[178],COLOR_parser_tables___ParserTable___action_table_row175))(variable[178]) /*ParserTable::action_table_row175*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[178]) /*AbstractArray::add*/;
+    variable[178] = CALL_parser_tables___ParserTable___action_table_row175(variable[178])(variable[178]) /*ParserTable::action_table_row175*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[178]) /*AbstractArray::add*/;
     variable[179] = variable[0];
-    variable[179] = ((parser_tables___ParserTable___action_table_row176_t)CALL(variable[179],COLOR_parser_tables___ParserTable___action_table_row176))(variable[179]) /*ParserTable::action_table_row176*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[179]) /*AbstractArray::add*/;
+    variable[179] = CALL_parser_tables___ParserTable___action_table_row176(variable[179])(variable[179]) /*ParserTable::action_table_row176*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[179]) /*AbstractArray::add*/;
     variable[180] = variable[0];
-    variable[180] = ((parser_tables___ParserTable___action_table_row177_t)CALL(variable[180],COLOR_parser_tables___ParserTable___action_table_row177))(variable[180]) /*ParserTable::action_table_row177*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[180]) /*AbstractArray::add*/;
+    variable[180] = CALL_parser_tables___ParserTable___action_table_row177(variable[180])(variable[180]) /*ParserTable::action_table_row177*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[180]) /*AbstractArray::add*/;
     variable[181] = variable[0];
-    variable[181] = ((parser_tables___ParserTable___action_table_row178_t)CALL(variable[181],COLOR_parser_tables___ParserTable___action_table_row178))(variable[181]) /*ParserTable::action_table_row178*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[181]) /*AbstractArray::add*/;
+    variable[181] = CALL_parser_tables___ParserTable___action_table_row178(variable[181])(variable[181]) /*ParserTable::action_table_row178*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[181]) /*AbstractArray::add*/;
     variable[182] = variable[0];
-    variable[182] = ((parser_tables___ParserTable___action_table_row179_t)CALL(variable[182],COLOR_parser_tables___ParserTable___action_table_row179))(variable[182]) /*ParserTable::action_table_row179*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[182]) /*AbstractArray::add*/;
+    variable[182] = CALL_parser_tables___ParserTable___action_table_row179(variable[182])(variable[182]) /*ParserTable::action_table_row179*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[182]) /*AbstractArray::add*/;
     variable[183] = variable[0];
-    variable[183] = ((parser_tables___ParserTable___action_table_row180_t)CALL(variable[183],COLOR_parser_tables___ParserTable___action_table_row180))(variable[183]) /*ParserTable::action_table_row180*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[183]) /*AbstractArray::add*/;
+    variable[183] = CALL_parser_tables___ParserTable___action_table_row180(variable[183])(variable[183]) /*ParserTable::action_table_row180*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[183]) /*AbstractArray::add*/;
     variable[184] = variable[0];
-    variable[184] = ((parser_tables___ParserTable___action_table_row181_t)CALL(variable[184],COLOR_parser_tables___ParserTable___action_table_row181))(variable[184]) /*ParserTable::action_table_row181*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[184]) /*AbstractArray::add*/;
+    variable[184] = CALL_parser_tables___ParserTable___action_table_row181(variable[184])(variable[184]) /*ParserTable::action_table_row181*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[184]) /*AbstractArray::add*/;
     variable[185] = variable[0];
-    variable[185] = ((parser_tables___ParserTable___action_table_row182_t)CALL(variable[185],COLOR_parser_tables___ParserTable___action_table_row182))(variable[185]) /*ParserTable::action_table_row182*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[185]) /*AbstractArray::add*/;
+    variable[185] = CALL_parser_tables___ParserTable___action_table_row182(variable[185])(variable[185]) /*ParserTable::action_table_row182*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[185]) /*AbstractArray::add*/;
     variable[186] = variable[0];
-    variable[186] = ((parser_tables___ParserTable___action_table_row183_t)CALL(variable[186],COLOR_parser_tables___ParserTable___action_table_row183))(variable[186]) /*ParserTable::action_table_row183*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[186]) /*AbstractArray::add*/;
+    variable[186] = CALL_parser_tables___ParserTable___action_table_row183(variable[186])(variable[186]) /*ParserTable::action_table_row183*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[186]) /*AbstractArray::add*/;
     variable[187] = variable[0];
-    variable[187] = ((parser_tables___ParserTable___action_table_row184_t)CALL(variable[187],COLOR_parser_tables___ParserTable___action_table_row184))(variable[187]) /*ParserTable::action_table_row184*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[187]) /*AbstractArray::add*/;
+    variable[187] = CALL_parser_tables___ParserTable___action_table_row184(variable[187])(variable[187]) /*ParserTable::action_table_row184*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[187]) /*AbstractArray::add*/;
     variable[188] = variable[0];
-    variable[188] = ((parser_tables___ParserTable___action_table_row185_t)CALL(variable[188],COLOR_parser_tables___ParserTable___action_table_row185))(variable[188]) /*ParserTable::action_table_row185*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[188]) /*AbstractArray::add*/;
+    variable[188] = CALL_parser_tables___ParserTable___action_table_row185(variable[188])(variable[188]) /*ParserTable::action_table_row185*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[188]) /*AbstractArray::add*/;
     variable[189] = variable[0];
-    variable[189] = ((parser_tables___ParserTable___action_table_row186_t)CALL(variable[189],COLOR_parser_tables___ParserTable___action_table_row186))(variable[189]) /*ParserTable::action_table_row186*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[189]) /*AbstractArray::add*/;
+    variable[189] = CALL_parser_tables___ParserTable___action_table_row186(variable[189])(variable[189]) /*ParserTable::action_table_row186*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[189]) /*AbstractArray::add*/;
     variable[190] = variable[0];
-    variable[190] = ((parser_tables___ParserTable___action_table_row187_t)CALL(variable[190],COLOR_parser_tables___ParserTable___action_table_row187))(variable[190]) /*ParserTable::action_table_row187*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[190]) /*AbstractArray::add*/;
+    variable[190] = CALL_parser_tables___ParserTable___action_table_row187(variable[190])(variable[190]) /*ParserTable::action_table_row187*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[190]) /*AbstractArray::add*/;
     variable[191] = variable[0];
-    variable[191] = ((parser_tables___ParserTable___action_table_row188_t)CALL(variable[191],COLOR_parser_tables___ParserTable___action_table_row188))(variable[191]) /*ParserTable::action_table_row188*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[191]) /*AbstractArray::add*/;
+    variable[191] = CALL_parser_tables___ParserTable___action_table_row188(variable[191])(variable[191]) /*ParserTable::action_table_row188*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[191]) /*AbstractArray::add*/;
     variable[192] = variable[0];
-    variable[192] = ((parser_tables___ParserTable___action_table_row189_t)CALL(variable[192],COLOR_parser_tables___ParserTable___action_table_row189))(variable[192]) /*ParserTable::action_table_row189*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[192]) /*AbstractArray::add*/;
+    variable[192] = CALL_parser_tables___ParserTable___action_table_row189(variable[192])(variable[192]) /*ParserTable::action_table_row189*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[192]) /*AbstractArray::add*/;
     variable[193] = variable[0];
-    variable[193] = ((parser_tables___ParserTable___action_table_row190_t)CALL(variable[193],COLOR_parser_tables___ParserTable___action_table_row190))(variable[193]) /*ParserTable::action_table_row190*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[193]) /*AbstractArray::add*/;
+    variable[193] = CALL_parser_tables___ParserTable___action_table_row190(variable[193])(variable[193]) /*ParserTable::action_table_row190*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[193]) /*AbstractArray::add*/;
     variable[194] = variable[0];
-    variable[194] = ((parser_tables___ParserTable___action_table_row191_t)CALL(variable[194],COLOR_parser_tables___ParserTable___action_table_row191))(variable[194]) /*ParserTable::action_table_row191*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[194]) /*AbstractArray::add*/;
+    variable[194] = CALL_parser_tables___ParserTable___action_table_row191(variable[194])(variable[194]) /*ParserTable::action_table_row191*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[194]) /*AbstractArray::add*/;
     variable[195] = variable[0];
-    variable[195] = ((parser_tables___ParserTable___action_table_row192_t)CALL(variable[195],COLOR_parser_tables___ParserTable___action_table_row192))(variable[195]) /*ParserTable::action_table_row192*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[195]) /*AbstractArray::add*/;
+    variable[195] = CALL_parser_tables___ParserTable___action_table_row192(variable[195])(variable[195]) /*ParserTable::action_table_row192*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[195]) /*AbstractArray::add*/;
     variable[196] = variable[0];
-    variable[196] = ((parser_tables___ParserTable___action_table_row193_t)CALL(variable[196],COLOR_parser_tables___ParserTable___action_table_row193))(variable[196]) /*ParserTable::action_table_row193*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[196]) /*AbstractArray::add*/;
+    variable[196] = CALL_parser_tables___ParserTable___action_table_row193(variable[196])(variable[196]) /*ParserTable::action_table_row193*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[196]) /*AbstractArray::add*/;
     variable[197] = variable[0];
-    variable[197] = ((parser_tables___ParserTable___action_table_row194_t)CALL(variable[197],COLOR_parser_tables___ParserTable___action_table_row194))(variable[197]) /*ParserTable::action_table_row194*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[197]) /*AbstractArray::add*/;
+    variable[197] = CALL_parser_tables___ParserTable___action_table_row194(variable[197])(variable[197]) /*ParserTable::action_table_row194*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[197]) /*AbstractArray::add*/;
     variable[198] = variable[0];
-    variable[198] = ((parser_tables___ParserTable___action_table_row195_t)CALL(variable[198],COLOR_parser_tables___ParserTable___action_table_row195))(variable[198]) /*ParserTable::action_table_row195*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[198]) /*AbstractArray::add*/;
+    variable[198] = CALL_parser_tables___ParserTable___action_table_row195(variable[198])(variable[198]) /*ParserTable::action_table_row195*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[198]) /*AbstractArray::add*/;
     variable[199] = variable[0];
-    variable[199] = ((parser_tables___ParserTable___action_table_row196_t)CALL(variable[199],COLOR_parser_tables___ParserTable___action_table_row196))(variable[199]) /*ParserTable::action_table_row196*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[199]) /*AbstractArray::add*/;
+    variable[199] = CALL_parser_tables___ParserTable___action_table_row196(variable[199])(variable[199]) /*ParserTable::action_table_row196*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[199]) /*AbstractArray::add*/;
     variable[200] = variable[0];
-    variable[200] = ((parser_tables___ParserTable___action_table_row197_t)CALL(variable[200],COLOR_parser_tables___ParserTable___action_table_row197))(variable[200]) /*ParserTable::action_table_row197*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[200]) /*AbstractArray::add*/;
+    variable[200] = CALL_parser_tables___ParserTable___action_table_row197(variable[200])(variable[200]) /*ParserTable::action_table_row197*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[200]) /*AbstractArray::add*/;
     variable[201] = variable[0];
-    variable[201] = ((parser_tables___ParserTable___action_table_row198_t)CALL(variable[201],COLOR_parser_tables___ParserTable___action_table_row198))(variable[201]) /*ParserTable::action_table_row198*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[201]) /*AbstractArray::add*/;
+    variable[201] = CALL_parser_tables___ParserTable___action_table_row198(variable[201])(variable[201]) /*ParserTable::action_table_row198*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[201]) /*AbstractArray::add*/;
     variable[202] = variable[0];
-    variable[202] = ((parser_tables___ParserTable___action_table_row199_t)CALL(variable[202],COLOR_parser_tables___ParserTable___action_table_row199))(variable[202]) /*ParserTable::action_table_row199*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[202]) /*AbstractArray::add*/;
+    variable[202] = CALL_parser_tables___ParserTable___action_table_row199(variable[202])(variable[202]) /*ParserTable::action_table_row199*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[202]) /*AbstractArray::add*/;
     variable[203] = variable[0];
-    variable[203] = ((parser_tables___ParserTable___action_table_row200_t)CALL(variable[203],COLOR_parser_tables___ParserTable___action_table_row200))(variable[203]) /*ParserTable::action_table_row200*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[203]) /*AbstractArray::add*/;
+    variable[203] = CALL_parser_tables___ParserTable___action_table_row200(variable[203])(variable[203]) /*ParserTable::action_table_row200*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[203]) /*AbstractArray::add*/;
     variable[204] = variable[0];
-    variable[204] = ((parser_tables___ParserTable___action_table_row201_t)CALL(variable[204],COLOR_parser_tables___ParserTable___action_table_row201))(variable[204]) /*ParserTable::action_table_row201*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[204]) /*AbstractArray::add*/;
+    variable[204] = CALL_parser_tables___ParserTable___action_table_row201(variable[204])(variable[204]) /*ParserTable::action_table_row201*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[204]) /*AbstractArray::add*/;
     variable[205] = variable[0];
-    variable[205] = ((parser_tables___ParserTable___action_table_row202_t)CALL(variable[205],COLOR_parser_tables___ParserTable___action_table_row202))(variable[205]) /*ParserTable::action_table_row202*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[205]) /*AbstractArray::add*/;
+    variable[205] = CALL_parser_tables___ParserTable___action_table_row202(variable[205])(variable[205]) /*ParserTable::action_table_row202*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[205]) /*AbstractArray::add*/;
     variable[206] = variable[0];
-    variable[206] = ((parser_tables___ParserTable___action_table_row203_t)CALL(variable[206],COLOR_parser_tables___ParserTable___action_table_row203))(variable[206]) /*ParserTable::action_table_row203*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[206]) /*AbstractArray::add*/;
+    variable[206] = CALL_parser_tables___ParserTable___action_table_row203(variable[206])(variable[206]) /*ParserTable::action_table_row203*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[206]) /*AbstractArray::add*/;
     variable[207] = variable[0];
-    variable[207] = ((parser_tables___ParserTable___action_table_row204_t)CALL(variable[207],COLOR_parser_tables___ParserTable___action_table_row204))(variable[207]) /*ParserTable::action_table_row204*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[207]) /*AbstractArray::add*/;
+    variable[207] = CALL_parser_tables___ParserTable___action_table_row204(variable[207])(variable[207]) /*ParserTable::action_table_row204*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[207]) /*AbstractArray::add*/;
     variable[208] = variable[0];
-    variable[208] = ((parser_tables___ParserTable___action_table_row205_t)CALL(variable[208],COLOR_parser_tables___ParserTable___action_table_row205))(variable[208]) /*ParserTable::action_table_row205*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[208]) /*AbstractArray::add*/;
+    variable[208] = CALL_parser_tables___ParserTable___action_table_row205(variable[208])(variable[208]) /*ParserTable::action_table_row205*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[208]) /*AbstractArray::add*/;
     variable[209] = variable[0];
-    variable[209] = ((parser_tables___ParserTable___action_table_row206_t)CALL(variable[209],COLOR_parser_tables___ParserTable___action_table_row206))(variable[209]) /*ParserTable::action_table_row206*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[209]) /*AbstractArray::add*/;
+    variable[209] = CALL_parser_tables___ParserTable___action_table_row206(variable[209])(variable[209]) /*ParserTable::action_table_row206*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[209]) /*AbstractArray::add*/;
     variable[210] = variable[0];
-    variable[210] = ((parser_tables___ParserTable___action_table_row207_t)CALL(variable[210],COLOR_parser_tables___ParserTable___action_table_row207))(variable[210]) /*ParserTable::action_table_row207*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[210]) /*AbstractArray::add*/;
+    variable[210] = CALL_parser_tables___ParserTable___action_table_row207(variable[210])(variable[210]) /*ParserTable::action_table_row207*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[210]) /*AbstractArray::add*/;
     variable[211] = variable[0];
-    variable[211] = ((parser_tables___ParserTable___action_table_row208_t)CALL(variable[211],COLOR_parser_tables___ParserTable___action_table_row208))(variable[211]) /*ParserTable::action_table_row208*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[211]) /*AbstractArray::add*/;
+    variable[211] = CALL_parser_tables___ParserTable___action_table_row208(variable[211])(variable[211]) /*ParserTable::action_table_row208*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[211]) /*AbstractArray::add*/;
     variable[212] = variable[0];
-    variable[212] = ((parser_tables___ParserTable___action_table_row209_t)CALL(variable[212],COLOR_parser_tables___ParserTable___action_table_row209))(variable[212]) /*ParserTable::action_table_row209*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[212]) /*AbstractArray::add*/;
+    variable[212] = CALL_parser_tables___ParserTable___action_table_row209(variable[212])(variable[212]) /*ParserTable::action_table_row209*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[212]) /*AbstractArray::add*/;
     variable[213] = variable[0];
-    variable[213] = ((parser_tables___ParserTable___action_table_row210_t)CALL(variable[213],COLOR_parser_tables___ParserTable___action_table_row210))(variable[213]) /*ParserTable::action_table_row210*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[213]) /*AbstractArray::add*/;
+    variable[213] = CALL_parser_tables___ParserTable___action_table_row210(variable[213])(variable[213]) /*ParserTable::action_table_row210*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[213]) /*AbstractArray::add*/;
     variable[214] = variable[0];
-    variable[214] = ((parser_tables___ParserTable___action_table_row211_t)CALL(variable[214],COLOR_parser_tables___ParserTable___action_table_row211))(variable[214]) /*ParserTable::action_table_row211*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[214]) /*AbstractArray::add*/;
+    variable[214] = CALL_parser_tables___ParserTable___action_table_row211(variable[214])(variable[214]) /*ParserTable::action_table_row211*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[214]) /*AbstractArray::add*/;
     variable[215] = variable[0];
-    variable[215] = ((parser_tables___ParserTable___action_table_row212_t)CALL(variable[215],COLOR_parser_tables___ParserTable___action_table_row212))(variable[215]) /*ParserTable::action_table_row212*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[215]) /*AbstractArray::add*/;
+    variable[215] = CALL_parser_tables___ParserTable___action_table_row212(variable[215])(variable[215]) /*ParserTable::action_table_row212*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[215]) /*AbstractArray::add*/;
     variable[216] = variable[0];
-    variable[216] = ((parser_tables___ParserTable___action_table_row213_t)CALL(variable[216],COLOR_parser_tables___ParserTable___action_table_row213))(variable[216]) /*ParserTable::action_table_row213*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[216]) /*AbstractArray::add*/;
+    variable[216] = CALL_parser_tables___ParserTable___action_table_row213(variable[216])(variable[216]) /*ParserTable::action_table_row213*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[216]) /*AbstractArray::add*/;
     variable[217] = variable[0];
-    variable[217] = ((parser_tables___ParserTable___action_table_row214_t)CALL(variable[217],COLOR_parser_tables___ParserTable___action_table_row214))(variable[217]) /*ParserTable::action_table_row214*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[217]) /*AbstractArray::add*/;
+    variable[217] = CALL_parser_tables___ParserTable___action_table_row214(variable[217])(variable[217]) /*ParserTable::action_table_row214*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[217]) /*AbstractArray::add*/;
     variable[218] = variable[0];
-    variable[218] = ((parser_tables___ParserTable___action_table_row215_t)CALL(variable[218],COLOR_parser_tables___ParserTable___action_table_row215))(variable[218]) /*ParserTable::action_table_row215*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[218]) /*AbstractArray::add*/;
+    variable[218] = CALL_parser_tables___ParserTable___action_table_row215(variable[218])(variable[218]) /*ParserTable::action_table_row215*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[218]) /*AbstractArray::add*/;
     variable[219] = variable[0];
-    variable[219] = ((parser_tables___ParserTable___action_table_row216_t)CALL(variable[219],COLOR_parser_tables___ParserTable___action_table_row216))(variable[219]) /*ParserTable::action_table_row216*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[219]) /*AbstractArray::add*/;
+    variable[219] = CALL_parser_tables___ParserTable___action_table_row216(variable[219])(variable[219]) /*ParserTable::action_table_row216*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[219]) /*AbstractArray::add*/;
     variable[220] = variable[0];
-    variable[220] = ((parser_tables___ParserTable___action_table_row217_t)CALL(variable[220],COLOR_parser_tables___ParserTable___action_table_row217))(variable[220]) /*ParserTable::action_table_row217*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[220]) /*AbstractArray::add*/;
+    variable[220] = CALL_parser_tables___ParserTable___action_table_row217(variable[220])(variable[220]) /*ParserTable::action_table_row217*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[220]) /*AbstractArray::add*/;
     variable[221] = variable[0];
-    variable[221] = ((parser_tables___ParserTable___action_table_row218_t)CALL(variable[221],COLOR_parser_tables___ParserTable___action_table_row218))(variable[221]) /*ParserTable::action_table_row218*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[221]) /*AbstractArray::add*/;
+    variable[221] = CALL_parser_tables___ParserTable___action_table_row218(variable[221])(variable[221]) /*ParserTable::action_table_row218*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[221]) /*AbstractArray::add*/;
     variable[222] = variable[0];
-    variable[222] = ((parser_tables___ParserTable___action_table_row219_t)CALL(variable[222],COLOR_parser_tables___ParserTable___action_table_row219))(variable[222]) /*ParserTable::action_table_row219*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[222]) /*AbstractArray::add*/;
+    variable[222] = CALL_parser_tables___ParserTable___action_table_row219(variable[222])(variable[222]) /*ParserTable::action_table_row219*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[222]) /*AbstractArray::add*/;
     variable[223] = variable[0];
-    variable[223] = ((parser_tables___ParserTable___action_table_row220_t)CALL(variable[223],COLOR_parser_tables___ParserTable___action_table_row220))(variable[223]) /*ParserTable::action_table_row220*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[223]) /*AbstractArray::add*/;
+    variable[223] = CALL_parser_tables___ParserTable___action_table_row220(variable[223])(variable[223]) /*ParserTable::action_table_row220*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[223]) /*AbstractArray::add*/;
     variable[224] = variable[0];
-    variable[224] = ((parser_tables___ParserTable___action_table_row221_t)CALL(variable[224],COLOR_parser_tables___ParserTable___action_table_row221))(variable[224]) /*ParserTable::action_table_row221*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[224]) /*AbstractArray::add*/;
+    variable[224] = CALL_parser_tables___ParserTable___action_table_row221(variable[224])(variable[224]) /*ParserTable::action_table_row221*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[224]) /*AbstractArray::add*/;
     variable[225] = variable[0];
-    variable[225] = ((parser_tables___ParserTable___action_table_row222_t)CALL(variable[225],COLOR_parser_tables___ParserTable___action_table_row222))(variable[225]) /*ParserTable::action_table_row222*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[225]) /*AbstractArray::add*/;
+    variable[225] = CALL_parser_tables___ParserTable___action_table_row222(variable[225])(variable[225]) /*ParserTable::action_table_row222*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[225]) /*AbstractArray::add*/;
     variable[226] = variable[0];
-    variable[226] = ((parser_tables___ParserTable___action_table_row223_t)CALL(variable[226],COLOR_parser_tables___ParserTable___action_table_row223))(variable[226]) /*ParserTable::action_table_row223*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[226]) /*AbstractArray::add*/;
+    variable[226] = CALL_parser_tables___ParserTable___action_table_row223(variable[226])(variable[226]) /*ParserTable::action_table_row223*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[226]) /*AbstractArray::add*/;
     variable[227] = variable[0];
-    variable[227] = ((parser_tables___ParserTable___action_table_row224_t)CALL(variable[227],COLOR_parser_tables___ParserTable___action_table_row224))(variable[227]) /*ParserTable::action_table_row224*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[227]) /*AbstractArray::add*/;
+    variable[227] = CALL_parser_tables___ParserTable___action_table_row224(variable[227])(variable[227]) /*ParserTable::action_table_row224*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[227]) /*AbstractArray::add*/;
     variable[228] = variable[0];
-    variable[228] = ((parser_tables___ParserTable___action_table_row225_t)CALL(variable[228],COLOR_parser_tables___ParserTable___action_table_row225))(variable[228]) /*ParserTable::action_table_row225*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[228]) /*AbstractArray::add*/;
+    variable[228] = CALL_parser_tables___ParserTable___action_table_row225(variable[228])(variable[228]) /*ParserTable::action_table_row225*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[228]) /*AbstractArray::add*/;
     variable[229] = variable[0];
-    variable[229] = ((parser_tables___ParserTable___action_table_row226_t)CALL(variable[229],COLOR_parser_tables___ParserTable___action_table_row226))(variable[229]) /*ParserTable::action_table_row226*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[229]) /*AbstractArray::add*/;
+    variable[229] = CALL_parser_tables___ParserTable___action_table_row226(variable[229])(variable[229]) /*ParserTable::action_table_row226*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[229]) /*AbstractArray::add*/;
     variable[230] = variable[0];
-    variable[230] = ((parser_tables___ParserTable___action_table_row227_t)CALL(variable[230],COLOR_parser_tables___ParserTable___action_table_row227))(variable[230]) /*ParserTable::action_table_row227*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[230]) /*AbstractArray::add*/;
+    variable[230] = CALL_parser_tables___ParserTable___action_table_row227(variable[230])(variable[230]) /*ParserTable::action_table_row227*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[230]) /*AbstractArray::add*/;
     variable[231] = variable[0];
-    variable[231] = ((parser_tables___ParserTable___action_table_row228_t)CALL(variable[231],COLOR_parser_tables___ParserTable___action_table_row228))(variable[231]) /*ParserTable::action_table_row228*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[231]) /*AbstractArray::add*/;
+    variable[231] = CALL_parser_tables___ParserTable___action_table_row228(variable[231])(variable[231]) /*ParserTable::action_table_row228*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[231]) /*AbstractArray::add*/;
     variable[232] = variable[0];
-    variable[232] = ((parser_tables___ParserTable___action_table_row229_t)CALL(variable[232],COLOR_parser_tables___ParserTable___action_table_row229))(variable[232]) /*ParserTable::action_table_row229*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[232]) /*AbstractArray::add*/;
+    variable[232] = CALL_parser_tables___ParserTable___action_table_row229(variable[232])(variable[232]) /*ParserTable::action_table_row229*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[232]) /*AbstractArray::add*/;
     variable[233] = variable[0];
-    variable[233] = ((parser_tables___ParserTable___action_table_row230_t)CALL(variable[233],COLOR_parser_tables___ParserTable___action_table_row230))(variable[233]) /*ParserTable::action_table_row230*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[233]) /*AbstractArray::add*/;
+    variable[233] = CALL_parser_tables___ParserTable___action_table_row230(variable[233])(variable[233]) /*ParserTable::action_table_row230*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[233]) /*AbstractArray::add*/;
     variable[234] = variable[0];
-    variable[234] = ((parser_tables___ParserTable___action_table_row231_t)CALL(variable[234],COLOR_parser_tables___ParserTable___action_table_row231))(variable[234]) /*ParserTable::action_table_row231*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[234]) /*AbstractArray::add*/;
+    variable[234] = CALL_parser_tables___ParserTable___action_table_row231(variable[234])(variable[234]) /*ParserTable::action_table_row231*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[234]) /*AbstractArray::add*/;
     variable[235] = variable[0];
-    variable[235] = ((parser_tables___ParserTable___action_table_row232_t)CALL(variable[235],COLOR_parser_tables___ParserTable___action_table_row232))(variable[235]) /*ParserTable::action_table_row232*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[235]) /*AbstractArray::add*/;
+    variable[235] = CALL_parser_tables___ParserTable___action_table_row232(variable[235])(variable[235]) /*ParserTable::action_table_row232*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[235]) /*AbstractArray::add*/;
     variable[236] = variable[0];
-    variable[236] = ((parser_tables___ParserTable___action_table_row233_t)CALL(variable[236],COLOR_parser_tables___ParserTable___action_table_row233))(variable[236]) /*ParserTable::action_table_row233*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[236]) /*AbstractArray::add*/;
+    variable[236] = CALL_parser_tables___ParserTable___action_table_row233(variable[236])(variable[236]) /*ParserTable::action_table_row233*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[236]) /*AbstractArray::add*/;
     variable[237] = variable[0];
-    variable[237] = ((parser_tables___ParserTable___action_table_row234_t)CALL(variable[237],COLOR_parser_tables___ParserTable___action_table_row234))(variable[237]) /*ParserTable::action_table_row234*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[237]) /*AbstractArray::add*/;
+    variable[237] = CALL_parser_tables___ParserTable___action_table_row234(variable[237])(variable[237]) /*ParserTable::action_table_row234*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[237]) /*AbstractArray::add*/;
     variable[238] = variable[0];
-    variable[238] = ((parser_tables___ParserTable___action_table_row235_t)CALL(variable[238],COLOR_parser_tables___ParserTable___action_table_row235))(variable[238]) /*ParserTable::action_table_row235*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[238]) /*AbstractArray::add*/;
+    variable[238] = CALL_parser_tables___ParserTable___action_table_row235(variable[238])(variable[238]) /*ParserTable::action_table_row235*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[238]) /*AbstractArray::add*/;
     variable[239] = variable[0];
-    variable[239] = ((parser_tables___ParserTable___action_table_row236_t)CALL(variable[239],COLOR_parser_tables___ParserTable___action_table_row236))(variable[239]) /*ParserTable::action_table_row236*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[239]) /*AbstractArray::add*/;
+    variable[239] = CALL_parser_tables___ParserTable___action_table_row236(variable[239])(variable[239]) /*ParserTable::action_table_row236*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[239]) /*AbstractArray::add*/;
     variable[240] = variable[0];
-    variable[240] = ((parser_tables___ParserTable___action_table_row237_t)CALL(variable[240],COLOR_parser_tables___ParserTable___action_table_row237))(variable[240]) /*ParserTable::action_table_row237*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[240]) /*AbstractArray::add*/;
+    variable[240] = CALL_parser_tables___ParserTable___action_table_row237(variable[240])(variable[240]) /*ParserTable::action_table_row237*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[240]) /*AbstractArray::add*/;
     variable[241] = variable[0];
-    variable[241] = ((parser_tables___ParserTable___action_table_row238_t)CALL(variable[241],COLOR_parser_tables___ParserTable___action_table_row238))(variable[241]) /*ParserTable::action_table_row238*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[241]) /*AbstractArray::add*/;
+    variable[241] = CALL_parser_tables___ParserTable___action_table_row238(variable[241])(variable[241]) /*ParserTable::action_table_row238*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[241]) /*AbstractArray::add*/;
     variable[242] = variable[0];
-    variable[242] = ((parser_tables___ParserTable___action_table_row239_t)CALL(variable[242],COLOR_parser_tables___ParserTable___action_table_row239))(variable[242]) /*ParserTable::action_table_row239*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[242]) /*AbstractArray::add*/;
+    variable[242] = CALL_parser_tables___ParserTable___action_table_row239(variable[242])(variable[242]) /*ParserTable::action_table_row239*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[242]) /*AbstractArray::add*/;
     variable[243] = variable[0];
-    variable[243] = ((parser_tables___ParserTable___action_table_row240_t)CALL(variable[243],COLOR_parser_tables___ParserTable___action_table_row240))(variable[243]) /*ParserTable::action_table_row240*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[243]) /*AbstractArray::add*/;
+    variable[243] = CALL_parser_tables___ParserTable___action_table_row240(variable[243])(variable[243]) /*ParserTable::action_table_row240*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[243]) /*AbstractArray::add*/;
     variable[244] = variable[0];
-    variable[244] = ((parser_tables___ParserTable___action_table_row241_t)CALL(variable[244],COLOR_parser_tables___ParserTable___action_table_row241))(variable[244]) /*ParserTable::action_table_row241*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[244]) /*AbstractArray::add*/;
+    variable[244] = CALL_parser_tables___ParserTable___action_table_row241(variable[244])(variable[244]) /*ParserTable::action_table_row241*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[244]) /*AbstractArray::add*/;
     variable[245] = variable[0];
-    variable[245] = ((parser_tables___ParserTable___action_table_row242_t)CALL(variable[245],COLOR_parser_tables___ParserTable___action_table_row242))(variable[245]) /*ParserTable::action_table_row242*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[245]) /*AbstractArray::add*/;
+    variable[245] = CALL_parser_tables___ParserTable___action_table_row242(variable[245])(variable[245]) /*ParserTable::action_table_row242*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[245]) /*AbstractArray::add*/;
     variable[246] = variable[0];
-    variable[246] = ((parser_tables___ParserTable___action_table_row243_t)CALL(variable[246],COLOR_parser_tables___ParserTable___action_table_row243))(variable[246]) /*ParserTable::action_table_row243*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[246]) /*AbstractArray::add*/;
+    variable[246] = CALL_parser_tables___ParserTable___action_table_row243(variable[246])(variable[246]) /*ParserTable::action_table_row243*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[246]) /*AbstractArray::add*/;
     variable[247] = variable[0];
-    variable[247] = ((parser_tables___ParserTable___action_table_row244_t)CALL(variable[247],COLOR_parser_tables___ParserTable___action_table_row244))(variable[247]) /*ParserTable::action_table_row244*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[247]) /*AbstractArray::add*/;
+    variable[247] = CALL_parser_tables___ParserTable___action_table_row244(variable[247])(variable[247]) /*ParserTable::action_table_row244*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[247]) /*AbstractArray::add*/;
     variable[248] = variable[0];
-    variable[248] = ((parser_tables___ParserTable___action_table_row245_t)CALL(variable[248],COLOR_parser_tables___ParserTable___action_table_row245))(variable[248]) /*ParserTable::action_table_row245*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[248]) /*AbstractArray::add*/;
+    variable[248] = CALL_parser_tables___ParserTable___action_table_row245(variable[248])(variable[248]) /*ParserTable::action_table_row245*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[248]) /*AbstractArray::add*/;
     variable[249] = variable[0];
-    variable[249] = ((parser_tables___ParserTable___action_table_row246_t)CALL(variable[249],COLOR_parser_tables___ParserTable___action_table_row246))(variable[249]) /*ParserTable::action_table_row246*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[249]) /*AbstractArray::add*/;
+    variable[249] = CALL_parser_tables___ParserTable___action_table_row246(variable[249])(variable[249]) /*ParserTable::action_table_row246*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[249]) /*AbstractArray::add*/;
     variable[250] = variable[0];
-    variable[250] = ((parser_tables___ParserTable___action_table_row247_t)CALL(variable[250],COLOR_parser_tables___ParserTable___action_table_row247))(variable[250]) /*ParserTable::action_table_row247*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[250]) /*AbstractArray::add*/;
+    variable[250] = CALL_parser_tables___ParserTable___action_table_row247(variable[250])(variable[250]) /*ParserTable::action_table_row247*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[250]) /*AbstractArray::add*/;
     variable[251] = variable[0];
-    variable[251] = ((parser_tables___ParserTable___action_table_row248_t)CALL(variable[251],COLOR_parser_tables___ParserTable___action_table_row248))(variable[251]) /*ParserTable::action_table_row248*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[251]) /*AbstractArray::add*/;
+    variable[251] = CALL_parser_tables___ParserTable___action_table_row248(variable[251])(variable[251]) /*ParserTable::action_table_row248*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[251]) /*AbstractArray::add*/;
     variable[252] = variable[0];
-    variable[252] = ((parser_tables___ParserTable___action_table_row249_t)CALL(variable[252],COLOR_parser_tables___ParserTable___action_table_row249))(variable[252]) /*ParserTable::action_table_row249*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[252]) /*AbstractArray::add*/;
+    variable[252] = CALL_parser_tables___ParserTable___action_table_row249(variable[252])(variable[252]) /*ParserTable::action_table_row249*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[252]) /*AbstractArray::add*/;
     variable[253] = variable[0];
-    variable[253] = ((parser_tables___ParserTable___action_table_row250_t)CALL(variable[253],COLOR_parser_tables___ParserTable___action_table_row250))(variable[253]) /*ParserTable::action_table_row250*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[253]) /*AbstractArray::add*/;
+    variable[253] = CALL_parser_tables___ParserTable___action_table_row250(variable[253])(variable[253]) /*ParserTable::action_table_row250*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[253]) /*AbstractArray::add*/;
     variable[254] = variable[0];
-    variable[254] = ((parser_tables___ParserTable___action_table_row251_t)CALL(variable[254],COLOR_parser_tables___ParserTable___action_table_row251))(variable[254]) /*ParserTable::action_table_row251*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[254]) /*AbstractArray::add*/;
+    variable[254] = CALL_parser_tables___ParserTable___action_table_row251(variable[254])(variable[254]) /*ParserTable::action_table_row251*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[254]) /*AbstractArray::add*/;
     variable[255] = variable[0];
-    variable[255] = ((parser_tables___ParserTable___action_table_row252_t)CALL(variable[255],COLOR_parser_tables___ParserTable___action_table_row252))(variable[255]) /*ParserTable::action_table_row252*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[255]) /*AbstractArray::add*/;
+    variable[255] = CALL_parser_tables___ParserTable___action_table_row252(variable[255])(variable[255]) /*ParserTable::action_table_row252*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[255]) /*AbstractArray::add*/;
     variable[256] = variable[0];
-    variable[256] = ((parser_tables___ParserTable___action_table_row253_t)CALL(variable[256],COLOR_parser_tables___ParserTable___action_table_row253))(variable[256]) /*ParserTable::action_table_row253*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[256]) /*AbstractArray::add*/;
+    variable[256] = CALL_parser_tables___ParserTable___action_table_row253(variable[256])(variable[256]) /*ParserTable::action_table_row253*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[256]) /*AbstractArray::add*/;
     variable[257] = variable[0];
-    variable[257] = ((parser_tables___ParserTable___action_table_row254_t)CALL(variable[257],COLOR_parser_tables___ParserTable___action_table_row254))(variable[257]) /*ParserTable::action_table_row254*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[257]) /*AbstractArray::add*/;
+    variable[257] = CALL_parser_tables___ParserTable___action_table_row254(variable[257])(variable[257]) /*ParserTable::action_table_row254*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[257]) /*AbstractArray::add*/;
     variable[258] = variable[0];
-    variable[258] = ((parser_tables___ParserTable___action_table_row255_t)CALL(variable[258],COLOR_parser_tables___ParserTable___action_table_row255))(variable[258]) /*ParserTable::action_table_row255*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[258]) /*AbstractArray::add*/;
+    variable[258] = CALL_parser_tables___ParserTable___action_table_row255(variable[258])(variable[258]) /*ParserTable::action_table_row255*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[258]) /*AbstractArray::add*/;
     variable[259] = variable[0];
-    variable[259] = ((parser_tables___ParserTable___action_table_row256_t)CALL(variable[259],COLOR_parser_tables___ParserTable___action_table_row256))(variable[259]) /*ParserTable::action_table_row256*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[259]) /*AbstractArray::add*/;
+    variable[259] = CALL_parser_tables___ParserTable___action_table_row256(variable[259])(variable[259]) /*ParserTable::action_table_row256*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[259]) /*AbstractArray::add*/;
     variable[260] = variable[0];
-    variable[260] = ((parser_tables___ParserTable___action_table_row257_t)CALL(variable[260],COLOR_parser_tables___ParserTable___action_table_row257))(variable[260]) /*ParserTable::action_table_row257*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[260]) /*AbstractArray::add*/;
+    variable[260] = CALL_parser_tables___ParserTable___action_table_row257(variable[260])(variable[260]) /*ParserTable::action_table_row257*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[260]) /*AbstractArray::add*/;
     variable[261] = variable[0];
-    variable[261] = ((parser_tables___ParserTable___action_table_row258_t)CALL(variable[261],COLOR_parser_tables___ParserTable___action_table_row258))(variable[261]) /*ParserTable::action_table_row258*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[261]) /*AbstractArray::add*/;
+    variable[261] = CALL_parser_tables___ParserTable___action_table_row258(variable[261])(variable[261]) /*ParserTable::action_table_row258*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[261]) /*AbstractArray::add*/;
     variable[262] = variable[0];
-    variable[262] = ((parser_tables___ParserTable___action_table_row259_t)CALL(variable[262],COLOR_parser_tables___ParserTable___action_table_row259))(variable[262]) /*ParserTable::action_table_row259*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[262]) /*AbstractArray::add*/;
+    variable[262] = CALL_parser_tables___ParserTable___action_table_row259(variable[262])(variable[262]) /*ParserTable::action_table_row259*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[262]) /*AbstractArray::add*/;
     variable[263] = variable[0];
-    variable[263] = ((parser_tables___ParserTable___action_table_row260_t)CALL(variable[263],COLOR_parser_tables___ParserTable___action_table_row260))(variable[263]) /*ParserTable::action_table_row260*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[263]) /*AbstractArray::add*/;
+    variable[263] = CALL_parser_tables___ParserTable___action_table_row260(variable[263])(variable[263]) /*ParserTable::action_table_row260*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[263]) /*AbstractArray::add*/;
     variable[264] = variable[0];
-    variable[264] = ((parser_tables___ParserTable___action_table_row261_t)CALL(variable[264],COLOR_parser_tables___ParserTable___action_table_row261))(variable[264]) /*ParserTable::action_table_row261*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[264]) /*AbstractArray::add*/;
+    variable[264] = CALL_parser_tables___ParserTable___action_table_row261(variable[264])(variable[264]) /*ParserTable::action_table_row261*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[264]) /*AbstractArray::add*/;
     variable[265] = variable[0];
-    variable[265] = ((parser_tables___ParserTable___action_table_row262_t)CALL(variable[265],COLOR_parser_tables___ParserTable___action_table_row262))(variable[265]) /*ParserTable::action_table_row262*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[265]) /*AbstractArray::add*/;
+    variable[265] = CALL_parser_tables___ParserTable___action_table_row262(variable[265])(variable[265]) /*ParserTable::action_table_row262*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[265]) /*AbstractArray::add*/;
     variable[266] = variable[0];
-    variable[266] = ((parser_tables___ParserTable___action_table_row263_t)CALL(variable[266],COLOR_parser_tables___ParserTable___action_table_row263))(variable[266]) /*ParserTable::action_table_row263*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[266]) /*AbstractArray::add*/;
+    variable[266] = CALL_parser_tables___ParserTable___action_table_row263(variable[266])(variable[266]) /*ParserTable::action_table_row263*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[266]) /*AbstractArray::add*/;
     variable[267] = variable[0];
-    variable[267] = ((parser_tables___ParserTable___action_table_row264_t)CALL(variable[267],COLOR_parser_tables___ParserTable___action_table_row264))(variable[267]) /*ParserTable::action_table_row264*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[267]) /*AbstractArray::add*/;
+    variable[267] = CALL_parser_tables___ParserTable___action_table_row264(variable[267])(variable[267]) /*ParserTable::action_table_row264*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[267]) /*AbstractArray::add*/;
     variable[268] = variable[0];
-    variable[268] = ((parser_tables___ParserTable___action_table_row265_t)CALL(variable[268],COLOR_parser_tables___ParserTable___action_table_row265))(variable[268]) /*ParserTable::action_table_row265*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[268]) /*AbstractArray::add*/;
+    variable[268] = CALL_parser_tables___ParserTable___action_table_row265(variable[268])(variable[268]) /*ParserTable::action_table_row265*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[268]) /*AbstractArray::add*/;
     variable[269] = variable[0];
-    variable[269] = ((parser_tables___ParserTable___action_table_row266_t)CALL(variable[269],COLOR_parser_tables___ParserTable___action_table_row266))(variable[269]) /*ParserTable::action_table_row266*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[269]) /*AbstractArray::add*/;
+    variable[269] = CALL_parser_tables___ParserTable___action_table_row266(variable[269])(variable[269]) /*ParserTable::action_table_row266*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[269]) /*AbstractArray::add*/;
     variable[270] = variable[0];
-    variable[270] = ((parser_tables___ParserTable___action_table_row267_t)CALL(variable[270],COLOR_parser_tables___ParserTable___action_table_row267))(variable[270]) /*ParserTable::action_table_row267*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[270]) /*AbstractArray::add*/;
+    variable[270] = CALL_parser_tables___ParserTable___action_table_row267(variable[270])(variable[270]) /*ParserTable::action_table_row267*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[270]) /*AbstractArray::add*/;
     variable[271] = variable[0];
-    variable[271] = ((parser_tables___ParserTable___action_table_row268_t)CALL(variable[271],COLOR_parser_tables___ParserTable___action_table_row268))(variable[271]) /*ParserTable::action_table_row268*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[271]) /*AbstractArray::add*/;
+    variable[271] = CALL_parser_tables___ParserTable___action_table_row268(variable[271])(variable[271]) /*ParserTable::action_table_row268*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[271]) /*AbstractArray::add*/;
     variable[272] = variable[0];
-    variable[272] = ((parser_tables___ParserTable___action_table_row269_t)CALL(variable[272],COLOR_parser_tables___ParserTable___action_table_row269))(variable[272]) /*ParserTable::action_table_row269*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[272]) /*AbstractArray::add*/;
+    variable[272] = CALL_parser_tables___ParserTable___action_table_row269(variable[272])(variable[272]) /*ParserTable::action_table_row269*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[272]) /*AbstractArray::add*/;
     variable[273] = variable[0];
-    variable[273] = ((parser_tables___ParserTable___action_table_row270_t)CALL(variable[273],COLOR_parser_tables___ParserTable___action_table_row270))(variable[273]) /*ParserTable::action_table_row270*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[273]) /*AbstractArray::add*/;
+    variable[273] = CALL_parser_tables___ParserTable___action_table_row270(variable[273])(variable[273]) /*ParserTable::action_table_row270*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[273]) /*AbstractArray::add*/;
     variable[274] = variable[0];
-    variable[274] = ((parser_tables___ParserTable___action_table_row271_t)CALL(variable[274],COLOR_parser_tables___ParserTable___action_table_row271))(variable[274]) /*ParserTable::action_table_row271*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[274]) /*AbstractArray::add*/;
+    variable[274] = CALL_parser_tables___ParserTable___action_table_row271(variable[274])(variable[274]) /*ParserTable::action_table_row271*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[274]) /*AbstractArray::add*/;
     variable[275] = variable[0];
-    variable[275] = ((parser_tables___ParserTable___action_table_row272_t)CALL(variable[275],COLOR_parser_tables___ParserTable___action_table_row272))(variable[275]) /*ParserTable::action_table_row272*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[275]) /*AbstractArray::add*/;
+    variable[275] = CALL_parser_tables___ParserTable___action_table_row272(variable[275])(variable[275]) /*ParserTable::action_table_row272*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[275]) /*AbstractArray::add*/;
     variable[276] = variable[0];
-    variable[276] = ((parser_tables___ParserTable___action_table_row273_t)CALL(variable[276],COLOR_parser_tables___ParserTable___action_table_row273))(variable[276]) /*ParserTable::action_table_row273*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[276]) /*AbstractArray::add*/;
+    variable[276] = CALL_parser_tables___ParserTable___action_table_row273(variable[276])(variable[276]) /*ParserTable::action_table_row273*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[276]) /*AbstractArray::add*/;
     variable[277] = variable[0];
-    variable[277] = ((parser_tables___ParserTable___action_table_row274_t)CALL(variable[277],COLOR_parser_tables___ParserTable___action_table_row274))(variable[277]) /*ParserTable::action_table_row274*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[277]) /*AbstractArray::add*/;
+    variable[277] = CALL_parser_tables___ParserTable___action_table_row274(variable[277])(variable[277]) /*ParserTable::action_table_row274*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[277]) /*AbstractArray::add*/;
     variable[278] = variable[0];
-    variable[278] = ((parser_tables___ParserTable___action_table_row275_t)CALL(variable[278],COLOR_parser_tables___ParserTable___action_table_row275))(variable[278]) /*ParserTable::action_table_row275*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[278]) /*AbstractArray::add*/;
+    variable[278] = CALL_parser_tables___ParserTable___action_table_row275(variable[278])(variable[278]) /*ParserTable::action_table_row275*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[278]) /*AbstractArray::add*/;
     variable[279] = variable[0];
-    variable[279] = ((parser_tables___ParserTable___action_table_row276_t)CALL(variable[279],COLOR_parser_tables___ParserTable___action_table_row276))(variable[279]) /*ParserTable::action_table_row276*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[279]) /*AbstractArray::add*/;
+    variable[279] = CALL_parser_tables___ParserTable___action_table_row276(variable[279])(variable[279]) /*ParserTable::action_table_row276*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[279]) /*AbstractArray::add*/;
     variable[280] = variable[0];
-    variable[280] = ((parser_tables___ParserTable___action_table_row277_t)CALL(variable[280],COLOR_parser_tables___ParserTable___action_table_row277))(variable[280]) /*ParserTable::action_table_row277*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[280]) /*AbstractArray::add*/;
+    variable[280] = CALL_parser_tables___ParserTable___action_table_row277(variable[280])(variable[280]) /*ParserTable::action_table_row277*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[280]) /*AbstractArray::add*/;
     variable[281] = variable[0];
-    variable[281] = ((parser_tables___ParserTable___action_table_row278_t)CALL(variable[281],COLOR_parser_tables___ParserTable___action_table_row278))(variable[281]) /*ParserTable::action_table_row278*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[281]) /*AbstractArray::add*/;
+    variable[281] = CALL_parser_tables___ParserTable___action_table_row278(variable[281])(variable[281]) /*ParserTable::action_table_row278*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[281]) /*AbstractArray::add*/;
     variable[282] = variable[0];
-    variable[282] = ((parser_tables___ParserTable___action_table_row279_t)CALL(variable[282],COLOR_parser_tables___ParserTable___action_table_row279))(variable[282]) /*ParserTable::action_table_row279*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[282]) /*AbstractArray::add*/;
+    variable[282] = CALL_parser_tables___ParserTable___action_table_row279(variable[282])(variable[282]) /*ParserTable::action_table_row279*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[282]) /*AbstractArray::add*/;
     variable[283] = variable[0];
-    variable[283] = ((parser_tables___ParserTable___action_table_row280_t)CALL(variable[283],COLOR_parser_tables___ParserTable___action_table_row280))(variable[283]) /*ParserTable::action_table_row280*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[283]) /*AbstractArray::add*/;
+    variable[283] = CALL_parser_tables___ParserTable___action_table_row280(variable[283])(variable[283]) /*ParserTable::action_table_row280*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[283]) /*AbstractArray::add*/;
     variable[284] = variable[0];
-    variable[284] = ((parser_tables___ParserTable___action_table_row281_t)CALL(variable[284],COLOR_parser_tables___ParserTable___action_table_row281))(variable[284]) /*ParserTable::action_table_row281*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[284]) /*AbstractArray::add*/;
+    variable[284] = CALL_parser_tables___ParserTable___action_table_row281(variable[284])(variable[284]) /*ParserTable::action_table_row281*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[284]) /*AbstractArray::add*/;
     variable[285] = variable[0];
-    variable[285] = ((parser_tables___ParserTable___action_table_row282_t)CALL(variable[285],COLOR_parser_tables___ParserTable___action_table_row282))(variable[285]) /*ParserTable::action_table_row282*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[285]) /*AbstractArray::add*/;
+    variable[285] = CALL_parser_tables___ParserTable___action_table_row282(variable[285])(variable[285]) /*ParserTable::action_table_row282*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[285]) /*AbstractArray::add*/;
     variable[286] = variable[0];
-    variable[286] = ((parser_tables___ParserTable___action_table_row283_t)CALL(variable[286],COLOR_parser_tables___ParserTable___action_table_row283))(variable[286]) /*ParserTable::action_table_row283*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[286]) /*AbstractArray::add*/;
+    variable[286] = CALL_parser_tables___ParserTable___action_table_row283(variable[286])(variable[286]) /*ParserTable::action_table_row283*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[286]) /*AbstractArray::add*/;
     variable[287] = variable[0];
-    variable[287] = ((parser_tables___ParserTable___action_table_row284_t)CALL(variable[287],COLOR_parser_tables___ParserTable___action_table_row284))(variable[287]) /*ParserTable::action_table_row284*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[287]) /*AbstractArray::add*/;
+    variable[287] = CALL_parser_tables___ParserTable___action_table_row284(variable[287])(variable[287]) /*ParserTable::action_table_row284*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[287]) /*AbstractArray::add*/;
     variable[288] = variable[0];
-    variable[288] = ((parser_tables___ParserTable___action_table_row285_t)CALL(variable[288],COLOR_parser_tables___ParserTable___action_table_row285))(variable[288]) /*ParserTable::action_table_row285*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[288]) /*AbstractArray::add*/;
+    variable[288] = CALL_parser_tables___ParserTable___action_table_row285(variable[288])(variable[288]) /*ParserTable::action_table_row285*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[288]) /*AbstractArray::add*/;
     variable[289] = variable[0];
-    variable[289] = ((parser_tables___ParserTable___action_table_row286_t)CALL(variable[289],COLOR_parser_tables___ParserTable___action_table_row286))(variable[289]) /*ParserTable::action_table_row286*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[289]) /*AbstractArray::add*/;
+    variable[289] = CALL_parser_tables___ParserTable___action_table_row286(variable[289])(variable[289]) /*ParserTable::action_table_row286*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[289]) /*AbstractArray::add*/;
     variable[290] = variable[0];
-    variable[290] = ((parser_tables___ParserTable___action_table_row287_t)CALL(variable[290],COLOR_parser_tables___ParserTable___action_table_row287))(variable[290]) /*ParserTable::action_table_row287*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[290]) /*AbstractArray::add*/;
+    variable[290] = CALL_parser_tables___ParserTable___action_table_row287(variable[290])(variable[290]) /*ParserTable::action_table_row287*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[290]) /*AbstractArray::add*/;
     variable[291] = variable[0];
-    variable[291] = ((parser_tables___ParserTable___action_table_row288_t)CALL(variable[291],COLOR_parser_tables___ParserTable___action_table_row288))(variable[291]) /*ParserTable::action_table_row288*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[291]) /*AbstractArray::add*/;
+    variable[291] = CALL_parser_tables___ParserTable___action_table_row288(variable[291])(variable[291]) /*ParserTable::action_table_row288*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[291]) /*AbstractArray::add*/;
     variable[292] = variable[0];
-    variable[292] = ((parser_tables___ParserTable___action_table_row289_t)CALL(variable[292],COLOR_parser_tables___ParserTable___action_table_row289))(variable[292]) /*ParserTable::action_table_row289*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[292]) /*AbstractArray::add*/;
+    variable[292] = CALL_parser_tables___ParserTable___action_table_row289(variable[292])(variable[292]) /*ParserTable::action_table_row289*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[292]) /*AbstractArray::add*/;
     variable[293] = variable[0];
-    variable[293] = ((parser_tables___ParserTable___action_table_row290_t)CALL(variable[293],COLOR_parser_tables___ParserTable___action_table_row290))(variable[293]) /*ParserTable::action_table_row290*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[293]) /*AbstractArray::add*/;
+    variable[293] = CALL_parser_tables___ParserTable___action_table_row290(variable[293])(variable[293]) /*ParserTable::action_table_row290*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[293]) /*AbstractArray::add*/;
     variable[294] = variable[0];
-    variable[294] = ((parser_tables___ParserTable___action_table_row291_t)CALL(variable[294],COLOR_parser_tables___ParserTable___action_table_row291))(variable[294]) /*ParserTable::action_table_row291*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[294]) /*AbstractArray::add*/;
+    variable[294] = CALL_parser_tables___ParserTable___action_table_row291(variable[294])(variable[294]) /*ParserTable::action_table_row291*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[294]) /*AbstractArray::add*/;
     variable[295] = variable[0];
-    variable[295] = ((parser_tables___ParserTable___action_table_row292_t)CALL(variable[295],COLOR_parser_tables___ParserTable___action_table_row292))(variable[295]) /*ParserTable::action_table_row292*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[295]) /*AbstractArray::add*/;
+    variable[295] = CALL_parser_tables___ParserTable___action_table_row292(variable[295])(variable[295]) /*ParserTable::action_table_row292*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[295]) /*AbstractArray::add*/;
     variable[296] = variable[0];
-    variable[296] = ((parser_tables___ParserTable___action_table_row293_t)CALL(variable[296],COLOR_parser_tables___ParserTable___action_table_row293))(variable[296]) /*ParserTable::action_table_row293*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[296]) /*AbstractArray::add*/;
+    variable[296] = CALL_parser_tables___ParserTable___action_table_row293(variable[296])(variable[296]) /*ParserTable::action_table_row293*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[296]) /*AbstractArray::add*/;
     variable[297] = variable[0];
-    variable[297] = ((parser_tables___ParserTable___action_table_row294_t)CALL(variable[297],COLOR_parser_tables___ParserTable___action_table_row294))(variable[297]) /*ParserTable::action_table_row294*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[297]) /*AbstractArray::add*/;
+    variable[297] = CALL_parser_tables___ParserTable___action_table_row294(variable[297])(variable[297]) /*ParserTable::action_table_row294*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[297]) /*AbstractArray::add*/;
     variable[298] = variable[0];
-    variable[298] = ((parser_tables___ParserTable___action_table_row295_t)CALL(variable[298],COLOR_parser_tables___ParserTable___action_table_row295))(variable[298]) /*ParserTable::action_table_row295*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[298]) /*AbstractArray::add*/;
+    variable[298] = CALL_parser_tables___ParserTable___action_table_row295(variable[298])(variable[298]) /*ParserTable::action_table_row295*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[298]) /*AbstractArray::add*/;
     variable[299] = variable[0];
-    variable[299] = ((parser_tables___ParserTable___action_table_row296_t)CALL(variable[299],COLOR_parser_tables___ParserTable___action_table_row296))(variable[299]) /*ParserTable::action_table_row296*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[299]) /*AbstractArray::add*/;
+    variable[299] = CALL_parser_tables___ParserTable___action_table_row296(variable[299])(variable[299]) /*ParserTable::action_table_row296*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[299]) /*AbstractArray::add*/;
     variable[300] = variable[0];
-    variable[300] = ((parser_tables___ParserTable___action_table_row297_t)CALL(variable[300],COLOR_parser_tables___ParserTable___action_table_row297))(variable[300]) /*ParserTable::action_table_row297*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[300]) /*AbstractArray::add*/;
+    variable[300] = CALL_parser_tables___ParserTable___action_table_row297(variable[300])(variable[300]) /*ParserTable::action_table_row297*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[300]) /*AbstractArray::add*/;
     variable[301] = variable[0];
-    variable[301] = ((parser_tables___ParserTable___action_table_row298_t)CALL(variable[301],COLOR_parser_tables___ParserTable___action_table_row298))(variable[301]) /*ParserTable::action_table_row298*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[301]) /*AbstractArray::add*/;
+    variable[301] = CALL_parser_tables___ParserTable___action_table_row298(variable[301])(variable[301]) /*ParserTable::action_table_row298*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[301]) /*AbstractArray::add*/;
     variable[302] = variable[0];
-    variable[302] = ((parser_tables___ParserTable___action_table_row299_t)CALL(variable[302],COLOR_parser_tables___ParserTable___action_table_row299))(variable[302]) /*ParserTable::action_table_row299*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[302]) /*AbstractArray::add*/;
+    variable[302] = CALL_parser_tables___ParserTable___action_table_row299(variable[302])(variable[302]) /*ParserTable::action_table_row299*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[302]) /*AbstractArray::add*/;
     variable[303] = variable[0];
-    variable[303] = ((parser_tables___ParserTable___action_table_row300_t)CALL(variable[303],COLOR_parser_tables___ParserTable___action_table_row300))(variable[303]) /*ParserTable::action_table_row300*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[303]) /*AbstractArray::add*/;
+    variable[303] = CALL_parser_tables___ParserTable___action_table_row300(variable[303])(variable[303]) /*ParserTable::action_table_row300*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[303]) /*AbstractArray::add*/;
     variable[304] = variable[0];
-    variable[304] = ((parser_tables___ParserTable___action_table_row301_t)CALL(variable[304],COLOR_parser_tables___ParserTable___action_table_row301))(variable[304]) /*ParserTable::action_table_row301*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[304]) /*AbstractArray::add*/;
+    variable[304] = CALL_parser_tables___ParserTable___action_table_row301(variable[304])(variable[304]) /*ParserTable::action_table_row301*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[304]) /*AbstractArray::add*/;
     variable[305] = variable[0];
-    variable[305] = ((parser_tables___ParserTable___action_table_row302_t)CALL(variable[305],COLOR_parser_tables___ParserTable___action_table_row302))(variable[305]) /*ParserTable::action_table_row302*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[305]) /*AbstractArray::add*/;
+    variable[305] = CALL_parser_tables___ParserTable___action_table_row302(variable[305])(variable[305]) /*ParserTable::action_table_row302*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[305]) /*AbstractArray::add*/;
     variable[306] = variable[0];
-    variable[306] = ((parser_tables___ParserTable___action_table_row303_t)CALL(variable[306],COLOR_parser_tables___ParserTable___action_table_row303))(variable[306]) /*ParserTable::action_table_row303*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[306]) /*AbstractArray::add*/;
+    variable[306] = CALL_parser_tables___ParserTable___action_table_row303(variable[306])(variable[306]) /*ParserTable::action_table_row303*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[306]) /*AbstractArray::add*/;
     variable[307] = variable[0];
-    variable[307] = ((parser_tables___ParserTable___action_table_row304_t)CALL(variable[307],COLOR_parser_tables___ParserTable___action_table_row304))(variable[307]) /*ParserTable::action_table_row304*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[307]) /*AbstractArray::add*/;
+    variable[307] = CALL_parser_tables___ParserTable___action_table_row304(variable[307])(variable[307]) /*ParserTable::action_table_row304*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[307]) /*AbstractArray::add*/;
     variable[308] = variable[0];
-    variable[308] = ((parser_tables___ParserTable___action_table_row305_t)CALL(variable[308],COLOR_parser_tables___ParserTable___action_table_row305))(variable[308]) /*ParserTable::action_table_row305*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[308]) /*AbstractArray::add*/;
+    variable[308] = CALL_parser_tables___ParserTable___action_table_row305(variable[308])(variable[308]) /*ParserTable::action_table_row305*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[308]) /*AbstractArray::add*/;
     variable[309] = variable[0];
-    variable[309] = ((parser_tables___ParserTable___action_table_row306_t)CALL(variable[309],COLOR_parser_tables___ParserTable___action_table_row306))(variable[309]) /*ParserTable::action_table_row306*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[309]) /*AbstractArray::add*/;
+    variable[309] = CALL_parser_tables___ParserTable___action_table_row306(variable[309])(variable[309]) /*ParserTable::action_table_row306*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[309]) /*AbstractArray::add*/;
     variable[310] = variable[0];
-    variable[310] = ((parser_tables___ParserTable___action_table_row307_t)CALL(variable[310],COLOR_parser_tables___ParserTable___action_table_row307))(variable[310]) /*ParserTable::action_table_row307*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[310]) /*AbstractArray::add*/;
+    variable[310] = CALL_parser_tables___ParserTable___action_table_row307(variable[310])(variable[310]) /*ParserTable::action_table_row307*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[310]) /*AbstractArray::add*/;
     variable[311] = variable[0];
-    variable[311] = ((parser_tables___ParserTable___action_table_row308_t)CALL(variable[311],COLOR_parser_tables___ParserTable___action_table_row308))(variable[311]) /*ParserTable::action_table_row308*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[311]) /*AbstractArray::add*/;
+    variable[311] = CALL_parser_tables___ParserTable___action_table_row308(variable[311])(variable[311]) /*ParserTable::action_table_row308*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[311]) /*AbstractArray::add*/;
     variable[312] = variable[0];
-    variable[312] = ((parser_tables___ParserTable___action_table_row309_t)CALL(variable[312],COLOR_parser_tables___ParserTable___action_table_row309))(variable[312]) /*ParserTable::action_table_row309*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[312]) /*AbstractArray::add*/;
+    variable[312] = CALL_parser_tables___ParserTable___action_table_row309(variable[312])(variable[312]) /*ParserTable::action_table_row309*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[312]) /*AbstractArray::add*/;
     variable[313] = variable[0];
-    variable[313] = ((parser_tables___ParserTable___action_table_row310_t)CALL(variable[313],COLOR_parser_tables___ParserTable___action_table_row310))(variable[313]) /*ParserTable::action_table_row310*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[313]) /*AbstractArray::add*/;
+    variable[313] = CALL_parser_tables___ParserTable___action_table_row310(variable[313])(variable[313]) /*ParserTable::action_table_row310*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[313]) /*AbstractArray::add*/;
     variable[314] = variable[0];
-    variable[314] = ((parser_tables___ParserTable___action_table_row311_t)CALL(variable[314],COLOR_parser_tables___ParserTable___action_table_row311))(variable[314]) /*ParserTable::action_table_row311*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[314]) /*AbstractArray::add*/;
+    variable[314] = CALL_parser_tables___ParserTable___action_table_row311(variable[314])(variable[314]) /*ParserTable::action_table_row311*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[314]) /*AbstractArray::add*/;
     variable[315] = variable[0];
-    variable[315] = ((parser_tables___ParserTable___action_table_row312_t)CALL(variable[315],COLOR_parser_tables___ParserTable___action_table_row312))(variable[315]) /*ParserTable::action_table_row312*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[315]) /*AbstractArray::add*/;
+    variable[315] = CALL_parser_tables___ParserTable___action_table_row312(variable[315])(variable[315]) /*ParserTable::action_table_row312*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[315]) /*AbstractArray::add*/;
     variable[316] = variable[0];
-    variable[316] = ((parser_tables___ParserTable___action_table_row313_t)CALL(variable[316],COLOR_parser_tables___ParserTable___action_table_row313))(variable[316]) /*ParserTable::action_table_row313*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[316]) /*AbstractArray::add*/;
+    variable[316] = CALL_parser_tables___ParserTable___action_table_row313(variable[316])(variable[316]) /*ParserTable::action_table_row313*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[316]) /*AbstractArray::add*/;
     variable[317] = variable[0];
-    variable[317] = ((parser_tables___ParserTable___action_table_row314_t)CALL(variable[317],COLOR_parser_tables___ParserTable___action_table_row314))(variable[317]) /*ParserTable::action_table_row314*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[317]) /*AbstractArray::add*/;
+    variable[317] = CALL_parser_tables___ParserTable___action_table_row314(variable[317])(variable[317]) /*ParserTable::action_table_row314*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[317]) /*AbstractArray::add*/;
     variable[318] = variable[0];
-    variable[318] = ((parser_tables___ParserTable___action_table_row315_t)CALL(variable[318],COLOR_parser_tables___ParserTable___action_table_row315))(variable[318]) /*ParserTable::action_table_row315*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[318]) /*AbstractArray::add*/;
+    variable[318] = CALL_parser_tables___ParserTable___action_table_row315(variable[318])(variable[318]) /*ParserTable::action_table_row315*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[318]) /*AbstractArray::add*/;
     variable[319] = variable[0];
-    variable[319] = ((parser_tables___ParserTable___action_table_row316_t)CALL(variable[319],COLOR_parser_tables___ParserTable___action_table_row316))(variable[319]) /*ParserTable::action_table_row316*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[319]) /*AbstractArray::add*/;
+    variable[319] = CALL_parser_tables___ParserTable___action_table_row316(variable[319])(variable[319]) /*ParserTable::action_table_row316*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[319]) /*AbstractArray::add*/;
     variable[320] = variable[0];
-    variable[320] = ((parser_tables___ParserTable___action_table_row317_t)CALL(variable[320],COLOR_parser_tables___ParserTable___action_table_row317))(variable[320]) /*ParserTable::action_table_row317*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[320]) /*AbstractArray::add*/;
+    variable[320] = CALL_parser_tables___ParserTable___action_table_row317(variable[320])(variable[320]) /*ParserTable::action_table_row317*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[320]) /*AbstractArray::add*/;
     variable[321] = variable[0];
-    variable[321] = ((parser_tables___ParserTable___action_table_row318_t)CALL(variable[321],COLOR_parser_tables___ParserTable___action_table_row318))(variable[321]) /*ParserTable::action_table_row318*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[321]) /*AbstractArray::add*/;
+    variable[321] = CALL_parser_tables___ParserTable___action_table_row318(variable[321])(variable[321]) /*ParserTable::action_table_row318*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[321]) /*AbstractArray::add*/;
     variable[322] = variable[0];
-    variable[322] = ((parser_tables___ParserTable___action_table_row319_t)CALL(variable[322],COLOR_parser_tables___ParserTable___action_table_row319))(variable[322]) /*ParserTable::action_table_row319*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[322]) /*AbstractArray::add*/;
+    variable[322] = CALL_parser_tables___ParserTable___action_table_row319(variable[322])(variable[322]) /*ParserTable::action_table_row319*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[322]) /*AbstractArray::add*/;
     variable[323] = variable[0];
-    variable[323] = ((parser_tables___ParserTable___action_table_row320_t)CALL(variable[323],COLOR_parser_tables___ParserTable___action_table_row320))(variable[323]) /*ParserTable::action_table_row320*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[323]) /*AbstractArray::add*/;
+    variable[323] = CALL_parser_tables___ParserTable___action_table_row320(variable[323])(variable[323]) /*ParserTable::action_table_row320*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[323]) /*AbstractArray::add*/;
     variable[324] = variable[0];
-    variable[324] = ((parser_tables___ParserTable___action_table_row321_t)CALL(variable[324],COLOR_parser_tables___ParserTable___action_table_row321))(variable[324]) /*ParserTable::action_table_row321*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[324]) /*AbstractArray::add*/;
+    variable[324] = CALL_parser_tables___ParserTable___action_table_row321(variable[324])(variable[324]) /*ParserTable::action_table_row321*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[324]) /*AbstractArray::add*/;
     variable[325] = variable[0];
-    variable[325] = ((parser_tables___ParserTable___action_table_row322_t)CALL(variable[325],COLOR_parser_tables___ParserTable___action_table_row322))(variable[325]) /*ParserTable::action_table_row322*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[325]) /*AbstractArray::add*/;
+    variable[325] = CALL_parser_tables___ParserTable___action_table_row322(variable[325])(variable[325]) /*ParserTable::action_table_row322*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[325]) /*AbstractArray::add*/;
     variable[326] = variable[0];
-    variable[326] = ((parser_tables___ParserTable___action_table_row323_t)CALL(variable[326],COLOR_parser_tables___ParserTable___action_table_row323))(variable[326]) /*ParserTable::action_table_row323*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[326]) /*AbstractArray::add*/;
+    variable[326] = CALL_parser_tables___ParserTable___action_table_row323(variable[326])(variable[326]) /*ParserTable::action_table_row323*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[326]) /*AbstractArray::add*/;
     variable[327] = variable[0];
-    variable[327] = ((parser_tables___ParserTable___action_table_row324_t)CALL(variable[327],COLOR_parser_tables___ParserTable___action_table_row324))(variable[327]) /*ParserTable::action_table_row324*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[327]) /*AbstractArray::add*/;
+    variable[327] = CALL_parser_tables___ParserTable___action_table_row324(variable[327])(variable[327]) /*ParserTable::action_table_row324*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[327]) /*AbstractArray::add*/;
     variable[328] = variable[0];
-    variable[328] = ((parser_tables___ParserTable___action_table_row325_t)CALL(variable[328],COLOR_parser_tables___ParserTable___action_table_row325))(variable[328]) /*ParserTable::action_table_row325*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[328]) /*AbstractArray::add*/;
+    variable[328] = CALL_parser_tables___ParserTable___action_table_row325(variable[328])(variable[328]) /*ParserTable::action_table_row325*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[328]) /*AbstractArray::add*/;
     variable[329] = variable[0];
-    variable[329] = ((parser_tables___ParserTable___action_table_row326_t)CALL(variable[329],COLOR_parser_tables___ParserTable___action_table_row326))(variable[329]) /*ParserTable::action_table_row326*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[329]) /*AbstractArray::add*/;
+    variable[329] = CALL_parser_tables___ParserTable___action_table_row326(variable[329])(variable[329]) /*ParserTable::action_table_row326*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[329]) /*AbstractArray::add*/;
     variable[330] = variable[0];
-    variable[330] = ((parser_tables___ParserTable___action_table_row327_t)CALL(variable[330],COLOR_parser_tables___ParserTable___action_table_row327))(variable[330]) /*ParserTable::action_table_row327*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[330]) /*AbstractArray::add*/;
+    variable[330] = CALL_parser_tables___ParserTable___action_table_row327(variable[330])(variable[330]) /*ParserTable::action_table_row327*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[330]) /*AbstractArray::add*/;
     variable[331] = variable[0];
-    variable[331] = ((parser_tables___ParserTable___action_table_row328_t)CALL(variable[331],COLOR_parser_tables___ParserTable___action_table_row328))(variable[331]) /*ParserTable::action_table_row328*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[331]) /*AbstractArray::add*/;
+    variable[331] = CALL_parser_tables___ParserTable___action_table_row328(variable[331])(variable[331]) /*ParserTable::action_table_row328*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[331]) /*AbstractArray::add*/;
     variable[332] = variable[0];
-    variable[332] = ((parser_tables___ParserTable___action_table_row329_t)CALL(variable[332],COLOR_parser_tables___ParserTable___action_table_row329))(variable[332]) /*ParserTable::action_table_row329*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[332]) /*AbstractArray::add*/;
+    variable[332] = CALL_parser_tables___ParserTable___action_table_row329(variable[332])(variable[332]) /*ParserTable::action_table_row329*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[332]) /*AbstractArray::add*/;
     variable[333] = variable[0];
-    variable[333] = ((parser_tables___ParserTable___action_table_row330_t)CALL(variable[333],COLOR_parser_tables___ParserTable___action_table_row330))(variable[333]) /*ParserTable::action_table_row330*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[333]) /*AbstractArray::add*/;
+    variable[333] = CALL_parser_tables___ParserTable___action_table_row330(variable[333])(variable[333]) /*ParserTable::action_table_row330*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[333]) /*AbstractArray::add*/;
     variable[334] = variable[0];
-    variable[334] = ((parser_tables___ParserTable___action_table_row331_t)CALL(variable[334],COLOR_parser_tables___ParserTable___action_table_row331))(variable[334]) /*ParserTable::action_table_row331*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[334]) /*AbstractArray::add*/;
+    variable[334] = CALL_parser_tables___ParserTable___action_table_row331(variable[334])(variable[334]) /*ParserTable::action_table_row331*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[334]) /*AbstractArray::add*/;
     variable[335] = variable[0];
-    variable[335] = ((parser_tables___ParserTable___action_table_row332_t)CALL(variable[335],COLOR_parser_tables___ParserTable___action_table_row332))(variable[335]) /*ParserTable::action_table_row332*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[335]) /*AbstractArray::add*/;
+    variable[335] = CALL_parser_tables___ParserTable___action_table_row332(variable[335])(variable[335]) /*ParserTable::action_table_row332*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[335]) /*AbstractArray::add*/;
     variable[336] = variable[0];
-    variable[336] = ((parser_tables___ParserTable___action_table_row333_t)CALL(variable[336],COLOR_parser_tables___ParserTable___action_table_row333))(variable[336]) /*ParserTable::action_table_row333*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[336]) /*AbstractArray::add*/;
+    variable[336] = CALL_parser_tables___ParserTable___action_table_row333(variable[336])(variable[336]) /*ParserTable::action_table_row333*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[336]) /*AbstractArray::add*/;
     variable[337] = variable[0];
-    variable[337] = ((parser_tables___ParserTable___action_table_row334_t)CALL(variable[337],COLOR_parser_tables___ParserTable___action_table_row334))(variable[337]) /*ParserTable::action_table_row334*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[337]) /*AbstractArray::add*/;
+    variable[337] = CALL_parser_tables___ParserTable___action_table_row334(variable[337])(variable[337]) /*ParserTable::action_table_row334*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[337]) /*AbstractArray::add*/;
     variable[338] = variable[0];
-    variable[338] = ((parser_tables___ParserTable___action_table_row335_t)CALL(variable[338],COLOR_parser_tables___ParserTable___action_table_row335))(variable[338]) /*ParserTable::action_table_row335*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[338]) /*AbstractArray::add*/;
+    variable[338] = CALL_parser_tables___ParserTable___action_table_row335(variable[338])(variable[338]) /*ParserTable::action_table_row335*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[338]) /*AbstractArray::add*/;
     variable[339] = variable[0];
-    variable[339] = ((parser_tables___ParserTable___action_table_row336_t)CALL(variable[339],COLOR_parser_tables___ParserTable___action_table_row336))(variable[339]) /*ParserTable::action_table_row336*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[339]) /*AbstractArray::add*/;
+    variable[339] = CALL_parser_tables___ParserTable___action_table_row336(variable[339])(variable[339]) /*ParserTable::action_table_row336*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[339]) /*AbstractArray::add*/;
     variable[340] = variable[0];
-    variable[340] = ((parser_tables___ParserTable___action_table_row337_t)CALL(variable[340],COLOR_parser_tables___ParserTable___action_table_row337))(variable[340]) /*ParserTable::action_table_row337*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[340]) /*AbstractArray::add*/;
+    variable[340] = CALL_parser_tables___ParserTable___action_table_row337(variable[340])(variable[340]) /*ParserTable::action_table_row337*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[340]) /*AbstractArray::add*/;
     variable[341] = variable[0];
-    variable[341] = ((parser_tables___ParserTable___action_table_row338_t)CALL(variable[341],COLOR_parser_tables___ParserTable___action_table_row338))(variable[341]) /*ParserTable::action_table_row338*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[341]) /*AbstractArray::add*/;
+    variable[341] = CALL_parser_tables___ParserTable___action_table_row338(variable[341])(variable[341]) /*ParserTable::action_table_row338*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[341]) /*AbstractArray::add*/;
     variable[342] = variable[0];
-    variable[342] = ((parser_tables___ParserTable___action_table_row339_t)CALL(variable[342],COLOR_parser_tables___ParserTable___action_table_row339))(variable[342]) /*ParserTable::action_table_row339*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[342]) /*AbstractArray::add*/;
+    variable[342] = CALL_parser_tables___ParserTable___action_table_row339(variable[342])(variable[342]) /*ParserTable::action_table_row339*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[342]) /*AbstractArray::add*/;
     variable[343] = variable[0];
-    variable[343] = ((parser_tables___ParserTable___action_table_row340_t)CALL(variable[343],COLOR_parser_tables___ParserTable___action_table_row340))(variable[343]) /*ParserTable::action_table_row340*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[343]) /*AbstractArray::add*/;
+    variable[343] = CALL_parser_tables___ParserTable___action_table_row340(variable[343])(variable[343]) /*ParserTable::action_table_row340*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[343]) /*AbstractArray::add*/;
     variable[344] = variable[0];
-    variable[344] = ((parser_tables___ParserTable___action_table_row341_t)CALL(variable[344],COLOR_parser_tables___ParserTable___action_table_row341))(variable[344]) /*ParserTable::action_table_row341*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[344]) /*AbstractArray::add*/;
+    variable[344] = CALL_parser_tables___ParserTable___action_table_row341(variable[344])(variable[344]) /*ParserTable::action_table_row341*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[344]) /*AbstractArray::add*/;
     variable[345] = variable[0];
-    variable[345] = ((parser_tables___ParserTable___action_table_row342_t)CALL(variable[345],COLOR_parser_tables___ParserTable___action_table_row342))(variable[345]) /*ParserTable::action_table_row342*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[345]) /*AbstractArray::add*/;
+    variable[345] = CALL_parser_tables___ParserTable___action_table_row342(variable[345])(variable[345]) /*ParserTable::action_table_row342*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[345]) /*AbstractArray::add*/;
     variable[346] = variable[0];
-    variable[346] = ((parser_tables___ParserTable___action_table_row343_t)CALL(variable[346],COLOR_parser_tables___ParserTable___action_table_row343))(variable[346]) /*ParserTable::action_table_row343*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[346]) /*AbstractArray::add*/;
+    variable[346] = CALL_parser_tables___ParserTable___action_table_row343(variable[346])(variable[346]) /*ParserTable::action_table_row343*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[346]) /*AbstractArray::add*/;
     variable[347] = variable[0];
-    variable[347] = ((parser_tables___ParserTable___action_table_row344_t)CALL(variable[347],COLOR_parser_tables___ParserTable___action_table_row344))(variable[347]) /*ParserTable::action_table_row344*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[347]) /*AbstractArray::add*/;
+    variable[347] = CALL_parser_tables___ParserTable___action_table_row344(variable[347])(variable[347]) /*ParserTable::action_table_row344*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[347]) /*AbstractArray::add*/;
     variable[348] = variable[0];
-    variable[348] = ((parser_tables___ParserTable___action_table_row345_t)CALL(variable[348],COLOR_parser_tables___ParserTable___action_table_row345))(variable[348]) /*ParserTable::action_table_row345*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[348]) /*AbstractArray::add*/;
+    variable[348] = CALL_parser_tables___ParserTable___action_table_row345(variable[348])(variable[348]) /*ParserTable::action_table_row345*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[348]) /*AbstractArray::add*/;
     variable[349] = variable[0];
-    variable[349] = ((parser_tables___ParserTable___action_table_row346_t)CALL(variable[349],COLOR_parser_tables___ParserTable___action_table_row346))(variable[349]) /*ParserTable::action_table_row346*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[349]) /*AbstractArray::add*/;
+    variable[349] = CALL_parser_tables___ParserTable___action_table_row346(variable[349])(variable[349]) /*ParserTable::action_table_row346*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[349]) /*AbstractArray::add*/;
     variable[350] = variable[0];
-    variable[350] = ((parser_tables___ParserTable___action_table_row347_t)CALL(variable[350],COLOR_parser_tables___ParserTable___action_table_row347))(variable[350]) /*ParserTable::action_table_row347*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[350]) /*AbstractArray::add*/;
+    variable[350] = CALL_parser_tables___ParserTable___action_table_row347(variable[350])(variable[350]) /*ParserTable::action_table_row347*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[350]) /*AbstractArray::add*/;
     variable[351] = variable[0];
-    variable[351] = ((parser_tables___ParserTable___action_table_row348_t)CALL(variable[351],COLOR_parser_tables___ParserTable___action_table_row348))(variable[351]) /*ParserTable::action_table_row348*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[351]) /*AbstractArray::add*/;
+    variable[351] = CALL_parser_tables___ParserTable___action_table_row348(variable[351])(variable[351]) /*ParserTable::action_table_row348*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[351]) /*AbstractArray::add*/;
     variable[352] = variable[0];
-    variable[352] = ((parser_tables___ParserTable___action_table_row349_t)CALL(variable[352],COLOR_parser_tables___ParserTable___action_table_row349))(variable[352]) /*ParserTable::action_table_row349*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[352]) /*AbstractArray::add*/;
+    variable[352] = CALL_parser_tables___ParserTable___action_table_row349(variable[352])(variable[352]) /*ParserTable::action_table_row349*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[352]) /*AbstractArray::add*/;
     variable[353] = variable[0];
-    variable[353] = ((parser_tables___ParserTable___action_table_row350_t)CALL(variable[353],COLOR_parser_tables___ParserTable___action_table_row350))(variable[353]) /*ParserTable::action_table_row350*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[353]) /*AbstractArray::add*/;
+    variable[353] = CALL_parser_tables___ParserTable___action_table_row350(variable[353])(variable[353]) /*ParserTable::action_table_row350*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[353]) /*AbstractArray::add*/;
     variable[354] = variable[0];
-    variable[354] = ((parser_tables___ParserTable___action_table_row351_t)CALL(variable[354],COLOR_parser_tables___ParserTable___action_table_row351))(variable[354]) /*ParserTable::action_table_row351*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[354]) /*AbstractArray::add*/;
+    variable[354] = CALL_parser_tables___ParserTable___action_table_row351(variable[354])(variable[354]) /*ParserTable::action_table_row351*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[354]) /*AbstractArray::add*/;
     variable[355] = variable[0];
-    variable[355] = ((parser_tables___ParserTable___action_table_row352_t)CALL(variable[355],COLOR_parser_tables___ParserTable___action_table_row352))(variable[355]) /*ParserTable::action_table_row352*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[355]) /*AbstractArray::add*/;
+    variable[355] = CALL_parser_tables___ParserTable___action_table_row352(variable[355])(variable[355]) /*ParserTable::action_table_row352*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[355]) /*AbstractArray::add*/;
     variable[356] = variable[0];
-    variable[356] = ((parser_tables___ParserTable___action_table_row353_t)CALL(variable[356],COLOR_parser_tables___ParserTable___action_table_row353))(variable[356]) /*ParserTable::action_table_row353*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[356]) /*AbstractArray::add*/;
+    variable[356] = CALL_parser_tables___ParserTable___action_table_row353(variable[356])(variable[356]) /*ParserTable::action_table_row353*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[356]) /*AbstractArray::add*/;
     variable[357] = variable[0];
-    variable[357] = ((parser_tables___ParserTable___action_table_row354_t)CALL(variable[357],COLOR_parser_tables___ParserTable___action_table_row354))(variable[357]) /*ParserTable::action_table_row354*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[357]) /*AbstractArray::add*/;
+    variable[357] = CALL_parser_tables___ParserTable___action_table_row354(variable[357])(variable[357]) /*ParserTable::action_table_row354*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[357]) /*AbstractArray::add*/;
     variable[358] = variable[0];
-    variable[358] = ((parser_tables___ParserTable___action_table_row355_t)CALL(variable[358],COLOR_parser_tables___ParserTable___action_table_row355))(variable[358]) /*ParserTable::action_table_row355*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[358]) /*AbstractArray::add*/;
+    variable[358] = CALL_parser_tables___ParserTable___action_table_row355(variable[358])(variable[358]) /*ParserTable::action_table_row355*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[358]) /*AbstractArray::add*/;
     variable[359] = variable[0];
-    variable[359] = ((parser_tables___ParserTable___action_table_row356_t)CALL(variable[359],COLOR_parser_tables___ParserTable___action_table_row356))(variable[359]) /*ParserTable::action_table_row356*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[359]) /*AbstractArray::add*/;
+    variable[359] = CALL_parser_tables___ParserTable___action_table_row356(variable[359])(variable[359]) /*ParserTable::action_table_row356*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[359]) /*AbstractArray::add*/;
     variable[360] = variable[0];
-    variable[360] = ((parser_tables___ParserTable___action_table_row357_t)CALL(variable[360],COLOR_parser_tables___ParserTable___action_table_row357))(variable[360]) /*ParserTable::action_table_row357*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[360]) /*AbstractArray::add*/;
+    variable[360] = CALL_parser_tables___ParserTable___action_table_row357(variable[360])(variable[360]) /*ParserTable::action_table_row357*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[360]) /*AbstractArray::add*/;
     variable[361] = variable[0];
-    variable[361] = ((parser_tables___ParserTable___action_table_row358_t)CALL(variable[361],COLOR_parser_tables___ParserTable___action_table_row358))(variable[361]) /*ParserTable::action_table_row358*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[361]) /*AbstractArray::add*/;
+    variable[361] = CALL_parser_tables___ParserTable___action_table_row358(variable[361])(variable[361]) /*ParserTable::action_table_row358*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[361]) /*AbstractArray::add*/;
     variable[362] = variable[0];
-    variable[362] = ((parser_tables___ParserTable___action_table_row359_t)CALL(variable[362],COLOR_parser_tables___ParserTable___action_table_row359))(variable[362]) /*ParserTable::action_table_row359*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[362]) /*AbstractArray::add*/;
+    variable[362] = CALL_parser_tables___ParserTable___action_table_row359(variable[362])(variable[362]) /*ParserTable::action_table_row359*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[362]) /*AbstractArray::add*/;
     variable[363] = variable[0];
-    variable[363] = ((parser_tables___ParserTable___action_table_row360_t)CALL(variable[363],COLOR_parser_tables___ParserTable___action_table_row360))(variable[363]) /*ParserTable::action_table_row360*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[363]) /*AbstractArray::add*/;
+    variable[363] = CALL_parser_tables___ParserTable___action_table_row360(variable[363])(variable[363]) /*ParserTable::action_table_row360*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[363]) /*AbstractArray::add*/;
     variable[364] = variable[0];
-    variable[364] = ((parser_tables___ParserTable___action_table_row361_t)CALL(variable[364],COLOR_parser_tables___ParserTable___action_table_row361))(variable[364]) /*ParserTable::action_table_row361*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[364]) /*AbstractArray::add*/;
+    variable[364] = CALL_parser_tables___ParserTable___action_table_row361(variable[364])(variable[364]) /*ParserTable::action_table_row361*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[364]) /*AbstractArray::add*/;
     variable[365] = variable[0];
-    variable[365] = ((parser_tables___ParserTable___action_table_row362_t)CALL(variable[365],COLOR_parser_tables___ParserTable___action_table_row362))(variable[365]) /*ParserTable::action_table_row362*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[365]) /*AbstractArray::add*/;
+    variable[365] = CALL_parser_tables___ParserTable___action_table_row362(variable[365])(variable[365]) /*ParserTable::action_table_row362*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[365]) /*AbstractArray::add*/;
     variable[366] = variable[0];
-    variable[366] = ((parser_tables___ParserTable___action_table_row363_t)CALL(variable[366],COLOR_parser_tables___ParserTable___action_table_row363))(variable[366]) /*ParserTable::action_table_row363*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[366]) /*AbstractArray::add*/;
+    variable[366] = CALL_parser_tables___ParserTable___action_table_row363(variable[366])(variable[366]) /*ParserTable::action_table_row363*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[366]) /*AbstractArray::add*/;
     variable[367] = variable[0];
-    variable[367] = ((parser_tables___ParserTable___action_table_row364_t)CALL(variable[367],COLOR_parser_tables___ParserTable___action_table_row364))(variable[367]) /*ParserTable::action_table_row364*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[367]) /*AbstractArray::add*/;
+    variable[367] = CALL_parser_tables___ParserTable___action_table_row364(variable[367])(variable[367]) /*ParserTable::action_table_row364*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[367]) /*AbstractArray::add*/;
     variable[368] = variable[0];
-    variable[368] = ((parser_tables___ParserTable___action_table_row365_t)CALL(variable[368],COLOR_parser_tables___ParserTable___action_table_row365))(variable[368]) /*ParserTable::action_table_row365*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[368]) /*AbstractArray::add*/;
+    variable[368] = CALL_parser_tables___ParserTable___action_table_row365(variable[368])(variable[368]) /*ParserTable::action_table_row365*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[368]) /*AbstractArray::add*/;
     variable[369] = variable[0];
-    variable[369] = ((parser_tables___ParserTable___action_table_row366_t)CALL(variable[369],COLOR_parser_tables___ParserTable___action_table_row366))(variable[369]) /*ParserTable::action_table_row366*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[369]) /*AbstractArray::add*/;
+    variable[369] = CALL_parser_tables___ParserTable___action_table_row366(variable[369])(variable[369]) /*ParserTable::action_table_row366*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[369]) /*AbstractArray::add*/;
     variable[370] = variable[0];
-    variable[370] = ((parser_tables___ParserTable___action_table_row367_t)CALL(variable[370],COLOR_parser_tables___ParserTable___action_table_row367))(variable[370]) /*ParserTable::action_table_row367*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[370]) /*AbstractArray::add*/;
+    variable[370] = CALL_parser_tables___ParserTable___action_table_row367(variable[370])(variable[370]) /*ParserTable::action_table_row367*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[370]) /*AbstractArray::add*/;
     variable[371] = variable[0];
-    variable[371] = ((parser_tables___ParserTable___action_table_row368_t)CALL(variable[371],COLOR_parser_tables___ParserTable___action_table_row368))(variable[371]) /*ParserTable::action_table_row368*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[371]) /*AbstractArray::add*/;
+    variable[371] = CALL_parser_tables___ParserTable___action_table_row368(variable[371])(variable[371]) /*ParserTable::action_table_row368*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[371]) /*AbstractArray::add*/;
     variable[372] = variable[0];
-    variable[372] = ((parser_tables___ParserTable___action_table_row369_t)CALL(variable[372],COLOR_parser_tables___ParserTable___action_table_row369))(variable[372]) /*ParserTable::action_table_row369*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[372]) /*AbstractArray::add*/;
+    variable[372] = CALL_parser_tables___ParserTable___action_table_row369(variable[372])(variable[372]) /*ParserTable::action_table_row369*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[372]) /*AbstractArray::add*/;
     variable[373] = variable[0];
-    variable[373] = ((parser_tables___ParserTable___action_table_row370_t)CALL(variable[373],COLOR_parser_tables___ParserTable___action_table_row370))(variable[373]) /*ParserTable::action_table_row370*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[373]) /*AbstractArray::add*/;
+    variable[373] = CALL_parser_tables___ParserTable___action_table_row370(variable[373])(variable[373]) /*ParserTable::action_table_row370*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[373]) /*AbstractArray::add*/;
     variable[374] = variable[0];
-    variable[374] = ((parser_tables___ParserTable___action_table_row371_t)CALL(variable[374],COLOR_parser_tables___ParserTable___action_table_row371))(variable[374]) /*ParserTable::action_table_row371*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[374]) /*AbstractArray::add*/;
+    variable[374] = CALL_parser_tables___ParserTable___action_table_row371(variable[374])(variable[374]) /*ParserTable::action_table_row371*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[374]) /*AbstractArray::add*/;
     variable[375] = variable[0];
-    variable[375] = ((parser_tables___ParserTable___action_table_row372_t)CALL(variable[375],COLOR_parser_tables___ParserTable___action_table_row372))(variable[375]) /*ParserTable::action_table_row372*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[375]) /*AbstractArray::add*/;
+    variable[375] = CALL_parser_tables___ParserTable___action_table_row372(variable[375])(variable[375]) /*ParserTable::action_table_row372*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[375]) /*AbstractArray::add*/;
     variable[376] = variable[0];
-    variable[376] = ((parser_tables___ParserTable___action_table_row373_t)CALL(variable[376],COLOR_parser_tables___ParserTable___action_table_row373))(variable[376]) /*ParserTable::action_table_row373*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[376]) /*AbstractArray::add*/;
+    variable[376] = CALL_parser_tables___ParserTable___action_table_row373(variable[376])(variable[376]) /*ParserTable::action_table_row373*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[376]) /*AbstractArray::add*/;
     variable[377] = variable[0];
-    variable[377] = ((parser_tables___ParserTable___action_table_row374_t)CALL(variable[377],COLOR_parser_tables___ParserTable___action_table_row374))(variable[377]) /*ParserTable::action_table_row374*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[377]) /*AbstractArray::add*/;
+    variable[377] = CALL_parser_tables___ParserTable___action_table_row374(variable[377])(variable[377]) /*ParserTable::action_table_row374*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[377]) /*AbstractArray::add*/;
     variable[378] = variable[0];
-    variable[378] = ((parser_tables___ParserTable___action_table_row375_t)CALL(variable[378],COLOR_parser_tables___ParserTable___action_table_row375))(variable[378]) /*ParserTable::action_table_row375*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[378]) /*AbstractArray::add*/;
+    variable[378] = CALL_parser_tables___ParserTable___action_table_row375(variable[378])(variable[378]) /*ParserTable::action_table_row375*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[378]) /*AbstractArray::add*/;
     variable[379] = variable[0];
-    variable[379] = ((parser_tables___ParserTable___action_table_row376_t)CALL(variable[379],COLOR_parser_tables___ParserTable___action_table_row376))(variable[379]) /*ParserTable::action_table_row376*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[379]) /*AbstractArray::add*/;
+    variable[379] = CALL_parser_tables___ParserTable___action_table_row376(variable[379])(variable[379]) /*ParserTable::action_table_row376*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[379]) /*AbstractArray::add*/;
     variable[380] = variable[0];
-    variable[380] = ((parser_tables___ParserTable___action_table_row377_t)CALL(variable[380],COLOR_parser_tables___ParserTable___action_table_row377))(variable[380]) /*ParserTable::action_table_row377*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[380]) /*AbstractArray::add*/;
+    variable[380] = CALL_parser_tables___ParserTable___action_table_row377(variable[380])(variable[380]) /*ParserTable::action_table_row377*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[380]) /*AbstractArray::add*/;
     variable[381] = variable[0];
-    variable[381] = ((parser_tables___ParserTable___action_table_row378_t)CALL(variable[381],COLOR_parser_tables___ParserTable___action_table_row378))(variable[381]) /*ParserTable::action_table_row378*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[381]) /*AbstractArray::add*/;
+    variable[381] = CALL_parser_tables___ParserTable___action_table_row378(variable[381])(variable[381]) /*ParserTable::action_table_row378*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[381]) /*AbstractArray::add*/;
     variable[382] = variable[0];
-    variable[382] = ((parser_tables___ParserTable___action_table_row379_t)CALL(variable[382],COLOR_parser_tables___ParserTable___action_table_row379))(variable[382]) /*ParserTable::action_table_row379*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[382]) /*AbstractArray::add*/;
+    variable[382] = CALL_parser_tables___ParserTable___action_table_row379(variable[382])(variable[382]) /*ParserTable::action_table_row379*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[382]) /*AbstractArray::add*/;
     variable[383] = variable[0];
-    variable[383] = ((parser_tables___ParserTable___action_table_row380_t)CALL(variable[383],COLOR_parser_tables___ParserTable___action_table_row380))(variable[383]) /*ParserTable::action_table_row380*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[383]) /*AbstractArray::add*/;
+    variable[383] = CALL_parser_tables___ParserTable___action_table_row380(variable[383])(variable[383]) /*ParserTable::action_table_row380*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[383]) /*AbstractArray::add*/;
     variable[384] = variable[0];
-    variable[384] = ((parser_tables___ParserTable___action_table_row381_t)CALL(variable[384],COLOR_parser_tables___ParserTable___action_table_row381))(variable[384]) /*ParserTable::action_table_row381*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[384]) /*AbstractArray::add*/;
+    variable[384] = CALL_parser_tables___ParserTable___action_table_row381(variable[384])(variable[384]) /*ParserTable::action_table_row381*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[384]) /*AbstractArray::add*/;
     variable[385] = variable[0];
-    variable[385] = ((parser_tables___ParserTable___action_table_row382_t)CALL(variable[385],COLOR_parser_tables___ParserTable___action_table_row382))(variable[385]) /*ParserTable::action_table_row382*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[385]) /*AbstractArray::add*/;
+    variable[385] = CALL_parser_tables___ParserTable___action_table_row382(variable[385])(variable[385]) /*ParserTable::action_table_row382*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[385]) /*AbstractArray::add*/;
     variable[386] = variable[0];
-    variable[386] = ((parser_tables___ParserTable___action_table_row383_t)CALL(variable[386],COLOR_parser_tables___ParserTable___action_table_row383))(variable[386]) /*ParserTable::action_table_row383*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[386]) /*AbstractArray::add*/;
+    variable[386] = CALL_parser_tables___ParserTable___action_table_row383(variable[386])(variable[386]) /*ParserTable::action_table_row383*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[386]) /*AbstractArray::add*/;
     variable[387] = variable[0];
-    variable[387] = ((parser_tables___ParserTable___action_table_row384_t)CALL(variable[387],COLOR_parser_tables___ParserTable___action_table_row384))(variable[387]) /*ParserTable::action_table_row384*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[387]) /*AbstractArray::add*/;
+    variable[387] = CALL_parser_tables___ParserTable___action_table_row384(variable[387])(variable[387]) /*ParserTable::action_table_row384*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[387]) /*AbstractArray::add*/;
     variable[388] = variable[0];
-    variable[388] = ((parser_tables___ParserTable___action_table_row385_t)CALL(variable[388],COLOR_parser_tables___ParserTable___action_table_row385))(variable[388]) /*ParserTable::action_table_row385*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[388]) /*AbstractArray::add*/;
+    variable[388] = CALL_parser_tables___ParserTable___action_table_row385(variable[388])(variable[388]) /*ParserTable::action_table_row385*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[388]) /*AbstractArray::add*/;
     variable[389] = variable[0];
-    variable[389] = ((parser_tables___ParserTable___action_table_row386_t)CALL(variable[389],COLOR_parser_tables___ParserTable___action_table_row386))(variable[389]) /*ParserTable::action_table_row386*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[389]) /*AbstractArray::add*/;
+    variable[389] = CALL_parser_tables___ParserTable___action_table_row386(variable[389])(variable[389]) /*ParserTable::action_table_row386*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[389]) /*AbstractArray::add*/;
     variable[390] = variable[0];
-    variable[390] = ((parser_tables___ParserTable___action_table_row387_t)CALL(variable[390],COLOR_parser_tables___ParserTable___action_table_row387))(variable[390]) /*ParserTable::action_table_row387*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[390]) /*AbstractArray::add*/;
+    variable[390] = CALL_parser_tables___ParserTable___action_table_row387(variable[390])(variable[390]) /*ParserTable::action_table_row387*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[390]) /*AbstractArray::add*/;
     variable[391] = variable[0];
-    variable[391] = ((parser_tables___ParserTable___action_table_row388_t)CALL(variable[391],COLOR_parser_tables___ParserTable___action_table_row388))(variable[391]) /*ParserTable::action_table_row388*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[391]) /*AbstractArray::add*/;
+    variable[391] = CALL_parser_tables___ParserTable___action_table_row388(variable[391])(variable[391]) /*ParserTable::action_table_row388*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[391]) /*AbstractArray::add*/;
     variable[392] = variable[0];
-    variable[392] = ((parser_tables___ParserTable___action_table_row389_t)CALL(variable[392],COLOR_parser_tables___ParserTable___action_table_row389))(variable[392]) /*ParserTable::action_table_row389*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[392]) /*AbstractArray::add*/;
+    variable[392] = CALL_parser_tables___ParserTable___action_table_row389(variable[392])(variable[392]) /*ParserTable::action_table_row389*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[392]) /*AbstractArray::add*/;
     variable[393] = variable[0];
-    variable[393] = ((parser_tables___ParserTable___action_table_row390_t)CALL(variable[393],COLOR_parser_tables___ParserTable___action_table_row390))(variable[393]) /*ParserTable::action_table_row390*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[393]) /*AbstractArray::add*/;
+    variable[393] = CALL_parser_tables___ParserTable___action_table_row390(variable[393])(variable[393]) /*ParserTable::action_table_row390*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[393]) /*AbstractArray::add*/;
     variable[394] = variable[0];
-    variable[394] = ((parser_tables___ParserTable___action_table_row391_t)CALL(variable[394],COLOR_parser_tables___ParserTable___action_table_row391))(variable[394]) /*ParserTable::action_table_row391*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[394]) /*AbstractArray::add*/;
+    variable[394] = CALL_parser_tables___ParserTable___action_table_row391(variable[394])(variable[394]) /*ParserTable::action_table_row391*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[394]) /*AbstractArray::add*/;
     variable[395] = variable[0];
-    variable[395] = ((parser_tables___ParserTable___action_table_row392_t)CALL(variable[395],COLOR_parser_tables___ParserTable___action_table_row392))(variable[395]) /*ParserTable::action_table_row392*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[395]) /*AbstractArray::add*/;
+    variable[395] = CALL_parser_tables___ParserTable___action_table_row392(variable[395])(variable[395]) /*ParserTable::action_table_row392*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[395]) /*AbstractArray::add*/;
     variable[396] = variable[0];
-    variable[396] = ((parser_tables___ParserTable___action_table_row393_t)CALL(variable[396],COLOR_parser_tables___ParserTable___action_table_row393))(variable[396]) /*ParserTable::action_table_row393*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[396]) /*AbstractArray::add*/;
+    variable[396] = CALL_parser_tables___ParserTable___action_table_row393(variable[396])(variable[396]) /*ParserTable::action_table_row393*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[396]) /*AbstractArray::add*/;
     variable[397] = variable[0];
-    variable[397] = ((parser_tables___ParserTable___action_table_row394_t)CALL(variable[397],COLOR_parser_tables___ParserTable___action_table_row394))(variable[397]) /*ParserTable::action_table_row394*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[397]) /*AbstractArray::add*/;
+    variable[397] = CALL_parser_tables___ParserTable___action_table_row394(variable[397])(variable[397]) /*ParserTable::action_table_row394*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[397]) /*AbstractArray::add*/;
     variable[398] = variable[0];
-    variable[398] = ((parser_tables___ParserTable___action_table_row395_t)CALL(variable[398],COLOR_parser_tables___ParserTable___action_table_row395))(variable[398]) /*ParserTable::action_table_row395*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[398]) /*AbstractArray::add*/;
+    variable[398] = CALL_parser_tables___ParserTable___action_table_row395(variable[398])(variable[398]) /*ParserTable::action_table_row395*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[398]) /*AbstractArray::add*/;
     variable[399] = variable[0];
-    variable[399] = ((parser_tables___ParserTable___action_table_row396_t)CALL(variable[399],COLOR_parser_tables___ParserTable___action_table_row396))(variable[399]) /*ParserTable::action_table_row396*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[399]) /*AbstractArray::add*/;
+    variable[399] = CALL_parser_tables___ParserTable___action_table_row396(variable[399])(variable[399]) /*ParserTable::action_table_row396*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[399]) /*AbstractArray::add*/;
     variable[400] = variable[0];
-    variable[400] = ((parser_tables___ParserTable___action_table_row397_t)CALL(variable[400],COLOR_parser_tables___ParserTable___action_table_row397))(variable[400]) /*ParserTable::action_table_row397*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[400]) /*AbstractArray::add*/;
+    variable[400] = CALL_parser_tables___ParserTable___action_table_row397(variable[400])(variable[400]) /*ParserTable::action_table_row397*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[400]) /*AbstractArray::add*/;
     variable[401] = variable[0];
-    variable[401] = ((parser_tables___ParserTable___action_table_row398_t)CALL(variable[401],COLOR_parser_tables___ParserTable___action_table_row398))(variable[401]) /*ParserTable::action_table_row398*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[401]) /*AbstractArray::add*/;
+    variable[401] = CALL_parser_tables___ParserTable___action_table_row398(variable[401])(variable[401]) /*ParserTable::action_table_row398*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[401]) /*AbstractArray::add*/;
     variable[402] = variable[0];
-    variable[402] = ((parser_tables___ParserTable___action_table_row399_t)CALL(variable[402],COLOR_parser_tables___ParserTable___action_table_row399))(variable[402]) /*ParserTable::action_table_row399*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[402]) /*AbstractArray::add*/;
+    variable[402] = CALL_parser_tables___ParserTable___action_table_row399(variable[402])(variable[402]) /*ParserTable::action_table_row399*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[402]) /*AbstractArray::add*/;
     variable[403] = variable[0];
-    variable[403] = ((parser_tables___ParserTable___action_table_row400_t)CALL(variable[403],COLOR_parser_tables___ParserTable___action_table_row400))(variable[403]) /*ParserTable::action_table_row400*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[403]) /*AbstractArray::add*/;
+    variable[403] = CALL_parser_tables___ParserTable___action_table_row400(variable[403])(variable[403]) /*ParserTable::action_table_row400*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[403]) /*AbstractArray::add*/;
     variable[404] = variable[0];
-    variable[404] = ((parser_tables___ParserTable___action_table_row401_t)CALL(variable[404],COLOR_parser_tables___ParserTable___action_table_row401))(variable[404]) /*ParserTable::action_table_row401*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[404]) /*AbstractArray::add*/;
+    variable[404] = CALL_parser_tables___ParserTable___action_table_row401(variable[404])(variable[404]) /*ParserTable::action_table_row401*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[404]) /*AbstractArray::add*/;
     variable[405] = variable[0];
-    variable[405] = ((parser_tables___ParserTable___action_table_row402_t)CALL(variable[405],COLOR_parser_tables___ParserTable___action_table_row402))(variable[405]) /*ParserTable::action_table_row402*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[405]) /*AbstractArray::add*/;
+    variable[405] = CALL_parser_tables___ParserTable___action_table_row402(variable[405])(variable[405]) /*ParserTable::action_table_row402*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[405]) /*AbstractArray::add*/;
     variable[406] = variable[0];
-    variable[406] = ((parser_tables___ParserTable___action_table_row403_t)CALL(variable[406],COLOR_parser_tables___ParserTable___action_table_row403))(variable[406]) /*ParserTable::action_table_row403*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[406]) /*AbstractArray::add*/;
+    variable[406] = CALL_parser_tables___ParserTable___action_table_row403(variable[406])(variable[406]) /*ParserTable::action_table_row403*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[406]) /*AbstractArray::add*/;
     variable[407] = variable[0];
-    variable[407] = ((parser_tables___ParserTable___action_table_row404_t)CALL(variable[407],COLOR_parser_tables___ParserTable___action_table_row404))(variable[407]) /*ParserTable::action_table_row404*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[407]) /*AbstractArray::add*/;
+    variable[407] = CALL_parser_tables___ParserTable___action_table_row404(variable[407])(variable[407]) /*ParserTable::action_table_row404*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[407]) /*AbstractArray::add*/;
     variable[408] = variable[0];
-    variable[408] = ((parser_tables___ParserTable___action_table_row405_t)CALL(variable[408],COLOR_parser_tables___ParserTable___action_table_row405))(variable[408]) /*ParserTable::action_table_row405*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[408]) /*AbstractArray::add*/;
+    variable[408] = CALL_parser_tables___ParserTable___action_table_row405(variable[408])(variable[408]) /*ParserTable::action_table_row405*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[408]) /*AbstractArray::add*/;
     variable[409] = variable[0];
-    variable[409] = ((parser_tables___ParserTable___action_table_row406_t)CALL(variable[409],COLOR_parser_tables___ParserTable___action_table_row406))(variable[409]) /*ParserTable::action_table_row406*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[409]) /*AbstractArray::add*/;
+    variable[409] = CALL_parser_tables___ParserTable___action_table_row406(variable[409])(variable[409]) /*ParserTable::action_table_row406*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[409]) /*AbstractArray::add*/;
     variable[410] = variable[0];
-    variable[410] = ((parser_tables___ParserTable___action_table_row407_t)CALL(variable[410],COLOR_parser_tables___ParserTable___action_table_row407))(variable[410]) /*ParserTable::action_table_row407*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[410]) /*AbstractArray::add*/;
+    variable[410] = CALL_parser_tables___ParserTable___action_table_row407(variable[410])(variable[410]) /*ParserTable::action_table_row407*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[410]) /*AbstractArray::add*/;
     variable[411] = variable[0];
-    variable[411] = ((parser_tables___ParserTable___action_table_row408_t)CALL(variable[411],COLOR_parser_tables___ParserTable___action_table_row408))(variable[411]) /*ParserTable::action_table_row408*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[411]) /*AbstractArray::add*/;
+    variable[411] = CALL_parser_tables___ParserTable___action_table_row408(variable[411])(variable[411]) /*ParserTable::action_table_row408*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[411]) /*AbstractArray::add*/;
     variable[412] = variable[0];
-    variable[412] = ((parser_tables___ParserTable___action_table_row409_t)CALL(variable[412],COLOR_parser_tables___ParserTable___action_table_row409))(variable[412]) /*ParserTable::action_table_row409*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[412]) /*AbstractArray::add*/;
+    variable[412] = CALL_parser_tables___ParserTable___action_table_row409(variable[412])(variable[412]) /*ParserTable::action_table_row409*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[412]) /*AbstractArray::add*/;
     variable[413] = variable[0];
-    variable[413] = ((parser_tables___ParserTable___action_table_row410_t)CALL(variable[413],COLOR_parser_tables___ParserTable___action_table_row410))(variable[413]) /*ParserTable::action_table_row410*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[413]) /*AbstractArray::add*/;
+    variable[413] = CALL_parser_tables___ParserTable___action_table_row410(variable[413])(variable[413]) /*ParserTable::action_table_row410*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[413]) /*AbstractArray::add*/;
     variable[414] = variable[0];
-    variable[414] = ((parser_tables___ParserTable___action_table_row411_t)CALL(variable[414],COLOR_parser_tables___ParserTable___action_table_row411))(variable[414]) /*ParserTable::action_table_row411*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[414]) /*AbstractArray::add*/;
+    variable[414] = CALL_parser_tables___ParserTable___action_table_row411(variable[414])(variable[414]) /*ParserTable::action_table_row411*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[414]) /*AbstractArray::add*/;
     variable[415] = variable[0];
-    variable[415] = ((parser_tables___ParserTable___action_table_row412_t)CALL(variable[415],COLOR_parser_tables___ParserTable___action_table_row412))(variable[415]) /*ParserTable::action_table_row412*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[415]) /*AbstractArray::add*/;
+    variable[415] = CALL_parser_tables___ParserTable___action_table_row412(variable[415])(variable[415]) /*ParserTable::action_table_row412*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[415]) /*AbstractArray::add*/;
     variable[416] = variable[0];
-    variable[416] = ((parser_tables___ParserTable___action_table_row413_t)CALL(variable[416],COLOR_parser_tables___ParserTable___action_table_row413))(variable[416]) /*ParserTable::action_table_row413*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[416]) /*AbstractArray::add*/;
+    variable[416] = CALL_parser_tables___ParserTable___action_table_row413(variable[416])(variable[416]) /*ParserTable::action_table_row413*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[416]) /*AbstractArray::add*/;
     variable[417] = variable[0];
-    variable[417] = ((parser_tables___ParserTable___action_table_row414_t)CALL(variable[417],COLOR_parser_tables___ParserTable___action_table_row414))(variable[417]) /*ParserTable::action_table_row414*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[417]) /*AbstractArray::add*/;
+    variable[417] = CALL_parser_tables___ParserTable___action_table_row414(variable[417])(variable[417]) /*ParserTable::action_table_row414*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[417]) /*AbstractArray::add*/;
     variable[418] = variable[0];
-    variable[418] = ((parser_tables___ParserTable___action_table_row415_t)CALL(variable[418],COLOR_parser_tables___ParserTable___action_table_row415))(variable[418]) /*ParserTable::action_table_row415*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[418]) /*AbstractArray::add*/;
+    variable[418] = CALL_parser_tables___ParserTable___action_table_row415(variable[418])(variable[418]) /*ParserTable::action_table_row415*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[418]) /*AbstractArray::add*/;
     variable[419] = variable[0];
-    variable[419] = ((parser_tables___ParserTable___action_table_row416_t)CALL(variable[419],COLOR_parser_tables___ParserTable___action_table_row416))(variable[419]) /*ParserTable::action_table_row416*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[419]) /*AbstractArray::add*/;
+    variable[419] = CALL_parser_tables___ParserTable___action_table_row416(variable[419])(variable[419]) /*ParserTable::action_table_row416*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[419]) /*AbstractArray::add*/;
     variable[420] = variable[0];
-    variable[420] = ((parser_tables___ParserTable___action_table_row417_t)CALL(variable[420],COLOR_parser_tables___ParserTable___action_table_row417))(variable[420]) /*ParserTable::action_table_row417*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[420]) /*AbstractArray::add*/;
+    variable[420] = CALL_parser_tables___ParserTable___action_table_row417(variable[420])(variable[420]) /*ParserTable::action_table_row417*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[420]) /*AbstractArray::add*/;
     variable[421] = variable[0];
-    variable[421] = ((parser_tables___ParserTable___action_table_row418_t)CALL(variable[421],COLOR_parser_tables___ParserTable___action_table_row418))(variable[421]) /*ParserTable::action_table_row418*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[421]) /*AbstractArray::add*/;
+    variable[421] = CALL_parser_tables___ParserTable___action_table_row418(variable[421])(variable[421]) /*ParserTable::action_table_row418*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[421]) /*AbstractArray::add*/;
     variable[422] = variable[0];
-    variable[422] = ((parser_tables___ParserTable___action_table_row419_t)CALL(variable[422],COLOR_parser_tables___ParserTable___action_table_row419))(variable[422]) /*ParserTable::action_table_row419*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[422]) /*AbstractArray::add*/;
+    variable[422] = CALL_parser_tables___ParserTable___action_table_row419(variable[422])(variable[422]) /*ParserTable::action_table_row419*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[422]) /*AbstractArray::add*/;
     variable[423] = variable[0];
-    variable[423] = ((parser_tables___ParserTable___action_table_row420_t)CALL(variable[423],COLOR_parser_tables___ParserTable___action_table_row420))(variable[423]) /*ParserTable::action_table_row420*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[423]) /*AbstractArray::add*/;
+    variable[423] = CALL_parser_tables___ParserTable___action_table_row420(variable[423])(variable[423]) /*ParserTable::action_table_row420*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[423]) /*AbstractArray::add*/;
     variable[424] = variable[0];
-    variable[424] = ((parser_tables___ParserTable___action_table_row421_t)CALL(variable[424],COLOR_parser_tables___ParserTable___action_table_row421))(variable[424]) /*ParserTable::action_table_row421*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[424]) /*AbstractArray::add*/;
+    variable[424] = CALL_parser_tables___ParserTable___action_table_row421(variable[424])(variable[424]) /*ParserTable::action_table_row421*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[424]) /*AbstractArray::add*/;
     variable[425] = variable[0];
-    variable[425] = ((parser_tables___ParserTable___action_table_row422_t)CALL(variable[425],COLOR_parser_tables___ParserTable___action_table_row422))(variable[425]) /*ParserTable::action_table_row422*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[425]) /*AbstractArray::add*/;
+    variable[425] = CALL_parser_tables___ParserTable___action_table_row422(variable[425])(variable[425]) /*ParserTable::action_table_row422*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[425]) /*AbstractArray::add*/;
     variable[426] = variable[0];
-    variable[426] = ((parser_tables___ParserTable___action_table_row423_t)CALL(variable[426],COLOR_parser_tables___ParserTable___action_table_row423))(variable[426]) /*ParserTable::action_table_row423*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[426]) /*AbstractArray::add*/;
+    variable[426] = CALL_parser_tables___ParserTable___action_table_row423(variable[426])(variable[426]) /*ParserTable::action_table_row423*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[426]) /*AbstractArray::add*/;
     variable[427] = variable[0];
-    variable[427] = ((parser_tables___ParserTable___action_table_row424_t)CALL(variable[427],COLOR_parser_tables___ParserTable___action_table_row424))(variable[427]) /*ParserTable::action_table_row424*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[427]) /*AbstractArray::add*/;
+    variable[427] = CALL_parser_tables___ParserTable___action_table_row424(variable[427])(variable[427]) /*ParserTable::action_table_row424*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[427]) /*AbstractArray::add*/;
     variable[428] = variable[0];
-    variable[428] = ((parser_tables___ParserTable___action_table_row425_t)CALL(variable[428],COLOR_parser_tables___ParserTable___action_table_row425))(variable[428]) /*ParserTable::action_table_row425*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[428]) /*AbstractArray::add*/;
+    variable[428] = CALL_parser_tables___ParserTable___action_table_row425(variable[428])(variable[428]) /*ParserTable::action_table_row425*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[428]) /*AbstractArray::add*/;
     variable[429] = variable[0];
-    variable[429] = ((parser_tables___ParserTable___action_table_row426_t)CALL(variable[429],COLOR_parser_tables___ParserTable___action_table_row426))(variable[429]) /*ParserTable::action_table_row426*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[429]) /*AbstractArray::add*/;
+    variable[429] = CALL_parser_tables___ParserTable___action_table_row426(variable[429])(variable[429]) /*ParserTable::action_table_row426*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[429]) /*AbstractArray::add*/;
     variable[430] = variable[0];
-    variable[430] = ((parser_tables___ParserTable___action_table_row427_t)CALL(variable[430],COLOR_parser_tables___ParserTable___action_table_row427))(variable[430]) /*ParserTable::action_table_row427*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[430]) /*AbstractArray::add*/;
+    variable[430] = CALL_parser_tables___ParserTable___action_table_row427(variable[430])(variable[430]) /*ParserTable::action_table_row427*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[430]) /*AbstractArray::add*/;
     variable[431] = variable[0];
-    variable[431] = ((parser_tables___ParserTable___action_table_row428_t)CALL(variable[431],COLOR_parser_tables___ParserTable___action_table_row428))(variable[431]) /*ParserTable::action_table_row428*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[431]) /*AbstractArray::add*/;
+    variable[431] = CALL_parser_tables___ParserTable___action_table_row428(variable[431])(variable[431]) /*ParserTable::action_table_row428*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[431]) /*AbstractArray::add*/;
     variable[432] = variable[0];
-    variable[432] = ((parser_tables___ParserTable___action_table_row429_t)CALL(variable[432],COLOR_parser_tables___ParserTable___action_table_row429))(variable[432]) /*ParserTable::action_table_row429*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[432]) /*AbstractArray::add*/;
+    variable[432] = CALL_parser_tables___ParserTable___action_table_row429(variable[432])(variable[432]) /*ParserTable::action_table_row429*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[432]) /*AbstractArray::add*/;
     variable[433] = variable[0];
-    variable[433] = ((parser_tables___ParserTable___action_table_row430_t)CALL(variable[433],COLOR_parser_tables___ParserTable___action_table_row430))(variable[433]) /*ParserTable::action_table_row430*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[433]) /*AbstractArray::add*/;
+    variable[433] = CALL_parser_tables___ParserTable___action_table_row430(variable[433])(variable[433]) /*ParserTable::action_table_row430*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[433]) /*AbstractArray::add*/;
     variable[434] = variable[0];
-    variable[434] = ((parser_tables___ParserTable___action_table_row431_t)CALL(variable[434],COLOR_parser_tables___ParserTable___action_table_row431))(variable[434]) /*ParserTable::action_table_row431*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[434]) /*AbstractArray::add*/;
+    variable[434] = CALL_parser_tables___ParserTable___action_table_row431(variable[434])(variable[434]) /*ParserTable::action_table_row431*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[434]) /*AbstractArray::add*/;
     variable[435] = variable[0];
-    variable[435] = ((parser_tables___ParserTable___action_table_row432_t)CALL(variable[435],COLOR_parser_tables___ParserTable___action_table_row432))(variable[435]) /*ParserTable::action_table_row432*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[435]) /*AbstractArray::add*/;
+    variable[435] = CALL_parser_tables___ParserTable___action_table_row432(variable[435])(variable[435]) /*ParserTable::action_table_row432*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[435]) /*AbstractArray::add*/;
     variable[436] = variable[0];
-    variable[436] = ((parser_tables___ParserTable___action_table_row433_t)CALL(variable[436],COLOR_parser_tables___ParserTable___action_table_row433))(variable[436]) /*ParserTable::action_table_row433*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[436]) /*AbstractArray::add*/;
+    variable[436] = CALL_parser_tables___ParserTable___action_table_row433(variable[436])(variable[436]) /*ParserTable::action_table_row433*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[436]) /*AbstractArray::add*/;
     variable[437] = variable[0];
-    variable[437] = ((parser_tables___ParserTable___action_table_row434_t)CALL(variable[437],COLOR_parser_tables___ParserTable___action_table_row434))(variable[437]) /*ParserTable::action_table_row434*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[437]) /*AbstractArray::add*/;
+    variable[437] = CALL_parser_tables___ParserTable___action_table_row434(variable[437])(variable[437]) /*ParserTable::action_table_row434*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[437]) /*AbstractArray::add*/;
     variable[438] = variable[0];
-    variable[438] = ((parser_tables___ParserTable___action_table_row435_t)CALL(variable[438],COLOR_parser_tables___ParserTable___action_table_row435))(variable[438]) /*ParserTable::action_table_row435*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[438]) /*AbstractArray::add*/;
+    variable[438] = CALL_parser_tables___ParserTable___action_table_row435(variable[438])(variable[438]) /*ParserTable::action_table_row435*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[438]) /*AbstractArray::add*/;
     variable[439] = variable[0];
-    variable[439] = ((parser_tables___ParserTable___action_table_row436_t)CALL(variable[439],COLOR_parser_tables___ParserTable___action_table_row436))(variable[439]) /*ParserTable::action_table_row436*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[439]) /*AbstractArray::add*/;
+    variable[439] = CALL_parser_tables___ParserTable___action_table_row436(variable[439])(variable[439]) /*ParserTable::action_table_row436*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[439]) /*AbstractArray::add*/;
     variable[440] = variable[0];
-    variable[440] = ((parser_tables___ParserTable___action_table_row437_t)CALL(variable[440],COLOR_parser_tables___ParserTable___action_table_row437))(variable[440]) /*ParserTable::action_table_row437*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[440]) /*AbstractArray::add*/;
+    variable[440] = CALL_parser_tables___ParserTable___action_table_row437(variable[440])(variable[440]) /*ParserTable::action_table_row437*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[440]) /*AbstractArray::add*/;
     variable[441] = variable[0];
-    variable[441] = ((parser_tables___ParserTable___action_table_row438_t)CALL(variable[441],COLOR_parser_tables___ParserTable___action_table_row438))(variable[441]) /*ParserTable::action_table_row438*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[441]) /*AbstractArray::add*/;
+    variable[441] = CALL_parser_tables___ParserTable___action_table_row438(variable[441])(variable[441]) /*ParserTable::action_table_row438*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[441]) /*AbstractArray::add*/;
     variable[442] = variable[0];
-    variable[442] = ((parser_tables___ParserTable___action_table_row439_t)CALL(variable[442],COLOR_parser_tables___ParserTable___action_table_row439))(variable[442]) /*ParserTable::action_table_row439*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[442]) /*AbstractArray::add*/;
+    variable[442] = CALL_parser_tables___ParserTable___action_table_row439(variable[442])(variable[442]) /*ParserTable::action_table_row439*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[442]) /*AbstractArray::add*/;
     variable[443] = variable[0];
-    variable[443] = ((parser_tables___ParserTable___action_table_row440_t)CALL(variable[443],COLOR_parser_tables___ParserTable___action_table_row440))(variable[443]) /*ParserTable::action_table_row440*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[443]) /*AbstractArray::add*/;
+    variable[443] = CALL_parser_tables___ParserTable___action_table_row440(variable[443])(variable[443]) /*ParserTable::action_table_row440*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[443]) /*AbstractArray::add*/;
     variable[444] = variable[0];
-    variable[444] = ((parser_tables___ParserTable___action_table_row441_t)CALL(variable[444],COLOR_parser_tables___ParserTable___action_table_row441))(variable[444]) /*ParserTable::action_table_row441*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[444]) /*AbstractArray::add*/;
+    variable[444] = CALL_parser_tables___ParserTable___action_table_row441(variable[444])(variable[444]) /*ParserTable::action_table_row441*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[444]) /*AbstractArray::add*/;
     variable[445] = variable[0];
-    variable[445] = ((parser_tables___ParserTable___action_table_row442_t)CALL(variable[445],COLOR_parser_tables___ParserTable___action_table_row442))(variable[445]) /*ParserTable::action_table_row442*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[445]) /*AbstractArray::add*/;
+    variable[445] = CALL_parser_tables___ParserTable___action_table_row442(variable[445])(variable[445]) /*ParserTable::action_table_row442*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[445]) /*AbstractArray::add*/;
     variable[446] = variable[0];
-    variable[446] = ((parser_tables___ParserTable___action_table_row443_t)CALL(variable[446],COLOR_parser_tables___ParserTable___action_table_row443))(variable[446]) /*ParserTable::action_table_row443*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[446]) /*AbstractArray::add*/;
+    variable[446] = CALL_parser_tables___ParserTable___action_table_row443(variable[446])(variable[446]) /*ParserTable::action_table_row443*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[446]) /*AbstractArray::add*/;
     variable[447] = variable[0];
-    variable[447] = ((parser_tables___ParserTable___action_table_row444_t)CALL(variable[447],COLOR_parser_tables___ParserTable___action_table_row444))(variable[447]) /*ParserTable::action_table_row444*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[447]) /*AbstractArray::add*/;
+    variable[447] = CALL_parser_tables___ParserTable___action_table_row444(variable[447])(variable[447]) /*ParserTable::action_table_row444*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[447]) /*AbstractArray::add*/;
     variable[448] = variable[0];
-    variable[448] = ((parser_tables___ParserTable___action_table_row445_t)CALL(variable[448],COLOR_parser_tables___ParserTable___action_table_row445))(variable[448]) /*ParserTable::action_table_row445*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[448]) /*AbstractArray::add*/;
+    variable[448] = CALL_parser_tables___ParserTable___action_table_row445(variable[448])(variable[448]) /*ParserTable::action_table_row445*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[448]) /*AbstractArray::add*/;
     variable[449] = variable[0];
-    variable[449] = ((parser_tables___ParserTable___action_table_row446_t)CALL(variable[449],COLOR_parser_tables___ParserTable___action_table_row446))(variable[449]) /*ParserTable::action_table_row446*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[449]) /*AbstractArray::add*/;
+    variable[449] = CALL_parser_tables___ParserTable___action_table_row446(variable[449])(variable[449]) /*ParserTable::action_table_row446*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[449]) /*AbstractArray::add*/;
     variable[450] = variable[0];
-    variable[450] = ((parser_tables___ParserTable___action_table_row447_t)CALL(variable[450],COLOR_parser_tables___ParserTable___action_table_row447))(variable[450]) /*ParserTable::action_table_row447*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[450]) /*AbstractArray::add*/;
+    variable[450] = CALL_parser_tables___ParserTable___action_table_row447(variable[450])(variable[450]) /*ParserTable::action_table_row447*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[450]) /*AbstractArray::add*/;
     variable[451] = variable[0];
-    variable[451] = ((parser_tables___ParserTable___action_table_row448_t)CALL(variable[451],COLOR_parser_tables___ParserTable___action_table_row448))(variable[451]) /*ParserTable::action_table_row448*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[451]) /*AbstractArray::add*/;
+    variable[451] = CALL_parser_tables___ParserTable___action_table_row448(variable[451])(variable[451]) /*ParserTable::action_table_row448*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[451]) /*AbstractArray::add*/;
     variable[452] = variable[0];
-    variable[452] = ((parser_tables___ParserTable___action_table_row449_t)CALL(variable[452],COLOR_parser_tables___ParserTable___action_table_row449))(variable[452]) /*ParserTable::action_table_row449*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[452]) /*AbstractArray::add*/;
+    variable[452] = CALL_parser_tables___ParserTable___action_table_row449(variable[452])(variable[452]) /*ParserTable::action_table_row449*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[452]) /*AbstractArray::add*/;
     variable[453] = variable[0];
-    variable[453] = ((parser_tables___ParserTable___action_table_row450_t)CALL(variable[453],COLOR_parser_tables___ParserTable___action_table_row450))(variable[453]) /*ParserTable::action_table_row450*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[453]) /*AbstractArray::add*/;
+    variable[453] = CALL_parser_tables___ParserTable___action_table_row450(variable[453])(variable[453]) /*ParserTable::action_table_row450*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[453]) /*AbstractArray::add*/;
     variable[454] = variable[0];
-    variable[454] = ((parser_tables___ParserTable___action_table_row451_t)CALL(variable[454],COLOR_parser_tables___ParserTable___action_table_row451))(variable[454]) /*ParserTable::action_table_row451*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[454]) /*AbstractArray::add*/;
+    variable[454] = CALL_parser_tables___ParserTable___action_table_row451(variable[454])(variable[454]) /*ParserTable::action_table_row451*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[454]) /*AbstractArray::add*/;
     variable[455] = variable[0];
-    variable[455] = ((parser_tables___ParserTable___action_table_row452_t)CALL(variable[455],COLOR_parser_tables___ParserTable___action_table_row452))(variable[455]) /*ParserTable::action_table_row452*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[455]) /*AbstractArray::add*/;
+    variable[455] = CALL_parser_tables___ParserTable___action_table_row452(variable[455])(variable[455]) /*ParserTable::action_table_row452*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[455]) /*AbstractArray::add*/;
     variable[456] = variable[0];
-    variable[456] = ((parser_tables___ParserTable___action_table_row453_t)CALL(variable[456],COLOR_parser_tables___ParserTable___action_table_row453))(variable[456]) /*ParserTable::action_table_row453*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[456]) /*AbstractArray::add*/;
+    variable[456] = CALL_parser_tables___ParserTable___action_table_row453(variable[456])(variable[456]) /*ParserTable::action_table_row453*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[456]) /*AbstractArray::add*/;
     variable[457] = variable[0];
-    variable[457] = ((parser_tables___ParserTable___action_table_row454_t)CALL(variable[457],COLOR_parser_tables___ParserTable___action_table_row454))(variable[457]) /*ParserTable::action_table_row454*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[457]) /*AbstractArray::add*/;
+    variable[457] = CALL_parser_tables___ParserTable___action_table_row454(variable[457])(variable[457]) /*ParserTable::action_table_row454*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[457]) /*AbstractArray::add*/;
     variable[458] = variable[0];
-    variable[458] = ((parser_tables___ParserTable___action_table_row455_t)CALL(variable[458],COLOR_parser_tables___ParserTable___action_table_row455))(variable[458]) /*ParserTable::action_table_row455*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[458]) /*AbstractArray::add*/;
+    variable[458] = CALL_parser_tables___ParserTable___action_table_row455(variable[458])(variable[458]) /*ParserTable::action_table_row455*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[458]) /*AbstractArray::add*/;
     variable[459] = variable[0];
-    variable[459] = ((parser_tables___ParserTable___action_table_row456_t)CALL(variable[459],COLOR_parser_tables___ParserTable___action_table_row456))(variable[459]) /*ParserTable::action_table_row456*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[459]) /*AbstractArray::add*/;
+    variable[459] = CALL_parser_tables___ParserTable___action_table_row456(variable[459])(variable[459]) /*ParserTable::action_table_row456*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[459]) /*AbstractArray::add*/;
     variable[460] = variable[0];
-    variable[460] = ((parser_tables___ParserTable___action_table_row457_t)CALL(variable[460],COLOR_parser_tables___ParserTable___action_table_row457))(variable[460]) /*ParserTable::action_table_row457*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[460]) /*AbstractArray::add*/;
+    variable[460] = CALL_parser_tables___ParserTable___action_table_row457(variable[460])(variable[460]) /*ParserTable::action_table_row457*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[460]) /*AbstractArray::add*/;
     variable[461] = variable[0];
-    variable[461] = ((parser_tables___ParserTable___action_table_row458_t)CALL(variable[461],COLOR_parser_tables___ParserTable___action_table_row458))(variable[461]) /*ParserTable::action_table_row458*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[461]) /*AbstractArray::add*/;
+    variable[461] = CALL_parser_tables___ParserTable___action_table_row458(variable[461])(variable[461]) /*ParserTable::action_table_row458*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[461]) /*AbstractArray::add*/;
     variable[462] = variable[0];
-    variable[462] = ((parser_tables___ParserTable___action_table_row459_t)CALL(variable[462],COLOR_parser_tables___ParserTable___action_table_row459))(variable[462]) /*ParserTable::action_table_row459*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[462]) /*AbstractArray::add*/;
+    variable[462] = CALL_parser_tables___ParserTable___action_table_row459(variable[462])(variable[462]) /*ParserTable::action_table_row459*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[462]) /*AbstractArray::add*/;
     variable[463] = variable[0];
-    variable[463] = ((parser_tables___ParserTable___action_table_row460_t)CALL(variable[463],COLOR_parser_tables___ParserTable___action_table_row460))(variable[463]) /*ParserTable::action_table_row460*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[463]) /*AbstractArray::add*/;
+    variable[463] = CALL_parser_tables___ParserTable___action_table_row460(variable[463])(variable[463]) /*ParserTable::action_table_row460*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[463]) /*AbstractArray::add*/;
     variable[464] = variable[0];
-    variable[464] = ((parser_tables___ParserTable___action_table_row461_t)CALL(variable[464],COLOR_parser_tables___ParserTable___action_table_row461))(variable[464]) /*ParserTable::action_table_row461*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[464]) /*AbstractArray::add*/;
+    variable[464] = CALL_parser_tables___ParserTable___action_table_row461(variable[464])(variable[464]) /*ParserTable::action_table_row461*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[464]) /*AbstractArray::add*/;
     variable[465] = variable[0];
-    variable[465] = ((parser_tables___ParserTable___action_table_row462_t)CALL(variable[465],COLOR_parser_tables___ParserTable___action_table_row462))(variable[465]) /*ParserTable::action_table_row462*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[465]) /*AbstractArray::add*/;
+    variable[465] = CALL_parser_tables___ParserTable___action_table_row462(variable[465])(variable[465]) /*ParserTable::action_table_row462*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[465]) /*AbstractArray::add*/;
     variable[466] = variable[0];
-    variable[466] = ((parser_tables___ParserTable___action_table_row463_t)CALL(variable[466],COLOR_parser_tables___ParserTable___action_table_row463))(variable[466]) /*ParserTable::action_table_row463*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[466]) /*AbstractArray::add*/;
+    variable[466] = CALL_parser_tables___ParserTable___action_table_row463(variable[466])(variable[466]) /*ParserTable::action_table_row463*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[466]) /*AbstractArray::add*/;
     variable[467] = variable[0];
-    variable[467] = ((parser_tables___ParserTable___action_table_row464_t)CALL(variable[467],COLOR_parser_tables___ParserTable___action_table_row464))(variable[467]) /*ParserTable::action_table_row464*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[467]) /*AbstractArray::add*/;
+    variable[467] = CALL_parser_tables___ParserTable___action_table_row464(variable[467])(variable[467]) /*ParserTable::action_table_row464*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[467]) /*AbstractArray::add*/;
     variable[468] = variable[0];
-    variable[468] = ((parser_tables___ParserTable___action_table_row465_t)CALL(variable[468],COLOR_parser_tables___ParserTable___action_table_row465))(variable[468]) /*ParserTable::action_table_row465*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[468]) /*AbstractArray::add*/;
+    variable[468] = CALL_parser_tables___ParserTable___action_table_row465(variable[468])(variable[468]) /*ParserTable::action_table_row465*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[468]) /*AbstractArray::add*/;
     variable[469] = variable[0];
-    variable[469] = ((parser_tables___ParserTable___action_table_row466_t)CALL(variable[469],COLOR_parser_tables___ParserTable___action_table_row466))(variable[469]) /*ParserTable::action_table_row466*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[469]) /*AbstractArray::add*/;
+    variable[469] = CALL_parser_tables___ParserTable___action_table_row466(variable[469])(variable[469]) /*ParserTable::action_table_row466*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[469]) /*AbstractArray::add*/;
     variable[470] = variable[0];
-    variable[470] = ((parser_tables___ParserTable___action_table_row467_t)CALL(variable[470],COLOR_parser_tables___ParserTable___action_table_row467))(variable[470]) /*ParserTable::action_table_row467*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[470]) /*AbstractArray::add*/;
+    variable[470] = CALL_parser_tables___ParserTable___action_table_row467(variable[470])(variable[470]) /*ParserTable::action_table_row467*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[470]) /*AbstractArray::add*/;
     variable[471] = variable[0];
-    variable[471] = ((parser_tables___ParserTable___action_table_row468_t)CALL(variable[471],COLOR_parser_tables___ParserTable___action_table_row468))(variable[471]) /*ParserTable::action_table_row468*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[471]) /*AbstractArray::add*/;
+    variable[471] = CALL_parser_tables___ParserTable___action_table_row468(variable[471])(variable[471]) /*ParserTable::action_table_row468*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[471]) /*AbstractArray::add*/;
     variable[472] = variable[0];
-    variable[472] = ((parser_tables___ParserTable___action_table_row469_t)CALL(variable[472],COLOR_parser_tables___ParserTable___action_table_row469))(variable[472]) /*ParserTable::action_table_row469*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[472]) /*AbstractArray::add*/;
+    variable[472] = CALL_parser_tables___ParserTable___action_table_row469(variable[472])(variable[472]) /*ParserTable::action_table_row469*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[472]) /*AbstractArray::add*/;
     variable[473] = variable[0];
-    variable[473] = ((parser_tables___ParserTable___action_table_row470_t)CALL(variable[473],COLOR_parser_tables___ParserTable___action_table_row470))(variable[473]) /*ParserTable::action_table_row470*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[473]) /*AbstractArray::add*/;
+    variable[473] = CALL_parser_tables___ParserTable___action_table_row470(variable[473])(variable[473]) /*ParserTable::action_table_row470*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[473]) /*AbstractArray::add*/;
     variable[474] = variable[0];
-    variable[474] = ((parser_tables___ParserTable___action_table_row471_t)CALL(variable[474],COLOR_parser_tables___ParserTable___action_table_row471))(variable[474]) /*ParserTable::action_table_row471*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[474]) /*AbstractArray::add*/;
+    variable[474] = CALL_parser_tables___ParserTable___action_table_row471(variable[474])(variable[474]) /*ParserTable::action_table_row471*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[474]) /*AbstractArray::add*/;
     variable[475] = variable[0];
-    variable[475] = ((parser_tables___ParserTable___action_table_row472_t)CALL(variable[475],COLOR_parser_tables___ParserTable___action_table_row472))(variable[475]) /*ParserTable::action_table_row472*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[475]) /*AbstractArray::add*/;
+    variable[475] = CALL_parser_tables___ParserTable___action_table_row472(variable[475])(variable[475]) /*ParserTable::action_table_row472*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[475]) /*AbstractArray::add*/;
     variable[476] = variable[0];
-    variable[476] = ((parser_tables___ParserTable___action_table_row473_t)CALL(variable[476],COLOR_parser_tables___ParserTable___action_table_row473))(variable[476]) /*ParserTable::action_table_row473*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[476]) /*AbstractArray::add*/;
+    variable[476] = CALL_parser_tables___ParserTable___action_table_row473(variable[476])(variable[476]) /*ParserTable::action_table_row473*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[476]) /*AbstractArray::add*/;
     variable[477] = variable[0];
-    variable[477] = ((parser_tables___ParserTable___action_table_row474_t)CALL(variable[477],COLOR_parser_tables___ParserTable___action_table_row474))(variable[477]) /*ParserTable::action_table_row474*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[477]) /*AbstractArray::add*/;
+    variable[477] = CALL_parser_tables___ParserTable___action_table_row474(variable[477])(variable[477]) /*ParserTable::action_table_row474*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[477]) /*AbstractArray::add*/;
     variable[478] = variable[0];
-    variable[478] = ((parser_tables___ParserTable___action_table_row475_t)CALL(variable[478],COLOR_parser_tables___ParserTable___action_table_row475))(variable[478]) /*ParserTable::action_table_row475*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[478]) /*AbstractArray::add*/;
+    variable[478] = CALL_parser_tables___ParserTable___action_table_row475(variable[478])(variable[478]) /*ParserTable::action_table_row475*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[478]) /*AbstractArray::add*/;
     variable[479] = variable[0];
-    variable[479] = ((parser_tables___ParserTable___action_table_row476_t)CALL(variable[479],COLOR_parser_tables___ParserTable___action_table_row476))(variable[479]) /*ParserTable::action_table_row476*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[479]) /*AbstractArray::add*/;
+    variable[479] = CALL_parser_tables___ParserTable___action_table_row476(variable[479])(variable[479]) /*ParserTable::action_table_row476*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[479]) /*AbstractArray::add*/;
     variable[480] = variable[0];
-    variable[480] = ((parser_tables___ParserTable___action_table_row477_t)CALL(variable[480],COLOR_parser_tables___ParserTable___action_table_row477))(variable[480]) /*ParserTable::action_table_row477*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[480]) /*AbstractArray::add*/;
+    variable[480] = CALL_parser_tables___ParserTable___action_table_row477(variable[480])(variable[480]) /*ParserTable::action_table_row477*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[480]) /*AbstractArray::add*/;
     variable[481] = variable[0];
-    variable[481] = ((parser_tables___ParserTable___action_table_row478_t)CALL(variable[481],COLOR_parser_tables___ParserTable___action_table_row478))(variable[481]) /*ParserTable::action_table_row478*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[481]) /*AbstractArray::add*/;
+    variable[481] = CALL_parser_tables___ParserTable___action_table_row478(variable[481])(variable[481]) /*ParserTable::action_table_row478*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[481]) /*AbstractArray::add*/;
     variable[482] = variable[0];
-    variable[482] = ((parser_tables___ParserTable___action_table_row479_t)CALL(variable[482],COLOR_parser_tables___ParserTable___action_table_row479))(variable[482]) /*ParserTable::action_table_row479*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[482]) /*AbstractArray::add*/;
+    variable[482] = CALL_parser_tables___ParserTable___action_table_row479(variable[482])(variable[482]) /*ParserTable::action_table_row479*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[482]) /*AbstractArray::add*/;
     variable[483] = variable[0];
-    variable[483] = ((parser_tables___ParserTable___action_table_row480_t)CALL(variable[483],COLOR_parser_tables___ParserTable___action_table_row480))(variable[483]) /*ParserTable::action_table_row480*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[483]) /*AbstractArray::add*/;
+    variable[483] = CALL_parser_tables___ParserTable___action_table_row480(variable[483])(variable[483]) /*ParserTable::action_table_row480*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[483]) /*AbstractArray::add*/;
     variable[484] = variable[0];
-    variable[484] = ((parser_tables___ParserTable___action_table_row481_t)CALL(variable[484],COLOR_parser_tables___ParserTable___action_table_row481))(variable[484]) /*ParserTable::action_table_row481*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[484]) /*AbstractArray::add*/;
+    variable[484] = CALL_parser_tables___ParserTable___action_table_row481(variable[484])(variable[484]) /*ParserTable::action_table_row481*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[484]) /*AbstractArray::add*/;
     variable[485] = variable[0];
-    variable[485] = ((parser_tables___ParserTable___action_table_row482_t)CALL(variable[485],COLOR_parser_tables___ParserTable___action_table_row482))(variable[485]) /*ParserTable::action_table_row482*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[485]) /*AbstractArray::add*/;
+    variable[485] = CALL_parser_tables___ParserTable___action_table_row482(variable[485])(variable[485]) /*ParserTable::action_table_row482*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[485]) /*AbstractArray::add*/;
     variable[486] = variable[0];
-    variable[486] = ((parser_tables___ParserTable___action_table_row483_t)CALL(variable[486],COLOR_parser_tables___ParserTable___action_table_row483))(variable[486]) /*ParserTable::action_table_row483*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[486]) /*AbstractArray::add*/;
+    variable[486] = CALL_parser_tables___ParserTable___action_table_row483(variable[486])(variable[486]) /*ParserTable::action_table_row483*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[486]) /*AbstractArray::add*/;
     variable[487] = variable[0];
-    variable[487] = ((parser_tables___ParserTable___action_table_row484_t)CALL(variable[487],COLOR_parser_tables___ParserTable___action_table_row484))(variable[487]) /*ParserTable::action_table_row484*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[487]) /*AbstractArray::add*/;
+    variable[487] = CALL_parser_tables___ParserTable___action_table_row484(variable[487])(variable[487]) /*ParserTable::action_table_row484*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[487]) /*AbstractArray::add*/;
     variable[488] = variable[0];
-    variable[488] = ((parser_tables___ParserTable___action_table_row485_t)CALL(variable[488],COLOR_parser_tables___ParserTable___action_table_row485))(variable[488]) /*ParserTable::action_table_row485*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[488]) /*AbstractArray::add*/;
+    variable[488] = CALL_parser_tables___ParserTable___action_table_row485(variable[488])(variable[488]) /*ParserTable::action_table_row485*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[488]) /*AbstractArray::add*/;
     variable[489] = variable[0];
-    variable[489] = ((parser_tables___ParserTable___action_table_row486_t)CALL(variable[489],COLOR_parser_tables___ParserTable___action_table_row486))(variable[489]) /*ParserTable::action_table_row486*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[489]) /*AbstractArray::add*/;
+    variable[489] = CALL_parser_tables___ParserTable___action_table_row486(variable[489])(variable[489]) /*ParserTable::action_table_row486*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[489]) /*AbstractArray::add*/;
     variable[490] = variable[0];
-    variable[490] = ((parser_tables___ParserTable___action_table_row487_t)CALL(variable[490],COLOR_parser_tables___ParserTable___action_table_row487))(variable[490]) /*ParserTable::action_table_row487*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[490]) /*AbstractArray::add*/;
+    variable[490] = CALL_parser_tables___ParserTable___action_table_row487(variable[490])(variable[490]) /*ParserTable::action_table_row487*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[490]) /*AbstractArray::add*/;
     variable[491] = variable[0];
-    variable[491] = ((parser_tables___ParserTable___action_table_row488_t)CALL(variable[491],COLOR_parser_tables___ParserTable___action_table_row488))(variable[491]) /*ParserTable::action_table_row488*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[491]) /*AbstractArray::add*/;
+    variable[491] = CALL_parser_tables___ParserTable___action_table_row488(variable[491])(variable[491]) /*ParserTable::action_table_row488*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[491]) /*AbstractArray::add*/;
     variable[492] = variable[0];
-    variable[492] = ((parser_tables___ParserTable___action_table_row489_t)CALL(variable[492],COLOR_parser_tables___ParserTable___action_table_row489))(variable[492]) /*ParserTable::action_table_row489*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[492]) /*AbstractArray::add*/;
+    variable[492] = CALL_parser_tables___ParserTable___action_table_row489(variable[492])(variable[492]) /*ParserTable::action_table_row489*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[492]) /*AbstractArray::add*/;
     variable[493] = variable[0];
-    variable[493] = ((parser_tables___ParserTable___action_table_row490_t)CALL(variable[493],COLOR_parser_tables___ParserTable___action_table_row490))(variable[493]) /*ParserTable::action_table_row490*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[493]) /*AbstractArray::add*/;
+    variable[493] = CALL_parser_tables___ParserTable___action_table_row490(variable[493])(variable[493]) /*ParserTable::action_table_row490*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[493]) /*AbstractArray::add*/;
     variable[494] = variable[0];
-    variable[494] = ((parser_tables___ParserTable___action_table_row491_t)CALL(variable[494],COLOR_parser_tables___ParserTable___action_table_row491))(variable[494]) /*ParserTable::action_table_row491*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[494]) /*AbstractArray::add*/;
+    variable[494] = CALL_parser_tables___ParserTable___action_table_row491(variable[494])(variable[494]) /*ParserTable::action_table_row491*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[494]) /*AbstractArray::add*/;
     variable[495] = variable[0];
-    variable[495] = ((parser_tables___ParserTable___action_table_row492_t)CALL(variable[495],COLOR_parser_tables___ParserTable___action_table_row492))(variable[495]) /*ParserTable::action_table_row492*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[495]) /*AbstractArray::add*/;
+    variable[495] = CALL_parser_tables___ParserTable___action_table_row492(variable[495])(variable[495]) /*ParserTable::action_table_row492*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[495]) /*AbstractArray::add*/;
     variable[496] = variable[0];
-    variable[496] = ((parser_tables___ParserTable___action_table_row493_t)CALL(variable[496],COLOR_parser_tables___ParserTable___action_table_row493))(variable[496]) /*ParserTable::action_table_row493*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[496]) /*AbstractArray::add*/;
+    variable[496] = CALL_parser_tables___ParserTable___action_table_row493(variable[496])(variable[496]) /*ParserTable::action_table_row493*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[496]) /*AbstractArray::add*/;
     variable[497] = variable[0];
-    variable[497] = ((parser_tables___ParserTable___action_table_row494_t)CALL(variable[497],COLOR_parser_tables___ParserTable___action_table_row494))(variable[497]) /*ParserTable::action_table_row494*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[497]) /*AbstractArray::add*/;
+    variable[497] = CALL_parser_tables___ParserTable___action_table_row494(variable[497])(variable[497]) /*ParserTable::action_table_row494*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[497]) /*AbstractArray::add*/;
     variable[498] = variable[0];
-    variable[498] = ((parser_tables___ParserTable___action_table_row495_t)CALL(variable[498],COLOR_parser_tables___ParserTable___action_table_row495))(variable[498]) /*ParserTable::action_table_row495*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[498]) /*AbstractArray::add*/;
+    variable[498] = CALL_parser_tables___ParserTable___action_table_row495(variable[498])(variable[498]) /*ParserTable::action_table_row495*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[498]) /*AbstractArray::add*/;
     variable[499] = variable[0];
-    variable[499] = ((parser_tables___ParserTable___action_table_row496_t)CALL(variable[499],COLOR_parser_tables___ParserTable___action_table_row496))(variable[499]) /*ParserTable::action_table_row496*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[499]) /*AbstractArray::add*/;
+    variable[499] = CALL_parser_tables___ParserTable___action_table_row496(variable[499])(variable[499]) /*ParserTable::action_table_row496*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[499]) /*AbstractArray::add*/;
     variable[500] = variable[0];
-    variable[500] = ((parser_tables___ParserTable___action_table_row497_t)CALL(variable[500],COLOR_parser_tables___ParserTable___action_table_row497))(variable[500]) /*ParserTable::action_table_row497*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[500]) /*AbstractArray::add*/;
+    variable[500] = CALL_parser_tables___ParserTable___action_table_row497(variable[500])(variable[500]) /*ParserTable::action_table_row497*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[500]) /*AbstractArray::add*/;
     variable[501] = variable[0];
-    variable[501] = ((parser_tables___ParserTable___action_table_row498_t)CALL(variable[501],COLOR_parser_tables___ParserTable___action_table_row498))(variable[501]) /*ParserTable::action_table_row498*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[501]) /*AbstractArray::add*/;
+    variable[501] = CALL_parser_tables___ParserTable___action_table_row498(variable[501])(variable[501]) /*ParserTable::action_table_row498*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[501]) /*AbstractArray::add*/;
     variable[502] = variable[0];
-    variable[502] = ((parser_tables___ParserTable___action_table_row499_t)CALL(variable[502],COLOR_parser_tables___ParserTable___action_table_row499))(variable[502]) /*ParserTable::action_table_row499*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[502]) /*AbstractArray::add*/;
+    variable[502] = CALL_parser_tables___ParserTable___action_table_row499(variable[502])(variable[502]) /*ParserTable::action_table_row499*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[502]) /*AbstractArray::add*/;
     variable[503] = variable[0];
-    variable[503] = ((parser_tables___ParserTable___action_table_row500_t)CALL(variable[503],COLOR_parser_tables___ParserTable___action_table_row500))(variable[503]) /*ParserTable::action_table_row500*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[503]) /*AbstractArray::add*/;
+    variable[503] = CALL_parser_tables___ParserTable___action_table_row500(variable[503])(variable[503]) /*ParserTable::action_table_row500*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[503]) /*AbstractArray::add*/;
     variable[504] = variable[0];
-    variable[504] = ((parser_tables___ParserTable___action_table_row501_t)CALL(variable[504],COLOR_parser_tables___ParserTable___action_table_row501))(variable[504]) /*ParserTable::action_table_row501*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[504]) /*AbstractArray::add*/;
+    variable[504] = CALL_parser_tables___ParserTable___action_table_row501(variable[504])(variable[504]) /*ParserTable::action_table_row501*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[504]) /*AbstractArray::add*/;
     variable[505] = variable[0];
-    variable[505] = ((parser_tables___ParserTable___action_table_row502_t)CALL(variable[505],COLOR_parser_tables___ParserTable___action_table_row502))(variable[505]) /*ParserTable::action_table_row502*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[505]) /*AbstractArray::add*/;
+    variable[505] = CALL_parser_tables___ParserTable___action_table_row502(variable[505])(variable[505]) /*ParserTable::action_table_row502*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[505]) /*AbstractArray::add*/;
     variable[506] = variable[0];
-    variable[506] = ((parser_tables___ParserTable___action_table_row503_t)CALL(variable[506],COLOR_parser_tables___ParserTable___action_table_row503))(variable[506]) /*ParserTable::action_table_row503*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[506]) /*AbstractArray::add*/;
+    variable[506] = CALL_parser_tables___ParserTable___action_table_row503(variable[506])(variable[506]) /*ParserTable::action_table_row503*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[506]) /*AbstractArray::add*/;
     variable[507] = variable[0];
-    variable[507] = ((parser_tables___ParserTable___action_table_row504_t)CALL(variable[507],COLOR_parser_tables___ParserTable___action_table_row504))(variable[507]) /*ParserTable::action_table_row504*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[507]) /*AbstractArray::add*/;
+    variable[507] = CALL_parser_tables___ParserTable___action_table_row504(variable[507])(variable[507]) /*ParserTable::action_table_row504*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[507]) /*AbstractArray::add*/;
     variable[508] = variable[0];
-    variable[508] = ((parser_tables___ParserTable___action_table_row505_t)CALL(variable[508],COLOR_parser_tables___ParserTable___action_table_row505))(variable[508]) /*ParserTable::action_table_row505*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[508]) /*AbstractArray::add*/;
+    variable[508] = CALL_parser_tables___ParserTable___action_table_row505(variable[508])(variable[508]) /*ParserTable::action_table_row505*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[508]) /*AbstractArray::add*/;
     variable[509] = variable[0];
-    variable[509] = ((parser_tables___ParserTable___action_table_row506_t)CALL(variable[509],COLOR_parser_tables___ParserTable___action_table_row506))(variable[509]) /*ParserTable::action_table_row506*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[509]) /*AbstractArray::add*/;
+    variable[509] = CALL_parser_tables___ParserTable___action_table_row506(variable[509])(variable[509]) /*ParserTable::action_table_row506*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[509]) /*AbstractArray::add*/;
     variable[510] = variable[0];
-    variable[510] = ((parser_tables___ParserTable___action_table_row507_t)CALL(variable[510],COLOR_parser_tables___ParserTable___action_table_row507))(variable[510]) /*ParserTable::action_table_row507*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[510]) /*AbstractArray::add*/;
+    variable[510] = CALL_parser_tables___ParserTable___action_table_row507(variable[510])(variable[510]) /*ParserTable::action_table_row507*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[510]) /*AbstractArray::add*/;
     variable[511] = variable[0];
-    variable[511] = ((parser_tables___ParserTable___action_table_row508_t)CALL(variable[511],COLOR_parser_tables___ParserTable___action_table_row508))(variable[511]) /*ParserTable::action_table_row508*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[511]) /*AbstractArray::add*/;
+    variable[511] = CALL_parser_tables___ParserTable___action_table_row508(variable[511])(variable[511]) /*ParserTable::action_table_row508*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[511]) /*AbstractArray::add*/;
     variable[512] = variable[0];
-    variable[512] = ((parser_tables___ParserTable___action_table_row509_t)CALL(variable[512],COLOR_parser_tables___ParserTable___action_table_row509))(variable[512]) /*ParserTable::action_table_row509*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[512]) /*AbstractArray::add*/;
+    variable[512] = CALL_parser_tables___ParserTable___action_table_row509(variable[512])(variable[512]) /*ParserTable::action_table_row509*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[512]) /*AbstractArray::add*/;
     variable[513] = variable[0];
-    variable[513] = ((parser_tables___ParserTable___action_table_row510_t)CALL(variable[513],COLOR_parser_tables___ParserTable___action_table_row510))(variable[513]) /*ParserTable::action_table_row510*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[513]) /*AbstractArray::add*/;
+    variable[513] = CALL_parser_tables___ParserTable___action_table_row510(variable[513])(variable[513]) /*ParserTable::action_table_row510*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[513]) /*AbstractArray::add*/;
     variable[514] = variable[0];
-    variable[514] = ((parser_tables___ParserTable___action_table_row511_t)CALL(variable[514],COLOR_parser_tables___ParserTable___action_table_row511))(variable[514]) /*ParserTable::action_table_row511*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[514]) /*AbstractArray::add*/;
+    variable[514] = CALL_parser_tables___ParserTable___action_table_row511(variable[514])(variable[514]) /*ParserTable::action_table_row511*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[514]) /*AbstractArray::add*/;
     variable[515] = variable[0];
-    variable[515] = ((parser_tables___ParserTable___action_table_row512_t)CALL(variable[515],COLOR_parser_tables___ParserTable___action_table_row512))(variable[515]) /*ParserTable::action_table_row512*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[515]) /*AbstractArray::add*/;
+    variable[515] = CALL_parser_tables___ParserTable___action_table_row512(variable[515])(variable[515]) /*ParserTable::action_table_row512*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[515]) /*AbstractArray::add*/;
     variable[516] = variable[0];
-    variable[516] = ((parser_tables___ParserTable___action_table_row513_t)CALL(variable[516],COLOR_parser_tables___ParserTable___action_table_row513))(variable[516]) /*ParserTable::action_table_row513*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[516]) /*AbstractArray::add*/;
+    variable[516] = CALL_parser_tables___ParserTable___action_table_row513(variable[516])(variable[516]) /*ParserTable::action_table_row513*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[516]) /*AbstractArray::add*/;
     variable[517] = variable[0];
-    variable[517] = ((parser_tables___ParserTable___action_table_row514_t)CALL(variable[517],COLOR_parser_tables___ParserTable___action_table_row514))(variable[517]) /*ParserTable::action_table_row514*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[517]) /*AbstractArray::add*/;
+    variable[517] = CALL_parser_tables___ParserTable___action_table_row514(variable[517])(variable[517]) /*ParserTable::action_table_row514*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[517]) /*AbstractArray::add*/;
     variable[518] = variable[0];
-    variable[518] = ((parser_tables___ParserTable___action_table_row515_t)CALL(variable[518],COLOR_parser_tables___ParserTable___action_table_row515))(variable[518]) /*ParserTable::action_table_row515*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[518]) /*AbstractArray::add*/;
+    variable[518] = CALL_parser_tables___ParserTable___action_table_row515(variable[518])(variable[518]) /*ParserTable::action_table_row515*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[518]) /*AbstractArray::add*/;
     variable[519] = variable[0];
-    variable[519] = ((parser_tables___ParserTable___action_table_row516_t)CALL(variable[519],COLOR_parser_tables___ParserTable___action_table_row516))(variable[519]) /*ParserTable::action_table_row516*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[519]) /*AbstractArray::add*/;
+    variable[519] = CALL_parser_tables___ParserTable___action_table_row516(variable[519])(variable[519]) /*ParserTable::action_table_row516*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[519]) /*AbstractArray::add*/;
     variable[520] = variable[0];
-    variable[520] = ((parser_tables___ParserTable___action_table_row517_t)CALL(variable[520],COLOR_parser_tables___ParserTable___action_table_row517))(variable[520]) /*ParserTable::action_table_row517*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[520]) /*AbstractArray::add*/;
+    variable[520] = CALL_parser_tables___ParserTable___action_table_row517(variable[520])(variable[520]) /*ParserTable::action_table_row517*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[520]) /*AbstractArray::add*/;
     variable[521] = variable[0];
-    variable[521] = ((parser_tables___ParserTable___action_table_row518_t)CALL(variable[521],COLOR_parser_tables___ParserTable___action_table_row518))(variable[521]) /*ParserTable::action_table_row518*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[521]) /*AbstractArray::add*/;
+    variable[521] = CALL_parser_tables___ParserTable___action_table_row518(variable[521])(variable[521]) /*ParserTable::action_table_row518*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[521]) /*AbstractArray::add*/;
     variable[522] = variable[0];
-    variable[522] = ((parser_tables___ParserTable___action_table_row519_t)CALL(variable[522],COLOR_parser_tables___ParserTable___action_table_row519))(variable[522]) /*ParserTable::action_table_row519*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[522]) /*AbstractArray::add*/;
+    variable[522] = CALL_parser_tables___ParserTable___action_table_row519(variable[522])(variable[522]) /*ParserTable::action_table_row519*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[522]) /*AbstractArray::add*/;
     variable[523] = variable[0];
-    variable[523] = ((parser_tables___ParserTable___action_table_row520_t)CALL(variable[523],COLOR_parser_tables___ParserTable___action_table_row520))(variable[523]) /*ParserTable::action_table_row520*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[523]) /*AbstractArray::add*/;
+    variable[523] = CALL_parser_tables___ParserTable___action_table_row520(variable[523])(variable[523]) /*ParserTable::action_table_row520*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[523]) /*AbstractArray::add*/;
     variable[524] = variable[0];
-    variable[524] = ((parser_tables___ParserTable___action_table_row521_t)CALL(variable[524],COLOR_parser_tables___ParserTable___action_table_row521))(variable[524]) /*ParserTable::action_table_row521*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[524]) /*AbstractArray::add*/;
+    variable[524] = CALL_parser_tables___ParserTable___action_table_row521(variable[524])(variable[524]) /*ParserTable::action_table_row521*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[524]) /*AbstractArray::add*/;
     variable[525] = variable[0];
-    variable[525] = ((parser_tables___ParserTable___action_table_row522_t)CALL(variable[525],COLOR_parser_tables___ParserTable___action_table_row522))(variable[525]) /*ParserTable::action_table_row522*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[525]) /*AbstractArray::add*/;
+    variable[525] = CALL_parser_tables___ParserTable___action_table_row522(variable[525])(variable[525]) /*ParserTable::action_table_row522*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[525]) /*AbstractArray::add*/;
     variable[526] = variable[0];
-    variable[526] = ((parser_tables___ParserTable___action_table_row523_t)CALL(variable[526],COLOR_parser_tables___ParserTable___action_table_row523))(variable[526]) /*ParserTable::action_table_row523*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[526]) /*AbstractArray::add*/;
+    variable[526] = CALL_parser_tables___ParserTable___action_table_row523(variable[526])(variable[526]) /*ParserTable::action_table_row523*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[526]) /*AbstractArray::add*/;
     variable[527] = variable[0];
-    variable[527] = ((parser_tables___ParserTable___action_table_row524_t)CALL(variable[527],COLOR_parser_tables___ParserTable___action_table_row524))(variable[527]) /*ParserTable::action_table_row524*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[527]) /*AbstractArray::add*/;
+    variable[527] = CALL_parser_tables___ParserTable___action_table_row524(variable[527])(variable[527]) /*ParserTable::action_table_row524*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[527]) /*AbstractArray::add*/;
     variable[528] = variable[0];
-    variable[528] = ((parser_tables___ParserTable___action_table_row525_t)CALL(variable[528],COLOR_parser_tables___ParserTable___action_table_row525))(variable[528]) /*ParserTable::action_table_row525*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[528]) /*AbstractArray::add*/;
+    variable[528] = CALL_parser_tables___ParserTable___action_table_row525(variable[528])(variable[528]) /*ParserTable::action_table_row525*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[528]) /*AbstractArray::add*/;
     variable[529] = variable[0];
-    variable[529] = ((parser_tables___ParserTable___action_table_row526_t)CALL(variable[529],COLOR_parser_tables___ParserTable___action_table_row526))(variable[529]) /*ParserTable::action_table_row526*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[529]) /*AbstractArray::add*/;
+    variable[529] = CALL_parser_tables___ParserTable___action_table_row526(variable[529])(variable[529]) /*ParserTable::action_table_row526*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[529]) /*AbstractArray::add*/;
     variable[530] = variable[0];
-    variable[530] = ((parser_tables___ParserTable___action_table_row527_t)CALL(variable[530],COLOR_parser_tables___ParserTable___action_table_row527))(variable[530]) /*ParserTable::action_table_row527*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[530]) /*AbstractArray::add*/;
+    variable[530] = CALL_parser_tables___ParserTable___action_table_row527(variable[530])(variable[530]) /*ParserTable::action_table_row527*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[530]) /*AbstractArray::add*/;
     variable[531] = variable[0];
-    variable[531] = ((parser_tables___ParserTable___action_table_row528_t)CALL(variable[531],COLOR_parser_tables___ParserTable___action_table_row528))(variable[531]) /*ParserTable::action_table_row528*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[531]) /*AbstractArray::add*/;
+    variable[531] = CALL_parser_tables___ParserTable___action_table_row528(variable[531])(variable[531]) /*ParserTable::action_table_row528*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[531]) /*AbstractArray::add*/;
     variable[532] = variable[0];
-    variable[532] = ((parser_tables___ParserTable___action_table_row529_t)CALL(variable[532],COLOR_parser_tables___ParserTable___action_table_row529))(variable[532]) /*ParserTable::action_table_row529*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[532]) /*AbstractArray::add*/;
+    variable[532] = CALL_parser_tables___ParserTable___action_table_row529(variable[532])(variable[532]) /*ParserTable::action_table_row529*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[532]) /*AbstractArray::add*/;
     variable[533] = variable[0];
-    variable[533] = ((parser_tables___ParserTable___action_table_row530_t)CALL(variable[533],COLOR_parser_tables___ParserTable___action_table_row530))(variable[533]) /*ParserTable::action_table_row530*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[533]) /*AbstractArray::add*/;
+    variable[533] = CALL_parser_tables___ParserTable___action_table_row530(variable[533])(variable[533]) /*ParserTable::action_table_row530*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[533]) /*AbstractArray::add*/;
     variable[534] = variable[0];
-    variable[534] = ((parser_tables___ParserTable___action_table_row531_t)CALL(variable[534],COLOR_parser_tables___ParserTable___action_table_row531))(variable[534]) /*ParserTable::action_table_row531*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[534]) /*AbstractArray::add*/;
+    variable[534] = CALL_parser_tables___ParserTable___action_table_row531(variable[534])(variable[534]) /*ParserTable::action_table_row531*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[534]) /*AbstractArray::add*/;
     variable[535] = variable[0];
-    variable[535] = ((parser_tables___ParserTable___action_table_row532_t)CALL(variable[535],COLOR_parser_tables___ParserTable___action_table_row532))(variable[535]) /*ParserTable::action_table_row532*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[535]) /*AbstractArray::add*/;
+    variable[535] = CALL_parser_tables___ParserTable___action_table_row532(variable[535])(variable[535]) /*ParserTable::action_table_row532*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[535]) /*AbstractArray::add*/;
     variable[536] = variable[0];
-    variable[536] = ((parser_tables___ParserTable___action_table_row533_t)CALL(variable[536],COLOR_parser_tables___ParserTable___action_table_row533))(variable[536]) /*ParserTable::action_table_row533*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[536]) /*AbstractArray::add*/;
+    variable[536] = CALL_parser_tables___ParserTable___action_table_row533(variable[536])(variable[536]) /*ParserTable::action_table_row533*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[536]) /*AbstractArray::add*/;
     variable[537] = variable[0];
-    variable[537] = ((parser_tables___ParserTable___action_table_row534_t)CALL(variable[537],COLOR_parser_tables___ParserTable___action_table_row534))(variable[537]) /*ParserTable::action_table_row534*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[537]) /*AbstractArray::add*/;
+    variable[537] = CALL_parser_tables___ParserTable___action_table_row534(variable[537])(variable[537]) /*ParserTable::action_table_row534*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[537]) /*AbstractArray::add*/;
     variable[538] = variable[0];
-    variable[538] = ((parser_tables___ParserTable___action_table_row535_t)CALL(variable[538],COLOR_parser_tables___ParserTable___action_table_row535))(variable[538]) /*ParserTable::action_table_row535*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[538]) /*AbstractArray::add*/;
+    variable[538] = CALL_parser_tables___ParserTable___action_table_row535(variable[538])(variable[538]) /*ParserTable::action_table_row535*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[538]) /*AbstractArray::add*/;
     variable[539] = variable[0];
-    variable[539] = ((parser_tables___ParserTable___action_table_row536_t)CALL(variable[539],COLOR_parser_tables___ParserTable___action_table_row536))(variable[539]) /*ParserTable::action_table_row536*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[539]) /*AbstractArray::add*/;
+    variable[539] = CALL_parser_tables___ParserTable___action_table_row536(variable[539])(variable[539]) /*ParserTable::action_table_row536*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[539]) /*AbstractArray::add*/;
     variable[540] = variable[0];
-    variable[540] = ((parser_tables___ParserTable___action_table_row537_t)CALL(variable[540],COLOR_parser_tables___ParserTable___action_table_row537))(variable[540]) /*ParserTable::action_table_row537*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[540]) /*AbstractArray::add*/;
+    variable[540] = CALL_parser_tables___ParserTable___action_table_row537(variable[540])(variable[540]) /*ParserTable::action_table_row537*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[540]) /*AbstractArray::add*/;
     variable[541] = variable[0];
-    variable[541] = ((parser_tables___ParserTable___action_table_row538_t)CALL(variable[541],COLOR_parser_tables___ParserTable___action_table_row538))(variable[541]) /*ParserTable::action_table_row538*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[541]) /*AbstractArray::add*/;
+    variable[541] = CALL_parser_tables___ParserTable___action_table_row538(variable[541])(variable[541]) /*ParserTable::action_table_row538*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[541]) /*AbstractArray::add*/;
     variable[542] = variable[0];
-    variable[542] = ((parser_tables___ParserTable___action_table_row539_t)CALL(variable[542],COLOR_parser_tables___ParserTable___action_table_row539))(variable[542]) /*ParserTable::action_table_row539*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[542]) /*AbstractArray::add*/;
+    variable[542] = CALL_parser_tables___ParserTable___action_table_row539(variable[542])(variable[542]) /*ParserTable::action_table_row539*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[542]) /*AbstractArray::add*/;
     variable[543] = variable[0];
-    variable[543] = ((parser_tables___ParserTable___action_table_row540_t)CALL(variable[543],COLOR_parser_tables___ParserTable___action_table_row540))(variable[543]) /*ParserTable::action_table_row540*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[543]) /*AbstractArray::add*/;
+    variable[543] = CALL_parser_tables___ParserTable___action_table_row540(variable[543])(variable[543]) /*ParserTable::action_table_row540*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[543]) /*AbstractArray::add*/;
     variable[544] = variable[0];
-    variable[544] = ((parser_tables___ParserTable___action_table_row541_t)CALL(variable[544],COLOR_parser_tables___ParserTable___action_table_row541))(variable[544]) /*ParserTable::action_table_row541*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[544]) /*AbstractArray::add*/;
+    variable[544] = CALL_parser_tables___ParserTable___action_table_row541(variable[544])(variable[544]) /*ParserTable::action_table_row541*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[544]) /*AbstractArray::add*/;
     variable[545] = variable[0];
-    variable[545] = ((parser_tables___ParserTable___action_table_row542_t)CALL(variable[545],COLOR_parser_tables___ParserTable___action_table_row542))(variable[545]) /*ParserTable::action_table_row542*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[545]) /*AbstractArray::add*/;
+    variable[545] = CALL_parser_tables___ParserTable___action_table_row542(variable[545])(variable[545]) /*ParserTable::action_table_row542*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[545]) /*AbstractArray::add*/;
     variable[546] = variable[0];
-    variable[546] = ((parser_tables___ParserTable___action_table_row543_t)CALL(variable[546],COLOR_parser_tables___ParserTable___action_table_row543))(variable[546]) /*ParserTable::action_table_row543*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[546]) /*AbstractArray::add*/;
+    variable[546] = CALL_parser_tables___ParserTable___action_table_row543(variable[546])(variable[546]) /*ParserTable::action_table_row543*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[546]) /*AbstractArray::add*/;
     variable[547] = variable[0];
-    variable[547] = ((parser_tables___ParserTable___action_table_row544_t)CALL(variable[547],COLOR_parser_tables___ParserTable___action_table_row544))(variable[547]) /*ParserTable::action_table_row544*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[547]) /*AbstractArray::add*/;
+    variable[547] = CALL_parser_tables___ParserTable___action_table_row544(variable[547])(variable[547]) /*ParserTable::action_table_row544*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[547]) /*AbstractArray::add*/;
     variable[548] = variable[0];
-    variable[548] = ((parser_tables___ParserTable___action_table_row545_t)CALL(variable[548],COLOR_parser_tables___ParserTable___action_table_row545))(variable[548]) /*ParserTable::action_table_row545*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[548]) /*AbstractArray::add*/;
+    variable[548] = CALL_parser_tables___ParserTable___action_table_row545(variable[548])(variable[548]) /*ParserTable::action_table_row545*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[548]) /*AbstractArray::add*/;
     variable[549] = variable[0];
-    variable[549] = ((parser_tables___ParserTable___action_table_row546_t)CALL(variable[549],COLOR_parser_tables___ParserTable___action_table_row546))(variable[549]) /*ParserTable::action_table_row546*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[549]) /*AbstractArray::add*/;
+    variable[549] = CALL_parser_tables___ParserTable___action_table_row546(variable[549])(variable[549]) /*ParserTable::action_table_row546*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[549]) /*AbstractArray::add*/;
     variable[550] = variable[0];
-    variable[550] = ((parser_tables___ParserTable___action_table_row547_t)CALL(variable[550],COLOR_parser_tables___ParserTable___action_table_row547))(variable[550]) /*ParserTable::action_table_row547*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[550]) /*AbstractArray::add*/;
+    variable[550] = CALL_parser_tables___ParserTable___action_table_row547(variable[550])(variable[550]) /*ParserTable::action_table_row547*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[550]) /*AbstractArray::add*/;
     variable[551] = variable[0];
-    variable[551] = ((parser_tables___ParserTable___action_table_row548_t)CALL(variable[551],COLOR_parser_tables___ParserTable___action_table_row548))(variable[551]) /*ParserTable::action_table_row548*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[551]) /*AbstractArray::add*/;
+    variable[551] = CALL_parser_tables___ParserTable___action_table_row548(variable[551])(variable[551]) /*ParserTable::action_table_row548*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[551]) /*AbstractArray::add*/;
     variable[552] = variable[0];
-    variable[552] = ((parser_tables___ParserTable___action_table_row549_t)CALL(variable[552],COLOR_parser_tables___ParserTable___action_table_row549))(variable[552]) /*ParserTable::action_table_row549*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[552]) /*AbstractArray::add*/;
+    variable[552] = CALL_parser_tables___ParserTable___action_table_row549(variable[552])(variable[552]) /*ParserTable::action_table_row549*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[552]) /*AbstractArray::add*/;
     variable[553] = variable[0];
-    variable[553] = ((parser_tables___ParserTable___action_table_row550_t)CALL(variable[553],COLOR_parser_tables___ParserTable___action_table_row550))(variable[553]) /*ParserTable::action_table_row550*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[553]) /*AbstractArray::add*/;
+    variable[553] = CALL_parser_tables___ParserTable___action_table_row550(variable[553])(variable[553]) /*ParserTable::action_table_row550*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[553]) /*AbstractArray::add*/;
     variable[554] = variable[0];
-    variable[554] = ((parser_tables___ParserTable___action_table_row551_t)CALL(variable[554],COLOR_parser_tables___ParserTable___action_table_row551))(variable[554]) /*ParserTable::action_table_row551*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[554]) /*AbstractArray::add*/;
+    variable[554] = CALL_parser_tables___ParserTable___action_table_row551(variable[554])(variable[554]) /*ParserTable::action_table_row551*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[554]) /*AbstractArray::add*/;
     variable[555] = variable[0];
-    variable[555] = ((parser_tables___ParserTable___action_table_row552_t)CALL(variable[555],COLOR_parser_tables___ParserTable___action_table_row552))(variable[555]) /*ParserTable::action_table_row552*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[555]) /*AbstractArray::add*/;
+    variable[555] = CALL_parser_tables___ParserTable___action_table_row552(variable[555])(variable[555]) /*ParserTable::action_table_row552*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[555]) /*AbstractArray::add*/;
     variable[556] = variable[0];
-    variable[556] = ((parser_tables___ParserTable___action_table_row553_t)CALL(variable[556],COLOR_parser_tables___ParserTable___action_table_row553))(variable[556]) /*ParserTable::action_table_row553*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[556]) /*AbstractArray::add*/;
+    variable[556] = CALL_parser_tables___ParserTable___action_table_row553(variable[556])(variable[556]) /*ParserTable::action_table_row553*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[556]) /*AbstractArray::add*/;
     variable[557] = variable[0];
-    variable[557] = ((parser_tables___ParserTable___action_table_row554_t)CALL(variable[557],COLOR_parser_tables___ParserTable___action_table_row554))(variable[557]) /*ParserTable::action_table_row554*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[557]) /*AbstractArray::add*/;
+    variable[557] = CALL_parser_tables___ParserTable___action_table_row554(variable[557])(variable[557]) /*ParserTable::action_table_row554*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[557]) /*AbstractArray::add*/;
     variable[558] = variable[0];
-    variable[558] = ((parser_tables___ParserTable___action_table_row555_t)CALL(variable[558],COLOR_parser_tables___ParserTable___action_table_row555))(variable[558]) /*ParserTable::action_table_row555*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[558]) /*AbstractArray::add*/;
+    variable[558] = CALL_parser_tables___ParserTable___action_table_row555(variable[558])(variable[558]) /*ParserTable::action_table_row555*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[558]) /*AbstractArray::add*/;
     variable[559] = variable[0];
-    variable[559] = ((parser_tables___ParserTable___action_table_row556_t)CALL(variable[559],COLOR_parser_tables___ParserTable___action_table_row556))(variable[559]) /*ParserTable::action_table_row556*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[559]) /*AbstractArray::add*/;
+    variable[559] = CALL_parser_tables___ParserTable___action_table_row556(variable[559])(variable[559]) /*ParserTable::action_table_row556*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[559]) /*AbstractArray::add*/;
     variable[560] = variable[0];
-    variable[560] = ((parser_tables___ParserTable___action_table_row557_t)CALL(variable[560],COLOR_parser_tables___ParserTable___action_table_row557))(variable[560]) /*ParserTable::action_table_row557*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[560]) /*AbstractArray::add*/;
+    variable[560] = CALL_parser_tables___ParserTable___action_table_row557(variable[560])(variable[560]) /*ParserTable::action_table_row557*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[560]) /*AbstractArray::add*/;
     variable[561] = variable[0];
-    variable[561] = ((parser_tables___ParserTable___action_table_row558_t)CALL(variable[561],COLOR_parser_tables___ParserTable___action_table_row558))(variable[561]) /*ParserTable::action_table_row558*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[561]) /*AbstractArray::add*/;
+    variable[561] = CALL_parser_tables___ParserTable___action_table_row558(variable[561])(variable[561]) /*ParserTable::action_table_row558*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[561]) /*AbstractArray::add*/;
     variable[562] = variable[0];
-    variable[562] = ((parser_tables___ParserTable___action_table_row559_t)CALL(variable[562],COLOR_parser_tables___ParserTable___action_table_row559))(variable[562]) /*ParserTable::action_table_row559*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[562]) /*AbstractArray::add*/;
+    variable[562] = CALL_parser_tables___ParserTable___action_table_row559(variable[562])(variable[562]) /*ParserTable::action_table_row559*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[562]) /*AbstractArray::add*/;
     variable[563] = variable[0];
-    variable[563] = ((parser_tables___ParserTable___action_table_row560_t)CALL(variable[563],COLOR_parser_tables___ParserTable___action_table_row560))(variable[563]) /*ParserTable::action_table_row560*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[563]) /*AbstractArray::add*/;
+    variable[563] = CALL_parser_tables___ParserTable___action_table_row560(variable[563])(variable[563]) /*ParserTable::action_table_row560*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[563]) /*AbstractArray::add*/;
     variable[564] = variable[0];
-    variable[564] = ((parser_tables___ParserTable___action_table_row561_t)CALL(variable[564],COLOR_parser_tables___ParserTable___action_table_row561))(variable[564]) /*ParserTable::action_table_row561*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[564]) /*AbstractArray::add*/;
+    variable[564] = CALL_parser_tables___ParserTable___action_table_row561(variable[564])(variable[564]) /*ParserTable::action_table_row561*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[564]) /*AbstractArray::add*/;
     variable[565] = variable[0];
-    variable[565] = ((parser_tables___ParserTable___action_table_row562_t)CALL(variable[565],COLOR_parser_tables___ParserTable___action_table_row562))(variable[565]) /*ParserTable::action_table_row562*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[565]) /*AbstractArray::add*/;
+    variable[565] = CALL_parser_tables___ParserTable___action_table_row562(variable[565])(variable[565]) /*ParserTable::action_table_row562*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[565]) /*AbstractArray::add*/;
     variable[566] = variable[0];
-    variable[566] = ((parser_tables___ParserTable___action_table_row563_t)CALL(variable[566],COLOR_parser_tables___ParserTable___action_table_row563))(variable[566]) /*ParserTable::action_table_row563*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[566]) /*AbstractArray::add*/;
+    variable[566] = CALL_parser_tables___ParserTable___action_table_row563(variable[566])(variable[566]) /*ParserTable::action_table_row563*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[566]) /*AbstractArray::add*/;
     variable[567] = variable[0];
-    variable[567] = ((parser_tables___ParserTable___action_table_row564_t)CALL(variable[567],COLOR_parser_tables___ParserTable___action_table_row564))(variable[567]) /*ParserTable::action_table_row564*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[567]) /*AbstractArray::add*/;
+    variable[567] = CALL_parser_tables___ParserTable___action_table_row564(variable[567])(variable[567]) /*ParserTable::action_table_row564*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[567]) /*AbstractArray::add*/;
     variable[568] = variable[0];
-    variable[568] = ((parser_tables___ParserTable___action_table_row565_t)CALL(variable[568],COLOR_parser_tables___ParserTable___action_table_row565))(variable[568]) /*ParserTable::action_table_row565*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[568]) /*AbstractArray::add*/;
+    variable[568] = CALL_parser_tables___ParserTable___action_table_row565(variable[568])(variable[568]) /*ParserTable::action_table_row565*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[568]) /*AbstractArray::add*/;
     variable[569] = variable[0];
-    variable[569] = ((parser_tables___ParserTable___action_table_row566_t)CALL(variable[569],COLOR_parser_tables___ParserTable___action_table_row566))(variable[569]) /*ParserTable::action_table_row566*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[569]) /*AbstractArray::add*/;
+    variable[569] = CALL_parser_tables___ParserTable___action_table_row566(variable[569])(variable[569]) /*ParserTable::action_table_row566*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[569]) /*AbstractArray::add*/;
     variable[570] = variable[0];
-    variable[570] = ((parser_tables___ParserTable___action_table_row567_t)CALL(variable[570],COLOR_parser_tables___ParserTable___action_table_row567))(variable[570]) /*ParserTable::action_table_row567*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[570]) /*AbstractArray::add*/;
+    variable[570] = CALL_parser_tables___ParserTable___action_table_row567(variable[570])(variable[570]) /*ParserTable::action_table_row567*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[570]) /*AbstractArray::add*/;
     variable[571] = variable[0];
-    variable[571] = ((parser_tables___ParserTable___action_table_row568_t)CALL(variable[571],COLOR_parser_tables___ParserTable___action_table_row568))(variable[571]) /*ParserTable::action_table_row568*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[571]) /*AbstractArray::add*/;
+    variable[571] = CALL_parser_tables___ParserTable___action_table_row568(variable[571])(variable[571]) /*ParserTable::action_table_row568*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[571]) /*AbstractArray::add*/;
     variable[572] = variable[0];
-    variable[572] = ((parser_tables___ParserTable___action_table_row569_t)CALL(variable[572],COLOR_parser_tables___ParserTable___action_table_row569))(variable[572]) /*ParserTable::action_table_row569*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[572]) /*AbstractArray::add*/;
+    variable[572] = CALL_parser_tables___ParserTable___action_table_row569(variable[572])(variable[572]) /*ParserTable::action_table_row569*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[572]) /*AbstractArray::add*/;
     variable[573] = variable[0];
-    variable[573] = ((parser_tables___ParserTable___action_table_row570_t)CALL(variable[573],COLOR_parser_tables___ParserTable___action_table_row570))(variable[573]) /*ParserTable::action_table_row570*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[573]) /*AbstractArray::add*/;
+    variable[573] = CALL_parser_tables___ParserTable___action_table_row570(variable[573])(variable[573]) /*ParserTable::action_table_row570*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[573]) /*AbstractArray::add*/;
     variable[574] = variable[0];
-    variable[574] = ((parser_tables___ParserTable___action_table_row571_t)CALL(variable[574],COLOR_parser_tables___ParserTable___action_table_row571))(variable[574]) /*ParserTable::action_table_row571*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[574]) /*AbstractArray::add*/;
+    variable[574] = CALL_parser_tables___ParserTable___action_table_row571(variable[574])(variable[574]) /*ParserTable::action_table_row571*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[574]) /*AbstractArray::add*/;
     variable[575] = variable[0];
-    variable[575] = ((parser_tables___ParserTable___action_table_row572_t)CALL(variable[575],COLOR_parser_tables___ParserTable___action_table_row572))(variable[575]) /*ParserTable::action_table_row572*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[575]) /*AbstractArray::add*/;
+    variable[575] = CALL_parser_tables___ParserTable___action_table_row572(variable[575])(variable[575]) /*ParserTable::action_table_row572*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[575]) /*AbstractArray::add*/;
     variable[576] = variable[0];
-    variable[576] = ((parser_tables___ParserTable___action_table_row573_t)CALL(variable[576],COLOR_parser_tables___ParserTable___action_table_row573))(variable[576]) /*ParserTable::action_table_row573*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[576]) /*AbstractArray::add*/;
+    variable[576] = CALL_parser_tables___ParserTable___action_table_row573(variable[576])(variable[576]) /*ParserTable::action_table_row573*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[576]) /*AbstractArray::add*/;
     variable[577] = variable[0];
-    variable[577] = ((parser_tables___ParserTable___action_table_row574_t)CALL(variable[577],COLOR_parser_tables___ParserTable___action_table_row574))(variable[577]) /*ParserTable::action_table_row574*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[577]) /*AbstractArray::add*/;
+    variable[577] = CALL_parser_tables___ParserTable___action_table_row574(variable[577])(variable[577]) /*ParserTable::action_table_row574*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[577]) /*AbstractArray::add*/;
     variable[578] = variable[0];
-    variable[578] = ((parser_tables___ParserTable___action_table_row575_t)CALL(variable[578],COLOR_parser_tables___ParserTable___action_table_row575))(variable[578]) /*ParserTable::action_table_row575*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[578]) /*AbstractArray::add*/;
+    variable[578] = CALL_parser_tables___ParserTable___action_table_row575(variable[578])(variable[578]) /*ParserTable::action_table_row575*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[578]) /*AbstractArray::add*/;
     variable[579] = variable[0];
-    variable[579] = ((parser_tables___ParserTable___action_table_row576_t)CALL(variable[579],COLOR_parser_tables___ParserTable___action_table_row576))(variable[579]) /*ParserTable::action_table_row576*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[579]) /*AbstractArray::add*/;
+    variable[579] = CALL_parser_tables___ParserTable___action_table_row576(variable[579])(variable[579]) /*ParserTable::action_table_row576*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[579]) /*AbstractArray::add*/;
     variable[580] = variable[0];
-    variable[580] = ((parser_tables___ParserTable___action_table_row577_t)CALL(variable[580],COLOR_parser_tables___ParserTable___action_table_row577))(variable[580]) /*ParserTable::action_table_row577*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[580]) /*AbstractArray::add*/;
+    variable[580] = CALL_parser_tables___ParserTable___action_table_row577(variable[580])(variable[580]) /*ParserTable::action_table_row577*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[580]) /*AbstractArray::add*/;
     variable[581] = variable[0];
-    variable[581] = ((parser_tables___ParserTable___action_table_row578_t)CALL(variable[581],COLOR_parser_tables___ParserTable___action_table_row578))(variable[581]) /*ParserTable::action_table_row578*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[581]) /*AbstractArray::add*/;
+    variable[581] = CALL_parser_tables___ParserTable___action_table_row578(variable[581])(variable[581]) /*ParserTable::action_table_row578*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[581]) /*AbstractArray::add*/;
     variable[582] = variable[0];
-    variable[582] = ((parser_tables___ParserTable___action_table_row579_t)CALL(variable[582],COLOR_parser_tables___ParserTable___action_table_row579))(variable[582]) /*ParserTable::action_table_row579*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[582]) /*AbstractArray::add*/;
+    variable[582] = CALL_parser_tables___ParserTable___action_table_row579(variable[582])(variable[582]) /*ParserTable::action_table_row579*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[582]) /*AbstractArray::add*/;
     variable[583] = variable[0];
-    variable[583] = ((parser_tables___ParserTable___action_table_row580_t)CALL(variable[583],COLOR_parser_tables___ParserTable___action_table_row580))(variable[583]) /*ParserTable::action_table_row580*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[583]) /*AbstractArray::add*/;
+    variable[583] = CALL_parser_tables___ParserTable___action_table_row580(variable[583])(variable[583]) /*ParserTable::action_table_row580*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[583]) /*AbstractArray::add*/;
     variable[584] = variable[0];
-    variable[584] = ((parser_tables___ParserTable___action_table_row581_t)CALL(variable[584],COLOR_parser_tables___ParserTable___action_table_row581))(variable[584]) /*ParserTable::action_table_row581*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[584]) /*AbstractArray::add*/;
+    variable[584] = CALL_parser_tables___ParserTable___action_table_row581(variable[584])(variable[584]) /*ParserTable::action_table_row581*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[584]) /*AbstractArray::add*/;
     variable[585] = variable[0];
-    variable[585] = ((parser_tables___ParserTable___action_table_row582_t)CALL(variable[585],COLOR_parser_tables___ParserTable___action_table_row582))(variable[585]) /*ParserTable::action_table_row582*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[585]) /*AbstractArray::add*/;
+    variable[585] = CALL_parser_tables___ParserTable___action_table_row582(variable[585])(variable[585]) /*ParserTable::action_table_row582*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[585]) /*AbstractArray::add*/;
     variable[586] = variable[0];
-    variable[586] = ((parser_tables___ParserTable___action_table_row583_t)CALL(variable[586],COLOR_parser_tables___ParserTable___action_table_row583))(variable[586]) /*ParserTable::action_table_row583*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[586]) /*AbstractArray::add*/;
+    variable[586] = CALL_parser_tables___ParserTable___action_table_row583(variable[586])(variable[586]) /*ParserTable::action_table_row583*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[586]) /*AbstractArray::add*/;
     variable[587] = variable[0];
-    variable[587] = ((parser_tables___ParserTable___action_table_row584_t)CALL(variable[587],COLOR_parser_tables___ParserTable___action_table_row584))(variable[587]) /*ParserTable::action_table_row584*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[587]) /*AbstractArray::add*/;
+    variable[587] = CALL_parser_tables___ParserTable___action_table_row584(variable[587])(variable[587]) /*ParserTable::action_table_row584*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[587]) /*AbstractArray::add*/;
     variable[588] = variable[0];
-    variable[588] = ((parser_tables___ParserTable___action_table_row585_t)CALL(variable[588],COLOR_parser_tables___ParserTable___action_table_row585))(variable[588]) /*ParserTable::action_table_row585*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[588]) /*AbstractArray::add*/;
+    variable[588] = CALL_parser_tables___ParserTable___action_table_row585(variable[588])(variable[588]) /*ParserTable::action_table_row585*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[588]) /*AbstractArray::add*/;
     variable[589] = variable[0];
-    variable[589] = ((parser_tables___ParserTable___action_table_row586_t)CALL(variable[589],COLOR_parser_tables___ParserTable___action_table_row586))(variable[589]) /*ParserTable::action_table_row586*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[589]) /*AbstractArray::add*/;
+    variable[589] = CALL_parser_tables___ParserTable___action_table_row586(variable[589])(variable[589]) /*ParserTable::action_table_row586*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[589]) /*AbstractArray::add*/;
     variable[590] = variable[0];
-    variable[590] = ((parser_tables___ParserTable___action_table_row587_t)CALL(variable[590],COLOR_parser_tables___ParserTable___action_table_row587))(variable[590]) /*ParserTable::action_table_row587*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[590]) /*AbstractArray::add*/;
+    variable[590] = CALL_parser_tables___ParserTable___action_table_row587(variable[590])(variable[590]) /*ParserTable::action_table_row587*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[590]) /*AbstractArray::add*/;
     variable[591] = variable[0];
-    variable[591] = ((parser_tables___ParserTable___action_table_row588_t)CALL(variable[591],COLOR_parser_tables___ParserTable___action_table_row588))(variable[591]) /*ParserTable::action_table_row588*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[591]) /*AbstractArray::add*/;
+    variable[591] = CALL_parser_tables___ParserTable___action_table_row588(variable[591])(variable[591]) /*ParserTable::action_table_row588*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[591]) /*AbstractArray::add*/;
     variable[592] = variable[0];
-    variable[592] = ((parser_tables___ParserTable___action_table_row589_t)CALL(variable[592],COLOR_parser_tables___ParserTable___action_table_row589))(variable[592]) /*ParserTable::action_table_row589*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[592]) /*AbstractArray::add*/;
+    variable[592] = CALL_parser_tables___ParserTable___action_table_row589(variable[592])(variable[592]) /*ParserTable::action_table_row589*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[592]) /*AbstractArray::add*/;
     variable[593] = variable[0];
-    variable[593] = ((parser_tables___ParserTable___action_table_row590_t)CALL(variable[593],COLOR_parser_tables___ParserTable___action_table_row590))(variable[593]) /*ParserTable::action_table_row590*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[593]) /*AbstractArray::add*/;
+    variable[593] = CALL_parser_tables___ParserTable___action_table_row590(variable[593])(variable[593]) /*ParserTable::action_table_row590*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[593]) /*AbstractArray::add*/;
     variable[594] = variable[0];
-    variable[594] = ((parser_tables___ParserTable___action_table_row591_t)CALL(variable[594],COLOR_parser_tables___ParserTable___action_table_row591))(variable[594]) /*ParserTable::action_table_row591*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[594]) /*AbstractArray::add*/;
+    variable[594] = CALL_parser_tables___ParserTable___action_table_row591(variable[594])(variable[594]) /*ParserTable::action_table_row591*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[594]) /*AbstractArray::add*/;
     variable[595] = variable[0];
-    variable[595] = ((parser_tables___ParserTable___action_table_row592_t)CALL(variable[595],COLOR_parser_tables___ParserTable___action_table_row592))(variable[595]) /*ParserTable::action_table_row592*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[595]) /*AbstractArray::add*/;
+    variable[595] = CALL_parser_tables___ParserTable___action_table_row592(variable[595])(variable[595]) /*ParserTable::action_table_row592*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[595]) /*AbstractArray::add*/;
     variable[596] = variable[0];
-    variable[596] = ((parser_tables___ParserTable___action_table_row593_t)CALL(variable[596],COLOR_parser_tables___ParserTable___action_table_row593))(variable[596]) /*ParserTable::action_table_row593*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[596]) /*AbstractArray::add*/;
+    variable[596] = CALL_parser_tables___ParserTable___action_table_row593(variable[596])(variable[596]) /*ParserTable::action_table_row593*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[596]) /*AbstractArray::add*/;
     variable[597] = variable[0];
-    variable[597] = ((parser_tables___ParserTable___action_table_row594_t)CALL(variable[597],COLOR_parser_tables___ParserTable___action_table_row594))(variable[597]) /*ParserTable::action_table_row594*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[597]) /*AbstractArray::add*/;
+    variable[597] = CALL_parser_tables___ParserTable___action_table_row594(variable[597])(variable[597]) /*ParserTable::action_table_row594*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[597]) /*AbstractArray::add*/;
     variable[598] = variable[0];
-    variable[598] = ((parser_tables___ParserTable___action_table_row595_t)CALL(variable[598],COLOR_parser_tables___ParserTable___action_table_row595))(variable[598]) /*ParserTable::action_table_row595*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[598]) /*AbstractArray::add*/;
+    variable[598] = CALL_parser_tables___ParserTable___action_table_row595(variable[598])(variable[598]) /*ParserTable::action_table_row595*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[598]) /*AbstractArray::add*/;
     variable[599] = variable[0];
-    variable[599] = ((parser_tables___ParserTable___action_table_row596_t)CALL(variable[599],COLOR_parser_tables___ParserTable___action_table_row596))(variable[599]) /*ParserTable::action_table_row596*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[599]) /*AbstractArray::add*/;
+    variable[599] = CALL_parser_tables___ParserTable___action_table_row596(variable[599])(variable[599]) /*ParserTable::action_table_row596*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[599]) /*AbstractArray::add*/;
     variable[600] = variable[0];
-    variable[600] = ((parser_tables___ParserTable___action_table_row597_t)CALL(variable[600],COLOR_parser_tables___ParserTable___action_table_row597))(variable[600]) /*ParserTable::action_table_row597*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[600]) /*AbstractArray::add*/;
+    variable[600] = CALL_parser_tables___ParserTable___action_table_row597(variable[600])(variable[600]) /*ParserTable::action_table_row597*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[600]) /*AbstractArray::add*/;
     variable[601] = variable[0];
-    variable[601] = ((parser_tables___ParserTable___action_table_row598_t)CALL(variable[601],COLOR_parser_tables___ParserTable___action_table_row598))(variable[601]) /*ParserTable::action_table_row598*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[601]) /*AbstractArray::add*/;
+    variable[601] = CALL_parser_tables___ParserTable___action_table_row598(variable[601])(variable[601]) /*ParserTable::action_table_row598*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[601]) /*AbstractArray::add*/;
     variable[602] = variable[0];
-    variable[602] = ((parser_tables___ParserTable___action_table_row599_t)CALL(variable[602],COLOR_parser_tables___ParserTable___action_table_row599))(variable[602]) /*ParserTable::action_table_row599*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[602]) /*AbstractArray::add*/;
+    variable[602] = CALL_parser_tables___ParserTable___action_table_row599(variable[602])(variable[602]) /*ParserTable::action_table_row599*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[602]) /*AbstractArray::add*/;
     variable[603] = variable[0];
-    variable[603] = ((parser_tables___ParserTable___action_table_row600_t)CALL(variable[603],COLOR_parser_tables___ParserTable___action_table_row600))(variable[603]) /*ParserTable::action_table_row600*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[603]) /*AbstractArray::add*/;
+    variable[603] = CALL_parser_tables___ParserTable___action_table_row600(variable[603])(variable[603]) /*ParserTable::action_table_row600*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[603]) /*AbstractArray::add*/;
     variable[604] = variable[0];
-    variable[604] = ((parser_tables___ParserTable___action_table_row601_t)CALL(variable[604],COLOR_parser_tables___ParserTable___action_table_row601))(variable[604]) /*ParserTable::action_table_row601*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[604]) /*AbstractArray::add*/;
+    variable[604] = CALL_parser_tables___ParserTable___action_table_row601(variable[604])(variable[604]) /*ParserTable::action_table_row601*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[604]) /*AbstractArray::add*/;
     variable[605] = variable[0];
-    variable[605] = ((parser_tables___ParserTable___action_table_row602_t)CALL(variable[605],COLOR_parser_tables___ParserTable___action_table_row602))(variable[605]) /*ParserTable::action_table_row602*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[605]) /*AbstractArray::add*/;
+    variable[605] = CALL_parser_tables___ParserTable___action_table_row602(variable[605])(variable[605]) /*ParserTable::action_table_row602*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[605]) /*AbstractArray::add*/;
     variable[606] = variable[0];
-    variable[606] = ((parser_tables___ParserTable___action_table_row603_t)CALL(variable[606],COLOR_parser_tables___ParserTable___action_table_row603))(variable[606]) /*ParserTable::action_table_row603*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[606]) /*AbstractArray::add*/;
+    variable[606] = CALL_parser_tables___ParserTable___action_table_row603(variable[606])(variable[606]) /*ParserTable::action_table_row603*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[606]) /*AbstractArray::add*/;
     variable[607] = variable[0];
-    variable[607] = ((parser_tables___ParserTable___action_table_row604_t)CALL(variable[607],COLOR_parser_tables___ParserTable___action_table_row604))(variable[607]) /*ParserTable::action_table_row604*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[607]) /*AbstractArray::add*/;
+    variable[607] = CALL_parser_tables___ParserTable___action_table_row604(variable[607])(variable[607]) /*ParserTable::action_table_row604*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[607]) /*AbstractArray::add*/;
     variable[608] = variable[0];
-    variable[608] = ((parser_tables___ParserTable___action_table_row605_t)CALL(variable[608],COLOR_parser_tables___ParserTable___action_table_row605))(variable[608]) /*ParserTable::action_table_row605*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[608]) /*AbstractArray::add*/;
+    variable[608] = CALL_parser_tables___ParserTable___action_table_row605(variable[608])(variable[608]) /*ParserTable::action_table_row605*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[608]) /*AbstractArray::add*/;
     variable[609] = variable[0];
-    variable[609] = ((parser_tables___ParserTable___action_table_row606_t)CALL(variable[609],COLOR_parser_tables___ParserTable___action_table_row606))(variable[609]) /*ParserTable::action_table_row606*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[609]) /*AbstractArray::add*/;
+    variable[609] = CALL_parser_tables___ParserTable___action_table_row606(variable[609])(variable[609]) /*ParserTable::action_table_row606*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[609]) /*AbstractArray::add*/;
     variable[610] = variable[0];
-    variable[610] = ((parser_tables___ParserTable___action_table_row607_t)CALL(variable[610],COLOR_parser_tables___ParserTable___action_table_row607))(variable[610]) /*ParserTable::action_table_row607*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[610]) /*AbstractArray::add*/;
+    variable[610] = CALL_parser_tables___ParserTable___action_table_row607(variable[610])(variable[610]) /*ParserTable::action_table_row607*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[610]) /*AbstractArray::add*/;
     variable[611] = variable[0];
-    variable[611] = ((parser_tables___ParserTable___action_table_row608_t)CALL(variable[611],COLOR_parser_tables___ParserTable___action_table_row608))(variable[611]) /*ParserTable::action_table_row608*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[611]) /*AbstractArray::add*/;
+    variable[611] = CALL_parser_tables___ParserTable___action_table_row608(variable[611])(variable[611]) /*ParserTable::action_table_row608*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[611]) /*AbstractArray::add*/;
     variable[612] = variable[0];
-    variable[612] = ((parser_tables___ParserTable___action_table_row609_t)CALL(variable[612],COLOR_parser_tables___ParserTable___action_table_row609))(variable[612]) /*ParserTable::action_table_row609*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[612]) /*AbstractArray::add*/;
+    variable[612] = CALL_parser_tables___ParserTable___action_table_row609(variable[612])(variable[612]) /*ParserTable::action_table_row609*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[612]) /*AbstractArray::add*/;
     variable[613] = variable[0];
-    variable[613] = ((parser_tables___ParserTable___action_table_row610_t)CALL(variable[613],COLOR_parser_tables___ParserTable___action_table_row610))(variable[613]) /*ParserTable::action_table_row610*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[613]) /*AbstractArray::add*/;
+    variable[613] = CALL_parser_tables___ParserTable___action_table_row610(variable[613])(variable[613]) /*ParserTable::action_table_row610*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[613]) /*AbstractArray::add*/;
     variable[614] = variable[0];
-    variable[614] = ((parser_tables___ParserTable___action_table_row611_t)CALL(variable[614],COLOR_parser_tables___ParserTable___action_table_row611))(variable[614]) /*ParserTable::action_table_row611*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[614]) /*AbstractArray::add*/;
+    variable[614] = CALL_parser_tables___ParserTable___action_table_row611(variable[614])(variable[614]) /*ParserTable::action_table_row611*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[614]) /*AbstractArray::add*/;
     variable[615] = variable[0];
-    variable[615] = ((parser_tables___ParserTable___action_table_row612_t)CALL(variable[615],COLOR_parser_tables___ParserTable___action_table_row612))(variable[615]) /*ParserTable::action_table_row612*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[615]) /*AbstractArray::add*/;
+    variable[615] = CALL_parser_tables___ParserTable___action_table_row612(variable[615])(variable[615]) /*ParserTable::action_table_row612*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[615]) /*AbstractArray::add*/;
     variable[616] = variable[0];
-    variable[616] = ((parser_tables___ParserTable___action_table_row613_t)CALL(variable[616],COLOR_parser_tables___ParserTable___action_table_row613))(variable[616]) /*ParserTable::action_table_row613*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[616]) /*AbstractArray::add*/;
+    variable[616] = CALL_parser_tables___ParserTable___action_table_row613(variable[616])(variable[616]) /*ParserTable::action_table_row613*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[616]) /*AbstractArray::add*/;
     variable[617] = variable[0];
-    variable[617] = ((parser_tables___ParserTable___action_table_row614_t)CALL(variable[617],COLOR_parser_tables___ParserTable___action_table_row614))(variable[617]) /*ParserTable::action_table_row614*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[617]) /*AbstractArray::add*/;
+    variable[617] = CALL_parser_tables___ParserTable___action_table_row614(variable[617])(variable[617]) /*ParserTable::action_table_row614*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[617]) /*AbstractArray::add*/;
     variable[618] = variable[0];
-    variable[618] = ((parser_tables___ParserTable___action_table_row615_t)CALL(variable[618],COLOR_parser_tables___ParserTable___action_table_row615))(variable[618]) /*ParserTable::action_table_row615*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[618]) /*AbstractArray::add*/;
+    variable[618] = CALL_parser_tables___ParserTable___action_table_row615(variable[618])(variable[618]) /*ParserTable::action_table_row615*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[618]) /*AbstractArray::add*/;
     variable[619] = variable[0];
-    variable[619] = ((parser_tables___ParserTable___action_table_row616_t)CALL(variable[619],COLOR_parser_tables___ParserTable___action_table_row616))(variable[619]) /*ParserTable::action_table_row616*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[619]) /*AbstractArray::add*/;
+    variable[619] = CALL_parser_tables___ParserTable___action_table_row616(variable[619])(variable[619]) /*ParserTable::action_table_row616*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[619]) /*AbstractArray::add*/;
     variable[620] = variable[0];
-    variable[620] = ((parser_tables___ParserTable___action_table_row617_t)CALL(variable[620],COLOR_parser_tables___ParserTable___action_table_row617))(variable[620]) /*ParserTable::action_table_row617*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[620]) /*AbstractArray::add*/;
+    variable[620] = CALL_parser_tables___ParserTable___action_table_row617(variable[620])(variable[620]) /*ParserTable::action_table_row617*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[620]) /*AbstractArray::add*/;
     variable[621] = variable[0];
-    variable[621] = ((parser_tables___ParserTable___action_table_row618_t)CALL(variable[621],COLOR_parser_tables___ParserTable___action_table_row618))(variable[621]) /*ParserTable::action_table_row618*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[621]) /*AbstractArray::add*/;
+    variable[621] = CALL_parser_tables___ParserTable___action_table_row618(variable[621])(variable[621]) /*ParserTable::action_table_row618*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[621]) /*AbstractArray::add*/;
     variable[622] = variable[0];
-    variable[622] = ((parser_tables___ParserTable___action_table_row619_t)CALL(variable[622],COLOR_parser_tables___ParserTable___action_table_row619))(variable[622]) /*ParserTable::action_table_row619*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[622]) /*AbstractArray::add*/;
+    variable[622] = CALL_parser_tables___ParserTable___action_table_row619(variable[622])(variable[622]) /*ParserTable::action_table_row619*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[622]) /*AbstractArray::add*/;
     variable[623] = variable[0];
-    variable[623] = ((parser_tables___ParserTable___action_table_row620_t)CALL(variable[623],COLOR_parser_tables___ParserTable___action_table_row620))(variable[623]) /*ParserTable::action_table_row620*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[623]) /*AbstractArray::add*/;
+    variable[623] = CALL_parser_tables___ParserTable___action_table_row620(variable[623])(variable[623]) /*ParserTable::action_table_row620*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[623]) /*AbstractArray::add*/;
     variable[624] = variable[0];
-    variable[624] = ((parser_tables___ParserTable___action_table_row621_t)CALL(variable[624],COLOR_parser_tables___ParserTable___action_table_row621))(variable[624]) /*ParserTable::action_table_row621*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[624]) /*AbstractArray::add*/;
+    variable[624] = CALL_parser_tables___ParserTable___action_table_row621(variable[624])(variable[624]) /*ParserTable::action_table_row621*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[624]) /*AbstractArray::add*/;
     variable[625] = variable[0];
-    variable[625] = ((parser_tables___ParserTable___action_table_row622_t)CALL(variable[625],COLOR_parser_tables___ParserTable___action_table_row622))(variable[625]) /*ParserTable::action_table_row622*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[625]) /*AbstractArray::add*/;
+    variable[625] = CALL_parser_tables___ParserTable___action_table_row622(variable[625])(variable[625]) /*ParserTable::action_table_row622*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[625]) /*AbstractArray::add*/;
     variable[626] = variable[0];
-    variable[626] = ((parser_tables___ParserTable___action_table_row623_t)CALL(variable[626],COLOR_parser_tables___ParserTable___action_table_row623))(variable[626]) /*ParserTable::action_table_row623*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[626]) /*AbstractArray::add*/;
+    variable[626] = CALL_parser_tables___ParserTable___action_table_row623(variable[626])(variable[626]) /*ParserTable::action_table_row623*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[626]) /*AbstractArray::add*/;
     variable[627] = variable[0];
-    variable[627] = ((parser_tables___ParserTable___action_table_row624_t)CALL(variable[627],COLOR_parser_tables___ParserTable___action_table_row624))(variable[627]) /*ParserTable::action_table_row624*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[627]) /*AbstractArray::add*/;
+    variable[627] = CALL_parser_tables___ParserTable___action_table_row624(variable[627])(variable[627]) /*ParserTable::action_table_row624*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[627]) /*AbstractArray::add*/;
     variable[628] = variable[0];
-    variable[628] = ((parser_tables___ParserTable___action_table_row625_t)CALL(variable[628],COLOR_parser_tables___ParserTable___action_table_row625))(variable[628]) /*ParserTable::action_table_row625*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[628]) /*AbstractArray::add*/;
+    variable[628] = CALL_parser_tables___ParserTable___action_table_row625(variable[628])(variable[628]) /*ParserTable::action_table_row625*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[628]) /*AbstractArray::add*/;
     variable[629] = variable[0];
-    variable[629] = ((parser_tables___ParserTable___action_table_row626_t)CALL(variable[629],COLOR_parser_tables___ParserTable___action_table_row626))(variable[629]) /*ParserTable::action_table_row626*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[629]) /*AbstractArray::add*/;
+    variable[629] = CALL_parser_tables___ParserTable___action_table_row626(variable[629])(variable[629]) /*ParserTable::action_table_row626*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[629]) /*AbstractArray::add*/;
     variable[630] = variable[0];
-    variable[630] = ((parser_tables___ParserTable___action_table_row627_t)CALL(variable[630],COLOR_parser_tables___ParserTable___action_table_row627))(variable[630]) /*ParserTable::action_table_row627*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[630]) /*AbstractArray::add*/;
+    variable[630] = CALL_parser_tables___ParserTable___action_table_row627(variable[630])(variable[630]) /*ParserTable::action_table_row627*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[630]) /*AbstractArray::add*/;
     variable[631] = variable[0];
-    variable[631] = ((parser_tables___ParserTable___action_table_row628_t)CALL(variable[631],COLOR_parser_tables___ParserTable___action_table_row628))(variable[631]) /*ParserTable::action_table_row628*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[631]) /*AbstractArray::add*/;
+    variable[631] = CALL_parser_tables___ParserTable___action_table_row628(variable[631])(variable[631]) /*ParserTable::action_table_row628*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[631]) /*AbstractArray::add*/;
     variable[632] = variable[0];
-    variable[632] = ((parser_tables___ParserTable___action_table_row629_t)CALL(variable[632],COLOR_parser_tables___ParserTable___action_table_row629))(variable[632]) /*ParserTable::action_table_row629*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[632]) /*AbstractArray::add*/;
+    variable[632] = CALL_parser_tables___ParserTable___action_table_row629(variable[632])(variable[632]) /*ParserTable::action_table_row629*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[632]) /*AbstractArray::add*/;
     variable[633] = variable[0];
-    variable[633] = ((parser_tables___ParserTable___action_table_row630_t)CALL(variable[633],COLOR_parser_tables___ParserTable___action_table_row630))(variable[633]) /*ParserTable::action_table_row630*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[633]) /*AbstractArray::add*/;
+    variable[633] = CALL_parser_tables___ParserTable___action_table_row630(variable[633])(variable[633]) /*ParserTable::action_table_row630*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[633]) /*AbstractArray::add*/;
     variable[634] = variable[0];
-    variable[634] = ((parser_tables___ParserTable___action_table_row631_t)CALL(variable[634],COLOR_parser_tables___ParserTable___action_table_row631))(variable[634]) /*ParserTable::action_table_row631*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[634]) /*AbstractArray::add*/;
+    variable[634] = CALL_parser_tables___ParserTable___action_table_row631(variable[634])(variable[634]) /*ParserTable::action_table_row631*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[634]) /*AbstractArray::add*/;
     variable[635] = variable[0];
-    variable[635] = ((parser_tables___ParserTable___action_table_row632_t)CALL(variable[635],COLOR_parser_tables___ParserTable___action_table_row632))(variable[635]) /*ParserTable::action_table_row632*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[635]) /*AbstractArray::add*/;
+    variable[635] = CALL_parser_tables___ParserTable___action_table_row632(variable[635])(variable[635]) /*ParserTable::action_table_row632*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[635]) /*AbstractArray::add*/;
     variable[636] = variable[0];
-    variable[636] = ((parser_tables___ParserTable___action_table_row633_t)CALL(variable[636],COLOR_parser_tables___ParserTable___action_table_row633))(variable[636]) /*ParserTable::action_table_row633*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[636]) /*AbstractArray::add*/;
+    variable[636] = CALL_parser_tables___ParserTable___action_table_row633(variable[636])(variable[636]) /*ParserTable::action_table_row633*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[636]) /*AbstractArray::add*/;
     variable[637] = variable[0];
-    variable[637] = ((parser_tables___ParserTable___action_table_row634_t)CALL(variable[637],COLOR_parser_tables___ParserTable___action_table_row634))(variable[637]) /*ParserTable::action_table_row634*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[637]) /*AbstractArray::add*/;
+    variable[637] = CALL_parser_tables___ParserTable___action_table_row634(variable[637])(variable[637]) /*ParserTable::action_table_row634*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[637]) /*AbstractArray::add*/;
     variable[638] = variable[0];
-    variable[638] = ((parser_tables___ParserTable___action_table_row635_t)CALL(variable[638],COLOR_parser_tables___ParserTable___action_table_row635))(variable[638]) /*ParserTable::action_table_row635*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[638]) /*AbstractArray::add*/;
+    variable[638] = CALL_parser_tables___ParserTable___action_table_row635(variable[638])(variable[638]) /*ParserTable::action_table_row635*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[638]) /*AbstractArray::add*/;
     variable[639] = variable[0];
-    variable[639] = ((parser_tables___ParserTable___action_table_row636_t)CALL(variable[639],COLOR_parser_tables___ParserTable___action_table_row636))(variable[639]) /*ParserTable::action_table_row636*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[639]) /*AbstractArray::add*/;
+    variable[639] = CALL_parser_tables___ParserTable___action_table_row636(variable[639])(variable[639]) /*ParserTable::action_table_row636*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[639]) /*AbstractArray::add*/;
     variable[640] = variable[0];
-    variable[640] = ((parser_tables___ParserTable___action_table_row637_t)CALL(variable[640],COLOR_parser_tables___ParserTable___action_table_row637))(variable[640]) /*ParserTable::action_table_row637*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[640]) /*AbstractArray::add*/;
+    variable[640] = CALL_parser_tables___ParserTable___action_table_row637(variable[640])(variable[640]) /*ParserTable::action_table_row637*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[640]) /*AbstractArray::add*/;
     variable[641] = variable[0];
-    variable[641] = ((parser_tables___ParserTable___action_table_row638_t)CALL(variable[641],COLOR_parser_tables___ParserTable___action_table_row638))(variable[641]) /*ParserTable::action_table_row638*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[641]) /*AbstractArray::add*/;
+    variable[641] = CALL_parser_tables___ParserTable___action_table_row638(variable[641])(variable[641]) /*ParserTable::action_table_row638*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[641]) /*AbstractArray::add*/;
     variable[642] = variable[0];
-    variable[642] = ((parser_tables___ParserTable___action_table_row639_t)CALL(variable[642],COLOR_parser_tables___ParserTable___action_table_row639))(variable[642]) /*ParserTable::action_table_row639*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[642]) /*AbstractArray::add*/;
+    variable[642] = CALL_parser_tables___ParserTable___action_table_row639(variable[642])(variable[642]) /*ParserTable::action_table_row639*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[642]) /*AbstractArray::add*/;
     variable[643] = variable[0];
-    variable[643] = ((parser_tables___ParserTable___action_table_row640_t)CALL(variable[643],COLOR_parser_tables___ParserTable___action_table_row640))(variable[643]) /*ParserTable::action_table_row640*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[643]) /*AbstractArray::add*/;
+    variable[643] = CALL_parser_tables___ParserTable___action_table_row640(variable[643])(variable[643]) /*ParserTable::action_table_row640*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[643]) /*AbstractArray::add*/;
     variable[644] = variable[0];
-    variable[644] = ((parser_tables___ParserTable___action_table_row641_t)CALL(variable[644],COLOR_parser_tables___ParserTable___action_table_row641))(variable[644]) /*ParserTable::action_table_row641*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[644]) /*AbstractArray::add*/;
+    variable[644] = CALL_parser_tables___ParserTable___action_table_row641(variable[644])(variable[644]) /*ParserTable::action_table_row641*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[644]) /*AbstractArray::add*/;
     variable[645] = variable[0];
-    variable[645] = ((parser_tables___ParserTable___action_table_row642_t)CALL(variable[645],COLOR_parser_tables___ParserTable___action_table_row642))(variable[645]) /*ParserTable::action_table_row642*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[645]) /*AbstractArray::add*/;
+    variable[645] = CALL_parser_tables___ParserTable___action_table_row642(variable[645])(variable[645]) /*ParserTable::action_table_row642*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[645]) /*AbstractArray::add*/;
     variable[646] = variable[0];
-    variable[646] = ((parser_tables___ParserTable___action_table_row643_t)CALL(variable[646],COLOR_parser_tables___ParserTable___action_table_row643))(variable[646]) /*ParserTable::action_table_row643*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[646]) /*AbstractArray::add*/;
+    variable[646] = CALL_parser_tables___ParserTable___action_table_row643(variable[646])(variable[646]) /*ParserTable::action_table_row643*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[646]) /*AbstractArray::add*/;
     variable[647] = variable[0];
-    variable[647] = ((parser_tables___ParserTable___action_table_row644_t)CALL(variable[647],COLOR_parser_tables___ParserTable___action_table_row644))(variable[647]) /*ParserTable::action_table_row644*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[647]) /*AbstractArray::add*/;
+    variable[647] = CALL_parser_tables___ParserTable___action_table_row644(variable[647])(variable[647]) /*ParserTable::action_table_row644*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[647]) /*AbstractArray::add*/;
     variable[648] = variable[0];
-    variable[648] = ((parser_tables___ParserTable___action_table_row645_t)CALL(variable[648],COLOR_parser_tables___ParserTable___action_table_row645))(variable[648]) /*ParserTable::action_table_row645*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[648]) /*AbstractArray::add*/;
+    variable[648] = CALL_parser_tables___ParserTable___action_table_row645(variable[648])(variable[648]) /*ParserTable::action_table_row645*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[648]) /*AbstractArray::add*/;
     variable[649] = variable[0];
-    variable[649] = ((parser_tables___ParserTable___action_table_row646_t)CALL(variable[649],COLOR_parser_tables___ParserTable___action_table_row646))(variable[649]) /*ParserTable::action_table_row646*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[649]) /*AbstractArray::add*/;
+    variable[649] = CALL_parser_tables___ParserTable___action_table_row646(variable[649])(variable[649]) /*ParserTable::action_table_row646*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[649]) /*AbstractArray::add*/;
     variable[650] = variable[0];
-    variable[650] = ((parser_tables___ParserTable___action_table_row647_t)CALL(variable[650],COLOR_parser_tables___ParserTable___action_table_row647))(variable[650]) /*ParserTable::action_table_row647*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[650]) /*AbstractArray::add*/;
+    variable[650] = CALL_parser_tables___ParserTable___action_table_row647(variable[650])(variable[650]) /*ParserTable::action_table_row647*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[650]) /*AbstractArray::add*/;
     variable[651] = variable[0];
-    variable[651] = ((parser_tables___ParserTable___action_table_row648_t)CALL(variable[651],COLOR_parser_tables___ParserTable___action_table_row648))(variable[651]) /*ParserTable::action_table_row648*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[651]) /*AbstractArray::add*/;
+    variable[651] = CALL_parser_tables___ParserTable___action_table_row648(variable[651])(variable[651]) /*ParserTable::action_table_row648*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[651]) /*AbstractArray::add*/;
     variable[652] = variable[0];
-    variable[652] = ((parser_tables___ParserTable___action_table_row649_t)CALL(variable[652],COLOR_parser_tables___ParserTable___action_table_row649))(variable[652]) /*ParserTable::action_table_row649*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[652]) /*AbstractArray::add*/;
+    variable[652] = CALL_parser_tables___ParserTable___action_table_row649(variable[652])(variable[652]) /*ParserTable::action_table_row649*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[652]) /*AbstractArray::add*/;
     variable[653] = variable[0];
-    variable[653] = ((parser_tables___ParserTable___action_table_row650_t)CALL(variable[653],COLOR_parser_tables___ParserTable___action_table_row650))(variable[653]) /*ParserTable::action_table_row650*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[653]) /*AbstractArray::add*/;
+    variable[653] = CALL_parser_tables___ParserTable___action_table_row650(variable[653])(variable[653]) /*ParserTable::action_table_row650*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[653]) /*AbstractArray::add*/;
     variable[654] = variable[0];
-    variable[654] = ((parser_tables___ParserTable___action_table_row651_t)CALL(variable[654],COLOR_parser_tables___ParserTable___action_table_row651))(variable[654]) /*ParserTable::action_table_row651*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[654]) /*AbstractArray::add*/;
+    variable[654] = CALL_parser_tables___ParserTable___action_table_row651(variable[654])(variable[654]) /*ParserTable::action_table_row651*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[654]) /*AbstractArray::add*/;
     variable[655] = variable[0];
-    variable[655] = ((parser_tables___ParserTable___action_table_row652_t)CALL(variable[655],COLOR_parser_tables___ParserTable___action_table_row652))(variable[655]) /*ParserTable::action_table_row652*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[655]) /*AbstractArray::add*/;
+    variable[655] = CALL_parser_tables___ParserTable___action_table_row652(variable[655])(variable[655]) /*ParserTable::action_table_row652*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[655]) /*AbstractArray::add*/;
     variable[656] = variable[0];
-    variable[656] = ((parser_tables___ParserTable___action_table_row653_t)CALL(variable[656],COLOR_parser_tables___ParserTable___action_table_row653))(variable[656]) /*ParserTable::action_table_row653*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[656]) /*AbstractArray::add*/;
+    variable[656] = CALL_parser_tables___ParserTable___action_table_row653(variable[656])(variable[656]) /*ParserTable::action_table_row653*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[656]) /*AbstractArray::add*/;
     variable[657] = variable[0];
-    variable[657] = ((parser_tables___ParserTable___action_table_row654_t)CALL(variable[657],COLOR_parser_tables___ParserTable___action_table_row654))(variable[657]) /*ParserTable::action_table_row654*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[657]) /*AbstractArray::add*/;
+    variable[657] = CALL_parser_tables___ParserTable___action_table_row654(variable[657])(variable[657]) /*ParserTable::action_table_row654*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[657]) /*AbstractArray::add*/;
     variable[658] = variable[0];
-    variable[658] = ((parser_tables___ParserTable___action_table_row655_t)CALL(variable[658],COLOR_parser_tables___ParserTable___action_table_row655))(variable[658]) /*ParserTable::action_table_row655*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[658]) /*AbstractArray::add*/;
+    variable[658] = CALL_parser_tables___ParserTable___action_table_row655(variable[658])(variable[658]) /*ParserTable::action_table_row655*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[658]) /*AbstractArray::add*/;
     variable[659] = variable[0];
-    variable[659] = ((parser_tables___ParserTable___action_table_row656_t)CALL(variable[659],COLOR_parser_tables___ParserTable___action_table_row656))(variable[659]) /*ParserTable::action_table_row656*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[659]) /*AbstractArray::add*/;
+    variable[659] = CALL_parser_tables___ParserTable___action_table_row656(variable[659])(variable[659]) /*ParserTable::action_table_row656*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[659]) /*AbstractArray::add*/;
     variable[660] = variable[0];
-    variable[660] = ((parser_tables___ParserTable___action_table_row657_t)CALL(variable[660],COLOR_parser_tables___ParserTable___action_table_row657))(variable[660]) /*ParserTable::action_table_row657*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[660]) /*AbstractArray::add*/;
+    variable[660] = CALL_parser_tables___ParserTable___action_table_row657(variable[660])(variable[660]) /*ParserTable::action_table_row657*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[660]) /*AbstractArray::add*/;
     variable[661] = variable[0];
-    variable[661] = ((parser_tables___ParserTable___action_table_row658_t)CALL(variable[661],COLOR_parser_tables___ParserTable___action_table_row658))(variable[661]) /*ParserTable::action_table_row658*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[661]) /*AbstractArray::add*/;
+    variable[661] = CALL_parser_tables___ParserTable___action_table_row658(variable[661])(variable[661]) /*ParserTable::action_table_row658*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[661]) /*AbstractArray::add*/;
     variable[662] = variable[0];
-    variable[662] = ((parser_tables___ParserTable___action_table_row659_t)CALL(variable[662],COLOR_parser_tables___ParserTable___action_table_row659))(variable[662]) /*ParserTable::action_table_row659*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[662]) /*AbstractArray::add*/;
+    variable[662] = CALL_parser_tables___ParserTable___action_table_row659(variable[662])(variable[662]) /*ParserTable::action_table_row659*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[662]) /*AbstractArray::add*/;
     variable[663] = variable[0];
-    variable[663] = ((parser_tables___ParserTable___action_table_row660_t)CALL(variable[663],COLOR_parser_tables___ParserTable___action_table_row660))(variable[663]) /*ParserTable::action_table_row660*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[663]) /*AbstractArray::add*/;
+    variable[663] = CALL_parser_tables___ParserTable___action_table_row660(variable[663])(variable[663]) /*ParserTable::action_table_row660*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[663]) /*AbstractArray::add*/;
     variable[664] = variable[0];
-    variable[664] = ((parser_tables___ParserTable___action_table_row661_t)CALL(variable[664],COLOR_parser_tables___ParserTable___action_table_row661))(variable[664]) /*ParserTable::action_table_row661*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[664]) /*AbstractArray::add*/;
+    variable[664] = CALL_parser_tables___ParserTable___action_table_row661(variable[664])(variable[664]) /*ParserTable::action_table_row661*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[664]) /*AbstractArray::add*/;
     variable[665] = variable[0];
-    variable[665] = ((parser_tables___ParserTable___action_table_row662_t)CALL(variable[665],COLOR_parser_tables___ParserTable___action_table_row662))(variable[665]) /*ParserTable::action_table_row662*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[665]) /*AbstractArray::add*/;
+    variable[665] = CALL_parser_tables___ParserTable___action_table_row662(variable[665])(variable[665]) /*ParserTable::action_table_row662*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[665]) /*AbstractArray::add*/;
     variable[666] = variable[0];
-    variable[666] = ((parser_tables___ParserTable___action_table_row663_t)CALL(variable[666],COLOR_parser_tables___ParserTable___action_table_row663))(variable[666]) /*ParserTable::action_table_row663*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[666]) /*AbstractArray::add*/;
+    variable[666] = CALL_parser_tables___ParserTable___action_table_row663(variable[666])(variable[666]) /*ParserTable::action_table_row663*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[666]) /*AbstractArray::add*/;
     variable[667] = variable[0];
-    variable[667] = ((parser_tables___ParserTable___action_table_row664_t)CALL(variable[667],COLOR_parser_tables___ParserTable___action_table_row664))(variable[667]) /*ParserTable::action_table_row664*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[667]) /*AbstractArray::add*/;
+    variable[667] = CALL_parser_tables___ParserTable___action_table_row664(variable[667])(variable[667]) /*ParserTable::action_table_row664*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[667]) /*AbstractArray::add*/;
     variable[668] = variable[0];
-    variable[668] = ((parser_tables___ParserTable___action_table_row665_t)CALL(variable[668],COLOR_parser_tables___ParserTable___action_table_row665))(variable[668]) /*ParserTable::action_table_row665*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[668]) /*AbstractArray::add*/;
+    variable[668] = CALL_parser_tables___ParserTable___action_table_row665(variable[668])(variable[668]) /*ParserTable::action_table_row665*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[668]) /*AbstractArray::add*/;
     variable[669] = variable[0];
-    variable[669] = ((parser_tables___ParserTable___action_table_row666_t)CALL(variable[669],COLOR_parser_tables___ParserTable___action_table_row666))(variable[669]) /*ParserTable::action_table_row666*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[669]) /*AbstractArray::add*/;
+    variable[669] = CALL_parser_tables___ParserTable___action_table_row666(variable[669])(variable[669]) /*ParserTable::action_table_row666*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[669]) /*AbstractArray::add*/;
     variable[670] = variable[0];
-    variable[670] = ((parser_tables___ParserTable___action_table_row667_t)CALL(variable[670],COLOR_parser_tables___ParserTable___action_table_row667))(variable[670]) /*ParserTable::action_table_row667*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[670]) /*AbstractArray::add*/;
+    variable[670] = CALL_parser_tables___ParserTable___action_table_row667(variable[670])(variable[670]) /*ParserTable::action_table_row667*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[670]) /*AbstractArray::add*/;
     variable[671] = variable[0];
-    variable[671] = ((parser_tables___ParserTable___action_table_row668_t)CALL(variable[671],COLOR_parser_tables___ParserTable___action_table_row668))(variable[671]) /*ParserTable::action_table_row668*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[671]) /*AbstractArray::add*/;
+    variable[671] = CALL_parser_tables___ParserTable___action_table_row668(variable[671])(variable[671]) /*ParserTable::action_table_row668*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[671]) /*AbstractArray::add*/;
     variable[672] = variable[0];
-    variable[672] = ((parser_tables___ParserTable___action_table_row669_t)CALL(variable[672],COLOR_parser_tables___ParserTable___action_table_row669))(variable[672]) /*ParserTable::action_table_row669*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[672]) /*AbstractArray::add*/;
+    variable[672] = CALL_parser_tables___ParserTable___action_table_row669(variable[672])(variable[672]) /*ParserTable::action_table_row669*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[672]) /*AbstractArray::add*/;
     variable[673] = variable[0];
-    variable[673] = ((parser_tables___ParserTable___action_table_row670_t)CALL(variable[673],COLOR_parser_tables___ParserTable___action_table_row670))(variable[673]) /*ParserTable::action_table_row670*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[673]) /*AbstractArray::add*/;
+    variable[673] = CALL_parser_tables___ParserTable___action_table_row670(variable[673])(variable[673]) /*ParserTable::action_table_row670*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[673]) /*AbstractArray::add*/;
     variable[674] = variable[0];
-    variable[674] = ((parser_tables___ParserTable___action_table_row671_t)CALL(variable[674],COLOR_parser_tables___ParserTable___action_table_row671))(variable[674]) /*ParserTable::action_table_row671*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[674]) /*AbstractArray::add*/;
+    variable[674] = CALL_parser_tables___ParserTable___action_table_row671(variable[674])(variable[674]) /*ParserTable::action_table_row671*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[674]) /*AbstractArray::add*/;
     variable[675] = variable[0];
-    variable[675] = ((parser_tables___ParserTable___action_table_row672_t)CALL(variable[675],COLOR_parser_tables___ParserTable___action_table_row672))(variable[675]) /*ParserTable::action_table_row672*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[675]) /*AbstractArray::add*/;
+    variable[675] = CALL_parser_tables___ParserTable___action_table_row672(variable[675])(variable[675]) /*ParserTable::action_table_row672*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[675]) /*AbstractArray::add*/;
     variable[676] = variable[0];
-    variable[676] = ((parser_tables___ParserTable___action_table_row673_t)CALL(variable[676],COLOR_parser_tables___ParserTable___action_table_row673))(variable[676]) /*ParserTable::action_table_row673*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[676]) /*AbstractArray::add*/;
+    variable[676] = CALL_parser_tables___ParserTable___action_table_row673(variable[676])(variable[676]) /*ParserTable::action_table_row673*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[676]) /*AbstractArray::add*/;
     variable[677] = variable[0];
-    variable[677] = ((parser_tables___ParserTable___action_table_row674_t)CALL(variable[677],COLOR_parser_tables___ParserTable___action_table_row674))(variable[677]) /*ParserTable::action_table_row674*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[677]) /*AbstractArray::add*/;
+    variable[677] = CALL_parser_tables___ParserTable___action_table_row674(variable[677])(variable[677]) /*ParserTable::action_table_row674*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[677]) /*AbstractArray::add*/;
     variable[678] = variable[0];
-    variable[678] = ((parser_tables___ParserTable___action_table_row675_t)CALL(variable[678],COLOR_parser_tables___ParserTable___action_table_row675))(variable[678]) /*ParserTable::action_table_row675*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[678]) /*AbstractArray::add*/;
+    variable[678] = CALL_parser_tables___ParserTable___action_table_row675(variable[678])(variable[678]) /*ParserTable::action_table_row675*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[678]) /*AbstractArray::add*/;
     variable[679] = variable[0];
-    variable[679] = ((parser_tables___ParserTable___action_table_row676_t)CALL(variable[679],COLOR_parser_tables___ParserTable___action_table_row676))(variable[679]) /*ParserTable::action_table_row676*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[679]) /*AbstractArray::add*/;
+    variable[679] = CALL_parser_tables___ParserTable___action_table_row676(variable[679])(variable[679]) /*ParserTable::action_table_row676*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[679]) /*AbstractArray::add*/;
     variable[680] = variable[0];
-    variable[680] = ((parser_tables___ParserTable___action_table_row677_t)CALL(variable[680],COLOR_parser_tables___ParserTable___action_table_row677))(variable[680]) /*ParserTable::action_table_row677*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[680]) /*AbstractArray::add*/;
+    variable[680] = CALL_parser_tables___ParserTable___action_table_row677(variable[680])(variable[680]) /*ParserTable::action_table_row677*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[680]) /*AbstractArray::add*/;
     variable[681] = variable[0];
-    variable[681] = ((parser_tables___ParserTable___action_table_row678_t)CALL(variable[681],COLOR_parser_tables___ParserTable___action_table_row678))(variable[681]) /*ParserTable::action_table_row678*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[681]) /*AbstractArray::add*/;
+    variable[681] = CALL_parser_tables___ParserTable___action_table_row678(variable[681])(variable[681]) /*ParserTable::action_table_row678*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[681]) /*AbstractArray::add*/;
     variable[682] = variable[0];
-    variable[682] = ((parser_tables___ParserTable___action_table_row679_t)CALL(variable[682],COLOR_parser_tables___ParserTable___action_table_row679))(variable[682]) /*ParserTable::action_table_row679*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[682]) /*AbstractArray::add*/;
+    variable[682] = CALL_parser_tables___ParserTable___action_table_row679(variable[682])(variable[682]) /*ParserTable::action_table_row679*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[682]) /*AbstractArray::add*/;
     variable[683] = variable[0];
-    variable[683] = ((parser_tables___ParserTable___action_table_row680_t)CALL(variable[683],COLOR_parser_tables___ParserTable___action_table_row680))(variable[683]) /*ParserTable::action_table_row680*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[683]) /*AbstractArray::add*/;
+    variable[683] = CALL_parser_tables___ParserTable___action_table_row680(variable[683])(variable[683]) /*ParserTable::action_table_row680*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[683]) /*AbstractArray::add*/;
     variable[684] = variable[0];
-    variable[684] = ((parser_tables___ParserTable___action_table_row681_t)CALL(variable[684],COLOR_parser_tables___ParserTable___action_table_row681))(variable[684]) /*ParserTable::action_table_row681*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[684]) /*AbstractArray::add*/;
+    variable[684] = CALL_parser_tables___ParserTable___action_table_row681(variable[684])(variable[684]) /*ParserTable::action_table_row681*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[684]) /*AbstractArray::add*/;
     variable[685] = variable[0];
-    variable[685] = ((parser_tables___ParserTable___action_table_row682_t)CALL(variable[685],COLOR_parser_tables___ParserTable___action_table_row682))(variable[685]) /*ParserTable::action_table_row682*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[685]) /*AbstractArray::add*/;
+    variable[685] = CALL_parser_tables___ParserTable___action_table_row682(variable[685])(variable[685]) /*ParserTable::action_table_row682*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[685]) /*AbstractArray::add*/;
     variable[686] = variable[0];
-    variable[686] = ((parser_tables___ParserTable___action_table_row683_t)CALL(variable[686],COLOR_parser_tables___ParserTable___action_table_row683))(variable[686]) /*ParserTable::action_table_row683*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[686]) /*AbstractArray::add*/;
+    variable[686] = CALL_parser_tables___ParserTable___action_table_row683(variable[686])(variable[686]) /*ParserTable::action_table_row683*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[686]) /*AbstractArray::add*/;
     variable[687] = variable[0];
-    variable[687] = ((parser_tables___ParserTable___action_table_row684_t)CALL(variable[687],COLOR_parser_tables___ParserTable___action_table_row684))(variable[687]) /*ParserTable::action_table_row684*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[687]) /*AbstractArray::add*/;
+    variable[687] = CALL_parser_tables___ParserTable___action_table_row684(variable[687])(variable[687]) /*ParserTable::action_table_row684*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[687]) /*AbstractArray::add*/;
     variable[688] = variable[0];
-    variable[688] = ((parser_tables___ParserTable___action_table_row685_t)CALL(variable[688],COLOR_parser_tables___ParserTable___action_table_row685))(variable[688]) /*ParserTable::action_table_row685*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[688]) /*AbstractArray::add*/;
+    variable[688] = CALL_parser_tables___ParserTable___action_table_row685(variable[688])(variable[688]) /*ParserTable::action_table_row685*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[688]) /*AbstractArray::add*/;
     variable[689] = variable[0];
-    variable[689] = ((parser_tables___ParserTable___action_table_row686_t)CALL(variable[689],COLOR_parser_tables___ParserTable___action_table_row686))(variable[689]) /*ParserTable::action_table_row686*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[689]) /*AbstractArray::add*/;
+    variable[689] = CALL_parser_tables___ParserTable___action_table_row686(variable[689])(variable[689]) /*ParserTable::action_table_row686*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[689]) /*AbstractArray::add*/;
     variable[690] = variable[0];
-    variable[690] = ((parser_tables___ParserTable___action_table_row687_t)CALL(variable[690],COLOR_parser_tables___ParserTable___action_table_row687))(variable[690]) /*ParserTable::action_table_row687*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[690]) /*AbstractArray::add*/;
+    variable[690] = CALL_parser_tables___ParserTable___action_table_row687(variable[690])(variable[690]) /*ParserTable::action_table_row687*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[690]) /*AbstractArray::add*/;
     variable[691] = variable[0];
-    variable[691] = ((parser_tables___ParserTable___action_table_row688_t)CALL(variable[691],COLOR_parser_tables___ParserTable___action_table_row688))(variable[691]) /*ParserTable::action_table_row688*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[691]) /*AbstractArray::add*/;
+    variable[691] = CALL_parser_tables___ParserTable___action_table_row688(variable[691])(variable[691]) /*ParserTable::action_table_row688*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[691]) /*AbstractArray::add*/;
     variable[692] = variable[0];
-    variable[692] = ((parser_tables___ParserTable___action_table_row689_t)CALL(variable[692],COLOR_parser_tables___ParserTable___action_table_row689))(variable[692]) /*ParserTable::action_table_row689*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[692]) /*AbstractArray::add*/;
+    variable[692] = CALL_parser_tables___ParserTable___action_table_row689(variable[692])(variable[692]) /*ParserTable::action_table_row689*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[692]) /*AbstractArray::add*/;
     variable[693] = variable[0];
-    variable[693] = ((parser_tables___ParserTable___action_table_row690_t)CALL(variable[693],COLOR_parser_tables___ParserTable___action_table_row690))(variable[693]) /*ParserTable::action_table_row690*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[693]) /*AbstractArray::add*/;
+    variable[693] = CALL_parser_tables___ParserTable___action_table_row690(variable[693])(variable[693]) /*ParserTable::action_table_row690*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[693]) /*AbstractArray::add*/;
     variable[694] = variable[0];
-    variable[694] = ((parser_tables___ParserTable___action_table_row691_t)CALL(variable[694],COLOR_parser_tables___ParserTable___action_table_row691))(variable[694]) /*ParserTable::action_table_row691*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[694]) /*AbstractArray::add*/;
+    variable[694] = CALL_parser_tables___ParserTable___action_table_row691(variable[694])(variable[694]) /*ParserTable::action_table_row691*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[694]) /*AbstractArray::add*/;
     variable[695] = variable[0];
-    variable[695] = ((parser_tables___ParserTable___action_table_row692_t)CALL(variable[695],COLOR_parser_tables___ParserTable___action_table_row692))(variable[695]) /*ParserTable::action_table_row692*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[695]) /*AbstractArray::add*/;
+    variable[695] = CALL_parser_tables___ParserTable___action_table_row692(variable[695])(variable[695]) /*ParserTable::action_table_row692*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[695]) /*AbstractArray::add*/;
     variable[696] = variable[0];
-    variable[696] = ((parser_tables___ParserTable___action_table_row693_t)CALL(variable[696],COLOR_parser_tables___ParserTable___action_table_row693))(variable[696]) /*ParserTable::action_table_row693*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[696]) /*AbstractArray::add*/;
+    variable[696] = CALL_parser_tables___ParserTable___action_table_row693(variable[696])(variable[696]) /*ParserTable::action_table_row693*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[696]) /*AbstractArray::add*/;
     variable[697] = variable[0];
-    variable[697] = ((parser_tables___ParserTable___action_table_row694_t)CALL(variable[697],COLOR_parser_tables___ParserTable___action_table_row694))(variable[697]) /*ParserTable::action_table_row694*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[697]) /*AbstractArray::add*/;
+    variable[697] = CALL_parser_tables___ParserTable___action_table_row694(variable[697])(variable[697]) /*ParserTable::action_table_row694*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[697]) /*AbstractArray::add*/;
     variable[698] = variable[0];
-    variable[698] = ((parser_tables___ParserTable___action_table_row695_t)CALL(variable[698],COLOR_parser_tables___ParserTable___action_table_row695))(variable[698]) /*ParserTable::action_table_row695*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[698]) /*AbstractArray::add*/;
+    variable[698] = CALL_parser_tables___ParserTable___action_table_row695(variable[698])(variable[698]) /*ParserTable::action_table_row695*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[698]) /*AbstractArray::add*/;
     variable[699] = variable[0];
-    variable[699] = ((parser_tables___ParserTable___action_table_row696_t)CALL(variable[699],COLOR_parser_tables___ParserTable___action_table_row696))(variable[699]) /*ParserTable::action_table_row696*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[699]) /*AbstractArray::add*/;
+    variable[699] = CALL_parser_tables___ParserTable___action_table_row696(variable[699])(variable[699]) /*ParserTable::action_table_row696*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[699]) /*AbstractArray::add*/;
     variable[700] = variable[0];
-    variable[700] = ((parser_tables___ParserTable___action_table_row697_t)CALL(variable[700],COLOR_parser_tables___ParserTable___action_table_row697))(variable[700]) /*ParserTable::action_table_row697*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[700]) /*AbstractArray::add*/;
+    variable[700] = CALL_parser_tables___ParserTable___action_table_row697(variable[700])(variable[700]) /*ParserTable::action_table_row697*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[700]) /*AbstractArray::add*/;
     variable[701] = variable[0];
-    variable[701] = ((parser_tables___ParserTable___action_table_row698_t)CALL(variable[701],COLOR_parser_tables___ParserTable___action_table_row698))(variable[701]) /*ParserTable::action_table_row698*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[701]) /*AbstractArray::add*/;
+    variable[701] = CALL_parser_tables___ParserTable___action_table_row698(variable[701])(variable[701]) /*ParserTable::action_table_row698*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[701]) /*AbstractArray::add*/;
     variable[702] = variable[0];
-    variable[702] = ((parser_tables___ParserTable___action_table_row699_t)CALL(variable[702],COLOR_parser_tables___ParserTable___action_table_row699))(variable[702]) /*ParserTable::action_table_row699*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[702]) /*AbstractArray::add*/;
+    variable[702] = CALL_parser_tables___ParserTable___action_table_row699(variable[702])(variable[702]) /*ParserTable::action_table_row699*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[702]) /*AbstractArray::add*/;
     variable[703] = variable[0];
-    variable[703] = ((parser_tables___ParserTable___action_table_row700_t)CALL(variable[703],COLOR_parser_tables___ParserTable___action_table_row700))(variable[703]) /*ParserTable::action_table_row700*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[703]) /*AbstractArray::add*/;
+    variable[703] = CALL_parser_tables___ParserTable___action_table_row700(variable[703])(variable[703]) /*ParserTable::action_table_row700*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[703]) /*AbstractArray::add*/;
     variable[704] = variable[0];
-    variable[704] = ((parser_tables___ParserTable___action_table_row701_t)CALL(variable[704],COLOR_parser_tables___ParserTable___action_table_row701))(variable[704]) /*ParserTable::action_table_row701*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[704]) /*AbstractArray::add*/;
+    variable[704] = CALL_parser_tables___ParserTable___action_table_row701(variable[704])(variable[704]) /*ParserTable::action_table_row701*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[704]) /*AbstractArray::add*/;
     variable[705] = variable[0];
-    variable[705] = ((parser_tables___ParserTable___action_table_row702_t)CALL(variable[705],COLOR_parser_tables___ParserTable___action_table_row702))(variable[705]) /*ParserTable::action_table_row702*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[705]) /*AbstractArray::add*/;
+    variable[705] = CALL_parser_tables___ParserTable___action_table_row702(variable[705])(variable[705]) /*ParserTable::action_table_row702*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[705]) /*AbstractArray::add*/;
     variable[706] = variable[0];
-    variable[706] = ((parser_tables___ParserTable___action_table_row703_t)CALL(variable[706],COLOR_parser_tables___ParserTable___action_table_row703))(variable[706]) /*ParserTable::action_table_row703*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[706]) /*AbstractArray::add*/;
+    variable[706] = CALL_parser_tables___ParserTable___action_table_row703(variable[706])(variable[706]) /*ParserTable::action_table_row703*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[706]) /*AbstractArray::add*/;
     variable[707] = variable[0];
-    variable[707] = ((parser_tables___ParserTable___action_table_row704_t)CALL(variable[707],COLOR_parser_tables___ParserTable___action_table_row704))(variable[707]) /*ParserTable::action_table_row704*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[707]) /*AbstractArray::add*/;
+    variable[707] = CALL_parser_tables___ParserTable___action_table_row704(variable[707])(variable[707]) /*ParserTable::action_table_row704*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[707]) /*AbstractArray::add*/;
     variable[708] = variable[0];
-    variable[708] = ((parser_tables___ParserTable___action_table_row705_t)CALL(variable[708],COLOR_parser_tables___ParserTable___action_table_row705))(variable[708]) /*ParserTable::action_table_row705*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[708]) /*AbstractArray::add*/;
+    variable[708] = CALL_parser_tables___ParserTable___action_table_row705(variable[708])(variable[708]) /*ParserTable::action_table_row705*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[708]) /*AbstractArray::add*/;
     variable[709] = variable[0];
-    variable[709] = ((parser_tables___ParserTable___action_table_row706_t)CALL(variable[709],COLOR_parser_tables___ParserTable___action_table_row706))(variable[709]) /*ParserTable::action_table_row706*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[709]) /*AbstractArray::add*/;
+    variable[709] = CALL_parser_tables___ParserTable___action_table_row706(variable[709])(variable[709]) /*ParserTable::action_table_row706*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[709]) /*AbstractArray::add*/;
     variable[710] = variable[0];
-    variable[710] = ((parser_tables___ParserTable___action_table_row707_t)CALL(variable[710],COLOR_parser_tables___ParserTable___action_table_row707))(variable[710]) /*ParserTable::action_table_row707*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[710]) /*AbstractArray::add*/;
+    variable[710] = CALL_parser_tables___ParserTable___action_table_row707(variable[710])(variable[710]) /*ParserTable::action_table_row707*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[710]) /*AbstractArray::add*/;
     variable[711] = variable[0];
-    variable[711] = ((parser_tables___ParserTable___action_table_row708_t)CALL(variable[711],COLOR_parser_tables___ParserTable___action_table_row708))(variable[711]) /*ParserTable::action_table_row708*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[711]) /*AbstractArray::add*/;
+    variable[711] = CALL_parser_tables___ParserTable___action_table_row708(variable[711])(variable[711]) /*ParserTable::action_table_row708*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[711]) /*AbstractArray::add*/;
     variable[712] = variable[0];
-    variable[712] = ((parser_tables___ParserTable___action_table_row709_t)CALL(variable[712],COLOR_parser_tables___ParserTable___action_table_row709))(variable[712]) /*ParserTable::action_table_row709*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[712]) /*AbstractArray::add*/;
+    variable[712] = CALL_parser_tables___ParserTable___action_table_row709(variable[712])(variable[712]) /*ParserTable::action_table_row709*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[712]) /*AbstractArray::add*/;
     variable[713] = variable[0];
-    variable[713] = ((parser_tables___ParserTable___action_table_row710_t)CALL(variable[713],COLOR_parser_tables___ParserTable___action_table_row710))(variable[713]) /*ParserTable::action_table_row710*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[713]) /*AbstractArray::add*/;
+    variable[713] = CALL_parser_tables___ParserTable___action_table_row710(variable[713])(variable[713]) /*ParserTable::action_table_row710*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[713]) /*AbstractArray::add*/;
     variable[714] = variable[0];
-    variable[714] = ((parser_tables___ParserTable___action_table_row711_t)CALL(variable[714],COLOR_parser_tables___ParserTable___action_table_row711))(variable[714]) /*ParserTable::action_table_row711*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[714]) /*AbstractArray::add*/;
+    variable[714] = CALL_parser_tables___ParserTable___action_table_row711(variable[714])(variable[714]) /*ParserTable::action_table_row711*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[714]) /*AbstractArray::add*/;
     variable[715] = variable[0];
-    variable[715] = ((parser_tables___ParserTable___action_table_row712_t)CALL(variable[715],COLOR_parser_tables___ParserTable___action_table_row712))(variable[715]) /*ParserTable::action_table_row712*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[715]) /*AbstractArray::add*/;
+    variable[715] = CALL_parser_tables___ParserTable___action_table_row712(variable[715])(variable[715]) /*ParserTable::action_table_row712*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[715]) /*AbstractArray::add*/;
     variable[716] = variable[0];
-    variable[716] = ((parser_tables___ParserTable___action_table_row713_t)CALL(variable[716],COLOR_parser_tables___ParserTable___action_table_row713))(variable[716]) /*ParserTable::action_table_row713*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[716]) /*AbstractArray::add*/;
+    variable[716] = CALL_parser_tables___ParserTable___action_table_row713(variable[716])(variable[716]) /*ParserTable::action_table_row713*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[716]) /*AbstractArray::add*/;
     variable[717] = variable[0];
-    variable[717] = ((parser_tables___ParserTable___action_table_row714_t)CALL(variable[717],COLOR_parser_tables___ParserTable___action_table_row714))(variable[717]) /*ParserTable::action_table_row714*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[717]) /*AbstractArray::add*/;
+    variable[717] = CALL_parser_tables___ParserTable___action_table_row714(variable[717])(variable[717]) /*ParserTable::action_table_row714*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[717]) /*AbstractArray::add*/;
     variable[718] = variable[0];
-    variable[718] = ((parser_tables___ParserTable___action_table_row715_t)CALL(variable[718],COLOR_parser_tables___ParserTable___action_table_row715))(variable[718]) /*ParserTable::action_table_row715*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[718]) /*AbstractArray::add*/;
+    variable[718] = CALL_parser_tables___ParserTable___action_table_row715(variable[718])(variable[718]) /*ParserTable::action_table_row715*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[718]) /*AbstractArray::add*/;
     variable[719] = variable[0];
-    variable[719] = ((parser_tables___ParserTable___action_table_row716_t)CALL(variable[719],COLOR_parser_tables___ParserTable___action_table_row716))(variable[719]) /*ParserTable::action_table_row716*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[719]) /*AbstractArray::add*/;
+    variable[719] = CALL_parser_tables___ParserTable___action_table_row716(variable[719])(variable[719]) /*ParserTable::action_table_row716*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[719]) /*AbstractArray::add*/;
     variable[720] = variable[0];
-    variable[720] = ((parser_tables___ParserTable___action_table_row717_t)CALL(variable[720],COLOR_parser_tables___ParserTable___action_table_row717))(variable[720]) /*ParserTable::action_table_row717*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[720]) /*AbstractArray::add*/;
+    variable[720] = CALL_parser_tables___ParserTable___action_table_row717(variable[720])(variable[720]) /*ParserTable::action_table_row717*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[720]) /*AbstractArray::add*/;
     variable[721] = variable[0];
-    variable[721] = ((parser_tables___ParserTable___action_table_row718_t)CALL(variable[721],COLOR_parser_tables___ParserTable___action_table_row718))(variable[721]) /*ParserTable::action_table_row718*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[721]) /*AbstractArray::add*/;
+    variable[721] = CALL_parser_tables___ParserTable___action_table_row718(variable[721])(variable[721]) /*ParserTable::action_table_row718*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[721]) /*AbstractArray::add*/;
     variable[722] = variable[0];
-    variable[722] = ((parser_tables___ParserTable___action_table_row719_t)CALL(variable[722],COLOR_parser_tables___ParserTable___action_table_row719))(variable[722]) /*ParserTable::action_table_row719*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[722]) /*AbstractArray::add*/;
+    variable[722] = CALL_parser_tables___ParserTable___action_table_row719(variable[722])(variable[722]) /*ParserTable::action_table_row719*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[722]) /*AbstractArray::add*/;
     variable[723] = variable[0];
-    variable[723] = ((parser_tables___ParserTable___action_table_row720_t)CALL(variable[723],COLOR_parser_tables___ParserTable___action_table_row720))(variable[723]) /*ParserTable::action_table_row720*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[723]) /*AbstractArray::add*/;
+    variable[723] = CALL_parser_tables___ParserTable___action_table_row720(variable[723])(variable[723]) /*ParserTable::action_table_row720*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[723]) /*AbstractArray::add*/;
     variable[724] = variable[0];
-    variable[724] = ((parser_tables___ParserTable___action_table_row721_t)CALL(variable[724],COLOR_parser_tables___ParserTable___action_table_row721))(variable[724]) /*ParserTable::action_table_row721*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[724]) /*AbstractArray::add*/;
+    variable[724] = CALL_parser_tables___ParserTable___action_table_row721(variable[724])(variable[724]) /*ParserTable::action_table_row721*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[724]) /*AbstractArray::add*/;
     variable[725] = variable[0];
-    variable[725] = ((parser_tables___ParserTable___action_table_row722_t)CALL(variable[725],COLOR_parser_tables___ParserTable___action_table_row722))(variable[725]) /*ParserTable::action_table_row722*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[725]) /*AbstractArray::add*/;
+    variable[725] = CALL_parser_tables___ParserTable___action_table_row722(variable[725])(variable[725]) /*ParserTable::action_table_row722*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[725]) /*AbstractArray::add*/;
     variable[726] = variable[0];
-    variable[726] = ((parser_tables___ParserTable___action_table_row723_t)CALL(variable[726],COLOR_parser_tables___ParserTable___action_table_row723))(variable[726]) /*ParserTable::action_table_row723*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[726]) /*AbstractArray::add*/;
+    variable[726] = CALL_parser_tables___ParserTable___action_table_row723(variable[726])(variable[726]) /*ParserTable::action_table_row723*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[726]) /*AbstractArray::add*/;
     variable[727] = variable[0];
-    variable[727] = ((parser_tables___ParserTable___action_table_row724_t)CALL(variable[727],COLOR_parser_tables___ParserTable___action_table_row724))(variable[727]) /*ParserTable::action_table_row724*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[727]) /*AbstractArray::add*/;
+    variable[727] = CALL_parser_tables___ParserTable___action_table_row724(variable[727])(variable[727]) /*ParserTable::action_table_row724*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[727]) /*AbstractArray::add*/;
     variable[728] = variable[0];
-    variable[728] = ((parser_tables___ParserTable___action_table_row725_t)CALL(variable[728],COLOR_parser_tables___ParserTable___action_table_row725))(variable[728]) /*ParserTable::action_table_row725*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[728]) /*AbstractArray::add*/;
+    variable[728] = CALL_parser_tables___ParserTable___action_table_row725(variable[728])(variable[728]) /*ParserTable::action_table_row725*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[728]) /*AbstractArray::add*/;
     variable[729] = variable[0];
-    variable[729] = ((parser_tables___ParserTable___action_table_row726_t)CALL(variable[729],COLOR_parser_tables___ParserTable___action_table_row726))(variable[729]) /*ParserTable::action_table_row726*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[729]) /*AbstractArray::add*/;
+    variable[729] = CALL_parser_tables___ParserTable___action_table_row726(variable[729])(variable[729]) /*ParserTable::action_table_row726*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[729]) /*AbstractArray::add*/;
     variable[730] = variable[0];
-    variable[730] = ((parser_tables___ParserTable___action_table_row727_t)CALL(variable[730],COLOR_parser_tables___ParserTable___action_table_row727))(variable[730]) /*ParserTable::action_table_row727*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[730]) /*AbstractArray::add*/;
+    variable[730] = CALL_parser_tables___ParserTable___action_table_row727(variable[730])(variable[730]) /*ParserTable::action_table_row727*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[730]) /*AbstractArray::add*/;
     variable[731] = variable[0];
-    variable[731] = ((parser_tables___ParserTable___action_table_row728_t)CALL(variable[731],COLOR_parser_tables___ParserTable___action_table_row728))(variable[731]) /*ParserTable::action_table_row728*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[731]) /*AbstractArray::add*/;
+    variable[731] = CALL_parser_tables___ParserTable___action_table_row728(variable[731])(variable[731]) /*ParserTable::action_table_row728*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[731]) /*AbstractArray::add*/;
     variable[732] = variable[0];
-    variable[732] = ((parser_tables___ParserTable___action_table_row729_t)CALL(variable[732],COLOR_parser_tables___ParserTable___action_table_row729))(variable[732]) /*ParserTable::action_table_row729*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[732]) /*AbstractArray::add*/;
+    variable[732] = CALL_parser_tables___ParserTable___action_table_row729(variable[732])(variable[732]) /*ParserTable::action_table_row729*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[732]) /*AbstractArray::add*/;
     variable[733] = variable[0];
-    variable[733] = ((parser_tables___ParserTable___action_table_row730_t)CALL(variable[733],COLOR_parser_tables___ParserTable___action_table_row730))(variable[733]) /*ParserTable::action_table_row730*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[733]) /*AbstractArray::add*/;
+    variable[733] = CALL_parser_tables___ParserTable___action_table_row730(variable[733])(variable[733]) /*ParserTable::action_table_row730*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[733]) /*AbstractArray::add*/;
     variable[734] = variable[0];
-    variable[734] = ((parser_tables___ParserTable___action_table_row731_t)CALL(variable[734],COLOR_parser_tables___ParserTable___action_table_row731))(variable[734]) /*ParserTable::action_table_row731*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[734]) /*AbstractArray::add*/;
+    variable[734] = CALL_parser_tables___ParserTable___action_table_row731(variable[734])(variable[734]) /*ParserTable::action_table_row731*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[734]) /*AbstractArray::add*/;
     variable[735] = variable[0];
-    variable[735] = ((parser_tables___ParserTable___action_table_row732_t)CALL(variable[735],COLOR_parser_tables___ParserTable___action_table_row732))(variable[735]) /*ParserTable::action_table_row732*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[735]) /*AbstractArray::add*/;
+    variable[735] = CALL_parser_tables___ParserTable___action_table_row732(variable[735])(variable[735]) /*ParserTable::action_table_row732*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[735]) /*AbstractArray::add*/;
     variable[736] = variable[0];
-    variable[736] = ((parser_tables___ParserTable___action_table_row733_t)CALL(variable[736],COLOR_parser_tables___ParserTable___action_table_row733))(variable[736]) /*ParserTable::action_table_row733*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[736]) /*AbstractArray::add*/;
+    variable[736] = CALL_parser_tables___ParserTable___action_table_row733(variable[736])(variable[736]) /*ParserTable::action_table_row733*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[736]) /*AbstractArray::add*/;
     variable[737] = variable[0];
-    variable[737] = ((parser_tables___ParserTable___action_table_row734_t)CALL(variable[737],COLOR_parser_tables___ParserTable___action_table_row734))(variable[737]) /*ParserTable::action_table_row734*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[737]) /*AbstractArray::add*/;
+    variable[737] = CALL_parser_tables___ParserTable___action_table_row734(variable[737])(variable[737]) /*ParserTable::action_table_row734*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[737]) /*AbstractArray::add*/;
     variable[738] = variable[0];
-    variable[738] = ((parser_tables___ParserTable___action_table_row735_t)CALL(variable[738],COLOR_parser_tables___ParserTable___action_table_row735))(variable[738]) /*ParserTable::action_table_row735*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[738]) /*AbstractArray::add*/;
+    variable[738] = CALL_parser_tables___ParserTable___action_table_row735(variable[738])(variable[738]) /*ParserTable::action_table_row735*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[738]) /*AbstractArray::add*/;
     variable[739] = variable[0];
-    variable[739] = ((parser_tables___ParserTable___action_table_row736_t)CALL(variable[739],COLOR_parser_tables___ParserTable___action_table_row736))(variable[739]) /*ParserTable::action_table_row736*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[739]) /*AbstractArray::add*/;
+    variable[739] = CALL_parser_tables___ParserTable___action_table_row736(variable[739])(variable[739]) /*ParserTable::action_table_row736*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[739]) /*AbstractArray::add*/;
     variable[740] = variable[0];
-    variable[740] = ((parser_tables___ParserTable___action_table_row737_t)CALL(variable[740],COLOR_parser_tables___ParserTable___action_table_row737))(variable[740]) /*ParserTable::action_table_row737*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[740]) /*AbstractArray::add*/;
+    variable[740] = CALL_parser_tables___ParserTable___action_table_row737(variable[740])(variable[740]) /*ParserTable::action_table_row737*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[740]) /*AbstractArray::add*/;
     variable[741] = variable[0];
-    variable[741] = ((parser_tables___ParserTable___action_table_row738_t)CALL(variable[741],COLOR_parser_tables___ParserTable___action_table_row738))(variable[741]) /*ParserTable::action_table_row738*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[741]) /*AbstractArray::add*/;
+    variable[741] = CALL_parser_tables___ParserTable___action_table_row738(variable[741])(variable[741]) /*ParserTable::action_table_row738*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[741]) /*AbstractArray::add*/;
     variable[742] = variable[0];
-    variable[742] = ((parser_tables___ParserTable___action_table_row739_t)CALL(variable[742],COLOR_parser_tables___ParserTable___action_table_row739))(variable[742]) /*ParserTable::action_table_row739*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[742]) /*AbstractArray::add*/;
+    variable[742] = CALL_parser_tables___ParserTable___action_table_row739(variable[742])(variable[742]) /*ParserTable::action_table_row739*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[742]) /*AbstractArray::add*/;
     variable[743] = variable[0];
-    variable[743] = ((parser_tables___ParserTable___action_table_row740_t)CALL(variable[743],COLOR_parser_tables___ParserTable___action_table_row740))(variable[743]) /*ParserTable::action_table_row740*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[743]) /*AbstractArray::add*/;
+    variable[743] = CALL_parser_tables___ParserTable___action_table_row740(variable[743])(variable[743]) /*ParserTable::action_table_row740*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[743]) /*AbstractArray::add*/;
     variable[744] = variable[0];
-    variable[744] = ((parser_tables___ParserTable___action_table_row741_t)CALL(variable[744],COLOR_parser_tables___ParserTable___action_table_row741))(variable[744]) /*ParserTable::action_table_row741*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[744]) /*AbstractArray::add*/;
+    variable[744] = CALL_parser_tables___ParserTable___action_table_row741(variable[744])(variable[744]) /*ParserTable::action_table_row741*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[744]) /*AbstractArray::add*/;
     variable[745] = variable[0];
-    variable[745] = ((parser_tables___ParserTable___action_table_row742_t)CALL(variable[745],COLOR_parser_tables___ParserTable___action_table_row742))(variable[745]) /*ParserTable::action_table_row742*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[745]) /*AbstractArray::add*/;
+    variable[745] = CALL_parser_tables___ParserTable___action_table_row742(variable[745])(variable[745]) /*ParserTable::action_table_row742*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[745]) /*AbstractArray::add*/;
     variable[746] = variable[0];
-    variable[746] = ((parser_tables___ParserTable___action_table_row743_t)CALL(variable[746],COLOR_parser_tables___ParserTable___action_table_row743))(variable[746]) /*ParserTable::action_table_row743*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[746]) /*AbstractArray::add*/;
+    variable[746] = CALL_parser_tables___ParserTable___action_table_row743(variable[746])(variable[746]) /*ParserTable::action_table_row743*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[746]) /*AbstractArray::add*/;
     variable[747] = variable[0];
-    variable[747] = ((parser_tables___ParserTable___action_table_row744_t)CALL(variable[747],COLOR_parser_tables___ParserTable___action_table_row744))(variable[747]) /*ParserTable::action_table_row744*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[747]) /*AbstractArray::add*/;
+    variable[747] = CALL_parser_tables___ParserTable___action_table_row744(variable[747])(variable[747]) /*ParserTable::action_table_row744*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[747]) /*AbstractArray::add*/;
     variable[748] = variable[0];
-    variable[748] = ((parser_tables___ParserTable___action_table_row745_t)CALL(variable[748],COLOR_parser_tables___ParserTable___action_table_row745))(variable[748]) /*ParserTable::action_table_row745*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[748]) /*AbstractArray::add*/;
+    variable[748] = CALL_parser_tables___ParserTable___action_table_row745(variable[748])(variable[748]) /*ParserTable::action_table_row745*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[748]) /*AbstractArray::add*/;
     variable[749] = variable[0];
-    variable[749] = ((parser_tables___ParserTable___action_table_row746_t)CALL(variable[749],COLOR_parser_tables___ParserTable___action_table_row746))(variable[749]) /*ParserTable::action_table_row746*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[749]) /*AbstractArray::add*/;
+    variable[749] = CALL_parser_tables___ParserTable___action_table_row746(variable[749])(variable[749]) /*ParserTable::action_table_row746*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[749]) /*AbstractArray::add*/;
     variable[750] = variable[0];
-    variable[750] = ((parser_tables___ParserTable___action_table_row747_t)CALL(variable[750],COLOR_parser_tables___ParserTable___action_table_row747))(variable[750]) /*ParserTable::action_table_row747*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[750]) /*AbstractArray::add*/;
+    variable[750] = CALL_parser_tables___ParserTable___action_table_row747(variable[750])(variable[750]) /*ParserTable::action_table_row747*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[750]) /*AbstractArray::add*/;
     variable[751] = variable[0];
-    variable[751] = ((parser_tables___ParserTable___action_table_row748_t)CALL(variable[751],COLOR_parser_tables___ParserTable___action_table_row748))(variable[751]) /*ParserTable::action_table_row748*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[751]) /*AbstractArray::add*/;
+    variable[751] = CALL_parser_tables___ParserTable___action_table_row748(variable[751])(variable[751]) /*ParserTable::action_table_row748*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[751]) /*AbstractArray::add*/;
     variable[752] = variable[0];
-    variable[752] = ((parser_tables___ParserTable___action_table_row749_t)CALL(variable[752],COLOR_parser_tables___ParserTable___action_table_row749))(variable[752]) /*ParserTable::action_table_row749*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[752]) /*AbstractArray::add*/;
+    variable[752] = CALL_parser_tables___ParserTable___action_table_row749(variable[752])(variable[752]) /*ParserTable::action_table_row749*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[752]) /*AbstractArray::add*/;
     variable[753] = variable[0];
-    variable[753] = ((parser_tables___ParserTable___action_table_row750_t)CALL(variable[753],COLOR_parser_tables___ParserTable___action_table_row750))(variable[753]) /*ParserTable::action_table_row750*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[753]) /*AbstractArray::add*/;
+    variable[753] = CALL_parser_tables___ParserTable___action_table_row750(variable[753])(variable[753]) /*ParserTable::action_table_row750*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[753]) /*AbstractArray::add*/;
     variable[754] = variable[0];
-    variable[754] = ((parser_tables___ParserTable___action_table_row751_t)CALL(variable[754],COLOR_parser_tables___ParserTable___action_table_row751))(variable[754]) /*ParserTable::action_table_row751*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[754]) /*AbstractArray::add*/;
+    variable[754] = CALL_parser_tables___ParserTable___action_table_row751(variable[754])(variable[754]) /*ParserTable::action_table_row751*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[754]) /*AbstractArray::add*/;
     variable[755] = variable[0];
-    variable[755] = ((parser_tables___ParserTable___action_table_row752_t)CALL(variable[755],COLOR_parser_tables___ParserTable___action_table_row752))(variable[755]) /*ParserTable::action_table_row752*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[755]) /*AbstractArray::add*/;
+    variable[755] = CALL_parser_tables___ParserTable___action_table_row752(variable[755])(variable[755]) /*ParserTable::action_table_row752*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[755]) /*AbstractArray::add*/;
     variable[756] = variable[0];
-    variable[756] = ((parser_tables___ParserTable___action_table_row753_t)CALL(variable[756],COLOR_parser_tables___ParserTable___action_table_row753))(variable[756]) /*ParserTable::action_table_row753*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[756]) /*AbstractArray::add*/;
+    variable[756] = CALL_parser_tables___ParserTable___action_table_row753(variable[756])(variable[756]) /*ParserTable::action_table_row753*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[756]) /*AbstractArray::add*/;
     variable[757] = variable[0];
-    variable[757] = ((parser_tables___ParserTable___action_table_row754_t)CALL(variable[757],COLOR_parser_tables___ParserTable___action_table_row754))(variable[757]) /*ParserTable::action_table_row754*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[757]) /*AbstractArray::add*/;
+    variable[757] = CALL_parser_tables___ParserTable___action_table_row754(variable[757])(variable[757]) /*ParserTable::action_table_row754*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[757]) /*AbstractArray::add*/;
     variable[758] = variable[0];
-    variable[758] = ((parser_tables___ParserTable___action_table_row755_t)CALL(variable[758],COLOR_parser_tables___ParserTable___action_table_row755))(variable[758]) /*ParserTable::action_table_row755*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[758]) /*AbstractArray::add*/;
+    variable[758] = CALL_parser_tables___ParserTable___action_table_row755(variable[758])(variable[758]) /*ParserTable::action_table_row755*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[758]) /*AbstractArray::add*/;
     variable[759] = variable[0];
-    variable[759] = ((parser_tables___ParserTable___action_table_row756_t)CALL(variable[759],COLOR_parser_tables___ParserTable___action_table_row756))(variable[759]) /*ParserTable::action_table_row756*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[759]) /*AbstractArray::add*/;
+    variable[759] = CALL_parser_tables___ParserTable___action_table_row756(variable[759])(variable[759]) /*ParserTable::action_table_row756*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[759]) /*AbstractArray::add*/;
     variable[760] = variable[0];
-    variable[760] = ((parser_tables___ParserTable___action_table_row757_t)CALL(variable[760],COLOR_parser_tables___ParserTable___action_table_row757))(variable[760]) /*ParserTable::action_table_row757*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[760]) /*AbstractArray::add*/;
+    variable[760] = CALL_parser_tables___ParserTable___action_table_row757(variable[760])(variable[760]) /*ParserTable::action_table_row757*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[760]) /*AbstractArray::add*/;
     variable[761] = variable[0];
-    variable[761] = ((parser_tables___ParserTable___action_table_row758_t)CALL(variable[761],COLOR_parser_tables___ParserTable___action_table_row758))(variable[761]) /*ParserTable::action_table_row758*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[761]) /*AbstractArray::add*/;
+    variable[761] = CALL_parser_tables___ParserTable___action_table_row758(variable[761])(variable[761]) /*ParserTable::action_table_row758*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[761]) /*AbstractArray::add*/;
     variable[762] = variable[0];
-    variable[762] = ((parser_tables___ParserTable___action_table_row759_t)CALL(variable[762],COLOR_parser_tables___ParserTable___action_table_row759))(variable[762]) /*ParserTable::action_table_row759*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[762]) /*AbstractArray::add*/;
+    variable[762] = CALL_parser_tables___ParserTable___action_table_row759(variable[762])(variable[762]) /*ParserTable::action_table_row759*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[762]) /*AbstractArray::add*/;
     variable[763] = variable[0];
-    variable[763] = ((parser_tables___ParserTable___action_table_row760_t)CALL(variable[763],COLOR_parser_tables___ParserTable___action_table_row760))(variable[763]) /*ParserTable::action_table_row760*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[763]) /*AbstractArray::add*/;
+    variable[763] = CALL_parser_tables___ParserTable___action_table_row760(variable[763])(variable[763]) /*ParserTable::action_table_row760*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[763]) /*AbstractArray::add*/;
     variable[764] = variable[0];
-    variable[764] = ((parser_tables___ParserTable___action_table_row761_t)CALL(variable[764],COLOR_parser_tables___ParserTable___action_table_row761))(variable[764]) /*ParserTable::action_table_row761*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[764]) /*AbstractArray::add*/;
+    variable[764] = CALL_parser_tables___ParserTable___action_table_row761(variable[764])(variable[764]) /*ParserTable::action_table_row761*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[764]) /*AbstractArray::add*/;
     variable[765] = variable[0];
-    variable[765] = ((parser_tables___ParserTable___action_table_row762_t)CALL(variable[765],COLOR_parser_tables___ParserTable___action_table_row762))(variable[765]) /*ParserTable::action_table_row762*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[765]) /*AbstractArray::add*/;
+    variable[765] = CALL_parser_tables___ParserTable___action_table_row762(variable[765])(variable[765]) /*ParserTable::action_table_row762*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[765]) /*AbstractArray::add*/;
     variable[766] = variable[0];
-    variable[766] = ((parser_tables___ParserTable___action_table_row763_t)CALL(variable[766],COLOR_parser_tables___ParserTable___action_table_row763))(variable[766]) /*ParserTable::action_table_row763*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[766]) /*AbstractArray::add*/;
+    variable[766] = CALL_parser_tables___ParserTable___action_table_row763(variable[766])(variable[766]) /*ParserTable::action_table_row763*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[766]) /*AbstractArray::add*/;
     variable[767] = variable[0];
-    variable[767] = ((parser_tables___ParserTable___action_table_row764_t)CALL(variable[767],COLOR_parser_tables___ParserTable___action_table_row764))(variable[767]) /*ParserTable::action_table_row764*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[767]) /*AbstractArray::add*/;
+    variable[767] = CALL_parser_tables___ParserTable___action_table_row764(variable[767])(variable[767]) /*ParserTable::action_table_row764*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[767]) /*AbstractArray::add*/;
     variable[768] = variable[0];
-    variable[768] = ((parser_tables___ParserTable___action_table_row765_t)CALL(variable[768],COLOR_parser_tables___ParserTable___action_table_row765))(variable[768]) /*ParserTable::action_table_row765*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[768]) /*AbstractArray::add*/;
+    variable[768] = CALL_parser_tables___ParserTable___action_table_row765(variable[768])(variable[768]) /*ParserTable::action_table_row765*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[768]) /*AbstractArray::add*/;
     variable[769] = variable[0];
-    variable[769] = ((parser_tables___ParserTable___action_table_row766_t)CALL(variable[769],COLOR_parser_tables___ParserTable___action_table_row766))(variable[769]) /*ParserTable::action_table_row766*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[769]) /*AbstractArray::add*/;
+    variable[769] = CALL_parser_tables___ParserTable___action_table_row766(variable[769])(variable[769]) /*ParserTable::action_table_row766*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[769]) /*AbstractArray::add*/;
     variable[770] = variable[0];
-    variable[770] = ((parser_tables___ParserTable___action_table_row767_t)CALL(variable[770],COLOR_parser_tables___ParserTable___action_table_row767))(variable[770]) /*ParserTable::action_table_row767*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[770]) /*AbstractArray::add*/;
+    variable[770] = CALL_parser_tables___ParserTable___action_table_row767(variable[770])(variable[770]) /*ParserTable::action_table_row767*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[770]) /*AbstractArray::add*/;
     variable[771] = variable[0];
-    variable[771] = ((parser_tables___ParserTable___action_table_row768_t)CALL(variable[771],COLOR_parser_tables___ParserTable___action_table_row768))(variable[771]) /*ParserTable::action_table_row768*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[771]) /*AbstractArray::add*/;
+    variable[771] = CALL_parser_tables___ParserTable___action_table_row768(variable[771])(variable[771]) /*ParserTable::action_table_row768*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[771]) /*AbstractArray::add*/;
     variable[772] = variable[0];
-    variable[772] = ((parser_tables___ParserTable___action_table_row769_t)CALL(variable[772],COLOR_parser_tables___ParserTable___action_table_row769))(variable[772]) /*ParserTable::action_table_row769*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[772]) /*AbstractArray::add*/;
+    variable[772] = CALL_parser_tables___ParserTable___action_table_row769(variable[772])(variable[772]) /*ParserTable::action_table_row769*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[772]) /*AbstractArray::add*/;
     variable[773] = variable[0];
-    variable[773] = ((parser_tables___ParserTable___action_table_row770_t)CALL(variable[773],COLOR_parser_tables___ParserTable___action_table_row770))(variable[773]) /*ParserTable::action_table_row770*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[773]) /*AbstractArray::add*/;
+    variable[773] = CALL_parser_tables___ParserTable___action_table_row770(variable[773])(variable[773]) /*ParserTable::action_table_row770*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[773]) /*AbstractArray::add*/;
     variable[774] = variable[0];
-    variable[774] = ((parser_tables___ParserTable___action_table_row771_t)CALL(variable[774],COLOR_parser_tables___ParserTable___action_table_row771))(variable[774]) /*ParserTable::action_table_row771*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[774]) /*AbstractArray::add*/;
+    variable[774] = CALL_parser_tables___ParserTable___action_table_row771(variable[774])(variable[774]) /*ParserTable::action_table_row771*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[774]) /*AbstractArray::add*/;
     variable[775] = variable[0];
-    variable[775] = ((parser_tables___ParserTable___action_table_row772_t)CALL(variable[775],COLOR_parser_tables___ParserTable___action_table_row772))(variable[775]) /*ParserTable::action_table_row772*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[775]) /*AbstractArray::add*/;
+    variable[775] = CALL_parser_tables___ParserTable___action_table_row772(variable[775])(variable[775]) /*ParserTable::action_table_row772*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[775]) /*AbstractArray::add*/;
     variable[776] = variable[0];
-    variable[776] = ((parser_tables___ParserTable___action_table_row773_t)CALL(variable[776],COLOR_parser_tables___ParserTable___action_table_row773))(variable[776]) /*ParserTable::action_table_row773*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[776]) /*AbstractArray::add*/;
+    variable[776] = CALL_parser_tables___ParserTable___action_table_row773(variable[776])(variable[776]) /*ParserTable::action_table_row773*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[776]) /*AbstractArray::add*/;
     variable[777] = variable[0];
-    variable[777] = ((parser_tables___ParserTable___action_table_row774_t)CALL(variable[777],COLOR_parser_tables___ParserTable___action_table_row774))(variable[777]) /*ParserTable::action_table_row774*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[777]) /*AbstractArray::add*/;
+    variable[777] = CALL_parser_tables___ParserTable___action_table_row774(variable[777])(variable[777]) /*ParserTable::action_table_row774*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[777]) /*AbstractArray::add*/;
     variable[778] = variable[0];
-    variable[778] = ((parser_tables___ParserTable___action_table_row775_t)CALL(variable[778],COLOR_parser_tables___ParserTable___action_table_row775))(variable[778]) /*ParserTable::action_table_row775*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[778]) /*AbstractArray::add*/;
+    variable[778] = CALL_parser_tables___ParserTable___action_table_row775(variable[778])(variable[778]) /*ParserTable::action_table_row775*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[778]) /*AbstractArray::add*/;
     variable[779] = variable[0];
-    variable[779] = ((parser_tables___ParserTable___action_table_row776_t)CALL(variable[779],COLOR_parser_tables___ParserTable___action_table_row776))(variable[779]) /*ParserTable::action_table_row776*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[779]) /*AbstractArray::add*/;
+    variable[779] = CALL_parser_tables___ParserTable___action_table_row776(variable[779])(variable[779]) /*ParserTable::action_table_row776*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[779]) /*AbstractArray::add*/;
     variable[780] = variable[0];
-    variable[780] = ((parser_tables___ParserTable___action_table_row777_t)CALL(variable[780],COLOR_parser_tables___ParserTable___action_table_row777))(variable[780]) /*ParserTable::action_table_row777*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[780]) /*AbstractArray::add*/;
+    variable[780] = CALL_parser_tables___ParserTable___action_table_row777(variable[780])(variable[780]) /*ParserTable::action_table_row777*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[780]) /*AbstractArray::add*/;
     variable[781] = variable[0];
-    variable[781] = ((parser_tables___ParserTable___action_table_row778_t)CALL(variable[781],COLOR_parser_tables___ParserTable___action_table_row778))(variable[781]) /*ParserTable::action_table_row778*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[781]) /*AbstractArray::add*/;
+    variable[781] = CALL_parser_tables___ParserTable___action_table_row778(variable[781])(variable[781]) /*ParserTable::action_table_row778*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[781]) /*AbstractArray::add*/;
     variable[782] = variable[0];
-    variable[782] = ((parser_tables___ParserTable___action_table_row779_t)CALL(variable[782],COLOR_parser_tables___ParserTable___action_table_row779))(variable[782]) /*ParserTable::action_table_row779*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[782]) /*AbstractArray::add*/;
+    variable[782] = CALL_parser_tables___ParserTable___action_table_row779(variable[782])(variable[782]) /*ParserTable::action_table_row779*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[782]) /*AbstractArray::add*/;
     variable[783] = variable[0];
-    variable[783] = ((parser_tables___ParserTable___action_table_row780_t)CALL(variable[783],COLOR_parser_tables___ParserTable___action_table_row780))(variable[783]) /*ParserTable::action_table_row780*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[783]) /*AbstractArray::add*/;
+    variable[783] = CALL_parser_tables___ParserTable___action_table_row780(variable[783])(variable[783]) /*ParserTable::action_table_row780*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[783]) /*AbstractArray::add*/;
     variable[784] = variable[0];
-    variable[784] = ((parser_tables___ParserTable___action_table_row781_t)CALL(variable[784],COLOR_parser_tables___ParserTable___action_table_row781))(variable[784]) /*ParserTable::action_table_row781*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[784]) /*AbstractArray::add*/;
+    variable[784] = CALL_parser_tables___ParserTable___action_table_row781(variable[784])(variable[784]) /*ParserTable::action_table_row781*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[784]) /*AbstractArray::add*/;
     variable[785] = variable[0];
-    variable[785] = ((parser_tables___ParserTable___action_table_row782_t)CALL(variable[785],COLOR_parser_tables___ParserTable___action_table_row782))(variable[785]) /*ParserTable::action_table_row782*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[785]) /*AbstractArray::add*/;
+    variable[785] = CALL_parser_tables___ParserTable___action_table_row782(variable[785])(variable[785]) /*ParserTable::action_table_row782*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[785]) /*AbstractArray::add*/;
     variable[786] = variable[0];
-    variable[786] = ((parser_tables___ParserTable___action_table_row783_t)CALL(variable[786],COLOR_parser_tables___ParserTable___action_table_row783))(variable[786]) /*ParserTable::action_table_row783*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[786]) /*AbstractArray::add*/;
+    variable[786] = CALL_parser_tables___ParserTable___action_table_row783(variable[786])(variable[786]) /*ParserTable::action_table_row783*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[786]) /*AbstractArray::add*/;
     variable[787] = variable[0];
-    variable[787] = ((parser_tables___ParserTable___action_table_row784_t)CALL(variable[787],COLOR_parser_tables___ParserTable___action_table_row784))(variable[787]) /*ParserTable::action_table_row784*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[787]) /*AbstractArray::add*/;
+    variable[787] = CALL_parser_tables___ParserTable___action_table_row784(variable[787])(variable[787]) /*ParserTable::action_table_row784*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[787]) /*AbstractArray::add*/;
     variable[788] = variable[0];
-    variable[788] = ((parser_tables___ParserTable___action_table_row785_t)CALL(variable[788],COLOR_parser_tables___ParserTable___action_table_row785))(variable[788]) /*ParserTable::action_table_row785*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[788]) /*AbstractArray::add*/;
+    variable[788] = CALL_parser_tables___ParserTable___action_table_row785(variable[788])(variable[788]) /*ParserTable::action_table_row785*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[788]) /*AbstractArray::add*/;
     variable[789] = variable[0];
-    variable[789] = ((parser_tables___ParserTable___action_table_row786_t)CALL(variable[789],COLOR_parser_tables___ParserTable___action_table_row786))(variable[789]) /*ParserTable::action_table_row786*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[789]) /*AbstractArray::add*/;
+    variable[789] = CALL_parser_tables___ParserTable___action_table_row786(variable[789])(variable[789]) /*ParserTable::action_table_row786*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[789]) /*AbstractArray::add*/;
     variable[790] = variable[0];
-    variable[790] = ((parser_tables___ParserTable___action_table_row787_t)CALL(variable[790],COLOR_parser_tables___ParserTable___action_table_row787))(variable[790]) /*ParserTable::action_table_row787*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[790]) /*AbstractArray::add*/;
+    variable[790] = CALL_parser_tables___ParserTable___action_table_row787(variable[790])(variable[790]) /*ParserTable::action_table_row787*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[790]) /*AbstractArray::add*/;
     variable[791] = variable[0];
-    variable[791] = ((parser_tables___ParserTable___action_table_row788_t)CALL(variable[791],COLOR_parser_tables___ParserTable___action_table_row788))(variable[791]) /*ParserTable::action_table_row788*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[791]) /*AbstractArray::add*/;
+    variable[791] = CALL_parser_tables___ParserTable___action_table_row788(variable[791])(variable[791]) /*ParserTable::action_table_row788*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[791]) /*AbstractArray::add*/;
     variable[792] = variable[0];
-    variable[792] = ((parser_tables___ParserTable___action_table_row789_t)CALL(variable[792],COLOR_parser_tables___ParserTable___action_table_row789))(variable[792]) /*ParserTable::action_table_row789*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[792]) /*AbstractArray::add*/;
+    variable[792] = CALL_parser_tables___ParserTable___action_table_row789(variable[792])(variable[792]) /*ParserTable::action_table_row789*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[792]) /*AbstractArray::add*/;
     variable[793] = variable[0];
-    variable[793] = ((parser_tables___ParserTable___action_table_row790_t)CALL(variable[793],COLOR_parser_tables___ParserTable___action_table_row790))(variable[793]) /*ParserTable::action_table_row790*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[793]) /*AbstractArray::add*/;
+    variable[793] = CALL_parser_tables___ParserTable___action_table_row790(variable[793])(variable[793]) /*ParserTable::action_table_row790*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[793]) /*AbstractArray::add*/;
     variable[794] = variable[0];
-    variable[794] = ((parser_tables___ParserTable___action_table_row791_t)CALL(variable[794],COLOR_parser_tables___ParserTable___action_table_row791))(variable[794]) /*ParserTable::action_table_row791*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[794]) /*AbstractArray::add*/;
+    variable[794] = CALL_parser_tables___ParserTable___action_table_row791(variable[794])(variable[794]) /*ParserTable::action_table_row791*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[794]) /*AbstractArray::add*/;
     variable[795] = variable[0];
-    variable[795] = ((parser_tables___ParserTable___action_table_row792_t)CALL(variable[795],COLOR_parser_tables___ParserTable___action_table_row792))(variable[795]) /*ParserTable::action_table_row792*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[795]) /*AbstractArray::add*/;
+    variable[795] = CALL_parser_tables___ParserTable___action_table_row792(variable[795])(variable[795]) /*ParserTable::action_table_row792*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[795]) /*AbstractArray::add*/;
     variable[796] = variable[0];
-    variable[796] = ((parser_tables___ParserTable___action_table_row793_t)CALL(variable[796],COLOR_parser_tables___ParserTable___action_table_row793))(variable[796]) /*ParserTable::action_table_row793*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[796]) /*AbstractArray::add*/;
+    variable[796] = CALL_parser_tables___ParserTable___action_table_row793(variable[796])(variable[796]) /*ParserTable::action_table_row793*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[796]) /*AbstractArray::add*/;
     variable[797] = variable[0];
-    variable[797] = ((parser_tables___ParserTable___action_table_row794_t)CALL(variable[797],COLOR_parser_tables___ParserTable___action_table_row794))(variable[797]) /*ParserTable::action_table_row794*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[797]) /*AbstractArray::add*/;
+    variable[797] = CALL_parser_tables___ParserTable___action_table_row794(variable[797])(variable[797]) /*ParserTable::action_table_row794*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[797]) /*AbstractArray::add*/;
     variable[798] = variable[0];
-    variable[798] = ((parser_tables___ParserTable___action_table_row795_t)CALL(variable[798],COLOR_parser_tables___ParserTable___action_table_row795))(variable[798]) /*ParserTable::action_table_row795*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[798]) /*AbstractArray::add*/;
+    variable[798] = CALL_parser_tables___ParserTable___action_table_row795(variable[798])(variable[798]) /*ParserTable::action_table_row795*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[798]) /*AbstractArray::add*/;
     variable[799] = variable[0];
-    variable[799] = ((parser_tables___ParserTable___action_table_row796_t)CALL(variable[799],COLOR_parser_tables___ParserTable___action_table_row796))(variable[799]) /*ParserTable::action_table_row796*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[799]) /*AbstractArray::add*/;
+    variable[799] = CALL_parser_tables___ParserTable___action_table_row796(variable[799])(variable[799]) /*ParserTable::action_table_row796*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[799]) /*AbstractArray::add*/;
     variable[800] = variable[0];
-    variable[800] = ((parser_tables___ParserTable___action_table_row797_t)CALL(variable[800],COLOR_parser_tables___ParserTable___action_table_row797))(variable[800]) /*ParserTable::action_table_row797*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[800]) /*AbstractArray::add*/;
+    variable[800] = CALL_parser_tables___ParserTable___action_table_row797(variable[800])(variable[800]) /*ParserTable::action_table_row797*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[800]) /*AbstractArray::add*/;
     variable[801] = variable[0];
-    variable[801] = ((parser_tables___ParserTable___action_table_row798_t)CALL(variable[801],COLOR_parser_tables___ParserTable___action_table_row798))(variable[801]) /*ParserTable::action_table_row798*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[801]) /*AbstractArray::add*/;
+    variable[801] = CALL_parser_tables___ParserTable___action_table_row798(variable[801])(variable[801]) /*ParserTable::action_table_row798*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[801]) /*AbstractArray::add*/;
     variable[802] = variable[0];
-    variable[802] = ((parser_tables___ParserTable___action_table_row799_t)CALL(variable[802],COLOR_parser_tables___ParserTable___action_table_row799))(variable[802]) /*ParserTable::action_table_row799*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[802]) /*AbstractArray::add*/;
+    variable[802] = CALL_parser_tables___ParserTable___action_table_row799(variable[802])(variable[802]) /*ParserTable::action_table_row799*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[802]) /*AbstractArray::add*/;
     variable[803] = variable[0];
-    variable[803] = ((parser_tables___ParserTable___action_table_row800_t)CALL(variable[803],COLOR_parser_tables___ParserTable___action_table_row800))(variable[803]) /*ParserTable::action_table_row800*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[803]) /*AbstractArray::add*/;
+    variable[803] = CALL_parser_tables___ParserTable___action_table_row800(variable[803])(variable[803]) /*ParserTable::action_table_row800*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[803]) /*AbstractArray::add*/;
     variable[804] = variable[0];
-    variable[804] = ((parser_tables___ParserTable___action_table_row801_t)CALL(variable[804],COLOR_parser_tables___ParserTable___action_table_row801))(variable[804]) /*ParserTable::action_table_row801*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[804]) /*AbstractArray::add*/;
+    variable[804] = CALL_parser_tables___ParserTable___action_table_row801(variable[804])(variable[804]) /*ParserTable::action_table_row801*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[804]) /*AbstractArray::add*/;
     variable[805] = variable[0];
-    variable[805] = ((parser_tables___ParserTable___action_table_row802_t)CALL(variable[805],COLOR_parser_tables___ParserTable___action_table_row802))(variable[805]) /*ParserTable::action_table_row802*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[805]) /*AbstractArray::add*/;
+    variable[805] = CALL_parser_tables___ParserTable___action_table_row802(variable[805])(variable[805]) /*ParserTable::action_table_row802*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[805]) /*AbstractArray::add*/;
     variable[806] = variable[0];
-    variable[806] = ((parser_tables___ParserTable___action_table_row803_t)CALL(variable[806],COLOR_parser_tables___ParserTable___action_table_row803))(variable[806]) /*ParserTable::action_table_row803*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[806]) /*AbstractArray::add*/;
+    variable[806] = CALL_parser_tables___ParserTable___action_table_row803(variable[806])(variable[806]) /*ParserTable::action_table_row803*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[806]) /*AbstractArray::add*/;
     variable[807] = variable[0];
-    variable[807] = ((parser_tables___ParserTable___action_table_row804_t)CALL(variable[807],COLOR_parser_tables___ParserTable___action_table_row804))(variable[807]) /*ParserTable::action_table_row804*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[807]) /*AbstractArray::add*/;
+    variable[807] = CALL_parser_tables___ParserTable___action_table_row804(variable[807])(variable[807]) /*ParserTable::action_table_row804*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[807]) /*AbstractArray::add*/;
     variable[808] = variable[0];
-    variable[808] = ((parser_tables___ParserTable___action_table_row805_t)CALL(variable[808],COLOR_parser_tables___ParserTable___action_table_row805))(variable[808]) /*ParserTable::action_table_row805*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[808]) /*AbstractArray::add*/;
+    variable[808] = CALL_parser_tables___ParserTable___action_table_row805(variable[808])(variable[808]) /*ParserTable::action_table_row805*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[808]) /*AbstractArray::add*/;
     variable[809] = variable[0];
-    variable[809] = ((parser_tables___ParserTable___action_table_row806_t)CALL(variable[809],COLOR_parser_tables___ParserTable___action_table_row806))(variable[809]) /*ParserTable::action_table_row806*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[809]) /*AbstractArray::add*/;
+    variable[809] = CALL_parser_tables___ParserTable___action_table_row806(variable[809])(variable[809]) /*ParserTable::action_table_row806*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[809]) /*AbstractArray::add*/;
     variable[810] = variable[0];
-    variable[810] = ((parser_tables___ParserTable___action_table_row807_t)CALL(variable[810],COLOR_parser_tables___ParserTable___action_table_row807))(variable[810]) /*ParserTable::action_table_row807*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[810]) /*AbstractArray::add*/;
+    variable[810] = CALL_parser_tables___ParserTable___action_table_row807(variable[810])(variable[810]) /*ParserTable::action_table_row807*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[810]) /*AbstractArray::add*/;
     variable[811] = variable[0];
-    variable[811] = ((parser_tables___ParserTable___action_table_row808_t)CALL(variable[811],COLOR_parser_tables___ParserTable___action_table_row808))(variable[811]) /*ParserTable::action_table_row808*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[811]) /*AbstractArray::add*/;
+    variable[811] = CALL_parser_tables___ParserTable___action_table_row808(variable[811])(variable[811]) /*ParserTable::action_table_row808*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[811]) /*AbstractArray::add*/;
     variable[812] = variable[0];
-    variable[812] = ((parser_tables___ParserTable___action_table_row809_t)CALL(variable[812],COLOR_parser_tables___ParserTable___action_table_row809))(variable[812]) /*ParserTable::action_table_row809*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[812]) /*AbstractArray::add*/;
+    variable[812] = CALL_parser_tables___ParserTable___action_table_row809(variable[812])(variable[812]) /*ParserTable::action_table_row809*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[812]) /*AbstractArray::add*/;
     variable[813] = variable[0];
-    variable[813] = ((parser_tables___ParserTable___action_table_row810_t)CALL(variable[813],COLOR_parser_tables___ParserTable___action_table_row810))(variable[813]) /*ParserTable::action_table_row810*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[813]) /*AbstractArray::add*/;
+    variable[813] = CALL_parser_tables___ParserTable___action_table_row810(variable[813])(variable[813]) /*ParserTable::action_table_row810*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[813]) /*AbstractArray::add*/;
     variable[814] = variable[0];
-    variable[814] = ((parser_tables___ParserTable___action_table_row811_t)CALL(variable[814],COLOR_parser_tables___ParserTable___action_table_row811))(variable[814]) /*ParserTable::action_table_row811*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[814]) /*AbstractArray::add*/;
+    variable[814] = CALL_parser_tables___ParserTable___action_table_row811(variable[814])(variable[814]) /*ParserTable::action_table_row811*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[814]) /*AbstractArray::add*/;
     variable[815] = variable[0];
-    variable[815] = ((parser_tables___ParserTable___action_table_row812_t)CALL(variable[815],COLOR_parser_tables___ParserTable___action_table_row812))(variable[815]) /*ParserTable::action_table_row812*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[815]) /*AbstractArray::add*/;
+    variable[815] = CALL_parser_tables___ParserTable___action_table_row812(variable[815])(variable[815]) /*ParserTable::action_table_row812*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[815]) /*AbstractArray::add*/;
     variable[816] = variable[0];
-    variable[816] = ((parser_tables___ParserTable___action_table_row813_t)CALL(variable[816],COLOR_parser_tables___ParserTable___action_table_row813))(variable[816]) /*ParserTable::action_table_row813*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[816]) /*AbstractArray::add*/;
+    variable[816] = CALL_parser_tables___ParserTable___action_table_row813(variable[816])(variable[816]) /*ParserTable::action_table_row813*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[816]) /*AbstractArray::add*/;
     variable[817] = variable[0];
-    variable[817] = ((parser_tables___ParserTable___action_table_row814_t)CALL(variable[817],COLOR_parser_tables___ParserTable___action_table_row814))(variable[817]) /*ParserTable::action_table_row814*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[817]) /*AbstractArray::add*/;
+    variable[817] = CALL_parser_tables___ParserTable___action_table_row814(variable[817])(variable[817]) /*ParserTable::action_table_row814*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[817]) /*AbstractArray::add*/;
     variable[818] = variable[0];
-    variable[818] = ((parser_tables___ParserTable___action_table_row815_t)CALL(variable[818],COLOR_parser_tables___ParserTable___action_table_row815))(variable[818]) /*ParserTable::action_table_row815*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[818]) /*AbstractArray::add*/;
+    variable[818] = CALL_parser_tables___ParserTable___action_table_row815(variable[818])(variable[818]) /*ParserTable::action_table_row815*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[818]) /*AbstractArray::add*/;
     variable[819] = variable[0];
-    variable[819] = ((parser_tables___ParserTable___action_table_row816_t)CALL(variable[819],COLOR_parser_tables___ParserTable___action_table_row816))(variable[819]) /*ParserTable::action_table_row816*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[819]) /*AbstractArray::add*/;
+    variable[819] = CALL_parser_tables___ParserTable___action_table_row816(variable[819])(variable[819]) /*ParserTable::action_table_row816*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[819]) /*AbstractArray::add*/;
     variable[820] = variable[0];
-    variable[820] = ((parser_tables___ParserTable___action_table_row817_t)CALL(variable[820],COLOR_parser_tables___ParserTable___action_table_row817))(variable[820]) /*ParserTable::action_table_row817*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[820]) /*AbstractArray::add*/;
+    variable[820] = CALL_parser_tables___ParserTable___action_table_row817(variable[820])(variable[820]) /*ParserTable::action_table_row817*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[820]) /*AbstractArray::add*/;
     variable[821] = variable[0];
-    variable[821] = ((parser_tables___ParserTable___action_table_row818_t)CALL(variable[821],COLOR_parser_tables___ParserTable___action_table_row818))(variable[821]) /*ParserTable::action_table_row818*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[821]) /*AbstractArray::add*/;
+    variable[821] = CALL_parser_tables___ParserTable___action_table_row818(variable[821])(variable[821]) /*ParserTable::action_table_row818*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[821]) /*AbstractArray::add*/;
     variable[822] = variable[0];
-    variable[822] = ((parser_tables___ParserTable___action_table_row819_t)CALL(variable[822],COLOR_parser_tables___ParserTable___action_table_row819))(variable[822]) /*ParserTable::action_table_row819*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[822]) /*AbstractArray::add*/;
+    variable[822] = CALL_parser_tables___ParserTable___action_table_row819(variable[822])(variable[822]) /*ParserTable::action_table_row819*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[822]) /*AbstractArray::add*/;
     variable[823] = variable[0];
-    variable[823] = ((parser_tables___ParserTable___action_table_row820_t)CALL(variable[823],COLOR_parser_tables___ParserTable___action_table_row820))(variable[823]) /*ParserTable::action_table_row820*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[823]) /*AbstractArray::add*/;
+    variable[823] = CALL_parser_tables___ParserTable___action_table_row820(variable[823])(variable[823]) /*ParserTable::action_table_row820*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[823]) /*AbstractArray::add*/;
     variable[824] = variable[0];
-    variable[824] = ((parser_tables___ParserTable___action_table_row821_t)CALL(variable[824],COLOR_parser_tables___ParserTable___action_table_row821))(variable[824]) /*ParserTable::action_table_row821*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[824]) /*AbstractArray::add*/;
+    variable[824] = CALL_parser_tables___ParserTable___action_table_row821(variable[824])(variable[824]) /*ParserTable::action_table_row821*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[824]) /*AbstractArray::add*/;
     variable[825] = variable[0];
-    variable[825] = ((parser_tables___ParserTable___action_table_row822_t)CALL(variable[825],COLOR_parser_tables___ParserTable___action_table_row822))(variable[825]) /*ParserTable::action_table_row822*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[825]) /*AbstractArray::add*/;
+    variable[825] = CALL_parser_tables___ParserTable___action_table_row822(variable[825])(variable[825]) /*ParserTable::action_table_row822*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[825]) /*AbstractArray::add*/;
     variable[826] = variable[0];
-    variable[826] = ((parser_tables___ParserTable___action_table_row823_t)CALL(variable[826],COLOR_parser_tables___ParserTable___action_table_row823))(variable[826]) /*ParserTable::action_table_row823*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[826]) /*AbstractArray::add*/;
+    variable[826] = CALL_parser_tables___ParserTable___action_table_row823(variable[826])(variable[826]) /*ParserTable::action_table_row823*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[826]) /*AbstractArray::add*/;
     variable[827] = variable[0];
-    variable[827] = ((parser_tables___ParserTable___action_table_row824_t)CALL(variable[827],COLOR_parser_tables___ParserTable___action_table_row824))(variable[827]) /*ParserTable::action_table_row824*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[827]) /*AbstractArray::add*/;
+    variable[827] = CALL_parser_tables___ParserTable___action_table_row824(variable[827])(variable[827]) /*ParserTable::action_table_row824*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[827]) /*AbstractArray::add*/;
     variable[828] = variable[0];
-    variable[828] = ((parser_tables___ParserTable___action_table_row825_t)CALL(variable[828],COLOR_parser_tables___ParserTable___action_table_row825))(variable[828]) /*ParserTable::action_table_row825*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[828]) /*AbstractArray::add*/;
+    variable[828] = CALL_parser_tables___ParserTable___action_table_row825(variable[828])(variable[828]) /*ParserTable::action_table_row825*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[828]) /*AbstractArray::add*/;
     variable[829] = variable[0];
-    variable[829] = ((parser_tables___ParserTable___action_table_row826_t)CALL(variable[829],COLOR_parser_tables___ParserTable___action_table_row826))(variable[829]) /*ParserTable::action_table_row826*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[829]) /*AbstractArray::add*/;
+    variable[829] = CALL_parser_tables___ParserTable___action_table_row826(variable[829])(variable[829]) /*ParserTable::action_table_row826*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[829]) /*AbstractArray::add*/;
     variable[830] = variable[0];
-    variable[830] = ((parser_tables___ParserTable___action_table_row827_t)CALL(variable[830],COLOR_parser_tables___ParserTable___action_table_row827))(variable[830]) /*ParserTable::action_table_row827*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[830]) /*AbstractArray::add*/;
+    variable[830] = CALL_parser_tables___ParserTable___action_table_row827(variable[830])(variable[830]) /*ParserTable::action_table_row827*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[830]) /*AbstractArray::add*/;
     variable[831] = variable[0];
-    variable[831] = ((parser_tables___ParserTable___action_table_row828_t)CALL(variable[831],COLOR_parser_tables___ParserTable___action_table_row828))(variable[831]) /*ParserTable::action_table_row828*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[831]) /*AbstractArray::add*/;
+    variable[831] = CALL_parser_tables___ParserTable___action_table_row828(variable[831])(variable[831]) /*ParserTable::action_table_row828*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[831]) /*AbstractArray::add*/;
     variable[832] = variable[0];
-    variable[832] = ((parser_tables___ParserTable___action_table_row829_t)CALL(variable[832],COLOR_parser_tables___ParserTable___action_table_row829))(variable[832]) /*ParserTable::action_table_row829*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[832]) /*AbstractArray::add*/;
+    variable[832] = CALL_parser_tables___ParserTable___action_table_row829(variable[832])(variable[832]) /*ParserTable::action_table_row829*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[832]) /*AbstractArray::add*/;
     variable[833] = variable[0];
-    variable[833] = ((parser_tables___ParserTable___action_table_row830_t)CALL(variable[833],COLOR_parser_tables___ParserTable___action_table_row830))(variable[833]) /*ParserTable::action_table_row830*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[833]) /*AbstractArray::add*/;
+    variable[833] = CALL_parser_tables___ParserTable___action_table_row830(variable[833])(variable[833]) /*ParserTable::action_table_row830*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[833]) /*AbstractArray::add*/;
     variable[834] = variable[0];
-    variable[834] = ((parser_tables___ParserTable___action_table_row831_t)CALL(variable[834],COLOR_parser_tables___ParserTable___action_table_row831))(variable[834]) /*ParserTable::action_table_row831*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[834]) /*AbstractArray::add*/;
+    variable[834] = CALL_parser_tables___ParserTable___action_table_row831(variable[834])(variable[834]) /*ParserTable::action_table_row831*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[834]) /*AbstractArray::add*/;
     variable[835] = variable[0];
-    variable[835] = ((parser_tables___ParserTable___action_table_row832_t)CALL(variable[835],COLOR_parser_tables___ParserTable___action_table_row832))(variable[835]) /*ParserTable::action_table_row832*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[835]) /*AbstractArray::add*/;
+    variable[835] = CALL_parser_tables___ParserTable___action_table_row832(variable[835])(variable[835]) /*ParserTable::action_table_row832*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[835]) /*AbstractArray::add*/;
     variable[836] = variable[0];
-    variable[836] = ((parser_tables___ParserTable___action_table_row833_t)CALL(variable[836],COLOR_parser_tables___ParserTable___action_table_row833))(variable[836]) /*ParserTable::action_table_row833*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[836]) /*AbstractArray::add*/;
+    variable[836] = CALL_parser_tables___ParserTable___action_table_row833(variable[836])(variable[836]) /*ParserTable::action_table_row833*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[836]) /*AbstractArray::add*/;
     variable[837] = variable[0];
-    variable[837] = ((parser_tables___ParserTable___action_table_row834_t)CALL(variable[837],COLOR_parser_tables___ParserTable___action_table_row834))(variable[837]) /*ParserTable::action_table_row834*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[837]) /*AbstractArray::add*/;
+    variable[837] = CALL_parser_tables___ParserTable___action_table_row834(variable[837])(variable[837]) /*ParserTable::action_table_row834*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[837]) /*AbstractArray::add*/;
     variable[838] = variable[0];
-    variable[838] = ((parser_tables___ParserTable___action_table_row835_t)CALL(variable[838],COLOR_parser_tables___ParserTable___action_table_row835))(variable[838]) /*ParserTable::action_table_row835*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[838]) /*AbstractArray::add*/;
+    variable[838] = CALL_parser_tables___ParserTable___action_table_row835(variable[838])(variable[838]) /*ParserTable::action_table_row835*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[838]) /*AbstractArray::add*/;
     variable[839] = variable[0];
-    variable[839] = ((parser_tables___ParserTable___action_table_row836_t)CALL(variable[839],COLOR_parser_tables___ParserTable___action_table_row836))(variable[839]) /*ParserTable::action_table_row836*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[839]) /*AbstractArray::add*/;
+    variable[839] = CALL_parser_tables___ParserTable___action_table_row836(variable[839])(variable[839]) /*ParserTable::action_table_row836*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[839]) /*AbstractArray::add*/;
     variable[840] = variable[0];
-    variable[840] = ((parser_tables___ParserTable___action_table_row837_t)CALL(variable[840],COLOR_parser_tables___ParserTable___action_table_row837))(variable[840]) /*ParserTable::action_table_row837*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[840]) /*AbstractArray::add*/;
+    variable[840] = CALL_parser_tables___ParserTable___action_table_row837(variable[840])(variable[840]) /*ParserTable::action_table_row837*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[840]) /*AbstractArray::add*/;
     variable[841] = variable[0];
-    variable[841] = ((parser_tables___ParserTable___action_table_row838_t)CALL(variable[841],COLOR_parser_tables___ParserTable___action_table_row838))(variable[841]) /*ParserTable::action_table_row838*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[841]) /*AbstractArray::add*/;
+    variable[841] = CALL_parser_tables___ParserTable___action_table_row838(variable[841])(variable[841]) /*ParserTable::action_table_row838*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[841]) /*AbstractArray::add*/;
     variable[842] = variable[0];
-    variable[842] = ((parser_tables___ParserTable___action_table_row839_t)CALL(variable[842],COLOR_parser_tables___ParserTable___action_table_row839))(variable[842]) /*ParserTable::action_table_row839*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[842]) /*AbstractArray::add*/;
+    variable[842] = CALL_parser_tables___ParserTable___action_table_row839(variable[842])(variable[842]) /*ParserTable::action_table_row839*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[842]) /*AbstractArray::add*/;
     variable[843] = variable[0];
-    variable[843] = ((parser_tables___ParserTable___action_table_row840_t)CALL(variable[843],COLOR_parser_tables___ParserTable___action_table_row840))(variable[843]) /*ParserTable::action_table_row840*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[843]) /*AbstractArray::add*/;
+    variable[843] = CALL_parser_tables___ParserTable___action_table_row840(variable[843])(variable[843]) /*ParserTable::action_table_row840*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[843]) /*AbstractArray::add*/;
     variable[844] = variable[0];
-    variable[844] = ((parser_tables___ParserTable___action_table_row841_t)CALL(variable[844],COLOR_parser_tables___ParserTable___action_table_row841))(variable[844]) /*ParserTable::action_table_row841*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[844]) /*AbstractArray::add*/;
+    variable[844] = CALL_parser_tables___ParserTable___action_table_row841(variable[844])(variable[844]) /*ParserTable::action_table_row841*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[844]) /*AbstractArray::add*/;
     variable[845] = variable[0];
-    variable[845] = ((parser_tables___ParserTable___action_table_row842_t)CALL(variable[845],COLOR_parser_tables___ParserTable___action_table_row842))(variable[845]) /*ParserTable::action_table_row842*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[845]) /*AbstractArray::add*/;
+    variable[845] = CALL_parser_tables___ParserTable___action_table_row842(variable[845])(variable[845]) /*ParserTable::action_table_row842*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[845]) /*AbstractArray::add*/;
     variable[846] = variable[0];
-    variable[846] = ((parser_tables___ParserTable___action_table_row843_t)CALL(variable[846],COLOR_parser_tables___ParserTable___action_table_row843))(variable[846]) /*ParserTable::action_table_row843*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[846]) /*AbstractArray::add*/;
+    variable[846] = CALL_parser_tables___ParserTable___action_table_row843(variable[846])(variable[846]) /*ParserTable::action_table_row843*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[846]) /*AbstractArray::add*/;
     variable[847] = variable[0];
-    variable[847] = ((parser_tables___ParserTable___action_table_row844_t)CALL(variable[847],COLOR_parser_tables___ParserTable___action_table_row844))(variable[847]) /*ParserTable::action_table_row844*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[847]) /*AbstractArray::add*/;
+    variable[847] = CALL_parser_tables___ParserTable___action_table_row844(variable[847])(variable[847]) /*ParserTable::action_table_row844*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[847]) /*AbstractArray::add*/;
     variable[848] = variable[0];
-    variable[848] = ((parser_tables___ParserTable___action_table_row845_t)CALL(variable[848],COLOR_parser_tables___ParserTable___action_table_row845))(variable[848]) /*ParserTable::action_table_row845*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[848]) /*AbstractArray::add*/;
+    variable[848] = CALL_parser_tables___ParserTable___action_table_row845(variable[848])(variable[848]) /*ParserTable::action_table_row845*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[848]) /*AbstractArray::add*/;
     variable[849] = variable[0];
-    variable[849] = ((parser_tables___ParserTable___action_table_row846_t)CALL(variable[849],COLOR_parser_tables___ParserTable___action_table_row846))(variable[849]) /*ParserTable::action_table_row846*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[849]) /*AbstractArray::add*/;
+    variable[849] = CALL_parser_tables___ParserTable___action_table_row846(variable[849])(variable[849]) /*ParserTable::action_table_row846*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[849]) /*AbstractArray::add*/;
     variable[850] = variable[0];
-    variable[850] = ((parser_tables___ParserTable___action_table_row847_t)CALL(variable[850],COLOR_parser_tables___ParserTable___action_table_row847))(variable[850]) /*ParserTable::action_table_row847*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[850]) /*AbstractArray::add*/;
+    variable[850] = CALL_parser_tables___ParserTable___action_table_row847(variable[850])(variable[850]) /*ParserTable::action_table_row847*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[850]) /*AbstractArray::add*/;
     variable[851] = variable[0];
-    variable[851] = ((parser_tables___ParserTable___action_table_row848_t)CALL(variable[851],COLOR_parser_tables___ParserTable___action_table_row848))(variable[851]) /*ParserTable::action_table_row848*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[851]) /*AbstractArray::add*/;
+    variable[851] = CALL_parser_tables___ParserTable___action_table_row848(variable[851])(variable[851]) /*ParserTable::action_table_row848*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[851]) /*AbstractArray::add*/;
     variable[852] = variable[0];
-    variable[852] = ((parser_tables___ParserTable___action_table_row849_t)CALL(variable[852],COLOR_parser_tables___ParserTable___action_table_row849))(variable[852]) /*ParserTable::action_table_row849*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[852]) /*AbstractArray::add*/;
+    variable[852] = CALL_parser_tables___ParserTable___action_table_row849(variable[852])(variable[852]) /*ParserTable::action_table_row849*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[852]) /*AbstractArray::add*/;
     variable[853] = variable[0];
-    variable[853] = ((parser_tables___ParserTable___action_table_row850_t)CALL(variable[853],COLOR_parser_tables___ParserTable___action_table_row850))(variable[853]) /*ParserTable::action_table_row850*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[853]) /*AbstractArray::add*/;
+    variable[853] = CALL_parser_tables___ParserTable___action_table_row850(variable[853])(variable[853]) /*ParserTable::action_table_row850*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[853]) /*AbstractArray::add*/;
     variable[854] = variable[0];
-    variable[854] = ((parser_tables___ParserTable___action_table_row851_t)CALL(variable[854],COLOR_parser_tables___ParserTable___action_table_row851))(variable[854]) /*ParserTable::action_table_row851*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[854]) /*AbstractArray::add*/;
+    variable[854] = CALL_parser_tables___ParserTable___action_table_row851(variable[854])(variable[854]) /*ParserTable::action_table_row851*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[854]) /*AbstractArray::add*/;
     variable[855] = variable[0];
-    variable[855] = ((parser_tables___ParserTable___action_table_row852_t)CALL(variable[855],COLOR_parser_tables___ParserTable___action_table_row852))(variable[855]) /*ParserTable::action_table_row852*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[855]) /*AbstractArray::add*/;
+    variable[855] = CALL_parser_tables___ParserTable___action_table_row852(variable[855])(variable[855]) /*ParserTable::action_table_row852*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[855]) /*AbstractArray::add*/;
     variable[856] = variable[0];
-    variable[856] = ((parser_tables___ParserTable___action_table_row853_t)CALL(variable[856],COLOR_parser_tables___ParserTable___action_table_row853))(variable[856]) /*ParserTable::action_table_row853*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[856]) /*AbstractArray::add*/;
+    variable[856] = CALL_parser_tables___ParserTable___action_table_row853(variable[856])(variable[856]) /*ParserTable::action_table_row853*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[856]) /*AbstractArray::add*/;
     variable[857] = variable[0];
-    variable[857] = ((parser_tables___ParserTable___action_table_row854_t)CALL(variable[857],COLOR_parser_tables___ParserTable___action_table_row854))(variable[857]) /*ParserTable::action_table_row854*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[857]) /*AbstractArray::add*/;
+    variable[857] = CALL_parser_tables___ParserTable___action_table_row854(variable[857])(variable[857]) /*ParserTable::action_table_row854*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[857]) /*AbstractArray::add*/;
     variable[858] = variable[0];
-    variable[858] = ((parser_tables___ParserTable___action_table_row855_t)CALL(variable[858],COLOR_parser_tables___ParserTable___action_table_row855))(variable[858]) /*ParserTable::action_table_row855*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[858]) /*AbstractArray::add*/;
+    variable[858] = CALL_parser_tables___ParserTable___action_table_row855(variable[858])(variable[858]) /*ParserTable::action_table_row855*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[858]) /*AbstractArray::add*/;
     variable[859] = variable[0];
-    variable[859] = ((parser_tables___ParserTable___action_table_row856_t)CALL(variable[859],COLOR_parser_tables___ParserTable___action_table_row856))(variable[859]) /*ParserTable::action_table_row856*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[859]) /*AbstractArray::add*/;
+    variable[859] = CALL_parser_tables___ParserTable___action_table_row856(variable[859])(variable[859]) /*ParserTable::action_table_row856*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[859]) /*AbstractArray::add*/;
     variable[860] = variable[0];
-    variable[860] = ((parser_tables___ParserTable___action_table_row857_t)CALL(variable[860],COLOR_parser_tables___ParserTable___action_table_row857))(variable[860]) /*ParserTable::action_table_row857*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[860]) /*AbstractArray::add*/;
+    variable[860] = CALL_parser_tables___ParserTable___action_table_row857(variable[860])(variable[860]) /*ParserTable::action_table_row857*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[860]) /*AbstractArray::add*/;
     variable[861] = variable[0];
-    variable[861] = ((parser_tables___ParserTable___action_table_row858_t)CALL(variable[861],COLOR_parser_tables___ParserTable___action_table_row858))(variable[861]) /*ParserTable::action_table_row858*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[861]) /*AbstractArray::add*/;
+    variable[861] = CALL_parser_tables___ParserTable___action_table_row858(variable[861])(variable[861]) /*ParserTable::action_table_row858*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[861]) /*AbstractArray::add*/;
     variable[862] = variable[0];
-    variable[862] = ((parser_tables___ParserTable___action_table_row859_t)CALL(variable[862],COLOR_parser_tables___ParserTable___action_table_row859))(variable[862]) /*ParserTable::action_table_row859*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[862]) /*AbstractArray::add*/;
+    variable[862] = CALL_parser_tables___ParserTable___action_table_row859(variable[862])(variable[862]) /*ParserTable::action_table_row859*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[862]) /*AbstractArray::add*/;
     variable[863] = variable[0];
-    variable[863] = ((parser_tables___ParserTable___action_table_row860_t)CALL(variable[863],COLOR_parser_tables___ParserTable___action_table_row860))(variable[863]) /*ParserTable::action_table_row860*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[863]) /*AbstractArray::add*/;
+    variable[863] = CALL_parser_tables___ParserTable___action_table_row860(variable[863])(variable[863]) /*ParserTable::action_table_row860*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[863]) /*AbstractArray::add*/;
     variable[864] = variable[0];
-    variable[864] = ((parser_tables___ParserTable___action_table_row861_t)CALL(variable[864],COLOR_parser_tables___ParserTable___action_table_row861))(variable[864]) /*ParserTable::action_table_row861*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[864]) /*AbstractArray::add*/;
+    variable[864] = CALL_parser_tables___ParserTable___action_table_row861(variable[864])(variable[864]) /*ParserTable::action_table_row861*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[864]) /*AbstractArray::add*/;
     variable[865] = variable[0];
-    variable[865] = ((parser_tables___ParserTable___action_table_row862_t)CALL(variable[865],COLOR_parser_tables___ParserTable___action_table_row862))(variable[865]) /*ParserTable::action_table_row862*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[865]) /*AbstractArray::add*/;
+    variable[865] = CALL_parser_tables___ParserTable___action_table_row862(variable[865])(variable[865]) /*ParserTable::action_table_row862*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[865]) /*AbstractArray::add*/;
     variable[866] = variable[0];
-    variable[866] = ((parser_tables___ParserTable___action_table_row863_t)CALL(variable[866],COLOR_parser_tables___ParserTable___action_table_row863))(variable[866]) /*ParserTable::action_table_row863*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[866]) /*AbstractArray::add*/;
+    variable[866] = CALL_parser_tables___ParserTable___action_table_row863(variable[866])(variable[866]) /*ParserTable::action_table_row863*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[866]) /*AbstractArray::add*/;
     variable[867] = variable[0];
-    variable[867] = ((parser_tables___ParserTable___action_table_row864_t)CALL(variable[867],COLOR_parser_tables___ParserTable___action_table_row864))(variable[867]) /*ParserTable::action_table_row864*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[867]) /*AbstractArray::add*/;
+    variable[867] = CALL_parser_tables___ParserTable___action_table_row864(variable[867])(variable[867]) /*ParserTable::action_table_row864*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[867]) /*AbstractArray::add*/;
     variable[868] = variable[0];
-    variable[868] = ((parser_tables___ParserTable___action_table_row865_t)CALL(variable[868],COLOR_parser_tables___ParserTable___action_table_row865))(variable[868]) /*ParserTable::action_table_row865*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[868]) /*AbstractArray::add*/;
+    variable[868] = CALL_parser_tables___ParserTable___action_table_row865(variable[868])(variable[868]) /*ParserTable::action_table_row865*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[868]) /*AbstractArray::add*/;
     variable[869] = variable[0];
-    variable[869] = ((parser_tables___ParserTable___action_table_row866_t)CALL(variable[869],COLOR_parser_tables___ParserTable___action_table_row866))(variable[869]) /*ParserTable::action_table_row866*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[869]) /*AbstractArray::add*/;
+    variable[869] = CALL_parser_tables___ParserTable___action_table_row866(variable[869])(variable[869]) /*ParserTable::action_table_row866*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[869]) /*AbstractArray::add*/;
     variable[870] = variable[0];
-    variable[870] = ((parser_tables___ParserTable___action_table_row867_t)CALL(variable[870],COLOR_parser_tables___ParserTable___action_table_row867))(variable[870]) /*ParserTable::action_table_row867*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[870]) /*AbstractArray::add*/;
+    variable[870] = CALL_parser_tables___ParserTable___action_table_row867(variable[870])(variable[870]) /*ParserTable::action_table_row867*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[870]) /*AbstractArray::add*/;
     variable[871] = variable[0];
-    variable[871] = ((parser_tables___ParserTable___action_table_row868_t)CALL(variable[871],COLOR_parser_tables___ParserTable___action_table_row868))(variable[871]) /*ParserTable::action_table_row868*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[871]) /*AbstractArray::add*/;
+    variable[871] = CALL_parser_tables___ParserTable___action_table_row868(variable[871])(variable[871]) /*ParserTable::action_table_row868*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[871]) /*AbstractArray::add*/;
     variable[872] = variable[0];
-    variable[872] = ((parser_tables___ParserTable___action_table_row869_t)CALL(variable[872],COLOR_parser_tables___ParserTable___action_table_row869))(variable[872]) /*ParserTable::action_table_row869*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[872]) /*AbstractArray::add*/;
+    variable[872] = CALL_parser_tables___ParserTable___action_table_row869(variable[872])(variable[872]) /*ParserTable::action_table_row869*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[872]) /*AbstractArray::add*/;
     variable[873] = variable[0];
-    variable[873] = ((parser_tables___ParserTable___action_table_row870_t)CALL(variable[873],COLOR_parser_tables___ParserTable___action_table_row870))(variable[873]) /*ParserTable::action_table_row870*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[873]) /*AbstractArray::add*/;
+    variable[873] = CALL_parser_tables___ParserTable___action_table_row870(variable[873])(variable[873]) /*ParserTable::action_table_row870*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[873]) /*AbstractArray::add*/;
     variable[874] = variable[0];
-    variable[874] = ((parser_tables___ParserTable___action_table_row871_t)CALL(variable[874],COLOR_parser_tables___ParserTable___action_table_row871))(variable[874]) /*ParserTable::action_table_row871*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[874]) /*AbstractArray::add*/;
+    variable[874] = CALL_parser_tables___ParserTable___action_table_row871(variable[874])(variable[874]) /*ParserTable::action_table_row871*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[874]) /*AbstractArray::add*/;
     variable[875] = variable[0];
-    variable[875] = ((parser_tables___ParserTable___action_table_row872_t)CALL(variable[875],COLOR_parser_tables___ParserTable___action_table_row872))(variable[875]) /*ParserTable::action_table_row872*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[875]) /*AbstractArray::add*/;
+    variable[875] = CALL_parser_tables___ParserTable___action_table_row872(variable[875])(variable[875]) /*ParserTable::action_table_row872*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[875]) /*AbstractArray::add*/;
     variable[876] = variable[0];
-    variable[876] = ((parser_tables___ParserTable___action_table_row873_t)CALL(variable[876],COLOR_parser_tables___ParserTable___action_table_row873))(variable[876]) /*ParserTable::action_table_row873*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[876]) /*AbstractArray::add*/;
+    variable[876] = CALL_parser_tables___ParserTable___action_table_row873(variable[876])(variable[876]) /*ParserTable::action_table_row873*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[876]) /*AbstractArray::add*/;
     variable[877] = variable[0];
-    variable[877] = ((parser_tables___ParserTable___action_table_row874_t)CALL(variable[877],COLOR_parser_tables___ParserTable___action_table_row874))(variable[877]) /*ParserTable::action_table_row874*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[877]) /*AbstractArray::add*/;
+    variable[877] = CALL_parser_tables___ParserTable___action_table_row874(variable[877])(variable[877]) /*ParserTable::action_table_row874*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[877]) /*AbstractArray::add*/;
     variable[878] = variable[0];
-    variable[878] = ((parser_tables___ParserTable___action_table_row875_t)CALL(variable[878],COLOR_parser_tables___ParserTable___action_table_row875))(variable[878]) /*ParserTable::action_table_row875*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[878]) /*AbstractArray::add*/;
+    variable[878] = CALL_parser_tables___ParserTable___action_table_row875(variable[878])(variable[878]) /*ParserTable::action_table_row875*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[878]) /*AbstractArray::add*/;
     variable[879] = variable[0];
-    variable[879] = ((parser_tables___ParserTable___action_table_row876_t)CALL(variable[879],COLOR_parser_tables___ParserTable___action_table_row876))(variable[879]) /*ParserTable::action_table_row876*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[879]) /*AbstractArray::add*/;
+    variable[879] = CALL_parser_tables___ParserTable___action_table_row876(variable[879])(variable[879]) /*ParserTable::action_table_row876*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[879]) /*AbstractArray::add*/;
     variable[880] = variable[0];
-    variable[880] = ((parser_tables___ParserTable___action_table_row877_t)CALL(variable[880],COLOR_parser_tables___ParserTable___action_table_row877))(variable[880]) /*ParserTable::action_table_row877*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[880]) /*AbstractArray::add*/;
+    variable[880] = CALL_parser_tables___ParserTable___action_table_row877(variable[880])(variable[880]) /*ParserTable::action_table_row877*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[880]) /*AbstractArray::add*/;
     variable[881] = variable[0];
-    variable[881] = ((parser_tables___ParserTable___action_table_row878_t)CALL(variable[881],COLOR_parser_tables___ParserTable___action_table_row878))(variable[881]) /*ParserTable::action_table_row878*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[881]) /*AbstractArray::add*/;
+    variable[881] = CALL_parser_tables___ParserTable___action_table_row878(variable[881])(variable[881]) /*ParserTable::action_table_row878*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[881]) /*AbstractArray::add*/;
     variable[882] = variable[0];
-    variable[882] = ((parser_tables___ParserTable___action_table_row879_t)CALL(variable[882],COLOR_parser_tables___ParserTable___action_table_row879))(variable[882]) /*ParserTable::action_table_row879*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[882]) /*AbstractArray::add*/;
+    variable[882] = CALL_parser_tables___ParserTable___action_table_row879(variable[882])(variable[882]) /*ParserTable::action_table_row879*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[882]) /*AbstractArray::add*/;
     variable[883] = variable[0];
-    variable[883] = ((parser_tables___ParserTable___action_table_row880_t)CALL(variable[883],COLOR_parser_tables___ParserTable___action_table_row880))(variable[883]) /*ParserTable::action_table_row880*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[883]) /*AbstractArray::add*/;
+    variable[883] = CALL_parser_tables___ParserTable___action_table_row880(variable[883])(variable[883]) /*ParserTable::action_table_row880*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[883]) /*AbstractArray::add*/;
     variable[884] = variable[0];
-    variable[884] = ((parser_tables___ParserTable___action_table_row881_t)CALL(variable[884],COLOR_parser_tables___ParserTable___action_table_row881))(variable[884]) /*ParserTable::action_table_row881*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[884]) /*AbstractArray::add*/;
+    variable[884] = CALL_parser_tables___ParserTable___action_table_row881(variable[884])(variable[884]) /*ParserTable::action_table_row881*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[884]) /*AbstractArray::add*/;
     variable[885] = variable[0];
-    variable[885] = ((parser_tables___ParserTable___action_table_row882_t)CALL(variable[885],COLOR_parser_tables___ParserTable___action_table_row882))(variable[885]) /*ParserTable::action_table_row882*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[885]) /*AbstractArray::add*/;
+    variable[885] = CALL_parser_tables___ParserTable___action_table_row882(variable[885])(variable[885]) /*ParserTable::action_table_row882*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[885]) /*AbstractArray::add*/;
     variable[886] = variable[0];
-    variable[886] = ((parser_tables___ParserTable___action_table_row883_t)CALL(variable[886],COLOR_parser_tables___ParserTable___action_table_row883))(variable[886]) /*ParserTable::action_table_row883*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[886]) /*AbstractArray::add*/;
+    variable[886] = CALL_parser_tables___ParserTable___action_table_row883(variable[886])(variable[886]) /*ParserTable::action_table_row883*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[886]) /*AbstractArray::add*/;
     variable[887] = variable[0];
-    variable[887] = ((parser_tables___ParserTable___action_table_row884_t)CALL(variable[887],COLOR_parser_tables___ParserTable___action_table_row884))(variable[887]) /*ParserTable::action_table_row884*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[887]) /*AbstractArray::add*/;
+    variable[887] = CALL_parser_tables___ParserTable___action_table_row884(variable[887])(variable[887]) /*ParserTable::action_table_row884*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[887]) /*AbstractArray::add*/;
     variable[888] = variable[0];
-    variable[888] = ((parser_tables___ParserTable___action_table_row885_t)CALL(variable[888],COLOR_parser_tables___ParserTable___action_table_row885))(variable[888]) /*ParserTable::action_table_row885*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[888]) /*AbstractArray::add*/;
+    variable[888] = CALL_parser_tables___ParserTable___action_table_row885(variable[888])(variable[888]) /*ParserTable::action_table_row885*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[888]) /*AbstractArray::add*/;
     variable[889] = variable[0];
-    variable[889] = ((parser_tables___ParserTable___action_table_row886_t)CALL(variable[889],COLOR_parser_tables___ParserTable___action_table_row886))(variable[889]) /*ParserTable::action_table_row886*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[889]) /*AbstractArray::add*/;
+    variable[889] = CALL_parser_tables___ParserTable___action_table_row886(variable[889])(variable[889]) /*ParserTable::action_table_row886*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[889]) /*AbstractArray::add*/;
     variable[890] = variable[0];
-    variable[890] = ((parser_tables___ParserTable___action_table_row887_t)CALL(variable[890],COLOR_parser_tables___ParserTable___action_table_row887))(variable[890]) /*ParserTable::action_table_row887*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[890]) /*AbstractArray::add*/;
+    variable[890] = CALL_parser_tables___ParserTable___action_table_row887(variable[890])(variable[890]) /*ParserTable::action_table_row887*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[890]) /*AbstractArray::add*/;
     variable[891] = variable[0];
-    variable[891] = ((parser_tables___ParserTable___action_table_row888_t)CALL(variable[891],COLOR_parser_tables___ParserTable___action_table_row888))(variable[891]) /*ParserTable::action_table_row888*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[891]) /*AbstractArray::add*/;
+    variable[891] = CALL_parser_tables___ParserTable___action_table_row888(variable[891])(variable[891]) /*ParserTable::action_table_row888*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[891]) /*AbstractArray::add*/;
     variable[892] = variable[0];
-    variable[892] = ((parser_tables___ParserTable___action_table_row889_t)CALL(variable[892],COLOR_parser_tables___ParserTable___action_table_row889))(variable[892]) /*ParserTable::action_table_row889*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[892]) /*AbstractArray::add*/;
+    variable[892] = CALL_parser_tables___ParserTable___action_table_row889(variable[892])(variable[892]) /*ParserTable::action_table_row889*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[892]) /*AbstractArray::add*/;
     variable[893] = variable[0];
-    variable[893] = ((parser_tables___ParserTable___action_table_row890_t)CALL(variable[893],COLOR_parser_tables___ParserTable___action_table_row890))(variable[893]) /*ParserTable::action_table_row890*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[893]) /*AbstractArray::add*/;
+    variable[893] = CALL_parser_tables___ParserTable___action_table_row890(variable[893])(variable[893]) /*ParserTable::action_table_row890*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[893]) /*AbstractArray::add*/;
     variable[894] = variable[0];
-    variable[894] = ((parser_tables___ParserTable___action_table_row891_t)CALL(variable[894],COLOR_parser_tables___ParserTable___action_table_row891))(variable[894]) /*ParserTable::action_table_row891*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[894]) /*AbstractArray::add*/;
+    variable[894] = CALL_parser_tables___ParserTable___action_table_row891(variable[894])(variable[894]) /*ParserTable::action_table_row891*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[894]) /*AbstractArray::add*/;
     variable[895] = variable[0];
-    variable[895] = ((parser_tables___ParserTable___action_table_row892_t)CALL(variable[895],COLOR_parser_tables___ParserTable___action_table_row892))(variable[895]) /*ParserTable::action_table_row892*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[895]) /*AbstractArray::add*/;
+    variable[895] = CALL_parser_tables___ParserTable___action_table_row892(variable[895])(variable[895]) /*ParserTable::action_table_row892*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[895]) /*AbstractArray::add*/;
     variable[896] = variable[0];
-    variable[896] = ((parser_tables___ParserTable___action_table_row893_t)CALL(variable[896],COLOR_parser_tables___ParserTable___action_table_row893))(variable[896]) /*ParserTable::action_table_row893*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[896]) /*AbstractArray::add*/;
+    variable[896] = CALL_parser_tables___ParserTable___action_table_row893(variable[896])(variable[896]) /*ParserTable::action_table_row893*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[896]) /*AbstractArray::add*/;
     variable[897] = variable[0];
-    variable[897] = ((parser_tables___ParserTable___action_table_row894_t)CALL(variable[897],COLOR_parser_tables___ParserTable___action_table_row894))(variable[897]) /*ParserTable::action_table_row894*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[897]) /*AbstractArray::add*/;
+    variable[897] = CALL_parser_tables___ParserTable___action_table_row894(variable[897])(variable[897]) /*ParserTable::action_table_row894*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[897]) /*AbstractArray::add*/;
     variable[898] = variable[0];
-    variable[898] = ((parser_tables___ParserTable___action_table_row895_t)CALL(variable[898],COLOR_parser_tables___ParserTable___action_table_row895))(variable[898]) /*ParserTable::action_table_row895*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[898]) /*AbstractArray::add*/;
+    variable[898] = CALL_parser_tables___ParserTable___action_table_row895(variable[898])(variable[898]) /*ParserTable::action_table_row895*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[898]) /*AbstractArray::add*/;
     variable[899] = variable[0];
-    variable[899] = ((parser_tables___ParserTable___action_table_row896_t)CALL(variable[899],COLOR_parser_tables___ParserTable___action_table_row896))(variable[899]) /*ParserTable::action_table_row896*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[899]) /*AbstractArray::add*/;
+    variable[899] = CALL_parser_tables___ParserTable___action_table_row896(variable[899])(variable[899]) /*ParserTable::action_table_row896*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[899]) /*AbstractArray::add*/;
     variable[900] = variable[0];
-    variable[900] = ((parser_tables___ParserTable___action_table_row897_t)CALL(variable[900],COLOR_parser_tables___ParserTable___action_table_row897))(variable[900]) /*ParserTable::action_table_row897*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[900]) /*AbstractArray::add*/;
+    variable[900] = CALL_parser_tables___ParserTable___action_table_row897(variable[900])(variable[900]) /*ParserTable::action_table_row897*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[900]) /*AbstractArray::add*/;
     variable[901] = variable[0];
-    variable[901] = ((parser_tables___ParserTable___action_table_row898_t)CALL(variable[901],COLOR_parser_tables___ParserTable___action_table_row898))(variable[901]) /*ParserTable::action_table_row898*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[901]) /*AbstractArray::add*/;
+    variable[901] = CALL_parser_tables___ParserTable___action_table_row898(variable[901])(variable[901]) /*ParserTable::action_table_row898*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[901]) /*AbstractArray::add*/;
     variable[902] = variable[0];
-    variable[902] = ((parser_tables___ParserTable___action_table_row899_t)CALL(variable[902],COLOR_parser_tables___ParserTable___action_table_row899))(variable[902]) /*ParserTable::action_table_row899*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[902]) /*AbstractArray::add*/;
+    variable[902] = CALL_parser_tables___ParserTable___action_table_row899(variable[902])(variable[902]) /*ParserTable::action_table_row899*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[902]) /*AbstractArray::add*/;
     variable[903] = variable[0];
-    variable[903] = ((parser_tables___ParserTable___action_table_row900_t)CALL(variable[903],COLOR_parser_tables___ParserTable___action_table_row900))(variable[903]) /*ParserTable::action_table_row900*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[903]) /*AbstractArray::add*/;
+    variable[903] = CALL_parser_tables___ParserTable___action_table_row900(variable[903])(variable[903]) /*ParserTable::action_table_row900*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[903]) /*AbstractArray::add*/;
     variable[904] = variable[0];
-    variable[904] = ((parser_tables___ParserTable___action_table_row901_t)CALL(variable[904],COLOR_parser_tables___ParserTable___action_table_row901))(variable[904]) /*ParserTable::action_table_row901*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[904]) /*AbstractArray::add*/;
+    variable[904] = CALL_parser_tables___ParserTable___action_table_row901(variable[904])(variable[904]) /*ParserTable::action_table_row901*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[904]) /*AbstractArray::add*/;
     variable[905] = variable[0];
-    variable[905] = ((parser_tables___ParserTable___action_table_row902_t)CALL(variable[905],COLOR_parser_tables___ParserTable___action_table_row902))(variable[905]) /*ParserTable::action_table_row902*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[905]) /*AbstractArray::add*/;
+    variable[905] = CALL_parser_tables___ParserTable___action_table_row902(variable[905])(variable[905]) /*ParserTable::action_table_row902*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[905]) /*AbstractArray::add*/;
     variable[906] = variable[0];
-    variable[906] = ((parser_tables___ParserTable___action_table_row903_t)CALL(variable[906],COLOR_parser_tables___ParserTable___action_table_row903))(variable[906]) /*ParserTable::action_table_row903*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[906]) /*AbstractArray::add*/;
+    variable[906] = CALL_parser_tables___ParserTable___action_table_row903(variable[906])(variable[906]) /*ParserTable::action_table_row903*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[906]) /*AbstractArray::add*/;
     variable[907] = variable[0];
-    variable[907] = ((parser_tables___ParserTable___action_table_row904_t)CALL(variable[907],COLOR_parser_tables___ParserTable___action_table_row904))(variable[907]) /*ParserTable::action_table_row904*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[907]) /*AbstractArray::add*/;
+    variable[907] = CALL_parser_tables___ParserTable___action_table_row904(variable[907])(variable[907]) /*ParserTable::action_table_row904*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[907]) /*AbstractArray::add*/;
     variable[908] = variable[0];
-    variable[908] = ((parser_tables___ParserTable___action_table_row905_t)CALL(variable[908],COLOR_parser_tables___ParserTable___action_table_row905))(variable[908]) /*ParserTable::action_table_row905*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[908]) /*AbstractArray::add*/;
+    variable[908] = CALL_parser_tables___ParserTable___action_table_row905(variable[908])(variable[908]) /*ParserTable::action_table_row905*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[908]) /*AbstractArray::add*/;
     variable[909] = variable[0];
-    variable[909] = ((parser_tables___ParserTable___action_table_row906_t)CALL(variable[909],COLOR_parser_tables___ParserTable___action_table_row906))(variable[909]) /*ParserTable::action_table_row906*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[909]) /*AbstractArray::add*/;
+    variable[909] = CALL_parser_tables___ParserTable___action_table_row906(variable[909])(variable[909]) /*ParserTable::action_table_row906*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[909]) /*AbstractArray::add*/;
     variable[910] = variable[0];
-    variable[910] = ((parser_tables___ParserTable___action_table_row907_t)CALL(variable[910],COLOR_parser_tables___ParserTable___action_table_row907))(variable[910]) /*ParserTable::action_table_row907*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[910]) /*AbstractArray::add*/;
+    variable[910] = CALL_parser_tables___ParserTable___action_table_row907(variable[910])(variable[910]) /*ParserTable::action_table_row907*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[910]) /*AbstractArray::add*/;
     variable[911] = variable[0];
-    variable[911] = ((parser_tables___ParserTable___action_table_row908_t)CALL(variable[911],COLOR_parser_tables___ParserTable___action_table_row908))(variable[911]) /*ParserTable::action_table_row908*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[911]) /*AbstractArray::add*/;
+    variable[911] = CALL_parser_tables___ParserTable___action_table_row908(variable[911])(variable[911]) /*ParserTable::action_table_row908*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[911]) /*AbstractArray::add*/;
     variable[912] = variable[0];
-    variable[912] = ((parser_tables___ParserTable___action_table_row909_t)CALL(variable[912],COLOR_parser_tables___ParserTable___action_table_row909))(variable[912]) /*ParserTable::action_table_row909*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[912]) /*AbstractArray::add*/;
+    variable[912] = CALL_parser_tables___ParserTable___action_table_row909(variable[912])(variable[912]) /*ParserTable::action_table_row909*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[912]) /*AbstractArray::add*/;
     variable[913] = variable[0];
-    variable[913] = ((parser_tables___ParserTable___action_table_row910_t)CALL(variable[913],COLOR_parser_tables___ParserTable___action_table_row910))(variable[913]) /*ParserTable::action_table_row910*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[913]) /*AbstractArray::add*/;
+    variable[913] = CALL_parser_tables___ParserTable___action_table_row910(variable[913])(variable[913]) /*ParserTable::action_table_row910*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[913]) /*AbstractArray::add*/;
     variable[914] = variable[0];
-    variable[914] = ((parser_tables___ParserTable___action_table_row911_t)CALL(variable[914],COLOR_parser_tables___ParserTable___action_table_row911))(variable[914]) /*ParserTable::action_table_row911*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[914]) /*AbstractArray::add*/;
+    variable[914] = CALL_parser_tables___ParserTable___action_table_row911(variable[914])(variable[914]) /*ParserTable::action_table_row911*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[914]) /*AbstractArray::add*/;
     variable[915] = variable[0];
-    variable[915] = ((parser_tables___ParserTable___action_table_row912_t)CALL(variable[915],COLOR_parser_tables___ParserTable___action_table_row912))(variable[915]) /*ParserTable::action_table_row912*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[915]) /*AbstractArray::add*/;
+    variable[915] = CALL_parser_tables___ParserTable___action_table_row912(variable[915])(variable[915]) /*ParserTable::action_table_row912*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[915]) /*AbstractArray::add*/;
     variable[916] = variable[0];
-    variable[916] = ((parser_tables___ParserTable___action_table_row913_t)CALL(variable[916],COLOR_parser_tables___ParserTable___action_table_row913))(variable[916]) /*ParserTable::action_table_row913*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[916]) /*AbstractArray::add*/;
+    variable[916] = CALL_parser_tables___ParserTable___action_table_row913(variable[916])(variable[916]) /*ParserTable::action_table_row913*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[916]) /*AbstractArray::add*/;
     variable[917] = variable[0];
-    variable[917] = ((parser_tables___ParserTable___action_table_row914_t)CALL(variable[917],COLOR_parser_tables___ParserTable___action_table_row914))(variable[917]) /*ParserTable::action_table_row914*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[917]) /*AbstractArray::add*/;
+    variable[917] = CALL_parser_tables___ParserTable___action_table_row914(variable[917])(variable[917]) /*ParserTable::action_table_row914*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[917]) /*AbstractArray::add*/;
     variable[918] = variable[0];
-    variable[918] = ((parser_tables___ParserTable___action_table_row915_t)CALL(variable[918],COLOR_parser_tables___ParserTable___action_table_row915))(variable[918]) /*ParserTable::action_table_row915*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[918]) /*AbstractArray::add*/;
+    variable[918] = CALL_parser_tables___ParserTable___action_table_row915(variable[918])(variable[918]) /*ParserTable::action_table_row915*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[918]) /*AbstractArray::add*/;
     variable[919] = variable[0];
-    variable[919] = ((parser_tables___ParserTable___action_table_row916_t)CALL(variable[919],COLOR_parser_tables___ParserTable___action_table_row916))(variable[919]) /*ParserTable::action_table_row916*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[919]) /*AbstractArray::add*/;
+    variable[919] = CALL_parser_tables___ParserTable___action_table_row916(variable[919])(variable[919]) /*ParserTable::action_table_row916*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[919]) /*AbstractArray::add*/;
     variable[920] = variable[0];
-    variable[920] = ((parser_tables___ParserTable___action_table_row917_t)CALL(variable[920],COLOR_parser_tables___ParserTable___action_table_row917))(variable[920]) /*ParserTable::action_table_row917*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[920]) /*AbstractArray::add*/;
+    variable[920] = CALL_parser_tables___ParserTable___action_table_row917(variable[920])(variable[920]) /*ParserTable::action_table_row917*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[920]) /*AbstractArray::add*/;
     variable[921] = variable[0];
-    variable[921] = ((parser_tables___ParserTable___action_table_row918_t)CALL(variable[921],COLOR_parser_tables___ParserTable___action_table_row918))(variable[921]) /*ParserTable::action_table_row918*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[921]) /*AbstractArray::add*/;
+    variable[921] = CALL_parser_tables___ParserTable___action_table_row918(variable[921])(variable[921]) /*ParserTable::action_table_row918*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[921]) /*AbstractArray::add*/;
     variable[922] = variable[0];
-    variable[922] = ((parser_tables___ParserTable___action_table_row919_t)CALL(variable[922],COLOR_parser_tables___ParserTable___action_table_row919))(variable[922]) /*ParserTable::action_table_row919*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[922]) /*AbstractArray::add*/;
+    variable[922] = CALL_parser_tables___ParserTable___action_table_row919(variable[922])(variable[922]) /*ParserTable::action_table_row919*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[922]) /*AbstractArray::add*/;
     variable[923] = variable[0];
-    variable[923] = ((parser_tables___ParserTable___action_table_row920_t)CALL(variable[923],COLOR_parser_tables___ParserTable___action_table_row920))(variable[923]) /*ParserTable::action_table_row920*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[923]) /*AbstractArray::add*/;
+    variable[923] = CALL_parser_tables___ParserTable___action_table_row920(variable[923])(variable[923]) /*ParserTable::action_table_row920*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[923]) /*AbstractArray::add*/;
     variable[924] = variable[0];
-    variable[924] = ((parser_tables___ParserTable___action_table_row921_t)CALL(variable[924],COLOR_parser_tables___ParserTable___action_table_row921))(variable[924]) /*ParserTable::action_table_row921*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[924]) /*AbstractArray::add*/;
+    variable[924] = CALL_parser_tables___ParserTable___action_table_row921(variable[924])(variable[924]) /*ParserTable::action_table_row921*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[924]) /*AbstractArray::add*/;
     variable[925] = variable[0];
-    variable[925] = ((parser_tables___ParserTable___action_table_row922_t)CALL(variable[925],COLOR_parser_tables___ParserTable___action_table_row922))(variable[925]) /*ParserTable::action_table_row922*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[925]) /*AbstractArray::add*/;
+    variable[925] = CALL_parser_tables___ParserTable___action_table_row922(variable[925])(variable[925]) /*ParserTable::action_table_row922*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[925]) /*AbstractArray::add*/;
     variable[926] = variable[0];
-    variable[926] = ((parser_tables___ParserTable___action_table_row923_t)CALL(variable[926],COLOR_parser_tables___ParserTable___action_table_row923))(variable[926]) /*ParserTable::action_table_row923*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[926]) /*AbstractArray::add*/;
+    variable[926] = CALL_parser_tables___ParserTable___action_table_row923(variable[926])(variable[926]) /*ParserTable::action_table_row923*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[926]) /*AbstractArray::add*/;
     variable[927] = variable[0];
-    variable[927] = ((parser_tables___ParserTable___action_table_row924_t)CALL(variable[927],COLOR_parser_tables___ParserTable___action_table_row924))(variable[927]) /*ParserTable::action_table_row924*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[927]) /*AbstractArray::add*/;
+    variable[927] = CALL_parser_tables___ParserTable___action_table_row924(variable[927])(variable[927]) /*ParserTable::action_table_row924*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[927]) /*AbstractArray::add*/;
     variable[928] = variable[0];
-    variable[928] = ((parser_tables___ParserTable___action_table_row925_t)CALL(variable[928],COLOR_parser_tables___ParserTable___action_table_row925))(variable[928]) /*ParserTable::action_table_row925*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[928]) /*AbstractArray::add*/;
+    variable[928] = CALL_parser_tables___ParserTable___action_table_row925(variable[928])(variable[928]) /*ParserTable::action_table_row925*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[928]) /*AbstractArray::add*/;
     variable[929] = variable[0];
-    variable[929] = ((parser_tables___ParserTable___action_table_row926_t)CALL(variable[929],COLOR_parser_tables___ParserTable___action_table_row926))(variable[929]) /*ParserTable::action_table_row926*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[929]) /*AbstractArray::add*/;
+    variable[929] = CALL_parser_tables___ParserTable___action_table_row926(variable[929])(variable[929]) /*ParserTable::action_table_row926*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[929]) /*AbstractArray::add*/;
     variable[930] = variable[0];
-    variable[930] = ((parser_tables___ParserTable___action_table_row927_t)CALL(variable[930],COLOR_parser_tables___ParserTable___action_table_row927))(variable[930]) /*ParserTable::action_table_row927*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[930]) /*AbstractArray::add*/;
+    variable[930] = CALL_parser_tables___ParserTable___action_table_row927(variable[930])(variable[930]) /*ParserTable::action_table_row927*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[930]) /*AbstractArray::add*/;
     variable[931] = variable[0];
-    variable[931] = ((parser_tables___ParserTable___action_table_row928_t)CALL(variable[931],COLOR_parser_tables___ParserTable___action_table_row928))(variable[931]) /*ParserTable::action_table_row928*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[931]) /*AbstractArray::add*/;
+    variable[931] = CALL_parser_tables___ParserTable___action_table_row928(variable[931])(variable[931]) /*ParserTable::action_table_row928*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[931]) /*AbstractArray::add*/;
     variable[932] = variable[0];
-    variable[932] = ((parser_tables___ParserTable___action_table_row929_t)CALL(variable[932],COLOR_parser_tables___ParserTable___action_table_row929))(variable[932]) /*ParserTable::action_table_row929*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[932]) /*AbstractArray::add*/;
+    variable[932] = CALL_parser_tables___ParserTable___action_table_row929(variable[932])(variable[932]) /*ParserTable::action_table_row929*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[932]) /*AbstractArray::add*/;
     variable[933] = variable[0];
-    variable[933] = ((parser_tables___ParserTable___action_table_row930_t)CALL(variable[933],COLOR_parser_tables___ParserTable___action_table_row930))(variable[933]) /*ParserTable::action_table_row930*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[933]) /*AbstractArray::add*/;
+    variable[933] = CALL_parser_tables___ParserTable___action_table_row930(variable[933])(variable[933]) /*ParserTable::action_table_row930*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[933]) /*AbstractArray::add*/;
     variable[934] = variable[0];
-    variable[934] = ((parser_tables___ParserTable___action_table_row931_t)CALL(variable[934],COLOR_parser_tables___ParserTable___action_table_row931))(variable[934]) /*ParserTable::action_table_row931*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[934]) /*AbstractArray::add*/;
+    variable[934] = CALL_parser_tables___ParserTable___action_table_row931(variable[934])(variable[934]) /*ParserTable::action_table_row931*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[934]) /*AbstractArray::add*/;
     variable[935] = variable[0];
-    variable[935] = ((parser_tables___ParserTable___action_table_row932_t)CALL(variable[935],COLOR_parser_tables___ParserTable___action_table_row932))(variable[935]) /*ParserTable::action_table_row932*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[935]) /*AbstractArray::add*/;
+    variable[935] = CALL_parser_tables___ParserTable___action_table_row932(variable[935])(variable[935]) /*ParserTable::action_table_row932*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[935]) /*AbstractArray::add*/;
     variable[936] = variable[0];
-    variable[936] = ((parser_tables___ParserTable___action_table_row933_t)CALL(variable[936],COLOR_parser_tables___ParserTable___action_table_row933))(variable[936]) /*ParserTable::action_table_row933*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[936]) /*AbstractArray::add*/;
+    variable[936] = CALL_parser_tables___ParserTable___action_table_row933(variable[936])(variable[936]) /*ParserTable::action_table_row933*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[936]) /*AbstractArray::add*/;
     variable[937] = variable[0];
-    variable[937] = ((parser_tables___ParserTable___action_table_row934_t)CALL(variable[937],COLOR_parser_tables___ParserTable___action_table_row934))(variable[937]) /*ParserTable::action_table_row934*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[937]) /*AbstractArray::add*/;
+    variable[937] = CALL_parser_tables___ParserTable___action_table_row934(variable[937])(variable[937]) /*ParserTable::action_table_row934*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[937]) /*AbstractArray::add*/;
     variable[938] = variable[0];
-    variable[938] = ((parser_tables___ParserTable___action_table_row935_t)CALL(variable[938],COLOR_parser_tables___ParserTable___action_table_row935))(variable[938]) /*ParserTable::action_table_row935*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[938]) /*AbstractArray::add*/;
+    variable[938] = CALL_parser_tables___ParserTable___action_table_row935(variable[938])(variable[938]) /*ParserTable::action_table_row935*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[938]) /*AbstractArray::add*/;
     variable[939] = variable[0];
-    variable[939] = ((parser_tables___ParserTable___action_table_row936_t)CALL(variable[939],COLOR_parser_tables___ParserTable___action_table_row936))(variable[939]) /*ParserTable::action_table_row936*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[939]) /*AbstractArray::add*/;
+    variable[939] = CALL_parser_tables___ParserTable___action_table_row936(variable[939])(variable[939]) /*ParserTable::action_table_row936*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[939]) /*AbstractArray::add*/;
     variable[940] = variable[0];
-    variable[940] = ((parser_tables___ParserTable___action_table_row937_t)CALL(variable[940],COLOR_parser_tables___ParserTable___action_table_row937))(variable[940]) /*ParserTable::action_table_row937*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[940]) /*AbstractArray::add*/;
+    variable[940] = CALL_parser_tables___ParserTable___action_table_row937(variable[940])(variable[940]) /*ParserTable::action_table_row937*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[940]) /*AbstractArray::add*/;
     variable[941] = variable[0];
-    variable[941] = ((parser_tables___ParserTable___action_table_row938_t)CALL(variable[941],COLOR_parser_tables___ParserTable___action_table_row938))(variable[941]) /*ParserTable::action_table_row938*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[941]) /*AbstractArray::add*/;
+    variable[941] = CALL_parser_tables___ParserTable___action_table_row938(variable[941])(variable[941]) /*ParserTable::action_table_row938*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[941]) /*AbstractArray::add*/;
     variable[942] = variable[0];
-    variable[942] = ((parser_tables___ParserTable___action_table_row939_t)CALL(variable[942],COLOR_parser_tables___ParserTable___action_table_row939))(variable[942]) /*ParserTable::action_table_row939*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[942]) /*AbstractArray::add*/;
+    variable[942] = CALL_parser_tables___ParserTable___action_table_row939(variable[942])(variable[942]) /*ParserTable::action_table_row939*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[942]) /*AbstractArray::add*/;
     variable[943] = variable[0];
-    variable[943] = ((parser_tables___ParserTable___action_table_row940_t)CALL(variable[943],COLOR_parser_tables___ParserTable___action_table_row940))(variable[943]) /*ParserTable::action_table_row940*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[943]) /*AbstractArray::add*/;
+    variable[943] = CALL_parser_tables___ParserTable___action_table_row940(variable[943])(variable[943]) /*ParserTable::action_table_row940*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[943]) /*AbstractArray::add*/;
     variable[944] = variable[0];
-    variable[944] = ((parser_tables___ParserTable___action_table_row941_t)CALL(variable[944],COLOR_parser_tables___ParserTable___action_table_row941))(variable[944]) /*ParserTable::action_table_row941*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[944]) /*AbstractArray::add*/;
+    variable[944] = CALL_parser_tables___ParserTable___action_table_row941(variable[944])(variable[944]) /*ParserTable::action_table_row941*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[944]) /*AbstractArray::add*/;
     variable[945] = variable[0];
-    variable[945] = ((parser_tables___ParserTable___action_table_row942_t)CALL(variable[945],COLOR_parser_tables___ParserTable___action_table_row942))(variable[945]) /*ParserTable::action_table_row942*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[945]) /*AbstractArray::add*/;
+    variable[945] = CALL_parser_tables___ParserTable___action_table_row942(variable[945])(variable[945]) /*ParserTable::action_table_row942*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[945]) /*AbstractArray::add*/;
     variable[946] = variable[0];
-    variable[946] = ((parser_tables___ParserTable___action_table_row943_t)CALL(variable[946],COLOR_parser_tables___ParserTable___action_table_row943))(variable[946]) /*ParserTable::action_table_row943*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[946]) /*AbstractArray::add*/;
+    variable[946] = CALL_parser_tables___ParserTable___action_table_row943(variable[946])(variable[946]) /*ParserTable::action_table_row943*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[946]) /*AbstractArray::add*/;
     variable[947] = variable[0];
-    variable[947] = ((parser_tables___ParserTable___action_table_row944_t)CALL(variable[947],COLOR_parser_tables___ParserTable___action_table_row944))(variable[947]) /*ParserTable::action_table_row944*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[947]) /*AbstractArray::add*/;
+    variable[947] = CALL_parser_tables___ParserTable___action_table_row944(variable[947])(variable[947]) /*ParserTable::action_table_row944*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[947]) /*AbstractArray::add*/;
     variable[948] = variable[0];
-    variable[948] = ((parser_tables___ParserTable___action_table_row945_t)CALL(variable[948],COLOR_parser_tables___ParserTable___action_table_row945))(variable[948]) /*ParserTable::action_table_row945*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[948]) /*AbstractArray::add*/;
+    variable[948] = CALL_parser_tables___ParserTable___action_table_row945(variable[948])(variable[948]) /*ParserTable::action_table_row945*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[948]) /*AbstractArray::add*/;
     variable[949] = variable[0];
-    variable[949] = ((parser_tables___ParserTable___action_table_row946_t)CALL(variable[949],COLOR_parser_tables___ParserTable___action_table_row946))(variable[949]) /*ParserTable::action_table_row946*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[949]) /*AbstractArray::add*/;
+    variable[949] = CALL_parser_tables___ParserTable___action_table_row946(variable[949])(variable[949]) /*ParserTable::action_table_row946*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[949]) /*AbstractArray::add*/;
     variable[950] = variable[0];
-    variable[950] = ((parser_tables___ParserTable___action_table_row947_t)CALL(variable[950],COLOR_parser_tables___ParserTable___action_table_row947))(variable[950]) /*ParserTable::action_table_row947*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[950]) /*AbstractArray::add*/;
+    variable[950] = CALL_parser_tables___ParserTable___action_table_row947(variable[950])(variable[950]) /*ParserTable::action_table_row947*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[950]) /*AbstractArray::add*/;
     variable[951] = variable[0];
-    variable[951] = ((parser_tables___ParserTable___action_table_row948_t)CALL(variable[951],COLOR_parser_tables___ParserTable___action_table_row948))(variable[951]) /*ParserTable::action_table_row948*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[951]) /*AbstractArray::add*/;
+    variable[951] = CALL_parser_tables___ParserTable___action_table_row948(variable[951])(variable[951]) /*ParserTable::action_table_row948*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[951]) /*AbstractArray::add*/;
     variable[952] = variable[0];
-    variable[952] = ((parser_tables___ParserTable___action_table_row949_t)CALL(variable[952],COLOR_parser_tables___ParserTable___action_table_row949))(variable[952]) /*ParserTable::action_table_row949*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[952]) /*AbstractArray::add*/;
+    variable[952] = CALL_parser_tables___ParserTable___action_table_row949(variable[952])(variable[952]) /*ParserTable::action_table_row949*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[952]) /*AbstractArray::add*/;
     variable[953] = variable[0];
-    variable[953] = ((parser_tables___ParserTable___action_table_row950_t)CALL(variable[953],COLOR_parser_tables___ParserTable___action_table_row950))(variable[953]) /*ParserTable::action_table_row950*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[953]) /*AbstractArray::add*/;
+    variable[953] = CALL_parser_tables___ParserTable___action_table_row950(variable[953])(variable[953]) /*ParserTable::action_table_row950*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[953]) /*AbstractArray::add*/;
     variable[954] = variable[0];
-    variable[954] = ((parser_tables___ParserTable___action_table_row951_t)CALL(variable[954],COLOR_parser_tables___ParserTable___action_table_row951))(variable[954]) /*ParserTable::action_table_row951*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[954]) /*AbstractArray::add*/;
+    variable[954] = CALL_parser_tables___ParserTable___action_table_row951(variable[954])(variable[954]) /*ParserTable::action_table_row951*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[954]) /*AbstractArray::add*/;
     variable[955] = variable[0];
-    variable[955] = ((parser_tables___ParserTable___action_table_row952_t)CALL(variable[955],COLOR_parser_tables___ParserTable___action_table_row952))(variable[955]) /*ParserTable::action_table_row952*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[955]) /*AbstractArray::add*/;
+    variable[955] = CALL_parser_tables___ParserTable___action_table_row952(variable[955])(variable[955]) /*ParserTable::action_table_row952*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[955]) /*AbstractArray::add*/;
     variable[956] = variable[0];
-    variable[956] = ((parser_tables___ParserTable___action_table_row953_t)CALL(variable[956],COLOR_parser_tables___ParserTable___action_table_row953))(variable[956]) /*ParserTable::action_table_row953*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[956]) /*AbstractArray::add*/;
+    variable[956] = CALL_parser_tables___ParserTable___action_table_row953(variable[956])(variable[956]) /*ParserTable::action_table_row953*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[956]) /*AbstractArray::add*/;
     variable[957] = variable[0];
-    variable[957] = ((parser_tables___ParserTable___action_table_row954_t)CALL(variable[957],COLOR_parser_tables___ParserTable___action_table_row954))(variable[957]) /*ParserTable::action_table_row954*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[957]) /*AbstractArray::add*/;
+    variable[957] = CALL_parser_tables___ParserTable___action_table_row954(variable[957])(variable[957]) /*ParserTable::action_table_row954*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[957]) /*AbstractArray::add*/;
     variable[958] = variable[0];
-    variable[958] = ((parser_tables___ParserTable___action_table_row955_t)CALL(variable[958],COLOR_parser_tables___ParserTable___action_table_row955))(variable[958]) /*ParserTable::action_table_row955*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[958]) /*AbstractArray::add*/;
+    variable[958] = CALL_parser_tables___ParserTable___action_table_row955(variable[958])(variable[958]) /*ParserTable::action_table_row955*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[958]) /*AbstractArray::add*/;
     variable[959] = variable[0];
-    variable[959] = ((parser_tables___ParserTable___action_table_row956_t)CALL(variable[959],COLOR_parser_tables___ParserTable___action_table_row956))(variable[959]) /*ParserTable::action_table_row956*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[959]) /*AbstractArray::add*/;
+    variable[959] = CALL_parser_tables___ParserTable___action_table_row956(variable[959])(variable[959]) /*ParserTable::action_table_row956*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[959]) /*AbstractArray::add*/;
     variable[960] = variable[0];
-    variable[960] = ((parser_tables___ParserTable___action_table_row957_t)CALL(variable[960],COLOR_parser_tables___ParserTable___action_table_row957))(variable[960]) /*ParserTable::action_table_row957*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[960]) /*AbstractArray::add*/;
+    variable[960] = CALL_parser_tables___ParserTable___action_table_row957(variable[960])(variable[960]) /*ParserTable::action_table_row957*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[960]) /*AbstractArray::add*/;
     variable[961] = variable[0];
-    variable[961] = ((parser_tables___ParserTable___action_table_row958_t)CALL(variable[961],COLOR_parser_tables___ParserTable___action_table_row958))(variable[961]) /*ParserTable::action_table_row958*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[961]) /*AbstractArray::add*/;
+    variable[961] = CALL_parser_tables___ParserTable___action_table_row958(variable[961])(variable[961]) /*ParserTable::action_table_row958*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[961]) /*AbstractArray::add*/;
     variable[962] = variable[0];
-    variable[962] = ((parser_tables___ParserTable___action_table_row959_t)CALL(variable[962],COLOR_parser_tables___ParserTable___action_table_row959))(variable[962]) /*ParserTable::action_table_row959*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[962]) /*AbstractArray::add*/;
+    variable[962] = CALL_parser_tables___ParserTable___action_table_row959(variable[962])(variable[962]) /*ParserTable::action_table_row959*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[962]) /*AbstractArray::add*/;
     variable[963] = variable[0];
-    variable[963] = ((parser_tables___ParserTable___action_table_row960_t)CALL(variable[963],COLOR_parser_tables___ParserTable___action_table_row960))(variable[963]) /*ParserTable::action_table_row960*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[963]) /*AbstractArray::add*/;
+    variable[963] = CALL_parser_tables___ParserTable___action_table_row960(variable[963])(variable[963]) /*ParserTable::action_table_row960*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[963]) /*AbstractArray::add*/;
     variable[964] = variable[0];
-    variable[964] = ((parser_tables___ParserTable___action_table_row961_t)CALL(variable[964],COLOR_parser_tables___ParserTable___action_table_row961))(variable[964]) /*ParserTable::action_table_row961*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[964]) /*AbstractArray::add*/;
+    variable[964] = CALL_parser_tables___ParserTable___action_table_row961(variable[964])(variable[964]) /*ParserTable::action_table_row961*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[964]) /*AbstractArray::add*/;
     variable[965] = variable[0];
-    variable[965] = ((parser_tables___ParserTable___action_table_row962_t)CALL(variable[965],COLOR_parser_tables___ParserTable___action_table_row962))(variable[965]) /*ParserTable::action_table_row962*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[965]) /*AbstractArray::add*/;
+    variable[965] = CALL_parser_tables___ParserTable___action_table_row962(variable[965])(variable[965]) /*ParserTable::action_table_row962*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[965]) /*AbstractArray::add*/;
     variable[966] = variable[0];
-    variable[966] = ((parser_tables___ParserTable___action_table_row963_t)CALL(variable[966],COLOR_parser_tables___ParserTable___action_table_row963))(variable[966]) /*ParserTable::action_table_row963*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[966]) /*AbstractArray::add*/;
+    variable[966] = CALL_parser_tables___ParserTable___action_table_row963(variable[966])(variable[966]) /*ParserTable::action_table_row963*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[966]) /*AbstractArray::add*/;
     variable[967] = variable[0];
-    variable[967] = ((parser_tables___ParserTable___action_table_row964_t)CALL(variable[967],COLOR_parser_tables___ParserTable___action_table_row964))(variable[967]) /*ParserTable::action_table_row964*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[967]) /*AbstractArray::add*/;
+    variable[967] = CALL_parser_tables___ParserTable___action_table_row964(variable[967])(variable[967]) /*ParserTable::action_table_row964*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[967]) /*AbstractArray::add*/;
     variable[968] = variable[0];
-    variable[968] = ((parser_tables___ParserTable___action_table_row965_t)CALL(variable[968],COLOR_parser_tables___ParserTable___action_table_row965))(variable[968]) /*ParserTable::action_table_row965*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[968]) /*AbstractArray::add*/;
+    variable[968] = CALL_parser_tables___ParserTable___action_table_row965(variable[968])(variable[968]) /*ParserTable::action_table_row965*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[968]) /*AbstractArray::add*/;
     variable[969] = variable[0];
-    variable[969] = ((parser_tables___ParserTable___action_table_row966_t)CALL(variable[969],COLOR_parser_tables___ParserTable___action_table_row966))(variable[969]) /*ParserTable::action_table_row966*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[969]) /*AbstractArray::add*/;
+    variable[969] = CALL_parser_tables___ParserTable___action_table_row966(variable[969])(variable[969]) /*ParserTable::action_table_row966*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[969]) /*AbstractArray::add*/;
     variable[970] = variable[0];
-    variable[970] = ((parser_tables___ParserTable___action_table_row967_t)CALL(variable[970],COLOR_parser_tables___ParserTable___action_table_row967))(variable[970]) /*ParserTable::action_table_row967*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[970]) /*AbstractArray::add*/;
+    variable[970] = CALL_parser_tables___ParserTable___action_table_row967(variable[970])(variable[970]) /*ParserTable::action_table_row967*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[970]) /*AbstractArray::add*/;
     variable[971] = variable[0];
-    variable[971] = ((parser_tables___ParserTable___action_table_row968_t)CALL(variable[971],COLOR_parser_tables___ParserTable___action_table_row968))(variable[971]) /*ParserTable::action_table_row968*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[971]) /*AbstractArray::add*/;
+    variable[971] = CALL_parser_tables___ParserTable___action_table_row968(variable[971])(variable[971]) /*ParserTable::action_table_row968*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[971]) /*AbstractArray::add*/;
     variable[972] = variable[0];
-    variable[972] = ((parser_tables___ParserTable___action_table_row969_t)CALL(variable[972],COLOR_parser_tables___ParserTable___action_table_row969))(variable[972]) /*ParserTable::action_table_row969*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[972]) /*AbstractArray::add*/;
+    variable[972] = CALL_parser_tables___ParserTable___action_table_row969(variable[972])(variable[972]) /*ParserTable::action_table_row969*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[972]) /*AbstractArray::add*/;
     variable[973] = variable[0];
-    variable[973] = ((parser_tables___ParserTable___action_table_row970_t)CALL(variable[973],COLOR_parser_tables___ParserTable___action_table_row970))(variable[973]) /*ParserTable::action_table_row970*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[973]) /*AbstractArray::add*/;
+    variable[973] = CALL_parser_tables___ParserTable___action_table_row970(variable[973])(variable[973]) /*ParserTable::action_table_row970*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[973]) /*AbstractArray::add*/;
     variable[974] = variable[0];
-    variable[974] = ((parser_tables___ParserTable___action_table_row971_t)CALL(variable[974],COLOR_parser_tables___ParserTable___action_table_row971))(variable[974]) /*ParserTable::action_table_row971*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[974]) /*AbstractArray::add*/;
+    variable[974] = CALL_parser_tables___ParserTable___action_table_row971(variable[974])(variable[974]) /*ParserTable::action_table_row971*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[974]) /*AbstractArray::add*/;
     variable[975] = variable[0];
-    variable[975] = ((parser_tables___ParserTable___action_table_row972_t)CALL(variable[975],COLOR_parser_tables___ParserTable___action_table_row972))(variable[975]) /*ParserTable::action_table_row972*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[975]) /*AbstractArray::add*/;
+    variable[975] = CALL_parser_tables___ParserTable___action_table_row972(variable[975])(variable[975]) /*ParserTable::action_table_row972*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[975]) /*AbstractArray::add*/;
     variable[976] = variable[0];
-    variable[976] = ((parser_tables___ParserTable___action_table_row973_t)CALL(variable[976],COLOR_parser_tables___ParserTable___action_table_row973))(variable[976]) /*ParserTable::action_table_row973*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[976]) /*AbstractArray::add*/;
+    variable[976] = CALL_parser_tables___ParserTable___action_table_row973(variable[976])(variable[976]) /*ParserTable::action_table_row973*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[976]) /*AbstractArray::add*/;
     variable[977] = variable[0];
-    variable[977] = ((parser_tables___ParserTable___action_table_row974_t)CALL(variable[977],COLOR_parser_tables___ParserTable___action_table_row974))(variable[977]) /*ParserTable::action_table_row974*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[977]) /*AbstractArray::add*/;
+    variable[977] = CALL_parser_tables___ParserTable___action_table_row974(variable[977])(variable[977]) /*ParserTable::action_table_row974*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[977]) /*AbstractArray::add*/;
     variable[978] = variable[0];
-    variable[978] = ((parser_tables___ParserTable___action_table_row975_t)CALL(variable[978],COLOR_parser_tables___ParserTable___action_table_row975))(variable[978]) /*ParserTable::action_table_row975*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[978]) /*AbstractArray::add*/;
+    variable[978] = CALL_parser_tables___ParserTable___action_table_row975(variable[978])(variable[978]) /*ParserTable::action_table_row975*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[978]) /*AbstractArray::add*/;
     variable[979] = variable[0];
-    variable[979] = ((parser_tables___ParserTable___action_table_row976_t)CALL(variable[979],COLOR_parser_tables___ParserTable___action_table_row976))(variable[979]) /*ParserTable::action_table_row976*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[979]) /*AbstractArray::add*/;
+    variable[979] = CALL_parser_tables___ParserTable___action_table_row976(variable[979])(variable[979]) /*ParserTable::action_table_row976*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[979]) /*AbstractArray::add*/;
     variable[980] = variable[0];
-    variable[980] = ((parser_tables___ParserTable___action_table_row977_t)CALL(variable[980],COLOR_parser_tables___ParserTable___action_table_row977))(variable[980]) /*ParserTable::action_table_row977*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[980]) /*AbstractArray::add*/;
+    variable[980] = CALL_parser_tables___ParserTable___action_table_row977(variable[980])(variable[980]) /*ParserTable::action_table_row977*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[980]) /*AbstractArray::add*/;
     variable[981] = variable[0];
-    variable[981] = ((parser_tables___ParserTable___action_table_row978_t)CALL(variable[981],COLOR_parser_tables___ParserTable___action_table_row978))(variable[981]) /*ParserTable::action_table_row978*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[981]) /*AbstractArray::add*/;
+    variable[981] = CALL_parser_tables___ParserTable___action_table_row978(variable[981])(variable[981]) /*ParserTable::action_table_row978*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[981]) /*AbstractArray::add*/;
     variable[982] = variable[0];
-    variable[982] = ((parser_tables___ParserTable___action_table_row979_t)CALL(variable[982],COLOR_parser_tables___ParserTable___action_table_row979))(variable[982]) /*ParserTable::action_table_row979*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[982]) /*AbstractArray::add*/;
+    variable[982] = CALL_parser_tables___ParserTable___action_table_row979(variable[982])(variable[982]) /*ParserTable::action_table_row979*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[982]) /*AbstractArray::add*/;
     variable[983] = variable[0];
-    variable[983] = ((parser_tables___ParserTable___action_table_row980_t)CALL(variable[983],COLOR_parser_tables___ParserTable___action_table_row980))(variable[983]) /*ParserTable::action_table_row980*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[983]) /*AbstractArray::add*/;
+    variable[983] = CALL_parser_tables___ParserTable___action_table_row980(variable[983])(variable[983]) /*ParserTable::action_table_row980*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[983]) /*AbstractArray::add*/;
     variable[984] = variable[0];
-    variable[984] = ((parser_tables___ParserTable___action_table_row981_t)CALL(variable[984],COLOR_parser_tables___ParserTable___action_table_row981))(variable[984]) /*ParserTable::action_table_row981*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[984]) /*AbstractArray::add*/;
+    variable[984] = CALL_parser_tables___ParserTable___action_table_row981(variable[984])(variable[984]) /*ParserTable::action_table_row981*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[984]) /*AbstractArray::add*/;
     variable[985] = variable[0];
-    variable[985] = ((parser_tables___ParserTable___action_table_row982_t)CALL(variable[985],COLOR_parser_tables___ParserTable___action_table_row982))(variable[985]) /*ParserTable::action_table_row982*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[985]) /*AbstractArray::add*/;
+    variable[985] = CALL_parser_tables___ParserTable___action_table_row982(variable[985])(variable[985]) /*ParserTable::action_table_row982*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[985]) /*AbstractArray::add*/;
     variable[986] = variable[0];
-    variable[986] = ((parser_tables___ParserTable___action_table_row983_t)CALL(variable[986],COLOR_parser_tables___ParserTable___action_table_row983))(variable[986]) /*ParserTable::action_table_row983*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[986]) /*AbstractArray::add*/;
+    variable[986] = CALL_parser_tables___ParserTable___action_table_row983(variable[986])(variable[986]) /*ParserTable::action_table_row983*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[986]) /*AbstractArray::add*/;
     variable[987] = variable[0];
-    variable[987] = ((parser_tables___ParserTable___action_table_row984_t)CALL(variable[987],COLOR_parser_tables___ParserTable___action_table_row984))(variable[987]) /*ParserTable::action_table_row984*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[987]) /*AbstractArray::add*/;
+    variable[987] = CALL_parser_tables___ParserTable___action_table_row984(variable[987])(variable[987]) /*ParserTable::action_table_row984*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[987]) /*AbstractArray::add*/;
     variable[988] = variable[0];
-    variable[988] = ((parser_tables___ParserTable___action_table_row985_t)CALL(variable[988],COLOR_parser_tables___ParserTable___action_table_row985))(variable[988]) /*ParserTable::action_table_row985*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[988]) /*AbstractArray::add*/;
+    variable[988] = CALL_parser_tables___ParserTable___action_table_row985(variable[988])(variable[988]) /*ParserTable::action_table_row985*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[988]) /*AbstractArray::add*/;
     variable[989] = variable[0];
-    variable[989] = ((parser_tables___ParserTable___action_table_row986_t)CALL(variable[989],COLOR_parser_tables___ParserTable___action_table_row986))(variable[989]) /*ParserTable::action_table_row986*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[989]) /*AbstractArray::add*/;
+    variable[989] = CALL_parser_tables___ParserTable___action_table_row986(variable[989])(variable[989]) /*ParserTable::action_table_row986*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[989]) /*AbstractArray::add*/;
     variable[990] = variable[0];
-    variable[990] = ((parser_tables___ParserTable___action_table_row987_t)CALL(variable[990],COLOR_parser_tables___ParserTable___action_table_row987))(variable[990]) /*ParserTable::action_table_row987*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[990]) /*AbstractArray::add*/;
+    variable[990] = CALL_parser_tables___ParserTable___action_table_row987(variable[990])(variable[990]) /*ParserTable::action_table_row987*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[990]) /*AbstractArray::add*/;
     variable[991] = variable[0];
-    variable[991] = ((parser_tables___ParserTable___action_table_row988_t)CALL(variable[991],COLOR_parser_tables___ParserTable___action_table_row988))(variable[991]) /*ParserTable::action_table_row988*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[991]) /*AbstractArray::add*/;
+    variable[991] = CALL_parser_tables___ParserTable___action_table_row988(variable[991])(variable[991]) /*ParserTable::action_table_row988*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[991]) /*AbstractArray::add*/;
     variable[992] = variable[0];
-    variable[992] = ((parser_tables___ParserTable___action_table_row989_t)CALL(variable[992],COLOR_parser_tables___ParserTable___action_table_row989))(variable[992]) /*ParserTable::action_table_row989*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[992]) /*AbstractArray::add*/;
+    variable[992] = CALL_parser_tables___ParserTable___action_table_row989(variable[992])(variable[992]) /*ParserTable::action_table_row989*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[992]) /*AbstractArray::add*/;
     variable[993] = variable[0];
-    variable[993] = ((parser_tables___ParserTable___action_table_row990_t)CALL(variable[993],COLOR_parser_tables___ParserTable___action_table_row990))(variable[993]) /*ParserTable::action_table_row990*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[993]) /*AbstractArray::add*/;
+    variable[993] = CALL_parser_tables___ParserTable___action_table_row990(variable[993])(variable[993]) /*ParserTable::action_table_row990*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[993]) /*AbstractArray::add*/;
     variable[994] = variable[0];
-    variable[994] = ((parser_tables___ParserTable___action_table_row991_t)CALL(variable[994],COLOR_parser_tables___ParserTable___action_table_row991))(variable[994]) /*ParserTable::action_table_row991*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[994]) /*AbstractArray::add*/;
+    variable[994] = CALL_parser_tables___ParserTable___action_table_row991(variable[994])(variable[994]) /*ParserTable::action_table_row991*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[994]) /*AbstractArray::add*/;
     variable[995] = variable[0];
-    variable[995] = ((parser_tables___ParserTable___action_table_row992_t)CALL(variable[995],COLOR_parser_tables___ParserTable___action_table_row992))(variable[995]) /*ParserTable::action_table_row992*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[995]) /*AbstractArray::add*/;
+    variable[995] = CALL_parser_tables___ParserTable___action_table_row992(variable[995])(variable[995]) /*ParserTable::action_table_row992*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[995]) /*AbstractArray::add*/;
     variable[996] = variable[0];
-    variable[996] = ((parser_tables___ParserTable___action_table_row993_t)CALL(variable[996],COLOR_parser_tables___ParserTable___action_table_row993))(variable[996]) /*ParserTable::action_table_row993*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[996]) /*AbstractArray::add*/;
+    variable[996] = CALL_parser_tables___ParserTable___action_table_row993(variable[996])(variable[996]) /*ParserTable::action_table_row993*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[996]) /*AbstractArray::add*/;
     variable[997] = variable[0];
-    variable[997] = ((parser_tables___ParserTable___action_table_row994_t)CALL(variable[997],COLOR_parser_tables___ParserTable___action_table_row994))(variable[997]) /*ParserTable::action_table_row994*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[997]) /*AbstractArray::add*/;
+    variable[997] = CALL_parser_tables___ParserTable___action_table_row994(variable[997])(variable[997]) /*ParserTable::action_table_row994*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[997]) /*AbstractArray::add*/;
     variable[998] = variable[0];
-    variable[998] = ((parser_tables___ParserTable___action_table_row995_t)CALL(variable[998],COLOR_parser_tables___ParserTable___action_table_row995))(variable[998]) /*ParserTable::action_table_row995*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[998]) /*AbstractArray::add*/;
+    variable[998] = CALL_parser_tables___ParserTable___action_table_row995(variable[998])(variable[998]) /*ParserTable::action_table_row995*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[998]) /*AbstractArray::add*/;
     variable[999] = variable[0];
-    variable[999] = ((parser_tables___ParserTable___action_table_row996_t)CALL(variable[999],COLOR_parser_tables___ParserTable___action_table_row996))(variable[999]) /*ParserTable::action_table_row996*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[999]) /*AbstractArray::add*/;
+    variable[999] = CALL_parser_tables___ParserTable___action_table_row996(variable[999])(variable[999]) /*ParserTable::action_table_row996*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[999]) /*AbstractArray::add*/;
     variable[1000] = variable[0];
-    variable[1000] = ((parser_tables___ParserTable___action_table_row997_t)CALL(variable[1000],COLOR_parser_tables___ParserTable___action_table_row997))(variable[1000]) /*ParserTable::action_table_row997*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1000]) /*AbstractArray::add*/;
+    variable[1000] = CALL_parser_tables___ParserTable___action_table_row997(variable[1000])(variable[1000]) /*ParserTable::action_table_row997*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1000]) /*AbstractArray::add*/;
     variable[1001] = variable[0];
-    variable[1001] = ((parser_tables___ParserTable___action_table_row998_t)CALL(variable[1001],COLOR_parser_tables___ParserTable___action_table_row998))(variable[1001]) /*ParserTable::action_table_row998*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1001]) /*AbstractArray::add*/;
+    variable[1001] = CALL_parser_tables___ParserTable___action_table_row998(variable[1001])(variable[1001]) /*ParserTable::action_table_row998*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1001]) /*AbstractArray::add*/;
     variable[1002] = variable[0];
-    variable[1002] = ((parser_tables___ParserTable___action_table_row999_t)CALL(variable[1002],COLOR_parser_tables___ParserTable___action_table_row999))(variable[1002]) /*ParserTable::action_table_row999*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1002]) /*AbstractArray::add*/;
+    variable[1002] = CALL_parser_tables___ParserTable___action_table_row999(variable[1002])(variable[1002]) /*ParserTable::action_table_row999*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1002]) /*AbstractArray::add*/;
     variable[1003] = variable[0];
-    variable[1003] = ((parser_tables___ParserTable___action_table_row1000_t)CALL(variable[1003],COLOR_parser_tables___ParserTable___action_table_row1000))(variable[1003]) /*ParserTable::action_table_row1000*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1003]) /*AbstractArray::add*/;
+    variable[1003] = CALL_parser_tables___ParserTable___action_table_row1000(variable[1003])(variable[1003]) /*ParserTable::action_table_row1000*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1003]) /*AbstractArray::add*/;
     variable[1004] = variable[0];
-    variable[1004] = ((parser_tables___ParserTable___action_table_row1001_t)CALL(variable[1004],COLOR_parser_tables___ParserTable___action_table_row1001))(variable[1004]) /*ParserTable::action_table_row1001*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1004]) /*AbstractArray::add*/;
+    variable[1004] = CALL_parser_tables___ParserTable___action_table_row1001(variable[1004])(variable[1004]) /*ParserTable::action_table_row1001*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1004]) /*AbstractArray::add*/;
     variable[1005] = variable[0];
-    variable[1005] = ((parser_tables___ParserTable___action_table_row1002_t)CALL(variable[1005],COLOR_parser_tables___ParserTable___action_table_row1002))(variable[1005]) /*ParserTable::action_table_row1002*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1005]) /*AbstractArray::add*/;
+    variable[1005] = CALL_parser_tables___ParserTable___action_table_row1002(variable[1005])(variable[1005]) /*ParserTable::action_table_row1002*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1005]) /*AbstractArray::add*/;
     variable[1006] = variable[0];
-    variable[1006] = ((parser_tables___ParserTable___action_table_row1003_t)CALL(variable[1006],COLOR_parser_tables___ParserTable___action_table_row1003))(variable[1006]) /*ParserTable::action_table_row1003*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1006]) /*AbstractArray::add*/;
+    variable[1006] = CALL_parser_tables___ParserTable___action_table_row1003(variable[1006])(variable[1006]) /*ParserTable::action_table_row1003*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1006]) /*AbstractArray::add*/;
     variable[1007] = variable[0];
-    variable[1007] = ((parser_tables___ParserTable___action_table_row1004_t)CALL(variable[1007],COLOR_parser_tables___ParserTable___action_table_row1004))(variable[1007]) /*ParserTable::action_table_row1004*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1007]) /*AbstractArray::add*/;
+    variable[1007] = CALL_parser_tables___ParserTable___action_table_row1004(variable[1007])(variable[1007]) /*ParserTable::action_table_row1004*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1007]) /*AbstractArray::add*/;
     variable[1008] = variable[0];
-    variable[1008] = ((parser_tables___ParserTable___action_table_row1005_t)CALL(variable[1008],COLOR_parser_tables___ParserTable___action_table_row1005))(variable[1008]) /*ParserTable::action_table_row1005*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1008]) /*AbstractArray::add*/;
+    variable[1008] = CALL_parser_tables___ParserTable___action_table_row1005(variable[1008])(variable[1008]) /*ParserTable::action_table_row1005*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1008]) /*AbstractArray::add*/;
     variable[1009] = variable[0];
-    variable[1009] = ((parser_tables___ParserTable___action_table_row1006_t)CALL(variable[1009],COLOR_parser_tables___ParserTable___action_table_row1006))(variable[1009]) /*ParserTable::action_table_row1006*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1009]) /*AbstractArray::add*/;
+    variable[1009] = CALL_parser_tables___ParserTable___action_table_row1006(variable[1009])(variable[1009]) /*ParserTable::action_table_row1006*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1009]) /*AbstractArray::add*/;
     variable[1010] = variable[0];
-    variable[1010] = ((parser_tables___ParserTable___action_table_row1007_t)CALL(variable[1010],COLOR_parser_tables___ParserTable___action_table_row1007))(variable[1010]) /*ParserTable::action_table_row1007*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1010]) /*AbstractArray::add*/;
+    variable[1010] = CALL_parser_tables___ParserTable___action_table_row1007(variable[1010])(variable[1010]) /*ParserTable::action_table_row1007*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1010]) /*AbstractArray::add*/;
     variable[1011] = variable[0];
-    variable[1011] = ((parser_tables___ParserTable___action_table_row1008_t)CALL(variable[1011],COLOR_parser_tables___ParserTable___action_table_row1008))(variable[1011]) /*ParserTable::action_table_row1008*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1011]) /*AbstractArray::add*/;
+    variable[1011] = CALL_parser_tables___ParserTable___action_table_row1008(variable[1011])(variable[1011]) /*ParserTable::action_table_row1008*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1011]) /*AbstractArray::add*/;
     variable[1012] = variable[0];
-    variable[1012] = ((parser_tables___ParserTable___action_table_row1009_t)CALL(variable[1012],COLOR_parser_tables___ParserTable___action_table_row1009))(variable[1012]) /*ParserTable::action_table_row1009*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1012]) /*AbstractArray::add*/;
+    variable[1012] = CALL_parser_tables___ParserTable___action_table_row1009(variable[1012])(variable[1012]) /*ParserTable::action_table_row1009*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1012]) /*AbstractArray::add*/;
     variable[1013] = variable[0];
-    variable[1013] = ((parser_tables___ParserTable___action_table_row1010_t)CALL(variable[1013],COLOR_parser_tables___ParserTable___action_table_row1010))(variable[1013]) /*ParserTable::action_table_row1010*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1013]) /*AbstractArray::add*/;
+    variable[1013] = CALL_parser_tables___ParserTable___action_table_row1010(variable[1013])(variable[1013]) /*ParserTable::action_table_row1010*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1013]) /*AbstractArray::add*/;
     variable[1014] = variable[0];
-    variable[1014] = ((parser_tables___ParserTable___action_table_row1011_t)CALL(variable[1014],COLOR_parser_tables___ParserTable___action_table_row1011))(variable[1014]) /*ParserTable::action_table_row1011*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1014]) /*AbstractArray::add*/;
+    variable[1014] = CALL_parser_tables___ParserTable___action_table_row1011(variable[1014])(variable[1014]) /*ParserTable::action_table_row1011*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1014]) /*AbstractArray::add*/;
     variable[1015] = variable[0];
-    variable[1015] = ((parser_tables___ParserTable___action_table_row1012_t)CALL(variable[1015],COLOR_parser_tables___ParserTable___action_table_row1012))(variable[1015]) /*ParserTable::action_table_row1012*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1015]) /*AbstractArray::add*/;
+    variable[1015] = CALL_parser_tables___ParserTable___action_table_row1012(variable[1015])(variable[1015]) /*ParserTable::action_table_row1012*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1015]) /*AbstractArray::add*/;
     variable[1016] = variable[0];
-    variable[1016] = ((parser_tables___ParserTable___action_table_row1013_t)CALL(variable[1016],COLOR_parser_tables___ParserTable___action_table_row1013))(variable[1016]) /*ParserTable::action_table_row1013*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1016]) /*AbstractArray::add*/;
+    variable[1016] = CALL_parser_tables___ParserTable___action_table_row1013(variable[1016])(variable[1016]) /*ParserTable::action_table_row1013*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1016]) /*AbstractArray::add*/;
     variable[1017] = variable[0];
-    variable[1017] = ((parser_tables___ParserTable___action_table_row1014_t)CALL(variable[1017],COLOR_parser_tables___ParserTable___action_table_row1014))(variable[1017]) /*ParserTable::action_table_row1014*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1017]) /*AbstractArray::add*/;
+    variable[1017] = CALL_parser_tables___ParserTable___action_table_row1014(variable[1017])(variable[1017]) /*ParserTable::action_table_row1014*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1017]) /*AbstractArray::add*/;
     variable[1018] = variable[0];
-    variable[1018] = ((parser_tables___ParserTable___action_table_row1015_t)CALL(variable[1018],COLOR_parser_tables___ParserTable___action_table_row1015))(variable[1018]) /*ParserTable::action_table_row1015*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1018]) /*AbstractArray::add*/;
+    variable[1018] = CALL_parser_tables___ParserTable___action_table_row1015(variable[1018])(variable[1018]) /*ParserTable::action_table_row1015*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1018]) /*AbstractArray::add*/;
     variable[1019] = variable[0];
-    variable[1019] = ((parser_tables___ParserTable___action_table_row1016_t)CALL(variable[1019],COLOR_parser_tables___ParserTable___action_table_row1016))(variable[1019]) /*ParserTable::action_table_row1016*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1019]) /*AbstractArray::add*/;
+    variable[1019] = CALL_parser_tables___ParserTable___action_table_row1016(variable[1019])(variable[1019]) /*ParserTable::action_table_row1016*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1019]) /*AbstractArray::add*/;
     variable[1020] = variable[0];
-    variable[1020] = ((parser_tables___ParserTable___action_table_row1017_t)CALL(variable[1020],COLOR_parser_tables___ParserTable___action_table_row1017))(variable[1020]) /*ParserTable::action_table_row1017*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1020]) /*AbstractArray::add*/;
+    variable[1020] = CALL_parser_tables___ParserTable___action_table_row1017(variable[1020])(variable[1020]) /*ParserTable::action_table_row1017*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1020]) /*AbstractArray::add*/;
     variable[1021] = variable[0];
-    variable[1021] = ((parser_tables___ParserTable___action_table_row1018_t)CALL(variable[1021],COLOR_parser_tables___ParserTable___action_table_row1018))(variable[1021]) /*ParserTable::action_table_row1018*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1021]) /*AbstractArray::add*/;
+    variable[1021] = CALL_parser_tables___ParserTable___action_table_row1018(variable[1021])(variable[1021]) /*ParserTable::action_table_row1018*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1021]) /*AbstractArray::add*/;
     variable[1022] = variable[0];
-    variable[1022] = ((parser_tables___ParserTable___action_table_row1019_t)CALL(variable[1022],COLOR_parser_tables___ParserTable___action_table_row1019))(variable[1022]) /*ParserTable::action_table_row1019*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1022]) /*AbstractArray::add*/;
+    variable[1022] = CALL_parser_tables___ParserTable___action_table_row1019(variable[1022])(variable[1022]) /*ParserTable::action_table_row1019*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1022]) /*AbstractArray::add*/;
     variable[1023] = variable[0];
-    variable[1023] = ((parser_tables___ParserTable___action_table_row1020_t)CALL(variable[1023],COLOR_parser_tables___ParserTable___action_table_row1020))(variable[1023]) /*ParserTable::action_table_row1020*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1023]) /*AbstractArray::add*/;
+    variable[1023] = CALL_parser_tables___ParserTable___action_table_row1020(variable[1023])(variable[1023]) /*ParserTable::action_table_row1020*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1023]) /*AbstractArray::add*/;
     variable[1024] = variable[0];
-    variable[1024] = ((parser_tables___ParserTable___action_table_row1021_t)CALL(variable[1024],COLOR_parser_tables___ParserTable___action_table_row1021))(variable[1024]) /*ParserTable::action_table_row1021*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1024]) /*AbstractArray::add*/;
+    variable[1024] = CALL_parser_tables___ParserTable___action_table_row1021(variable[1024])(variable[1024]) /*ParserTable::action_table_row1021*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1024]) /*AbstractArray::add*/;
     variable[1025] = variable[0];
-    variable[1025] = ((parser_tables___ParserTable___action_table_row1022_t)CALL(variable[1025],COLOR_parser_tables___ParserTable___action_table_row1022))(variable[1025]) /*ParserTable::action_table_row1022*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1025]) /*AbstractArray::add*/;
+    variable[1025] = CALL_parser_tables___ParserTable___action_table_row1022(variable[1025])(variable[1025]) /*ParserTable::action_table_row1022*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1025]) /*AbstractArray::add*/;
     variable[1026] = variable[0];
-    variable[1026] = ((parser_tables___ParserTable___action_table_row1023_t)CALL(variable[1026],COLOR_parser_tables___ParserTable___action_table_row1023))(variable[1026]) /*ParserTable::action_table_row1023*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1026]) /*AbstractArray::add*/;
+    variable[1026] = CALL_parser_tables___ParserTable___action_table_row1023(variable[1026])(variable[1026]) /*ParserTable::action_table_row1023*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1026]) /*AbstractArray::add*/;
     variable[1027] = variable[0];
-    variable[1027] = ((parser_tables___ParserTable___action_table_row1024_t)CALL(variable[1027],COLOR_parser_tables___ParserTable___action_table_row1024))(variable[1027]) /*ParserTable::action_table_row1024*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1027]) /*AbstractArray::add*/;
+    variable[1027] = CALL_parser_tables___ParserTable___action_table_row1024(variable[1027])(variable[1027]) /*ParserTable::action_table_row1024*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1027]) /*AbstractArray::add*/;
     variable[1028] = variable[0];
-    variable[1028] = ((parser_tables___ParserTable___action_table_row1025_t)CALL(variable[1028],COLOR_parser_tables___ParserTable___action_table_row1025))(variable[1028]) /*ParserTable::action_table_row1025*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1028]) /*AbstractArray::add*/;
+    variable[1028] = CALL_parser_tables___ParserTable___action_table_row1025(variable[1028])(variable[1028]) /*ParserTable::action_table_row1025*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1028]) /*AbstractArray::add*/;
     variable[1029] = variable[0];
-    variable[1029] = ((parser_tables___ParserTable___action_table_row1026_t)CALL(variable[1029],COLOR_parser_tables___ParserTable___action_table_row1026))(variable[1029]) /*ParserTable::action_table_row1026*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1029]) /*AbstractArray::add*/;
+    variable[1029] = CALL_parser_tables___ParserTable___action_table_row1026(variable[1029])(variable[1029]) /*ParserTable::action_table_row1026*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1029]) /*AbstractArray::add*/;
     variable[1030] = variable[0];
-    variable[1030] = ((parser_tables___ParserTable___action_table_row1027_t)CALL(variable[1030],COLOR_parser_tables___ParserTable___action_table_row1027))(variable[1030]) /*ParserTable::action_table_row1027*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1030]) /*AbstractArray::add*/;
+    variable[1030] = CALL_parser_tables___ParserTable___action_table_row1027(variable[1030])(variable[1030]) /*ParserTable::action_table_row1027*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1030]) /*AbstractArray::add*/;
     variable[1031] = variable[0];
-    variable[1031] = ((parser_tables___ParserTable___action_table_row1028_t)CALL(variable[1031],COLOR_parser_tables___ParserTable___action_table_row1028))(variable[1031]) /*ParserTable::action_table_row1028*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1031]) /*AbstractArray::add*/;
+    variable[1031] = CALL_parser_tables___ParserTable___action_table_row1028(variable[1031])(variable[1031]) /*ParserTable::action_table_row1028*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1031]) /*AbstractArray::add*/;
     variable[1032] = variable[0];
-    variable[1032] = ((parser_tables___ParserTable___action_table_row1029_t)CALL(variable[1032],COLOR_parser_tables___ParserTable___action_table_row1029))(variable[1032]) /*ParserTable::action_table_row1029*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1032]) /*AbstractArray::add*/;
+    variable[1032] = CALL_parser_tables___ParserTable___action_table_row1029(variable[1032])(variable[1032]) /*ParserTable::action_table_row1029*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1032]) /*AbstractArray::add*/;
     variable[1033] = variable[0];
-    variable[1033] = ((parser_tables___ParserTable___action_table_row1030_t)CALL(variable[1033],COLOR_parser_tables___ParserTable___action_table_row1030))(variable[1033]) /*ParserTable::action_table_row1030*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1033]) /*AbstractArray::add*/;
+    variable[1033] = CALL_parser_tables___ParserTable___action_table_row1030(variable[1033])(variable[1033]) /*ParserTable::action_table_row1030*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1033]) /*AbstractArray::add*/;
     variable[1034] = variable[0];
-    variable[1034] = ((parser_tables___ParserTable___action_table_row1031_t)CALL(variable[1034],COLOR_parser_tables___ParserTable___action_table_row1031))(variable[1034]) /*ParserTable::action_table_row1031*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1034]) /*AbstractArray::add*/;
+    variable[1034] = CALL_parser_tables___ParserTable___action_table_row1031(variable[1034])(variable[1034]) /*ParserTable::action_table_row1031*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1034]) /*AbstractArray::add*/;
     variable[1035] = variable[0];
-    variable[1035] = ((parser_tables___ParserTable___action_table_row1032_t)CALL(variable[1035],COLOR_parser_tables___ParserTable___action_table_row1032))(variable[1035]) /*ParserTable::action_table_row1032*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1035]) /*AbstractArray::add*/;
+    variable[1035] = CALL_parser_tables___ParserTable___action_table_row1032(variable[1035])(variable[1035]) /*ParserTable::action_table_row1032*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1035]) /*AbstractArray::add*/;
     variable[1036] = variable[0];
-    variable[1036] = ((parser_tables___ParserTable___action_table_row1033_t)CALL(variable[1036],COLOR_parser_tables___ParserTable___action_table_row1033))(variable[1036]) /*ParserTable::action_table_row1033*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1036]) /*AbstractArray::add*/;
+    variable[1036] = CALL_parser_tables___ParserTable___action_table_row1033(variable[1036])(variable[1036]) /*ParserTable::action_table_row1033*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1036]) /*AbstractArray::add*/;
     variable[1037] = variable[0];
-    variable[1037] = ((parser_tables___ParserTable___action_table_row1034_t)CALL(variable[1037],COLOR_parser_tables___ParserTable___action_table_row1034))(variable[1037]) /*ParserTable::action_table_row1034*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1037]) /*AbstractArray::add*/;
+    variable[1037] = CALL_parser_tables___ParserTable___action_table_row1034(variable[1037])(variable[1037]) /*ParserTable::action_table_row1034*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1037]) /*AbstractArray::add*/;
     variable[1038] = variable[0];
-    variable[1038] = ((parser_tables___ParserTable___action_table_row1035_t)CALL(variable[1038],COLOR_parser_tables___ParserTable___action_table_row1035))(variable[1038]) /*ParserTable::action_table_row1035*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1038]) /*AbstractArray::add*/;
+    variable[1038] = CALL_parser_tables___ParserTable___action_table_row1035(variable[1038])(variable[1038]) /*ParserTable::action_table_row1035*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1038]) /*AbstractArray::add*/;
     variable[1039] = variable[0];
-    variable[1039] = ((parser_tables___ParserTable___action_table_row1036_t)CALL(variable[1039],COLOR_parser_tables___ParserTable___action_table_row1036))(variable[1039]) /*ParserTable::action_table_row1036*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1039]) /*AbstractArray::add*/;
+    variable[1039] = CALL_parser_tables___ParserTable___action_table_row1036(variable[1039])(variable[1039]) /*ParserTable::action_table_row1036*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1039]) /*AbstractArray::add*/;
     variable[1040] = variable[0];
-    variable[1040] = ((parser_tables___ParserTable___action_table_row1037_t)CALL(variable[1040],COLOR_parser_tables___ParserTable___action_table_row1037))(variable[1040]) /*ParserTable::action_table_row1037*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1040]) /*AbstractArray::add*/;
+    variable[1040] = CALL_parser_tables___ParserTable___action_table_row1037(variable[1040])(variable[1040]) /*ParserTable::action_table_row1037*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1040]) /*AbstractArray::add*/;
     variable[1041] = variable[0];
-    variable[1041] = ((parser_tables___ParserTable___action_table_row1038_t)CALL(variable[1041],COLOR_parser_tables___ParserTable___action_table_row1038))(variable[1041]) /*ParserTable::action_table_row1038*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1041]) /*AbstractArray::add*/;
+    variable[1041] = CALL_parser_tables___ParserTable___action_table_row1038(variable[1041])(variable[1041]) /*ParserTable::action_table_row1038*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1041]) /*AbstractArray::add*/;
     variable[1042] = variable[0];
-    variable[1042] = ((parser_tables___ParserTable___action_table_row1039_t)CALL(variable[1042],COLOR_parser_tables___ParserTable___action_table_row1039))(variable[1042]) /*ParserTable::action_table_row1039*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1042]) /*AbstractArray::add*/;
+    variable[1042] = CALL_parser_tables___ParserTable___action_table_row1039(variable[1042])(variable[1042]) /*ParserTable::action_table_row1039*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1042]) /*AbstractArray::add*/;
     variable[1043] = variable[0];
-    variable[1043] = ((parser_tables___ParserTable___action_table_row1040_t)CALL(variable[1043],COLOR_parser_tables___ParserTable___action_table_row1040))(variable[1043]) /*ParserTable::action_table_row1040*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1043]) /*AbstractArray::add*/;
+    variable[1043] = CALL_parser_tables___ParserTable___action_table_row1040(variable[1043])(variable[1043]) /*ParserTable::action_table_row1040*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1043]) /*AbstractArray::add*/;
     variable[1044] = variable[0];
-    variable[1044] = ((parser_tables___ParserTable___action_table_row1041_t)CALL(variable[1044],COLOR_parser_tables___ParserTable___action_table_row1041))(variable[1044]) /*ParserTable::action_table_row1041*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1044]) /*AbstractArray::add*/;
+    variable[1044] = CALL_parser_tables___ParserTable___action_table_row1041(variable[1044])(variable[1044]) /*ParserTable::action_table_row1041*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1044]) /*AbstractArray::add*/;
     variable[1045] = variable[0];
-    variable[1045] = ((parser_tables___ParserTable___action_table_row1042_t)CALL(variable[1045],COLOR_parser_tables___ParserTable___action_table_row1042))(variable[1045]) /*ParserTable::action_table_row1042*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1045]) /*AbstractArray::add*/;
+    variable[1045] = CALL_parser_tables___ParserTable___action_table_row1042(variable[1045])(variable[1045]) /*ParserTable::action_table_row1042*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1045]) /*AbstractArray::add*/;
     variable[1046] = variable[0];
-    variable[1046] = ((parser_tables___ParserTable___action_table_row1043_t)CALL(variable[1046],COLOR_parser_tables___ParserTable___action_table_row1043))(variable[1046]) /*ParserTable::action_table_row1043*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1046]) /*AbstractArray::add*/;
+    variable[1046] = CALL_parser_tables___ParserTable___action_table_row1043(variable[1046])(variable[1046]) /*ParserTable::action_table_row1043*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1046]) /*AbstractArray::add*/;
     variable[1047] = variable[0];
-    variable[1047] = ((parser_tables___ParserTable___action_table_row1044_t)CALL(variable[1047],COLOR_parser_tables___ParserTable___action_table_row1044))(variable[1047]) /*ParserTable::action_table_row1044*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1047]) /*AbstractArray::add*/;
+    variable[1047] = CALL_parser_tables___ParserTable___action_table_row1044(variable[1047])(variable[1047]) /*ParserTable::action_table_row1044*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1047]) /*AbstractArray::add*/;
     variable[1048] = variable[0];
-    variable[1048] = ((parser_tables___ParserTable___action_table_row1045_t)CALL(variable[1048],COLOR_parser_tables___ParserTable___action_table_row1045))(variable[1048]) /*ParserTable::action_table_row1045*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1048]) /*AbstractArray::add*/;
+    variable[1048] = CALL_parser_tables___ParserTable___action_table_row1045(variable[1048])(variable[1048]) /*ParserTable::action_table_row1045*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1048]) /*AbstractArray::add*/;
     variable[1049] = variable[0];
-    variable[1049] = ((parser_tables___ParserTable___action_table_row1046_t)CALL(variable[1049],COLOR_parser_tables___ParserTable___action_table_row1046))(variable[1049]) /*ParserTable::action_table_row1046*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1049]) /*AbstractArray::add*/;
+    variable[1049] = CALL_parser_tables___ParserTable___action_table_row1046(variable[1049])(variable[1049]) /*ParserTable::action_table_row1046*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1049]) /*AbstractArray::add*/;
     variable[1050] = variable[0];
-    variable[1050] = ((parser_tables___ParserTable___action_table_row1047_t)CALL(variable[1050],COLOR_parser_tables___ParserTable___action_table_row1047))(variable[1050]) /*ParserTable::action_table_row1047*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1050]) /*AbstractArray::add*/;
+    variable[1050] = CALL_parser_tables___ParserTable___action_table_row1047(variable[1050])(variable[1050]) /*ParserTable::action_table_row1047*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1050]) /*AbstractArray::add*/;
     variable[1051] = variable[0];
-    variable[1051] = ((parser_tables___ParserTable___action_table_row1048_t)CALL(variable[1051],COLOR_parser_tables___ParserTable___action_table_row1048))(variable[1051]) /*ParserTable::action_table_row1048*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1051]) /*AbstractArray::add*/;
+    variable[1051] = CALL_parser_tables___ParserTable___action_table_row1048(variable[1051])(variable[1051]) /*ParserTable::action_table_row1048*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1051]) /*AbstractArray::add*/;
     variable[1052] = variable[0];
-    variable[1052] = ((parser_tables___ParserTable___action_table_row1049_t)CALL(variable[1052],COLOR_parser_tables___ParserTable___action_table_row1049))(variable[1052]) /*ParserTable::action_table_row1049*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1052]) /*AbstractArray::add*/;
+    variable[1052] = CALL_parser_tables___ParserTable___action_table_row1049(variable[1052])(variable[1052]) /*ParserTable::action_table_row1049*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1052]) /*AbstractArray::add*/;
     variable[1053] = variable[0];
-    variable[1053] = ((parser_tables___ParserTable___action_table_row1050_t)CALL(variable[1053],COLOR_parser_tables___ParserTable___action_table_row1050))(variable[1053]) /*ParserTable::action_table_row1050*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1053]) /*AbstractArray::add*/;
+    variable[1053] = CALL_parser_tables___ParserTable___action_table_row1050(variable[1053])(variable[1053]) /*ParserTable::action_table_row1050*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1053]) /*AbstractArray::add*/;
     variable[1054] = variable[0];
-    variable[1054] = ((parser_tables___ParserTable___action_table_row1051_t)CALL(variable[1054],COLOR_parser_tables___ParserTable___action_table_row1051))(variable[1054]) /*ParserTable::action_table_row1051*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1054]) /*AbstractArray::add*/;
+    variable[1054] = CALL_parser_tables___ParserTable___action_table_row1051(variable[1054])(variable[1054]) /*ParserTable::action_table_row1051*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1054]) /*AbstractArray::add*/;
     variable[1055] = variable[0];
-    variable[1055] = ((parser_tables___ParserTable___action_table_row1052_t)CALL(variable[1055],COLOR_parser_tables___ParserTable___action_table_row1052))(variable[1055]) /*ParserTable::action_table_row1052*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1055]) /*AbstractArray::add*/;
+    variable[1055] = CALL_parser_tables___ParserTable___action_table_row1052(variable[1055])(variable[1055]) /*ParserTable::action_table_row1052*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1055]) /*AbstractArray::add*/;
     variable[1056] = variable[0];
-    variable[1056] = ((parser_tables___ParserTable___action_table_row1053_t)CALL(variable[1056],COLOR_parser_tables___ParserTable___action_table_row1053))(variable[1056]) /*ParserTable::action_table_row1053*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1056]) /*AbstractArray::add*/;
+    variable[1056] = CALL_parser_tables___ParserTable___action_table_row1053(variable[1056])(variable[1056]) /*ParserTable::action_table_row1053*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1056]) /*AbstractArray::add*/;
     variable[1057] = variable[0];
-    variable[1057] = ((parser_tables___ParserTable___action_table_row1054_t)CALL(variable[1057],COLOR_parser_tables___ParserTable___action_table_row1054))(variable[1057]) /*ParserTable::action_table_row1054*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1057]) /*AbstractArray::add*/;
+    variable[1057] = CALL_parser_tables___ParserTable___action_table_row1054(variable[1057])(variable[1057]) /*ParserTable::action_table_row1054*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1057]) /*AbstractArray::add*/;
     variable[1058] = variable[0];
-    variable[1058] = ((parser_tables___ParserTable___action_table_row1055_t)CALL(variable[1058],COLOR_parser_tables___ParserTable___action_table_row1055))(variable[1058]) /*ParserTable::action_table_row1055*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1058]) /*AbstractArray::add*/;
+    variable[1058] = CALL_parser_tables___ParserTable___action_table_row1055(variable[1058])(variable[1058]) /*ParserTable::action_table_row1055*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1058]) /*AbstractArray::add*/;
     variable[1059] = variable[0];
-    variable[1059] = ((parser_tables___ParserTable___action_table_row1056_t)CALL(variable[1059],COLOR_parser_tables___ParserTable___action_table_row1056))(variable[1059]) /*ParserTable::action_table_row1056*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1059]) /*AbstractArray::add*/;
+    variable[1059] = CALL_parser_tables___ParserTable___action_table_row1056(variable[1059])(variable[1059]) /*ParserTable::action_table_row1056*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1059]) /*AbstractArray::add*/;
     variable[1060] = variable[0];
-    variable[1060] = ((parser_tables___ParserTable___action_table_row1057_t)CALL(variable[1060],COLOR_parser_tables___ParserTable___action_table_row1057))(variable[1060]) /*ParserTable::action_table_row1057*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1060]) /*AbstractArray::add*/;
+    variable[1060] = CALL_parser_tables___ParserTable___action_table_row1057(variable[1060])(variable[1060]) /*ParserTable::action_table_row1057*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1060]) /*AbstractArray::add*/;
     variable[1061] = variable[0];
-    variable[1061] = ((parser_tables___ParserTable___action_table_row1058_t)CALL(variable[1061],COLOR_parser_tables___ParserTable___action_table_row1058))(variable[1061]) /*ParserTable::action_table_row1058*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1061]) /*AbstractArray::add*/;
+    variable[1061] = CALL_parser_tables___ParserTable___action_table_row1058(variable[1061])(variable[1061]) /*ParserTable::action_table_row1058*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1061]) /*AbstractArray::add*/;
     variable[1062] = variable[0];
-    variable[1062] = ((parser_tables___ParserTable___action_table_row1059_t)CALL(variable[1062],COLOR_parser_tables___ParserTable___action_table_row1059))(variable[1062]) /*ParserTable::action_table_row1059*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1062]) /*AbstractArray::add*/;
+    variable[1062] = CALL_parser_tables___ParserTable___action_table_row1059(variable[1062])(variable[1062]) /*ParserTable::action_table_row1059*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1062]) /*AbstractArray::add*/;
     variable[1063] = variable[0];
-    variable[1063] = ((parser_tables___ParserTable___action_table_row1060_t)CALL(variable[1063],COLOR_parser_tables___ParserTable___action_table_row1060))(variable[1063]) /*ParserTable::action_table_row1060*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1063]) /*AbstractArray::add*/;
+    variable[1063] = CALL_parser_tables___ParserTable___action_table_row1060(variable[1063])(variable[1063]) /*ParserTable::action_table_row1060*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1063]) /*AbstractArray::add*/;
     variable[1064] = variable[0];
-    variable[1064] = ((parser_tables___ParserTable___action_table_row1061_t)CALL(variable[1064],COLOR_parser_tables___ParserTable___action_table_row1061))(variable[1064]) /*ParserTable::action_table_row1061*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1064]) /*AbstractArray::add*/;
+    variable[1064] = CALL_parser_tables___ParserTable___action_table_row1061(variable[1064])(variable[1064]) /*ParserTable::action_table_row1061*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1064]) /*AbstractArray::add*/;
     variable[1065] = variable[0];
-    variable[1065] = ((parser_tables___ParserTable___action_table_row1062_t)CALL(variable[1065],COLOR_parser_tables___ParserTable___action_table_row1062))(variable[1065]) /*ParserTable::action_table_row1062*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1065]) /*AbstractArray::add*/;
+    variable[1065] = CALL_parser_tables___ParserTable___action_table_row1062(variable[1065])(variable[1065]) /*ParserTable::action_table_row1062*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1065]) /*AbstractArray::add*/;
     variable[1066] = variable[0];
-    variable[1066] = ((parser_tables___ParserTable___action_table_row1063_t)CALL(variable[1066],COLOR_parser_tables___ParserTable___action_table_row1063))(variable[1066]) /*ParserTable::action_table_row1063*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1066]) /*AbstractArray::add*/;
+    variable[1066] = CALL_parser_tables___ParserTable___action_table_row1063(variable[1066])(variable[1066]) /*ParserTable::action_table_row1063*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1066]) /*AbstractArray::add*/;
     variable[1067] = variable[0];
-    variable[1067] = ((parser_tables___ParserTable___action_table_row1064_t)CALL(variable[1067],COLOR_parser_tables___ParserTable___action_table_row1064))(variable[1067]) /*ParserTable::action_table_row1064*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1067]) /*AbstractArray::add*/;
+    variable[1067] = CALL_parser_tables___ParserTable___action_table_row1064(variable[1067])(variable[1067]) /*ParserTable::action_table_row1064*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1067]) /*AbstractArray::add*/;
     variable[1068] = variable[0];
-    variable[1068] = ((parser_tables___ParserTable___action_table_row1065_t)CALL(variable[1068],COLOR_parser_tables___ParserTable___action_table_row1065))(variable[1068]) /*ParserTable::action_table_row1065*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1068]) /*AbstractArray::add*/;
+    variable[1068] = CALL_parser_tables___ParserTable___action_table_row1065(variable[1068])(variable[1068]) /*ParserTable::action_table_row1065*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1068]) /*AbstractArray::add*/;
     variable[1069] = variable[0];
-    variable[1069] = ((parser_tables___ParserTable___action_table_row1066_t)CALL(variable[1069],COLOR_parser_tables___ParserTable___action_table_row1066))(variable[1069]) /*ParserTable::action_table_row1066*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1069]) /*AbstractArray::add*/;
+    variable[1069] = CALL_parser_tables___ParserTable___action_table_row1066(variable[1069])(variable[1069]) /*ParserTable::action_table_row1066*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1069]) /*AbstractArray::add*/;
     variable[1070] = variable[0];
-    variable[1070] = ((parser_tables___ParserTable___action_table_row1067_t)CALL(variable[1070],COLOR_parser_tables___ParserTable___action_table_row1067))(variable[1070]) /*ParserTable::action_table_row1067*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1070]) /*AbstractArray::add*/;
+    variable[1070] = CALL_parser_tables___ParserTable___action_table_row1067(variable[1070])(variable[1070]) /*ParserTable::action_table_row1067*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1070]) /*AbstractArray::add*/;
     variable[1071] = variable[0];
-    variable[1071] = ((parser_tables___ParserTable___action_table_row1068_t)CALL(variable[1071],COLOR_parser_tables___ParserTable___action_table_row1068))(variable[1071]) /*ParserTable::action_table_row1068*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1071]) /*AbstractArray::add*/;
+    variable[1071] = CALL_parser_tables___ParserTable___action_table_row1068(variable[1071])(variable[1071]) /*ParserTable::action_table_row1068*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1071]) /*AbstractArray::add*/;
     variable[1072] = variable[0];
-    variable[1072] = ((parser_tables___ParserTable___action_table_row1069_t)CALL(variable[1072],COLOR_parser_tables___ParserTable___action_table_row1069))(variable[1072]) /*ParserTable::action_table_row1069*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1072]) /*AbstractArray::add*/;
+    variable[1072] = CALL_parser_tables___ParserTable___action_table_row1069(variable[1072])(variable[1072]) /*ParserTable::action_table_row1069*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1072]) /*AbstractArray::add*/;
     variable[1073] = variable[0];
-    variable[1073] = ((parser_tables___ParserTable___action_table_row1070_t)CALL(variable[1073],COLOR_parser_tables___ParserTable___action_table_row1070))(variable[1073]) /*ParserTable::action_table_row1070*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1073]) /*AbstractArray::add*/;
+    variable[1073] = CALL_parser_tables___ParserTable___action_table_row1070(variable[1073])(variable[1073]) /*ParserTable::action_table_row1070*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1073]) /*AbstractArray::add*/;
     variable[1074] = variable[0];
-    variable[1074] = ((parser_tables___ParserTable___action_table_row1071_t)CALL(variable[1074],COLOR_parser_tables___ParserTable___action_table_row1071))(variable[1074]) /*ParserTable::action_table_row1071*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1074]) /*AbstractArray::add*/;
+    variable[1074] = CALL_parser_tables___ParserTable___action_table_row1071(variable[1074])(variable[1074]) /*ParserTable::action_table_row1071*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1074]) /*AbstractArray::add*/;
     variable[1075] = variable[0];
-    variable[1075] = ((parser_tables___ParserTable___action_table_row1072_t)CALL(variable[1075],COLOR_parser_tables___ParserTable___action_table_row1072))(variable[1075]) /*ParserTable::action_table_row1072*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1075]) /*AbstractArray::add*/;
+    variable[1075] = CALL_parser_tables___ParserTable___action_table_row1072(variable[1075])(variable[1075]) /*ParserTable::action_table_row1072*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1075]) /*AbstractArray::add*/;
     variable[1076] = variable[0];
-    variable[1076] = ((parser_tables___ParserTable___action_table_row1073_t)CALL(variable[1076],COLOR_parser_tables___ParserTable___action_table_row1073))(variable[1076]) /*ParserTable::action_table_row1073*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1076]) /*AbstractArray::add*/;
+    variable[1076] = CALL_parser_tables___ParserTable___action_table_row1073(variable[1076])(variable[1076]) /*ParserTable::action_table_row1073*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1076]) /*AbstractArray::add*/;
     variable[1077] = variable[0];
-    variable[1077] = ((parser_tables___ParserTable___action_table_row1074_t)CALL(variable[1077],COLOR_parser_tables___ParserTable___action_table_row1074))(variable[1077]) /*ParserTable::action_table_row1074*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1077]) /*AbstractArray::add*/;
+    variable[1077] = CALL_parser_tables___ParserTable___action_table_row1074(variable[1077])(variable[1077]) /*ParserTable::action_table_row1074*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1077]) /*AbstractArray::add*/;
     variable[1078] = variable[0];
-    variable[1078] = ((parser_tables___ParserTable___action_table_row1075_t)CALL(variable[1078],COLOR_parser_tables___ParserTable___action_table_row1075))(variable[1078]) /*ParserTable::action_table_row1075*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1078]) /*AbstractArray::add*/;
+    variable[1078] = CALL_parser_tables___ParserTable___action_table_row1075(variable[1078])(variable[1078]) /*ParserTable::action_table_row1075*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1078]) /*AbstractArray::add*/;
     variable[1079] = variable[0];
-    variable[1079] = ((parser_tables___ParserTable___action_table_row1076_t)CALL(variable[1079],COLOR_parser_tables___ParserTable___action_table_row1076))(variable[1079]) /*ParserTable::action_table_row1076*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1079]) /*AbstractArray::add*/;
+    variable[1079] = CALL_parser_tables___ParserTable___action_table_row1076(variable[1079])(variable[1079]) /*ParserTable::action_table_row1076*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1079]) /*AbstractArray::add*/;
     variable[1080] = variable[0];
-    variable[1080] = ((parser_tables___ParserTable___action_table_row1077_t)CALL(variable[1080],COLOR_parser_tables___ParserTable___action_table_row1077))(variable[1080]) /*ParserTable::action_table_row1077*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1080]) /*AbstractArray::add*/;
+    variable[1080] = CALL_parser_tables___ParserTable___action_table_row1077(variable[1080])(variable[1080]) /*ParserTable::action_table_row1077*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1080]) /*AbstractArray::add*/;
     variable[1081] = variable[0];
-    variable[1081] = ((parser_tables___ParserTable___action_table_row1078_t)CALL(variable[1081],COLOR_parser_tables___ParserTable___action_table_row1078))(variable[1081]) /*ParserTable::action_table_row1078*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1081]) /*AbstractArray::add*/;
+    variable[1081] = CALL_parser_tables___ParserTable___action_table_row1078(variable[1081])(variable[1081]) /*ParserTable::action_table_row1078*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1081]) /*AbstractArray::add*/;
     variable[1082] = variable[0];
-    variable[1082] = ((parser_tables___ParserTable___action_table_row1079_t)CALL(variable[1082],COLOR_parser_tables___ParserTable___action_table_row1079))(variable[1082]) /*ParserTable::action_table_row1079*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1082]) /*AbstractArray::add*/;
+    variable[1082] = CALL_parser_tables___ParserTable___action_table_row1079(variable[1082])(variable[1082]) /*ParserTable::action_table_row1079*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1082]) /*AbstractArray::add*/;
     variable[1083] = variable[0];
-    variable[1083] = ((parser_tables___ParserTable___action_table_row1080_t)CALL(variable[1083],COLOR_parser_tables___ParserTable___action_table_row1080))(variable[1083]) /*ParserTable::action_table_row1080*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1083]) /*AbstractArray::add*/;
+    variable[1083] = CALL_parser_tables___ParserTable___action_table_row1080(variable[1083])(variable[1083]) /*ParserTable::action_table_row1080*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1083]) /*AbstractArray::add*/;
     variable[1084] = variable[0];
-    variable[1084] = ((parser_tables___ParserTable___action_table_row1081_t)CALL(variable[1084],COLOR_parser_tables___ParserTable___action_table_row1081))(variable[1084]) /*ParserTable::action_table_row1081*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1084]) /*AbstractArray::add*/;
+    variable[1084] = CALL_parser_tables___ParserTable___action_table_row1081(variable[1084])(variable[1084]) /*ParserTable::action_table_row1081*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1084]) /*AbstractArray::add*/;
     variable[1085] = variable[0];
-    variable[1085] = ((parser_tables___ParserTable___action_table_row1082_t)CALL(variable[1085],COLOR_parser_tables___ParserTable___action_table_row1082))(variable[1085]) /*ParserTable::action_table_row1082*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1085]) /*AbstractArray::add*/;
+    variable[1085] = CALL_parser_tables___ParserTable___action_table_row1082(variable[1085])(variable[1085]) /*ParserTable::action_table_row1082*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1085]) /*AbstractArray::add*/;
     variable[1086] = variable[0];
-    variable[1086] = ((parser_tables___ParserTable___action_table_row1083_t)CALL(variable[1086],COLOR_parser_tables___ParserTable___action_table_row1083))(variable[1086]) /*ParserTable::action_table_row1083*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1086]) /*AbstractArray::add*/;
+    variable[1086] = CALL_parser_tables___ParserTable___action_table_row1083(variable[1086])(variable[1086]) /*ParserTable::action_table_row1083*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1086]) /*AbstractArray::add*/;
     variable[1087] = variable[0];
-    variable[1087] = ((parser_tables___ParserTable___action_table_row1084_t)CALL(variable[1087],COLOR_parser_tables___ParserTable___action_table_row1084))(variable[1087]) /*ParserTable::action_table_row1084*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1087]) /*AbstractArray::add*/;
+    variable[1087] = CALL_parser_tables___ParserTable___action_table_row1084(variable[1087])(variable[1087]) /*ParserTable::action_table_row1084*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1087]) /*AbstractArray::add*/;
     variable[1088] = variable[0];
-    variable[1088] = ((parser_tables___ParserTable___action_table_row1085_t)CALL(variable[1088],COLOR_parser_tables___ParserTable___action_table_row1085))(variable[1088]) /*ParserTable::action_table_row1085*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1088]) /*AbstractArray::add*/;
+    variable[1088] = CALL_parser_tables___ParserTable___action_table_row1085(variable[1088])(variable[1088]) /*ParserTable::action_table_row1085*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1088]) /*AbstractArray::add*/;
     variable[1089] = variable[0];
-    variable[1089] = ((parser_tables___ParserTable___action_table_row1086_t)CALL(variable[1089],COLOR_parser_tables___ParserTable___action_table_row1086))(variable[1089]) /*ParserTable::action_table_row1086*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1089]) /*AbstractArray::add*/;
+    variable[1089] = CALL_parser_tables___ParserTable___action_table_row1086(variable[1089])(variable[1089]) /*ParserTable::action_table_row1086*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1089]) /*AbstractArray::add*/;
     variable[1090] = variable[0];
-    variable[1090] = ((parser_tables___ParserTable___action_table_row1087_t)CALL(variable[1090],COLOR_parser_tables___ParserTable___action_table_row1087))(variable[1090]) /*ParserTable::action_table_row1087*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1090]) /*AbstractArray::add*/;
+    variable[1090] = CALL_parser_tables___ParserTable___action_table_row1087(variable[1090])(variable[1090]) /*ParserTable::action_table_row1087*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1090]) /*AbstractArray::add*/;
     variable[1091] = variable[0];
-    variable[1091] = ((parser_tables___ParserTable___action_table_row1088_t)CALL(variable[1091],COLOR_parser_tables___ParserTable___action_table_row1088))(variable[1091]) /*ParserTable::action_table_row1088*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1091]) /*AbstractArray::add*/;
+    variable[1091] = CALL_parser_tables___ParserTable___action_table_row1088(variable[1091])(variable[1091]) /*ParserTable::action_table_row1088*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1091]) /*AbstractArray::add*/;
     variable[1092] = variable[0];
-    variable[1092] = ((parser_tables___ParserTable___action_table_row1089_t)CALL(variable[1092],COLOR_parser_tables___ParserTable___action_table_row1089))(variable[1092]) /*ParserTable::action_table_row1089*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1092]) /*AbstractArray::add*/;
+    variable[1092] = CALL_parser_tables___ParserTable___action_table_row1089(variable[1092])(variable[1092]) /*ParserTable::action_table_row1089*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1092]) /*AbstractArray::add*/;
     variable[1093] = variable[0];
-    variable[1093] = ((parser_tables___ParserTable___action_table_row1090_t)CALL(variable[1093],COLOR_parser_tables___ParserTable___action_table_row1090))(variable[1093]) /*ParserTable::action_table_row1090*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1093]) /*AbstractArray::add*/;
+    variable[1093] = CALL_parser_tables___ParserTable___action_table_row1090(variable[1093])(variable[1093]) /*ParserTable::action_table_row1090*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1093]) /*AbstractArray::add*/;
     variable[1094] = variable[0];
-    variable[1094] = ((parser_tables___ParserTable___action_table_row1091_t)CALL(variable[1094],COLOR_parser_tables___ParserTable___action_table_row1091))(variable[1094]) /*ParserTable::action_table_row1091*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1094]) /*AbstractArray::add*/;
+    variable[1094] = CALL_parser_tables___ParserTable___action_table_row1091(variable[1094])(variable[1094]) /*ParserTable::action_table_row1091*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1094]) /*AbstractArray::add*/;
     variable[1095] = variable[0];
-    variable[1095] = ((parser_tables___ParserTable___action_table_row1092_t)CALL(variable[1095],COLOR_parser_tables___ParserTable___action_table_row1092))(variable[1095]) /*ParserTable::action_table_row1092*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1095]) /*AbstractArray::add*/;
+    variable[1095] = CALL_parser_tables___ParserTable___action_table_row1092(variable[1095])(variable[1095]) /*ParserTable::action_table_row1092*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1095]) /*AbstractArray::add*/;
     variable[1096] = variable[0];
-    variable[1096] = ((parser_tables___ParserTable___action_table_row1093_t)CALL(variable[1096],COLOR_parser_tables___ParserTable___action_table_row1093))(variable[1096]) /*ParserTable::action_table_row1093*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1096]) /*AbstractArray::add*/;
+    variable[1096] = CALL_parser_tables___ParserTable___action_table_row1093(variable[1096])(variable[1096]) /*ParserTable::action_table_row1093*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1096]) /*AbstractArray::add*/;
     variable[1097] = variable[0];
-    variable[1097] = ((parser_tables___ParserTable___action_table_row1094_t)CALL(variable[1097],COLOR_parser_tables___ParserTable___action_table_row1094))(variable[1097]) /*ParserTable::action_table_row1094*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1097]) /*AbstractArray::add*/;
+    variable[1097] = CALL_parser_tables___ParserTable___action_table_row1094(variable[1097])(variable[1097]) /*ParserTable::action_table_row1094*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1097]) /*AbstractArray::add*/;
     variable[1098] = variable[0];
-    variable[1098] = ((parser_tables___ParserTable___action_table_row1095_t)CALL(variable[1098],COLOR_parser_tables___ParserTable___action_table_row1095))(variable[1098]) /*ParserTable::action_table_row1095*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1098]) /*AbstractArray::add*/;
+    variable[1098] = CALL_parser_tables___ParserTable___action_table_row1095(variable[1098])(variable[1098]) /*ParserTable::action_table_row1095*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1098]) /*AbstractArray::add*/;
     variable[1099] = variable[0];
-    variable[1099] = ((parser_tables___ParserTable___action_table_row1096_t)CALL(variable[1099],COLOR_parser_tables___ParserTable___action_table_row1096))(variable[1099]) /*ParserTable::action_table_row1096*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1099]) /*AbstractArray::add*/;
+    variable[1099] = CALL_parser_tables___ParserTable___action_table_row1096(variable[1099])(variable[1099]) /*ParserTable::action_table_row1096*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1099]) /*AbstractArray::add*/;
     variable[1100] = variable[0];
-    variable[1100] = ((parser_tables___ParserTable___action_table_row1097_t)CALL(variable[1100],COLOR_parser_tables___ParserTable___action_table_row1097))(variable[1100]) /*ParserTable::action_table_row1097*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1100]) /*AbstractArray::add*/;
+    variable[1100] = CALL_parser_tables___ParserTable___action_table_row1097(variable[1100])(variable[1100]) /*ParserTable::action_table_row1097*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1100]) /*AbstractArray::add*/;
     variable[1101] = variable[0];
-    variable[1101] = ((parser_tables___ParserTable___action_table_row1098_t)CALL(variable[1101],COLOR_parser_tables___ParserTable___action_table_row1098))(variable[1101]) /*ParserTable::action_table_row1098*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1101]) /*AbstractArray::add*/;
+    variable[1101] = CALL_parser_tables___ParserTable___action_table_row1098(variable[1101])(variable[1101]) /*ParserTable::action_table_row1098*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1101]) /*AbstractArray::add*/;
     variable[1102] = variable[0];
-    variable[1102] = ((parser_tables___ParserTable___action_table_row1099_t)CALL(variable[1102],COLOR_parser_tables___ParserTable___action_table_row1099))(variable[1102]) /*ParserTable::action_table_row1099*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1102]) /*AbstractArray::add*/;
+    variable[1102] = CALL_parser_tables___ParserTable___action_table_row1099(variable[1102])(variable[1102]) /*ParserTable::action_table_row1099*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1102]) /*AbstractArray::add*/;
     variable[1103] = variable[0];
-    variable[1103] = ((parser_tables___ParserTable___action_table_row1100_t)CALL(variable[1103],COLOR_parser_tables___ParserTable___action_table_row1100))(variable[1103]) /*ParserTable::action_table_row1100*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1103]) /*AbstractArray::add*/;
+    variable[1103] = CALL_parser_tables___ParserTable___action_table_row1100(variable[1103])(variable[1103]) /*ParserTable::action_table_row1100*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1103]) /*AbstractArray::add*/;
     variable[1104] = variable[0];
-    variable[1104] = ((parser_tables___ParserTable___action_table_row1101_t)CALL(variable[1104],COLOR_parser_tables___ParserTable___action_table_row1101))(variable[1104]) /*ParserTable::action_table_row1101*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1104]) /*AbstractArray::add*/;
+    variable[1104] = CALL_parser_tables___ParserTable___action_table_row1101(variable[1104])(variable[1104]) /*ParserTable::action_table_row1101*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1104]) /*AbstractArray::add*/;
     variable[1105] = variable[0];
-    variable[1105] = ((parser_tables___ParserTable___action_table_row1102_t)CALL(variable[1105],COLOR_parser_tables___ParserTable___action_table_row1102))(variable[1105]) /*ParserTable::action_table_row1102*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1105]) /*AbstractArray::add*/;
+    variable[1105] = CALL_parser_tables___ParserTable___action_table_row1102(variable[1105])(variable[1105]) /*ParserTable::action_table_row1102*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1105]) /*AbstractArray::add*/;
     variable[1106] = variable[0];
-    variable[1106] = ((parser_tables___ParserTable___action_table_row1103_t)CALL(variable[1106],COLOR_parser_tables___ParserTable___action_table_row1103))(variable[1106]) /*ParserTable::action_table_row1103*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1106]) /*AbstractArray::add*/;
+    variable[1106] = CALL_parser_tables___ParserTable___action_table_row1103(variable[1106])(variable[1106]) /*ParserTable::action_table_row1103*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1106]) /*AbstractArray::add*/;
     variable[1107] = variable[0];
-    variable[1107] = ((parser_tables___ParserTable___action_table_row1104_t)CALL(variable[1107],COLOR_parser_tables___ParserTable___action_table_row1104))(variable[1107]) /*ParserTable::action_table_row1104*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1107]) /*AbstractArray::add*/;
+    variable[1107] = CALL_parser_tables___ParserTable___action_table_row1104(variable[1107])(variable[1107]) /*ParserTable::action_table_row1104*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1107]) /*AbstractArray::add*/;
     variable[1108] = variable[0];
-    variable[1108] = ((parser_tables___ParserTable___action_table_row1105_t)CALL(variable[1108],COLOR_parser_tables___ParserTable___action_table_row1105))(variable[1108]) /*ParserTable::action_table_row1105*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1108]) /*AbstractArray::add*/;
+    variable[1108] = CALL_parser_tables___ParserTable___action_table_row1105(variable[1108])(variable[1108]) /*ParserTable::action_table_row1105*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1108]) /*AbstractArray::add*/;
     variable[1109] = variable[0];
-    variable[1109] = ((parser_tables___ParserTable___action_table_row1106_t)CALL(variable[1109],COLOR_parser_tables___ParserTable___action_table_row1106))(variable[1109]) /*ParserTable::action_table_row1106*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1109]) /*AbstractArray::add*/;
+    variable[1109] = CALL_parser_tables___ParserTable___action_table_row1106(variable[1109])(variable[1109]) /*ParserTable::action_table_row1106*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1109]) /*AbstractArray::add*/;
     variable[1110] = variable[0];
-    variable[1110] = ((parser_tables___ParserTable___action_table_row1107_t)CALL(variable[1110],COLOR_parser_tables___ParserTable___action_table_row1107))(variable[1110]) /*ParserTable::action_table_row1107*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1110]) /*AbstractArray::add*/;
+    variable[1110] = CALL_parser_tables___ParserTable___action_table_row1107(variable[1110])(variable[1110]) /*ParserTable::action_table_row1107*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1110]) /*AbstractArray::add*/;
     variable[1111] = variable[0];
-    variable[1111] = ((parser_tables___ParserTable___action_table_row1108_t)CALL(variable[1111],COLOR_parser_tables___ParserTable___action_table_row1108))(variable[1111]) /*ParserTable::action_table_row1108*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1111]) /*AbstractArray::add*/;
+    variable[1111] = CALL_parser_tables___ParserTable___action_table_row1108(variable[1111])(variable[1111]) /*ParserTable::action_table_row1108*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1111]) /*AbstractArray::add*/;
     variable[1112] = variable[0];
-    variable[1112] = ((parser_tables___ParserTable___action_table_row1109_t)CALL(variable[1112],COLOR_parser_tables___ParserTable___action_table_row1109))(variable[1112]) /*ParserTable::action_table_row1109*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1112]) /*AbstractArray::add*/;
+    variable[1112] = CALL_parser_tables___ParserTable___action_table_row1109(variable[1112])(variable[1112]) /*ParserTable::action_table_row1109*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1112]) /*AbstractArray::add*/;
     variable[1113] = variable[0];
-    variable[1113] = ((parser_tables___ParserTable___action_table_row1110_t)CALL(variable[1113],COLOR_parser_tables___ParserTable___action_table_row1110))(variable[1113]) /*ParserTable::action_table_row1110*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1113]) /*AbstractArray::add*/;
+    variable[1113] = CALL_parser_tables___ParserTable___action_table_row1110(variable[1113])(variable[1113]) /*ParserTable::action_table_row1110*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1113]) /*AbstractArray::add*/;
     variable[1114] = variable[0];
-    variable[1114] = ((parser_tables___ParserTable___action_table_row1111_t)CALL(variable[1114],COLOR_parser_tables___ParserTable___action_table_row1111))(variable[1114]) /*ParserTable::action_table_row1111*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1114]) /*AbstractArray::add*/;
+    variable[1114] = CALL_parser_tables___ParserTable___action_table_row1111(variable[1114])(variable[1114]) /*ParserTable::action_table_row1111*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1114]) /*AbstractArray::add*/;
     variable[1115] = variable[0];
-    variable[1115] = ((parser_tables___ParserTable___action_table_row1112_t)CALL(variable[1115],COLOR_parser_tables___ParserTable___action_table_row1112))(variable[1115]) /*ParserTable::action_table_row1112*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1115]) /*AbstractArray::add*/;
+    variable[1115] = CALL_parser_tables___ParserTable___action_table_row1112(variable[1115])(variable[1115]) /*ParserTable::action_table_row1112*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1115]) /*AbstractArray::add*/;
     variable[1116] = variable[0];
-    variable[1116] = ((parser_tables___ParserTable___action_table_row1113_t)CALL(variable[1116],COLOR_parser_tables___ParserTable___action_table_row1113))(variable[1116]) /*ParserTable::action_table_row1113*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1116]) /*AbstractArray::add*/;
+    variable[1116] = CALL_parser_tables___ParserTable___action_table_row1113(variable[1116])(variable[1116]) /*ParserTable::action_table_row1113*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1116]) /*AbstractArray::add*/;
     variable[1117] = variable[0];
-    variable[1117] = ((parser_tables___ParserTable___action_table_row1114_t)CALL(variable[1117],COLOR_parser_tables___ParserTable___action_table_row1114))(variable[1117]) /*ParserTable::action_table_row1114*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1117]) /*AbstractArray::add*/;
+    variable[1117] = CALL_parser_tables___ParserTable___action_table_row1114(variable[1117])(variable[1117]) /*ParserTable::action_table_row1114*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1117]) /*AbstractArray::add*/;
     variable[1118] = variable[0];
-    variable[1118] = ((parser_tables___ParserTable___action_table_row1115_t)CALL(variable[1118],COLOR_parser_tables___ParserTable___action_table_row1115))(variable[1118]) /*ParserTable::action_table_row1115*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1118]) /*AbstractArray::add*/;
+    variable[1118] = CALL_parser_tables___ParserTable___action_table_row1115(variable[1118])(variable[1118]) /*ParserTable::action_table_row1115*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1118]) /*AbstractArray::add*/;
     variable[1119] = variable[0];
-    variable[1119] = ((parser_tables___ParserTable___action_table_row1116_t)CALL(variable[1119],COLOR_parser_tables___ParserTable___action_table_row1116))(variable[1119]) /*ParserTable::action_table_row1116*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1119]) /*AbstractArray::add*/;
+    variable[1119] = CALL_parser_tables___ParserTable___action_table_row1116(variable[1119])(variable[1119]) /*ParserTable::action_table_row1116*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1119]) /*AbstractArray::add*/;
     variable[1120] = variable[0];
-    variable[1120] = ((parser_tables___ParserTable___action_table_row1117_t)CALL(variable[1120],COLOR_parser_tables___ParserTable___action_table_row1117))(variable[1120]) /*ParserTable::action_table_row1117*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1120]) /*AbstractArray::add*/;
+    variable[1120] = CALL_parser_tables___ParserTable___action_table_row1117(variable[1120])(variable[1120]) /*ParserTable::action_table_row1117*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1120]) /*AbstractArray::add*/;
     variable[1121] = variable[0];
-    variable[1121] = ((parser_tables___ParserTable___action_table_row1118_t)CALL(variable[1121],COLOR_parser_tables___ParserTable___action_table_row1118))(variable[1121]) /*ParserTable::action_table_row1118*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1121]) /*AbstractArray::add*/;
+    variable[1121] = CALL_parser_tables___ParserTable___action_table_row1118(variable[1121])(variable[1121]) /*ParserTable::action_table_row1118*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1121]) /*AbstractArray::add*/;
     variable[1122] = variable[0];
-    variable[1122] = ((parser_tables___ParserTable___action_table_row1119_t)CALL(variable[1122],COLOR_parser_tables___ParserTable___action_table_row1119))(variable[1122]) /*ParserTable::action_table_row1119*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1122]) /*AbstractArray::add*/;
+    variable[1122] = CALL_parser_tables___ParserTable___action_table_row1119(variable[1122])(variable[1122]) /*ParserTable::action_table_row1119*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1122]) /*AbstractArray::add*/;
     variable[1123] = variable[0];
-    variable[1123] = ((parser_tables___ParserTable___action_table_row1120_t)CALL(variable[1123],COLOR_parser_tables___ParserTable___action_table_row1120))(variable[1123]) /*ParserTable::action_table_row1120*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1123]) /*AbstractArray::add*/;
+    variable[1123] = CALL_parser_tables___ParserTable___action_table_row1120(variable[1123])(variable[1123]) /*ParserTable::action_table_row1120*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1123]) /*AbstractArray::add*/;
     variable[1124] = variable[0];
-    variable[1124] = ((parser_tables___ParserTable___action_table_row1121_t)CALL(variable[1124],COLOR_parser_tables___ParserTable___action_table_row1121))(variable[1124]) /*ParserTable::action_table_row1121*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1124]) /*AbstractArray::add*/;
+    variable[1124] = CALL_parser_tables___ParserTable___action_table_row1121(variable[1124])(variable[1124]) /*ParserTable::action_table_row1121*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1124]) /*AbstractArray::add*/;
     variable[1125] = variable[0];
-    variable[1125] = ((parser_tables___ParserTable___action_table_row1122_t)CALL(variable[1125],COLOR_parser_tables___ParserTable___action_table_row1122))(variable[1125]) /*ParserTable::action_table_row1122*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1125]) /*AbstractArray::add*/;
+    variable[1125] = CALL_parser_tables___ParserTable___action_table_row1122(variable[1125])(variable[1125]) /*ParserTable::action_table_row1122*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1125]) /*AbstractArray::add*/;
     variable[1126] = variable[0];
-    variable[1126] = ((parser_tables___ParserTable___action_table_row1123_t)CALL(variable[1126],COLOR_parser_tables___ParserTable___action_table_row1123))(variable[1126]) /*ParserTable::action_table_row1123*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1126]) /*AbstractArray::add*/;
+    variable[1126] = CALL_parser_tables___ParserTable___action_table_row1123(variable[1126])(variable[1126]) /*ParserTable::action_table_row1123*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1126]) /*AbstractArray::add*/;
     variable[1127] = variable[0];
-    variable[1127] = ((parser_tables___ParserTable___action_table_row1124_t)CALL(variable[1127],COLOR_parser_tables___ParserTable___action_table_row1124))(variable[1127]) /*ParserTable::action_table_row1124*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1127]) /*AbstractArray::add*/;
+    variable[1127] = CALL_parser_tables___ParserTable___action_table_row1124(variable[1127])(variable[1127]) /*ParserTable::action_table_row1124*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1127]) /*AbstractArray::add*/;
     variable[1128] = variable[0];
-    variable[1128] = ((parser_tables___ParserTable___action_table_row1125_t)CALL(variable[1128],COLOR_parser_tables___ParserTable___action_table_row1125))(variable[1128]) /*ParserTable::action_table_row1125*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1128]) /*AbstractArray::add*/;
+    variable[1128] = CALL_parser_tables___ParserTable___action_table_row1125(variable[1128])(variable[1128]) /*ParserTable::action_table_row1125*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1128]) /*AbstractArray::add*/;
     variable[1129] = variable[0];
-    variable[1129] = ((parser_tables___ParserTable___action_table_row1126_t)CALL(variable[1129],COLOR_parser_tables___ParserTable___action_table_row1126))(variable[1129]) /*ParserTable::action_table_row1126*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1129]) /*AbstractArray::add*/;
+    variable[1129] = CALL_parser_tables___ParserTable___action_table_row1126(variable[1129])(variable[1129]) /*ParserTable::action_table_row1126*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1129]) /*AbstractArray::add*/;
     variable[1130] = variable[0];
-    variable[1130] = ((parser_tables___ParserTable___action_table_row1127_t)CALL(variable[1130],COLOR_parser_tables___ParserTable___action_table_row1127))(variable[1130]) /*ParserTable::action_table_row1127*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1130]) /*AbstractArray::add*/;
+    variable[1130] = CALL_parser_tables___ParserTable___action_table_row1127(variable[1130])(variable[1130]) /*ParserTable::action_table_row1127*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1130]) /*AbstractArray::add*/;
     variable[1131] = variable[0];
-    variable[1131] = ((parser_tables___ParserTable___action_table_row1128_t)CALL(variable[1131],COLOR_parser_tables___ParserTable___action_table_row1128))(variable[1131]) /*ParserTable::action_table_row1128*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1131]) /*AbstractArray::add*/;
+    variable[1131] = CALL_parser_tables___ParserTable___action_table_row1128(variable[1131])(variable[1131]) /*ParserTable::action_table_row1128*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1131]) /*AbstractArray::add*/;
     variable[1132] = variable[0];
-    variable[1132] = ((parser_tables___ParserTable___action_table_row1129_t)CALL(variable[1132],COLOR_parser_tables___ParserTable___action_table_row1129))(variable[1132]) /*ParserTable::action_table_row1129*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1132]) /*AbstractArray::add*/;
+    variable[1132] = CALL_parser_tables___ParserTable___action_table_row1129(variable[1132])(variable[1132]) /*ParserTable::action_table_row1129*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1132]) /*AbstractArray::add*/;
     variable[1133] = variable[0];
-    variable[1133] = ((parser_tables___ParserTable___action_table_row1130_t)CALL(variable[1133],COLOR_parser_tables___ParserTable___action_table_row1130))(variable[1133]) /*ParserTable::action_table_row1130*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1133]) /*AbstractArray::add*/;
+    variable[1133] = CALL_parser_tables___ParserTable___action_table_row1130(variable[1133])(variable[1133]) /*ParserTable::action_table_row1130*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1133]) /*AbstractArray::add*/;
     variable[1134] = variable[0];
-    variable[1134] = ((parser_tables___ParserTable___action_table_row1131_t)CALL(variable[1134],COLOR_parser_tables___ParserTable___action_table_row1131))(variable[1134]) /*ParserTable::action_table_row1131*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1134]) /*AbstractArray::add*/;
+    variable[1134] = CALL_parser_tables___ParserTable___action_table_row1131(variable[1134])(variable[1134]) /*ParserTable::action_table_row1131*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1134]) /*AbstractArray::add*/;
     variable[1135] = variable[0];
-    variable[1135] = ((parser_tables___ParserTable___action_table_row1132_t)CALL(variable[1135],COLOR_parser_tables___ParserTable___action_table_row1132))(variable[1135]) /*ParserTable::action_table_row1132*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1135]) /*AbstractArray::add*/;
+    variable[1135] = CALL_parser_tables___ParserTable___action_table_row1132(variable[1135])(variable[1135]) /*ParserTable::action_table_row1132*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1135]) /*AbstractArray::add*/;
     variable[1136] = variable[0];
-    variable[1136] = ((parser_tables___ParserTable___action_table_row1133_t)CALL(variable[1136],COLOR_parser_tables___ParserTable___action_table_row1133))(variable[1136]) /*ParserTable::action_table_row1133*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1136]) /*AbstractArray::add*/;
+    variable[1136] = CALL_parser_tables___ParserTable___action_table_row1133(variable[1136])(variable[1136]) /*ParserTable::action_table_row1133*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1136]) /*AbstractArray::add*/;
     variable[1137] = variable[0];
-    variable[1137] = ((parser_tables___ParserTable___action_table_row1134_t)CALL(variable[1137],COLOR_parser_tables___ParserTable___action_table_row1134))(variable[1137]) /*ParserTable::action_table_row1134*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1137]) /*AbstractArray::add*/;
+    variable[1137] = CALL_parser_tables___ParserTable___action_table_row1134(variable[1137])(variable[1137]) /*ParserTable::action_table_row1134*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1137]) /*AbstractArray::add*/;
     variable[1138] = variable[0];
-    variable[1138] = ((parser_tables___ParserTable___action_table_row1135_t)CALL(variable[1138],COLOR_parser_tables___ParserTable___action_table_row1135))(variable[1138]) /*ParserTable::action_table_row1135*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1138]) /*AbstractArray::add*/;
+    variable[1138] = CALL_parser_tables___ParserTable___action_table_row1135(variable[1138])(variable[1138]) /*ParserTable::action_table_row1135*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1138]) /*AbstractArray::add*/;
     variable[1139] = variable[0];
-    variable[1139] = ((parser_tables___ParserTable___action_table_row1136_t)CALL(variable[1139],COLOR_parser_tables___ParserTable___action_table_row1136))(variable[1139]) /*ParserTable::action_table_row1136*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1139]) /*AbstractArray::add*/;
+    variable[1139] = CALL_parser_tables___ParserTable___action_table_row1136(variable[1139])(variable[1139]) /*ParserTable::action_table_row1136*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1139]) /*AbstractArray::add*/;
     variable[1140] = variable[0];
-    variable[1140] = ((parser_tables___ParserTable___action_table_row1137_t)CALL(variable[1140],COLOR_parser_tables___ParserTable___action_table_row1137))(variable[1140]) /*ParserTable::action_table_row1137*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1140]) /*AbstractArray::add*/;
+    variable[1140] = CALL_parser_tables___ParserTable___action_table_row1137(variable[1140])(variable[1140]) /*ParserTable::action_table_row1137*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1140]) /*AbstractArray::add*/;
     variable[1141] = variable[0];
-    variable[1141] = ((parser_tables___ParserTable___action_table_row1138_t)CALL(variable[1141],COLOR_parser_tables___ParserTable___action_table_row1138))(variable[1141]) /*ParserTable::action_table_row1138*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1141]) /*AbstractArray::add*/;
+    variable[1141] = CALL_parser_tables___ParserTable___action_table_row1138(variable[1141])(variable[1141]) /*ParserTable::action_table_row1138*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1141]) /*AbstractArray::add*/;
     variable[1142] = variable[0];
-    variable[1142] = ((parser_tables___ParserTable___action_table_row1139_t)CALL(variable[1142],COLOR_parser_tables___ParserTable___action_table_row1139))(variable[1142]) /*ParserTable::action_table_row1139*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1142]) /*AbstractArray::add*/;
+    variable[1142] = CALL_parser_tables___ParserTable___action_table_row1139(variable[1142])(variable[1142]) /*ParserTable::action_table_row1139*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1142]) /*AbstractArray::add*/;
     variable[1143] = variable[0];
-    variable[1143] = ((parser_tables___ParserTable___action_table_row1140_t)CALL(variable[1143],COLOR_parser_tables___ParserTable___action_table_row1140))(variable[1143]) /*ParserTable::action_table_row1140*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1143]) /*AbstractArray::add*/;
+    variable[1143] = CALL_parser_tables___ParserTable___action_table_row1140(variable[1143])(variable[1143]) /*ParserTable::action_table_row1140*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1143]) /*AbstractArray::add*/;
     variable[1144] = variable[0];
-    variable[1144] = ((parser_tables___ParserTable___action_table_row1141_t)CALL(variable[1144],COLOR_parser_tables___ParserTable___action_table_row1141))(variable[1144]) /*ParserTable::action_table_row1141*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1144]) /*AbstractArray::add*/;
+    variable[1144] = CALL_parser_tables___ParserTable___action_table_row1141(variable[1144])(variable[1144]) /*ParserTable::action_table_row1141*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1144]) /*AbstractArray::add*/;
     variable[1145] = variable[0];
-    variable[1145] = ((parser_tables___ParserTable___action_table_row1142_t)CALL(variable[1145],COLOR_parser_tables___ParserTable___action_table_row1142))(variable[1145]) /*ParserTable::action_table_row1142*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1145]) /*AbstractArray::add*/;
+    variable[1145] = CALL_parser_tables___ParserTable___action_table_row1142(variable[1145])(variable[1145]) /*ParserTable::action_table_row1142*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1145]) /*AbstractArray::add*/;
     variable[1146] = variable[0];
-    variable[1146] = ((parser_tables___ParserTable___action_table_row1143_t)CALL(variable[1146],COLOR_parser_tables___ParserTable___action_table_row1143))(variable[1146]) /*ParserTable::action_table_row1143*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1146]) /*AbstractArray::add*/;
+    variable[1146] = CALL_parser_tables___ParserTable___action_table_row1143(variable[1146])(variable[1146]) /*ParserTable::action_table_row1143*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1146]) /*AbstractArray::add*/;
     variable[1147] = variable[0];
-    variable[1147] = ((parser_tables___ParserTable___action_table_row1144_t)CALL(variable[1147],COLOR_parser_tables___ParserTable___action_table_row1144))(variable[1147]) /*ParserTable::action_table_row1144*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1147]) /*AbstractArray::add*/;
+    variable[1147] = CALL_parser_tables___ParserTable___action_table_row1144(variable[1147])(variable[1147]) /*ParserTable::action_table_row1144*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1147]) /*AbstractArray::add*/;
     variable[1148] = variable[0];
-    variable[1148] = ((parser_tables___ParserTable___action_table_row1145_t)CALL(variable[1148],COLOR_parser_tables___ParserTable___action_table_row1145))(variable[1148]) /*ParserTable::action_table_row1145*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1148]) /*AbstractArray::add*/;
+    variable[1148] = CALL_parser_tables___ParserTable___action_table_row1145(variable[1148])(variable[1148]) /*ParserTable::action_table_row1145*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1148]) /*AbstractArray::add*/;
     variable[1149] = variable[0];
-    variable[1149] = ((parser_tables___ParserTable___action_table_row1146_t)CALL(variable[1149],COLOR_parser_tables___ParserTable___action_table_row1146))(variable[1149]) /*ParserTable::action_table_row1146*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1149]) /*AbstractArray::add*/;
+    variable[1149] = CALL_parser_tables___ParserTable___action_table_row1146(variable[1149])(variable[1149]) /*ParserTable::action_table_row1146*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1149]) /*AbstractArray::add*/;
     variable[1150] = variable[0];
-    variable[1150] = ((parser_tables___ParserTable___action_table_row1147_t)CALL(variable[1150],COLOR_parser_tables___ParserTable___action_table_row1147))(variable[1150]) /*ParserTable::action_table_row1147*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1150]) /*AbstractArray::add*/;
+    variable[1150] = CALL_parser_tables___ParserTable___action_table_row1147(variable[1150])(variable[1150]) /*ParserTable::action_table_row1147*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1150]) /*AbstractArray::add*/;
     variable[1151] = variable[0];
-    variable[1151] = ((parser_tables___ParserTable___action_table_row1148_t)CALL(variable[1151],COLOR_parser_tables___ParserTable___action_table_row1148))(variable[1151]) /*ParserTable::action_table_row1148*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1151]) /*AbstractArray::add*/;
+    variable[1151] = CALL_parser_tables___ParserTable___action_table_row1148(variable[1151])(variable[1151]) /*ParserTable::action_table_row1148*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1151]) /*AbstractArray::add*/;
     variable[1152] = variable[0];
-    variable[1152] = ((parser_tables___ParserTable___action_table_row1149_t)CALL(variable[1152],COLOR_parser_tables___ParserTable___action_table_row1149))(variable[1152]) /*ParserTable::action_table_row1149*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1152]) /*AbstractArray::add*/;
+    variable[1152] = CALL_parser_tables___ParserTable___action_table_row1149(variable[1152])(variable[1152]) /*ParserTable::action_table_row1149*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1152]) /*AbstractArray::add*/;
     variable[1153] = variable[0];
-    variable[1153] = ((parser_tables___ParserTable___action_table_row1150_t)CALL(variable[1153],COLOR_parser_tables___ParserTable___action_table_row1150))(variable[1153]) /*ParserTable::action_table_row1150*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1153]) /*AbstractArray::add*/;
+    variable[1153] = CALL_parser_tables___ParserTable___action_table_row1150(variable[1153])(variable[1153]) /*ParserTable::action_table_row1150*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1153]) /*AbstractArray::add*/;
     variable[1154] = variable[0];
-    variable[1154] = ((parser_tables___ParserTable___action_table_row1151_t)CALL(variable[1154],COLOR_parser_tables___ParserTable___action_table_row1151))(variable[1154]) /*ParserTable::action_table_row1151*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1154]) /*AbstractArray::add*/;
+    variable[1154] = CALL_parser_tables___ParserTable___action_table_row1151(variable[1154])(variable[1154]) /*ParserTable::action_table_row1151*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1154]) /*AbstractArray::add*/;
     variable[1155] = variable[0];
-    variable[1155] = ((parser_tables___ParserTable___action_table_row1152_t)CALL(variable[1155],COLOR_parser_tables___ParserTable___action_table_row1152))(variable[1155]) /*ParserTable::action_table_row1152*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1155]) /*AbstractArray::add*/;
+    variable[1155] = CALL_parser_tables___ParserTable___action_table_row1152(variable[1155])(variable[1155]) /*ParserTable::action_table_row1152*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1155]) /*AbstractArray::add*/;
     variable[1156] = variable[0];
-    variable[1156] = ((parser_tables___ParserTable___action_table_row1153_t)CALL(variable[1156],COLOR_parser_tables___ParserTable___action_table_row1153))(variable[1156]) /*ParserTable::action_table_row1153*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1156]) /*AbstractArray::add*/;
+    variable[1156] = CALL_parser_tables___ParserTable___action_table_row1153(variable[1156])(variable[1156]) /*ParserTable::action_table_row1153*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1156]) /*AbstractArray::add*/;
     variable[1157] = variable[0];
-    variable[1157] = ((parser_tables___ParserTable___action_table_row1154_t)CALL(variable[1157],COLOR_parser_tables___ParserTable___action_table_row1154))(variable[1157]) /*ParserTable::action_table_row1154*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1157]) /*AbstractArray::add*/;
+    variable[1157] = CALL_parser_tables___ParserTable___action_table_row1154(variable[1157])(variable[1157]) /*ParserTable::action_table_row1154*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1157]) /*AbstractArray::add*/;
     variable[1158] = variable[0];
-    variable[1158] = ((parser_tables___ParserTable___action_table_row1155_t)CALL(variable[1158],COLOR_parser_tables___ParserTable___action_table_row1155))(variable[1158]) /*ParserTable::action_table_row1155*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1158]) /*AbstractArray::add*/;
+    variable[1158] = CALL_parser_tables___ParserTable___action_table_row1155(variable[1158])(variable[1158]) /*ParserTable::action_table_row1155*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1158]) /*AbstractArray::add*/;
     variable[1159] = variable[0];
-    variable[1159] = ((parser_tables___ParserTable___action_table_row1156_t)CALL(variable[1159],COLOR_parser_tables___ParserTable___action_table_row1156))(variable[1159]) /*ParserTable::action_table_row1156*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1159]) /*AbstractArray::add*/;
+    variable[1159] = CALL_parser_tables___ParserTable___action_table_row1156(variable[1159])(variable[1159]) /*ParserTable::action_table_row1156*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1159]) /*AbstractArray::add*/;
     variable[1160] = variable[0];
-    variable[1160] = ((parser_tables___ParserTable___action_table_row1157_t)CALL(variable[1160],COLOR_parser_tables___ParserTable___action_table_row1157))(variable[1160]) /*ParserTable::action_table_row1157*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1160]) /*AbstractArray::add*/;
+    variable[1160] = CALL_parser_tables___ParserTable___action_table_row1157(variable[1160])(variable[1160]) /*ParserTable::action_table_row1157*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1160]) /*AbstractArray::add*/;
     variable[1161] = variable[0];
-    variable[1161] = ((parser_tables___ParserTable___action_table_row1158_t)CALL(variable[1161],COLOR_parser_tables___ParserTable___action_table_row1158))(variable[1161]) /*ParserTable::action_table_row1158*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1161]) /*AbstractArray::add*/;
+    variable[1161] = CALL_parser_tables___ParserTable___action_table_row1158(variable[1161])(variable[1161]) /*ParserTable::action_table_row1158*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1161]) /*AbstractArray::add*/;
     variable[1162] = variable[0];
-    variable[1162] = ((parser_tables___ParserTable___action_table_row1159_t)CALL(variable[1162],COLOR_parser_tables___ParserTable___action_table_row1159))(variable[1162]) /*ParserTable::action_table_row1159*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1162]) /*AbstractArray::add*/;
+    variable[1162] = CALL_parser_tables___ParserTable___action_table_row1159(variable[1162])(variable[1162]) /*ParserTable::action_table_row1159*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1162]) /*AbstractArray::add*/;
     variable[1163] = variable[0];
-    variable[1163] = ((parser_tables___ParserTable___action_table_row1160_t)CALL(variable[1163],COLOR_parser_tables___ParserTable___action_table_row1160))(variable[1163]) /*ParserTable::action_table_row1160*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1163]) /*AbstractArray::add*/;
+    variable[1163] = CALL_parser_tables___ParserTable___action_table_row1160(variable[1163])(variable[1163]) /*ParserTable::action_table_row1160*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1163]) /*AbstractArray::add*/;
     variable[1164] = variable[0];
-    variable[1164] = ((parser_tables___ParserTable___action_table_row1161_t)CALL(variable[1164],COLOR_parser_tables___ParserTable___action_table_row1161))(variable[1164]) /*ParserTable::action_table_row1161*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1164]) /*AbstractArray::add*/;
+    variable[1164] = CALL_parser_tables___ParserTable___action_table_row1161(variable[1164])(variable[1164]) /*ParserTable::action_table_row1161*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1164]) /*AbstractArray::add*/;
     variable[1165] = variable[0];
-    variable[1165] = ((parser_tables___ParserTable___action_table_row1162_t)CALL(variable[1165],COLOR_parser_tables___ParserTable___action_table_row1162))(variable[1165]) /*ParserTable::action_table_row1162*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1165]) /*AbstractArray::add*/;
+    variable[1165] = CALL_parser_tables___ParserTable___action_table_row1162(variable[1165])(variable[1165]) /*ParserTable::action_table_row1162*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1165]) /*AbstractArray::add*/;
     variable[1166] = variable[0];
-    variable[1166] = ((parser_tables___ParserTable___action_table_row1163_t)CALL(variable[1166],COLOR_parser_tables___ParserTable___action_table_row1163))(variable[1166]) /*ParserTable::action_table_row1163*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1166]) /*AbstractArray::add*/;
+    variable[1166] = CALL_parser_tables___ParserTable___action_table_row1163(variable[1166])(variable[1166]) /*ParserTable::action_table_row1163*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1166]) /*AbstractArray::add*/;
     variable[1167] = variable[0];
-    variable[1167] = ((parser_tables___ParserTable___action_table_row1164_t)CALL(variable[1167],COLOR_parser_tables___ParserTable___action_table_row1164))(variable[1167]) /*ParserTable::action_table_row1164*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1167]) /*AbstractArray::add*/;
+    variable[1167] = CALL_parser_tables___ParserTable___action_table_row1164(variable[1167])(variable[1167]) /*ParserTable::action_table_row1164*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1167]) /*AbstractArray::add*/;
     variable[1168] = variable[0];
-    variable[1168] = ((parser_tables___ParserTable___action_table_row1165_t)CALL(variable[1168],COLOR_parser_tables___ParserTable___action_table_row1165))(variable[1168]) /*ParserTable::action_table_row1165*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1168]) /*AbstractArray::add*/;
+    variable[1168] = CALL_parser_tables___ParserTable___action_table_row1165(variable[1168])(variable[1168]) /*ParserTable::action_table_row1165*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1168]) /*AbstractArray::add*/;
     variable[1169] = variable[0];
-    variable[1169] = ((parser_tables___ParserTable___action_table_row1166_t)CALL(variable[1169],COLOR_parser_tables___ParserTable___action_table_row1166))(variable[1169]) /*ParserTable::action_table_row1166*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1169]) /*AbstractArray::add*/;
+    variable[1169] = CALL_parser_tables___ParserTable___action_table_row1166(variable[1169])(variable[1169]) /*ParserTable::action_table_row1166*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1169]) /*AbstractArray::add*/;
     variable[1170] = variable[0];
-    variable[1170] = ((parser_tables___ParserTable___action_table_row1167_t)CALL(variable[1170],COLOR_parser_tables___ParserTable___action_table_row1167))(variable[1170]) /*ParserTable::action_table_row1167*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1170]) /*AbstractArray::add*/;
+    variable[1170] = CALL_parser_tables___ParserTable___action_table_row1167(variable[1170])(variable[1170]) /*ParserTable::action_table_row1167*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1170]) /*AbstractArray::add*/;
     variable[1171] = variable[0];
-    variable[1171] = ((parser_tables___ParserTable___action_table_row1168_t)CALL(variable[1171],COLOR_parser_tables___ParserTable___action_table_row1168))(variable[1171]) /*ParserTable::action_table_row1168*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1171]) /*AbstractArray::add*/;
+    variable[1171] = CALL_parser_tables___ParserTable___action_table_row1168(variable[1171])(variable[1171]) /*ParserTable::action_table_row1168*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1171]) /*AbstractArray::add*/;
     variable[1172] = variable[0];
-    variable[1172] = ((parser_tables___ParserTable___action_table_row1169_t)CALL(variable[1172],COLOR_parser_tables___ParserTable___action_table_row1169))(variable[1172]) /*ParserTable::action_table_row1169*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1172]) /*AbstractArray::add*/;
+    variable[1172] = CALL_parser_tables___ParserTable___action_table_row1169(variable[1172])(variable[1172]) /*ParserTable::action_table_row1169*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1172]) /*AbstractArray::add*/;
     variable[1173] = variable[0];
-    variable[1173] = ((parser_tables___ParserTable___action_table_row1170_t)CALL(variable[1173],COLOR_parser_tables___ParserTable___action_table_row1170))(variable[1173]) /*ParserTable::action_table_row1170*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1173]) /*AbstractArray::add*/;
+    variable[1173] = CALL_parser_tables___ParserTable___action_table_row1170(variable[1173])(variable[1173]) /*ParserTable::action_table_row1170*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1173]) /*AbstractArray::add*/;
     variable[1174] = variable[0];
-    variable[1174] = ((parser_tables___ParserTable___action_table_row1171_t)CALL(variable[1174],COLOR_parser_tables___ParserTable___action_table_row1171))(variable[1174]) /*ParserTable::action_table_row1171*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1174]) /*AbstractArray::add*/;
+    variable[1174] = CALL_parser_tables___ParserTable___action_table_row1171(variable[1174])(variable[1174]) /*ParserTable::action_table_row1171*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1174]) /*AbstractArray::add*/;
     variable[1175] = variable[0];
-    variable[1175] = ((parser_tables___ParserTable___action_table_row1172_t)CALL(variable[1175],COLOR_parser_tables___ParserTable___action_table_row1172))(variable[1175]) /*ParserTable::action_table_row1172*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1175]) /*AbstractArray::add*/;
+    variable[1175] = CALL_parser_tables___ParserTable___action_table_row1172(variable[1175])(variable[1175]) /*ParserTable::action_table_row1172*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1175]) /*AbstractArray::add*/;
     variable[1176] = variable[0];
-    variable[1176] = ((parser_tables___ParserTable___action_table_row1173_t)CALL(variable[1176],COLOR_parser_tables___ParserTable___action_table_row1173))(variable[1176]) /*ParserTable::action_table_row1173*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1176]) /*AbstractArray::add*/;
+    variable[1176] = CALL_parser_tables___ParserTable___action_table_row1173(variable[1176])(variable[1176]) /*ParserTable::action_table_row1173*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1176]) /*AbstractArray::add*/;
     variable[1177] = variable[0];
-    variable[1177] = ((parser_tables___ParserTable___action_table_row1174_t)CALL(variable[1177],COLOR_parser_tables___ParserTable___action_table_row1174))(variable[1177]) /*ParserTable::action_table_row1174*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1177]) /*AbstractArray::add*/;
+    variable[1177] = CALL_parser_tables___ParserTable___action_table_row1174(variable[1177])(variable[1177]) /*ParserTable::action_table_row1174*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1177]) /*AbstractArray::add*/;
     variable[1178] = variable[0];
-    variable[1178] = ((parser_tables___ParserTable___action_table_row1175_t)CALL(variable[1178],COLOR_parser_tables___ParserTable___action_table_row1175))(variable[1178]) /*ParserTable::action_table_row1175*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1178]) /*AbstractArray::add*/;
+    variable[1178] = CALL_parser_tables___ParserTable___action_table_row1175(variable[1178])(variable[1178]) /*ParserTable::action_table_row1175*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1178]) /*AbstractArray::add*/;
     variable[1179] = variable[0];
-    variable[1179] = ((parser_tables___ParserTable___action_table_row1176_t)CALL(variable[1179],COLOR_parser_tables___ParserTable___action_table_row1176))(variable[1179]) /*ParserTable::action_table_row1176*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1179]) /*AbstractArray::add*/;
+    variable[1179] = CALL_parser_tables___ParserTable___action_table_row1176(variable[1179])(variable[1179]) /*ParserTable::action_table_row1176*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1179]) /*AbstractArray::add*/;
     variable[1180] = variable[0];
-    variable[1180] = ((parser_tables___ParserTable___action_table_row1177_t)CALL(variable[1180],COLOR_parser_tables___ParserTable___action_table_row1177))(variable[1180]) /*ParserTable::action_table_row1177*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1180]) /*AbstractArray::add*/;
+    variable[1180] = CALL_parser_tables___ParserTable___action_table_row1177(variable[1180])(variable[1180]) /*ParserTable::action_table_row1177*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1180]) /*AbstractArray::add*/;
     variable[1181] = variable[0];
-    variable[1181] = ((parser_tables___ParserTable___action_table_row1178_t)CALL(variable[1181],COLOR_parser_tables___ParserTable___action_table_row1178))(variable[1181]) /*ParserTable::action_table_row1178*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1181]) /*AbstractArray::add*/;
+    variable[1181] = CALL_parser_tables___ParserTable___action_table_row1178(variable[1181])(variable[1181]) /*ParserTable::action_table_row1178*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1181]) /*AbstractArray::add*/;
     variable[1182] = variable[0];
-    variable[1182] = ((parser_tables___ParserTable___action_table_row1179_t)CALL(variable[1182],COLOR_parser_tables___ParserTable___action_table_row1179))(variable[1182]) /*ParserTable::action_table_row1179*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1182]) /*AbstractArray::add*/;
+    variable[1182] = CALL_parser_tables___ParserTable___action_table_row1179(variable[1182])(variable[1182]) /*ParserTable::action_table_row1179*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1182]) /*AbstractArray::add*/;
     variable[1183] = variable[0];
-    variable[1183] = ((parser_tables___ParserTable___action_table_row1180_t)CALL(variable[1183],COLOR_parser_tables___ParserTable___action_table_row1180))(variable[1183]) /*ParserTable::action_table_row1180*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1183]) /*AbstractArray::add*/;
+    variable[1183] = CALL_parser_tables___ParserTable___action_table_row1180(variable[1183])(variable[1183]) /*ParserTable::action_table_row1180*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1183]) /*AbstractArray::add*/;
     variable[1184] = variable[0];
-    variable[1184] = ((parser_tables___ParserTable___action_table_row1181_t)CALL(variable[1184],COLOR_parser_tables___ParserTable___action_table_row1181))(variable[1184]) /*ParserTable::action_table_row1181*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1184]) /*AbstractArray::add*/;
+    variable[1184] = CALL_parser_tables___ParserTable___action_table_row1181(variable[1184])(variable[1184]) /*ParserTable::action_table_row1181*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1184]) /*AbstractArray::add*/;
     variable[1185] = variable[0];
-    variable[1185] = ((parser_tables___ParserTable___action_table_row1182_t)CALL(variable[1185],COLOR_parser_tables___ParserTable___action_table_row1182))(variable[1185]) /*ParserTable::action_table_row1182*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1185]) /*AbstractArray::add*/;
+    variable[1185] = CALL_parser_tables___ParserTable___action_table_row1182(variable[1185])(variable[1185]) /*ParserTable::action_table_row1182*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1185]) /*AbstractArray::add*/;
     variable[1186] = variable[0];
-    variable[1186] = ((parser_tables___ParserTable___action_table_row1183_t)CALL(variable[1186],COLOR_parser_tables___ParserTable___action_table_row1183))(variable[1186]) /*ParserTable::action_table_row1183*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1186]) /*AbstractArray::add*/;
+    variable[1186] = CALL_parser_tables___ParserTable___action_table_row1183(variable[1186])(variable[1186]) /*ParserTable::action_table_row1183*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1186]) /*AbstractArray::add*/;
     variable[1187] = variable[0];
-    variable[1187] = ((parser_tables___ParserTable___action_table_row1184_t)CALL(variable[1187],COLOR_parser_tables___ParserTable___action_table_row1184))(variable[1187]) /*ParserTable::action_table_row1184*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1187]) /*AbstractArray::add*/;
+    variable[1187] = CALL_parser_tables___ParserTable___action_table_row1184(variable[1187])(variable[1187]) /*ParserTable::action_table_row1184*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1187]) /*AbstractArray::add*/;
     variable[1188] = variable[0];
-    variable[1188] = ((parser_tables___ParserTable___action_table_row1185_t)CALL(variable[1188],COLOR_parser_tables___ParserTable___action_table_row1185))(variable[1188]) /*ParserTable::action_table_row1185*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1188]) /*AbstractArray::add*/;
+    variable[1188] = CALL_parser_tables___ParserTable___action_table_row1185(variable[1188])(variable[1188]) /*ParserTable::action_table_row1185*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1188]) /*AbstractArray::add*/;
     variable[1189] = variable[0];
-    variable[1189] = ((parser_tables___ParserTable___action_table_row1186_t)CALL(variable[1189],COLOR_parser_tables___ParserTable___action_table_row1186))(variable[1189]) /*ParserTable::action_table_row1186*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1189]) /*AbstractArray::add*/;
+    variable[1189] = CALL_parser_tables___ParserTable___action_table_row1186(variable[1189])(variable[1189]) /*ParserTable::action_table_row1186*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1189]) /*AbstractArray::add*/;
     variable[1190] = variable[0];
-    variable[1190] = ((parser_tables___ParserTable___action_table_row1187_t)CALL(variable[1190],COLOR_parser_tables___ParserTable___action_table_row1187))(variable[1190]) /*ParserTable::action_table_row1187*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1190]) /*AbstractArray::add*/;
+    variable[1190] = CALL_parser_tables___ParserTable___action_table_row1187(variable[1190])(variable[1190]) /*ParserTable::action_table_row1187*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1190]) /*AbstractArray::add*/;
     variable[1191] = variable[0];
-    variable[1191] = ((parser_tables___ParserTable___action_table_row1188_t)CALL(variable[1191],COLOR_parser_tables___ParserTable___action_table_row1188))(variable[1191]) /*ParserTable::action_table_row1188*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1191]) /*AbstractArray::add*/;
+    variable[1191] = CALL_parser_tables___ParserTable___action_table_row1188(variable[1191])(variable[1191]) /*ParserTable::action_table_row1188*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1191]) /*AbstractArray::add*/;
     variable[1192] = variable[0];
-    variable[1192] = ((parser_tables___ParserTable___action_table_row1189_t)CALL(variable[1192],COLOR_parser_tables___ParserTable___action_table_row1189))(variable[1192]) /*ParserTable::action_table_row1189*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1192]) /*AbstractArray::add*/;
+    variable[1192] = CALL_parser_tables___ParserTable___action_table_row1189(variable[1192])(variable[1192]) /*ParserTable::action_table_row1189*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1192]) /*AbstractArray::add*/;
     variable[1193] = variable[0];
-    variable[1193] = ((parser_tables___ParserTable___action_table_row1190_t)CALL(variable[1193],COLOR_parser_tables___ParserTable___action_table_row1190))(variable[1193]) /*ParserTable::action_table_row1190*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1193]) /*AbstractArray::add*/;
+    variable[1193] = CALL_parser_tables___ParserTable___action_table_row1190(variable[1193])(variable[1193]) /*ParserTable::action_table_row1190*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1193]) /*AbstractArray::add*/;
     variable[1194] = variable[0];
-    variable[1194] = ((parser_tables___ParserTable___action_table_row1191_t)CALL(variable[1194],COLOR_parser_tables___ParserTable___action_table_row1191))(variable[1194]) /*ParserTable::action_table_row1191*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1194]) /*AbstractArray::add*/;
+    variable[1194] = CALL_parser_tables___ParserTable___action_table_row1191(variable[1194])(variable[1194]) /*ParserTable::action_table_row1191*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1194]) /*AbstractArray::add*/;
     variable[1195] = variable[0];
-    variable[1195] = ((parser_tables___ParserTable___action_table_row1192_t)CALL(variable[1195],COLOR_parser_tables___ParserTable___action_table_row1192))(variable[1195]) /*ParserTable::action_table_row1192*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1195]) /*AbstractArray::add*/;
+    variable[1195] = CALL_parser_tables___ParserTable___action_table_row1192(variable[1195])(variable[1195]) /*ParserTable::action_table_row1192*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1195]) /*AbstractArray::add*/;
     variable[1196] = variable[0];
-    variable[1196] = ((parser_tables___ParserTable___action_table_row1193_t)CALL(variable[1196],COLOR_parser_tables___ParserTable___action_table_row1193))(variable[1196]) /*ParserTable::action_table_row1193*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1196]) /*AbstractArray::add*/;
+    variable[1196] = CALL_parser_tables___ParserTable___action_table_row1193(variable[1196])(variable[1196]) /*ParserTable::action_table_row1193*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1196]) /*AbstractArray::add*/;
     variable[1197] = variable[0];
-    variable[1197] = ((parser_tables___ParserTable___action_table_row1194_t)CALL(variable[1197],COLOR_parser_tables___ParserTable___action_table_row1194))(variable[1197]) /*ParserTable::action_table_row1194*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1197]) /*AbstractArray::add*/;
+    variable[1197] = CALL_parser_tables___ParserTable___action_table_row1194(variable[1197])(variable[1197]) /*ParserTable::action_table_row1194*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1197]) /*AbstractArray::add*/;
     variable[1198] = variable[0];
-    variable[1198] = ((parser_tables___ParserTable___action_table_row1195_t)CALL(variable[1198],COLOR_parser_tables___ParserTable___action_table_row1195))(variable[1198]) /*ParserTable::action_table_row1195*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1198]) /*AbstractArray::add*/;
+    variable[1198] = CALL_parser_tables___ParserTable___action_table_row1195(variable[1198])(variable[1198]) /*ParserTable::action_table_row1195*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1198]) /*AbstractArray::add*/;
     variable[1199] = variable[0];
-    variable[1199] = ((parser_tables___ParserTable___action_table_row1196_t)CALL(variable[1199],COLOR_parser_tables___ParserTable___action_table_row1196))(variable[1199]) /*ParserTable::action_table_row1196*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1199]) /*AbstractArray::add*/;
+    variable[1199] = CALL_parser_tables___ParserTable___action_table_row1196(variable[1199])(variable[1199]) /*ParserTable::action_table_row1196*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1199]) /*AbstractArray::add*/;
     variable[1200] = variable[0];
-    variable[1200] = ((parser_tables___ParserTable___action_table_row1197_t)CALL(variable[1200],COLOR_parser_tables___ParserTable___action_table_row1197))(variable[1200]) /*ParserTable::action_table_row1197*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1200]) /*AbstractArray::add*/;
+    variable[1200] = CALL_parser_tables___ParserTable___action_table_row1197(variable[1200])(variable[1200]) /*ParserTable::action_table_row1197*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1200]) /*AbstractArray::add*/;
     variable[1201] = variable[0];
-    variable[1201] = ((parser_tables___ParserTable___action_table_row1198_t)CALL(variable[1201],COLOR_parser_tables___ParserTable___action_table_row1198))(variable[1201]) /*ParserTable::action_table_row1198*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1201]) /*AbstractArray::add*/;
+    variable[1201] = CALL_parser_tables___ParserTable___action_table_row1198(variable[1201])(variable[1201]) /*ParserTable::action_table_row1198*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1201]) /*AbstractArray::add*/;
     variable[1202] = variable[0];
-    variable[1202] = ((parser_tables___ParserTable___action_table_row1199_t)CALL(variable[1202],COLOR_parser_tables___ParserTable___action_table_row1199))(variable[1202]) /*ParserTable::action_table_row1199*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1202]) /*AbstractArray::add*/;
+    variable[1202] = CALL_parser_tables___ParserTable___action_table_row1199(variable[1202])(variable[1202]) /*ParserTable::action_table_row1199*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1202]) /*AbstractArray::add*/;
     variable[1203] = variable[0];
-    variable[1203] = ((parser_tables___ParserTable___action_table_row1200_t)CALL(variable[1203],COLOR_parser_tables___ParserTable___action_table_row1200))(variable[1203]) /*ParserTable::action_table_row1200*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1203]) /*AbstractArray::add*/;
+    variable[1203] = CALL_parser_tables___ParserTable___action_table_row1200(variable[1203])(variable[1203]) /*ParserTable::action_table_row1200*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1203]) /*AbstractArray::add*/;
     variable[1204] = variable[0];
-    variable[1204] = ((parser_tables___ParserTable___action_table_row1201_t)CALL(variable[1204],COLOR_parser_tables___ParserTable___action_table_row1201))(variable[1204]) /*ParserTable::action_table_row1201*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1204]) /*AbstractArray::add*/;
+    variable[1204] = CALL_parser_tables___ParserTable___action_table_row1201(variable[1204])(variable[1204]) /*ParserTable::action_table_row1201*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1204]) /*AbstractArray::add*/;
     variable[1205] = variable[0];
-    variable[1205] = ((parser_tables___ParserTable___action_table_row1202_t)CALL(variable[1205],COLOR_parser_tables___ParserTable___action_table_row1202))(variable[1205]) /*ParserTable::action_table_row1202*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1205]) /*AbstractArray::add*/;
+    variable[1205] = CALL_parser_tables___ParserTable___action_table_row1202(variable[1205])(variable[1205]) /*ParserTable::action_table_row1202*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1205]) /*AbstractArray::add*/;
     variable[1206] = variable[0];
-    variable[1206] = ((parser_tables___ParserTable___action_table_row1203_t)CALL(variable[1206],COLOR_parser_tables___ParserTable___action_table_row1203))(variable[1206]) /*ParserTable::action_table_row1203*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1206]) /*AbstractArray::add*/;
+    variable[1206] = CALL_parser_tables___ParserTable___action_table_row1203(variable[1206])(variable[1206]) /*ParserTable::action_table_row1203*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1206]) /*AbstractArray::add*/;
     variable[1207] = variable[0];
-    variable[1207] = ((parser_tables___ParserTable___action_table_row1204_t)CALL(variable[1207],COLOR_parser_tables___ParserTable___action_table_row1204))(variable[1207]) /*ParserTable::action_table_row1204*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1207]) /*AbstractArray::add*/;
+    variable[1207] = CALL_parser_tables___ParserTable___action_table_row1204(variable[1207])(variable[1207]) /*ParserTable::action_table_row1204*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1207]) /*AbstractArray::add*/;
     variable[1208] = variable[0];
-    variable[1208] = ((parser_tables___ParserTable___action_table_row1205_t)CALL(variable[1208],COLOR_parser_tables___ParserTable___action_table_row1205))(variable[1208]) /*ParserTable::action_table_row1205*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1208]) /*AbstractArray::add*/;
+    variable[1208] = CALL_parser_tables___ParserTable___action_table_row1205(variable[1208])(variable[1208]) /*ParserTable::action_table_row1205*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1208]) /*AbstractArray::add*/;
     variable[1209] = variable[0];
-    variable[1209] = ((parser_tables___ParserTable___action_table_row1206_t)CALL(variable[1209],COLOR_parser_tables___ParserTable___action_table_row1206))(variable[1209]) /*ParserTable::action_table_row1206*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1209]) /*AbstractArray::add*/;
+    variable[1209] = CALL_parser_tables___ParserTable___action_table_row1206(variable[1209])(variable[1209]) /*ParserTable::action_table_row1206*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1209]) /*AbstractArray::add*/;
     variable[1210] = variable[0];
-    variable[1210] = ((parser_tables___ParserTable___action_table_row1207_t)CALL(variable[1210],COLOR_parser_tables___ParserTable___action_table_row1207))(variable[1210]) /*ParserTable::action_table_row1207*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1210]) /*AbstractArray::add*/;
+    variable[1210] = CALL_parser_tables___ParserTable___action_table_row1207(variable[1210])(variable[1210]) /*ParserTable::action_table_row1207*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1210]) /*AbstractArray::add*/;
     variable[1211] = variable[0];
-    variable[1211] = ((parser_tables___ParserTable___action_table_row1208_t)CALL(variable[1211],COLOR_parser_tables___ParserTable___action_table_row1208))(variable[1211]) /*ParserTable::action_table_row1208*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1211]) /*AbstractArray::add*/;
+    variable[1211] = CALL_parser_tables___ParserTable___action_table_row1208(variable[1211])(variable[1211]) /*ParserTable::action_table_row1208*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1211]) /*AbstractArray::add*/;
     variable[1212] = variable[0];
-    variable[1212] = ((parser_tables___ParserTable___action_table_row1209_t)CALL(variable[1212],COLOR_parser_tables___ParserTable___action_table_row1209))(variable[1212]) /*ParserTable::action_table_row1209*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1212]) /*AbstractArray::add*/;
+    variable[1212] = CALL_parser_tables___ParserTable___action_table_row1209(variable[1212])(variable[1212]) /*ParserTable::action_table_row1209*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1212]) /*AbstractArray::add*/;
     variable[1213] = variable[0];
-    variable[1213] = ((parser_tables___ParserTable___action_table_row1210_t)CALL(variable[1213],COLOR_parser_tables___ParserTable___action_table_row1210))(variable[1213]) /*ParserTable::action_table_row1210*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1213]) /*AbstractArray::add*/;
+    variable[1213] = CALL_parser_tables___ParserTable___action_table_row1210(variable[1213])(variable[1213]) /*ParserTable::action_table_row1210*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1213]) /*AbstractArray::add*/;
     variable[1214] = variable[0];
-    variable[1214] = ((parser_tables___ParserTable___action_table_row1211_t)CALL(variable[1214],COLOR_parser_tables___ParserTable___action_table_row1211))(variable[1214]) /*ParserTable::action_table_row1211*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1214]) /*AbstractArray::add*/;
+    variable[1214] = CALL_parser_tables___ParserTable___action_table_row1211(variable[1214])(variable[1214]) /*ParserTable::action_table_row1211*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1214]) /*AbstractArray::add*/;
     variable[1215] = variable[0];
-    variable[1215] = ((parser_tables___ParserTable___action_table_row1212_t)CALL(variable[1215],COLOR_parser_tables___ParserTable___action_table_row1212))(variable[1215]) /*ParserTable::action_table_row1212*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1215]) /*AbstractArray::add*/;
+    variable[1215] = CALL_parser_tables___ParserTable___action_table_row1212(variable[1215])(variable[1215]) /*ParserTable::action_table_row1212*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1215]) /*AbstractArray::add*/;
     variable[1216] = variable[0];
-    variable[1216] = ((parser_tables___ParserTable___action_table_row1213_t)CALL(variable[1216],COLOR_parser_tables___ParserTable___action_table_row1213))(variable[1216]) /*ParserTable::action_table_row1213*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1216]) /*AbstractArray::add*/;
+    variable[1216] = CALL_parser_tables___ParserTable___action_table_row1213(variable[1216])(variable[1216]) /*ParserTable::action_table_row1213*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1216]) /*AbstractArray::add*/;
     variable[1217] = variable[0];
-    variable[1217] = ((parser_tables___ParserTable___action_table_row1214_t)CALL(variable[1217],COLOR_parser_tables___ParserTable___action_table_row1214))(variable[1217]) /*ParserTable::action_table_row1214*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1217]) /*AbstractArray::add*/;
+    variable[1217] = CALL_parser_tables___ParserTable___action_table_row1214(variable[1217])(variable[1217]) /*ParserTable::action_table_row1214*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1217]) /*AbstractArray::add*/;
     variable[1218] = variable[0];
-    variable[1218] = ((parser_tables___ParserTable___action_table_row1215_t)CALL(variable[1218],COLOR_parser_tables___ParserTable___action_table_row1215))(variable[1218]) /*ParserTable::action_table_row1215*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1218]) /*AbstractArray::add*/;
+    variable[1218] = CALL_parser_tables___ParserTable___action_table_row1215(variable[1218])(variable[1218]) /*ParserTable::action_table_row1215*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1218]) /*AbstractArray::add*/;
     variable[1219] = variable[0];
-    variable[1219] = ((parser_tables___ParserTable___action_table_row1216_t)CALL(variable[1219],COLOR_parser_tables___ParserTable___action_table_row1216))(variable[1219]) /*ParserTable::action_table_row1216*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1219]) /*AbstractArray::add*/;
+    variable[1219] = CALL_parser_tables___ParserTable___action_table_row1216(variable[1219])(variable[1219]) /*ParserTable::action_table_row1216*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1219]) /*AbstractArray::add*/;
     variable[1220] = variable[0];
-    variable[1220] = ((parser_tables___ParserTable___action_table_row1217_t)CALL(variable[1220],COLOR_parser_tables___ParserTable___action_table_row1217))(variable[1220]) /*ParserTable::action_table_row1217*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1220]) /*AbstractArray::add*/;
+    variable[1220] = CALL_parser_tables___ParserTable___action_table_row1217(variable[1220])(variable[1220]) /*ParserTable::action_table_row1217*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1220]) /*AbstractArray::add*/;
     variable[1221] = variable[0];
-    variable[1221] = ((parser_tables___ParserTable___action_table_row1218_t)CALL(variable[1221],COLOR_parser_tables___ParserTable___action_table_row1218))(variable[1221]) /*ParserTable::action_table_row1218*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1221]) /*AbstractArray::add*/;
+    variable[1221] = CALL_parser_tables___ParserTable___action_table_row1218(variable[1221])(variable[1221]) /*ParserTable::action_table_row1218*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1221]) /*AbstractArray::add*/;
     variable[1222] = variable[0];
-    variable[1222] = ((parser_tables___ParserTable___action_table_row1219_t)CALL(variable[1222],COLOR_parser_tables___ParserTable___action_table_row1219))(variable[1222]) /*ParserTable::action_table_row1219*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1222]) /*AbstractArray::add*/;
+    variable[1222] = CALL_parser_tables___ParserTable___action_table_row1219(variable[1222])(variable[1222]) /*ParserTable::action_table_row1219*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1222]) /*AbstractArray::add*/;
     variable[1223] = variable[0];
-    variable[1223] = ((parser_tables___ParserTable___action_table_row1220_t)CALL(variable[1223],COLOR_parser_tables___ParserTable___action_table_row1220))(variable[1223]) /*ParserTable::action_table_row1220*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1223]) /*AbstractArray::add*/;
+    variable[1223] = CALL_parser_tables___ParserTable___action_table_row1220(variable[1223])(variable[1223]) /*ParserTable::action_table_row1220*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1223]) /*AbstractArray::add*/;
     variable[1224] = variable[0];
-    variable[1224] = ((parser_tables___ParserTable___action_table_row1221_t)CALL(variable[1224],COLOR_parser_tables___ParserTable___action_table_row1221))(variable[1224]) /*ParserTable::action_table_row1221*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1224]) /*AbstractArray::add*/;
+    variable[1224] = CALL_parser_tables___ParserTable___action_table_row1221(variable[1224])(variable[1224]) /*ParserTable::action_table_row1221*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1224]) /*AbstractArray::add*/;
     variable[1225] = variable[0];
-    variable[1225] = ((parser_tables___ParserTable___action_table_row1222_t)CALL(variable[1225],COLOR_parser_tables___ParserTable___action_table_row1222))(variable[1225]) /*ParserTable::action_table_row1222*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1225]) /*AbstractArray::add*/;
+    variable[1225] = CALL_parser_tables___ParserTable___action_table_row1222(variable[1225])(variable[1225]) /*ParserTable::action_table_row1222*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1225]) /*AbstractArray::add*/;
     variable[1226] = variable[0];
-    variable[1226] = ((parser_tables___ParserTable___action_table_row1223_t)CALL(variable[1226],COLOR_parser_tables___ParserTable___action_table_row1223))(variable[1226]) /*ParserTable::action_table_row1223*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1226]) /*AbstractArray::add*/;
+    variable[1226] = CALL_parser_tables___ParserTable___action_table_row1223(variable[1226])(variable[1226]) /*ParserTable::action_table_row1223*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1226]) /*AbstractArray::add*/;
     variable[1227] = variable[0];
-    variable[1227] = ((parser_tables___ParserTable___action_table_row1224_t)CALL(variable[1227],COLOR_parser_tables___ParserTable___action_table_row1224))(variable[1227]) /*ParserTable::action_table_row1224*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1227]) /*AbstractArray::add*/;
+    variable[1227] = CALL_parser_tables___ParserTable___action_table_row1224(variable[1227])(variable[1227]) /*ParserTable::action_table_row1224*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1227]) /*AbstractArray::add*/;
     variable[1228] = variable[0];
-    variable[1228] = ((parser_tables___ParserTable___action_table_row1225_t)CALL(variable[1228],COLOR_parser_tables___ParserTable___action_table_row1225))(variable[1228]) /*ParserTable::action_table_row1225*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1228]) /*AbstractArray::add*/;
+    variable[1228] = CALL_parser_tables___ParserTable___action_table_row1225(variable[1228])(variable[1228]) /*ParserTable::action_table_row1225*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1228]) /*AbstractArray::add*/;
     variable[1229] = variable[0];
-    variable[1229] = ((parser_tables___ParserTable___action_table_row1226_t)CALL(variable[1229],COLOR_parser_tables___ParserTable___action_table_row1226))(variable[1229]) /*ParserTable::action_table_row1226*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1229]) /*AbstractArray::add*/;
+    variable[1229] = CALL_parser_tables___ParserTable___action_table_row1226(variable[1229])(variable[1229]) /*ParserTable::action_table_row1226*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1229]) /*AbstractArray::add*/;
     variable[1230] = variable[0];
-    variable[1230] = ((parser_tables___ParserTable___action_table_row1227_t)CALL(variable[1230],COLOR_parser_tables___ParserTable___action_table_row1227))(variable[1230]) /*ParserTable::action_table_row1227*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1230]) /*AbstractArray::add*/;
+    variable[1230] = CALL_parser_tables___ParserTable___action_table_row1227(variable[1230])(variable[1230]) /*ParserTable::action_table_row1227*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1230]) /*AbstractArray::add*/;
     variable[1231] = variable[0];
-    variable[1231] = ((parser_tables___ParserTable___action_table_row1228_t)CALL(variable[1231],COLOR_parser_tables___ParserTable___action_table_row1228))(variable[1231]) /*ParserTable::action_table_row1228*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1231]) /*AbstractArray::add*/;
+    variable[1231] = CALL_parser_tables___ParserTable___action_table_row1228(variable[1231])(variable[1231]) /*ParserTable::action_table_row1228*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1231]) /*AbstractArray::add*/;
     variable[1232] = variable[0];
-    variable[1232] = ((parser_tables___ParserTable___action_table_row1229_t)CALL(variable[1232],COLOR_parser_tables___ParserTable___action_table_row1229))(variable[1232]) /*ParserTable::action_table_row1229*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1232]) /*AbstractArray::add*/;
+    variable[1232] = CALL_parser_tables___ParserTable___action_table_row1229(variable[1232])(variable[1232]) /*ParserTable::action_table_row1229*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1232]) /*AbstractArray::add*/;
     variable[1233] = variable[0];
-    variable[1233] = ((parser_tables___ParserTable___action_table_row1230_t)CALL(variable[1233],COLOR_parser_tables___ParserTable___action_table_row1230))(variable[1233]) /*ParserTable::action_table_row1230*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1233]) /*AbstractArray::add*/;
+    variable[1233] = CALL_parser_tables___ParserTable___action_table_row1230(variable[1233])(variable[1233]) /*ParserTable::action_table_row1230*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1233]) /*AbstractArray::add*/;
     variable[1234] = variable[0];
-    variable[1234] = ((parser_tables___ParserTable___action_table_row1231_t)CALL(variable[1234],COLOR_parser_tables___ParserTable___action_table_row1231))(variable[1234]) /*ParserTable::action_table_row1231*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1234]) /*AbstractArray::add*/;
+    variable[1234] = CALL_parser_tables___ParserTable___action_table_row1231(variable[1234])(variable[1234]) /*ParserTable::action_table_row1231*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1234]) /*AbstractArray::add*/;
     variable[1235] = variable[0];
-    variable[1235] = ((parser_tables___ParserTable___action_table_row1232_t)CALL(variable[1235],COLOR_parser_tables___ParserTable___action_table_row1232))(variable[1235]) /*ParserTable::action_table_row1232*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1235]) /*AbstractArray::add*/;
+    variable[1235] = CALL_parser_tables___ParserTable___action_table_row1232(variable[1235])(variable[1235]) /*ParserTable::action_table_row1232*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1235]) /*AbstractArray::add*/;
     variable[1236] = variable[0];
-    variable[1236] = ((parser_tables___ParserTable___action_table_row1233_t)CALL(variable[1236],COLOR_parser_tables___ParserTable___action_table_row1233))(variable[1236]) /*ParserTable::action_table_row1233*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1236]) /*AbstractArray::add*/;
+    variable[1236] = CALL_parser_tables___ParserTable___action_table_row1233(variable[1236])(variable[1236]) /*ParserTable::action_table_row1233*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1236]) /*AbstractArray::add*/;
     variable[1237] = variable[0];
-    variable[1237] = ((parser_tables___ParserTable___action_table_row1234_t)CALL(variable[1237],COLOR_parser_tables___ParserTable___action_table_row1234))(variable[1237]) /*ParserTable::action_table_row1234*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1237]) /*AbstractArray::add*/;
+    variable[1237] = CALL_parser_tables___ParserTable___action_table_row1234(variable[1237])(variable[1237]) /*ParserTable::action_table_row1234*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1237]) /*AbstractArray::add*/;
     variable[1238] = variable[0];
-    variable[1238] = ((parser_tables___ParserTable___action_table_row1235_t)CALL(variable[1238],COLOR_parser_tables___ParserTable___action_table_row1235))(variable[1238]) /*ParserTable::action_table_row1235*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1238]) /*AbstractArray::add*/;
+    variable[1238] = CALL_parser_tables___ParserTable___action_table_row1235(variable[1238])(variable[1238]) /*ParserTable::action_table_row1235*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1238]) /*AbstractArray::add*/;
     variable[1239] = variable[0];
-    variable[1239] = ((parser_tables___ParserTable___action_table_row1236_t)CALL(variable[1239],COLOR_parser_tables___ParserTable___action_table_row1236))(variable[1239]) /*ParserTable::action_table_row1236*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1239]) /*AbstractArray::add*/;
+    variable[1239] = CALL_parser_tables___ParserTable___action_table_row1236(variable[1239])(variable[1239]) /*ParserTable::action_table_row1236*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1239]) /*AbstractArray::add*/;
     variable[1240] = variable[0];
-    variable[1240] = ((parser_tables___ParserTable___action_table_row1237_t)CALL(variable[1240],COLOR_parser_tables___ParserTable___action_table_row1237))(variable[1240]) /*ParserTable::action_table_row1237*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1240]) /*AbstractArray::add*/;
+    variable[1240] = CALL_parser_tables___ParserTable___action_table_row1237(variable[1240])(variable[1240]) /*ParserTable::action_table_row1237*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1240]) /*AbstractArray::add*/;
     variable[1241] = variable[0];
-    variable[1241] = ((parser_tables___ParserTable___action_table_row1238_t)CALL(variable[1241],COLOR_parser_tables___ParserTable___action_table_row1238))(variable[1241]) /*ParserTable::action_table_row1238*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1241]) /*AbstractArray::add*/;
+    variable[1241] = CALL_parser_tables___ParserTable___action_table_row1238(variable[1241])(variable[1241]) /*ParserTable::action_table_row1238*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1241]) /*AbstractArray::add*/;
     variable[1242] = variable[0];
-    variable[1242] = ((parser_tables___ParserTable___action_table_row1239_t)CALL(variable[1242],COLOR_parser_tables___ParserTable___action_table_row1239))(variable[1242]) /*ParserTable::action_table_row1239*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1242]) /*AbstractArray::add*/;
+    variable[1242] = CALL_parser_tables___ParserTable___action_table_row1239(variable[1242])(variable[1242]) /*ParserTable::action_table_row1239*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1242]) /*AbstractArray::add*/;
     variable[1243] = variable[0];
-    variable[1243] = ((parser_tables___ParserTable___action_table_row1240_t)CALL(variable[1243],COLOR_parser_tables___ParserTable___action_table_row1240))(variable[1243]) /*ParserTable::action_table_row1240*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1243]) /*AbstractArray::add*/;
+    variable[1243] = CALL_parser_tables___ParserTable___action_table_row1240(variable[1243])(variable[1243]) /*ParserTable::action_table_row1240*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1243]) /*AbstractArray::add*/;
     variable[1244] = variable[0];
-    variable[1244] = ((parser_tables___ParserTable___action_table_row1241_t)CALL(variable[1244],COLOR_parser_tables___ParserTable___action_table_row1241))(variable[1244]) /*ParserTable::action_table_row1241*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1244]) /*AbstractArray::add*/;
+    variable[1244] = CALL_parser_tables___ParserTable___action_table_row1241(variable[1244])(variable[1244]) /*ParserTable::action_table_row1241*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1244]) /*AbstractArray::add*/;
     variable[1245] = variable[0];
-    variable[1245] = ((parser_tables___ParserTable___action_table_row1242_t)CALL(variable[1245],COLOR_parser_tables___ParserTable___action_table_row1242))(variable[1245]) /*ParserTable::action_table_row1242*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1245]) /*AbstractArray::add*/;
+    variable[1245] = CALL_parser_tables___ParserTable___action_table_row1242(variable[1245])(variable[1245]) /*ParserTable::action_table_row1242*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1245]) /*AbstractArray::add*/;
     variable[1246] = variable[0];
-    variable[1246] = ((parser_tables___ParserTable___action_table_row1243_t)CALL(variable[1246],COLOR_parser_tables___ParserTable___action_table_row1243))(variable[1246]) /*ParserTable::action_table_row1243*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1246]) /*AbstractArray::add*/;
+    variable[1246] = CALL_parser_tables___ParserTable___action_table_row1243(variable[1246])(variable[1246]) /*ParserTable::action_table_row1243*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1246]) /*AbstractArray::add*/;
     variable[1247] = variable[0];
-    variable[1247] = ((parser_tables___ParserTable___action_table_row1244_t)CALL(variable[1247],COLOR_parser_tables___ParserTable___action_table_row1244))(variable[1247]) /*ParserTable::action_table_row1244*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1247]) /*AbstractArray::add*/;
+    variable[1247] = CALL_parser_tables___ParserTable___action_table_row1244(variable[1247])(variable[1247]) /*ParserTable::action_table_row1244*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1247]) /*AbstractArray::add*/;
     variable[1248] = variable[0];
-    variable[1248] = ((parser_tables___ParserTable___action_table_row1245_t)CALL(variable[1248],COLOR_parser_tables___ParserTable___action_table_row1245))(variable[1248]) /*ParserTable::action_table_row1245*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1248]) /*AbstractArray::add*/;
+    variable[1248] = CALL_parser_tables___ParserTable___action_table_row1245(variable[1248])(variable[1248]) /*ParserTable::action_table_row1245*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1248]) /*AbstractArray::add*/;
     variable[1249] = variable[0];
-    variable[1249] = ((parser_tables___ParserTable___action_table_row1246_t)CALL(variable[1249],COLOR_parser_tables___ParserTable___action_table_row1246))(variable[1249]) /*ParserTable::action_table_row1246*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1249]) /*AbstractArray::add*/;
+    variable[1249] = CALL_parser_tables___ParserTable___action_table_row1246(variable[1249])(variable[1249]) /*ParserTable::action_table_row1246*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1249]) /*AbstractArray::add*/;
     variable[1250] = variable[0];
-    variable[1250] = ((parser_tables___ParserTable___action_table_row1247_t)CALL(variable[1250],COLOR_parser_tables___ParserTable___action_table_row1247))(variable[1250]) /*ParserTable::action_table_row1247*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1250]) /*AbstractArray::add*/;
+    variable[1250] = CALL_parser_tables___ParserTable___action_table_row1247(variable[1250])(variable[1250]) /*ParserTable::action_table_row1247*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1250]) /*AbstractArray::add*/;
     variable[1251] = variable[0];
-    variable[1251] = ((parser_tables___ParserTable___action_table_row1248_t)CALL(variable[1251],COLOR_parser_tables___ParserTable___action_table_row1248))(variable[1251]) /*ParserTable::action_table_row1248*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1251]) /*AbstractArray::add*/;
+    variable[1251] = CALL_parser_tables___ParserTable___action_table_row1248(variable[1251])(variable[1251]) /*ParserTable::action_table_row1248*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1251]) /*AbstractArray::add*/;
     variable[1252] = variable[0];
-    variable[1252] = ((parser_tables___ParserTable___action_table_row1249_t)CALL(variable[1252],COLOR_parser_tables___ParserTable___action_table_row1249))(variable[1252]) /*ParserTable::action_table_row1249*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1252]) /*AbstractArray::add*/;
+    variable[1252] = CALL_parser_tables___ParserTable___action_table_row1249(variable[1252])(variable[1252]) /*ParserTable::action_table_row1249*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1252]) /*AbstractArray::add*/;
     variable[1253] = variable[0];
-    variable[1253] = ((parser_tables___ParserTable___action_table_row1250_t)CALL(variable[1253],COLOR_parser_tables___ParserTable___action_table_row1250))(variable[1253]) /*ParserTable::action_table_row1250*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1253]) /*AbstractArray::add*/;
+    variable[1253] = CALL_parser_tables___ParserTable___action_table_row1250(variable[1253])(variable[1253]) /*ParserTable::action_table_row1250*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1253]) /*AbstractArray::add*/;
     variable[1254] = variable[0];
-    variable[1254] = ((parser_tables___ParserTable___action_table_row1251_t)CALL(variable[1254],COLOR_parser_tables___ParserTable___action_table_row1251))(variable[1254]) /*ParserTable::action_table_row1251*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1254]) /*AbstractArray::add*/;
+    variable[1254] = CALL_parser_tables___ParserTable___action_table_row1251(variable[1254])(variable[1254]) /*ParserTable::action_table_row1251*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1254]) /*AbstractArray::add*/;
     variable[1255] = variable[0];
-    variable[1255] = ((parser_tables___ParserTable___action_table_row1252_t)CALL(variable[1255],COLOR_parser_tables___ParserTable___action_table_row1252))(variable[1255]) /*ParserTable::action_table_row1252*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1255]) /*AbstractArray::add*/;
+    variable[1255] = CALL_parser_tables___ParserTable___action_table_row1252(variable[1255])(variable[1255]) /*ParserTable::action_table_row1252*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1255]) /*AbstractArray::add*/;
     variable[1256] = variable[0];
-    variable[1256] = ((parser_tables___ParserTable___action_table_row1253_t)CALL(variable[1256],COLOR_parser_tables___ParserTable___action_table_row1253))(variable[1256]) /*ParserTable::action_table_row1253*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1256]) /*AbstractArray::add*/;
+    variable[1256] = CALL_parser_tables___ParserTable___action_table_row1253(variable[1256])(variable[1256]) /*ParserTable::action_table_row1253*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1256]) /*AbstractArray::add*/;
     variable[1257] = variable[0];
-    variable[1257] = ((parser_tables___ParserTable___action_table_row1254_t)CALL(variable[1257],COLOR_parser_tables___ParserTable___action_table_row1254))(variable[1257]) /*ParserTable::action_table_row1254*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1257]) /*AbstractArray::add*/;
+    variable[1257] = CALL_parser_tables___ParserTable___action_table_row1254(variable[1257])(variable[1257]) /*ParserTable::action_table_row1254*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1257]) /*AbstractArray::add*/;
     variable[1258] = variable[0];
-    variable[1258] = ((parser_tables___ParserTable___action_table_row1255_t)CALL(variable[1258],COLOR_parser_tables___ParserTable___action_table_row1255))(variable[1258]) /*ParserTable::action_table_row1255*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1258]) /*AbstractArray::add*/;
+    variable[1258] = CALL_parser_tables___ParserTable___action_table_row1255(variable[1258])(variable[1258]) /*ParserTable::action_table_row1255*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1258]) /*AbstractArray::add*/;
     variable[1259] = variable[0];
-    variable[1259] = ((parser_tables___ParserTable___action_table_row1256_t)CALL(variable[1259],COLOR_parser_tables___ParserTable___action_table_row1256))(variable[1259]) /*ParserTable::action_table_row1256*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1259]) /*AbstractArray::add*/;
+    variable[1259] = CALL_parser_tables___ParserTable___action_table_row1256(variable[1259])(variable[1259]) /*ParserTable::action_table_row1256*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1259]) /*AbstractArray::add*/;
     variable[1260] = variable[0];
-    variable[1260] = ((parser_tables___ParserTable___action_table_row1257_t)CALL(variable[1260],COLOR_parser_tables___ParserTable___action_table_row1257))(variable[1260]) /*ParserTable::action_table_row1257*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1260]) /*AbstractArray::add*/;
+    variable[1260] = CALL_parser_tables___ParserTable___action_table_row1257(variable[1260])(variable[1260]) /*ParserTable::action_table_row1257*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1260]) /*AbstractArray::add*/;
     variable[1261] = variable[0];
-    variable[1261] = ((parser_tables___ParserTable___action_table_row1258_t)CALL(variable[1261],COLOR_parser_tables___ParserTable___action_table_row1258))(variable[1261]) /*ParserTable::action_table_row1258*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1261]) /*AbstractArray::add*/;
+    variable[1261] = CALL_parser_tables___ParserTable___action_table_row1258(variable[1261])(variable[1261]) /*ParserTable::action_table_row1258*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1261]) /*AbstractArray::add*/;
     variable[1262] = variable[0];
-    variable[1262] = ((parser_tables___ParserTable___action_table_row1259_t)CALL(variable[1262],COLOR_parser_tables___ParserTable___action_table_row1259))(variable[1262]) /*ParserTable::action_table_row1259*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1262]) /*AbstractArray::add*/;
+    variable[1262] = CALL_parser_tables___ParserTable___action_table_row1259(variable[1262])(variable[1262]) /*ParserTable::action_table_row1259*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1262]) /*AbstractArray::add*/;
     variable[1263] = variable[0];
-    variable[1263] = ((parser_tables___ParserTable___action_table_row1260_t)CALL(variable[1263],COLOR_parser_tables___ParserTable___action_table_row1260))(variable[1263]) /*ParserTable::action_table_row1260*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1263]) /*AbstractArray::add*/;
+    variable[1263] = CALL_parser_tables___ParserTable___action_table_row1260(variable[1263])(variable[1263]) /*ParserTable::action_table_row1260*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1263]) /*AbstractArray::add*/;
     variable[1264] = variable[0];
-    variable[1264] = ((parser_tables___ParserTable___action_table_row1261_t)CALL(variable[1264],COLOR_parser_tables___ParserTable___action_table_row1261))(variable[1264]) /*ParserTable::action_table_row1261*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1264]) /*AbstractArray::add*/;
+    variable[1264] = CALL_parser_tables___ParserTable___action_table_row1261(variable[1264])(variable[1264]) /*ParserTable::action_table_row1261*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1264]) /*AbstractArray::add*/;
     variable[1265] = variable[0];
-    variable[1265] = ((parser_tables___ParserTable___action_table_row1262_t)CALL(variable[1265],COLOR_parser_tables___ParserTable___action_table_row1262))(variable[1265]) /*ParserTable::action_table_row1262*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1265]) /*AbstractArray::add*/;
+    variable[1265] = CALL_parser_tables___ParserTable___action_table_row1262(variable[1265])(variable[1265]) /*ParserTable::action_table_row1262*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1265]) /*AbstractArray::add*/;
     variable[1266] = variable[0];
-    variable[1266] = ((parser_tables___ParserTable___action_table_row1263_t)CALL(variable[1266],COLOR_parser_tables___ParserTable___action_table_row1263))(variable[1266]) /*ParserTable::action_table_row1263*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1266]) /*AbstractArray::add*/;
+    variable[1266] = CALL_parser_tables___ParserTable___action_table_row1263(variable[1266])(variable[1266]) /*ParserTable::action_table_row1263*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1266]) /*AbstractArray::add*/;
     variable[1267] = variable[0];
-    variable[1267] = ((parser_tables___ParserTable___action_table_row1264_t)CALL(variable[1267],COLOR_parser_tables___ParserTable___action_table_row1264))(variable[1267]) /*ParserTable::action_table_row1264*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1267]) /*AbstractArray::add*/;
+    variable[1267] = CALL_parser_tables___ParserTable___action_table_row1264(variable[1267])(variable[1267]) /*ParserTable::action_table_row1264*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1267]) /*AbstractArray::add*/;
     variable[1268] = variable[0];
-    variable[1268] = ((parser_tables___ParserTable___action_table_row1265_t)CALL(variable[1268],COLOR_parser_tables___ParserTable___action_table_row1265))(variable[1268]) /*ParserTable::action_table_row1265*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1268]) /*AbstractArray::add*/;
+    variable[1268] = CALL_parser_tables___ParserTable___action_table_row1265(variable[1268])(variable[1268]) /*ParserTable::action_table_row1265*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1268]) /*AbstractArray::add*/;
     variable[1269] = variable[0];
-    variable[1269] = ((parser_tables___ParserTable___action_table_row1266_t)CALL(variable[1269],COLOR_parser_tables___ParserTable___action_table_row1266))(variable[1269]) /*ParserTable::action_table_row1266*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1269]) /*AbstractArray::add*/;
+    variable[1269] = CALL_parser_tables___ParserTable___action_table_row1266(variable[1269])(variable[1269]) /*ParserTable::action_table_row1266*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1269]) /*AbstractArray::add*/;
     variable[1270] = variable[0];
-    variable[1270] = ((parser_tables___ParserTable___action_table_row1267_t)CALL(variable[1270],COLOR_parser_tables___ParserTable___action_table_row1267))(variable[1270]) /*ParserTable::action_table_row1267*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1270]) /*AbstractArray::add*/;
+    variable[1270] = CALL_parser_tables___ParserTable___action_table_row1267(variable[1270])(variable[1270]) /*ParserTable::action_table_row1267*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1270]) /*AbstractArray::add*/;
     variable[1271] = variable[0];
-    variable[1271] = ((parser_tables___ParserTable___action_table_row1268_t)CALL(variable[1271],COLOR_parser_tables___ParserTable___action_table_row1268))(variable[1271]) /*ParserTable::action_table_row1268*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1271]) /*AbstractArray::add*/;
+    variable[1271] = CALL_parser_tables___ParserTable___action_table_row1268(variable[1271])(variable[1271]) /*ParserTable::action_table_row1268*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1271]) /*AbstractArray::add*/;
     variable[1272] = variable[0];
-    variable[1272] = ((parser_tables___ParserTable___action_table_row1269_t)CALL(variable[1272],COLOR_parser_tables___ParserTable___action_table_row1269))(variable[1272]) /*ParserTable::action_table_row1269*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1272]) /*AbstractArray::add*/;
+    variable[1272] = CALL_parser_tables___ParserTable___action_table_row1269(variable[1272])(variable[1272]) /*ParserTable::action_table_row1269*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1272]) /*AbstractArray::add*/;
     variable[1273] = variable[0];
-    variable[1273] = ((parser_tables___ParserTable___action_table_row1270_t)CALL(variable[1273],COLOR_parser_tables___ParserTable___action_table_row1270))(variable[1273]) /*ParserTable::action_table_row1270*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1273]) /*AbstractArray::add*/;
+    variable[1273] = CALL_parser_tables___ParserTable___action_table_row1270(variable[1273])(variable[1273]) /*ParserTable::action_table_row1270*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1273]) /*AbstractArray::add*/;
     variable[1274] = variable[0];
-    variable[1274] = ((parser_tables___ParserTable___action_table_row1271_t)CALL(variable[1274],COLOR_parser_tables___ParserTable___action_table_row1271))(variable[1274]) /*ParserTable::action_table_row1271*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1274]) /*AbstractArray::add*/;
+    variable[1274] = CALL_parser_tables___ParserTable___action_table_row1271(variable[1274])(variable[1274]) /*ParserTable::action_table_row1271*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1274]) /*AbstractArray::add*/;
     variable[1275] = variable[0];
-    variable[1275] = ((parser_tables___ParserTable___action_table_row1272_t)CALL(variable[1275],COLOR_parser_tables___ParserTable___action_table_row1272))(variable[1275]) /*ParserTable::action_table_row1272*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1275]) /*AbstractArray::add*/;
+    variable[1275] = CALL_parser_tables___ParserTable___action_table_row1272(variable[1275])(variable[1275]) /*ParserTable::action_table_row1272*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1275]) /*AbstractArray::add*/;
     variable[1276] = variable[0];
-    variable[1276] = ((parser_tables___ParserTable___action_table_row1273_t)CALL(variable[1276],COLOR_parser_tables___ParserTable___action_table_row1273))(variable[1276]) /*ParserTable::action_table_row1273*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1276]) /*AbstractArray::add*/;
+    variable[1276] = CALL_parser_tables___ParserTable___action_table_row1273(variable[1276])(variable[1276]) /*ParserTable::action_table_row1273*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1276]) /*AbstractArray::add*/;
     variable[1277] = variable[0];
-    variable[1277] = ((parser_tables___ParserTable___action_table_row1274_t)CALL(variable[1277],COLOR_parser_tables___ParserTable___action_table_row1274))(variable[1277]) /*ParserTable::action_table_row1274*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1277]) /*AbstractArray::add*/;
+    variable[1277] = CALL_parser_tables___ParserTable___action_table_row1274(variable[1277])(variable[1277]) /*ParserTable::action_table_row1274*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1277]) /*AbstractArray::add*/;
     variable[1278] = variable[0];
-    variable[1278] = ((parser_tables___ParserTable___action_table_row1275_t)CALL(variable[1278],COLOR_parser_tables___ParserTable___action_table_row1275))(variable[1278]) /*ParserTable::action_table_row1275*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1278]) /*AbstractArray::add*/;
+    variable[1278] = CALL_parser_tables___ParserTable___action_table_row1275(variable[1278])(variable[1278]) /*ParserTable::action_table_row1275*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1278]) /*AbstractArray::add*/;
     variable[1279] = variable[0];
-    variable[1279] = ((parser_tables___ParserTable___action_table_row1276_t)CALL(variable[1279],COLOR_parser_tables___ParserTable___action_table_row1276))(variable[1279]) /*ParserTable::action_table_row1276*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1279]) /*AbstractArray::add*/;
+    variable[1279] = CALL_parser_tables___ParserTable___action_table_row1276(variable[1279])(variable[1279]) /*ParserTable::action_table_row1276*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1279]) /*AbstractArray::add*/;
     variable[1280] = variable[0];
-    variable[1280] = ((parser_tables___ParserTable___action_table_row1277_t)CALL(variable[1280],COLOR_parser_tables___ParserTable___action_table_row1277))(variable[1280]) /*ParserTable::action_table_row1277*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1280]) /*AbstractArray::add*/;
+    variable[1280] = CALL_parser_tables___ParserTable___action_table_row1277(variable[1280])(variable[1280]) /*ParserTable::action_table_row1277*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1280]) /*AbstractArray::add*/;
     variable[1281] = variable[0];
-    variable[1281] = ((parser_tables___ParserTable___action_table_row1278_t)CALL(variable[1281],COLOR_parser_tables___ParserTable___action_table_row1278))(variable[1281]) /*ParserTable::action_table_row1278*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1281]) /*AbstractArray::add*/;
+    variable[1281] = CALL_parser_tables___ParserTable___action_table_row1278(variable[1281])(variable[1281]) /*ParserTable::action_table_row1278*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1281]) /*AbstractArray::add*/;
     variable[1282] = variable[0];
-    variable[1282] = ((parser_tables___ParserTable___action_table_row1279_t)CALL(variable[1282],COLOR_parser_tables___ParserTable___action_table_row1279))(variable[1282]) /*ParserTable::action_table_row1279*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1282]) /*AbstractArray::add*/;
+    variable[1282] = CALL_parser_tables___ParserTable___action_table_row1279(variable[1282])(variable[1282]) /*ParserTable::action_table_row1279*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1282]) /*AbstractArray::add*/;
     variable[1283] = variable[0];
-    variable[1283] = ((parser_tables___ParserTable___action_table_row1280_t)CALL(variable[1283],COLOR_parser_tables___ParserTable___action_table_row1280))(variable[1283]) /*ParserTable::action_table_row1280*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1283]) /*AbstractArray::add*/;
+    variable[1283] = CALL_parser_tables___ParserTable___action_table_row1280(variable[1283])(variable[1283]) /*ParserTable::action_table_row1280*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1283]) /*AbstractArray::add*/;
     variable[1284] = variable[0];
-    variable[1284] = ((parser_tables___ParserTable___action_table_row1281_t)CALL(variable[1284],COLOR_parser_tables___ParserTable___action_table_row1281))(variable[1284]) /*ParserTable::action_table_row1281*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1284]) /*AbstractArray::add*/;
+    variable[1284] = CALL_parser_tables___ParserTable___action_table_row1281(variable[1284])(variable[1284]) /*ParserTable::action_table_row1281*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1284]) /*AbstractArray::add*/;
     variable[1285] = variable[0];
-    variable[1285] = ((parser_tables___ParserTable___action_table_row1282_t)CALL(variable[1285],COLOR_parser_tables___ParserTable___action_table_row1282))(variable[1285]) /*ParserTable::action_table_row1282*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1285]) /*AbstractArray::add*/;
+    variable[1285] = CALL_parser_tables___ParserTable___action_table_row1282(variable[1285])(variable[1285]) /*ParserTable::action_table_row1282*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1285]) /*AbstractArray::add*/;
     variable[1286] = variable[0];
-    variable[1286] = ((parser_tables___ParserTable___action_table_row1283_t)CALL(variable[1286],COLOR_parser_tables___ParserTable___action_table_row1283))(variable[1286]) /*ParserTable::action_table_row1283*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1286]) /*AbstractArray::add*/;
+    variable[1286] = CALL_parser_tables___ParserTable___action_table_row1283(variable[1286])(variable[1286]) /*ParserTable::action_table_row1283*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1286]) /*AbstractArray::add*/;
     variable[1287] = variable[0];
-    variable[1287] = ((parser_tables___ParserTable___action_table_row1284_t)CALL(variable[1287],COLOR_parser_tables___ParserTable___action_table_row1284))(variable[1287]) /*ParserTable::action_table_row1284*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1287]) /*AbstractArray::add*/;
+    variable[1287] = CALL_parser_tables___ParserTable___action_table_row1284(variable[1287])(variable[1287]) /*ParserTable::action_table_row1284*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1287]) /*AbstractArray::add*/;
     variable[1288] = variable[0];
-    variable[1288] = ((parser_tables___ParserTable___action_table_row1285_t)CALL(variable[1288],COLOR_parser_tables___ParserTable___action_table_row1285))(variable[1288]) /*ParserTable::action_table_row1285*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1288]) /*AbstractArray::add*/;
+    variable[1288] = CALL_parser_tables___ParserTable___action_table_row1285(variable[1288])(variable[1288]) /*ParserTable::action_table_row1285*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1288]) /*AbstractArray::add*/;
     variable[1289] = variable[0];
-    variable[1289] = ((parser_tables___ParserTable___action_table_row1286_t)CALL(variable[1289],COLOR_parser_tables___ParserTable___action_table_row1286))(variable[1289]) /*ParserTable::action_table_row1286*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1289]) /*AbstractArray::add*/;
+    variable[1289] = CALL_parser_tables___ParserTable___action_table_row1286(variable[1289])(variable[1289]) /*ParserTable::action_table_row1286*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1289]) /*AbstractArray::add*/;
     variable[1290] = variable[0];
-    variable[1290] = ((parser_tables___ParserTable___action_table_row1287_t)CALL(variable[1290],COLOR_parser_tables___ParserTable___action_table_row1287))(variable[1290]) /*ParserTable::action_table_row1287*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1290]) /*AbstractArray::add*/;
+    variable[1290] = CALL_parser_tables___ParserTable___action_table_row1287(variable[1290])(variable[1290]) /*ParserTable::action_table_row1287*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1290]) /*AbstractArray::add*/;
     variable[1291] = variable[0];
-    variable[1291] = ((parser_tables___ParserTable___action_table_row1288_t)CALL(variable[1291],COLOR_parser_tables___ParserTable___action_table_row1288))(variable[1291]) /*ParserTable::action_table_row1288*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1291]) /*AbstractArray::add*/;
+    variable[1291] = CALL_parser_tables___ParserTable___action_table_row1288(variable[1291])(variable[1291]) /*ParserTable::action_table_row1288*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1291]) /*AbstractArray::add*/;
     variable[1292] = variable[0];
-    variable[1292] = ((parser_tables___ParserTable___action_table_row1289_t)CALL(variable[1292],COLOR_parser_tables___ParserTable___action_table_row1289))(variable[1292]) /*ParserTable::action_table_row1289*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1292]) /*AbstractArray::add*/;
+    variable[1292] = CALL_parser_tables___ParserTable___action_table_row1289(variable[1292])(variable[1292]) /*ParserTable::action_table_row1289*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1292]) /*AbstractArray::add*/;
     variable[1293] = variable[0];
-    variable[1293] = ((parser_tables___ParserTable___action_table_row1290_t)CALL(variable[1293],COLOR_parser_tables___ParserTable___action_table_row1290))(variable[1293]) /*ParserTable::action_table_row1290*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1293]) /*AbstractArray::add*/;
+    variable[1293] = CALL_parser_tables___ParserTable___action_table_row1290(variable[1293])(variable[1293]) /*ParserTable::action_table_row1290*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1293]) /*AbstractArray::add*/;
     variable[1294] = variable[0];
-    variable[1294] = ((parser_tables___ParserTable___action_table_row1291_t)CALL(variable[1294],COLOR_parser_tables___ParserTable___action_table_row1291))(variable[1294]) /*ParserTable::action_table_row1291*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1294]) /*AbstractArray::add*/;
+    variable[1294] = CALL_parser_tables___ParserTable___action_table_row1291(variable[1294])(variable[1294]) /*ParserTable::action_table_row1291*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1294]) /*AbstractArray::add*/;
     variable[1295] = variable[0];
-    variable[1295] = ((parser_tables___ParserTable___action_table_row1292_t)CALL(variable[1295],COLOR_parser_tables___ParserTable___action_table_row1292))(variable[1295]) /*ParserTable::action_table_row1292*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1295]) /*AbstractArray::add*/;
+    variable[1295] = CALL_parser_tables___ParserTable___action_table_row1292(variable[1295])(variable[1295]) /*ParserTable::action_table_row1292*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1295]) /*AbstractArray::add*/;
     variable[1296] = variable[0];
-    variable[1296] = ((parser_tables___ParserTable___action_table_row1293_t)CALL(variable[1296],COLOR_parser_tables___ParserTable___action_table_row1293))(variable[1296]) /*ParserTable::action_table_row1293*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1296]) /*AbstractArray::add*/;
+    variable[1296] = CALL_parser_tables___ParserTable___action_table_row1293(variable[1296])(variable[1296]) /*ParserTable::action_table_row1293*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1296]) /*AbstractArray::add*/;
     variable[1297] = variable[0];
-    variable[1297] = ((parser_tables___ParserTable___action_table_row1294_t)CALL(variable[1297],COLOR_parser_tables___ParserTable___action_table_row1294))(variable[1297]) /*ParserTable::action_table_row1294*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1297]) /*AbstractArray::add*/;
+    variable[1297] = CALL_parser_tables___ParserTable___action_table_row1294(variable[1297])(variable[1297]) /*ParserTable::action_table_row1294*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1297]) /*AbstractArray::add*/;
     variable[1298] = variable[0];
-    variable[1298] = ((parser_tables___ParserTable___action_table_row1295_t)CALL(variable[1298],COLOR_parser_tables___ParserTable___action_table_row1295))(variable[1298]) /*ParserTable::action_table_row1295*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1298]) /*AbstractArray::add*/;
+    variable[1298] = CALL_parser_tables___ParserTable___action_table_row1295(variable[1298])(variable[1298]) /*ParserTable::action_table_row1295*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1298]) /*AbstractArray::add*/;
     variable[1299] = variable[0];
-    variable[1299] = ((parser_tables___ParserTable___action_table_row1296_t)CALL(variable[1299],COLOR_parser_tables___ParserTable___action_table_row1296))(variable[1299]) /*ParserTable::action_table_row1296*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1299]) /*AbstractArray::add*/;
+    variable[1299] = CALL_parser_tables___ParserTable___action_table_row1296(variable[1299])(variable[1299]) /*ParserTable::action_table_row1296*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1299]) /*AbstractArray::add*/;
     variable[1300] = variable[0];
-    variable[1300] = ((parser_tables___ParserTable___action_table_row1297_t)CALL(variable[1300],COLOR_parser_tables___ParserTable___action_table_row1297))(variable[1300]) /*ParserTable::action_table_row1297*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1300]) /*AbstractArray::add*/;
+    variable[1300] = CALL_parser_tables___ParserTable___action_table_row1297(variable[1300])(variable[1300]) /*ParserTable::action_table_row1297*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1300]) /*AbstractArray::add*/;
     variable[1301] = variable[0];
-    variable[1301] = ((parser_tables___ParserTable___action_table_row1298_t)CALL(variable[1301],COLOR_parser_tables___ParserTable___action_table_row1298))(variable[1301]) /*ParserTable::action_table_row1298*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1301]) /*AbstractArray::add*/;
+    variable[1301] = CALL_parser_tables___ParserTable___action_table_row1298(variable[1301])(variable[1301]) /*ParserTable::action_table_row1298*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1301]) /*AbstractArray::add*/;
     variable[1302] = variable[0];
-    variable[1302] = ((parser_tables___ParserTable___action_table_row1299_t)CALL(variable[1302],COLOR_parser_tables___ParserTable___action_table_row1299))(variable[1302]) /*ParserTable::action_table_row1299*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1302]) /*AbstractArray::add*/;
+    variable[1302] = CALL_parser_tables___ParserTable___action_table_row1299(variable[1302])(variable[1302]) /*ParserTable::action_table_row1299*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1302]) /*AbstractArray::add*/;
     variable[1303] = variable[0];
-    variable[1303] = ((parser_tables___ParserTable___action_table_row1300_t)CALL(variable[1303],COLOR_parser_tables___ParserTable___action_table_row1300))(variable[1303]) /*ParserTable::action_table_row1300*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1303]) /*AbstractArray::add*/;
+    variable[1303] = CALL_parser_tables___ParserTable___action_table_row1300(variable[1303])(variable[1303]) /*ParserTable::action_table_row1300*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1303]) /*AbstractArray::add*/;
     variable[1304] = variable[0];
-    variable[1304] = ((parser_tables___ParserTable___action_table_row1301_t)CALL(variable[1304],COLOR_parser_tables___ParserTable___action_table_row1301))(variable[1304]) /*ParserTable::action_table_row1301*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[1304]) /*AbstractArray::add*/;
+    variable[1304] = CALL_parser_tables___ParserTable___action_table_row1301(variable[1304])(variable[1304]) /*ParserTable::action_table_row1301*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[1304]) /*AbstractArray::add*/;
     once_value_1 = variable[3];
     once_bool_1 = true;
   }
@@ -3932,18 +3932,18 @@ val_t parser_tables___ParserTable___action_table_row1(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label2;
   return_label2: while(false);
@@ -3959,9 +3959,9 @@ val_t parser_tables___ParserTable___action_table_row2(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(652)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(652)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label3;
   return_label3: while(false);
@@ -3977,9 +3977,9 @@ val_t parser_tables___ParserTable___action_table_row3(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(650)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(650)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label4;
   return_label4: while(false);
@@ -3995,13 +3995,13 @@ val_t parser_tables___ParserTable___action_table_row4(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[4]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label5;
   return_label5: while(false);
@@ -4017,18 +4017,18 @@ val_t parser_tables___ParserTable___action_table_row5(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label6;
   return_label6: while(false);
@@ -4044,9 +4044,9 @@ val_t parser_tables___ParserTable___action_table_row6(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(624)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(624)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label7;
   return_label7: while(false);
@@ -4062,9 +4062,9 @@ val_t parser_tables___ParserTable___action_table_row7(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label8;
   return_label8: while(false);
@@ -4080,9 +4080,9 @@ val_t parser_tables___ParserTable___action_table_row8(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label9;
   return_label9: while(false);
@@ -4098,9 +4098,9 @@ val_t parser_tables___ParserTable___action_table_row9(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(626)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(626)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label10;
   return_label10: while(false);
@@ -4116,15 +4116,15 @@ val_t parser_tables___ParserTable___action_table_row10(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label11;
   return_label11: while(false);
@@ -4140,12 +4140,12 @@ val_t parser_tables___ParserTable___action_table_row11(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label12;
   return_label12: while(false);
@@ -4161,105 +4161,105 @@ val_t parser_tables___ParserTable___action_table_row12(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(99)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label13;
   return_label13: while(false);
@@ -4275,12 +4275,12 @@ val_t parser_tables___ParserTable___action_table_row13(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(397)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(397)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label14;
   return_label14: while(false);
@@ -4296,18 +4296,18 @@ val_t parser_tables___ParserTable___action_table_row14(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label15;
   return_label15: while(false);
@@ -4323,18 +4323,18 @@ val_t parser_tables___ParserTable___action_table_row15(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label16;
   return_label16: while(false);
@@ -4350,15 +4350,15 @@ val_t parser_tables___ParserTable___action_table_row16(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(395)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(395)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label17;
   return_label17: while(false);
@@ -4374,12 +4374,12 @@ val_t parser_tables___ParserTable___action_table_row17(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(402)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(402)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label18;
   return_label18: while(false);
@@ -4395,9 +4395,9 @@ val_t parser_tables___ParserTable___action_table_row18(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label19;
   return_label19: while(false);
@@ -4413,15 +4413,15 @@ val_t parser_tables___ParserTable___action_table_row19(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label20;
   return_label20: while(false);
@@ -4437,102 +4437,102 @@ val_t parser_tables___ParserTable___action_table_row20(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label21;
   return_label21: while(false);
@@ -4548,18 +4548,18 @@ val_t parser_tables___ParserTable___action_table_row21(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label22;
   return_label22: while(false);
@@ -4575,18 +4575,18 @@ val_t parser_tables___ParserTable___action_table_row22(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label23;
   return_label23: while(false);
@@ -4602,9 +4602,9 @@ val_t parser_tables___ParserTable___action_table_row23(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(394)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(394)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label24;
   return_label24: while(false);
@@ -4620,9 +4620,9 @@ val_t parser_tables___ParserTable___action_table_row24(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(393)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(393)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label25;
   return_label25: while(false);
@@ -4638,18 +4638,18 @@ val_t parser_tables___ParserTable___action_table_row25(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label26;
   return_label26: while(false);
@@ -4665,15 +4665,15 @@ val_t parser_tables___ParserTable___action_table_row26(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label27;
   return_label27: while(false);
@@ -4689,75 +4689,75 @@ val_t parser_tables___ParserTable___action_table_row27(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label28;
   return_label28: while(false);
@@ -4773,18 +4773,18 @@ val_t parser_tables___ParserTable___action_table_row28(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label29;
   return_label29: while(false);
@@ -4800,99 +4800,99 @@ val_t parser_tables___ParserTable___action_table_row29(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label30;
   return_label30: while(false);
@@ -4908,12 +4908,12 @@ val_t parser_tables___ParserTable___action_table_row30(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label31;
   return_label31: while(false);
@@ -4929,15 +4929,15 @@ val_t parser_tables___ParserTable___action_table_row31(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label32;
   return_label32: while(false);
@@ -4953,15 +4953,15 @@ val_t parser_tables___ParserTable___action_table_row32(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label33;
   return_label33: while(false);
@@ -4977,15 +4977,15 @@ val_t parser_tables___ParserTable___action_table_row33(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label34;
   return_label34: while(false);
@@ -5001,15 +5001,15 @@ val_t parser_tables___ParserTable___action_table_row34(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label35;
   return_label35: while(false);
@@ -5025,15 +5025,15 @@ val_t parser_tables___ParserTable___action_table_row35(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label36;
   return_label36: while(false);
@@ -5049,15 +5049,15 @@ val_t parser_tables___ParserTable___action_table_row36(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label37;
   return_label37: while(false);
@@ -5073,72 +5073,72 @@ val_t parser_tables___ParserTable___action_table_row37(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(249)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(249)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label38;
   return_label38: while(false);
@@ -5154,72 +5154,72 @@ val_t parser_tables___ParserTable___action_table_row38(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label39;
   return_label39: while(false);
@@ -5235,72 +5235,72 @@ val_t parser_tables___ParserTable___action_table_row39(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(251)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(251)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label40;
   return_label40: while(false);
@@ -5316,9 +5316,9 @@ val_t parser_tables___ParserTable___action_table_row40(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label41;
   return_label41: while(false);
@@ -5334,72 +5334,72 @@ val_t parser_tables___ParserTable___action_table_row41(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label42;
   return_label42: while(false);
@@ -5415,15 +5415,15 @@ val_t parser_tables___ParserTable___action_table_row42(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label43;
   return_label43: while(false);
@@ -5439,75 +5439,75 @@ val_t parser_tables___ParserTable___action_table_row43(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label44;
   return_label44: while(false);
@@ -5523,9 +5523,9 @@ val_t parser_tables___ParserTable___action_table_row44(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(356)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(356)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label45;
   return_label45: while(false);
@@ -5541,9 +5541,9 @@ val_t parser_tables___ParserTable___action_table_row45(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(357)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(357)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label46;
   return_label46: while(false);
@@ -5559,9 +5559,9 @@ val_t parser_tables___ParserTable___action_table_row46(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(358)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(358)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label47;
   return_label47: while(false);
@@ -5577,9 +5577,9 @@ val_t parser_tables___ParserTable___action_table_row47(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(359)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(359)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label48;
   return_label48: while(false);
@@ -5595,72 +5595,72 @@ val_t parser_tables___ParserTable___action_table_row48(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label49;
   return_label49: while(false);
@@ -5676,15 +5676,15 @@ val_t parser_tables___ParserTable___action_table_row49(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label50;
   return_label50: while(false);
@@ -5700,12 +5700,12 @@ val_t parser_tables___ParserTable___action_table_row50(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label51;
   return_label51: while(false);
@@ -5721,87 +5721,87 @@ val_t parser_tables___ParserTable___action_table_row51(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(81)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label52;
   return_label52: while(false);
@@ -5817,18 +5817,18 @@ val_t parser_tables___ParserTable___action_table_row52(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(344)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(344)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label53;
   return_label53: while(false);
@@ -5844,9 +5844,9 @@ val_t parser_tables___ParserTable___action_table_row53(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(360)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(360)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label54;
   return_label54: while(false);
@@ -5862,9 +5862,9 @@ val_t parser_tables___ParserTable___action_table_row54(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(361)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(361)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label55;
   return_label55: while(false);
@@ -5880,9 +5880,9 @@ val_t parser_tables___ParserTable___action_table_row55(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(362)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(362)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label56;
   return_label56: while(false);
@@ -5898,9 +5898,9 @@ val_t parser_tables___ParserTable___action_table_row56(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(363)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(363)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label57;
   return_label57: while(false);
@@ -5916,9 +5916,9 @@ val_t parser_tables___ParserTable___action_table_row57(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(370)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(370)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label58;
   return_label58: while(false);
@@ -5934,27 +5934,27 @@ val_t parser_tables___ParserTable___action_table_row58(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(21)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label59;
   return_label59: while(false);
@@ -5970,15 +5970,15 @@ val_t parser_tables___ParserTable___action_table_row59(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label60;
   return_label60: while(false);
@@ -5994,9 +5994,9 @@ val_t parser_tables___ParserTable___action_table_row60(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(247)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(247)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label61;
   return_label61: while(false);
@@ -6012,9 +6012,9 @@ val_t parser_tables___ParserTable___action_table_row61(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(248)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(248)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label62;
   return_label62: while(false);
@@ -6030,9 +6030,9 @@ val_t parser_tables___ParserTable___action_table_row62(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label63;
   return_label63: while(false);
@@ -6048,9 +6048,9 @@ val_t parser_tables___ParserTable___action_table_row63(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(257)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(257)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label64;
   return_label64: while(false);
@@ -6066,9 +6066,9 @@ val_t parser_tables___ParserTable___action_table_row64(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label65;
   return_label65: while(false);
@@ -6084,9 +6084,9 @@ val_t parser_tables___ParserTable___action_table_row65(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(259)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(259)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label66;
   return_label66: while(false);
@@ -6102,15 +6102,15 @@ val_t parser_tables___ParserTable___action_table_row66(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label67;
   return_label67: while(false);
@@ -6126,9 +6126,9 @@ val_t parser_tables___ParserTable___action_table_row67(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label68;
   return_label68: while(false);
@@ -6144,15 +6144,15 @@ val_t parser_tables___ParserTable___action_table_row68(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(197)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(197)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label69;
   return_label69: while(false);
@@ -6168,9 +6168,9 @@ val_t parser_tables___ParserTable___action_table_row69(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(364)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(364)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label70;
   return_label70: while(false);
@@ -6186,15 +6186,15 @@ val_t parser_tables___ParserTable___action_table_row70(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(199)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(200)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(199)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(200)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label71;
   return_label71: while(false);
@@ -6210,15 +6210,15 @@ val_t parser_tables___ParserTable___action_table_row71(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label72;
   return_label72: while(false);
@@ -6234,9 +6234,9 @@ val_t parser_tables___ParserTable___action_table_row72(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(355)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(355)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label73;
   return_label73: while(false);
@@ -6252,12 +6252,12 @@ val_t parser_tables___ParserTable___action_table_row73(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(206)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(206)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label74;
   return_label74: while(false);
@@ -6273,9 +6273,9 @@ val_t parser_tables___ParserTable___action_table_row74(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(648)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(648)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label75;
   return_label75: while(false);
@@ -6291,9 +6291,9 @@ val_t parser_tables___ParserTable___action_table_row75(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(388)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(388)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label76;
   return_label76: while(false);
@@ -6309,15 +6309,15 @@ val_t parser_tables___ParserTable___action_table_row76(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(390)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(207)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(390)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(207)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label77;
   return_label77: while(false);
@@ -6333,15 +6333,15 @@ val_t parser_tables___ParserTable___action_table_row77(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(396)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(396)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label78;
   return_label78: while(false);
@@ -6357,9 +6357,9 @@ val_t parser_tables___ParserTable___action_table_row78(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(625)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(625)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label79;
   return_label79: while(false);
@@ -6375,9 +6375,9 @@ val_t parser_tables___ParserTable___action_table_row79(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label80;
   return_label80: while(false);
@@ -6393,15 +6393,15 @@ val_t parser_tables___ParserTable___action_table_row80(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label81;
   return_label81: while(false);
@@ -6417,18 +6417,18 @@ val_t parser_tables___ParserTable___action_table_row81(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label82;
   return_label82: while(false);
@@ -6444,9 +6444,9 @@ val_t parser_tables___ParserTable___action_table_row82(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label83;
   return_label83: while(false);
@@ -6462,9 +6462,9 @@ val_t parser_tables___ParserTable___action_table_row83(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(627)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(627)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label84;
   return_label84: while(false);
@@ -6480,15 +6480,15 @@ val_t parser_tables___ParserTable___action_table_row84(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label85;
   return_label85: while(false);
@@ -6504,102 +6504,102 @@ val_t parser_tables___ParserTable___action_table_row85(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label86;
   return_label86: while(false);
@@ -6615,9 +6615,9 @@ val_t parser_tables___ParserTable___action_table_row86(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(651)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(651)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label87;
   return_label87: while(false);
@@ -6633,12 +6633,12 @@ val_t parser_tables___ParserTable___action_table_row87(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(400)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(400)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label88;
   return_label88: while(false);
@@ -6654,9 +6654,9 @@ val_t parser_tables___ParserTable___action_table_row88(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(653)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(653)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label89;
   return_label89: while(false);
@@ -6672,18 +6672,18 @@ val_t parser_tables___ParserTable___action_table_row89(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label90;
   return_label90: while(false);
@@ -6699,9 +6699,9 @@ val_t parser_tables___ParserTable___action_table_row90(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label91;
   return_label91: while(false);
@@ -6717,15 +6717,15 @@ val_t parser_tables___ParserTable___action_table_row91(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label92;
   return_label92: while(false);
@@ -6741,18 +6741,18 @@ val_t parser_tables___ParserTable___action_table_row92(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label93;
   return_label93: while(false);
@@ -6768,9 +6768,9 @@ val_t parser_tables___ParserTable___action_table_row93(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label94;
   return_label94: while(false);
@@ -6786,15 +6786,15 @@ val_t parser_tables___ParserTable___action_table_row94(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label95;
   return_label95: while(false);
@@ -6810,9 +6810,9 @@ val_t parser_tables___ParserTable___action_table_row95(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label96;
   return_label96: while(false);
@@ -6828,9 +6828,9 @@ val_t parser_tables___ParserTable___action_table_row96(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(634)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(634)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label97;
   return_label97: while(false);
@@ -6846,15 +6846,15 @@ val_t parser_tables___ParserTable___action_table_row97(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label98;
   return_label98: while(false);
@@ -6870,102 +6870,102 @@ val_t parser_tables___ParserTable___action_table_row98(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(223)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(223)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label99;
   return_label99: while(false);
@@ -6981,18 +6981,18 @@ val_t parser_tables___ParserTable___action_table_row99(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label100;
   return_label100: while(false);
@@ -7008,9 +7008,9 @@ val_t parser_tables___ParserTable___action_table_row100(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label101;
   return_label101: while(false);
@@ -7026,12 +7026,12 @@ val_t parser_tables___ParserTable___action_table_row101(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(100)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(227)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(100)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(227)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label102;
   return_label102: while(false);
@@ -7047,12 +7047,12 @@ val_t parser_tables___ParserTable___action_table_row102(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label103;
   return_label103: while(false);
@@ -7068,15 +7068,15 @@ val_t parser_tables___ParserTable___action_table_row103(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label104;
   return_label104: while(false);
@@ -7092,15 +7092,15 @@ val_t parser_tables___ParserTable___action_table_row104(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label105;
   return_label105: while(false);
@@ -7116,15 +7116,15 @@ val_t parser_tables___ParserTable___action_table_row105(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label106;
   return_label106: while(false);
@@ -7140,15 +7140,15 @@ val_t parser_tables___ParserTable___action_table_row106(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label107;
   return_label107: while(false);
@@ -7164,12 +7164,12 @@ val_t parser_tables___ParserTable___action_table_row107(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label108;
   return_label108: while(false);
@@ -7185,9 +7185,9 @@ val_t parser_tables___ParserTable___action_table_row108(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(557)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(557)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label109;
   return_label109: while(false);
@@ -7203,9 +7203,9 @@ val_t parser_tables___ParserTable___action_table_row109(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(558)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(558)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label110;
   return_label110: while(false);
@@ -7221,9 +7221,9 @@ val_t parser_tables___ParserTable___action_table_row110(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(559)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(559)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label111;
   return_label111: while(false);
@@ -7239,9 +7239,9 @@ val_t parser_tables___ParserTable___action_table_row111(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(560)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(560)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label112;
   return_label112: while(false);
@@ -7257,15 +7257,15 @@ val_t parser_tables___ParserTable___action_table_row112(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label113;
   return_label113: while(false);
@@ -7281,15 +7281,15 @@ val_t parser_tables___ParserTable___action_table_row113(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label114;
   return_label114: while(false);
@@ -7305,15 +7305,15 @@ val_t parser_tables___ParserTable___action_table_row114(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label115;
   return_label115: while(false);
@@ -7329,9 +7329,9 @@ val_t parser_tables___ParserTable___action_table_row115(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(549)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(549)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label116;
   return_label116: while(false);
@@ -7347,9 +7347,9 @@ val_t parser_tables___ParserTable___action_table_row116(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(561)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(561)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label117;
   return_label117: while(false);
@@ -7365,9 +7365,9 @@ val_t parser_tables___ParserTable___action_table_row117(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(562)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(562)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label118;
   return_label118: while(false);
@@ -7383,9 +7383,9 @@ val_t parser_tables___ParserTable___action_table_row118(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(563)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(563)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label119;
   return_label119: while(false);
@@ -7401,9 +7401,9 @@ val_t parser_tables___ParserTable___action_table_row119(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(564)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(564)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label120;
   return_label120: while(false);
@@ -7419,9 +7419,9 @@ val_t parser_tables___ParserTable___action_table_row120(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(565)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(565)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label121;
   return_label121: while(false);
@@ -7437,9 +7437,9 @@ val_t parser_tables___ParserTable___action_table_row121(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(350)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(350)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label122;
   return_label122: while(false);
@@ -7455,9 +7455,9 @@ val_t parser_tables___ParserTable___action_table_row122(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(268)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(268)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label123;
   return_label123: while(false);
@@ -7473,12 +7473,12 @@ val_t parser_tables___ParserTable___action_table_row123(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(238)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(238)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label124;
   return_label124: while(false);
@@ -7494,9 +7494,9 @@ val_t parser_tables___ParserTable___action_table_row124(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(380)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(380)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label125;
   return_label125: while(false);
@@ -7512,15 +7512,15 @@ val_t parser_tables___ParserTable___action_table_row125(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(519)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(239)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(240)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(519)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(239)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(240)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label126;
   return_label126: while(false);
@@ -7536,9 +7536,9 @@ val_t parser_tables___ParserTable___action_table_row126(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(521)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(521)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label127;
   return_label127: while(false);
@@ -7554,9 +7554,9 @@ val_t parser_tables___ParserTable___action_table_row127(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(524)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(524)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label128;
   return_label128: while(false);
@@ -7572,42 +7572,42 @@ val_t parser_tables___ParserTable___action_table_row128(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(36)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(526)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(241)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(242)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(245)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(246)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(247)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(248)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(249)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(250)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(251)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(526)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(241)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(242)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(245)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(246)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(247)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(248)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(249)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(250)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(251)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label129;
   return_label129: while(false);
@@ -7623,18 +7623,18 @@ val_t parser_tables___ParserTable___action_table_row129(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label130;
   return_label130: while(false);
@@ -7650,9 +7650,9 @@ val_t parser_tables___ParserTable___action_table_row130(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(539)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(539)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label131;
   return_label131: while(false);
@@ -7668,9 +7668,9 @@ val_t parser_tables___ParserTable___action_table_row131(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(543)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(543)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label132;
   return_label132: while(false);
@@ -7686,12 +7686,12 @@ val_t parser_tables___ParserTable___action_table_row132(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(546)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(255)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(546)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(255)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label133;
   return_label133: while(false);
@@ -7707,24 +7707,24 @@ val_t parser_tables___ParserTable___action_table_row133(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label134;
   return_label134: while(false);
@@ -7740,9 +7740,9 @@ val_t parser_tables___ParserTable___action_table_row134(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(245)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(245)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label135;
   return_label135: while(false);
@@ -7758,9 +7758,9 @@ val_t parser_tables___ParserTable___action_table_row135(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(295)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(295)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label136;
   return_label136: while(false);
@@ -7776,9 +7776,9 @@ val_t parser_tables___ParserTable___action_table_row136(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(241)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(241)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label137;
   return_label137: while(false);
@@ -7794,93 +7794,93 @@ val_t parser_tables___ParserTable___action_table_row137(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label138;
   return_label138: while(false);
@@ -7896,15 +7896,15 @@ val_t parser_tables___ParserTable___action_table_row138(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(279)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(261)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(279)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(261)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label139;
   return_label139: while(false);
@@ -7920,9 +7920,9 @@ val_t parser_tables___ParserTable___action_table_row139(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(193)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(193)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label140;
   return_label140: while(false);
@@ -7938,9 +7938,9 @@ val_t parser_tables___ParserTable___action_table_row140(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(192)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(192)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label141;
   return_label141: while(false);
@@ -7956,9 +7956,9 @@ val_t parser_tables___ParserTable___action_table_row141(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(194)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(194)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label142;
   return_label142: while(false);
@@ -7974,72 +7974,72 @@ val_t parser_tables___ParserTable___action_table_row142(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(141)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(141)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label143;
   return_label143: while(false);
@@ -8055,72 +8055,72 @@ val_t parser_tables___ParserTable___action_table_row143(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label144;
   return_label144: while(false);
@@ -8136,12 +8136,12 @@ val_t parser_tables___ParserTable___action_table_row144(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(265)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(265)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label145;
   return_label145: while(false);
@@ -8157,12 +8157,12 @@ val_t parser_tables___ParserTable___action_table_row145(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label146;
   return_label146: while(false);
@@ -8178,15 +8178,15 @@ val_t parser_tables___ParserTable___action_table_row146(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label147;
   return_label147: while(false);
@@ -8202,15 +8202,15 @@ val_t parser_tables___ParserTable___action_table_row147(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label148;
   return_label148: while(false);
@@ -8226,15 +8226,15 @@ val_t parser_tables___ParserTable___action_table_row148(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label149;
   return_label149: while(false);
@@ -8250,15 +8250,15 @@ val_t parser_tables___ParserTable___action_table_row149(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label150;
   return_label150: while(false);
@@ -8274,12 +8274,12 @@ val_t parser_tables___ParserTable___action_table_row150(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label151;
   return_label151: while(false);
@@ -8295,15 +8295,15 @@ val_t parser_tables___ParserTable___action_table_row151(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label152;
   return_label152: while(false);
@@ -8319,15 +8319,15 @@ val_t parser_tables___ParserTable___action_table_row152(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label153;
   return_label153: while(false);
@@ -8343,9 +8343,9 @@ val_t parser_tables___ParserTable___action_table_row153(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(344)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(344)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label154;
   return_label154: while(false);
@@ -8361,9 +8361,9 @@ val_t parser_tables___ParserTable___action_table_row154(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(250)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(250)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label155;
   return_label155: while(false);
@@ -8379,9 +8379,9 @@ val_t parser_tables___ParserTable___action_table_row155(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(310)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(310)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label156;
   return_label156: while(false);
@@ -8397,15 +8397,15 @@ val_t parser_tables___ParserTable___action_table_row156(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(272)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(273)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(272)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(273)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label157;
   return_label157: while(false);
@@ -8421,9 +8421,9 @@ val_t parser_tables___ParserTable___action_table_row157(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label158;
   return_label158: while(false);
@@ -8439,9 +8439,9 @@ val_t parser_tables___ParserTable___action_table_row158(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label159;
   return_label159: while(false);
@@ -8457,42 +8457,42 @@ val_t parser_tables___ParserTable___action_table_row159(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(36)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(274)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(275)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(278)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(279)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(280)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(281)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(282)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(283)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(284)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(274)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(275)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(278)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(279)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(280)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(281)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(282)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(283)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(284)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label160;
   return_label160: while(false);
@@ -8508,18 +8508,18 @@ val_t parser_tables___ParserTable___action_table_row160(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(331)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(331)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label161;
   return_label161: while(false);
@@ -8535,9 +8535,9 @@ val_t parser_tables___ParserTable___action_table_row161(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(334)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(334)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label162;
   return_label162: while(false);
@@ -8553,9 +8553,9 @@ val_t parser_tables___ParserTable___action_table_row162(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(338)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(338)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label163;
   return_label163: while(false);
@@ -8571,15 +8571,15 @@ val_t parser_tables___ParserTable___action_table_row163(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(341)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(288)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(341)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(288)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label164;
   return_label164: while(false);
@@ -8595,12 +8595,12 @@ val_t parser_tables___ParserTable___action_table_row164(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(290)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(290)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label165;
   return_label165: while(false);
@@ -8616,9 +8616,9 @@ val_t parser_tables___ParserTable___action_table_row165(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(255)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(255)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label166;
   return_label166: while(false);
@@ -8634,9 +8634,9 @@ val_t parser_tables___ParserTable___action_table_row166(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label167;
   return_label167: while(false);
@@ -8652,18 +8652,18 @@ val_t parser_tables___ParserTable___action_table_row167(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(291)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(291)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label168;
   return_label168: while(false);
@@ -8679,72 +8679,72 @@ val_t parser_tables___ParserTable___action_table_row168(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label169;
   return_label169: while(false);
@@ -8760,9 +8760,9 @@ val_t parser_tables___ParserTable___action_table_row169(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(307)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(307)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label170;
   return_label170: while(false);
@@ -8778,12 +8778,12 @@ val_t parser_tables___ParserTable___action_table_row170(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(169)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(169)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label171;
   return_label171: while(false);
@@ -8799,9 +8799,9 @@ val_t parser_tables___ParserTable___action_table_row171(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(347)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(347)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label172;
   return_label172: while(false);
@@ -8817,9 +8817,9 @@ val_t parser_tables___ParserTable___action_table_row172(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(265)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(265)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label173;
   return_label173: while(false);
@@ -8835,15 +8835,15 @@ val_t parser_tables___ParserTable___action_table_row173(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label174;
   return_label174: while(false);
@@ -8859,12 +8859,12 @@ val_t parser_tables___ParserTable___action_table_row174(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(296)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(296)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label175;
   return_label175: while(false);
@@ -8880,15 +8880,15 @@ val_t parser_tables___ParserTable___action_table_row175(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(341)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(297)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(341)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(297)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label176;
   return_label176: while(false);
@@ -8904,72 +8904,72 @@ val_t parser_tables___ParserTable___action_table_row176(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(175)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(175)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label177;
   return_label177: while(false);
@@ -8985,15 +8985,15 @@ val_t parser_tables___ParserTable___action_table_row177(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label178;
   return_label178: while(false);
@@ -9009,15 +9009,15 @@ val_t parser_tables___ParserTable___action_table_row178(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label179;
   return_label179: while(false);
@@ -9033,18 +9033,18 @@ val_t parser_tables___ParserTable___action_table_row179(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(302)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(302)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label180;
   return_label180: while(false);
@@ -9060,12 +9060,12 @@ val_t parser_tables___ParserTable___action_table_row180(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(262)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(262)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label181;
   return_label181: while(false);
@@ -9081,72 +9081,72 @@ val_t parser_tables___ParserTable___action_table_row181(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label182;
   return_label182: while(false);
@@ -9162,9 +9162,9 @@ val_t parser_tables___ParserTable___action_table_row182(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label183;
   return_label183: while(false);
@@ -9180,9 +9180,9 @@ val_t parser_tables___ParserTable___action_table_row183(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(294)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(294)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label184;
   return_label184: while(false);
@@ -9198,72 +9198,72 @@ val_t parser_tables___ParserTable___action_table_row184(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label185;
   return_label185: while(false);
@@ -9279,15 +9279,15 @@ val_t parser_tables___ParserTable___action_table_row185(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label186;
   return_label186: while(false);
@@ -9303,9 +9303,9 @@ val_t parser_tables___ParserTable___action_table_row186(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label187;
   return_label187: while(false);
@@ -9321,12 +9321,12 @@ val_t parser_tables___ParserTable___action_table_row187(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(311)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(311)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label188;
   return_label188: while(false);
@@ -9342,9 +9342,9 @@ val_t parser_tables___ParserTable___action_table_row188(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label189;
   return_label189: while(false);
@@ -9360,9 +9360,9 @@ val_t parser_tables___ParserTable___action_table_row189(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label190;
   return_label190: while(false);
@@ -9378,51 +9378,51 @@ val_t parser_tables___ParserTable___action_table_row190(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label191;
   return_label191: while(false);
@@ -9438,15 +9438,15 @@ val_t parser_tables___ParserTable___action_table_row191(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label192;
   return_label192: while(false);
@@ -9462,9 +9462,9 @@ val_t parser_tables___ParserTable___action_table_row192(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(642)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(642)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label193;
   return_label193: while(false);
@@ -9480,90 +9480,90 @@ val_t parser_tables___ParserTable___action_table_row193(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(84)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label194;
   return_label194: while(false);
@@ -9579,9 +9579,9 @@ val_t parser_tables___ParserTable___action_table_row194(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label195;
   return_label195: while(false);
@@ -9597,15 +9597,15 @@ val_t parser_tables___ParserTable___action_table_row195(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label196;
   return_label196: while(false);
@@ -9621,12 +9621,12 @@ val_t parser_tables___ParserTable___action_table_row196(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(195)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(331)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(195)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(331)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label197;
   return_label197: while(false);
@@ -9642,15 +9642,15 @@ val_t parser_tables___ParserTable___action_table_row197(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label198;
   return_label198: while(false);
@@ -9666,15 +9666,15 @@ val_t parser_tables___ParserTable___action_table_row198(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label199;
   return_label199: while(false);
@@ -9690,18 +9690,18 @@ val_t parser_tables___ParserTable___action_table_row199(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(334)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(334)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label200;
   return_label200: while(false);
@@ -9717,9 +9717,9 @@ val_t parser_tables___ParserTable___action_table_row200(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(372)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(372)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label201;
   return_label201: while(false);
@@ -9735,9 +9735,9 @@ val_t parser_tables___ParserTable___action_table_row201(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(373)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(373)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label202;
   return_label202: while(false);
@@ -9753,9 +9753,9 @@ val_t parser_tables___ParserTable___action_table_row202(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(644)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(644)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label203;
   return_label203: while(false);
@@ -9771,15 +9771,15 @@ val_t parser_tables___ParserTable___action_table_row203(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label204;
   return_label204: while(false);
@@ -9795,9 +9795,9 @@ val_t parser_tables___ParserTable___action_table_row204(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(367)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(367)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label205;
   return_label205: while(false);
@@ -9813,15 +9813,15 @@ val_t parser_tables___ParserTable___action_table_row205(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(204)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(199)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(200)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(204)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(199)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(200)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label206;
   return_label206: while(false);
@@ -9837,72 +9837,72 @@ val_t parser_tables___ParserTable___action_table_row206(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(205)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(205)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label207;
   return_label207: while(false);
@@ -9918,75 +9918,75 @@ val_t parser_tables___ParserTable___action_table_row207(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label208;
   return_label208: while(false);
@@ -10002,12 +10002,12 @@ val_t parser_tables___ParserTable___action_table_row208(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(207)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(207)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label209;
   return_label209: while(false);
@@ -10023,9 +10023,9 @@ val_t parser_tables___ParserTable___action_table_row209(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(649)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(649)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label210;
   return_label210: while(false);
@@ -10041,9 +10041,9 @@ val_t parser_tables___ParserTable___action_table_row210(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(389)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(389)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label211;
   return_label211: while(false);
@@ -10059,12 +10059,12 @@ val_t parser_tables___ParserTable___action_table_row211(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(401)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(401)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label212;
   return_label212: while(false);
@@ -10080,18 +10080,18 @@ val_t parser_tables___ParserTable___action_table_row212(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label213;
   return_label213: while(false);
@@ -10107,9 +10107,9 @@ val_t parser_tables___ParserTable___action_table_row213(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label214;
   return_label214: while(false);
@@ -10125,15 +10125,15 @@ val_t parser_tables___ParserTable___action_table_row214(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(213)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(213)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label215;
   return_label215: while(false);
@@ -10149,18 +10149,18 @@ val_t parser_tables___ParserTable___action_table_row215(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label216;
   return_label216: while(false);
@@ -10176,24 +10176,24 @@ val_t parser_tables___ParserTable___action_table_row216(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(215)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(215)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label217;
   return_label217: while(false);
@@ -10209,9 +10209,9 @@ val_t parser_tables___ParserTable___action_table_row217(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label218;
   return_label218: while(false);
@@ -10227,18 +10227,18 @@ val_t parser_tables___ParserTable___action_table_row218(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label219;
   return_label219: while(false);
@@ -10254,18 +10254,18 @@ val_t parser_tables___ParserTable___action_table_row219(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label220;
   return_label220: while(false);
@@ -10281,9 +10281,9 @@ val_t parser_tables___ParserTable___action_table_row220(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label221;
   return_label221: while(false);
@@ -10299,15 +10299,15 @@ val_t parser_tables___ParserTable___action_table_row221(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(220)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(220)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label222;
   return_label222: while(false);
@@ -10323,18 +10323,18 @@ val_t parser_tables___ParserTable___action_table_row222(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label223;
   return_label223: while(false);
@@ -10350,9 +10350,9 @@ val_t parser_tables___ParserTable___action_table_row223(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label224;
   return_label224: while(false);
@@ -10368,18 +10368,18 @@ val_t parser_tables___ParserTable___action_table_row224(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label225;
   return_label225: while(false);
@@ -10395,12 +10395,12 @@ val_t parser_tables___ParserTable___action_table_row225(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(224)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(224)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label226;
   return_label226: while(false);
@@ -10416,9 +10416,9 @@ val_t parser_tables___ParserTable___action_table_row226(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label227;
   return_label227: while(false);
@@ -10434,9 +10434,9 @@ val_t parser_tables___ParserTable___action_table_row227(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label228;
   return_label228: while(false);
@@ -10452,15 +10452,15 @@ val_t parser_tables___ParserTable___action_table_row228(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(227)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(227)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label229;
   return_label229: while(false);
@@ -10476,15 +10476,15 @@ val_t parser_tables___ParserTable___action_table_row229(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label230;
   return_label230: while(false);
@@ -10500,9 +10500,9 @@ val_t parser_tables___ParserTable___action_table_row230(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(555)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(555)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label231;
   return_label231: while(false);
@@ -10518,72 +10518,72 @@ val_t parser_tables___ParserTable___action_table_row231(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(230)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(230)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label232;
   return_label232: while(false);
@@ -10599,63 +10599,63 @@ val_t parser_tables___ParserTable___action_table_row232(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(231)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(231)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label233;
   return_label233: while(false);
@@ -10671,12 +10671,12 @@ val_t parser_tables___ParserTable___action_table_row233(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(232)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(358)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(232)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(358)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label234;
   return_label234: while(false);
@@ -10692,60 +10692,60 @@ val_t parser_tables___ParserTable___action_table_row234(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(233)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(233)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label235;
   return_label235: while(false);
@@ -10761,9 +10761,9 @@ val_t parser_tables___ParserTable___action_table_row235(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(552)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(552)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label236;
   return_label236: while(false);
@@ -10779,75 +10779,75 @@ val_t parser_tables___ParserTable___action_table_row236(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(235)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(361)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(235)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(361)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label237;
   return_label237: while(false);
@@ -10863,60 +10863,60 @@ val_t parser_tables___ParserTable___action_table_row237(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(236)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(236)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label238;
   return_label238: while(false);
@@ -10932,9 +10932,9 @@ val_t parser_tables___ParserTable___action_table_row238(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(551)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(551)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label239;
   return_label239: while(false);
@@ -10950,12 +10950,12 @@ val_t parser_tables___ParserTable___action_table_row239(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label240;
   return_label240: while(false);
@@ -10971,15 +10971,15 @@ val_t parser_tables___ParserTable___action_table_row240(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label241;
   return_label241: while(false);
@@ -10995,15 +10995,15 @@ val_t parser_tables___ParserTable___action_table_row241(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label242;
   return_label242: while(false);
@@ -11019,15 +11019,15 @@ val_t parser_tables___ParserTable___action_table_row242(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label243;
   return_label243: while(false);
@@ -11043,15 +11043,15 @@ val_t parser_tables___ParserTable___action_table_row243(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label244;
   return_label244: while(false);
@@ -11067,15 +11067,15 @@ val_t parser_tables___ParserTable___action_table_row244(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label245;
   return_label245: while(false);
@@ -11091,15 +11091,15 @@ val_t parser_tables___ParserTable___action_table_row245(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label246;
   return_label246: while(false);
@@ -11115,15 +11115,15 @@ val_t parser_tables___ParserTable___action_table_row246(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label247;
   return_label247: while(false);
@@ -11139,15 +11139,15 @@ val_t parser_tables___ParserTable___action_table_row247(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label248;
   return_label248: while(false);
@@ -11163,15 +11163,15 @@ val_t parser_tables___ParserTable___action_table_row248(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label249;
   return_label249: while(false);
@@ -11187,15 +11187,15 @@ val_t parser_tables___ParserTable___action_table_row249(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label250;
   return_label250: while(false);
@@ -11211,15 +11211,15 @@ val_t parser_tables___ParserTable___action_table_row250(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label251;
   return_label251: while(false);
@@ -11235,15 +11235,15 @@ val_t parser_tables___ParserTable___action_table_row251(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label252;
   return_label252: while(false);
@@ -11259,15 +11259,15 @@ val_t parser_tables___ParserTable___action_table_row252(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label253;
   return_label253: while(false);
@@ -11283,15 +11283,15 @@ val_t parser_tables___ParserTable___action_table_row253(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label254;
   return_label254: while(false);
@@ -11307,15 +11307,15 @@ val_t parser_tables___ParserTable___action_table_row254(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label255;
   return_label255: while(false);
@@ -11331,15 +11331,15 @@ val_t parser_tables___ParserTable___action_table_row255(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label256;
   return_label256: while(false);
@@ -11355,15 +11355,15 @@ val_t parser_tables___ParserTable___action_table_row256(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label257;
   return_label257: while(false);
@@ -11379,51 +11379,51 @@ val_t parser_tables___ParserTable___action_table_row257(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label258;
   return_label258: while(false);
@@ -11439,15 +11439,15 @@ val_t parser_tables___ParserTable___action_table_row258(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label259;
   return_label259: while(false);
@@ -11463,9 +11463,9 @@ val_t parser_tables___ParserTable___action_table_row259(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label260;
   return_label260: while(false);
@@ -11481,15 +11481,15 @@ val_t parser_tables___ParserTable___action_table_row260(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(259)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(259)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label261;
   return_label261: while(false);
@@ -11505,15 +11505,15 @@ val_t parser_tables___ParserTable___action_table_row261(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label262;
   return_label262: while(false);
@@ -11529,15 +11529,15 @@ val_t parser_tables___ParserTable___action_table_row262(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label263;
   return_label263: while(false);
@@ -11553,12 +11553,12 @@ val_t parser_tables___ParserTable___action_table_row263(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(280)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(388)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(280)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(388)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label264;
   return_label264: while(false);
@@ -11574,15 +11574,15 @@ val_t parser_tables___ParserTable___action_table_row264(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label265;
   return_label265: while(false);
@@ -11598,15 +11598,15 @@ val_t parser_tables___ParserTable___action_table_row265(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label266;
   return_label266: while(false);
@@ -11622,15 +11622,15 @@ val_t parser_tables___ParserTable___action_table_row266(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label267;
   return_label267: while(false);
@@ -11646,72 +11646,72 @@ val_t parser_tables___ParserTable___action_table_row267(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(266)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(266)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label268;
   return_label268: while(false);
@@ -11727,69 +11727,69 @@ val_t parser_tables___ParserTable___action_table_row268(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(267)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(267)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label269;
   return_label269: while(false);
@@ -11805,12 +11805,12 @@ val_t parser_tables___ParserTable___action_table_row269(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(268)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(268)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label270;
   return_label270: while(false);
@@ -11826,66 +11826,66 @@ val_t parser_tables___ParserTable___action_table_row270(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(269)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(269)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label271;
   return_label271: while(false);
@@ -11901,66 +11901,66 @@ val_t parser_tables___ParserTable___action_table_row271(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(270)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(270)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label272;
   return_label272: while(false);
@@ -11976,12 +11976,12 @@ val_t parser_tables___ParserTable___action_table_row272(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label273;
   return_label273: while(false);
@@ -11997,15 +11997,15 @@ val_t parser_tables___ParserTable___action_table_row273(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label274;
   return_label274: while(false);
@@ -12021,15 +12021,15 @@ val_t parser_tables___ParserTable___action_table_row274(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label275;
   return_label275: while(false);
@@ -12045,15 +12045,15 @@ val_t parser_tables___ParserTable___action_table_row275(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label276;
   return_label276: while(false);
@@ -12069,15 +12069,15 @@ val_t parser_tables___ParserTable___action_table_row276(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label277;
   return_label277: while(false);
@@ -12093,15 +12093,15 @@ val_t parser_tables___ParserTable___action_table_row277(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label278;
   return_label278: while(false);
@@ -12117,15 +12117,15 @@ val_t parser_tables___ParserTable___action_table_row278(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label279;
   return_label279: while(false);
@@ -12141,15 +12141,15 @@ val_t parser_tables___ParserTable___action_table_row279(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label280;
   return_label280: while(false);
@@ -12165,15 +12165,15 @@ val_t parser_tables___ParserTable___action_table_row280(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label281;
   return_label281: while(false);
@@ -12189,15 +12189,15 @@ val_t parser_tables___ParserTable___action_table_row281(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label282;
   return_label282: while(false);
@@ -12213,15 +12213,15 @@ val_t parser_tables___ParserTable___action_table_row282(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label283;
   return_label283: while(false);
@@ -12237,15 +12237,15 @@ val_t parser_tables___ParserTable___action_table_row283(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label284;
   return_label284: while(false);
@@ -12261,15 +12261,15 @@ val_t parser_tables___ParserTable___action_table_row284(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label285;
   return_label285: while(false);
@@ -12285,15 +12285,15 @@ val_t parser_tables___ParserTable___action_table_row285(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label286;
   return_label286: while(false);
@@ -12309,15 +12309,15 @@ val_t parser_tables___ParserTable___action_table_row286(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label287;
   return_label287: while(false);
@@ -12333,15 +12333,15 @@ val_t parser_tables___ParserTable___action_table_row287(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label288;
   return_label288: while(false);
@@ -12357,15 +12357,15 @@ val_t parser_tables___ParserTable___action_table_row288(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label289;
   return_label289: while(false);
@@ -12381,15 +12381,15 @@ val_t parser_tables___ParserTable___action_table_row289(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label290;
   return_label290: while(false);
@@ -12405,12 +12405,12 @@ val_t parser_tables___ParserTable___action_table_row290(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label291;
   return_label291: while(false);
@@ -12426,12 +12426,12 @@ val_t parser_tables___ParserTable___action_table_row291(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label292;
   return_label292: while(false);
@@ -12447,9 +12447,9 @@ val_t parser_tables___ParserTable___action_table_row292(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(309)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(309)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label293;
   return_label293: while(false);
@@ -12465,9 +12465,9 @@ val_t parser_tables___ParserTable___action_table_row293(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(308)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(308)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label294;
   return_label294: while(false);
@@ -12483,12 +12483,12 @@ val_t parser_tables___ParserTable___action_table_row294(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(235)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(416)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(235)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(416)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label295;
   return_label295: while(false);
@@ -12504,12 +12504,12 @@ val_t parser_tables___ParserTable___action_table_row295(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(294)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(417)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(294)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(417)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label296;
   return_label296: while(false);
@@ -12525,9 +12525,9 @@ val_t parser_tables___ParserTable___action_table_row296(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label297;
   return_label297: while(false);
@@ -12543,9 +12543,9 @@ val_t parser_tables___ParserTable___action_table_row297(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(365)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(365)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label298;
   return_label298: while(false);
@@ -12561,15 +12561,15 @@ val_t parser_tables___ParserTable___action_table_row298(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label299;
   return_label299: while(false);
@@ -12585,9 +12585,9 @@ val_t parser_tables___ParserTable___action_table_row299(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label300;
   return_label300: while(false);
@@ -12603,15 +12603,15 @@ val_t parser_tables___ParserTable___action_table_row300(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label301;
   return_label301: while(false);
@@ -12627,9 +12627,9 @@ val_t parser_tables___ParserTable___action_table_row301(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(392)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(392)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label302;
   return_label302: while(false);
@@ -12645,9 +12645,9 @@ val_t parser_tables___ParserTable___action_table_row302(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(391)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(391)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label303;
   return_label303: while(false);
@@ -12663,72 +12663,72 @@ val_t parser_tables___ParserTable___action_table_row303(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(302)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(302)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label304;
   return_label304: while(false);
@@ -12744,72 +12744,72 @@ val_t parser_tables___ParserTable___action_table_row304(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(303)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(303)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label305;
   return_label305: while(false);
@@ -12825,15 +12825,15 @@ val_t parser_tables___ParserTable___action_table_row305(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(422)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(423)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(422)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(423)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label306;
   return_label306: while(false);
@@ -12849,9 +12849,9 @@ val_t parser_tables___ParserTable___action_table_row306(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(264)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(264)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label307;
   return_label307: while(false);
@@ -12867,9 +12867,9 @@ val_t parser_tables___ParserTable___action_table_row307(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(269)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(269)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label308;
   return_label308: while(false);
@@ -12885,12 +12885,12 @@ val_t parser_tables___ParserTable___action_table_row308(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(307)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(307)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label309;
   return_label309: while(false);
@@ -12906,9 +12906,9 @@ val_t parser_tables___ParserTable___action_table_row309(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(284)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(284)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label310;
   return_label310: while(false);
@@ -12924,9 +12924,9 @@ val_t parser_tables___ParserTable___action_table_row310(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(289)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(289)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label311;
   return_label311: while(false);
@@ -12942,15 +12942,15 @@ val_t parser_tables___ParserTable___action_table_row311(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(310)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(426)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(427)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(310)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(426)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(427)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label312;
   return_label312: while(false);
@@ -12966,9 +12966,9 @@ val_t parser_tables___ParserTable___action_table_row312(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label313;
   return_label313: while(false);
@@ -12984,12 +12984,12 @@ val_t parser_tables___ParserTable___action_table_row313(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(428)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(428)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label314;
   return_label314: while(false);
@@ -13005,9 +13005,9 @@ val_t parser_tables___ParserTable___action_table_row314(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label315;
   return_label315: while(false);
@@ -13023,9 +13023,9 @@ val_t parser_tables___ParserTable___action_table_row315(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(197)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(197)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label316;
   return_label316: while(false);
@@ -13041,9 +13041,9 @@ val_t parser_tables___ParserTable___action_table_row316(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(198)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(198)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label317;
   return_label317: while(false);
@@ -13059,9 +13059,9 @@ val_t parser_tables___ParserTable___action_table_row317(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(199)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(199)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label318;
   return_label318: while(false);
@@ -13077,9 +13077,9 @@ val_t parser_tables___ParserTable___action_table_row318(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(200)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(200)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label319;
   return_label319: while(false);
@@ -13095,9 +13095,9 @@ val_t parser_tables___ParserTable___action_table_row319(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(201)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(201)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label320;
   return_label320: while(false);
@@ -13113,9 +13113,9 @@ val_t parser_tables___ParserTable___action_table_row320(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(202)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(202)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label321;
   return_label321: while(false);
@@ -13131,9 +13131,9 @@ val_t parser_tables___ParserTable___action_table_row321(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(205)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(205)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label322;
   return_label322: while(false);
@@ -13149,9 +13149,9 @@ val_t parser_tables___ParserTable___action_table_row322(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(203)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(203)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label323;
   return_label323: while(false);
@@ -13167,9 +13167,9 @@ val_t parser_tables___ParserTable___action_table_row323(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(206)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(206)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label324;
   return_label324: while(false);
@@ -13185,9 +13185,9 @@ val_t parser_tables___ParserTable___action_table_row324(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(204)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(204)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label325;
   return_label325: while(false);
@@ -13203,9 +13203,9 @@ val_t parser_tables___ParserTable___action_table_row325(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(208)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(208)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label326;
   return_label326: while(false);
@@ -13221,12 +13221,12 @@ val_t parser_tables___ParserTable___action_table_row326(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(195)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(429)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(195)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(429)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label327;
   return_label327: while(false);
@@ -13242,21 +13242,21 @@ val_t parser_tables___ParserTable___action_table_row327(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label328;
   return_label328: while(false);
@@ -13272,12 +13272,12 @@ val_t parser_tables___ParserTable___action_table_row328(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(327)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(436)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(327)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(436)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label329;
   return_label329: while(false);
@@ -13293,9 +13293,9 @@ val_t parser_tables___ParserTable___action_table_row329(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(246)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(246)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label330;
   return_label330: while(false);
@@ -13311,9 +13311,9 @@ val_t parser_tables___ParserTable___action_table_row330(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(643)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(643)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label331;
   return_label331: while(false);
@@ -13329,9 +13329,9 @@ val_t parser_tables___ParserTable___action_table_row331(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label332;
   return_label332: while(false);
@@ -13347,99 +13347,99 @@ val_t parser_tables___ParserTable___action_table_row332(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(331)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(331)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label333;
   return_label333: while(false);
@@ -13455,72 +13455,72 @@ val_t parser_tables___ParserTable___action_table_row333(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(332)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(332)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label334;
   return_label334: while(false);
@@ -13536,21 +13536,21 @@ val_t parser_tables___ParserTable___action_table_row334(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(333)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(439)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(441)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(442)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(333)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(439)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(441)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(442)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label335;
   return_label335: while(false);
@@ -13566,72 +13566,72 @@ val_t parser_tables___ParserTable___action_table_row335(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(334)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(334)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label336;
   return_label336: while(false);
@@ -13647,72 +13647,72 @@ val_t parser_tables___ParserTable___action_table_row336(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(335)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(335)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label337;
   return_label337: while(false);
@@ -13728,72 +13728,72 @@ val_t parser_tables___ParserTable___action_table_row337(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(336)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(336)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label338;
   return_label338: while(false);
@@ -13809,9 +13809,9 @@ val_t parser_tables___ParserTable___action_table_row338(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(645)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(645)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label339;
   return_label339: while(false);
@@ -13827,9 +13827,9 @@ val_t parser_tables___ParserTable___action_table_row339(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(368)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(368)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label340;
   return_label340: while(false);
@@ -13845,15 +13845,15 @@ val_t parser_tables___ParserTable___action_table_row340(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label341;
   return_label341: while(false);
@@ -13869,9 +13869,9 @@ val_t parser_tables___ParserTable___action_table_row341(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(348)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(348)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label342;
   return_label342: while(false);
@@ -13887,9 +13887,9 @@ val_t parser_tables___ParserTable___action_table_row342(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(266)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(266)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label343;
   return_label343: while(false);
@@ -13905,9 +13905,9 @@ val_t parser_tables___ParserTable___action_table_row343(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label344;
   return_label344: while(false);
@@ -13923,18 +13923,18 @@ val_t parser_tables___ParserTable___action_table_row344(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label345;
   return_label345: while(false);
@@ -13950,18 +13950,18 @@ val_t parser_tables___ParserTable___action_table_row345(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label346;
   return_label346: while(false);
@@ -13977,9 +13977,9 @@ val_t parser_tables___ParserTable___action_table_row346(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label347;
   return_label347: while(false);
@@ -13995,18 +13995,18 @@ val_t parser_tables___ParserTable___action_table_row347(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label348;
   return_label348: while(false);
@@ -14022,9 +14022,9 @@ val_t parser_tables___ParserTable___action_table_row348(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label349;
   return_label349: while(false);
@@ -14040,9 +14040,9 @@ val_t parser_tables___ParserTable___action_table_row349(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label350;
   return_label350: while(false);
@@ -14058,18 +14058,18 @@ val_t parser_tables___ParserTable___action_table_row350(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label351;
   return_label351: while(false);
@@ -14085,18 +14085,18 @@ val_t parser_tables___ParserTable___action_table_row351(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label352;
   return_label352: while(false);
@@ -14112,9 +14112,9 @@ val_t parser_tables___ParserTable___action_table_row352(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label353;
   return_label353: while(false);
@@ -14130,18 +14130,18 @@ val_t parser_tables___ParserTable___action_table_row353(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label354;
   return_label354: while(false);
@@ -14157,12 +14157,12 @@ val_t parser_tables___ParserTable___action_table_row354(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(353)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(353)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(256)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label355;
   return_label355: while(false);
@@ -14178,9 +14178,9 @@ val_t parser_tables___ParserTable___action_table_row355(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label356;
   return_label356: while(false);
@@ -14196,75 +14196,75 @@ val_t parser_tables___ParserTable___action_table_row356(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(355)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(455)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(355)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(455)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label357;
   return_label357: while(false);
@@ -14280,15 +14280,15 @@ val_t parser_tables___ParserTable___action_table_row357(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label358;
   return_label358: while(false);
@@ -14304,9 +14304,9 @@ val_t parser_tables___ParserTable___action_table_row358(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(525)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(525)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label359;
   return_label359: while(false);
@@ -14322,12 +14322,12 @@ val_t parser_tables___ParserTable___action_table_row359(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(514)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(458)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(514)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(458)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label360;
   return_label360: while(false);
@@ -14343,15 +14343,15 @@ val_t parser_tables___ParserTable___action_table_row360(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(459)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(459)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label361;
   return_label361: while(false);
@@ -14367,9 +14367,9 @@ val_t parser_tables___ParserTable___action_table_row361(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(545)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(545)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label362;
   return_label362: while(false);
@@ -14385,24 +14385,24 @@ val_t parser_tables___ParserTable___action_table_row362(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(381)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(381)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label363;
   return_label363: while(false);
@@ -14418,15 +14418,15 @@ val_t parser_tables___ParserTable___action_table_row363(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label364;
   return_label364: while(false);
@@ -14442,9 +14442,9 @@ val_t parser_tables___ParserTable___action_table_row364(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(544)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(544)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label365;
   return_label365: while(false);
@@ -14460,9 +14460,9 @@ val_t parser_tables___ParserTable___action_table_row365(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(553)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(553)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label366;
   return_label366: while(false);
@@ -14478,63 +14478,63 @@ val_t parser_tables___ParserTable___action_table_row366(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(365)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(365)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label367;
   return_label367: while(false);
@@ -14550,63 +14550,63 @@ val_t parser_tables___ParserTable___action_table_row367(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(366)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(366)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label368;
   return_label368: while(false);
@@ -14622,60 +14622,60 @@ val_t parser_tables___ParserTable___action_table_row368(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(367)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(367)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label369;
   return_label369: while(false);
@@ -14691,12 +14691,12 @@ val_t parser_tables___ParserTable___action_table_row369(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(368)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(358)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(368)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(358)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label370;
   return_label370: while(false);
@@ -14712,60 +14712,60 @@ val_t parser_tables___ParserTable___action_table_row370(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(369)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(369)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label371;
   return_label371: while(false);
@@ -14781,60 +14781,60 @@ val_t parser_tables___ParserTable___action_table_row371(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(370)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(370)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label372;
   return_label372: while(false);
@@ -14850,60 +14850,60 @@ val_t parser_tables___ParserTable___action_table_row372(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(371)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(371)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label373;
   return_label373: while(false);
@@ -14919,60 +14919,60 @@ val_t parser_tables___ParserTable___action_table_row373(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(372)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(372)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label374;
   return_label374: while(false);
@@ -14988,60 +14988,60 @@ val_t parser_tables___ParserTable___action_table_row374(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(373)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(373)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label375;
   return_label375: while(false);
@@ -15057,60 +15057,60 @@ val_t parser_tables___ParserTable___action_table_row375(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label376;
   return_label376: while(false);
@@ -15126,60 +15126,60 @@ val_t parser_tables___ParserTable___action_table_row376(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label377;
   return_label377: while(false);
@@ -15195,60 +15195,60 @@ val_t parser_tables___ParserTable___action_table_row377(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label378;
   return_label378: while(false);
@@ -15264,60 +15264,60 @@ val_t parser_tables___ParserTable___action_table_row378(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label379;
   return_label379: while(false);
@@ -15333,60 +15333,60 @@ val_t parser_tables___ParserTable___action_table_row379(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(378)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(378)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label380;
   return_label380: while(false);
@@ -15402,60 +15402,60 @@ val_t parser_tables___ParserTable___action_table_row380(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(379)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(379)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label381;
   return_label381: while(false);
@@ -15471,60 +15471,60 @@ val_t parser_tables___ParserTable___action_table_row381(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(54)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(380)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(380)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label382;
   return_label382: while(false);
@@ -15540,21 +15540,21 @@ val_t parser_tables___ParserTable___action_table_row382(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(381)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(478)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(479)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(480)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(481)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(381)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(478)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(479)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(480)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(481)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label383;
   return_label383: while(false);
@@ -15570,21 +15570,21 @@ val_t parser_tables___ParserTable___action_table_row383(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label384;
   return_label384: while(false);
@@ -15600,12 +15600,12 @@ val_t parser_tables___ParserTable___action_table_row384(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(383)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(483)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(383)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(483)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label385;
   return_label385: while(false);
@@ -15621,93 +15621,93 @@ val_t parser_tables___ParserTable___action_table_row385(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(384)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(384)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label386;
   return_label386: while(false);
@@ -15723,15 +15723,15 @@ val_t parser_tables___ParserTable___action_table_row386(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(385)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(385)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label387;
   return_label387: while(false);
@@ -15747,12 +15747,12 @@ val_t parser_tables___ParserTable___action_table_row387(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(386)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(386)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label388;
   return_label388: while(false);
@@ -15768,72 +15768,72 @@ val_t parser_tables___ParserTable___action_table_row388(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(387)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(387)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label389;
   return_label389: while(false);
@@ -15849,15 +15849,15 @@ val_t parser_tables___ParserTable___action_table_row389(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label390;
   return_label390: while(false);
@@ -15873,12 +15873,12 @@ val_t parser_tables___ParserTable___action_table_row390(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(389)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(489)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(389)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(489)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label391;
   return_label391: while(false);
@@ -15894,12 +15894,12 @@ val_t parser_tables___ParserTable___action_table_row391(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(390)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(490)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(390)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(490)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label392;
   return_label392: while(false);
@@ -15915,12 +15915,12 @@ val_t parser_tables___ParserTable___action_table_row392(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(391)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(491)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(391)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(491)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label393;
   return_label393: while(false);
@@ -15936,15 +15936,15 @@ val_t parser_tables___ParserTable___action_table_row393(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label394;
   return_label394: while(false);
@@ -15960,9 +15960,9 @@ val_t parser_tables___ParserTable___action_table_row394(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label395;
   return_label395: while(false);
@@ -15978,15 +15978,15 @@ val_t parser_tables___ParserTable___action_table_row395(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(417)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(417)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label396;
   return_label396: while(false);
@@ -16002,9 +16002,9 @@ val_t parser_tables___ParserTable___action_table_row396(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(340)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(340)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label397;
   return_label397: while(false);
@@ -16020,9 +16020,9 @@ val_t parser_tables___ParserTable___action_table_row397(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(339)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(339)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label398;
   return_label398: while(false);
@@ -16038,9 +16038,9 @@ val_t parser_tables___ParserTable___action_table_row398(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label399;
   return_label399: while(false);
@@ -16056,69 +16056,69 @@ val_t parser_tables___ParserTable___action_table_row399(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label400;
   return_label400: while(false);
@@ -16134,69 +16134,69 @@ val_t parser_tables___ParserTable___action_table_row400(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(399)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label401;
   return_label401: while(false);
@@ -16212,66 +16212,66 @@ val_t parser_tables___ParserTable___action_table_row401(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(400)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(400)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label402;
   return_label402: while(false);
@@ -16287,12 +16287,12 @@ val_t parser_tables___ParserTable___action_table_row402(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(401)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(401)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label403;
   return_label403: while(false);
@@ -16308,66 +16308,66 @@ val_t parser_tables___ParserTable___action_table_row403(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(402)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(402)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label404;
   return_label404: while(false);
@@ -16383,66 +16383,66 @@ val_t parser_tables___ParserTable___action_table_row404(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(403)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(403)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label405;
   return_label405: while(false);
@@ -16458,66 +16458,66 @@ val_t parser_tables___ParserTable___action_table_row405(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(404)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(404)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label406;
   return_label406: while(false);
@@ -16533,66 +16533,66 @@ val_t parser_tables___ParserTable___action_table_row406(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(405)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(405)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label407;
   return_label407: while(false);
@@ -16608,66 +16608,66 @@ val_t parser_tables___ParserTable___action_table_row407(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(406)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(406)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label408;
   return_label408: while(false);
@@ -16683,66 +16683,66 @@ val_t parser_tables___ParserTable___action_table_row408(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(407)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(407)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label409;
   return_label409: while(false);
@@ -16758,66 +16758,66 @@ val_t parser_tables___ParserTable___action_table_row409(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(408)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(408)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label410;
   return_label410: while(false);
@@ -16833,66 +16833,66 @@ val_t parser_tables___ParserTable___action_table_row410(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(409)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(409)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label411;
   return_label411: while(false);
@@ -16908,66 +16908,66 @@ val_t parser_tables___ParserTable___action_table_row411(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(410)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(410)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label412;
   return_label412: while(false);
@@ -16983,66 +16983,66 @@ val_t parser_tables___ParserTable___action_table_row412(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(411)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(411)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label413;
   return_label413: while(false);
@@ -17058,66 +17058,66 @@ val_t parser_tables___ParserTable___action_table_row413(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(412)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(412)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label414;
   return_label414: while(false);
@@ -17133,66 +17133,66 @@ val_t parser_tables___ParserTable___action_table_row414(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(413)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(413)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label415;
   return_label415: while(false);
@@ -17208,21 +17208,21 @@ val_t parser_tables___ParserTable___action_table_row415(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(414)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(511)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(512)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(414)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(511)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(512)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label416;
   return_label416: while(false);
@@ -17238,9 +17238,9 @@ val_t parser_tables___ParserTable___action_table_row416(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label417;
   return_label417: while(false);
@@ -17256,15 +17256,15 @@ val_t parser_tables___ParserTable___action_table_row417(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label418;
   return_label418: while(false);
@@ -17280,15 +17280,15 @@ val_t parser_tables___ParserTable___action_table_row418(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label419;
   return_label419: while(false);
@@ -17304,21 +17304,21 @@ val_t parser_tables___ParserTable___action_table_row419(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(418)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(515)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(512)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(418)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(515)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(512)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label420;
   return_label420: while(false);
@@ -17334,18 +17334,18 @@ val_t parser_tables___ParserTable___action_table_row420(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(419)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(516)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(518)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(419)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(516)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(518)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label421;
   return_label421: while(false);
@@ -17361,9 +17361,9 @@ val_t parser_tables___ParserTable___action_table_row421(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label422;
   return_label422: while(false);
@@ -17379,9 +17379,9 @@ val_t parser_tables___ParserTable___action_table_row422(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(291)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(291)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label423;
   return_label423: while(false);
@@ -17397,99 +17397,99 @@ val_t parser_tables___ParserTable___action_table_row423(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(422)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(422)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label424;
   return_label424: while(false);
@@ -17505,9 +17505,9 @@ val_t parser_tables___ParserTable___action_table_row424(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(386)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(386)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label425;
   return_label425: while(false);
@@ -17523,18 +17523,18 @@ val_t parser_tables___ParserTable___action_table_row425(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(523)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(523)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label426;
   return_label426: while(false);
@@ -17550,9 +17550,9 @@ val_t parser_tables___ParserTable___action_table_row426(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(270)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(270)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label427;
   return_label427: while(false);
@@ -17568,15 +17568,15 @@ val_t parser_tables___ParserTable___action_table_row427(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(426)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(426)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label428;
   return_label428: while(false);
@@ -17592,15 +17592,15 @@ val_t parser_tables___ParserTable___action_table_row428(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(427)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(427)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label429;
   return_label429: while(false);
@@ -17616,12 +17616,12 @@ val_t parser_tables___ParserTable___action_table_row429(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(207)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(527)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(207)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(527)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label430;
   return_label430: while(false);
@@ -17637,9 +17637,9 @@ val_t parser_tables___ParserTable___action_table_row430(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(209)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(209)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label431;
   return_label431: while(false);
@@ -17655,15 +17655,15 @@ val_t parser_tables___ParserTable___action_table_row431(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label432;
   return_label432: while(false);
@@ -17679,15 +17679,15 @@ val_t parser_tables___ParserTable___action_table_row432(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(431)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(529)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(530)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(431)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(529)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(530)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label433;
   return_label433: while(false);
@@ -17703,18 +17703,18 @@ val_t parser_tables___ParserTable___action_table_row433(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label434;
   return_label434: while(false);
@@ -17730,9 +17730,9 @@ val_t parser_tables___ParserTable___action_table_row434(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(211)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(211)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label435;
   return_label435: while(false);
@@ -17748,15 +17748,15 @@ val_t parser_tables___ParserTable___action_table_row435(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label436;
   return_label436: while(false);
@@ -17772,12 +17772,12 @@ val_t parser_tables___ParserTable___action_table_row436(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(215)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(215)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label437;
   return_label437: while(false);
@@ -17793,18 +17793,18 @@ val_t parser_tables___ParserTable___action_table_row437(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(539)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(539)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label438;
   return_label438: while(false);
@@ -17820,9 +17820,9 @@ val_t parser_tables___ParserTable___action_table_row438(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(305)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(305)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label439;
   return_label439: while(false);
@@ -17838,15 +17838,15 @@ val_t parser_tables___ParserTable___action_table_row439(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label440;
   return_label440: while(false);
@@ -17862,75 +17862,75 @@ val_t parser_tables___ParserTable___action_table_row440(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label441;
   return_label441: while(false);
@@ -17946,15 +17946,15 @@ val_t parser_tables___ParserTable___action_table_row441(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label442;
   return_label442: while(false);
@@ -17970,84 +17970,84 @@ val_t parser_tables___ParserTable___action_table_row442(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(78)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label443;
   return_label443: while(false);
@@ -18063,18 +18063,18 @@ val_t parser_tables___ParserTable___action_table_row443(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(343)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(551)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(343)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(551)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label444;
   return_label444: while(false);
@@ -18090,9 +18090,9 @@ val_t parser_tables___ParserTable___action_table_row444(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label445;
   return_label445: while(false);
@@ -18108,9 +18108,9 @@ val_t parser_tables___ParserTable___action_table_row445(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(292)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(292)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label446;
   return_label446: while(false);
@@ -18126,15 +18126,15 @@ val_t parser_tables___ParserTable___action_table_row446(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label447;
   return_label447: while(false);
@@ -18150,9 +18150,9 @@ val_t parser_tables___ParserTable___action_table_row447(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(369)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(369)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label448;
   return_label448: while(false);
@@ -18168,9 +18168,9 @@ val_t parser_tables___ParserTable___action_table_row448(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label449;
   return_label449: while(false);
@@ -18186,9 +18186,9 @@ val_t parser_tables___ParserTable___action_table_row449(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label450;
   return_label450: while(false);
@@ -18204,18 +18204,18 @@ val_t parser_tables___ParserTable___action_table_row450(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label451;
   return_label451: while(false);
@@ -18231,9 +18231,9 @@ val_t parser_tables___ParserTable___action_table_row451(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label452;
   return_label452: while(false);
@@ -18249,9 +18249,9 @@ val_t parser_tables___ParserTable___action_table_row452(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label453;
   return_label453: while(false);
@@ -18267,9 +18267,9 @@ val_t parser_tables___ParserTable___action_table_row453(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label454;
   return_label454: while(false);
@@ -18285,18 +18285,18 @@ val_t parser_tables___ParserTable___action_table_row454(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label455;
   return_label455: while(false);
@@ -18312,9 +18312,9 @@ val_t parser_tables___ParserTable___action_table_row455(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label456;
   return_label456: while(false);
@@ -18330,9 +18330,9 @@ val_t parser_tables___ParserTable___action_table_row456(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(376)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label457;
   return_label457: while(false);
@@ -18348,15 +18348,15 @@ val_t parser_tables___ParserTable___action_table_row457(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label458;
   return_label458: while(false);
@@ -18372,12 +18372,12 @@ val_t parser_tables___ParserTable___action_table_row458(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(457)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(557)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(457)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(557)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label459;
   return_label459: while(false);
@@ -18393,15 +18393,15 @@ val_t parser_tables___ParserTable___action_table_row459(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label460;
   return_label460: while(false);
@@ -18417,15 +18417,15 @@ val_t parser_tables___ParserTable___action_table_row460(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label461;
   return_label461: while(false);
@@ -18441,9 +18441,9 @@ val_t parser_tables___ParserTable___action_table_row461(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(547)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(547)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label462;
   return_label462: while(false);
@@ -18459,15 +18459,15 @@ val_t parser_tables___ParserTable___action_table_row462(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(461)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(560)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(461)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(560)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label463;
   return_label463: while(false);
@@ -18483,9 +18483,9 @@ val_t parser_tables___ParserTable___action_table_row463(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(523)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(523)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label464;
   return_label464: while(false);
@@ -18501,9 +18501,9 @@ val_t parser_tables___ParserTable___action_table_row464(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(522)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(522)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label465;
   return_label465: while(false);
@@ -18519,15 +18519,15 @@ val_t parser_tables___ParserTable___action_table_row465(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(528)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(528)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label466;
   return_label466: while(false);
@@ -18543,9 +18543,9 @@ val_t parser_tables___ParserTable___action_table_row466(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(535)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(535)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label467;
   return_label467: while(false);
@@ -18561,18 +18561,18 @@ val_t parser_tables___ParserTable___action_table_row467(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(537)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(537)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label468;
   return_label468: while(false);
@@ -18588,18 +18588,18 @@ val_t parser_tables___ParserTable___action_table_row468(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(538)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(538)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(252)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label469;
   return_label469: while(false);
@@ -18615,15 +18615,15 @@ val_t parser_tables___ParserTable___action_table_row469(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(527)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(527)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label470;
   return_label470: while(false);
@@ -18639,15 +18639,15 @@ val_t parser_tables___ParserTable___action_table_row470(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(529)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(529)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label471;
   return_label471: while(false);
@@ -18663,15 +18663,15 @@ val_t parser_tables___ParserTable___action_table_row471(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(530)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(530)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label472;
   return_label472: while(false);
@@ -18687,15 +18687,15 @@ val_t parser_tables___ParserTable___action_table_row472(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(531)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(531)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label473;
   return_label473: while(false);
@@ -18711,15 +18711,15 @@ val_t parser_tables___ParserTable___action_table_row473(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(532)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(532)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label474;
   return_label474: while(false);
@@ -18735,15 +18735,15 @@ val_t parser_tables___ParserTable___action_table_row474(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(533)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(533)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label475;
   return_label475: while(false);
@@ -18759,15 +18759,15 @@ val_t parser_tables___ParserTable___action_table_row475(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(534)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(534)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label476;
   return_label476: while(false);
@@ -18783,9 +18783,9 @@ val_t parser_tables___ParserTable___action_table_row476(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(540)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(540)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label477;
   return_label477: while(false);
@@ -18801,9 +18801,9 @@ val_t parser_tables___ParserTable___action_table_row477(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(541)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(541)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label478;
   return_label478: while(false);
@@ -18819,9 +18819,9 @@ val_t parser_tables___ParserTable___action_table_row478(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(542)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(542)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label479;
   return_label479: while(false);
@@ -18837,12 +18837,12 @@ val_t parser_tables___ParserTable___action_table_row479(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label480;
   return_label480: while(false);
@@ -18858,15 +18858,15 @@ val_t parser_tables___ParserTable___action_table_row480(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label481;
   return_label481: while(false);
@@ -18882,12 +18882,12 @@ val_t parser_tables___ParserTable___action_table_row481(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label482;
   return_label482: while(false);
@@ -18903,9 +18903,9 @@ val_t parser_tables___ParserTable___action_table_row482(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(548)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(548)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label483;
   return_label483: while(false);
@@ -18921,15 +18921,15 @@ val_t parser_tables___ParserTable___action_table_row483(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(482)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(565)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(566)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(482)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(565)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(566)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label484;
   return_label484: while(false);
@@ -18945,18 +18945,18 @@ val_t parser_tables___ParserTable___action_table_row484(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(539)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(539)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label485;
   return_label485: while(false);
@@ -18972,9 +18972,9 @@ val_t parser_tables___ParserTable___action_table_row485(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(242)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(242)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label486;
   return_label486: while(false);
@@ -18990,93 +18990,93 @@ val_t parser_tables___ParserTable___action_table_row486(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(485)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(571)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(485)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(571)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label487;
   return_label487: while(false);
@@ -19092,9 +19092,9 @@ val_t parser_tables___ParserTable___action_table_row487(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(240)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(240)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label488;
   return_label488: while(false);
@@ -19110,9 +19110,9 @@ val_t parser_tables___ParserTable___action_table_row488(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(281)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(281)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label489;
   return_label489: while(false);
@@ -19128,72 +19128,72 @@ val_t parser_tables___ParserTable___action_table_row489(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(488)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(488)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label490;
   return_label490: while(false);
@@ -19209,102 +19209,102 @@ val_t parser_tables___ParserTable___action_table_row490(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(489)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(489)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label491;
   return_label491: while(false);
@@ -19320,99 +19320,99 @@ val_t parser_tables___ParserTable___action_table_row491(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(490)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(490)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label492;
   return_label492: while(false);
@@ -19428,15 +19428,15 @@ val_t parser_tables___ParserTable___action_table_row492(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label493;
   return_label493: while(false);
@@ -19452,12 +19452,12 @@ val_t parser_tables___ParserTable___action_table_row493(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(492)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(604)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(492)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(604)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label494;
   return_label494: while(false);
@@ -19473,9 +19473,9 @@ val_t parser_tables___ParserTable___action_table_row494(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(342)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(342)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label495;
   return_label495: while(false);
@@ -19491,9 +19491,9 @@ val_t parser_tables___ParserTable___action_table_row495(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label496;
   return_label496: while(false);
@@ -19509,9 +19509,9 @@ val_t parser_tables___ParserTable___action_table_row496(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label497;
   return_label497: while(false);
@@ -19527,15 +19527,15 @@ val_t parser_tables___ParserTable___action_table_row497(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label498;
   return_label498: while(false);
@@ -19551,9 +19551,9 @@ val_t parser_tables___ParserTable___action_table_row498(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(330)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(330)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label499;
   return_label499: while(false);
@@ -19569,18 +19569,18 @@ val_t parser_tables___ParserTable___action_table_row499(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(332)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(332)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label500;
   return_label500: while(false);
@@ -19596,18 +19596,18 @@ val_t parser_tables___ParserTable___action_table_row500(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(333)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(333)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(286)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(287)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label501;
   return_label501: while(false);
@@ -19623,15 +19623,15 @@ val_t parser_tables___ParserTable___action_table_row501(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label502;
   return_label502: while(false);
@@ -19647,15 +19647,15 @@ val_t parser_tables___ParserTable___action_table_row502(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label503;
   return_label503: while(false);
@@ -19671,15 +19671,15 @@ val_t parser_tables___ParserTable___action_table_row503(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label504;
   return_label504: while(false);
@@ -19695,15 +19695,15 @@ val_t parser_tables___ParserTable___action_table_row504(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(326)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(326)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label505;
   return_label505: while(false);
@@ -19719,15 +19719,15 @@ val_t parser_tables___ParserTable___action_table_row505(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(327)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(327)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label506;
   return_label506: while(false);
@@ -19743,15 +19743,15 @@ val_t parser_tables___ParserTable___action_table_row506(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(328)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(328)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label507;
   return_label507: while(false);
@@ -19767,15 +19767,15 @@ val_t parser_tables___ParserTable___action_table_row507(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(329)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(329)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label508;
   return_label508: while(false);
@@ -19791,9 +19791,9 @@ val_t parser_tables___ParserTable___action_table_row508(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(335)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(335)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label509;
   return_label509: while(false);
@@ -19809,9 +19809,9 @@ val_t parser_tables___ParserTable___action_table_row509(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(336)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(336)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label510;
   return_label510: while(false);
@@ -19827,9 +19827,9 @@ val_t parser_tables___ParserTable___action_table_row510(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(337)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(337)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label511;
   return_label511: while(false);
@@ -19845,12 +19845,12 @@ val_t parser_tables___ParserTable___action_table_row511(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label512;
   return_label512: while(false);
@@ -19866,12 +19866,12 @@ val_t parser_tables___ParserTable___action_table_row512(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label513;
   return_label513: while(false);
@@ -19887,9 +19887,9 @@ val_t parser_tables___ParserTable___action_table_row513(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(343)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(343)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label514;
   return_label514: while(false);
@@ -19905,12 +19905,12 @@ val_t parser_tables___ParserTable___action_table_row514(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(513)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(513)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label515;
   return_label515: while(false);
@@ -19926,12 +19926,12 @@ val_t parser_tables___ParserTable___action_table_row515(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(514)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(608)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(514)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(608)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label516;
   return_label516: while(false);
@@ -19947,12 +19947,12 @@ val_t parser_tables___ParserTable___action_table_row516(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label517;
   return_label517: while(false);
@@ -19968,9 +19968,9 @@ val_t parser_tables___ParserTable___action_table_row517(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(383)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(383)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label518;
   return_label518: while(false);
@@ -19986,15 +19986,15 @@ val_t parser_tables___ParserTable___action_table_row518(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label519;
   return_label519: while(false);
@@ -20010,15 +20010,15 @@ val_t parser_tables___ParserTable___action_table_row519(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label520;
   return_label520: while(false);
@@ -20034,9 +20034,9 @@ val_t parser_tables___ParserTable___action_table_row520(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(646)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(646)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label521;
   return_label521: while(false);
@@ -20052,15 +20052,15 @@ val_t parser_tables___ParserTable___action_table_row521(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(520)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(612)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(520)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(612)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label522;
   return_label522: while(false);
@@ -20076,9 +20076,9 @@ val_t parser_tables___ParserTable___action_table_row522(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(271)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(271)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label523;
   return_label523: while(false);
@@ -20094,93 +20094,93 @@ val_t parser_tables___ParserTable___action_table_row523(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label524;
   return_label524: while(false);
@@ -20196,99 +20196,99 @@ val_t parser_tables___ParserTable___action_table_row524(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(523)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(523)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label525;
   return_label525: while(false);
@@ -20304,12 +20304,12 @@ val_t parser_tables___ParserTable___action_table_row525(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(524)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(617)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(524)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(617)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label526;
   return_label526: while(false);
@@ -20325,9 +20325,9 @@ val_t parser_tables___ParserTable___action_table_row526(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label527;
   return_label527: while(false);
@@ -20343,9 +20343,9 @@ val_t parser_tables___ParserTable___action_table_row527(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label528;
   return_label528: while(false);
@@ -20361,9 +20361,9 @@ val_t parser_tables___ParserTable___action_table_row528(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(210)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(210)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label529;
   return_label529: while(false);
@@ -20379,15 +20379,15 @@ val_t parser_tables___ParserTable___action_table_row529(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(528)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(618)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(619)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(528)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(618)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(619)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label530;
   return_label530: while(false);
@@ -20403,12 +20403,12 @@ val_t parser_tables___ParserTable___action_table_row530(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(529)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(621)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(529)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(621)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label531;
   return_label531: while(false);
@@ -20424,99 +20424,99 @@ val_t parser_tables___ParserTable___action_table_row531(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(530)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(530)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label532;
   return_label532: while(false);
@@ -20532,9 +20532,9 @@ val_t parser_tables___ParserTable___action_table_row532(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(212)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(212)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label533;
   return_label533: while(false);
@@ -20550,15 +20550,15 @@ val_t parser_tables___ParserTable___action_table_row533(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label534;
   return_label534: while(false);
@@ -20574,12 +20574,12 @@ val_t parser_tables___ParserTable___action_table_row534(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(216)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(216)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label535;
   return_label535: while(false);
@@ -20595,9 +20595,9 @@ val_t parser_tables___ParserTable___action_table_row535(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(213)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(213)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label536;
   return_label536: while(false);
@@ -20613,12 +20613,12 @@ val_t parser_tables___ParserTable___action_table_row536(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(217)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(217)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label537;
   return_label537: while(false);
@@ -20634,18 +20634,18 @@ val_t parser_tables___ParserTable___action_table_row537(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(625)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(625)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label538;
   return_label538: while(false);
@@ -20661,9 +20661,9 @@ val_t parser_tables___ParserTable___action_table_row538(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(638)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(638)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label539;
   return_label539: while(false);
@@ -20679,12 +20679,12 @@ val_t parser_tables___ParserTable___action_table_row539(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(230)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(230)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label540;
   return_label540: while(false);
@@ -20700,15 +20700,15 @@ val_t parser_tables___ParserTable___action_table_row540(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label541;
   return_label541: while(false);
@@ -20724,15 +20724,15 @@ val_t parser_tables___ParserTable___action_table_row541(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label542;
   return_label542: while(false);
@@ -20748,9 +20748,9 @@ val_t parser_tables___ParserTable___action_table_row542(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(628)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(628)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label543;
   return_label543: while(false);
@@ -20766,15 +20766,15 @@ val_t parser_tables___ParserTable___action_table_row543(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(542)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(542)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label544;
   return_label544: while(false);
@@ -20790,33 +20790,33 @@ val_t parser_tables___ParserTable___action_table_row544(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(634)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(634)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label545;
   return_label545: while(false);
@@ -20832,15 +20832,15 @@ val_t parser_tables___ParserTable___action_table_row545(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label546;
   return_label546: while(false);
@@ -20856,15 +20856,15 @@ val_t parser_tables___ParserTable___action_table_row546(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(545)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(516)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(545)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(516)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label547;
   return_label547: while(false);
@@ -20880,9 +20880,9 @@ val_t parser_tables___ParserTable___action_table_row547(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(349)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(349)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label548;
   return_label548: while(false);
@@ -20898,9 +20898,9 @@ val_t parser_tables___ParserTable___action_table_row548(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(267)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(267)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label549;
   return_label549: while(false);
@@ -20916,12 +20916,12 @@ val_t parser_tables___ParserTable___action_table_row549(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(548)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(642)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(548)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(642)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label550;
   return_label550: while(false);
@@ -20937,18 +20937,18 @@ val_t parser_tables___ParserTable___action_table_row550(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(643)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(643)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label551;
   return_label551: while(false);
@@ -20964,12 +20964,12 @@ val_t parser_tables___ParserTable___action_table_row551(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(261)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(261)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label552;
   return_label552: while(false);
@@ -20985,72 +20985,72 @@ val_t parser_tables___ParserTable___action_table_row552(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(551)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(551)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label553;
   return_label553: while(false);
@@ -21066,72 +21066,72 @@ val_t parser_tables___ParserTable___action_table_row553(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(552)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(552)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label554;
   return_label554: while(false);
@@ -21147,9 +21147,9 @@ val_t parser_tables___ParserTable___action_table_row554(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(371)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(371)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label555;
   return_label555: while(false);
@@ -21165,9 +21165,9 @@ val_t parser_tables___ParserTable___action_table_row555(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label556;
   return_label556: while(false);
@@ -21183,9 +21183,9 @@ val_t parser_tables___ParserTable___action_table_row556(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label557;
   return_label557: while(false);
@@ -21201,15 +21201,15 @@ val_t parser_tables___ParserTable___action_table_row557(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(556)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(648)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(556)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(648)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label558;
   return_label558: while(false);
@@ -21225,15 +21225,15 @@ val_t parser_tables___ParserTable___action_table_row558(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label559;
   return_label559: while(false);
@@ -21249,12 +21249,12 @@ val_t parser_tables___ParserTable___action_table_row559(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(558)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(558)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label560;
   return_label560: while(false);
@@ -21270,12 +21270,12 @@ val_t parser_tables___ParserTable___action_table_row560(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(559)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(652)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(559)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(652)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label561;
   return_label561: while(false);
@@ -21291,24 +21291,24 @@ val_t parser_tables___ParserTable___action_table_row561(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(378)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(378)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label562;
   return_label562: while(false);
@@ -21324,15 +21324,15 @@ val_t parser_tables___ParserTable___action_table_row562(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(561)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(653)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(561)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(653)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label563;
   return_label563: while(false);
@@ -21348,9 +21348,9 @@ val_t parser_tables___ParserTable___action_table_row563(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(554)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(554)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label564;
   return_label564: while(false);
@@ -21366,12 +21366,12 @@ val_t parser_tables___ParserTable___action_table_row564(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(563)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(654)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(563)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(654)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label565;
   return_label565: while(false);
@@ -21387,9 +21387,9 @@ val_t parser_tables___ParserTable___action_table_row565(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(550)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(550)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label566;
   return_label566: while(false);
@@ -21405,12 +21405,12 @@ val_t parser_tables___ParserTable___action_table_row566(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(565)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(655)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(565)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(655)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label567;
   return_label567: while(false);
@@ -21426,99 +21426,99 @@ val_t parser_tables___ParserTable___action_table_row567(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(566)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(566)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label568;
   return_label568: while(false);
@@ -21534,15 +21534,15 @@ val_t parser_tables___ParserTable___action_table_row568(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label569;
   return_label569: while(false);
@@ -21558,15 +21558,15 @@ val_t parser_tables___ParserTable___action_table_row569(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(568)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(568)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label570;
   return_label570: while(false);
@@ -21582,33 +21582,33 @@ val_t parser_tables___ParserTable___action_table_row570(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(661)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(661)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label571;
   return_label571: while(false);
@@ -21624,15 +21624,15 @@ val_t parser_tables___ParserTable___action_table_row571(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label572;
   return_label572: while(false);
@@ -21648,9 +21648,9 @@ val_t parser_tables___ParserTable___action_table_row572(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label573;
   return_label573: while(false);
@@ -21666,9 +21666,9 @@ val_t parser_tables___ParserTable___action_table_row573(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(282)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(282)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label574;
   return_label574: while(false);
@@ -21684,9 +21684,9 @@ val_t parser_tables___ParserTable___action_table_row574(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(303)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(303)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label575;
   return_label575: while(false);
@@ -21702,75 +21702,75 @@ val_t parser_tables___ParserTable___action_table_row575(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label576;
   return_label576: while(false);
@@ -21786,99 +21786,99 @@ val_t parser_tables___ParserTable___action_table_row576(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label577;
   return_label577: while(false);
@@ -21894,12 +21894,12 @@ val_t parser_tables___ParserTable___action_table_row577(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(669)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(669)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label578;
   return_label578: while(false);
@@ -21915,15 +21915,15 @@ val_t parser_tables___ParserTable___action_table_row578(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label579;
   return_label579: while(false);
@@ -21939,99 +21939,99 @@ val_t parser_tables___ParserTable___action_table_row579(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label580;
   return_label580: while(false);
@@ -22047,15 +22047,15 @@ val_t parser_tables___ParserTable___action_table_row580(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label581;
   return_label581: while(false);
@@ -22071,75 +22071,75 @@ val_t parser_tables___ParserTable___action_table_row581(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(249)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(463)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(249)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(463)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label582;
   return_label582: while(false);
@@ -22155,75 +22155,75 @@ val_t parser_tables___ParserTable___action_table_row582(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(468)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(254)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(468)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label583;
   return_label583: while(false);
@@ -22239,75 +22239,75 @@ val_t parser_tables___ParserTable___action_table_row583(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(251)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(465)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(251)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(465)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label584;
   return_label584: while(false);
@@ -22323,12 +22323,12 @@ val_t parser_tables___ParserTable___action_table_row584(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(467)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(253)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(467)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label585;
   return_label585: while(false);
@@ -22344,72 +22344,72 @@ val_t parser_tables___ParserTable___action_table_row585(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(679)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(679)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label586;
   return_label586: while(false);
@@ -22425,75 +22425,75 @@ val_t parser_tables___ParserTable___action_table_row586(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label587;
   return_label587: while(false);
@@ -22509,87 +22509,87 @@ val_t parser_tables___ParserTable___action_table_row587(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(81)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label588;
   return_label588: while(false);
@@ -22605,18 +22605,18 @@ val_t parser_tables___ParserTable___action_table_row588(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(344)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(685)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(344)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(685)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label589;
   return_label589: while(false);
@@ -22632,9 +22632,9 @@ val_t parser_tables___ParserTable___action_table_row589(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(297)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(297)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label590;
   return_label590: while(false);
@@ -22650,9 +22650,9 @@ val_t parser_tables___ParserTable___action_table_row590(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(300)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(300)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label591;
   return_label591: while(false);
@@ -22668,15 +22668,15 @@ val_t parser_tables___ParserTable___action_table_row591(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label592;
   return_label592: while(false);
@@ -22692,15 +22692,15 @@ val_t parser_tables___ParserTable___action_table_row592(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(591)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(688)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(591)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(688)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label593;
   return_label593: while(false);
@@ -22716,12 +22716,12 @@ val_t parser_tables___ParserTable___action_table_row593(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(592)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(690)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(592)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(690)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label594;
   return_label594: while(false);
@@ -22737,96 +22737,96 @@ val_t parser_tables___ParserTable___action_table_row594(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(90)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(593)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(593)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label595;
   return_label595: while(false);
@@ -22842,12 +22842,12 @@ val_t parser_tables___ParserTable___action_table_row595(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(594)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(693)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(594)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(693)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label596;
   return_label596: while(false);
@@ -22863,9 +22863,9 @@ val_t parser_tables___ParserTable___action_table_row596(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(461)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(461)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label597;
   return_label597: while(false);
@@ -22881,9 +22881,9 @@ val_t parser_tables___ParserTable___action_table_row597(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(462)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(462)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label598;
   return_label598: while(false);
@@ -22899,9 +22899,9 @@ val_t parser_tables___ParserTable___action_table_row598(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(470)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(470)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label599;
   return_label599: while(false);
@@ -22917,9 +22917,9 @@ val_t parser_tables___ParserTable___action_table_row599(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(471)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(471)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label600;
   return_label600: while(false);
@@ -22935,9 +22935,9 @@ val_t parser_tables___ParserTable___action_table_row600(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(472)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(472)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label601;
   return_label601: while(false);
@@ -22953,9 +22953,9 @@ val_t parser_tables___ParserTable___action_table_row601(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(473)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(473)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label602;
   return_label602: while(false);
@@ -22971,9 +22971,9 @@ val_t parser_tables___ParserTable___action_table_row602(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(474)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(474)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label603;
   return_label603: while(false);
@@ -22989,9 +22989,9 @@ val_t parser_tables___ParserTable___action_table_row603(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label604;
   return_label604: while(false);
@@ -23007,72 +23007,72 @@ val_t parser_tables___ParserTable___action_table_row604(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(603)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(603)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label605;
   return_label605: while(false);
@@ -23088,15 +23088,15 @@ val_t parser_tables___ParserTable___action_table_row605(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label606;
   return_label606: while(false);
@@ -23112,12 +23112,12 @@ val_t parser_tables___ParserTable___action_table_row606(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(304)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label607;
   return_label607: while(false);
@@ -23133,12 +23133,12 @@ val_t parser_tables___ParserTable___action_table_row607(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(237)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(697)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(237)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(697)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label608;
   return_label608: while(false);
@@ -23154,15 +23154,15 @@ val_t parser_tables___ParserTable___action_table_row608(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label609;
   return_label609: while(false);
@@ -23178,12 +23178,12 @@ val_t parser_tables___ParserTable___action_table_row609(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label610;
   return_label610: while(false);
@@ -23199,9 +23199,9 @@ val_t parser_tables___ParserTable___action_table_row610(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label611;
   return_label611: while(false);
@@ -23217,72 +23217,72 @@ val_t parser_tables___ParserTable___action_table_row611(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(610)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(610)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label612;
   return_label612: while(false);
@@ -23298,69 +23298,69 @@ val_t parser_tables___ParserTable___action_table_row612(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(611)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(704)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(611)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(704)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label613;
   return_label613: while(false);
@@ -23376,9 +23376,9 @@ val_t parser_tables___ParserTable___action_table_row613(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(384)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(384)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label614;
   return_label614: while(false);
@@ -23394,9 +23394,9 @@ val_t parser_tables___ParserTable___action_table_row614(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(647)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(647)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label615;
   return_label615: while(false);
@@ -23412,15 +23412,15 @@ val_t parser_tables___ParserTable___action_table_row615(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(614)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(614)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label616;
   return_label616: while(false);
@@ -23436,9 +23436,9 @@ val_t parser_tables___ParserTable___action_table_row616(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(272)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(272)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label617;
   return_label617: while(false);
@@ -23454,93 +23454,93 @@ val_t parser_tables___ParserTable___action_table_row617(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(278)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(278)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(258)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label618;
   return_label618: while(false);
@@ -23556,15 +23556,15 @@ val_t parser_tables___ParserTable___action_table_row618(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label619;
   return_label619: while(false);
@@ -23580,9 +23580,9 @@ val_t parser_tables___ParserTable___action_table_row619(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(225)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(225)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label620;
   return_label620: while(false);
@@ -23598,12 +23598,12 @@ val_t parser_tables___ParserTable___action_table_row620(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(227)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(227)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label621;
   return_label621: while(false);
@@ -23619,18 +23619,18 @@ val_t parser_tables___ParserTable___action_table_row621(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(737)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(737)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label622;
   return_label622: while(false);
@@ -23646,12 +23646,12 @@ val_t parser_tables___ParserTable___action_table_row622(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(741)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(741)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label623;
   return_label623: while(false);
@@ -23667,9 +23667,9 @@ val_t parser_tables___ParserTable___action_table_row623(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(189)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label624;
   return_label624: while(false);
@@ -23685,9 +23685,9 @@ val_t parser_tables___ParserTable___action_table_row624(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(214)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(214)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label625;
   return_label625: while(false);
@@ -23703,12 +23703,12 @@ val_t parser_tables___ParserTable___action_table_row625(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(218)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(218)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(536)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label626;
   return_label626: while(false);
@@ -23724,15 +23724,15 @@ val_t parser_tables___ParserTable___action_table_row626(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label627;
   return_label627: while(false);
@@ -23748,12 +23748,12 @@ val_t parser_tables___ParserTable___action_table_row627(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(626)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(743)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(626)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(743)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label628;
   return_label628: while(false);
@@ -23769,9 +23769,9 @@ val_t parser_tables___ParserTable___action_table_row628(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(639)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(639)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label629;
   return_label629: while(false);
@@ -23787,12 +23787,12 @@ val_t parser_tables___ParserTable___action_table_row629(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(628)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(744)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(628)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(744)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label630;
   return_label630: while(false);
@@ -23808,15 +23808,15 @@ val_t parser_tables___ParserTable___action_table_row630(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(629)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(629)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label631;
   return_label631: while(false);
@@ -23832,33 +23832,33 @@ val_t parser_tables___ParserTable___action_table_row631(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(747)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(747)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label632;
   return_label632: while(false);
@@ -23874,15 +23874,15 @@ val_t parser_tables___ParserTable___action_table_row632(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label633;
   return_label633: while(false);
@@ -23898,15 +23898,15 @@ val_t parser_tables___ParserTable___action_table_row633(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label634;
   return_label634: while(false);
@@ -23922,15 +23922,15 @@ val_t parser_tables___ParserTable___action_table_row634(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label635;
   return_label635: while(false);
@@ -23946,9 +23946,9 @@ val_t parser_tables___ParserTable___action_table_row635(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label636;
   return_label636: while(false);
@@ -23964,24 +23964,24 @@ val_t parser_tables___ParserTable___action_table_row636(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(755)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(756)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(755)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(756)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label637;
   return_label637: while(false);
@@ -23997,24 +23997,24 @@ val_t parser_tables___ParserTable___action_table_row637(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(758)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(759)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(758)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(759)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label638;
   return_label638: while(false);
@@ -24030,21 +24030,21 @@ val_t parser_tables___ParserTable___action_table_row638(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(761)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(761)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label639;
   return_label639: while(false);
@@ -24060,21 +24060,21 @@ val_t parser_tables___ParserTable___action_table_row639(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(638)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(763)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(764)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(765)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(766)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(638)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(763)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(764)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(765)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(766)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label640;
   return_label640: while(false);
@@ -24090,9 +24090,9 @@ val_t parser_tables___ParserTable___action_table_row640(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(629)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(629)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label641;
   return_label641: while(false);
@@ -24108,15 +24108,15 @@ val_t parser_tables___ParserTable___action_table_row641(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(640)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(640)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label642;
   return_label642: while(false);
@@ -24132,33 +24132,33 @@ val_t parser_tables___ParserTable___action_table_row642(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(768)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(768)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label643;
   return_label643: while(false);
@@ -24174,15 +24174,15 @@ val_t parser_tables___ParserTable___action_table_row643(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label644;
   return_label644: while(false);
@@ -24198,72 +24198,72 @@ val_t parser_tables___ParserTable___action_table_row644(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(643)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(643)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label645;
   return_label645: while(false);
@@ -24279,72 +24279,72 @@ val_t parser_tables___ParserTable___action_table_row645(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(644)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(644)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label646;
   return_label646: while(false);
@@ -24360,9 +24360,9 @@ val_t parser_tables___ParserTable___action_table_row646(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(263)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(263)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label647;
   return_label647: while(false);
@@ -24378,9 +24378,9 @@ val_t parser_tables___ParserTable___action_table_row647(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(283)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(283)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label648;
   return_label648: while(false);
@@ -24396,9 +24396,9 @@ val_t parser_tables___ParserTable___action_table_row648(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(288)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(288)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label649;
   return_label649: while(false);
@@ -24414,9 +24414,9 @@ val_t parser_tables___ParserTable___action_table_row649(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(374)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label650;
   return_label650: while(false);
@@ -24432,15 +24432,15 @@ val_t parser_tables___ParserTable___action_table_row650(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(649)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(772)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(649)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(772)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(517)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label651;
   return_label651: while(false);
@@ -24456,72 +24456,72 @@ val_t parser_tables___ParserTable___action_table_row651(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(650)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(650)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label652;
   return_label652: while(false);
@@ -24537,15 +24537,15 @@ val_t parser_tables___ParserTable___action_table_row652(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label653;
   return_label653: while(false);
@@ -24561,12 +24561,12 @@ val_t parser_tables___ParserTable___action_table_row653(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label654;
   return_label654: while(false);
@@ -24582,24 +24582,24 @@ val_t parser_tables___ParserTable___action_table_row654(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(379)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(379)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label655;
   return_label655: while(false);
@@ -24615,15 +24615,15 @@ val_t parser_tables___ParserTable___action_table_row655(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label656;
   return_label656: while(false);
@@ -24639,12 +24639,12 @@ val_t parser_tables___ParserTable___action_table_row656(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(777)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(777)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label657;
   return_label657: while(false);
@@ -24660,9 +24660,9 @@ val_t parser_tables___ParserTable___action_table_row657(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(190)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(190)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label658;
   return_label658: while(false);
@@ -24678,15 +24678,15 @@ val_t parser_tables___ParserTable___action_table_row658(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(657)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(657)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label659;
   return_label659: while(false);
@@ -24702,33 +24702,33 @@ val_t parser_tables___ParserTable___action_table_row659(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(779)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(779)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label660;
   return_label660: while(false);
@@ -24744,15 +24744,15 @@ val_t parser_tables___ParserTable___action_table_row660(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label661;
   return_label661: while(false);
@@ -24768,15 +24768,15 @@ val_t parser_tables___ParserTable___action_table_row661(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label662;
   return_label662: while(false);
@@ -24792,9 +24792,9 @@ val_t parser_tables___ParserTable___action_table_row662(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label663;
   return_label663: while(false);
@@ -24810,15 +24810,15 @@ val_t parser_tables___ParserTable___action_table_row663(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(662)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(662)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label664;
   return_label664: while(false);
@@ -24834,33 +24834,33 @@ val_t parser_tables___ParserTable___action_table_row664(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(785)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(785)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label665;
   return_label665: while(false);
@@ -24876,12 +24876,12 @@ val_t parser_tables___ParserTable___action_table_row665(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(268)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(482)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(268)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(482)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label666;
   return_label666: while(false);
@@ -24897,12 +24897,12 @@ val_t parser_tables___ParserTable___action_table_row666(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(245)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(460)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(245)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(460)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label667;
   return_label667: while(false);
@@ -24918,93 +24918,93 @@ val_t parser_tables___ParserTable___action_table_row667(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(666)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(786)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(666)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(786)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label668;
   return_label668: while(false);
@@ -25020,9 +25020,9 @@ val_t parser_tables___ParserTable___action_table_row668(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(501)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(501)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label669;
   return_label669: while(false);
@@ -25038,9 +25038,9 @@ val_t parser_tables___ParserTable___action_table_row669(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(456)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(456)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label670;
   return_label670: while(false);
@@ -25056,18 +25056,18 @@ val_t parser_tables___ParserTable___action_table_row670(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(279)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(487)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(788)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(279)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(487)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(788)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label671;
   return_label671: while(false);
@@ -25083,72 +25083,72 @@ val_t parser_tables___ParserTable___action_table_row671(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(670)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(670)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label672;
   return_label672: while(false);
@@ -25164,9 +25164,9 @@ val_t parser_tables___ParserTable___action_table_row672(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(302)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(302)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label673;
   return_label673: while(false);
@@ -25182,72 +25182,72 @@ val_t parser_tables___ParserTable___action_table_row673(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(672)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(672)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label674;
   return_label674: while(false);
@@ -25263,15 +25263,15 @@ val_t parser_tables___ParserTable___action_table_row674(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label675;
   return_label675: while(false);
@@ -25287,12 +25287,12 @@ val_t parser_tables___ParserTable___action_table_row675(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(310)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(507)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(310)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(507)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label676;
   return_label676: while(false);
@@ -25308,15 +25308,15 @@ val_t parser_tables___ParserTable___action_table_row676(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(341)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(793)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(341)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(196)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(793)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label677;
   return_label677: while(false);
@@ -25332,9 +25332,9 @@ val_t parser_tables___ParserTable___action_table_row677(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(464)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(464)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label678;
   return_label678: while(false);
@@ -25350,9 +25350,9 @@ val_t parser_tables___ParserTable___action_table_row678(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(469)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(469)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label679;
   return_label679: while(false);
@@ -25368,9 +25368,9 @@ val_t parser_tables___ParserTable___action_table_row679(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(466)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(466)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label680;
   return_label680: while(false);
@@ -25386,18 +25386,18 @@ val_t parser_tables___ParserTable___action_table_row680(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(291)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(291)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label681;
   return_label681: while(false);
@@ -25413,72 +25413,72 @@ val_t parser_tables___ParserTable___action_table_row681(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(680)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(680)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label682;
   return_label682: while(false);
@@ -25494,9 +25494,9 @@ val_t parser_tables___ParserTable___action_table_row682(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(505)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(505)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label683;
   return_label683: while(false);
@@ -25512,12 +25512,12 @@ val_t parser_tables___ParserTable___action_table_row683(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(265)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(479)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(265)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(479)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label684;
   return_label684: while(false);
@@ -25533,18 +25533,18 @@ val_t parser_tables___ParserTable___action_table_row684(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(796)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(796)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label685;
   return_label685: while(false);
@@ -25560,15 +25560,15 @@ val_t parser_tables___ParserTable___action_table_row685(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(262)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(476)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(262)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(476)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label686;
   return_label686: while(false);
@@ -25584,72 +25584,72 @@ val_t parser_tables___ParserTable___action_table_row686(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(685)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(685)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label687;
   return_label687: while(false);
@@ -25665,72 +25665,72 @@ val_t parser_tables___ParserTable___action_table_row687(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(686)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(686)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label688;
   return_label688: while(false);
@@ -25746,12 +25746,12 @@ val_t parser_tables___ParserTable___action_table_row688(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(687)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(804)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(687)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(804)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label689;
   return_label689: while(false);
@@ -25767,15 +25767,15 @@ val_t parser_tables___ParserTable___action_table_row689(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label690;
   return_label690: while(false);
@@ -25791,18 +25791,18 @@ val_t parser_tables___ParserTable___action_table_row690(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(806)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(806)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label691;
   return_label691: while(false);
@@ -25818,75 +25818,75 @@ val_t parser_tables___ParserTable___action_table_row691(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label692;
   return_label692: while(false);
@@ -25902,15 +25902,15 @@ val_t parser_tables___ParserTable___action_table_row692(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(691)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(691)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label693;
   return_label693: while(false);
@@ -25926,9 +25926,9 @@ val_t parser_tables___ParserTable___action_table_row693(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(301)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(301)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label694;
   return_label694: while(false);
@@ -25944,99 +25944,99 @@ val_t parser_tables___ParserTable___action_table_row694(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(693)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(693)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label695;
   return_label695: while(false);
@@ -26052,9 +26052,9 @@ val_t parser_tables___ParserTable___action_table_row695(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(306)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(306)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label696;
   return_label696: while(false);
@@ -26070,72 +26070,72 @@ val_t parser_tables___ParserTable___action_table_row696(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(695)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(695)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label697;
   return_label697: while(false);
@@ -26151,9 +26151,9 @@ val_t parser_tables___ParserTable___action_table_row697(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(311)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(311)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label698;
   return_label698: while(false);
@@ -26169,15 +26169,15 @@ val_t parser_tables___ParserTable___action_table_row698(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label699;
   return_label699: while(false);
@@ -26193,9 +26193,9 @@ val_t parser_tables___ParserTable___action_table_row699(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(640)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(640)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label700;
   return_label700: while(false);
@@ -26211,12 +26211,12 @@ val_t parser_tables___ParserTable___action_table_row700(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(238)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(697)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(238)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(697)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label701;
   return_label701: while(false);
@@ -26232,12 +26232,12 @@ val_t parser_tables___ParserTable___action_table_row701(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(700)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(815)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(700)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(815)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label702;
   return_label702: while(false);
@@ -26253,9 +26253,9 @@ val_t parser_tables___ParserTable___action_table_row702(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(352)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(352)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label703;
   return_label703: while(false);
@@ -26271,15 +26271,15 @@ val_t parser_tables___ParserTable___action_table_row703(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label704;
   return_label704: while(false);
@@ -26295,12 +26295,12 @@ val_t parser_tables___ParserTable___action_table_row704(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label705;
   return_label705: while(false);
@@ -26316,15 +26316,15 @@ val_t parser_tables___ParserTable___action_table_row705(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label706;
   return_label706: while(false);
@@ -26340,15 +26340,15 @@ val_t parser_tables___ParserTable___action_table_row706(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label707;
   return_label707: while(false);
@@ -26364,15 +26364,15 @@ val_t parser_tables___ParserTable___action_table_row707(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label708;
   return_label708: while(false);
@@ -26388,15 +26388,15 @@ val_t parser_tables___ParserTable___action_table_row708(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label709;
   return_label709: while(false);
@@ -26412,12 +26412,12 @@ val_t parser_tables___ParserTable___action_table_row709(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label710;
   return_label710: while(false);
@@ -26433,9 +26433,9 @@ val_t parser_tables___ParserTable___action_table_row710(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(445)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(445)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label711;
   return_label711: while(false);
@@ -26451,9 +26451,9 @@ val_t parser_tables___ParserTable___action_table_row711(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(446)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(446)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label712;
   return_label712: while(false);
@@ -26469,9 +26469,9 @@ val_t parser_tables___ParserTable___action_table_row712(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(447)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(447)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label713;
   return_label713: while(false);
@@ -26487,9 +26487,9 @@ val_t parser_tables___ParserTable___action_table_row713(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(448)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(448)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label714;
   return_label714: while(false);
@@ -26505,72 +26505,72 @@ val_t parser_tables___ParserTable___action_table_row714(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label715;
   return_label715: while(false);
@@ -26586,15 +26586,15 @@ val_t parser_tables___ParserTable___action_table_row715(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label716;
   return_label716: while(false);
@@ -26610,15 +26610,15 @@ val_t parser_tables___ParserTable___action_table_row716(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label717;
   return_label717: while(false);
@@ -26634,9 +26634,9 @@ val_t parser_tables___ParserTable___action_table_row717(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(437)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(437)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label718;
   return_label718: while(false);
@@ -26652,9 +26652,9 @@ val_t parser_tables___ParserTable___action_table_row718(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(449)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(449)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label719;
   return_label719: while(false);
@@ -26670,9 +26670,9 @@ val_t parser_tables___ParserTable___action_table_row719(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(450)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(450)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label720;
   return_label720: while(false);
@@ -26688,9 +26688,9 @@ val_t parser_tables___ParserTable___action_table_row720(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(451)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(451)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label721;
   return_label721: while(false);
@@ -26706,9 +26706,9 @@ val_t parser_tables___ParserTable___action_table_row721(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(452)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(452)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label722;
   return_label722: while(false);
@@ -26724,9 +26724,9 @@ val_t parser_tables___ParserTable___action_table_row722(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(453)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(453)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label723;
   return_label723: while(false);
@@ -26742,12 +26742,12 @@ val_t parser_tables___ParserTable___action_table_row723(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(722)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(826)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(722)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(826)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label724;
   return_label724: while(false);
@@ -26763,15 +26763,15 @@ val_t parser_tables___ParserTable___action_table_row724(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label725;
   return_label725: while(false);
@@ -26787,15 +26787,15 @@ val_t parser_tables___ParserTable___action_table_row725(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(407)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(828)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(829)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(407)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(828)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(829)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label726;
   return_label726: while(false);
@@ -26811,9 +26811,9 @@ val_t parser_tables___ParserTable___action_table_row726(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(409)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(409)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label727;
   return_label727: while(false);
@@ -26829,9 +26829,9 @@ val_t parser_tables___ParserTable___action_table_row727(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(412)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(412)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label728;
   return_label728: while(false);
@@ -26847,42 +26847,42 @@ val_t parser_tables___ParserTable___action_table_row728(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(36)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(414)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(830)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(831)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(834)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(835)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(836)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(837)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(838)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(839)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(840)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(414)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(830)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(831)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(834)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(835)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(836)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(837)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(838)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(839)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(840)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label729;
   return_label729: while(false);
@@ -26898,18 +26898,18 @@ val_t parser_tables___ParserTable___action_table_row729(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(424)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(841)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(842)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(843)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(424)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(841)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(842)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(843)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label730;
   return_label730: while(false);
@@ -26925,9 +26925,9 @@ val_t parser_tables___ParserTable___action_table_row730(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(427)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(427)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label731;
   return_label731: while(false);
@@ -26943,9 +26943,9 @@ val_t parser_tables___ParserTable___action_table_row731(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(431)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(431)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label732;
   return_label732: while(false);
@@ -26961,12 +26961,12 @@ val_t parser_tables___ParserTable___action_table_row732(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(434)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(844)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(434)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(844)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label733;
   return_label733: while(false);
@@ -26982,93 +26982,93 @@ val_t parser_tables___ParserTable___action_table_row733(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(273)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(273)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label734;
   return_label734: while(false);
@@ -27084,15 +27084,15 @@ val_t parser_tables___ParserTable___action_table_row734(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(733)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(733)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label735;
   return_label735: while(false);
@@ -27108,15 +27108,15 @@ val_t parser_tables___ParserTable___action_table_row735(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(734)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(734)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label736;
   return_label736: while(false);
@@ -27132,12 +27132,12 @@ val_t parser_tables___ParserTable___action_table_row736(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(735)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(848)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(735)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(848)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label737;
   return_label737: while(false);
@@ -27153,12 +27153,12 @@ val_t parser_tables___ParserTable___action_table_row737(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(59)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(849)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(59)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(849)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label738;
   return_label738: while(false);
@@ -27174,15 +27174,15 @@ val_t parser_tables___ParserTable___action_table_row738(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label739;
   return_label739: while(false);
@@ -27198,9 +27198,9 @@ val_t parser_tables___ParserTable___action_table_row739(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label740;
   return_label740: while(false);
@@ -27216,12 +27216,12 @@ val_t parser_tables___ParserTable___action_table_row740(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(739)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(851)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(739)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(851)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label741;
   return_label741: while(false);
@@ -27237,18 +27237,18 @@ val_t parser_tables___ParserTable___action_table_row741(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(737)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(737)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label742;
   return_label742: while(false);
@@ -27264,9 +27264,9 @@ val_t parser_tables___ParserTable___action_table_row742(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label743;
   return_label743: while(false);
@@ -27282,12 +27282,12 @@ val_t parser_tables___ParserTable___action_table_row743(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(742)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(854)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(742)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(854)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label744;
   return_label744: while(false);
@@ -27303,15 +27303,15 @@ val_t parser_tables___ParserTable___action_table_row744(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(219)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(219)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label745;
   return_label745: while(false);
@@ -27327,12 +27327,12 @@ val_t parser_tables___ParserTable___action_table_row745(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(86)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(86)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label746;
   return_label746: while(false);
@@ -27348,18 +27348,18 @@ val_t parser_tables___ParserTable___action_table_row746(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(859)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(859)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label747;
   return_label747: while(false);
@@ -27375,15 +27375,15 @@ val_t parser_tables___ParserTable___action_table_row747(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label748;
   return_label748: while(false);
@@ -27399,9 +27399,9 @@ val_t parser_tables___ParserTable___action_table_row748(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label749;
   return_label749: while(false);
@@ -27417,15 +27417,15 @@ val_t parser_tables___ParserTable___action_table_row749(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(748)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(748)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label750;
   return_label750: while(false);
@@ -27441,33 +27441,33 @@ val_t parser_tables___ParserTable___action_table_row750(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(866)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(866)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label751;
   return_label751: while(false);
@@ -27483,9 +27483,9 @@ val_t parser_tables___ParserTable___action_table_row751(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(632)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(632)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label752;
   return_label752: while(false);
@@ -27501,15 +27501,15 @@ val_t parser_tables___ParserTable___action_table_row752(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(751)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(751)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label753;
   return_label753: while(false);
@@ -27525,30 +27525,30 @@ val_t parser_tables___ParserTable___action_table_row753(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(868)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(868)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label754;
   return_label754: while(false);
@@ -27564,15 +27564,15 @@ val_t parser_tables___ParserTable___action_table_row754(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label755;
   return_label755: while(false);
@@ -27588,12 +27588,12 @@ val_t parser_tables___ParserTable___action_table_row755(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(754)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(754)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label756;
   return_label756: while(false);
@@ -27609,24 +27609,24 @@ val_t parser_tables___ParserTable___action_table_row756(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(872)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(873)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(872)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(873)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label757;
   return_label757: while(false);
@@ -27642,21 +27642,21 @@ val_t parser_tables___ParserTable___action_table_row757(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(875)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(875)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label758;
   return_label758: while(false);
@@ -27672,21 +27672,21 @@ val_t parser_tables___ParserTable___action_table_row758(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(757)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(877)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(878)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(879)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(880)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(757)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(877)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(878)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(879)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(880)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label759;
   return_label759: while(false);
@@ -27702,21 +27702,21 @@ val_t parser_tables___ParserTable___action_table_row759(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(881)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(881)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label760;
   return_label760: while(false);
@@ -27732,21 +27732,21 @@ val_t parser_tables___ParserTable___action_table_row760(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(883)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(883)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label761;
   return_label761: while(false);
@@ -27762,12 +27762,12 @@ val_t parser_tables___ParserTable___action_table_row761(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(760)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(885)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(760)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(885)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label762;
   return_label762: while(false);
@@ -27783,18 +27783,18 @@ val_t parser_tables___ParserTable___action_table_row762(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label763;
   return_label763: while(false);
@@ -27810,12 +27810,12 @@ val_t parser_tables___ParserTable___action_table_row763(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(762)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(887)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(762)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(887)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label764;
   return_label764: while(false);
@@ -27831,51 +27831,51 @@ val_t parser_tables___ParserTable___action_table_row764(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(763)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(763)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label765;
   return_label765: while(false);
@@ -27891,12 +27891,12 @@ val_t parser_tables___ParserTable___action_table_row765(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(764)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(889)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(764)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(889)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label766;
   return_label766: while(false);
@@ -27912,12 +27912,12 @@ val_t parser_tables___ParserTable___action_table_row766(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(765)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(890)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(765)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(890)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label767;
   return_label767: while(false);
@@ -27933,63 +27933,63 @@ val_t parser_tables___ParserTable___action_table_row767(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label768;
   return_label768: while(false);
@@ -28005,15 +28005,15 @@ val_t parser_tables___ParserTable___action_table_row768(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label769;
   return_label769: while(false);
@@ -28029,9 +28029,9 @@ val_t parser_tables___ParserTable___action_table_row769(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(59)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(59)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label770;
   return_label770: while(false);
@@ -28047,12 +28047,12 @@ val_t parser_tables___ParserTable___action_table_row770(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(769)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(769)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label771;
   return_label771: while(false);
@@ -28068,9 +28068,9 @@ val_t parser_tables___ParserTable___action_table_row771(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(285)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label772;
   return_label772: while(false);
@@ -28086,9 +28086,9 @@ val_t parser_tables___ParserTable___action_table_row772(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(290)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(290)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label773;
   return_label773: while(false);
@@ -28104,9 +28104,9 @@ val_t parser_tables___ParserTable___action_table_row773(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(375)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label774;
   return_label774: while(false);
@@ -28122,15 +28122,15 @@ val_t parser_tables___ParserTable___action_table_row774(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label775;
   return_label775: while(false);
@@ -28146,12 +28146,12 @@ val_t parser_tables___ParserTable___action_table_row775(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(774)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(897)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(774)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(897)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label776;
   return_label776: while(false);
@@ -28167,9 +28167,9 @@ val_t parser_tables___ParserTable___action_table_row776(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(556)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(556)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label777;
   return_label777: while(false);
@@ -28185,12 +28185,12 @@ val_t parser_tables___ParserTable___action_table_row777(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(776)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(776)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label778;
   return_label778: while(false);
@@ -28206,9 +28206,9 @@ val_t parser_tables___ParserTable___action_table_row778(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(188)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label779;
   return_label779: while(false);
@@ -28224,15 +28224,15 @@ val_t parser_tables___ParserTable___action_table_row779(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label780;
   return_label780: while(false);
@@ -28248,9 +28248,9 @@ val_t parser_tables___ParserTable___action_table_row780(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label781;
   return_label781: while(false);
@@ -28266,15 +28266,15 @@ val_t parser_tables___ParserTable___action_table_row781(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(780)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(780)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label782;
   return_label782: while(false);
@@ -28290,33 +28290,33 @@ val_t parser_tables___ParserTable___action_table_row782(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(27)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(902)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(902)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label783;
   return_label783: while(false);
@@ -28332,30 +28332,30 @@ val_t parser_tables___ParserTable___action_table_row783(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(903)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(903)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label784;
   return_label784: while(false);
@@ -28371,15 +28371,15 @@ val_t parser_tables___ParserTable___action_table_row784(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label785;
   return_label785: while(false);
@@ -28395,15 +28395,15 @@ val_t parser_tables___ParserTable___action_table_row785(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label786;
   return_label786: while(false);
@@ -28419,9 +28419,9 @@ val_t parser_tables___ParserTable___action_table_row786(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label787;
   return_label787: while(false);
@@ -28437,12 +28437,12 @@ val_t parser_tables___ParserTable___action_table_row787(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(459)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(459)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label788;
   return_label788: while(false);
@@ -28458,15 +28458,15 @@ val_t parser_tables___ParserTable___action_table_row788(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(787)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(787)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label789;
   return_label789: while(false);
@@ -28482,15 +28482,15 @@ val_t parser_tables___ParserTable___action_table_row789(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label790;
   return_label790: while(false);
@@ -28506,15 +28506,15 @@ val_t parser_tables___ParserTable___action_table_row790(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(280)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(488)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(910)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(280)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(488)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(910)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label791;
   return_label791: while(false);
@@ -28530,15 +28530,15 @@ val_t parser_tables___ParserTable___action_table_row791(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label792;
   return_label792: while(false);
@@ -28554,15 +28554,15 @@ val_t parser_tables___ParserTable___action_table_row792(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label793;
   return_label793: while(false);
@@ -28578,12 +28578,12 @@ val_t parser_tables___ParserTable___action_table_row793(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(346)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label794;
   return_label794: while(false);
@@ -28599,15 +28599,15 @@ val_t parser_tables___ParserTable___action_table_row794(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label795;
   return_label795: while(false);
@@ -28623,12 +28623,12 @@ val_t parser_tables___ParserTable___action_table_row795(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(351)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label796;
   return_label796: while(false);
@@ -28644,9 +28644,9 @@ val_t parser_tables___ParserTable___action_table_row796(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(506)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(506)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label797;
   return_label797: while(false);
@@ -28662,72 +28662,72 @@ val_t parser_tables___ParserTable___action_table_row797(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(796)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(796)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label798;
   return_label798: while(false);
@@ -28743,72 +28743,72 @@ val_t parser_tables___ParserTable___action_table_row798(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(797)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(797)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label799;
   return_label799: while(false);
@@ -28824,15 +28824,15 @@ val_t parser_tables___ParserTable___action_table_row799(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(918)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(423)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(918)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(423)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label800;
   return_label800: while(false);
@@ -28848,12 +28848,12 @@ val_t parser_tables___ParserTable___action_table_row800(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(799)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(799)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label801;
   return_label801: while(false);
@@ -28869,9 +28869,9 @@ val_t parser_tables___ParserTable___action_table_row801(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(478)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(478)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label802;
   return_label802: while(false);
@@ -28887,9 +28887,9 @@ val_t parser_tables___ParserTable___action_table_row802(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(483)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(483)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label803;
   return_label803: while(false);
@@ -28905,9 +28905,9 @@ val_t parser_tables___ParserTable___action_table_row803(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(492)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(492)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label804;
   return_label804: while(false);
@@ -28923,9 +28923,9 @@ val_t parser_tables___ParserTable___action_table_row804(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(497)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(497)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label805;
   return_label805: while(false);
@@ -28941,99 +28941,99 @@ val_t parser_tables___ParserTable___action_table_row805(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(804)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(804)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label806;
   return_label806: while(false);
@@ -29049,21 +29049,21 @@ val_t parser_tables___ParserTable___action_table_row806(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(805)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(922)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(923)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(924)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(805)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(922)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(923)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(924)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label807;
   return_label807: while(false);
@@ -29079,72 +29079,72 @@ val_t parser_tables___ParserTable___action_table_row807(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(806)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(806)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label808;
   return_label808: while(false);
@@ -29160,72 +29160,72 @@ val_t parser_tables___ParserTable___action_table_row808(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(807)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(807)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label809;
   return_label809: while(false);
@@ -29241,12 +29241,12 @@ val_t parser_tables___ParserTable___action_table_row809(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(266)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(480)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(266)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(480)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label810;
   return_label810: while(false);
@@ -29262,96 +29262,96 @@ val_t parser_tables___ParserTable___action_table_row810(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(90)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(809)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(809)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label811;
   return_label811: while(false);
@@ -29367,15 +29367,15 @@ val_t parser_tables___ParserTable___action_table_row811(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(810)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(810)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label812;
   return_label812: while(false);
@@ -29391,9 +29391,9 @@ val_t parser_tables___ParserTable___action_table_row812(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(296)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(296)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label813;
   return_label813: while(false);
@@ -29409,15 +29409,15 @@ val_t parser_tables___ParserTable___action_table_row813(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label814;
   return_label814: while(false);
@@ -29433,12 +29433,12 @@ val_t parser_tables___ParserTable___action_table_row814(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(813)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(813)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label815;
   return_label815: while(false);
@@ -29454,9 +29454,9 @@ val_t parser_tables___ParserTable___action_table_row815(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(641)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(641)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label816;
   return_label816: while(false);
@@ -29472,9 +29472,9 @@ val_t parser_tables___ParserTable___action_table_row816(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(236)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(236)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label817;
   return_label817: while(false);
@@ -29490,9 +29490,9 @@ val_t parser_tables___ParserTable___action_table_row817(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(385)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(385)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label818;
   return_label818: while(false);
@@ -29508,9 +29508,9 @@ val_t parser_tables___ParserTable___action_table_row818(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(443)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(443)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label819;
   return_label819: while(false);
@@ -29526,72 +29526,72 @@ val_t parser_tables___ParserTable___action_table_row819(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(818)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(818)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label820;
   return_label820: while(false);
@@ -29607,66 +29607,66 @@ val_t parser_tables___ParserTable___action_table_row820(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(819)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(819)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label821;
   return_label821: while(false);
@@ -29682,12 +29682,12 @@ val_t parser_tables___ParserTable___action_table_row821(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(820)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(933)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(820)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(933)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label822;
   return_label822: while(false);
@@ -29703,63 +29703,63 @@ val_t parser_tables___ParserTable___action_table_row822(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(821)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(821)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label823;
   return_label823: while(false);
@@ -29775,9 +29775,9 @@ val_t parser_tables___ParserTable___action_table_row823(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label824;
   return_label824: while(false);
@@ -29793,12 +29793,12 @@ val_t parser_tables___ParserTable___action_table_row824(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(823)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(936)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(823)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(936)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label825;
   return_label825: while(false);
@@ -29814,63 +29814,63 @@ val_t parser_tables___ParserTable___action_table_row825(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(824)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(824)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label826;
   return_label826: while(false);
@@ -29886,9 +29886,9 @@ val_t parser_tables___ParserTable___action_table_row826(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(439)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(439)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label827;
   return_label827: while(false);
@@ -29904,12 +29904,12 @@ val_t parser_tables___ParserTable___action_table_row827(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label828;
   return_label828: while(false);
@@ -29925,15 +29925,15 @@ val_t parser_tables___ParserTable___action_table_row828(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(827)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(939)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(940)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(827)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(939)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(940)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label829;
   return_label829: while(false);
@@ -29949,15 +29949,15 @@ val_t parser_tables___ParserTable___action_table_row829(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label830;
   return_label830: while(false);
@@ -29973,15 +29973,15 @@ val_t parser_tables___ParserTable___action_table_row830(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label831;
   return_label831: while(false);
@@ -29997,15 +29997,15 @@ val_t parser_tables___ParserTable___action_table_row831(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label832;
   return_label832: while(false);
@@ -30021,15 +30021,15 @@ val_t parser_tables___ParserTable___action_table_row832(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label833;
   return_label833: while(false);
@@ -30045,15 +30045,15 @@ val_t parser_tables___ParserTable___action_table_row833(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label834;
   return_label834: while(false);
@@ -30069,15 +30069,15 @@ val_t parser_tables___ParserTable___action_table_row834(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label835;
   return_label835: while(false);
@@ -30093,15 +30093,15 @@ val_t parser_tables___ParserTable___action_table_row835(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label836;
   return_label836: while(false);
@@ -30117,15 +30117,15 @@ val_t parser_tables___ParserTable___action_table_row836(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label837;
   return_label837: while(false);
@@ -30141,15 +30141,15 @@ val_t parser_tables___ParserTable___action_table_row837(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label838;
   return_label838: while(false);
@@ -30165,15 +30165,15 @@ val_t parser_tables___ParserTable___action_table_row838(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label839;
   return_label839: while(false);
@@ -30189,15 +30189,15 @@ val_t parser_tables___ParserTable___action_table_row839(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label840;
   return_label840: while(false);
@@ -30213,15 +30213,15 @@ val_t parser_tables___ParserTable___action_table_row840(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label841;
   return_label841: while(false);
@@ -30237,15 +30237,15 @@ val_t parser_tables___ParserTable___action_table_row841(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label842;
   return_label842: while(false);
@@ -30261,15 +30261,15 @@ val_t parser_tables___ParserTable___action_table_row842(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label843;
   return_label843: while(false);
@@ -30285,15 +30285,15 @@ val_t parser_tables___ParserTable___action_table_row843(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label844;
   return_label844: while(false);
@@ -30309,15 +30309,15 @@ val_t parser_tables___ParserTable___action_table_row844(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label845;
   return_label845: while(false);
@@ -30333,15 +30333,15 @@ val_t parser_tables___ParserTable___action_table_row845(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label846;
   return_label846: while(false);
@@ -30357,93 +30357,93 @@ val_t parser_tables___ParserTable___action_table_row846(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(274)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(571)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(274)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(571)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label847;
   return_label847: while(false);
@@ -30459,93 +30459,93 @@ val_t parser_tables___ParserTable___action_table_row847(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(275)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(275)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label848;
   return_label848: while(false);
@@ -30561,15 +30561,15 @@ val_t parser_tables___ParserTable___action_table_row848(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(847)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(847)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label849;
   return_label849: while(false);
@@ -30585,9 +30585,9 @@ val_t parser_tables___ParserTable___action_table_row849(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(387)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(387)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label850;
   return_label850: while(false);
@@ -30603,9 +30603,9 @@ val_t parser_tables___ParserTable___action_table_row850(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(229)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(229)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label851;
   return_label851: while(false);
@@ -30621,12 +30621,12 @@ val_t parser_tables___ParserTable___action_table_row851(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(850)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(619)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(850)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(619)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label852;
   return_label852: while(false);
@@ -30642,9 +30642,9 @@ val_t parser_tables___ParserTable___action_table_row852(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(223)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(223)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label853;
   return_label853: while(false);
@@ -30660,9 +30660,9 @@ val_t parser_tables___ParserTable___action_table_row853(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label854;
   return_label854: while(false);
@@ -30678,12 +30678,12 @@ val_t parser_tables___ParserTable___action_table_row854(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(853)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(960)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(853)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(960)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label855;
   return_label855: while(false);
@@ -30699,15 +30699,15 @@ val_t parser_tables___ParserTable___action_table_row855(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(219)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(219)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label856;
   return_label856: while(false);
@@ -30723,18 +30723,18 @@ val_t parser_tables___ParserTable___action_table_row856(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(855)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(962)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(855)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(962)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label857;
   return_label857: while(false);
@@ -30750,12 +30750,12 @@ val_t parser_tables___ParserTable___action_table_row857(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(220)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(220)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label858;
   return_label858: while(false);
@@ -30771,9 +30771,9 @@ val_t parser_tables___ParserTable___action_table_row858(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(221)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(221)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label859;
   return_label859: while(false);
@@ -30789,9 +30789,9 @@ val_t parser_tables___ParserTable___action_table_row859(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label860;
   return_label860: while(false);
@@ -30807,15 +30807,15 @@ val_t parser_tables___ParserTable___action_table_row860(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label861;
   return_label861: while(false);
@@ -30831,9 +30831,9 @@ val_t parser_tables___ParserTable___action_table_row861(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(630)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(630)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label862;
   return_label862: while(false);
@@ -30849,12 +30849,12 @@ val_t parser_tables___ParserTable___action_table_row862(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(861)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(966)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(861)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(966)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label863;
   return_label863: while(false);
@@ -30870,18 +30870,18 @@ val_t parser_tables___ParserTable___action_table_row863(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(859)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(859)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label864;
   return_label864: while(false);
@@ -30897,30 +30897,30 @@ val_t parser_tables___ParserTable___action_table_row864(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(969)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(969)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label865;
   return_label865: while(false);
@@ -30936,15 +30936,15 @@ val_t parser_tables___ParserTable___action_table_row865(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label866;
   return_label866: while(false);
@@ -30960,15 +30960,15 @@ val_t parser_tables___ParserTable___action_table_row866(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label867;
   return_label867: while(false);
@@ -30984,9 +30984,9 @@ val_t parser_tables___ParserTable___action_table_row867(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label868;
   return_label868: while(false);
@@ -31002,9 +31002,9 @@ val_t parser_tables___ParserTable___action_table_row868(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(89)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(89)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label869;
   return_label869: while(false);
@@ -31020,9 +31020,9 @@ val_t parser_tables___ParserTable___action_table_row869(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label870;
   return_label870: while(false);
@@ -31038,9 +31038,9 @@ val_t parser_tables___ParserTable___action_table_row870(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(633)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label871;
   return_label871: while(false);
@@ -31056,30 +31056,30 @@ val_t parser_tables___ParserTable___action_table_row871(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(973)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(973)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label872;
   return_label872: while(false);
@@ -31095,9 +31095,9 @@ val_t parser_tables___ParserTable___action_table_row872(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(88)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(88)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label873;
   return_label873: while(false);
@@ -31113,21 +31113,21 @@ val_t parser_tables___ParserTable___action_table_row873(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(974)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(974)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label874;
   return_label874: while(false);
@@ -31143,21 +31143,21 @@ val_t parser_tables___ParserTable___action_table_row874(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(976)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(976)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label875;
   return_label875: while(false);
@@ -31173,12 +31173,12 @@ val_t parser_tables___ParserTable___action_table_row875(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(874)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(978)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(874)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(978)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label876;
   return_label876: while(false);
@@ -31194,18 +31194,18 @@ val_t parser_tables___ParserTable___action_table_row876(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label877;
   return_label877: while(false);
@@ -31221,12 +31221,12 @@ val_t parser_tables___ParserTable___action_table_row877(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(876)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(980)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(876)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(980)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label878;
   return_label878: while(false);
@@ -31242,51 +31242,51 @@ val_t parser_tables___ParserTable___action_table_row878(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(45)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(877)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(877)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label879;
   return_label879: while(false);
@@ -31302,12 +31302,12 @@ val_t parser_tables___ParserTable___action_table_row879(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(878)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(982)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(878)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(982)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label880;
   return_label880: while(false);
@@ -31323,12 +31323,12 @@ val_t parser_tables___ParserTable___action_table_row880(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(879)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(983)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(879)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(983)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label881;
   return_label881: while(false);
@@ -31344,63 +31344,63 @@ val_t parser_tables___ParserTable___action_table_row881(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(312)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(313)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(314)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(316)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(317)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(318)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(319)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(320)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(321)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(322)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(323)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(324)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(325)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label882;
   return_label882: while(false);
@@ -31416,21 +31416,21 @@ val_t parser_tables___ParserTable___action_table_row882(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(986)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(986)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label883;
   return_label883: while(false);
@@ -31446,12 +31446,12 @@ val_t parser_tables___ParserTable___action_table_row883(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(882)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(988)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(882)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(988)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label884;
   return_label884: while(false);
@@ -31467,18 +31467,18 @@ val_t parser_tables___ParserTable___action_table_row884(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label885;
   return_label885: while(false);
@@ -31494,12 +31494,12 @@ val_t parser_tables___ParserTable___action_table_row885(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(884)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(990)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(884)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(990)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label886;
   return_label886: while(false);
@@ -31515,12 +31515,12 @@ val_t parser_tables___ParserTable___action_table_row886(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(885)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(991)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(885)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(991)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label887;
   return_label887: while(false);
@@ -31536,12 +31536,12 @@ val_t parser_tables___ParserTable___action_table_row887(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(886)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(992)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(886)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(992)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label888;
   return_label888: while(false);
@@ -31557,12 +31557,12 @@ val_t parser_tables___ParserTable___action_table_row888(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(887)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(993)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(887)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(993)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label889;
   return_label889: while(false);
@@ -31578,21 +31578,21 @@ val_t parser_tables___ParserTable___action_table_row889(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label890;
   return_label890: while(false);
@@ -31608,12 +31608,12 @@ val_t parser_tables___ParserTable___action_table_row890(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(889)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(889)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label891;
   return_label891: while(false);
@@ -31629,15 +31629,15 @@ val_t parser_tables___ParserTable___action_table_row891(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(996)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(996)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label892;
   return_label892: while(false);
@@ -31653,21 +31653,21 @@ val_t parser_tables___ParserTable___action_table_row892(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label893;
   return_label893: while(false);
@@ -31683,12 +31683,12 @@ val_t parser_tables___ParserTable___action_table_row893(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(892)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(999)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(892)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(999)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label894;
   return_label894: while(false);
@@ -31704,30 +31704,30 @@ val_t parser_tables___ParserTable___action_table_row894(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1000)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1000)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label895;
   return_label895: while(false);
@@ -31743,15 +31743,15 @@ val_t parser_tables___ParserTable___action_table_row895(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label896;
   return_label896: while(false);
@@ -31767,15 +31767,15 @@ val_t parser_tables___ParserTable___action_table_row896(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label897;
   return_label897: while(false);
@@ -31791,12 +31791,12 @@ val_t parser_tables___ParserTable___action_table_row897(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(896)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1003)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(896)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1003)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label898;
   return_label898: while(false);
@@ -31812,9 +31812,9 @@ val_t parser_tables___ParserTable___action_table_row898(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(515)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(515)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label899;
   return_label899: while(false);
@@ -31830,15 +31830,15 @@ val_t parser_tables___ParserTable___action_table_row899(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label900;
   return_label900: while(false);
@@ -31854,30 +31854,30 @@ val_t parser_tables___ParserTable___action_table_row900(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1005)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1005)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label901;
   return_label901: while(false);
@@ -31893,15 +31893,15 @@ val_t parser_tables___ParserTable___action_table_row901(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label902;
   return_label902: while(false);
@@ -31917,15 +31917,15 @@ val_t parser_tables___ParserTable___action_table_row902(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label903;
   return_label903: while(false);
@@ -31941,9 +31941,9 @@ val_t parser_tables___ParserTable___action_table_row903(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label904;
   return_label904: while(false);
@@ -31959,9 +31959,9 @@ val_t parser_tables___ParserTable___action_table_row904(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label905;
   return_label905: while(false);
@@ -31977,30 +31977,30 @@ val_t parser_tables___ParserTable___action_table_row905(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1009)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1009)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label906;
   return_label906: while(false);
@@ -32016,30 +32016,30 @@ val_t parser_tables___ParserTable___action_table_row906(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1010)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1010)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label907;
   return_label907: while(false);
@@ -32055,15 +32055,15 @@ val_t parser_tables___ParserTable___action_table_row907(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label908;
   return_label908: while(false);
@@ -32079,93 +32079,93 @@ val_t parser_tables___ParserTable___action_table_row908(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(907)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1012)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(907)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1012)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label909;
   return_label909: while(false);
@@ -32181,15 +32181,15 @@ val_t parser_tables___ParserTable___action_table_row909(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(908)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(908)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label910;
   return_label910: while(false);
@@ -32205,72 +32205,72 @@ val_t parser_tables___ParserTable___action_table_row910(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(909)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(909)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label911;
   return_label911: while(false);
@@ -32286,15 +32286,15 @@ val_t parser_tables___ParserTable___action_table_row911(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label912;
   return_label912: while(false);
@@ -32310,12 +32310,12 @@ val_t parser_tables___ParserTable___action_table_row912(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(911)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1016)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(911)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1016)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label913;
   return_label913: while(false);
@@ -32331,12 +32331,12 @@ val_t parser_tables___ParserTable___action_table_row913(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(912)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1017)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(912)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1017)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label914;
   return_label914: while(false);
@@ -32352,9 +32352,9 @@ val_t parser_tables___ParserTable___action_table_row914(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(509)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(509)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label915;
   return_label915: while(false);
@@ -32370,21 +32370,21 @@ val_t parser_tables___ParserTable___action_table_row915(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(914)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1018)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(512)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(914)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(440)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1018)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(512)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label916;
   return_label916: while(false);
@@ -32400,9 +32400,9 @@ val_t parser_tables___ParserTable___action_table_row916(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(510)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label917;
   return_label917: while(false);
@@ -32418,9 +32418,9 @@ val_t parser_tables___ParserTable___action_table_row917(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(494)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(494)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label918;
   return_label918: while(false);
@@ -32436,9 +32436,9 @@ val_t parser_tables___ParserTable___action_table_row918(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(499)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(499)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label919;
   return_label919: while(false);
@@ -32454,99 +32454,99 @@ val_t parser_tables___ParserTable___action_table_row919(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(918)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(918)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label920;
   return_label920: while(false);
@@ -32562,18 +32562,18 @@ val_t parser_tables___ParserTable___action_table_row920(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1021)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1021)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label921;
   return_label921: while(false);
@@ -32589,9 +32589,9 @@ val_t parser_tables___ParserTable___action_table_row921(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(484)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label922;
   return_label922: while(false);
@@ -32607,9 +32607,9 @@ val_t parser_tables___ParserTable___action_table_row922(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(504)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(504)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label923;
   return_label923: while(false);
@@ -32625,75 +32625,75 @@ val_t parser_tables___ParserTable___action_table_row923(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(69)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label924;
   return_label924: while(false);
@@ -32709,84 +32709,84 @@ val_t parser_tables___ParserTable___action_table_row924(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(78)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(382)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label925;
   return_label925: while(false);
@@ -32802,18 +32802,18 @@ val_t parser_tables___ParserTable___action_table_row925(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(343)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1025)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(343)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1025)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label926;
   return_label926: while(false);
@@ -32829,9 +32829,9 @@ val_t parser_tables___ParserTable___action_table_row926(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(495)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(495)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label927;
   return_label927: while(false);
@@ -32847,9 +32847,9 @@ val_t parser_tables___ParserTable___action_table_row927(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(500)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(500)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label928;
   return_label928: while(false);
@@ -32865,9 +32865,9 @@ val_t parser_tables___ParserTable___action_table_row928(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(298)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(298)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label929;
   return_label929: while(false);
@@ -32883,96 +32883,96 @@ val_t parser_tables___ParserTable___action_table_row929(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(90)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(928)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(928)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label930;
   return_label930: while(false);
@@ -32988,12 +32988,12 @@ val_t parser_tables___ParserTable___action_table_row930(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(929)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1028)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(929)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1028)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label931;
   return_label931: while(false);
@@ -33009,9 +33009,9 @@ val_t parser_tables___ParserTable___action_table_row931(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(239)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(239)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label932;
   return_label932: while(false);
@@ -33027,15 +33027,15 @@ val_t parser_tables___ParserTable___action_table_row932(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label933;
   return_label933: while(false);
@@ -33051,9 +33051,9 @@ val_t parser_tables___ParserTable___action_table_row933(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(413)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(413)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label934;
   return_label934: while(false);
@@ -33069,9 +33069,9 @@ val_t parser_tables___ParserTable___action_table_row934(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(403)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(403)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label935;
   return_label935: while(false);
@@ -33087,15 +33087,15 @@ val_t parser_tables___ParserTable___action_table_row935(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1030)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1030)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label936;
   return_label936: while(false);
@@ -33111,9 +33111,9 @@ val_t parser_tables___ParserTable___action_table_row936(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(433)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(433)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label937;
   return_label937: while(false);
@@ -33129,9 +33129,9 @@ val_t parser_tables___ParserTable___action_table_row937(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(454)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(454)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label938;
   return_label938: while(false);
@@ -33147,9 +33147,9 @@ val_t parser_tables___ParserTable___action_table_row938(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(432)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(432)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label939;
   return_label939: while(false);
@@ -33165,9 +33165,9 @@ val_t parser_tables___ParserTable___action_table_row939(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(441)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(441)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label940;
   return_label940: while(false);
@@ -33183,9 +33183,9 @@ val_t parser_tables___ParserTable___action_table_row940(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(354)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(354)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label941;
   return_label941: while(false);
@@ -33201,9 +33201,9 @@ val_t parser_tables___ParserTable___action_table_row941(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(353)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(353)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label942;
   return_label942: while(false);
@@ -33219,66 +33219,66 @@ val_t parser_tables___ParserTable___action_table_row942(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(941)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(941)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label943;
   return_label943: while(false);
@@ -33294,66 +33294,66 @@ val_t parser_tables___ParserTable___action_table_row943(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(942)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(942)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label944;
   return_label944: while(false);
@@ -33369,63 +33369,63 @@ val_t parser_tables___ParserTable___action_table_row944(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(943)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(943)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label945;
   return_label945: while(false);
@@ -33441,12 +33441,12 @@ val_t parser_tables___ParserTable___action_table_row945(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(944)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(933)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(944)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(933)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label946;
   return_label946: while(false);
@@ -33462,63 +33462,63 @@ val_t parser_tables___ParserTable___action_table_row946(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(945)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(945)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label947;
   return_label947: while(false);
@@ -33534,63 +33534,63 @@ val_t parser_tables___ParserTable___action_table_row947(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(946)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(946)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label948;
   return_label948: while(false);
@@ -33606,63 +33606,63 @@ val_t parser_tables___ParserTable___action_table_row948(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(947)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(947)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label949;
   return_label949: while(false);
@@ -33678,63 +33678,63 @@ val_t parser_tables___ParserTable___action_table_row949(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(948)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(948)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label950;
   return_label950: while(false);
@@ -33750,63 +33750,63 @@ val_t parser_tables___ParserTable___action_table_row950(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(949)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(949)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label951;
   return_label951: while(false);
@@ -33822,63 +33822,63 @@ val_t parser_tables___ParserTable___action_table_row951(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(950)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(950)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label952;
   return_label952: while(false);
@@ -33894,63 +33894,63 @@ val_t parser_tables___ParserTable___action_table_row952(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(951)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(951)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label953;
   return_label953: while(false);
@@ -33966,63 +33966,63 @@ val_t parser_tables___ParserTable___action_table_row953(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(952)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(952)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label954;
   return_label954: while(false);
@@ -34038,63 +34038,63 @@ val_t parser_tables___ParserTable___action_table_row954(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(953)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(953)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label955;
   return_label955: while(false);
@@ -34110,63 +34110,63 @@ val_t parser_tables___ParserTable___action_table_row955(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(954)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(954)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label956;
   return_label956: while(false);
@@ -34182,63 +34182,63 @@ val_t parser_tables___ParserTable___action_table_row956(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(955)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(955)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label957;
   return_label957: while(false);
@@ -34254,63 +34254,63 @@ val_t parser_tables___ParserTable___action_table_row957(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(57)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(956)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(956)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label958;
   return_label958: while(false);
@@ -34326,21 +34326,21 @@ val_t parser_tables___ParserTable___action_table_row958(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(957)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1048)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1049)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1050)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1051)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(957)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1048)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1049)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1050)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1051)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label959;
   return_label959: while(false);
@@ -34356,93 +34356,93 @@ val_t parser_tables___ParserTable___action_table_row959(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(571)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(571)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label960;
   return_label960: while(false);
@@ -34458,9 +34458,9 @@ val_t parser_tables___ParserTable___action_table_row960(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(226)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(226)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label961;
   return_label961: while(false);
@@ -34476,9 +34476,9 @@ val_t parser_tables___ParserTable___action_table_row961(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(224)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(224)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label962;
   return_label962: while(false);
@@ -34494,18 +34494,18 @@ val_t parser_tables___ParserTable___action_table_row962(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(961)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1052)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(961)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1052)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label963;
   return_label963: while(false);
@@ -34521,99 +34521,99 @@ val_t parser_tables___ParserTable___action_table_row963(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(962)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(962)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label964;
   return_label964: while(false);
@@ -34629,9 +34629,9 @@ val_t parser_tables___ParserTable___action_table_row964(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(231)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(231)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label965;
   return_label965: while(false);
@@ -34647,9 +34647,9 @@ val_t parser_tables___ParserTable___action_table_row965(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(222)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(222)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label966;
   return_label966: while(false);
@@ -34665,12 +34665,12 @@ val_t parser_tables___ParserTable___action_table_row966(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(965)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(744)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(965)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(744)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label967;
   return_label967: while(false);
@@ -34686,9 +34686,9 @@ val_t parser_tables___ParserTable___action_table_row967(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label968;
   return_label968: while(false);
@@ -34704,9 +34704,9 @@ val_t parser_tables___ParserTable___action_table_row968(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(631)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(631)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label969;
   return_label969: while(false);
@@ -34722,12 +34722,12 @@ val_t parser_tables___ParserTable___action_table_row969(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(968)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1056)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(968)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1056)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label970;
   return_label970: while(false);
@@ -34743,9 +34743,9 @@ val_t parser_tables___ParserTable___action_table_row970(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label971;
   return_label971: while(false);
@@ -34761,30 +34761,30 @@ val_t parser_tables___ParserTable___action_table_row971(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1057)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1057)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label972;
   return_label972: while(false);
@@ -34800,30 +34800,30 @@ val_t parser_tables___ParserTable___action_table_row972(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1058)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1058)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label973;
   return_label973: while(false);
@@ -34839,15 +34839,15 @@ val_t parser_tables___ParserTable___action_table_row973(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label974;
   return_label974: while(false);
@@ -34863,9 +34863,9 @@ val_t parser_tables___ParserTable___action_table_row974(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label975;
   return_label975: while(false);
@@ -34881,21 +34881,21 @@ val_t parser_tables___ParserTable___action_table_row975(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1060)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1060)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label976;
   return_label976: while(false);
@@ -34911,12 +34911,12 @@ val_t parser_tables___ParserTable___action_table_row976(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(975)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1062)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(975)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1062)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label977;
   return_label977: while(false);
@@ -34932,18 +34932,18 @@ val_t parser_tables___ParserTable___action_table_row977(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label978;
   return_label978: while(false);
@@ -34959,12 +34959,12 @@ val_t parser_tables___ParserTable___action_table_row978(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(977)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1064)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(977)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1064)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label979;
   return_label979: while(false);
@@ -34980,12 +34980,12 @@ val_t parser_tables___ParserTable___action_table_row979(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(978)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1065)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(978)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1065)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label980;
   return_label980: while(false);
@@ -35001,12 +35001,12 @@ val_t parser_tables___ParserTable___action_table_row980(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(979)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1066)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(979)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1066)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label981;
   return_label981: while(false);
@@ -35022,12 +35022,12 @@ val_t parser_tables___ParserTable___action_table_row981(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(980)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1067)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(980)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1067)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label982;
   return_label982: while(false);
@@ -35043,21 +35043,21 @@ val_t parser_tables___ParserTable___action_table_row982(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label983;
   return_label983: while(false);
@@ -35073,12 +35073,12 @@ val_t parser_tables___ParserTable___action_table_row983(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(982)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(982)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label984;
   return_label984: while(false);
@@ -35094,15 +35094,15 @@ val_t parser_tables___ParserTable___action_table_row984(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1070)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1070)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label985;
   return_label985: while(false);
@@ -35118,21 +35118,21 @@ val_t parser_tables___ParserTable___action_table_row985(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(15)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label986;
   return_label986: while(false);
@@ -35148,12 +35148,12 @@ val_t parser_tables___ParserTable___action_table_row986(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(985)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1073)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(985)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1073)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label987;
   return_label987: while(false);
@@ -35169,18 +35169,18 @@ val_t parser_tables___ParserTable___action_table_row987(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label988;
   return_label988: while(false);
@@ -35196,12 +35196,12 @@ val_t parser_tables___ParserTable___action_table_row988(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(987)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1075)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(987)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1075)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label989;
   return_label989: while(false);
@@ -35217,12 +35217,12 @@ val_t parser_tables___ParserTable___action_table_row989(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(988)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1076)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(988)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1076)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label990;
   return_label990: while(false);
@@ -35238,12 +35238,12 @@ val_t parser_tables___ParserTable___action_table_row990(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(989)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1077)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(989)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1077)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label991;
   return_label991: while(false);
@@ -35259,12 +35259,12 @@ val_t parser_tables___ParserTable___action_table_row991(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(990)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1078)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(990)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1078)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label992;
   return_label992: while(false);
@@ -35280,15 +35280,15 @@ val_t parser_tables___ParserTable___action_table_row992(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(92)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1079)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(92)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1079)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label993;
   return_label993: while(false);
@@ -35304,12 +35304,12 @@ val_t parser_tables___ParserTable___action_table_row993(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(992)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1081)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(992)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1081)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label994;
   return_label994: while(false);
@@ -35325,15 +35325,15 @@ val_t parser_tables___ParserTable___action_table_row994(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1082)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1082)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label995;
   return_label995: while(false);
@@ -35349,15 +35349,15 @@ val_t parser_tables___ParserTable___action_table_row995(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(994)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1084)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1085)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(994)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1084)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1085)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label996;
   return_label996: while(false);
@@ -35373,9 +35373,9 @@ val_t parser_tables___ParserTable___action_table_row996(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label997;
   return_label997: while(false);
@@ -35391,15 +35391,15 @@ val_t parser_tables___ParserTable___action_table_row997(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label998;
   return_label998: while(false);
@@ -35415,12 +35415,12 @@ val_t parser_tables___ParserTable___action_table_row998(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1087)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1087)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label999;
   return_label999: while(false);
@@ -35436,12 +35436,12 @@ val_t parser_tables___ParserTable___action_table_row999(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(998)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1088)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(998)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1088)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1000;
   return_label1000: while(false);
@@ -35457,99 +35457,99 @@ val_t parser_tables___ParserTable___action_table_row1000(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(999)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(999)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1001;
   return_label1001: while(false);
@@ -35565,9 +35565,9 @@ val_t parser_tables___ParserTable___action_table_row1001(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1002;
   return_label1002: while(false);
@@ -35583,30 +35583,30 @@ val_t parser_tables___ParserTable___action_table_row1002(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1090)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1090)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1003;
   return_label1003: while(false);
@@ -35622,12 +35622,12 @@ val_t parser_tables___ParserTable___action_table_row1003(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1002)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1091)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1002)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1091)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1004;
   return_label1004: while(false);
@@ -35643,15 +35643,15 @@ val_t parser_tables___ParserTable___action_table_row1004(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1005;
   return_label1005: while(false);
@@ -35667,12 +35667,12 @@ val_t parser_tables___ParserTable___action_table_row1005(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1004)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1093)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1004)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1093)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1006;
   return_label1006: while(false);
@@ -35688,9 +35688,9 @@ val_t parser_tables___ParserTable___action_table_row1006(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1007;
   return_label1007: while(false);
@@ -35706,30 +35706,30 @@ val_t parser_tables___ParserTable___action_table_row1007(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1094)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1094)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1008;
   return_label1008: while(false);
@@ -35745,30 +35745,30 @@ val_t parser_tables___ParserTable___action_table_row1008(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1095)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1095)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1009;
   return_label1009: while(false);
@@ -35784,15 +35784,15 @@ val_t parser_tables___ParserTable___action_table_row1009(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1010;
   return_label1010: while(false);
@@ -35808,9 +35808,9 @@ val_t parser_tables___ParserTable___action_table_row1010(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1011;
   return_label1011: while(false);
@@ -35826,9 +35826,9 @@ val_t parser_tables___ParserTable___action_table_row1011(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1012;
   return_label1012: while(false);
@@ -35844,30 +35844,30 @@ val_t parser_tables___ParserTable___action_table_row1012(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1097)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1097)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1013;
   return_label1013: while(false);
@@ -35883,12 +35883,12 @@ val_t parser_tables___ParserTable___action_table_row1013(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(242)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(457)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(242)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(457)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1014;
   return_label1014: while(false);
@@ -35904,93 +35904,93 @@ val_t parser_tables___ParserTable___action_table_row1014(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1013)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1098)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1013)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1098)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1015;
   return_label1015: while(false);
@@ -36006,9 +36006,9 @@ val_t parser_tables___ParserTable___action_table_row1015(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(489)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(489)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1016;
   return_label1016: while(false);
@@ -36024,72 +36024,72 @@ val_t parser_tables___ParserTable___action_table_row1016(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1015)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1015)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1017;
   return_label1017: while(false);
@@ -36105,102 +36105,102 @@ val_t parser_tables___ParserTable___action_table_row1017(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(96)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1016)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1016)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(573)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(578)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1018;
   return_label1018: while(false);
@@ -36216,99 +36216,99 @@ val_t parser_tables___ParserTable___action_table_row1018(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1017)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1017)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1019;
   return_label1019: while(false);
@@ -36324,12 +36324,12 @@ val_t parser_tables___ParserTable___action_table_row1019(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1020;
   return_label1020: while(false);
@@ -36345,93 +36345,93 @@ val_t parser_tables___ParserTable___action_table_row1020(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(786)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(786)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1021;
   return_label1021: while(false);
@@ -36447,9 +36447,9 @@ val_t parser_tables___ParserTable___action_table_row1021(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(485)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(485)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1022;
   return_label1022: while(false);
@@ -36465,99 +36465,99 @@ val_t parser_tables___ParserTable___action_table_row1022(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1021)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1021)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1023;
   return_label1023: while(false);
@@ -36573,12 +36573,12 @@ val_t parser_tables___ParserTable___action_table_row1023(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(267)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(481)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(267)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(481)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1024;
   return_label1024: while(false);
@@ -36594,18 +36594,18 @@ val_t parser_tables___ParserTable___action_table_row1024(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1025;
   return_label1025: while(false);
@@ -36621,15 +36621,15 @@ val_t parser_tables___ParserTable___action_table_row1025(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(261)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(475)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(261)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(475)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1026;
   return_label1026: while(false);
@@ -36645,72 +36645,72 @@ val_t parser_tables___ParserTable___action_table_row1026(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1025)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1025)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1027;
   return_label1027: while(false);
@@ -36726,72 +36726,72 @@ val_t parser_tables___ParserTable___action_table_row1027(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1026)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1026)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1028;
   return_label1028: while(false);
@@ -36807,9 +36807,9 @@ val_t parser_tables___ParserTable___action_table_row1028(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(299)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(299)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1029;
   return_label1029: while(false);
@@ -36825,15 +36825,15 @@ val_t parser_tables___ParserTable___action_table_row1029(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1030;
   return_label1030: while(false);
@@ -36849,12 +36849,12 @@ val_t parser_tables___ParserTable___action_table_row1030(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1029)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1029)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1112)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1031;
   return_label1031: while(false);
@@ -36870,15 +36870,15 @@ val_t parser_tables___ParserTable___action_table_row1031(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1032;
   return_label1032: while(false);
@@ -36894,9 +36894,9 @@ val_t parser_tables___ParserTable___action_table_row1032(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(435)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(435)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1033;
   return_label1033: while(false);
@@ -36912,9 +36912,9 @@ val_t parser_tables___ParserTable___action_table_row1033(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(411)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(411)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1034;
   return_label1034: while(false);
@@ -36930,9 +36930,9 @@ val_t parser_tables___ParserTable___action_table_row1034(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(410)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(410)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1035;
   return_label1035: while(false);
@@ -36948,15 +36948,15 @@ val_t parser_tables___ParserTable___action_table_row1035(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(416)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(416)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1036;
   return_label1036: while(false);
@@ -36972,9 +36972,9 @@ val_t parser_tables___ParserTable___action_table_row1036(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(423)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(423)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1037;
   return_label1037: while(false);
@@ -36990,18 +36990,18 @@ val_t parser_tables___ParserTable___action_table_row1037(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(425)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(841)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(842)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(843)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(425)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(841)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(842)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(843)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1038;
   return_label1038: while(false);
@@ -37017,18 +37017,18 @@ val_t parser_tables___ParserTable___action_table_row1038(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(426)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(841)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(842)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(843)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(426)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(841)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(842)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(843)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1039;
   return_label1039: while(false);
@@ -37044,15 +37044,15 @@ val_t parser_tables___ParserTable___action_table_row1039(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(415)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(415)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1040;
   return_label1040: while(false);
@@ -37068,15 +37068,15 @@ val_t parser_tables___ParserTable___action_table_row1040(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(417)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(417)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1041;
   return_label1041: while(false);
@@ -37092,15 +37092,15 @@ val_t parser_tables___ParserTable___action_table_row1041(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(418)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(418)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1042;
   return_label1042: while(false);
@@ -37116,15 +37116,15 @@ val_t parser_tables___ParserTable___action_table_row1042(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(419)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(419)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1043;
   return_label1043: while(false);
@@ -37140,15 +37140,15 @@ val_t parser_tables___ParserTable___action_table_row1043(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(420)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(420)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1044;
   return_label1044: while(false);
@@ -37164,15 +37164,15 @@ val_t parser_tables___ParserTable___action_table_row1044(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(421)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(421)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1045;
   return_label1045: while(false);
@@ -37188,15 +37188,15 @@ val_t parser_tables___ParserTable___action_table_row1045(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(422)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(422)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(832)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(833)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1046;
   return_label1046: while(false);
@@ -37212,9 +37212,9 @@ val_t parser_tables___ParserTable___action_table_row1046(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(428)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(428)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1047;
   return_label1047: while(false);
@@ -37230,9 +37230,9 @@ val_t parser_tables___ParserTable___action_table_row1047(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(429)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(429)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1048;
   return_label1048: while(false);
@@ -37248,9 +37248,9 @@ val_t parser_tables___ParserTable___action_table_row1048(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(430)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1049;
   return_label1049: while(false);
@@ -37266,12 +37266,12 @@ val_t parser_tables___ParserTable___action_table_row1049(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1050;
   return_label1050: while(false);
@@ -37287,15 +37287,15 @@ val_t parser_tables___ParserTable___action_table_row1050(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1051;
   return_label1051: while(false);
@@ -37311,12 +37311,12 @@ val_t parser_tables___ParserTable___action_table_row1051(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1052;
   return_label1052: while(false);
@@ -37332,9 +37332,9 @@ val_t parser_tables___ParserTable___action_table_row1052(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(436)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(436)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1053;
   return_label1053: while(false);
@@ -37350,99 +37350,99 @@ val_t parser_tables___ParserTable___action_table_row1053(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1052)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1052)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1054;
   return_label1054: while(false);
@@ -37458,9 +37458,9 @@ val_t parser_tables___ParserTable___action_table_row1054(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(232)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(232)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1055;
   return_label1055: while(false);
@@ -37476,15 +37476,15 @@ val_t parser_tables___ParserTable___action_table_row1055(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1054)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1054)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1056;
   return_label1056: while(false);
@@ -37500,9 +37500,9 @@ val_t parser_tables___ParserTable___action_table_row1056(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1057;
   return_label1057: while(false);
@@ -37518,9 +37518,9 @@ val_t parser_tables___ParserTable___action_table_row1057(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1058;
   return_label1058: while(false);
@@ -37536,9 +37536,9 @@ val_t parser_tables___ParserTable___action_table_row1058(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1059;
   return_label1059: while(false);
@@ -37554,9 +37554,9 @@ val_t parser_tables___ParserTable___action_table_row1059(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1060;
   return_label1060: while(false);
@@ -37572,30 +37572,30 @@ val_t parser_tables___ParserTable___action_table_row1060(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1119)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1119)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1061;
   return_label1061: while(false);
@@ -37611,18 +37611,18 @@ val_t parser_tables___ParserTable___action_table_row1061(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1062;
   return_label1062: while(false);
@@ -37638,12 +37638,12 @@ val_t parser_tables___ParserTable___action_table_row1062(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1061)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1121)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1061)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1121)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1063;
   return_label1063: while(false);
@@ -37659,12 +37659,12 @@ val_t parser_tables___ParserTable___action_table_row1063(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1062)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1122)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1062)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1122)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1064;
   return_label1064: while(false);
@@ -37680,12 +37680,12 @@ val_t parser_tables___ParserTable___action_table_row1064(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1063)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1123)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1063)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1123)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1065;
   return_label1065: while(false);
@@ -37701,12 +37701,12 @@ val_t parser_tables___ParserTable___action_table_row1065(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1064)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1124)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1064)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1124)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1066;
   return_label1066: while(false);
@@ -37722,15 +37722,15 @@ val_t parser_tables___ParserTable___action_table_row1066(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(95)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1125)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(95)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1125)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1067;
   return_label1067: while(false);
@@ -37746,12 +37746,12 @@ val_t parser_tables___ParserTable___action_table_row1067(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1066)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1127)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1066)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1127)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1068;
   return_label1068: while(false);
@@ -37767,15 +37767,15 @@ val_t parser_tables___ParserTable___action_table_row1068(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1128)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1128)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1069;
   return_label1069: while(false);
@@ -37791,15 +37791,15 @@ val_t parser_tables___ParserTable___action_table_row1069(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1068)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1130)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1131)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1068)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1130)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1131)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1070;
   return_label1070: while(false);
@@ -37815,9 +37815,9 @@ val_t parser_tables___ParserTable___action_table_row1070(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1071;
   return_label1071: while(false);
@@ -37833,15 +37833,15 @@ val_t parser_tables___ParserTable___action_table_row1071(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1072;
   return_label1072: while(false);
@@ -37857,12 +37857,12 @@ val_t parser_tables___ParserTable___action_table_row1072(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(125)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(125)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1133)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1073;
   return_label1073: while(false);
@@ -37878,12 +37878,12 @@ val_t parser_tables___ParserTable___action_table_row1073(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1072)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1134)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1072)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1134)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1074;
   return_label1074: while(false);
@@ -37899,99 +37899,99 @@ val_t parser_tables___ParserTable___action_table_row1074(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1073)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1073)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1075;
   return_label1075: while(false);
@@ -38007,12 +38007,12 @@ val_t parser_tables___ParserTable___action_table_row1075(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1074)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1136)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1074)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1136)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1076;
   return_label1076: while(false);
@@ -38028,12 +38028,12 @@ val_t parser_tables___ParserTable___action_table_row1076(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1075)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1137)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1075)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1137)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1077;
   return_label1077: while(false);
@@ -38049,15 +38049,15 @@ val_t parser_tables___ParserTable___action_table_row1077(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1138)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1138)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1078;
   return_label1078: while(false);
@@ -38073,12 +38073,12 @@ val_t parser_tables___ParserTable___action_table_row1078(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1077)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1140)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1077)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1140)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1079;
   return_label1079: while(false);
@@ -38094,15 +38094,15 @@ val_t parser_tables___ParserTable___action_table_row1079(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1141)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1141)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1080;
   return_label1080: while(false);
@@ -38118,15 +38118,15 @@ val_t parser_tables___ParserTable___action_table_row1080(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1081;
   return_label1081: while(false);
@@ -38142,12 +38142,12 @@ val_t parser_tables___ParserTable___action_table_row1081(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1144)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1082;
   return_label1082: while(false);
@@ -38163,15 +38163,15 @@ val_t parser_tables___ParserTable___action_table_row1082(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1145)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1083;
   return_label1083: while(false);
@@ -38187,15 +38187,15 @@ val_t parser_tables___ParserTable___action_table_row1083(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1084;
   return_label1084: while(false);
@@ -38211,12 +38211,12 @@ val_t parser_tables___ParserTable___action_table_row1084(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1148)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1085;
   return_label1085: while(false);
@@ -38232,18 +38232,18 @@ val_t parser_tables___ParserTable___action_table_row1085(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1084)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1084)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1151)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1086;
   return_label1086: while(false);
@@ -38259,99 +38259,99 @@ val_t parser_tables___ParserTable___action_table_row1086(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1085)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1085)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1087;
   return_label1087: while(false);
@@ -38367,72 +38367,72 @@ val_t parser_tables___ParserTable___action_table_row1087(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1086)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1086)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1088;
   return_label1088: while(false);
@@ -38448,15 +38448,15 @@ val_t parser_tables___ParserTable___action_table_row1088(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1089;
   return_label1089: while(false);
@@ -38472,99 +38472,99 @@ val_t parser_tables___ParserTable___action_table_row1089(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1088)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1088)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1090;
   return_label1090: while(false);
@@ -38580,12 +38580,12 @@ val_t parser_tables___ParserTable___action_table_row1090(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(174)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1156)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(174)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1156)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1091;
   return_label1091: while(false);
@@ -38601,9 +38601,9 @@ val_t parser_tables___ParserTable___action_table_row1091(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1092;
   return_label1092: while(false);
@@ -38619,9 +38619,9 @@ val_t parser_tables___ParserTable___action_table_row1092(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(366)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(366)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1093;
   return_label1093: while(false);
@@ -38637,66 +38637,66 @@ val_t parser_tables___ParserTable___action_table_row1093(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(60)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1092)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1092)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1094;
   return_label1094: while(false);
@@ -38712,9 +38712,9 @@ val_t parser_tables___ParserTable___action_table_row1094(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(566)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(566)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1095;
   return_label1095: while(false);
@@ -38730,9 +38730,9 @@ val_t parser_tables___ParserTable___action_table_row1095(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1096;
   return_label1096: while(false);
@@ -38748,9 +38748,9 @@ val_t parser_tables___ParserTable___action_table_row1096(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1097;
   return_label1097: while(false);
@@ -38766,30 +38766,30 @@ val_t parser_tables___ParserTable___action_table_row1097(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1158)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1158)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(635)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(636)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(637)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1098;
   return_label1098: while(false);
@@ -38805,9 +38805,9 @@ val_t parser_tables___ParserTable___action_table_row1098(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1099;
   return_label1099: while(false);
@@ -38823,12 +38823,12 @@ val_t parser_tables___ParserTable___action_table_row1099(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(458)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(458)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1100;
   return_label1100: while(false);
@@ -38844,9 +38844,9 @@ val_t parser_tables___ParserTable___action_table_row1100(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(490)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(490)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1101;
   return_label1101: while(false);
@@ -38862,12 +38862,12 @@ val_t parser_tables___ParserTable___action_table_row1101(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1100)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1159)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1100)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1159)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1102;
   return_label1102: while(false);
@@ -38883,9 +38883,9 @@ val_t parser_tables___ParserTable___action_table_row1102(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(503)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(503)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1103;
   return_label1103: while(false);
@@ -38901,12 +38901,12 @@ val_t parser_tables___ParserTable___action_table_row1103(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(345)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(798)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1104;
   return_label1104: while(false);
@@ -38922,15 +38922,15 @@ val_t parser_tables___ParserTable___action_table_row1104(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1105;
   return_label1105: while(false);
@@ -38946,93 +38946,93 @@ val_t parser_tables___ParserTable___action_table_row1105(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(278)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(786)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(278)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(786)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1106;
   return_label1106: while(false);
@@ -39048,9 +39048,9 @@ val_t parser_tables___ParserTable___action_table_row1106(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(486)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(486)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1107;
   return_label1107: while(false);
@@ -39066,72 +39066,72 @@ val_t parser_tables___ParserTable___action_table_row1107(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1108;
   return_label1108: while(false);
@@ -39147,72 +39147,72 @@ val_t parser_tables___ParserTable___action_table_row1108(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1107)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1107)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(673)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1109;
   return_label1109: while(false);
@@ -39228,9 +39228,9 @@ val_t parser_tables___ParserTable___action_table_row1109(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(477)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(477)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1110;
   return_label1110: while(false);
@@ -39246,9 +39246,9 @@ val_t parser_tables___ParserTable___action_table_row1110(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(491)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(491)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1111;
   return_label1111: while(false);
@@ -39264,9 +39264,9 @@ val_t parser_tables___ParserTable___action_table_row1111(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(496)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(496)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1112;
   return_label1112: while(false);
@@ -39282,72 +39282,72 @@ val_t parser_tables___ParserTable___action_table_row1112(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1113;
   return_label1113: while(false);
@@ -39363,15 +39363,15 @@ val_t parser_tables___ParserTable___action_table_row1113(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1114;
   return_label1114: while(false);
@@ -39387,12 +39387,12 @@ val_t parser_tables___ParserTable___action_table_row1114(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1168)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1168)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1115;
   return_label1115: while(false);
@@ -39408,9 +39408,9 @@ val_t parser_tables___ParserTable___action_table_row1115(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(442)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(442)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1116;
   return_label1116: while(false);
@@ -39426,12 +39426,12 @@ val_t parser_tables___ParserTable___action_table_row1116(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1169)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1169)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1117;
   return_label1117: while(false);
@@ -39447,9 +39447,9 @@ val_t parser_tables___ParserTable___action_table_row1117(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(438)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(438)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1118;
   return_label1118: while(false);
@@ -39465,15 +39465,15 @@ val_t parser_tables___ParserTable___action_table_row1118(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1119;
   return_label1119: while(false);
@@ -39489,9 +39489,9 @@ val_t parser_tables___ParserTable___action_table_row1119(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(233)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(233)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1120;
   return_label1120: while(false);
@@ -39507,9 +39507,9 @@ val_t parser_tables___ParserTable___action_table_row1120(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1121;
   return_label1121: while(false);
@@ -39525,12 +39525,12 @@ val_t parser_tables___ParserTable___action_table_row1121(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1120)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1171)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1120)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1171)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1122;
   return_label1122: while(false);
@@ -39546,12 +39546,12 @@ val_t parser_tables___ParserTable___action_table_row1122(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1121)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1121)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1172)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1123;
   return_label1123: while(false);
@@ -39567,15 +39567,15 @@ val_t parser_tables___ParserTable___action_table_row1123(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1173)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1173)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1124;
   return_label1124: while(false);
@@ -39591,12 +39591,12 @@ val_t parser_tables___ParserTable___action_table_row1124(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1123)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1175)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1123)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1175)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1125;
   return_label1125: while(false);
@@ -39612,15 +39612,15 @@ val_t parser_tables___ParserTable___action_table_row1125(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1176)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1176)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1126;
   return_label1126: while(false);
@@ -39636,15 +39636,15 @@ val_t parser_tables___ParserTable___action_table_row1126(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1127;
   return_label1127: while(false);
@@ -39660,12 +39660,12 @@ val_t parser_tables___ParserTable___action_table_row1127(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1179)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1179)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1128;
   return_label1128: while(false);
@@ -39681,15 +39681,15 @@ val_t parser_tables___ParserTable___action_table_row1128(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1180)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1180)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1129;
   return_label1129: while(false);
@@ -39705,15 +39705,15 @@ val_t parser_tables___ParserTable___action_table_row1129(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1130;
   return_label1130: while(false);
@@ -39729,12 +39729,12 @@ val_t parser_tables___ParserTable___action_table_row1130(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1183)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1183)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1131;
   return_label1131: while(false);
@@ -39750,18 +39750,18 @@ val_t parser_tables___ParserTable___action_table_row1131(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1130)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1184)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1185)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1186)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1130)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1184)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1185)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1186)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1132;
   return_label1132: while(false);
@@ -39777,99 +39777,99 @@ val_t parser_tables___ParserTable___action_table_row1132(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1131)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1131)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1133;
   return_label1133: while(false);
@@ -39885,72 +39885,72 @@ val_t parser_tables___ParserTable___action_table_row1133(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1132)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1132)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1134;
   return_label1134: while(false);
@@ -39966,15 +39966,15 @@ val_t parser_tables___ParserTable___action_table_row1134(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1135;
   return_label1135: while(false);
@@ -39990,99 +39990,99 @@ val_t parser_tables___ParserTable___action_table_row1135(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1134)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1134)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1136;
   return_label1136: while(false);
@@ -40098,12 +40098,12 @@ val_t parser_tables___ParserTable___action_table_row1136(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(175)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1191)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(175)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1191)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1137;
   return_label1137: while(false);
@@ -40119,12 +40119,12 @@ val_t parser_tables___ParserTable___action_table_row1137(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1136)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1192)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1136)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1192)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1138;
   return_label1138: while(false);
@@ -40140,15 +40140,15 @@ val_t parser_tables___ParserTable___action_table_row1138(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1193)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1193)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1139;
   return_label1139: while(false);
@@ -40164,15 +40164,15 @@ val_t parser_tables___ParserTable___action_table_row1139(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1140;
   return_label1140: while(false);
@@ -40188,12 +40188,12 @@ val_t parser_tables___ParserTable___action_table_row1140(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(119)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1196)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(119)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1196)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1141;
   return_label1141: while(false);
@@ -40209,15 +40209,15 @@ val_t parser_tables___ParserTable___action_table_row1141(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(99)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1197)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(99)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1197)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1142;
   return_label1142: while(false);
@@ -40233,15 +40233,15 @@ val_t parser_tables___ParserTable___action_table_row1142(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1143;
   return_label1143: while(false);
@@ -40257,12 +40257,12 @@ val_t parser_tables___ParserTable___action_table_row1143(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1200)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1200)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1144;
   return_label1144: while(false);
@@ -40278,72 +40278,72 @@ val_t parser_tables___ParserTable___action_table_row1144(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1143)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1143)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1145;
   return_label1145: while(false);
@@ -40359,15 +40359,15 @@ val_t parser_tables___ParserTable___action_table_row1145(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1146;
   return_label1146: while(false);
@@ -40383,15 +40383,15 @@ val_t parser_tables___ParserTable___action_table_row1146(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1147;
   return_label1147: while(false);
@@ -40407,12 +40407,12 @@ val_t parser_tables___ParserTable___action_table_row1147(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(123)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1204)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(123)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1204)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1148;
   return_label1148: while(false);
@@ -40428,72 +40428,72 @@ val_t parser_tables___ParserTable___action_table_row1148(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1149;
   return_label1149: while(false);
@@ -40509,15 +40509,15 @@ val_t parser_tables___ParserTable___action_table_row1149(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1150;
   return_label1150: while(false);
@@ -40533,9 +40533,9 @@ val_t parser_tables___ParserTable___action_table_row1150(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1151;
   return_label1151: while(false);
@@ -40551,9 +40551,9 @@ val_t parser_tables___ParserTable___action_table_row1151(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1152;
   return_label1152: while(false);
@@ -40569,12 +40569,12 @@ val_t parser_tables___ParserTable___action_table_row1152(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1207)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1207)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1153;
   return_label1153: while(false);
@@ -40590,12 +40590,12 @@ val_t parser_tables___ParserTable___action_table_row1153(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1208)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1208)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1154;
   return_label1154: while(false);
@@ -40611,9 +40611,9 @@ val_t parser_tables___ParserTable___action_table_row1154(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1155;
   return_label1155: while(false);
@@ -40629,72 +40629,72 @@ val_t parser_tables___ParserTable___action_table_row1155(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1154)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1154)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1156;
   return_label1156: while(false);
@@ -40710,12 +40710,12 @@ val_t parser_tables___ParserTable___action_table_row1156(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1210)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1210)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1157;
   return_label1157: while(false);
@@ -40731,9 +40731,9 @@ val_t parser_tables___ParserTable___action_table_row1157(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(178)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(178)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1158;
   return_label1158: while(false);
@@ -40749,9 +40749,9 @@ val_t parser_tables___ParserTable___action_table_row1158(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(520)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(520)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1159;
   return_label1159: while(false);
@@ -40767,9 +40767,9 @@ val_t parser_tables___ParserTable___action_table_row1159(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1160;
   return_label1160: while(false);
@@ -40785,99 +40785,99 @@ val_t parser_tables___ParserTable___action_table_row1160(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(93)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1159)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1159)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(665)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(574)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(575)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(576)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(577)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(579)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(580)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(581)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(582)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(583)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(584)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(585)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(586)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(587)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1161;
   return_label1161: while(false);
@@ -40893,9 +40893,9 @@ val_t parser_tables___ParserTable___action_table_row1161(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(508)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(508)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1162;
   return_label1162: while(false);
@@ -40911,93 +40911,93 @@ val_t parser_tables___ParserTable___action_table_row1162(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(273)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1012)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(273)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1012)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1163;
   return_label1163: while(false);
@@ -41013,15 +41013,15 @@ val_t parser_tables___ParserTable___action_table_row1163(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1162)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1162)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1164;
   return_label1164: while(false);
@@ -41037,15 +41037,15 @@ val_t parser_tables___ParserTable___action_table_row1164(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1163)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1163)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1165;
   return_label1165: while(false);
@@ -41061,9 +41061,9 @@ val_t parser_tables___ParserTable___action_table_row1165(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(493)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(493)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1166;
   return_label1166: while(false);
@@ -41079,9 +41079,9 @@ val_t parser_tables___ParserTable___action_table_row1166(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(498)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(498)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1167;
   return_label1167: while(false);
@@ -41097,9 +41097,9 @@ val_t parser_tables___ParserTable___action_table_row1167(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(315)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1168;
   return_label1168: while(false);
@@ -41115,72 +41115,72 @@ val_t parser_tables___ParserTable___action_table_row1168(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1167)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1167)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1169;
   return_label1169: while(false);
@@ -41196,12 +41196,12 @@ val_t parser_tables___ParserTable___action_table_row1169(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(377)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(228)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1170;
   return_label1170: while(false);
@@ -41217,15 +41217,15 @@ val_t parser_tables___ParserTable___action_table_row1170(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1171;
   return_label1171: while(false);
@@ -41241,9 +41241,9 @@ val_t parser_tables___ParserTable___action_table_row1171(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(234)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(234)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1172;
   return_label1172: while(false);
@@ -41259,12 +41259,12 @@ val_t parser_tables___ParserTable___action_table_row1172(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1171)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1218)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1171)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1218)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1173;
   return_label1173: while(false);
@@ -41280,15 +41280,15 @@ val_t parser_tables___ParserTable___action_table_row1173(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(94)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1219)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(94)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1219)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1174;
   return_label1174: while(false);
@@ -41304,15 +41304,15 @@ val_t parser_tables___ParserTable___action_table_row1174(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1175;
   return_label1175: while(false);
@@ -41328,12 +41328,12 @@ val_t parser_tables___ParserTable___action_table_row1175(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1222)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1222)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1176;
   return_label1176: while(false);
@@ -41349,15 +41349,15 @@ val_t parser_tables___ParserTable___action_table_row1176(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1223)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1223)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1177;
   return_label1177: while(false);
@@ -41373,15 +41373,15 @@ val_t parser_tables___ParserTable___action_table_row1177(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1178;
   return_label1178: while(false);
@@ -41397,12 +41397,12 @@ val_t parser_tables___ParserTable___action_table_row1178(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1226)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1226)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1179;
   return_label1179: while(false);
@@ -41418,72 +41418,72 @@ val_t parser_tables___ParserTable___action_table_row1179(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1178)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1178)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1180;
   return_label1180: while(false);
@@ -41499,15 +41499,15 @@ val_t parser_tables___ParserTable___action_table_row1180(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1181;
   return_label1181: while(false);
@@ -41523,15 +41523,15 @@ val_t parser_tables___ParserTable___action_table_row1181(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1182;
   return_label1182: while(false);
@@ -41547,12 +41547,12 @@ val_t parser_tables___ParserTable___action_table_row1182(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(124)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1230)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(124)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1230)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1183;
   return_label1183: while(false);
@@ -41568,72 +41568,72 @@ val_t parser_tables___ParserTable___action_table_row1183(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1182)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1182)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1184;
   return_label1184: while(false);
@@ -41649,15 +41649,15 @@ val_t parser_tables___ParserTable___action_table_row1184(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1185;
   return_label1185: while(false);
@@ -41673,9 +41673,9 @@ val_t parser_tables___ParserTable___action_table_row1185(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1186;
   return_label1186: while(false);
@@ -41691,9 +41691,9 @@ val_t parser_tables___ParserTable___action_table_row1186(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1187;
   return_label1187: while(false);
@@ -41709,12 +41709,12 @@ val_t parser_tables___ParserTable___action_table_row1187(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1233)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1233)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1188;
   return_label1188: while(false);
@@ -41730,12 +41730,12 @@ val_t parser_tables___ParserTable___action_table_row1188(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(171)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1234)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(171)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1234)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1189;
   return_label1189: while(false);
@@ -41751,9 +41751,9 @@ val_t parser_tables___ParserTable___action_table_row1189(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1190;
   return_label1190: while(false);
@@ -41769,72 +41769,72 @@ val_t parser_tables___ParserTable___action_table_row1190(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1189)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1189)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1191;
   return_label1191: while(false);
@@ -41850,12 +41850,12 @@ val_t parser_tables___ParserTable___action_table_row1191(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1236)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1236)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1192;
   return_label1192: while(false);
@@ -41871,9 +41871,9 @@ val_t parser_tables___ParserTable___action_table_row1192(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1193;
   return_label1193: while(false);
@@ -41889,15 +41889,15 @@ val_t parser_tables___ParserTable___action_table_row1193(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(100)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1237)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(100)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1237)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1194;
   return_label1194: while(false);
@@ -41913,15 +41913,15 @@ val_t parser_tables___ParserTable___action_table_row1194(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1195;
   return_label1195: while(false);
@@ -41937,12 +41937,12 @@ val_t parser_tables___ParserTable___action_table_row1195(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1240)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1240)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1196;
   return_label1196: while(false);
@@ -41958,72 +41958,72 @@ val_t parser_tables___ParserTable___action_table_row1196(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1195)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1195)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1197;
   return_label1197: while(false);
@@ -42039,15 +42039,15 @@ val_t parser_tables___ParserTable___action_table_row1197(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1198;
   return_label1198: while(false);
@@ -42063,15 +42063,15 @@ val_t parser_tables___ParserTable___action_table_row1198(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1199;
   return_label1199: while(false);
@@ -42087,12 +42087,12 @@ val_t parser_tables___ParserTable___action_table_row1199(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1244)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1244)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1200;
   return_label1200: while(false);
@@ -42108,72 +42108,72 @@ val_t parser_tables___ParserTable___action_table_row1200(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1199)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1199)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1201;
   return_label1201: while(false);
@@ -42189,15 +42189,15 @@ val_t parser_tables___ParserTable___action_table_row1201(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1202;
   return_label1202: while(false);
@@ -42213,9 +42213,9 @@ val_t parser_tables___ParserTable___action_table_row1202(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1203;
   return_label1203: while(false);
@@ -42231,72 +42231,72 @@ val_t parser_tables___ParserTable___action_table_row1203(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1202)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1202)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1204;
   return_label1204: while(false);
@@ -42312,72 +42312,72 @@ val_t parser_tables___ParserTable___action_table_row1204(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1203)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1203)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1205;
   return_label1205: while(false);
@@ -42393,15 +42393,15 @@ val_t parser_tables___ParserTable___action_table_row1205(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1206;
   return_label1206: while(false);
@@ -42417,9 +42417,9 @@ val_t parser_tables___ParserTable___action_table_row1206(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1207;
   return_label1207: while(false);
@@ -42435,72 +42435,72 @@ val_t parser_tables___ParserTable___action_table_row1207(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1206)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1206)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1208;
   return_label1208: while(false);
@@ -42516,9 +42516,9 @@ val_t parser_tables___ParserTable___action_table_row1208(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1209;
   return_label1209: while(false);
@@ -42534,9 +42534,9 @@ val_t parser_tables___ParserTable___action_table_row1209(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1210;
   return_label1210: while(false);
@@ -42552,9 +42552,9 @@ val_t parser_tables___ParserTable___action_table_row1210(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1211;
   return_label1211: while(false);
@@ -42570,9 +42570,9 @@ val_t parser_tables___ParserTable___action_table_row1211(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1212;
   return_label1212: while(false);
@@ -42588,9 +42588,9 @@ val_t parser_tables___ParserTable___action_table_row1212(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(502)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(502)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1213;
   return_label1213: while(false);
@@ -42606,93 +42606,93 @@ val_t parser_tables___ParserTable___action_table_row1213(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(274)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1098)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(274)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1098)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1214;
   return_label1214: while(false);
@@ -42708,93 +42708,93 @@ val_t parser_tables___ParserTable___action_table_row1214(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(275)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1012)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(275)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1012)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1215;
   return_label1215: while(false);
@@ -42810,15 +42810,15 @@ val_t parser_tables___ParserTable___action_table_row1215(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1214)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1214)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1216;
   return_label1216: while(false);
@@ -42834,15 +42834,15 @@ val_t parser_tables___ParserTable___action_table_row1216(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1217;
   return_label1217: while(false);
@@ -42858,9 +42858,9 @@ val_t parser_tables___ParserTable___action_table_row1217(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(444)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(444)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1218;
   return_label1218: while(false);
@@ -42876,12 +42876,12 @@ val_t parser_tables___ParserTable___action_table_row1218(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1217)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1217)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1219;
   return_label1219: while(false);
@@ -42897,15 +42897,15 @@ val_t parser_tables___ParserTable___action_table_row1219(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1254)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1254)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1220;
   return_label1220: while(false);
@@ -42921,15 +42921,15 @@ val_t parser_tables___ParserTable___action_table_row1220(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1221;
   return_label1221: while(false);
@@ -42945,12 +42945,12 @@ val_t parser_tables___ParserTable___action_table_row1221(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1257)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1257)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1222;
   return_label1222: while(false);
@@ -42966,72 +42966,72 @@ val_t parser_tables___ParserTable___action_table_row1222(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1221)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1221)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1223;
   return_label1223: while(false);
@@ -43047,15 +43047,15 @@ val_t parser_tables___ParserTable___action_table_row1223(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1224;
   return_label1224: while(false);
@@ -43071,15 +43071,15 @@ val_t parser_tables___ParserTable___action_table_row1224(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1225;
   return_label1225: while(false);
@@ -43095,12 +43095,12 @@ val_t parser_tables___ParserTable___action_table_row1225(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1261)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1261)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1226;
   return_label1226: while(false);
@@ -43116,72 +43116,72 @@ val_t parser_tables___ParserTable___action_table_row1226(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1225)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1225)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1227;
   return_label1227: while(false);
@@ -43197,15 +43197,15 @@ val_t parser_tables___ParserTable___action_table_row1227(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1228;
   return_label1228: while(false);
@@ -43221,9 +43221,9 @@ val_t parser_tables___ParserTable___action_table_row1228(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1229;
   return_label1229: while(false);
@@ -43239,72 +43239,72 @@ val_t parser_tables___ParserTable___action_table_row1229(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1228)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1228)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1230;
   return_label1230: while(false);
@@ -43320,72 +43320,72 @@ val_t parser_tables___ParserTable___action_table_row1230(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1229)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1229)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1231;
   return_label1231: while(false);
@@ -43401,15 +43401,15 @@ val_t parser_tables___ParserTable___action_table_row1231(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1232;
   return_label1232: while(false);
@@ -43425,9 +43425,9 @@ val_t parser_tables___ParserTable___action_table_row1232(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1233;
   return_label1233: while(false);
@@ -43443,72 +43443,72 @@ val_t parser_tables___ParserTable___action_table_row1233(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1232)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1232)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1234;
   return_label1234: while(false);
@@ -43524,9 +43524,9 @@ val_t parser_tables___ParserTable___action_table_row1234(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(169)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(169)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1235;
   return_label1235: while(false);
@@ -43542,9 +43542,9 @@ val_t parser_tables___ParserTable___action_table_row1235(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1236;
   return_label1236: while(false);
@@ -43560,9 +43560,9 @@ val_t parser_tables___ParserTable___action_table_row1236(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(161)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(161)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1237;
   return_label1237: while(false);
@@ -43578,9 +43578,9 @@ val_t parser_tables___ParserTable___action_table_row1237(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1238;
   return_label1238: while(false);
@@ -43596,15 +43596,15 @@ val_t parser_tables___ParserTable___action_table_row1238(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1239;
   return_label1239: while(false);
@@ -43620,12 +43620,12 @@ val_t parser_tables___ParserTable___action_table_row1239(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1269)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1269)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1240;
   return_label1240: while(false);
@@ -43641,72 +43641,72 @@ val_t parser_tables___ParserTable___action_table_row1240(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1239)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1239)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1241;
   return_label1241: while(false);
@@ -43722,15 +43722,15 @@ val_t parser_tables___ParserTable___action_table_row1241(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1242;
   return_label1242: while(false);
@@ -43746,9 +43746,9 @@ val_t parser_tables___ParserTable___action_table_row1242(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1243;
   return_label1243: while(false);
@@ -43764,72 +43764,72 @@ val_t parser_tables___ParserTable___action_table_row1243(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1242)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1242)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1244;
   return_label1244: while(false);
@@ -43845,72 +43845,72 @@ val_t parser_tables___ParserTable___action_table_row1244(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1243)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1243)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1245;
   return_label1245: while(false);
@@ -43926,15 +43926,15 @@ val_t parser_tables___ParserTable___action_table_row1245(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1246;
   return_label1246: while(false);
@@ -43950,9 +43950,9 @@ val_t parser_tables___ParserTable___action_table_row1246(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(126)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(126)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1247;
   return_label1247: while(false);
@@ -43968,72 +43968,72 @@ val_t parser_tables___ParserTable___action_table_row1247(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1246)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1246)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1248;
   return_label1248: while(false);
@@ -44049,9 +44049,9 @@ val_t parser_tables___ParserTable___action_table_row1248(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1249;
   return_label1249: while(false);
@@ -44067,9 +44067,9 @@ val_t parser_tables___ParserTable___action_table_row1249(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(141)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(141)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1250;
   return_label1250: while(false);
@@ -44085,72 +44085,72 @@ val_t parser_tables___ParserTable___action_table_row1250(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1249)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1249)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1251;
   return_label1251: while(false);
@@ -44166,9 +44166,9 @@ val_t parser_tables___ParserTable___action_table_row1251(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1252;
   return_label1252: while(false);
@@ -44184,93 +44184,93 @@ val_t parser_tables___ParserTable___action_table_row1252(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(87)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1098)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(276)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1098)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1253;
   return_label1253: while(false);
@@ -44286,12 +44286,12 @@ val_t parser_tables___ParserTable___action_table_row1253(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1252)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1277)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1252)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1277)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1254;
   return_label1254: while(false);
@@ -44307,15 +44307,15 @@ val_t parser_tables___ParserTable___action_table_row1254(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1255;
   return_label1255: while(false);
@@ -44331,15 +44331,15 @@ val_t parser_tables___ParserTable___action_table_row1255(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1256;
   return_label1256: while(false);
@@ -44355,12 +44355,12 @@ val_t parser_tables___ParserTable___action_table_row1256(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(121)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1280)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(121)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1280)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1257;
   return_label1257: while(false);
@@ -44376,72 +44376,72 @@ val_t parser_tables___ParserTable___action_table_row1257(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1256)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1256)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1258;
   return_label1258: while(false);
@@ -44457,15 +44457,15 @@ val_t parser_tables___ParserTable___action_table_row1258(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1259;
   return_label1259: while(false);
@@ -44481,9 +44481,9 @@ val_t parser_tables___ParserTable___action_table_row1259(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1260;
   return_label1260: while(false);
@@ -44499,72 +44499,72 @@ val_t parser_tables___ParserTable___action_table_row1260(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1259)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1259)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1261;
   return_label1261: while(false);
@@ -44580,72 +44580,72 @@ val_t parser_tables___ParserTable___action_table_row1261(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1260)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1260)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1262;
   return_label1262: while(false);
@@ -44661,15 +44661,15 @@ val_t parser_tables___ParserTable___action_table_row1262(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1263;
   return_label1263: while(false);
@@ -44685,9 +44685,9 @@ val_t parser_tables___ParserTable___action_table_row1263(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1264;
   return_label1264: while(false);
@@ -44703,72 +44703,72 @@ val_t parser_tables___ParserTable___action_table_row1264(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1263)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1263)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1265;
   return_label1265: while(false);
@@ -44784,9 +44784,9 @@ val_t parser_tables___ParserTable___action_table_row1265(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1266;
   return_label1266: while(false);
@@ -44802,9 +44802,9 @@ val_t parser_tables___ParserTable___action_table_row1266(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1267;
   return_label1267: while(false);
@@ -44820,72 +44820,72 @@ val_t parser_tables___ParserTable___action_table_row1267(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1266)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1266)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1268;
   return_label1268: while(false);
@@ -44901,9 +44901,9 @@ val_t parser_tables___ParserTable___action_table_row1268(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1269;
   return_label1269: while(false);
@@ -44919,72 +44919,72 @@ val_t parser_tables___ParserTable___action_table_row1269(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1268)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1268)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1270;
   return_label1270: while(false);
@@ -45000,15 +45000,15 @@ val_t parser_tables___ParserTable___action_table_row1270(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1271;
   return_label1271: while(false);
@@ -45024,9 +45024,9 @@ val_t parser_tables___ParserTable___action_table_row1271(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1272;
   return_label1272: while(false);
@@ -45042,72 +45042,72 @@ val_t parser_tables___ParserTable___action_table_row1272(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1271)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1271)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1273;
   return_label1273: while(false);
@@ -45123,9 +45123,9 @@ val_t parser_tables___ParserTable___action_table_row1273(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(155)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(155)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1274;
   return_label1274: while(false);
@@ -45141,9 +45141,9 @@ val_t parser_tables___ParserTable___action_table_row1274(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1275;
   return_label1275: while(false);
@@ -45159,72 +45159,72 @@ val_t parser_tables___ParserTable___action_table_row1275(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1274)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1274)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1276;
   return_label1276: while(false);
@@ -45240,9 +45240,9 @@ val_t parser_tables___ParserTable___action_table_row1276(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1277;
   return_label1277: while(false);
@@ -45258,9 +45258,9 @@ val_t parser_tables___ParserTable___action_table_row1277(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(159)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(159)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1278;
   return_label1278: while(false);
@@ -45276,15 +45276,15 @@ val_t parser_tables___ParserTable___action_table_row1278(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1279;
   return_label1279: while(false);
@@ -45300,12 +45300,12 @@ val_t parser_tables___ParserTable___action_table_row1279(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1278)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1293)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1278)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1293)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1280;
   return_label1280: while(false);
@@ -45321,72 +45321,72 @@ val_t parser_tables___ParserTable___action_table_row1280(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1279)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1279)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1281;
   return_label1281: while(false);
@@ -45402,15 +45402,15 @@ val_t parser_tables___ParserTable___action_table_row1281(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(9)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(398)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1282;
   return_label1282: while(false);
@@ -45426,9 +45426,9 @@ val_t parser_tables___ParserTable___action_table_row1282(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1283;
   return_label1283: while(false);
@@ -45444,72 +45444,72 @@ val_t parser_tables___ParserTable___action_table_row1283(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1282)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1282)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1284;
   return_label1284: while(false);
@@ -45525,9 +45525,9 @@ val_t parser_tables___ParserTable___action_table_row1284(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1285;
   return_label1285: while(false);
@@ -45543,9 +45543,9 @@ val_t parser_tables___ParserTable___action_table_row1285(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(138)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(138)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1286;
   return_label1286: while(false);
@@ -45561,72 +45561,72 @@ val_t parser_tables___ParserTable___action_table_row1286(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1285)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1285)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1287;
   return_label1287: while(false);
@@ -45642,9 +45642,9 @@ val_t parser_tables___ParserTable___action_table_row1287(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1288;
   return_label1288: while(false);
@@ -45660,9 +45660,9 @@ val_t parser_tables___ParserTable___action_table_row1288(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(160)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(160)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1289;
   return_label1289: while(false);
@@ -45678,9 +45678,9 @@ val_t parser_tables___ParserTable___action_table_row1289(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1290;
   return_label1290: while(false);
@@ -45696,72 +45696,72 @@ val_t parser_tables___ParserTable___action_table_row1290(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1289)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1289)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1291;
   return_label1291: while(false);
@@ -45777,9 +45777,9 @@ val_t parser_tables___ParserTable___action_table_row1291(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1292;
   return_label1292: while(false);
@@ -45795,9 +45795,9 @@ val_t parser_tables___ParserTable___action_table_row1292(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1293;
   return_label1293: while(false);
@@ -45813,69 +45813,69 @@ val_t parser_tables___ParserTable___action_table_row1293(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(63)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1292)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(704)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1292)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(703)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(704)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(705)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(706)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(707)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(708)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(709)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(710)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(711)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(712)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(713)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(714)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(715)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(716)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(717)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(718)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(719)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(720)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1294;
   return_label1294: while(false);
@@ -45891,9 +45891,9 @@ val_t parser_tables___ParserTable___action_table_row1294(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(455)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(455)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1295;
   return_label1295: while(false);
@@ -45909,9 +45909,9 @@ val_t parser_tables___ParserTable___action_table_row1295(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1296;
   return_label1296: while(false);
@@ -45927,72 +45927,72 @@ val_t parser_tables___ParserTable___action_table_row1296(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1295)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1295)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1297;
   return_label1297: while(false);
@@ -46008,9 +46008,9 @@ val_t parser_tables___ParserTable___action_table_row1297(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1298;
   return_label1298: while(false);
@@ -46026,9 +46026,9 @@ val_t parser_tables___ParserTable___action_table_row1298(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1299;
   return_label1299: while(false);
@@ -46044,9 +46044,9 @@ val_t parser_tables___ParserTable___action_table_row1299(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(154)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(154)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1300;
   return_label1300: while(false);
@@ -46062,9 +46062,9 @@ val_t parser_tables___ParserTable___action_table_row1300(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(408)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(408)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1301;
   return_label1301: while(false);
@@ -46080,9 +46080,9 @@ val_t parser_tables___ParserTable___action_table_row1301(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[Int]*/
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(157)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(157)) /*AbstractArray::add*/;
   variable[1] = variable[2];
   goto return_label1302;
   return_label1302: while(false);
@@ -46103,2904 +46103,2904 @@ void parser_tables___ParserTable___build_goto_table(val_t  self) {
     variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(137)); /*new Array[Array[Int]]*/
     variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[5] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[4]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[4]) /*AbstractArray::add*/;
     variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[6] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5], variable[6]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[5],COLOR_abstract_collection___SimpleCollection___add))(variable[5],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[5]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[6]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[7] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[7]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[6]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(48)); /*new Array[Int]*/
     variable[8] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7], variable[8]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(6)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(17)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(78)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(81)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(89)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(24)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(94)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(212)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(88)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(216)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(219)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(225)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(211)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(342)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(345)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(217)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(347)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(218)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(348)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(221)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(351)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(343)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(447)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(344)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(448)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(346)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(450)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(349)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(451)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(350)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(452)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(352)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(454)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(449)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(554)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(453)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add))(variable[7],  TAG_Int(555)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(6)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(17)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(78)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(81)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(89)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(24)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(94)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(212)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(88)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(216)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(219)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(225)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(211)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(342)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(345)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(217)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(347)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(218)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(348)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(221)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(351)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(343)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(447)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(344)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(448)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(346)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(450)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(349)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(451)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(350)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(452)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(352)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(454)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(449)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(554)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(453)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7],  TAG_Int(555)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[9] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8], variable[9]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[8],COLOR_abstract_collection___SimpleCollection___add))(variable[8],  TAG_Int(7)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[9]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8],  TAG_Int(7)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(10)); /*new Array[Int]*/
     variable[10] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9], variable[10]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(8)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[9]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[10]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(8)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[11] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10], variable[11]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(190)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  TAG_Int(257)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[10]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(190)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  TAG_Int(257)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[12] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11], variable[12]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(540)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(483)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  TAG_Int(567)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[12]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(540)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(483)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  TAG_Int(567)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[13] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12], variable[13]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(860)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(862)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[12],COLOR_abstract_collection___SimpleCollection___add))(variable[12],  TAG_Int(967)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[12]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[13]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(860)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(862)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12],  TAG_Int(967)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[14] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13], variable[14]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(745)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(965)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[13],COLOR_abstract_collection___SimpleCollection___add))(variable[13],  TAG_Int(1055)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[13]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(745)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(965)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13],  TAG_Int(1055)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_Array_array___Array___with_capacity(TAG_Int(10)); /*new Array[Int]*/
     variable[15] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14], variable[15]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(541)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(544)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(570)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(631)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(659)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[14],COLOR_abstract_collection___SimpleCollection___add))(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(541)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(544)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(570)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(631)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(659)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[14])(variable[14],  TAG_Int(639)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[16] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15], variable[16]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(750)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(753)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(783)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(864)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(894)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(900)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(906)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(972)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(1008)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[15],COLOR_abstract_collection___SimpleCollection___add))(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(750)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(753)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(783)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(864)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(894)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(900)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(906)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(972)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(1008)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[15])(variable[15],  TAG_Int(869)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[17] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16], variable[17]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(751)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(436)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(542)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(483)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(568)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(540)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(629)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(544)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(640)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(567)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(657)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(570)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(662)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(631)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(748)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(659)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[16],COLOR_abstract_collection___SimpleCollection___add))(variable[16],  TAG_Int(780)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(751)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(436)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(542)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(483)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(568)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(540)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(629)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(544)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(640)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(567)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(657)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(570)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(662)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(631)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(748)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(659)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[16])(variable[16],  TAG_Int(780)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[18] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17], variable[18]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(217)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(343)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(346)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(349)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(352)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(449)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(453)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[17],COLOR_abstract_collection___SimpleCollection___add))(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(217)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(343)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(346)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(349)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(352)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(449)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(453)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[17])(variable[17],  TAG_Int(226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[19] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18], variable[19]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(96)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(83)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(213)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[18],COLOR_abstract_collection___SimpleCollection___add))(variable[18],  TAG_Int(220)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(96)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(83)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(213)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[18])(variable[18],  TAG_Int(220)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[18]) /*AbstractArray::add*/;
     variable[19] = NEW_Array_array___Array___with_capacity(TAG_Int(48)); /*new Array[Int]*/
     variable[20] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19], variable[20]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(638)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(27)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(215)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(224)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(223)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(353)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(635)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(757)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(636)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(760)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(637)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(762)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(755)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(874)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(756)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(876)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(758)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(882)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(759)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(884)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(761)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(886)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(872)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(975)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(873)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(977)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(875)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(979)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(881)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(987)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(883)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(989)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(974)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(1061)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(976)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(1063)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(986)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(1074)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(1060)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[19],COLOR_abstract_collection___SimpleCollection___add))(variable[19],  TAG_Int(1120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19], variable[20]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(638)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(27)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(215)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(224)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(223)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(353)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(635)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(757)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(636)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(760)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(637)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(762)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(755)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(874)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(756)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(876)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(758)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(882)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(759)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(884)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(761)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(886)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(872)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(975)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(873)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(977)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(875)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(979)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(881)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(987)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(883)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(989)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(974)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(1061)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(976)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(1063)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(986)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(1074)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(1060)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[19])(variable[19],  TAG_Int(1120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
     variable[21] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20], variable[21]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(326)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(256)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(382)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(763)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(888)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(766)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(891)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(877)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(981)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(880)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[20],COLOR_abstract_collection___SimpleCollection___add))(variable[20],  TAG_Int(984)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[20]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20], variable[21]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(326)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(256)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(382)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(763)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(888)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(766)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(891)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(877)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(981)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(880)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[20])(variable[20],  TAG_Int(984)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[20]) /*AbstractArray::add*/;
     variable[21] = NEW_Array_array___Array___with_capacity(TAG_Int(16)); /*new Array[Int]*/
     variable[22] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21], variable[22]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(431)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(382)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(482)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(766)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(892)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(880)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(985)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(888)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(994)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(891)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(998)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(981)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(1068)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(984)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[21],COLOR_abstract_collection___SimpleCollection___add))(variable[21],  TAG_Int(1072)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[21]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21], variable[22]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(431)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(382)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(482)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(766)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(892)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(880)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(985)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(888)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(994)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(891)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(998)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(981)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(1068)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(984)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[21])(variable[21],  TAG_Int(1072)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[21]) /*AbstractArray::add*/;
     variable[22] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[23] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22], variable[23]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(855)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(854)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[22],COLOR_abstract_collection___SimpleCollection___add))(variable[22],  TAG_Int(961)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[22]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22], variable[23]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(855)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(854)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[22])(variable[22],  TAG_Int(961)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[22]) /*AbstractArray::add*/;
     variable[23] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[24] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23], variable[24]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(432)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(743)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(856)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(854)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[23],COLOR_abstract_collection___SimpleCollection___add))(variable[23],  TAG_Int(856)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[23]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23], variable[24]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(432)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(743)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(856)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(854)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[23])(variable[23],  TAG_Int(856)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[23]) /*AbstractArray::add*/;
     variable[24] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[25] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24], variable[25]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(738)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(740)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[24],COLOR_abstract_collection___SimpleCollection___add))(variable[24],  TAG_Int(852)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[24]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24], variable[25]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(738)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(740)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[24])(variable[24],  TAG_Int(852)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[24]) /*AbstractArray::add*/;
     variable[25] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[26] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25], variable[26]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(620)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(850)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[25],COLOR_abstract_collection___SimpleCollection___add))(variable[25],  TAG_Int(959)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[25]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25], variable[26]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(620)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(850)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[25])(variable[25],  TAG_Int(959)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[25]) /*AbstractArray::add*/;
     variable[26] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[27] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26], variable[27]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(433)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(432)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(531)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(434)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(534)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(532)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[26],COLOR_abstract_collection___SimpleCollection___add))(variable[26],  TAG_Int(623)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[26]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26], variable[27]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(433)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(432)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(531)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(434)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(534)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(532)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[26])(variable[26],  TAG_Int(623)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[26]) /*AbstractArray::add*/;
     variable[27] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[28] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27], variable[28]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(537)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(538)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[27],COLOR_abstract_collection___SimpleCollection___add))(variable[27],  TAG_Int(627)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[27]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27], variable[28]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(537)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(538)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[27])(variable[27],  TAG_Int(627)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[27]) /*AbstractArray::add*/;
     variable[28] = NEW_Array_array___Array___with_capacity(TAG_Int(20)); /*new Array[Int]*/
     variable[29] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28], variable[29]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(606)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(169)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(294)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(268)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(394)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(386)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(486)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(401)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(497)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(754)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(871)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(769)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(895)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(776)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(898)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(813)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(930)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(1217)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[28],COLOR_abstract_collection___SimpleCollection___add))(variable[28],  TAG_Int(1253)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[28]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28], variable[29]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(606)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(169)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(294)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(268)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(394)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(386)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(486)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(401)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(497)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(754)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(871)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(769)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(895)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(776)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(898)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(813)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(930)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(1217)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[28])(variable[28],  TAG_Int(1253)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[28]) /*AbstractArray::add*/;
     variable[29] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[30] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29], variable[30]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(607)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(558)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[29],COLOR_abstract_collection___SimpleCollection___add))(variable[29],  TAG_Int(651)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[29]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29], variable[30]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(607)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(558)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[29])(variable[29],  TAG_Int(651)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[29]) /*AbstractArray::add*/;
     variable[30] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[31] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30], variable[31]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(698)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(699)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[30],COLOR_abstract_collection___SimpleCollection___add))(variable[30],  TAG_Int(814)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[30]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30], variable[31]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(698)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(699)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[30])(variable[30],  TAG_Int(814)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[30]) /*AbstractArray::add*/;
     variable[31] = NEW_Array_array___Array___with_capacity(TAG_Int(58)); /*new Array[Int]*/
     variable[32] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31], variable[32]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(434)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(137)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(262)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(432)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(532)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(619)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(736)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(669)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(789)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(743)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(857)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(744)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(858)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(854)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(857)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(856)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(964)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(889)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(995)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(890)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(997)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(982)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1069)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(983)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1071)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(991)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1080)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(993)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1083)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1065)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1126)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1067)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1129)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1076)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1139)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1078)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1142)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1081)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1146)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1174)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1124)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1137)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1194)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1198)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1172)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1220)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1175)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1224)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1192)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1238)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1218)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[31],COLOR_abstract_collection___SimpleCollection___add))(variable[31],  TAG_Int(1255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[31]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31], variable[32]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(434)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(137)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(262)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(432)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(532)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(619)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(736)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(669)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(789)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(743)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(857)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(744)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(858)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(854)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(857)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(856)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(964)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(889)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(995)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(890)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(997)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(982)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1069)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(983)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1071)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(991)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1080)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(993)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1083)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1065)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1126)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1067)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1129)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1076)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1139)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1078)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1142)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1081)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1146)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1174)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1124)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1137)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1194)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1198)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1172)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1220)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1175)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1224)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1192)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1238)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1218)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[31])(variable[31],  TAG_Int(1255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[31]) /*AbstractArray::add*/;
     variable[32] = NEW_Array_array___Array___with_capacity(TAG_Int(44)); /*new Array[Int]*/
     variable[33] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32], variable[33]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(331)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(437)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(422)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(521)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(490)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(602)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(523)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(615)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(530)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(622)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(566)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(656)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(578)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(671)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(693)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(811)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(804)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(437)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(918)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(521)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(962)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1054)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(999)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1089)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1017)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(602)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1021)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(615)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1052)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1073)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1085)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1088)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1155)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1187)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1190)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(1159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[32],COLOR_abstract_collection___SimpleCollection___add))(variable[32],  TAG_Int(811)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[32]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32], variable[33]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(331)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(437)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(422)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(521)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(490)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(602)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(523)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(615)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(530)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(622)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(566)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(656)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(578)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(671)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(693)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(811)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(804)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(437)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(918)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(521)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(962)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1054)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(999)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1089)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1017)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(602)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1021)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(615)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1052)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1073)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1085)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1088)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1155)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1187)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1190)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(1159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[32])(variable[32],  TAG_Int(811)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[32]) /*AbstractArray::add*/;
     variable[33] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[34] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33], variable[34]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(191)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(194)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(385)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(733)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(810)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(847)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(908)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(1162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(1214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[33],COLOR_abstract_collection___SimpleCollection___add))(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[33]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33], variable[34]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(191)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(194)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(385)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(733)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(810)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(847)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(908)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(1162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(1214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[33])(variable[33],  TAG_Int(329)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[33]) /*AbstractArray::add*/;
     variable[34] = NEW_Array_array___Array___with_capacity(TAG_Int(58)); /*new Array[Int]*/
     variable[35] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34], variable[35]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(259)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(192)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(384)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(485)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(489)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(588)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(522)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(614)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(593)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(691)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(616)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(734)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(666)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(787)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(732)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(809)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(845)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(846)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(907)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(928)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(958)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1013)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1016)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(588)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1019)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1161)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1212)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1213)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(1251)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[34],COLOR_abstract_collection___SimpleCollection___add))(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[34]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(259)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(192)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(384)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(485)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(489)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(588)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(522)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(614)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(593)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(691)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(616)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(734)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(666)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(787)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(732)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(809)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(845)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(846)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(907)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(928)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(958)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1013)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1016)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(588)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1019)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1161)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1212)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1213)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(1251)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[34])(variable[34],  TAG_Int(328)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[34]) /*AbstractArray::add*/;
     variable[35] = NEW_Array_array___Array___with_capacity(TAG_Int(22)); /*new Array[Int]*/
     variable[36] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35], variable[36]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(305)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(271)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(397)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(289)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(415)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(307)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(425)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(550)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(645)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(605)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(696)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(792)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(397)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(794)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(415)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(425)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(1024)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(645)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(1102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[35],COLOR_abstract_collection___SimpleCollection___add))(variable[35],  TAG_Int(696)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(305)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(271)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(397)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(289)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(415)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(307)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(425)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(550)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(645)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(605)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(696)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(792)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(397)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(794)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(415)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(425)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(1024)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(645)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(1102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[35])(variable[35],  TAG_Int(696)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[35]) /*AbstractArray::add*/;
     variable[36] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[37] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36], variable[37]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[36],COLOR_abstract_collection___SimpleCollection___add))(variable[36],  TAG_Int(306)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[36])(variable[36],  TAG_Int(306)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_Array_array___Array___with_capacity(TAG_Int(14)); /*new Array[Int]*/
     variable[38] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37], variable[38]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(307)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(684)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(792)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(794)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(1024)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(1102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[37],COLOR_abstract_collection___SimpleCollection___add))(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(307)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(684)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(792)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(794)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(1024)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(1102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[37])(variable[37],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[39] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38], variable[39]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[38],COLOR_abstract_collection___SimpleCollection___add))(variable[38],  TAG_Int(59)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[38])(variable[38],  TAG_Int(59)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[40] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39], variable[40]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[39],COLOR_abstract_collection___SimpleCollection___add))(variable[39],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[39])(variable[39],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_Array_array___Array___with_capacity(TAG_Int(20)); /*new Array[Int]*/
     variable[41] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40], variable[41]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(178)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(303)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(198)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(335)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(442)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(552)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(549)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(644)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(587)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(686)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(683)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(797)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(689)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(807)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(924)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(1026)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(1023)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[40],COLOR_abstract_collection___SimpleCollection___add))(variable[40],  TAG_Int(1107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(178)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(303)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(198)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(335)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(442)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(552)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(549)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(644)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(587)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(686)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(683)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(797)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(689)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(807)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(924)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(1026)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(1023)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[40])(variable[40],  TAG_Int(1107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[42] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41], variable[42]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[41],COLOR_abstract_collection___SimpleCollection___add))(variable[41],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[41])(variable[41],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[43] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42], variable[43]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[42],COLOR_abstract_collection___SimpleCollection___add))(variable[42],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[42])(variable[42],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[44] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43], variable[44]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(589)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(593)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(692)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(809)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(927)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(928)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[43],COLOR_abstract_collection___SimpleCollection___add))(variable[43],  TAG_Int(1027)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(589)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(593)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(692)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(809)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(927)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(928)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[43])(variable[43],  TAG_Int(1027)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[45] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44], variable[45]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[44],COLOR_abstract_collection___SimpleCollection___add))(variable[44],  TAG_Int(63)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[44])(variable[44],  TAG_Int(63)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[46] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45], variable[46]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[45],COLOR_abstract_collection___SimpleCollection___add))(variable[45],  TAG_Int(64)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[45])(variable[45],  TAG_Int(64)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[47] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46], variable[47]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(489)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(575)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(804)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(918)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(1016)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(1017)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(1021)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(1159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[46],COLOR_abstract_collection___SimpleCollection___add))(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(489)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(575)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(804)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(918)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(1016)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(1017)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(1021)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(1159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[46])(variable[46],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[48] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47], variable[48]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[47],COLOR_abstract_collection___SimpleCollection___add))(variable[47],  TAG_Int(66)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[47])(variable[47],  TAG_Int(66)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[49] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48], variable[49]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(584)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[48],COLOR_abstract_collection___SimpleCollection___add))(variable[48],  TAG_Int(680)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(584)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[48])(variable[48],  TAG_Int(680)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[48]) /*AbstractArray::add*/;
     variable[49] = NEW_Array_array___Array___with_capacity(TAG_Int(66)); /*new Array[Int]*/
     variable[50] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49], variable[50]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(168)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(292)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(180)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(308)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(309)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(302)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(420)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(303)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(421)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(334)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(443)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(335)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(444)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(387)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(487)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(488)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(572)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(551)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(646)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(552)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(647)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(581)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(582)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(584)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(168)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(643)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(770)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(644)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(771)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(680)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(292)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(685)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(308)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(686)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(309)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(796)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(420)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(797)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(421)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(806)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(443)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(807)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(444)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(909)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(487)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(1015)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(572)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(1025)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(646)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(1026)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(647)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(1106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(770)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(1107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[49],COLOR_abstract_collection___SimpleCollection___add))(variable[49],  TAG_Int(771)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(168)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(292)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(180)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(308)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(309)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(302)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(420)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(303)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(421)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(334)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(443)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(335)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(444)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(387)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(487)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(488)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(572)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(551)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(646)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(552)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(647)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(581)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(582)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(584)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(168)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(643)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(770)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(644)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(771)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(680)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(292)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(685)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(308)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(686)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(309)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(796)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(420)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(797)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(421)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(806)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(443)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(807)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(444)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(909)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(487)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(1015)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(572)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(1025)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(646)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(1026)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(647)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(1106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(770)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(1107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[49])(variable[49],  TAG_Int(771)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_Array_array___Array___with_capacity(TAG_Int(150)); /*new Array[Int]*/
     variable[51] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50], variable[51]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(154)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(47)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(141)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(263)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(142)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(264)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(175)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(299)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(205)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(339)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(230)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(356)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(235)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(362)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(266)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(392)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(332)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(438)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(336)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(445)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(355)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(456)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(580)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(581)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(582)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(584)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(603)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(694)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(610)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(702)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(650)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(773)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(670)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(790)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(672)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(791)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(680)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(685)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(686)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(695)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(812)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(713)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(823)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(796)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(797)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(806)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(807)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(818)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(931)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(909)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1015)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1025)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1026)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1086)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1188)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1201)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1147)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1205)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1154)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1209)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1215)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1178)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1227)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1182)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1231)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1189)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1235)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1195)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1241)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1199)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1245)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1202)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1247)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1203)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1248)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1206)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1250)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1221)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1258)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1225)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1262)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1228)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1264)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1229)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1265)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1232)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1267)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1239)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1270)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1242)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1272)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1243)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1273)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1246)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1275)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1249)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1276)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1256)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1281)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1259)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1283)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1260)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1284)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1263)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1286)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1266)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1287)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1268)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1288)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1271)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1290)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1274)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1291)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1279)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1294)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1282)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1296)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1285)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1297)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1289)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1298)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1295)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[50],COLOR_abstract_collection___SimpleCollection___add))(variable[50],  TAG_Int(1300)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(154)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(47)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(141)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(263)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(142)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(264)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(175)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(299)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(205)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(339)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(230)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(356)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(235)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(362)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(266)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(392)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(332)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(438)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(336)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(445)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(355)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(456)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(580)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(581)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(582)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(584)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(603)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(694)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(610)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(702)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(650)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(773)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(670)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(790)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(672)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(791)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(680)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(685)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(686)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(695)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(812)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(713)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(823)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(796)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(797)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(806)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(807)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(818)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(931)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(909)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1015)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1025)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1026)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1086)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(674)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1188)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1201)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1147)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1205)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1154)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1209)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1215)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1178)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1227)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1182)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1231)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1189)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1235)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1195)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1241)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1199)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1245)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1202)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1247)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1203)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1248)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1206)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1250)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1221)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1258)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1225)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1262)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1228)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1264)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1229)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1265)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1232)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1267)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1239)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1270)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1242)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1272)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1243)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1273)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1246)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1275)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1249)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1276)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1256)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1281)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1259)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1283)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1260)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1284)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1263)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1286)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1266)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1287)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1268)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1288)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1271)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1290)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1274)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1291)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1279)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1294)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1282)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1296)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1285)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1297)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1289)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1298)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1295)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[50])(variable[50],  TAG_Int(1300)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[50]) /*AbstractArray::add*/;
     variable[51] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[52] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51], variable[52]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[51],COLOR_abstract_collection___SimpleCollection___add))(variable[51],  TAG_Int(155)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[51])(variable[51],  TAG_Int(155)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[51]) /*AbstractArray::add*/;
     variable[52] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[53] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52], variable[53]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(267)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(393)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(398)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(494)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(399)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[52],COLOR_abstract_collection___SimpleCollection___add))(variable[52],  TAG_Int(495)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(267)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(393)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(398)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(494)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(399)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[52])(variable[52],  TAG_Int(495)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[52]) /*AbstractArray::add*/;
     variable[53] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[54] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53], variable[54]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[53],COLOR_abstract_collection___SimpleCollection___add))(variable[53],  TAG_Int(157)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53], variable[54]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[53])(variable[53],  TAG_Int(157)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[53]) /*AbstractArray::add*/;
     variable[54] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[55] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54], variable[55]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(400)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(496)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(404)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(500)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(405)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(501)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(406)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(502)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(407)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(503)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(408)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(504)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(409)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(505)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(410)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[54],COLOR_abstract_collection___SimpleCollection___add))(variable[54],  TAG_Int(506)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[54]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54], variable[55]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(400)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(496)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(404)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(500)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(405)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(501)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(406)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(502)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(407)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(503)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(408)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(504)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(409)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(505)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(410)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[54])(variable[54],  TAG_Int(506)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[54]) /*AbstractArray::add*/;
     variable[55] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[56] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55], variable[56]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(402)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(498)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(403)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[55],COLOR_abstract_collection___SimpleCollection___add))(variable[55],  TAG_Int(499)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[55]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55], variable[56]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(402)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(498)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(403)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[55])(variable[55],  TAG_Int(499)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[55]) /*AbstractArray::add*/;
     variable[56] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
     variable[57] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56], variable[57]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(160)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(269)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(395)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(270)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(396)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(411)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(507)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(412)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(508)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(413)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[56],COLOR_abstract_collection___SimpleCollection___add))(variable[56],  TAG_Int(509)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[56]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56], variable[57]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(160)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(269)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(395)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(270)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(396)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(411)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(507)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(412)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(508)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(413)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[56])(variable[56],  TAG_Int(509)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[56]) /*AbstractArray::add*/;
     variable[57] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[58] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57], variable[58]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[57],COLOR_abstract_collection___SimpleCollection___add))(variable[57],  TAG_Int(161)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[57]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57], variable[58]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[57])(variable[57],  TAG_Int(161)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[57]) /*AbstractArray::add*/;
     variable[58] = NEW_Array_array___Array___with_capacity(TAG_Int(172)); /*new Array[Int]*/
     variable[59] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58], variable[59]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(174)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(36)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(180)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(192)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(302)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(303)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(331)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(334)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(335)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(384)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(387)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(422)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(485)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(488)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(489)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(490)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(522)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(523)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(530)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(551)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(552)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(566)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(575)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(578)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(580)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(581)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(582)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(584)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(593)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(616)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(643)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(644)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(666)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(680)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(685)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(686)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(693)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(732)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(796)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(797)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(804)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(806)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(807)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(809)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(845)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(846)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(907)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(909)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(918)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(928)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(958)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(962)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(999)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1013)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1015)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1016)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1017)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1019)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1021)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1025)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1026)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1052)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1073)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1085)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1088)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1161)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1212)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1213)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(1251)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[58],COLOR_abstract_collection___SimpleCollection___add))(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[58]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58], variable[59]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(174)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(36)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(180)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(192)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(302)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(303)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(331)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(334)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(335)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(384)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(387)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(422)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(485)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(488)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(489)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(490)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(522)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(523)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(530)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(551)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(552)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(566)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(575)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(578)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(580)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(581)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(582)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(584)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(593)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(616)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(643)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(644)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(666)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(680)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(685)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(686)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(693)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(732)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(796)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(797)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(804)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(806)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(807)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(809)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(845)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(846)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(907)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(909)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(918)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(928)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(958)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(962)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(999)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1013)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1015)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1016)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1017)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1019)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1021)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1025)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1026)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1052)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1073)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1085)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1088)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1161)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1212)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1213)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(1251)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[58])(variable[58],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[58]) /*AbstractArray::add*/;
     variable[59] = NEW_Array_array___Array___with_capacity(TAG_Int(104)); /*new Array[Int]*/
     variable[60] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59], variable[60]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(68)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(206)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(231)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(233)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(236)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(365)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(366)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(367)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(369)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(370)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(371)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(372)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(373)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(374)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(375)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(376)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(377)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(378)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(379)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(380)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(439)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(441)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(574)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(585)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(586)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(611)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(690)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(819)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(821)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(824)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(922)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(923)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(941)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(942)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(943)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(945)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(946)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(947)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(948)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(949)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(950)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(951)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(952)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(953)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(954)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(955)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(956)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(1092)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(1292)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[59],COLOR_abstract_collection___SimpleCollection___add))(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[59]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59], variable[60]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(68)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(206)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(231)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(233)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(236)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(365)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(366)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(367)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(369)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(370)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(371)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(372)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(373)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(374)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(375)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(376)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(377)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(378)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(379)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(380)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(439)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(441)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(574)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(585)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(586)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(611)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(690)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(819)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(821)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(824)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(922)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(923)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(941)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(942)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(943)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(945)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(946)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(947)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(948)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(949)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(950)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(951)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(952)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(953)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(954)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(955)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(956)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(1092)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(1292)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[59])(variable[59],  TAG_Int(721)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[59]) /*AbstractArray::add*/;
     variable[60] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[61] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[60],COLOR_abstract_collection___SimpleCollection___add))(variable[60], variable[61]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[60],COLOR_abstract_collection___SimpleCollection___add))(variable[60],  TAG_Int(69)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[60]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[60])(variable[60], variable[61]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[60])(variable[60],  TAG_Int(69)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[60]) /*AbstractArray::add*/;
     variable[61] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[62] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[61],COLOR_abstract_collection___SimpleCollection___add))(variable[61], variable[62]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[61],COLOR_abstract_collection___SimpleCollection___add))(variable[61],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[61]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[61])(variable[61], variable[62]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[61])(variable[61],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[61]) /*AbstractArray::add*/;
     variable[62] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[63] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[62],COLOR_abstract_collection___SimpleCollection___add))(variable[62], variable[63]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[62],COLOR_abstract_collection___SimpleCollection___add))(variable[62],  TAG_Int(201)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[62],COLOR_abstract_collection___SimpleCollection___add))(variable[62],  TAG_Int(204)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[62],COLOR_abstract_collection___SimpleCollection___add))(variable[62],  TAG_Int(337)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[62]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[62])(variable[62], variable[63]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[62])(variable[62],  TAG_Int(201)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[62])(variable[62],  TAG_Int(204)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[62])(variable[62],  TAG_Int(337)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[62]) /*AbstractArray::add*/;
     variable[63] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[64] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[63],COLOR_abstract_collection___SimpleCollection___add))(variable[63], variable[64]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[63],COLOR_abstract_collection___SimpleCollection___add))(variable[63],  TAG_Int(202)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[63]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[63])(variable[63], variable[64]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[63])(variable[63],  TAG_Int(202)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[63]) /*AbstractArray::add*/;
     variable[64] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[65] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[64],COLOR_abstract_collection___SimpleCollection___add))(variable[64], variable[65]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[64],COLOR_abstract_collection___SimpleCollection___add))(variable[64],  TAG_Int(203)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[64],COLOR_abstract_collection___SimpleCollection___add))(variable[64],  TAG_Int(204)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[64],COLOR_abstract_collection___SimpleCollection___add))(variable[64],  TAG_Int(338)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[64]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[64])(variable[64], variable[65]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[64])(variable[64],  TAG_Int(203)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[64])(variable[64],  TAG_Int(204)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[64])(variable[64],  TAG_Int(338)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[64]) /*AbstractArray::add*/;
     variable[65] = NEW_Array_array___Array___with_capacity(TAG_Int(80)); /*new Array[Int]*/
     variable[66] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65], variable[66]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(178)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(229)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(234)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(237)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(149)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(151)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(271)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(271)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(172)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(295)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(206)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(340)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(238)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(364)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(290)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(340)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(359)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(460)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(394)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(493)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(439)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(546)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(441)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(549)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(478)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(562)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(480)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(564)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(510)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(546)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(511)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(605)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(515)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(609)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(585)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(586)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(683)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(608)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(701)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(652)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(775)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(673)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(792)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(679)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(792)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(690)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(340)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(703)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(817)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(708)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(822)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(715)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(825)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(826)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(938)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(922)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(546)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(923)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1023)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(934)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1031)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1018)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1048)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1050)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1168)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[65],COLOR_abstract_collection___SimpleCollection___add))(variable[65],  TAG_Int(1216)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[65]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65], variable[66]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(178)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(229)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(234)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(237)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(149)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(151)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(271)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(271)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(172)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(295)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(206)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(340)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(238)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(364)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(290)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(340)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(359)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(460)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(394)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(493)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(439)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(546)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(441)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(549)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(478)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(562)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(480)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(564)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(510)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(546)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(511)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(605)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(515)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(609)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(585)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(586)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(683)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(608)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(701)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(652)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(775)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(673)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(792)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(679)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(792)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(690)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(340)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(703)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(817)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(708)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(822)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(715)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(825)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(826)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(938)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(922)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(546)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(923)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1023)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(934)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1031)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1018)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1048)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1050)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1168)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[65])(variable[65],  TAG_Int(1216)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[65]) /*AbstractArray::add*/;
     variable[66] = NEW_Array_array___Array___with_capacity(TAG_Int(24)); /*new Array[Int]*/
     variable[67] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66], variable[67]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(121)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(171)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(179)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(206)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(341)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(439)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(547)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(441)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(550)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(574)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(664)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(585)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(682)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(586)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(684)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(690)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(808)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(922)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(1022)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(923)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[66],COLOR_abstract_collection___SimpleCollection___add))(variable[66],  TAG_Int(1024)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[66]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66], variable[67]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(121)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(171)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(179)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(206)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(341)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(439)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(547)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(441)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(550)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(574)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(664)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(585)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(682)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(586)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(684)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(690)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(808)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(922)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(1022)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(923)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[66])(variable[66],  TAG_Int(1024)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[66]) /*AbstractArray::add*/;
     variable[67] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
     variable[68] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67], variable[68]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(198)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(289)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(174)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(298)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(591)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(689)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(675)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[67],COLOR_abstract_collection___SimpleCollection___add))(variable[67],  TAG_Int(794)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[67]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67], variable[68]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(198)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(289)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(174)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(298)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(591)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(689)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(675)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[67])(variable[67],  TAG_Int(794)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[67]) /*AbstractArray::add*/;
     variable[68] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[69] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68], variable[69]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68],  TAG_Int(519)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68],  TAG_Int(520)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68],  TAG_Int(613)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68],  TAG_Int(561)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68],  TAG_Int(613)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68],  TAG_Int(649)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[68],COLOR_abstract_collection___SimpleCollection___add))(variable[68],  TAG_Int(613)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[68]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68], variable[69]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68],  TAG_Int(519)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68],  TAG_Int(520)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68],  TAG_Int(613)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68],  TAG_Int(561)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68],  TAG_Int(613)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68],  TAG_Int(649)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[68])(variable[68],  TAG_Int(613)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[68]) /*AbstractArray::add*/;
     variable[69] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[70] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[69],COLOR_abstract_collection___SimpleCollection___add))(variable[69], variable[70]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[69],COLOR_abstract_collection___SimpleCollection___add))(variable[69],  TAG_Int(424)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[69],COLOR_abstract_collection___SimpleCollection___add))(variable[69],  TAG_Int(798)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[69],COLOR_abstract_collection___SimpleCollection___add))(variable[69],  TAG_Int(919)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[69]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[69])(variable[69], variable[70]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[69])(variable[69],  TAG_Int(424)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[69])(variable[69],  TAG_Int(798)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[69])(variable[69],  TAG_Int(919)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[69]) /*AbstractArray::add*/;
     variable[70] = NEW_Array_array___Array___with_capacity(TAG_Int(206)); /*new Array[Int]*/
     variable[71] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70], variable[71]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(192)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(206)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(231)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(233)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(236)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(331)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(365)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(366)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(367)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(369)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(370)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(371)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(372)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(373)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(374)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(375)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(376)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(377)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(378)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(379)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(380)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(384)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(422)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(439)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(441)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(485)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(489)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(490)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(522)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(523)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(530)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(566)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(574)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(575)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(578)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(585)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(586)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(593)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(611)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(616)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(666)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(690)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(693)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(732)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(804)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(809)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(819)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(821)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(824)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(845)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(846)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(907)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(918)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(922)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(923)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(928)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(941)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(942)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(943)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(945)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(946)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(947)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(948)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(949)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(950)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(951)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(952)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(953)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(954)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(955)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(956)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(958)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(962)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(999)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1013)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1016)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1017)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1019)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1021)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1052)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1073)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1085)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1088)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1092)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1161)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1212)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1213)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1251)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(1292)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[70],COLOR_abstract_collection___SimpleCollection___add))(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[70]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70], variable[71]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(192)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(206)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(231)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(233)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(236)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(331)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(365)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(366)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(367)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(369)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(370)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(371)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(372)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(373)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(374)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(375)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(376)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(377)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(378)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(379)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(380)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(384)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(422)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(439)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(441)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(485)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(489)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(490)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(522)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(523)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(530)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(566)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(574)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(575)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(578)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(585)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(586)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(593)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(611)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(616)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(666)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(690)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(693)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(732)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(804)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(809)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(819)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(821)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(824)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(845)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(846)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(907)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(918)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(922)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(923)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(928)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(941)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(942)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(943)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(945)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(946)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(947)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(948)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(949)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(950)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(951)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(952)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(953)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(954)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(955)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(956)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(958)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(962)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(999)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1013)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1016)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1017)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1019)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1021)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1052)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1073)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1085)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1088)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1092)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(592)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1161)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1212)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1213)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1251)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(1292)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[70])(variable[70],  TAG_Int(722)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[70]) /*AbstractArray::add*/;
     variable[71] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[72] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[71],COLOR_abstract_collection___SimpleCollection___add))(variable[71], variable[72]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[71],COLOR_abstract_collection___SimpleCollection___add))(variable[71],  TAG_Int(73)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[71],COLOR_abstract_collection___SimpleCollection___add))(variable[71],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[71],COLOR_abstract_collection___SimpleCollection___add))(variable[71],  TAG_Int(208)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[71]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[71])(variable[71], variable[72]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[71])(variable[71],  TAG_Int(73)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[71])(variable[71],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[71])(variable[71],  TAG_Int(208)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[71]) /*AbstractArray::add*/;
     variable[72] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[73] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72], variable[73]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[72],COLOR_abstract_collection___SimpleCollection___add))(variable[72],  TAG_Int(209)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[72]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72], variable[73]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[72])(variable[72],  TAG_Int(209)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[72]) /*AbstractArray::add*/;
     variable[73] = NEW_Array_array___Array___with_capacity(TAG_Int(42)); /*new Array[Int]*/
     variable[74] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73], variable[74]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(24)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(88)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(211)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(83)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(218)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(221)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(96)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(222)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(213)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(344)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(220)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(350)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(227)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(354)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(426)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(525)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(427)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(526)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(542)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(632)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(568)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(660)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(629)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(746)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(640)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(767)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(657)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(778)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(662)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(784)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(748)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(865)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(751)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(867)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(780)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[73],COLOR_abstract_collection___SimpleCollection___add))(variable[73],  TAG_Int(901)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[73]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73], variable[74]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(24)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(88)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(211)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(83)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(218)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(221)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(96)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(222)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(213)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(344)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(220)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(350)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(227)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(354)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(426)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(525)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(427)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(526)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(542)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(632)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(568)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(660)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(629)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(746)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(640)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(767)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(657)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(778)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(662)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(784)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(748)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(865)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(751)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(867)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(780)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[73])(variable[73],  TAG_Int(901)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[73]) /*AbstractArray::add*/;
     variable[74] = NEW_Array_array___Array___with_capacity(TAG_Int(140)); /*new Array[Int]*/
     variable[75] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74], variable[75]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(24)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(192)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(88)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(194)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(192)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(211)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(217)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(218)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(221)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(259)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(384)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(331)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(343)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(344)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(346)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(349)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(350)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(352)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(385)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(485)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(422)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(522)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(449)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(453)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(489)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(593)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(490)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(523)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(616)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(530)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(566)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(575)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(578)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(614)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(732)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(691)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(809)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(693)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(733)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(845)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(734)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(846)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(787)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(907)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(804)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(810)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(928)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(847)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(958)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(855)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(963)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(908)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1013)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(918)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1019)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(961)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1053)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(962)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(999)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1016)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(593)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1017)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1021)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1052)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1054)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1073)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1085)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1088)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1161)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1212)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1213)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[74],COLOR_abstract_collection___SimpleCollection___add))(variable[74],  TAG_Int(1251)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[74]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74], variable[75]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(24)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(192)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(88)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(194)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(192)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(211)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(217)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(218)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(221)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(259)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(384)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(331)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(343)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(344)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(346)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(349)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(350)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(352)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(385)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(485)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(422)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(522)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(449)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(453)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(489)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(593)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(490)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(523)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(616)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(530)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(566)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(575)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(578)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(614)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(732)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(691)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(809)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(693)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(733)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(845)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(734)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(846)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(787)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(907)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(804)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(810)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(928)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(847)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(958)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(855)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(963)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(908)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1013)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(918)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1019)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(961)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1053)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(962)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(999)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1016)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(593)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1017)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1021)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1052)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1054)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1073)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1085)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1088)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1161)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(666)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1212)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1213)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[74])(variable[74],  TAG_Int(1251)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[74]) /*AbstractArray::add*/;
     variable[75] = NEW_Array_array___Array___with_capacity(TAG_Int(478)); /*new Array[Int]*/
     variable[76] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75], variable[76]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(25)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(30)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(138)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(139)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(141)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(142)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(41)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(169)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(175)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(193)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(195)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(205)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(230)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(231)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(232)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(233)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(235)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(236)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(145)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(266)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(146)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(267)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(147)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(268)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(148)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(269)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(270)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(176)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(300)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(301)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(184)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(310)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(190)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(327)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(194)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(330)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(196)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(332)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(197)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(333)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(202)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(336)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(228)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(355)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(239)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(365)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(240)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(366)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(241)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(367)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(242)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(368)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(243)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(369)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(244)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(370)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(245)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(371)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(246)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(372)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(247)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(373)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(248)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(374)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(249)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(375)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(250)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(376)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(251)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(377)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(252)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(378)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(253)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(379)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(254)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(380)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(255)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(381)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(257)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(383)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(260)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(386)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(261)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(387)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(263)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(389)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(264)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(390)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(265)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(391)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(272)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(398)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(273)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(399)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(274)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(400)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(275)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(401)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(276)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(402)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(277)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(403)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(278)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(404)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(279)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(405)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(280)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(406)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(281)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(407)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(282)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(408)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(283)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(409)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(284)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(410)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(285)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(411)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(286)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(412)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(287)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(413)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(288)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(414)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(297)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(418)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(299)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(419)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(326)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(339)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(446)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(356)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(457)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(362)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(461)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(382)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(388)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(488)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(392)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(492)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(416)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(513)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(417)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(514)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(424)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(524)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(430)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(528)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(432)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(533)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(434)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(535)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(436)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(543)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(438)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(545)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(440)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(548)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(445)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(553)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(456)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(556)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(458)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(558)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(459)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(559)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(479)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(563)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(483)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(569)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(491)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(603)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(517)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(610)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(518)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(611)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(532)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(624)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(536)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(626)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(539)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(628)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(540)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(630)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(544)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(641)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(557)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(650)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(567)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(658)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(570)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(663)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(577)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(670)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(579)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(672)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(590)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(687)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(604)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(695)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(607)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(700)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(617)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(735)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(620)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(739)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(625)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(742)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(631)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(749)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(632)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(752)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(633)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(754)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(642)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(769)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(651)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(774)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(654)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(776)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(659)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(781)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(660)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(782)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(688)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(805)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(697)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(813)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(702)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(816)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(704)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(818)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(705)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(819)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(706)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(820)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(707)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(821)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(714)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(824)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(723)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(827)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(737)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(850)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(740)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(853)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(745)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(861)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(746)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(863)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(753)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(870)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(766)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(767)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(893)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(773)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(896)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(778)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(899)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(783)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(904)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(784)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(905)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(788)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(909)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(790)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(911)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(791)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(912)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(793)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(914)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(812)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(929)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(828)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(941)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(829)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(942)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(830)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(943)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(831)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(944)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(832)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(945)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(833)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(946)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(834)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(947)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(835)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(948)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(836)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(949)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(837)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(950)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(838)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(951)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(839)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(952)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(840)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(953)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(841)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(954)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(842)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(955)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(843)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(956)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(844)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(957)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(859)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(965)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(862)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(968)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(864)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(970)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(865)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(971)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(880)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(888)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(891)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(894)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1001)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(895)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1002)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(898)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1004)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(900)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1006)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(901)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1007)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(906)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1011)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(910)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1015)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(919)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(524)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(931)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1029)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(972)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1059)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(981)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(984)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(996)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1086)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1003)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1092)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1008)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1096)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1028)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1030)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1049)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1070)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1079)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1082)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1147)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1087)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1154)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1125)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1178)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1182)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1133)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1189)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1138)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1195)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1141)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1199)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1144)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1202)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1145)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1203)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1148)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1206)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1169)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1217)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1221)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1176)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1225)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1179)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1228)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1180)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1229)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1232)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1193)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1239)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1196)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1242)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1197)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1243)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1200)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1246)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1204)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1249)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1215)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1252)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1219)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1256)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1222)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1259)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1223)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1260)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1226)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1263)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1230)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1266)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1237)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1268)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1240)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1271)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1244)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1274)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1253)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1278)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1254)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1279)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1257)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1282)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1261)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1285)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1269)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1289)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1277)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1292)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1280)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[75],COLOR_abstract_collection___SimpleCollection___add))(variable[75],  TAG_Int(1295)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[75]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75], variable[76]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(25)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(30)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(138)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(139)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(141)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(142)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(41)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(169)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(175)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(193)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(195)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(205)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(230)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(231)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(232)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(233)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(235)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(236)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(145)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(266)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(146)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(267)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(147)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(268)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(148)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(269)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(270)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(176)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(300)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(301)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(184)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(310)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(190)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(327)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(194)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(330)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(196)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(332)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(197)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(333)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(202)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(336)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(228)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(355)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(239)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(365)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(240)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(366)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(241)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(367)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(242)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(368)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(243)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(369)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(244)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(370)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(245)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(371)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(246)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(372)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(247)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(373)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(248)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(374)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(249)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(375)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(250)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(376)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(251)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(377)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(252)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(378)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(253)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(379)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(254)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(380)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(255)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(381)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(257)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(383)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(260)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(386)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(261)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(387)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(263)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(389)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(264)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(390)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(265)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(391)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(272)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(398)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(273)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(399)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(274)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(400)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(275)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(401)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(276)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(402)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(277)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(403)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(278)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(404)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(279)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(405)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(280)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(406)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(281)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(407)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(282)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(408)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(283)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(409)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(284)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(410)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(285)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(411)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(286)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(412)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(287)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(413)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(288)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(414)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(297)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(418)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(299)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(419)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(326)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(339)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(446)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(356)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(457)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(362)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(461)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(382)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(388)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(488)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(392)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(492)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(416)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(513)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(417)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(514)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(424)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(524)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(430)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(528)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(432)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(533)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(434)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(535)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(436)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(543)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(438)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(545)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(440)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(548)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(445)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(553)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(456)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(556)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(458)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(558)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(459)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(559)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(479)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(563)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(483)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(569)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(491)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(603)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(517)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(610)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(518)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(611)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(532)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(624)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(536)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(626)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(539)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(628)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(540)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(630)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(544)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(641)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(557)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(650)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(567)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(658)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(570)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(663)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(577)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(670)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(579)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(672)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(590)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(687)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(604)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(695)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(607)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(700)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(617)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(735)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(620)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(739)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(625)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(742)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(631)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(749)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(632)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(752)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(633)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(754)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(642)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(769)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(651)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(774)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(654)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(776)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(659)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(781)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(660)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(782)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(688)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(805)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(697)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(813)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(702)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(816)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(704)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(818)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(705)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(819)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(706)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(820)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(707)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(821)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(714)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(824)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(723)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(827)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(737)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(850)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(740)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(853)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(745)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(861)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(746)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(863)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(753)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(870)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(766)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(767)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(893)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(773)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(896)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(778)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(899)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(783)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(904)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(784)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(905)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(788)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(909)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(790)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(911)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(791)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(912)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(793)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(914)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(812)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(929)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(828)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(941)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(829)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(942)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(830)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(943)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(831)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(944)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(832)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(945)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(833)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(946)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(834)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(947)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(835)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(948)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(836)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(949)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(837)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(950)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(838)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(951)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(839)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(952)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(840)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(953)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(841)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(954)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(842)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(955)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(843)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(956)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(844)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(957)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(859)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(965)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(862)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(968)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(864)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(970)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(865)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(971)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(880)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(888)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(891)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(894)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1001)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(895)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1002)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(898)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1004)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(900)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1006)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(901)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1007)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(906)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1011)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(910)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1015)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(919)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(524)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(931)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1029)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(972)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1059)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(981)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(984)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(435)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(996)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1086)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1003)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1092)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1008)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1096)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1028)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1030)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1049)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1070)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1079)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1082)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1147)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1087)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1154)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1125)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1178)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1182)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1133)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1189)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1138)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1195)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1141)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1199)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1144)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1202)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1145)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1203)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1148)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1206)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1169)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1217)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1221)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1176)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1225)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1179)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1228)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1180)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1229)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1232)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1193)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1239)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1196)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1242)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1197)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1243)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1200)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1246)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1204)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1249)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1215)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1252)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1219)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1256)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1222)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1259)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1223)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1260)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1226)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1263)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1230)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1266)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1237)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1268)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1240)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1271)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1244)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1274)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1253)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1278)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1254)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1279)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1257)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1282)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1261)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1285)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1269)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1289)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1277)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1292)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1280)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[75])(variable[75],  TAG_Int(1295)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[75]) /*AbstractArray::add*/;
     variable[76] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[77] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[76],COLOR_abstract_collection___SimpleCollection___add))(variable[76], variable[77]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[76],COLOR_abstract_collection___SimpleCollection___add))(variable[76],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[76]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[76])(variable[76], variable[77]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[76])(variable[76],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[76]) /*AbstractArray::add*/;
     variable[77] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[78] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77], variable[78]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(934)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(944)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[77],COLOR_abstract_collection___SimpleCollection___add))(variable[77],  TAG_Int(1035)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[77]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77], variable[78]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(934)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(944)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[77])(variable[77],  TAG_Int(1035)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[77]) /*AbstractArray::add*/;
     variable[78] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[79] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78], variable[79]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78], variable[79]) /*AbstractArray::add*/;
     variable[80] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[78],COLOR_abstract_collection___SimpleCollection___add))(variable[78], variable[80]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[78]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[78])(variable[78], variable[80]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[78]) /*AbstractArray::add*/;
     variable[79] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[80] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79], variable[80]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(723)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(1292)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[79],COLOR_abstract_collection___SimpleCollection___add))(variable[79],  TAG_Int(1299)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[79]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79], variable[80]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(723)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(1292)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[79])(variable[79],  TAG_Int(1299)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[79]) /*AbstractArray::add*/;
     variable[80] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[81] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80], variable[81]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[80],COLOR_abstract_collection___SimpleCollection___add))(variable[80],  TAG_Int(724)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[80]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80], variable[81]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[80])(variable[80],  TAG_Int(724)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[80]) /*AbstractArray::add*/;
     variable[81] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[82] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81], variable[82]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(725)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(819)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(932)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(941)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(1032)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(942)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[81],COLOR_abstract_collection___SimpleCollection___add))(variable[81],  TAG_Int(1033)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[81]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81], variable[82]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(725)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(819)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(932)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(941)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(1032)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(942)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[81])(variable[81],  TAG_Int(1033)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[81]) /*AbstractArray::add*/;
     variable[82] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[83] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82], variable[83]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[82],COLOR_abstract_collection___SimpleCollection___add))(variable[82],  TAG_Int(726)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[82]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[82])(variable[82],  TAG_Int(726)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[82]) /*AbstractArray::add*/;
     variable[83] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[84] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83], variable[84]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(727)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(943)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1034)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(947)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1038)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(948)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1039)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(949)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1040)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(950)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1041)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(951)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1042)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(952)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1043)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(953)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[83],COLOR_abstract_collection___SimpleCollection___add))(variable[83],  TAG_Int(1044)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(727)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(943)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1034)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(947)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1038)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(948)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1039)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(949)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1040)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(950)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1041)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(951)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1042)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(952)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1043)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(953)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[83])(variable[83],  TAG_Int(1044)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[83]) /*AbstractArray::add*/;
     variable[84] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[85] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84], variable[85]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(728)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(945)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(1036)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(946)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[84],COLOR_abstract_collection___SimpleCollection___add))(variable[84],  TAG_Int(1037)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(728)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(945)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(1036)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(946)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[84])(variable[84],  TAG_Int(1037)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[84]) /*AbstractArray::add*/;
     variable[85] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
     variable[86] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85], variable[86]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(729)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(821)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(935)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(824)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(937)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(954)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(1045)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(955)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(1046)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(956)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[85],COLOR_abstract_collection___SimpleCollection___add))(variable[85],  TAG_Int(1047)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(729)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(821)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(935)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(824)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(937)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(954)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(1045)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(955)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(1046)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(956)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[85])(variable[85],  TAG_Int(1047)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[85]) /*AbstractArray::add*/;
     variable[86] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[87] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86], variable[87]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[86],COLOR_abstract_collection___SimpleCollection___add))(variable[86],  TAG_Int(730)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[86])(variable[86],  TAG_Int(730)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[86]) /*AbstractArray::add*/;
     variable[87] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[88] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87], variable[88]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[87],COLOR_abstract_collection___SimpleCollection___add))(variable[87],  TAG_Int(731)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[87])(variable[87],  TAG_Int(731)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[87]) /*AbstractArray::add*/;
     variable[88] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
     variable[89] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88], variable[89]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(667)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(804)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(921)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(918)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(1020)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(1017)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(1101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(1021)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(1105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(1159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[88],COLOR_abstract_collection___SimpleCollection___add))(variable[88],  TAG_Int(1211)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88], variable[89]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(667)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(804)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(921)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(918)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(1020)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(1017)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(1101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(1021)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(1105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(1159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[88])(variable[88],  TAG_Int(1211)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[88]) /*AbstractArray::add*/;
     variable[89] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[90] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89], variable[90]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(668)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(489)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(594)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(1016)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[89],COLOR_abstract_collection___SimpleCollection___add))(variable[89],  TAG_Int(1100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[89]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89], variable[90]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(668)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(489)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(594)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(1016)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[89])(variable[89],  TAG_Int(1100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[89]) /*AbstractArray::add*/;
     variable[90] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
     variable[91] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90], variable[91]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(800)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(792)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(913)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(794)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(915)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(799)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(920)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(1024)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(1108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(1102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[90],COLOR_abstract_collection___SimpleCollection___add))(variable[90],  TAG_Int(1160)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[90]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(800)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(792)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(913)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(794)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(915)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(799)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(920)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(1024)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(1108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(1102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[90])(variable[90],  TAG_Int(1160)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[90]) /*AbstractArray::add*/;
     variable[91] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[92] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91], variable[92]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[91],COLOR_abstract_collection___SimpleCollection___add))(variable[91],  TAG_Int(801)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[91])(variable[91],  TAG_Int(801)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[91]) /*AbstractArray::add*/;
     variable[92] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[93] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92], variable[93]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[92],COLOR_abstract_collection___SimpleCollection___add))(variable[92],  TAG_Int(595)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[92])(variable[92],  TAG_Int(595)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[92]) /*AbstractArray::add*/;
     variable[93] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[94] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93], variable[94]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[93],COLOR_abstract_collection___SimpleCollection___add))(variable[93],  TAG_Int(596)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[93])(variable[93],  TAG_Int(596)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[93]) /*AbstractArray::add*/;
     variable[94] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[95] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94], variable[95]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[94],COLOR_abstract_collection___SimpleCollection___add))(variable[94],  TAG_Int(597)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94], variable[95]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[94])(variable[94],  TAG_Int(597)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[94]) /*AbstractArray::add*/;
     variable[95] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[96] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95], variable[96]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[95],COLOR_abstract_collection___SimpleCollection___add))(variable[95],  TAG_Int(598)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[95]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95], variable[96]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[95])(variable[95],  TAG_Int(598)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[95]) /*AbstractArray::add*/;
     variable[96] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[97] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96], variable[97]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[96],COLOR_abstract_collection___SimpleCollection___add))(variable[96],  TAG_Int(599)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[96]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[96])(variable[96],  TAG_Int(599)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[96]) /*AbstractArray::add*/;
     variable[97] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[98] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97], variable[98]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[97],COLOR_abstract_collection___SimpleCollection___add))(variable[97],  TAG_Int(600)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[97])(variable[97],  TAG_Int(600)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[97]) /*AbstractArray::add*/;
     variable[98] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[99] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98], variable[99]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[98],COLOR_abstract_collection___SimpleCollection___add))(variable[98],  TAG_Int(601)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[98])(variable[98],  TAG_Int(601)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[98]) /*AbstractArray::add*/;
     variable[99] = NEW_Array_array___Array___with_capacity(TAG_Int(34)); /*new Array[Int]*/
     variable[100] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99], variable[100]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(676)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(581)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(677)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(582)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(678)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(584)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(681)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(680)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(795)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(685)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(802)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(686)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(803)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(796)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(916)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(797)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(917)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(806)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(925)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(807)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(926)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(909)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1014)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1015)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1099)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1025)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1026)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[99],COLOR_abstract_collection___SimpleCollection___add))(variable[99],  TAG_Int(1165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(676)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(581)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(677)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(582)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(678)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(584)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(681)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(680)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(795)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(685)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(802)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(686)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(803)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(796)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(916)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(797)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(917)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(806)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(925)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(807)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(926)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(909)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1014)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1015)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1099)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1025)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1026)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[99])(variable[99],  TAG_Int(1165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[99]) /*AbstractArray::add*/;
     variable[100] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[101] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100], variable[101]) /*AbstractArray::add*/;
     variable[102] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[100],COLOR_abstract_collection___SimpleCollection___add))(variable[100], variable[102]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[100])(variable[100], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[100]) /*AbstractArray::add*/;
     variable[101] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[102] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101], variable[102]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(359)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(368)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[101],COLOR_abstract_collection___SimpleCollection___add))(variable[101],  TAG_Int(465)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(359)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(368)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[101])(variable[101],  TAG_Int(465)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[101]) /*AbstractArray::add*/;
     variable[102] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[103] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102], variable[103]) /*AbstractArray::add*/;
     variable[104] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[102],COLOR_abstract_collection___SimpleCollection___add))(variable[102], variable[104]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[102])(variable[102], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[102]) /*AbstractArray::add*/;
     variable[103] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[104] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103], variable[104]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(123)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(1092)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[103],COLOR_abstract_collection___SimpleCollection___add))(variable[103],  TAG_Int(1157)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(123)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(1092)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[103])(variable[103],  TAG_Int(1157)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[103]) /*AbstractArray::add*/;
     variable[104] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[105] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104], variable[105]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[104],COLOR_abstract_collection___SimpleCollection___add))(variable[104],  TAG_Int(124)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[104])(variable[104],  TAG_Int(124)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[104]) /*AbstractArray::add*/;
     variable[105] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[106] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105], variable[106]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(125)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(231)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(357)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(365)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(462)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(366)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[105],COLOR_abstract_collection___SimpleCollection___add))(variable[105],  TAG_Int(463)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(125)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(231)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(357)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(365)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(462)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(366)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[105])(variable[105],  TAG_Int(463)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[105]) /*AbstractArray::add*/;
     variable[106] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[107] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106], variable[107]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[106],COLOR_abstract_collection___SimpleCollection___add))(variable[106],  TAG_Int(126)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[106])(variable[106],  TAG_Int(126)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[106]) /*AbstractArray::add*/;
     variable[107] = NEW_Array_array___Array___with_capacity(TAG_Int(18)); /*new Array[Int]*/
     variable[108] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107], variable[108]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(367)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(464)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(371)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(468)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(372)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(469)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(373)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(470)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(374)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(471)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(375)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(472)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(376)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(473)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(377)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[107],COLOR_abstract_collection___SimpleCollection___add))(variable[107],  TAG_Int(474)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(367)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(464)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(371)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(468)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(372)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(469)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(373)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(470)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(374)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(471)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(375)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(472)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(376)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(473)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(377)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[107])(variable[107],  TAG_Int(474)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[107]) /*AbstractArray::add*/;
     variable[108] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[109] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108], variable[109]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(369)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(466)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(370)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[108],COLOR_abstract_collection___SimpleCollection___add))(variable[108],  TAG_Int(467)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(369)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(466)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(370)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[108])(variable[108],  TAG_Int(467)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[108]) /*AbstractArray::add*/;
     variable[109] = NEW_Array_array___Array___with_capacity(TAG_Int(12)); /*new Array[Int]*/
     variable[110] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109], variable[110]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(129)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(233)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(360)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(236)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(363)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(378)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(475)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(379)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(476)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(380)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[109],COLOR_abstract_collection___SimpleCollection___add))(variable[109],  TAG_Int(477)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(129)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(233)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(360)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(236)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(363)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(378)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(475)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(379)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(476)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(380)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[109])(variable[109],  TAG_Int(477)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[109]) /*AbstractArray::add*/;
     variable[110] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[111] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110], variable[111]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[110],COLOR_abstract_collection___SimpleCollection___add))(variable[110],  TAG_Int(130)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[110])(variable[110],  TAG_Int(130)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[110]) /*AbstractArray::add*/;
     variable[111] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[112] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111], variable[112]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[111],COLOR_abstract_collection___SimpleCollection___add))(variable[111],  TAG_Int(131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[111])(variable[111],  TAG_Int(131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[111]) /*AbstractArray::add*/;
     variable[112] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[113] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112], variable[113]) /*AbstractArray::add*/;
     variable[114] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[112],COLOR_abstract_collection___SimpleCollection___add))(variable[112], variable[114]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[112])(variable[112], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[112]) /*AbstractArray::add*/;
     variable[113] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[114] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113], variable[114]) /*AbstractArray::add*/;
     variable[115] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[113],COLOR_abstract_collection___SimpleCollection___add))(variable[113], variable[115]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[113])(variable[113], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[113]) /*AbstractArray::add*/;
     variable[114] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[115] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114], variable[115]) /*AbstractArray::add*/;
     variable[116] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[114],COLOR_abstract_collection___SimpleCollection___add))(variable[114], variable[116]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[114])(variable[114], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[114]) /*AbstractArray::add*/;
     variable[115] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[116] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115], variable[116]) /*AbstractArray::add*/;
     variable[117] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[115],COLOR_abstract_collection___SimpleCollection___add))(variable[115], variable[117]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[115])(variable[115], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[115]) /*AbstractArray::add*/;
     variable[116] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[117] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116], variable[117]) /*AbstractArray::add*/;
     variable[118] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[116],COLOR_abstract_collection___SimpleCollection___add))(variable[116], variable[118]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[116])(variable[116], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[116]) /*AbstractArray::add*/;
     variable[117] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[118] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117], variable[118]) /*AbstractArray::add*/;
     variable[119] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[117],COLOR_abstract_collection___SimpleCollection___add))(variable[117], variable[119]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[117])(variable[117], variable[119]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[117]) /*AbstractArray::add*/;
     variable[118] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[119] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118], variable[119]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118], variable[119]) /*AbstractArray::add*/;
     variable[120] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[118],COLOR_abstract_collection___SimpleCollection___add))(variable[118], variable[120]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[118])(variable[118], variable[120]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[118]) /*AbstractArray::add*/;
     variable[119] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[120] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119], variable[120]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119], variable[120]) /*AbstractArray::add*/;
     variable[121] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[119],COLOR_abstract_collection___SimpleCollection___add))(variable[119], variable[121]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[119]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[119])(variable[119], variable[121]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[119]) /*AbstractArray::add*/;
     variable[120] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[121] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[120],COLOR_abstract_collection___SimpleCollection___add))(variable[120], variable[121]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[120])(variable[120], variable[121]) /*AbstractArray::add*/;
     variable[122] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[120],COLOR_abstract_collection___SimpleCollection___add))(variable[120], variable[122]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[120]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[120])(variable[120], variable[122]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[120]) /*AbstractArray::add*/;
     variable[121] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[122] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[121],COLOR_abstract_collection___SimpleCollection___add))(variable[121], variable[122]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[121])(variable[121], variable[122]) /*AbstractArray::add*/;
     variable[123] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[121],COLOR_abstract_collection___SimpleCollection___add))(variable[121], variable[123]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[121]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[121])(variable[121], variable[123]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[121]) /*AbstractArray::add*/;
     variable[122] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[123] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122], variable[123]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122], variable[123]) /*AbstractArray::add*/;
     variable[124] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[122],COLOR_abstract_collection___SimpleCollection___add))(variable[122], variable[124]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[122]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[122])(variable[122], variable[124]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[122]) /*AbstractArray::add*/;
     variable[123] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[124] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[123],COLOR_abstract_collection___SimpleCollection___add))(variable[123], variable[124]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[123])(variable[123], variable[124]) /*AbstractArray::add*/;
     variable[125] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[123],COLOR_abstract_collection___SimpleCollection___add))(variable[123], variable[125]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[123]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[123])(variable[123], variable[125]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[123]) /*AbstractArray::add*/;
     variable[124] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[125] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[124],COLOR_abstract_collection___SimpleCollection___add))(variable[124], variable[125]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[124])(variable[124], variable[125]) /*AbstractArray::add*/;
     variable[126] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[124],COLOR_abstract_collection___SimpleCollection___add))(variable[124], variable[126]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[124]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[124])(variable[124], variable[126]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[124]) /*AbstractArray::add*/;
     variable[125] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[126] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[125],COLOR_abstract_collection___SimpleCollection___add))(variable[125], variable[126]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[125])(variable[125], variable[126]) /*AbstractArray::add*/;
     variable[127] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[125],COLOR_abstract_collection___SimpleCollection___add))(variable[125], variable[127]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[125]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[125])(variable[125], variable[127]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[125]) /*AbstractArray::add*/;
     variable[126] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[127] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126], variable[127]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[126],COLOR_abstract_collection___SimpleCollection___add))(variable[126],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[126]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126], variable[127]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[126])(variable[126],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[126]) /*AbstractArray::add*/;
     variable[127] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[128] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127], variable[128]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[127],COLOR_abstract_collection___SimpleCollection___add))(variable[127],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[127]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127], variable[128]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[127])(variable[127],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[127]) /*AbstractArray::add*/;
     variable[128] = NEW_Array_array___Array___with_capacity(TAG_Int(8)); /*new Array[Int]*/
     variable[129] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128], variable[129]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(544)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(483)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(570)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(540)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(631)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(567)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[128],COLOR_abstract_collection___SimpleCollection___add))(variable[128],  TAG_Int(659)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[128]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128], variable[129]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(544)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(483)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(570)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(540)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(631)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(567)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[128])(variable[128],  TAG_Int(659)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[128]) /*AbstractArray::add*/;
     variable[129] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[130] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129], variable[130]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[129],COLOR_abstract_collection___SimpleCollection___add))(variable[129],  TAG_Int(862)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[129]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129], variable[130]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[129])(variable[129],  TAG_Int(862)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[129]) /*AbstractArray::add*/;
     variable[130] = NEW_Array_array___Array___with_capacity(TAG_Int(16)); /*new Array[Int]*/
     variable[131] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130], variable[131]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(753)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(660)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(783)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(746)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(864)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(767)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(894)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(778)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(900)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(784)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(906)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(865)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(972)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(901)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[130],COLOR_abstract_collection___SimpleCollection___add))(variable[130],  TAG_Int(1008)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[130]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130], variable[131]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(753)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(660)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(783)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(746)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(864)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(767)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(894)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(778)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(900)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(784)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(906)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(865)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(972)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(901)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[130])(variable[130],  TAG_Int(1008)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[130]) /*AbstractArray::add*/;
     variable[131] = NEW_Array_array___Array___with_capacity(TAG_Int(16)); /*new Array[Int]*/
     variable[132] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131], variable[132]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(88)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(217)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(211)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(343)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(346)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(218)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(349)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(221)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(352)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(344)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(449)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(350)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[131],COLOR_abstract_collection___SimpleCollection___add))(variable[131],  TAG_Int(453)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[131]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(88)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(217)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(211)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(343)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(346)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(218)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(349)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(221)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(352)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(344)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(449)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(350)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[131])(variable[131],  TAG_Int(453)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[131]) /*AbstractArray::add*/;
     variable[132] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[133] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132], variable[133]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[132],COLOR_abstract_collection___SimpleCollection___add))(variable[132],  TAG_Int(740)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132], variable[133]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[132])(variable[132],  TAG_Int(740)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[132]) /*AbstractArray::add*/;
     variable[133] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[134] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133], variable[134]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[133],COLOR_abstract_collection___SimpleCollection___add))(variable[133],  TAG_Int(538)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[133]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133], variable[134]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[133])(variable[133],  TAG_Int(538)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[133]) /*AbstractArray::add*/;
     variable[134] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[135] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134], variable[135]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[134],COLOR_abstract_collection___SimpleCollection___add))(variable[134],  TAG_Int(699)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[134]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[134])(variable[134],  TAG_Int(699)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[134]) /*AbstractArray::add*/;
     variable[135] = NEW_Array_array___Array___with_capacity(TAG_Int(16)); /*new Array[Int]*/
     variable[136] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135], variable[136]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(194)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(259)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(385)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(614)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(733)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(691)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(810)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(734)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(847)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(787)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(908)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(1103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(1162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(1163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[135],COLOR_abstract_collection___SimpleCollection___add))(variable[135],  TAG_Int(1214)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(194)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(259)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(385)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(614)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(733)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(691)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(810)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(734)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(847)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(787)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(908)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(1103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(1162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(1163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[135])(variable[135],  TAG_Int(1214)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[135]) /*AbstractArray::add*/;
     variable[136] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[137] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136], variable[137]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[136],COLOR_abstract_collection___SimpleCollection___add))(variable[136],  TAG_Int(204)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[136])(variable[136],  TAG_Int(204)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[136]) /*AbstractArray::add*/;
     variable[137] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[138] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137], variable[138]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(520)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(461)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(561)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(556)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[137],COLOR_abstract_collection___SimpleCollection___add))(variable[137],  TAG_Int(649)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(520)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(461)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(561)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(556)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[137])(variable[137],  TAG_Int(649)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[137]) /*AbstractArray::add*/;
     variable[138] = NEW_Array_array___Array___with_capacity(TAG_Int(2)); /*new Array[Int]*/
     variable[139] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138], variable[139]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[138],COLOR_abstract_collection___SimpleCollection___add))(variable[138],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[138])(variable[138],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[138]) /*AbstractArray::add*/;
     variable[139] = NEW_Array_array___Array___with_capacity(TAG_Int(4)); /*new Array[Int]*/
     variable[140] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139], variable[140]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[139],COLOR_abstract_collection___SimpleCollection___add))(variable[139],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139], variable[140]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[139])(variable[139],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[139]) /*AbstractArray::add*/;
     variable[140] = NEW_Array_array___Array___with_capacity(TAG_Int(6)); /*new Array[Int]*/
     variable[141] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140], variable[141]) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(86)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[140],COLOR_abstract_collection___SimpleCollection___add))(variable[140],  TAG_Int(210)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3], variable[140]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140], variable[141]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(86)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[140])(variable[140],  TAG_Int(210)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[140]) /*AbstractArray::add*/;
     once_value_1304 = variable[3];
     once_bool_1304 = true;
   }
@@ -49021,381 +49021,381 @@ val_t parser_tables___ParserTable___error_messages(val_t  self) {
   else {
     variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(188)); /*new Array[String]*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(364)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'while', 'for', 'in', 'not', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'once', 'super', 'self', 'true', 'false', 'null', 'as', 'with', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string, EOF"), TAG_Int(529)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[4]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("expecting: EOF"), TAG_Int(14)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[5]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[5]) /*AbstractArray::add*/;
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(353)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[6]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(343)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[7]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment"), TAG_Int(23)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[8]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(350)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[9]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(345)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[10]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("expecting: comment, 'package', 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'while', 'for', 'in', 'not', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'once', 'super', 'self', 'true', 'false', 'null', 'as', 'with', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string, EOF"), TAG_Int(524)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[11]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(334)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[12]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'do', 'readable', 'writable', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(400)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[13]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(296)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[14]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, id"), TAG_Int(27)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[15]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(197)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[16]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'class', 'abstract', 'interface', 'universal', 'meth', 'protected', 'private', 'intrude'"), TAG_Int(99)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[17]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(246)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[18]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[18]) /*AbstractArray::add*/;
     variable[19] = NEW_String_string___String___with_native(BOX_NativeString("expecting: id"), TAG_Int(13)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[19]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'type', 'attr', 'init'"), TAG_Int(112)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[20]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[20]) /*AbstractArray::add*/;
     variable[21] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(180)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[21]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[21]) /*AbstractArray::add*/;
     variable[22] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(192)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[22]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[22]) /*AbstractArray::add*/;
     variable[23] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', EOF"), TAG_Int(35)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[23]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[23]) /*AbstractArray::add*/;
     variable[24] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(166)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[24]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[24]) /*AbstractArray::add*/;
     variable[25] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, classid"), TAG_Int(32)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[25]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[25]) /*AbstractArray::add*/;
     variable[26] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', '[', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(204)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[26]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[26]) /*AbstractArray::add*/;
     variable[27] = NEW_String_string___String___with_native(BOX_NativeString("expecting: '::'"), TAG_Int(15)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[27]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[27]) /*AbstractArray::add*/;
     variable[28] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', 'with', '(', '[', '::', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(228)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[28]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[28]) /*AbstractArray::add*/;
     variable[29] = NEW_String_string___String___with_native(BOX_NativeString("expecting: '[', '=', '+=', '-=', '.'"), TAG_Int(36)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[29]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[29]) /*AbstractArray::add*/;
     variable[30] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth'"), TAG_Int(74)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[30]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[30]) /*AbstractArray::add*/;
     variable[31] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, EOF"), TAG_Int(28)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[31]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[31]) /*AbstractArray::add*/;
     variable[32] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do'"), TAG_Int(29)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[32]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[32]) /*AbstractArray::add*/;
     variable[33] = NEW_String_string___String___with_native(BOX_NativeString("expecting: '[', '.'"), TAG_Int(19)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[33]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[33]) /*AbstractArray::add*/;
     variable[34] = NEW_String_string___String___with_native(BOX_NativeString("expecting: mid string, end string"), TAG_Int(33)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[34]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[34]) /*AbstractArray::add*/;
     variable[35] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'super'"), TAG_Int(18)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[35]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[35]) /*AbstractArray::add*/;
     variable[36] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'super', classid, id"), TAG_Int(31)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[36]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[36]) /*AbstractArray::add*/;
     variable[37] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'class', 'abstract', 'interface', 'universal', 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(324)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[37]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[37]) /*AbstractArray::add*/;
     variable[38] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'meth', 'init', 'redef', 'do', 'var', 'protected', 'private', 'intrude', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(277)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[38]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[38]) /*AbstractArray::add*/;
     variable[39] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'if', 'then', 'else', 'in', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', 'as', 'with', '(', ')', '[', ']', ',', '..', '-', classid, id, attrid, number, float, char, string, start string, mid string, end string"), TAG_Int(426)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[39]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[39]) /*AbstractArray::add*/;
     variable[40] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '(', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(153)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[40]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[40]) /*AbstractArray::add*/;
     variable[41] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(164)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[41]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[41]) /*AbstractArray::add*/;
     variable[42] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(157)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[42]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[42]) /*AbstractArray::add*/;
     variable[43] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(148)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[43]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[43]) /*AbstractArray::add*/;
     variable[44] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(185)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[44]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[44]) /*AbstractArray::add*/;
     variable[45] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '(', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(159)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[45]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[45]) /*AbstractArray::add*/;
     variable[46] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', 'with', EOF"), TAG_Int(51)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[46]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[46]) /*AbstractArray::add*/;
     variable[47] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', 'and', 'or', 'with', EOF"), TAG_Int(64)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[47]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[47]) /*AbstractArray::add*/;
     variable[48] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(128)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[48]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[48]) /*AbstractArray::add*/;
     variable[49] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(143)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[49]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[49]) /*AbstractArray::add*/;
     variable[50] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'class', 'abstract', 'interface', 'universal', 'meth'"), TAG_Int(64)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[50]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[50]) /*AbstractArray::add*/;
     variable[51] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'end', 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(232)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[51]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[51]) /*AbstractArray::add*/;
     variable[52] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', ':', '=', EOF"), TAG_Int(45)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[52]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[52]) /*AbstractArray::add*/;
     variable[53] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'import', 'class', 'abstract', 'interface', 'universal', 'meth', 'type', 'attr', 'init'"), TAG_Int(98)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[53]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[53]) /*AbstractArray::add*/;
     variable[54] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(209)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[54]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[54]) /*AbstractArray::add*/;
     variable[55] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(174)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[55]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[55]) /*AbstractArray::add*/;
     variable[56] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(167)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[56]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[56]) /*AbstractArray::add*/;
     variable[57] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'and', 'or', 'isa', 'with', '(', '[', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(156)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[57]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[57]) /*AbstractArray::add*/;
     variable[58] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'do', 'then', 'else', 'and', 'or', ')', ']', ',', '..', mid string, end string, EOF"), TAG_Int(115)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[58]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[58]) /*AbstractArray::add*/;
     variable[59] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', ']', ',', '..', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(179)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[59]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[59]) /*AbstractArray::add*/;
     variable[60] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', ')', ']', ',', '..', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(194)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[60]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[60]) /*AbstractArray::add*/;
     variable[61] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'and', 'or', 'isa', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(137)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[61]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[61]) /*AbstractArray::add*/;
     variable[62] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'and', 'or', 'isa', 'with', '(', '[', ':', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(161)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[62]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[62]) /*AbstractArray::add*/;
     variable[63] = NEW_String_string___String___with_native(BOX_NativeString("expecting: classid"), TAG_Int(18)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[63]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[63]) /*AbstractArray::add*/;
     variable[64] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', '[', ']', ',', '::', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(215)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[64]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[64]) /*AbstractArray::add*/;
     variable[65] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ')'"), TAG_Int(14)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[65]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[65]) /*AbstractArray::add*/;
     variable[66] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'super'"), TAG_Int(32)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[66]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[66]) /*AbstractArray::add*/;
     variable[67] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'super', classid, id"), TAG_Int(45)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[67]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[67]) /*AbstractArray::add*/;
     variable[68] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'with', EOF"), TAG_Int(43)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[68]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[68]) /*AbstractArray::add*/;
     variable[69] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', id"), TAG_Int(34)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[69]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[69]) /*AbstractArray::add*/;
     variable[70] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'class'"), TAG_Int(18)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[70]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[70]) /*AbstractArray::add*/;
     variable[71] = NEW_String_string___String___with_native(BOX_NativeString("expecting: '[', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', id"), TAG_Int(84)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[71]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[71]) /*AbstractArray::add*/;
     variable[72] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(230)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[72]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[72]) /*AbstractArray::add*/;
     variable[73] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'do'"), TAG_Int(15)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[73]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[73]) /*AbstractArray::add*/;
     variable[74] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'as', id, attrid"), TAG_Int(49)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[74]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[74]) /*AbstractArray::add*/;
     variable[75] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', 'with', ')', '[', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(212)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[75]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[75]) /*AbstractArray::add*/;
     variable[76] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'meth', 'protected', 'private', 'intrude'"), TAG_Int(52)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[76]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[76]) /*AbstractArray::add*/;
     variable[77] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'meth'"), TAG_Int(17)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[77]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[77]) /*AbstractArray::add*/;
     variable[78] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(150)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[78]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[78]) /*AbstractArray::add*/;
     variable[79] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(143)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[79]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[79]) /*AbstractArray::add*/;
     variable[80] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', ')', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(171)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[80]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[80]) /*AbstractArray::add*/;
     variable[81] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', '=', EOF"), TAG_Int(40)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[81]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[81]) /*AbstractArray::add*/;
     variable[82] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'then'"), TAG_Int(31)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[82]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[82]) /*AbstractArray::add*/;
     variable[83] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'in'"), TAG_Int(29)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[83]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[83]) /*AbstractArray::add*/;
     variable[84] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(160)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[84]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[84]) /*AbstractArray::add*/;
     variable[85] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(153)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[85]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[85]) /*AbstractArray::add*/;
     variable[86] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'and', 'or', 'isa', 'with', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(145)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[86]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[86]) /*AbstractArray::add*/;
     variable[87] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'then', 'else', 'and', 'or', 'isa', 'with', '(', ')', '[', ']', ',', '=', '...', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(340)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[87]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[87]) /*AbstractArray::add*/;
     variable[88] = NEW_String_string___String___with_native(BOX_NativeString("expecting: '.'"), TAG_Int(14)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[88]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[88]) /*AbstractArray::add*/;
     variable[89] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']', ',', '..'"), TAG_Int(39)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[89]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[89]) /*AbstractArray::add*/;
     variable[90] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'do', id"), TAG_Int(19)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[90]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[90]) /*AbstractArray::add*/;
     variable[91] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'with'"), TAG_Int(17)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[91]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[91]) /*AbstractArray::add*/;
     variable[92] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'end', id"), TAG_Int(20)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[92]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[92]) /*AbstractArray::add*/;
     variable[93] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ']'"), TAG_Int(14)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[93]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[93]) /*AbstractArray::add*/;
     variable[94] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do', 'with', '(', ':'"), TAG_Int(53)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[94]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[94]) /*AbstractArray::add*/;
     variable[95] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do', 'with', '(', ':', '='"), TAG_Int(58)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[95]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[95]) /*AbstractArray::add*/;
     variable[96] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'as', id, attrid"), TAG_Int(35)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[96]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[96]) /*AbstractArray::add*/;
     variable[97] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, mid string, end string"), TAG_Int(47)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[97]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[97]) /*AbstractArray::add*/;
     variable[98] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '(', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(158)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[98]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[98]) /*AbstractArray::add*/;
     variable[99] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', 'with', '[', '=', '+=', '-=', '.', EOF"), TAG_Int(78)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[99]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[99]) /*AbstractArray::add*/;
     variable[100] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ','"), TAG_Int(33)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[100]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[100]) /*AbstractArray::add*/;
     variable[101] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'then'"), TAG_Int(17)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[101]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[101]) /*AbstractArray::add*/;
     variable[102] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'in'"), TAG_Int(15)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[102]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[102]) /*AbstractArray::add*/;
     variable[103] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', '(', ')', ']', ',', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(204)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[103]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[103]) /*AbstractArray::add*/;
     variable[104] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ']', ',', '..'"), TAG_Int(25)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[104]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[104]) /*AbstractArray::add*/;
     variable[105] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do', ','"), TAG_Int(34)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[105]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[105]) /*AbstractArray::add*/;
     variable[106] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', id"), TAG_Int(32)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[106]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[106]) /*AbstractArray::add*/;
     variable[107] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'is', 'do'"), TAG_Int(21)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[107]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[107]) /*AbstractArray::add*/;
     variable[108] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do', 'with', ':'"), TAG_Int(48)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[108]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[108]) /*AbstractArray::add*/;
     variable[109] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'do', 'with'"), TAG_Int(43)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[109]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[109]) /*AbstractArray::add*/;
     variable[110] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'is', 'do', 'with'"), TAG_Int(29)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[110]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[110]) /*AbstractArray::add*/;
     variable[111] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude', '['"), TAG_Int(146)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[111]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[111]) /*AbstractArray::add*/;
     variable[112] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']', ','"), TAG_Int(33)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[112]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[112]) /*AbstractArray::add*/;
     variable[113] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, '('"), TAG_Int(28)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[113]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[113]) /*AbstractArray::add*/;
     variable[114] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', 'with', '(', '[', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(222)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[114]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[114]) /*AbstractArray::add*/;
     variable[115] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ')', ','"), TAG_Int(19)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[115]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[115]) /*AbstractArray::add*/;
     variable[116] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', 'and', 'or', 'with', '+', '-', EOF"), TAG_Int(74)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[116]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[116]) /*AbstractArray::add*/;
     variable[117] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'else', 'with', ')', ']', ',', '=', '...', EOF"), TAG_Int(90)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[117]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[117]) /*AbstractArray::add*/;
     variable[118] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'do', 'var', 'if', 'else', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(254)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[118]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[118]) /*AbstractArray::add*/;
     variable[119] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'do', 'then', 'else', 'and', 'or', ')', ']', ',', '..', '+', '-', mid string, end string, EOF"), TAG_Int(125)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[119]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[119]) /*AbstractArray::add*/;
     variable[120] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'and', 'or', 'isa', 'with', '(', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(150)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[120]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[120]) /*AbstractArray::add*/;
     variable[121] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'do', 'then', 'else', 'and', 'or', 'isa', 'with', ')', '[', ']', ',', '=', '+=', '-=', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(229)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[121]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[121]) /*AbstractArray::add*/;
     variable[122] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(175)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[122]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[122]) /*AbstractArray::add*/;
     variable[123] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ')', ']', ','"), TAG_Int(24)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[123]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[123]) /*AbstractArray::add*/;
     variable[124] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ']', ','"), TAG_Int(19)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[124]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[124]) /*AbstractArray::add*/;
     variable[125] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'end', 'init', 'do', 'var', 'if', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', 'with', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(240)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[125]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[125]) /*AbstractArray::add*/;
     variable[126] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ','"), TAG_Int(14)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[126]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[126]) /*AbstractArray::add*/;
     variable[127] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ')', id"), TAG_Int(18)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[127]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[127]) /*AbstractArray::add*/;
     variable[128] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'extern'"), TAG_Int(19)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[128]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[128]) /*AbstractArray::add*/;
     variable[129] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'break', id"), TAG_Int(36)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[129]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[129]) /*AbstractArray::add*/;
     variable[130] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(141)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[130]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[130]) /*AbstractArray::add*/;
     variable[131] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(127)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[131]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[131]) /*AbstractArray::add*/;
     variable[132] = NEW_String_string___String___with_native(BOX_NativeString("expecting: '('"), TAG_Int(14)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[132]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[132]) /*AbstractArray::add*/;
     variable[133] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(205)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[133]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[133]) /*AbstractArray::add*/;
     variable[134] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '[', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(200)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[134]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[134]) /*AbstractArray::add*/;
     variable[135] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', EOF"), TAG_Int(43)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[135]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[135]) /*AbstractArray::add*/;
     variable[136] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', 'with', '(', '[', '::', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(236)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[136]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[136]) /*AbstractArray::add*/;
     variable[137] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'end', 'init', 'do', 'var', 'if', 'else', 'while', 'for', 'return', 'continue', 'break', 'abort', 'assert', 'new', 'super', 'self', 'true', 'false', 'null', '(', '[', classid, id, attrid, number, float, char, string, start string"), TAG_Int(240)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[137]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[137]) /*AbstractArray::add*/;
     variable[138] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'else'"), TAG_Int(17)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[138]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[138]) /*AbstractArray::add*/;
     variable[139] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']'"), TAG_Int(28)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[139]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[139]) /*AbstractArray::add*/;
     variable[140] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(161)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[140]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[140]) /*AbstractArray::add*/;
     variable[141] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ',', ':'"), TAG_Int(38)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[141]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[141]) /*AbstractArray::add*/;
     variable[142] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, string"), TAG_Int(31)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[142]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[142]) /*AbstractArray::add*/;
     variable[143] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(130)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[143]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[143]) /*AbstractArray::add*/;
     variable[144] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'meth', 'type', 'attr', 'init', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(100)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[144]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[144]) /*AbstractArray::add*/;
     variable[145] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'attr', 'redef', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(73)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[145]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[145]) /*AbstractArray::add*/;
     variable[146] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'attr', 'redef', 'protected', 'private', 'intrude'"), TAG_Int(61)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[146]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[146]) /*AbstractArray::add*/;
     variable[147] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'meth', 'type', 'attr', 'init'"), TAG_Int(41)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[147]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[147]) /*AbstractArray::add*/;
     variable[148] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', ':', '=', EOF"), TAG_Int(53)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[148]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[148]) /*AbstractArray::add*/;
     variable[149] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '(', '[', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(164)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[149]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[149]) /*AbstractArray::add*/;
     variable[150] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(145)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[150]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[150]) /*AbstractArray::add*/;
     variable[151] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '(', '[', ':', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(169)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[151]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[151]) /*AbstractArray::add*/;
     variable[152] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ']', ','"), TAG_Int(38)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[152]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[152]) /*AbstractArray::add*/;
     variable[153] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '(', '[', ']', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(135)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[153]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[153]) /*AbstractArray::add*/;
     variable[154] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(169)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[154]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[154]) /*AbstractArray::add*/;
     variable[155] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(162)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[155]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[155]) /*AbstractArray::add*/;
     variable[156] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(130)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[156]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[156]) /*AbstractArray::add*/;
     variable[157] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '(', '[', ']', '::', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(141)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[157]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[157]) /*AbstractArray::add*/;
     variable[158] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, '[', ']'"), TAG_Int(33)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[158]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[158]) /*AbstractArray::add*/;
     variable[159] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'and', 'or', '[', ']'"), TAG_Int(46)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[159]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[159]) /*AbstractArray::add*/;
     variable[160] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '+', '-', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(110)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[160]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[160]) /*AbstractArray::add*/;
     variable[161] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'is', 'and', 'or', 'isa', '[', ']', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>'"), TAG_Int(125)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[161]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[161]) /*AbstractArray::add*/;
     variable[162] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')', ',', '...'"), TAG_Int(40)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[162]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[162]) /*AbstractArray::add*/;
     variable[163] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do', '(', ':'"), TAG_Int(39)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[163]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[163]) /*AbstractArray::add*/;
     variable[164] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ']', ',', ':'"), TAG_Int(38)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[164]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[164]) /*AbstractArray::add*/;
     variable[165] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'end', 'meth', 'type', 'attr', 'init', 'redef', 'readable', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(116)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[165]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[165]) /*AbstractArray::add*/;
     variable[166] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'attr', 'writable', 'protected', 'private', 'intrude'"), TAG_Int(64)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[166]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[166]) /*AbstractArray::add*/;
     variable[167] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'attr'"), TAG_Int(17)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[167]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[167]) /*AbstractArray::add*/;
     variable[168] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'attr', 'protected', 'private', 'intrude'"), TAG_Int(52)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[168]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[168]) /*AbstractArray::add*/;
     variable[169] = NEW_String_string___String___with_native(BOX_NativeString("expecting: attrid"), TAG_Int(17)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[169]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[169]) /*AbstractArray::add*/;
     variable[170] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do', 'with', '(', '[', ':', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', id"), TAG_Int(122)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[170]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[170]) /*AbstractArray::add*/;
     variable[171] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'else'"), TAG_Int(31)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[171]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[171]) /*AbstractArray::add*/;
     variable[172] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'else', '=', EOF"), TAG_Int(48)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[172]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[172]) /*AbstractArray::add*/;
     variable[173] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'is', 'else', 'and', 'or', 'isa', 'with', '[', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', EOF"), TAG_Int(153)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[173]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[173]) /*AbstractArray::add*/;
     variable[174] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'special', 'end', 'meth', 'type', 'attr', 'init', 'redef', 'is', 'do', 'readable', 'writable', 'protected', 'private', 'intrude', 'then', 'else', 'and', 'or', 'isa', 'with', '(', ')', ']', ',', '=', '...', '..', '.', '+', '-', '*', '/', '%', '==', '!=', '<', '<=', '>', '>=', '<=>', mid string, end string, EOF"), TAG_Int(335)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[174]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[174]) /*AbstractArray::add*/;
     variable[175] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(155)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[175]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[175]) /*AbstractArray::add*/;
     variable[176] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '(', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(148)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[176]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[176]) /*AbstractArray::add*/;
     variable[177] = NEW_String_string___String___with_native(BOX_NativeString("expecting: '[', ']'"), TAG_Int(19)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[177]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[177]) /*AbstractArray::add*/;
     variable[178] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do', ':'"), TAG_Int(34)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[178]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[178]) /*AbstractArray::add*/;
     variable[179] = NEW_String_string___String___with_native(BOX_NativeString("expecting: ':'"), TAG_Int(14)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[179]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[179]) /*AbstractArray::add*/;
     variable[180] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ':', '='"), TAG_Int(33)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[180]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[180]) /*AbstractArray::add*/;
     variable[181] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'do', 'with', '(', ':'"), TAG_Int(47)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[181]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[181]) /*AbstractArray::add*/;
     variable[182] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, ')'"), TAG_Int(28)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[182]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[182]) /*AbstractArray::add*/;
     variable[183] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'init', 'if', 'else', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', 'with', '(', '[', '=', '+=', '-=', '.', '-', classid, id, attrid, number, float, char, string, start string, EOF"), TAG_Int(230)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[183]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[183]) /*AbstractArray::add*/;
     variable[184] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, '='"), TAG_Int(28)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[184]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[184]) /*AbstractArray::add*/;
     variable[185] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(170)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[185]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[185]) /*AbstractArray::add*/;
     variable[186] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'and', 'or', '[', ']', '+', '-'"), TAG_Int(56)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[186]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[186]) /*AbstractArray::add*/;
     variable[187] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'abstract', 'intern', 'extern'"), TAG_Int(41)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[187]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[187]) /*AbstractArray::add*/;
     variable[188] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end'"), TAG_Int(30)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[188]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[188]) /*AbstractArray::add*/;
     variable[189] = NEW_String_string___String___with_native(BOX_NativeString("expecting: 'init', 'if', 'not', 'new', 'once', 'super', 'self', 'true', 'false', 'null', '-', classid, id, attrid, number, float, char, string, start string"), TAG_Int(156)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[189]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[189]) /*AbstractArray::add*/;
     variable[190] = NEW_String_string___String___with_native(BOX_NativeString("expecting: eol, comment, 'end', 'do', 'then', 'else', ')', ']', ',', '..', mid string, end string, EOF"), TAG_Int(102)); /*new String*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[190]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[190]) /*AbstractArray::add*/;
     once_value_1306 = variable[2];
     once_bool_1306 = true;
   }
@@ -49416,1307 +49416,1307 @@ val_t parser_tables___ParserTable___errors(val_t  self) {
   if (once_bool_1308) variable[2] = once_value_1308;
   else {
     variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(1301)); /*new Array[Int]*/
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(59)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(86)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(88)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(89)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(94)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(99)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(100)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(92)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(94)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(121)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(123)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(124)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(125)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(126)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(121)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(125)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(138)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(141)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(154)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(155)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(157)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(159)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(160)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(161)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(169)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(88)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(171)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(174)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(160)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(175)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(178)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(178)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(95)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(119)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(155)) /*AbstractArray::add*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(0)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(6)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(7)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(8)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(9)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(10)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(14)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(17)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(19)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(25)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(27)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(34)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(35)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(36)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(42)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(45)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(49)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(50)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(54)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(56)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(58)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(59)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(61)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(63)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(64)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(66)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(67)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(69)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(24)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(1)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(47)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(73)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(41)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(38)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(39)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(78)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(80)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(52)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(53)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(84)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(85)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(86)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(33)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(88)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(89)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(28)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(94)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(74)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(77)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(75)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(76)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(99)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(100)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(81)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(82)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(101)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(92)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(103)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(13)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(111)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(94)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(11)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(44)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(113)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(46)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(108)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(114)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(55)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(116)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(57)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(117)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(121)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(123)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(3)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(124)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(125)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(106)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(126)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(121)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(65)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(31)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(2)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(125)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(131)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(133)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(30)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(83)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(51)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(118)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(138)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(141)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(112)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(136)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(96)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(145)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(146)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(147)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(148)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(149)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(154)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(32)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(155)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(157)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(159)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(160)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(161)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(142)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(144)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(72)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(128)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(169)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(87)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(88)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(171)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(120)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(174)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(151)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(152)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(71)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(160)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(175)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(163)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(68)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(167)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(178)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(37)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(102)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(130)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(180)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(134)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(79)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(172)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(173)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(93)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(97)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(105)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(29)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(90)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(143)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(91)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(176)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(178)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(182)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(140)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(48)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(115)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(95)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(26)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(20)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(98)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(12)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(156)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(183)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(158)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(110)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(109)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(127)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(165)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(104)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(70)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(23)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(186)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(40)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(162)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(132)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(170)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(16)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(129)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(164)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(184)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(43)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(4)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(15)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(187)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(150)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(22)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(107)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(166)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(139)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(185)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(168)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(60)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(177)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(122)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(135)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(179)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(181)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(119)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(62)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(18)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(137)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(153)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(21)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(155)) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2],  TAG_Int(5)) /*AbstractArray::add*/;
     once_value_1308 = variable[2];
     once_bool_1308 = true;
   }
index 80f7021..34e9f2a 100644 (file)
 extern const classtable_elt_t VFT_ParserTable[];
 extern const char *LOCATE_parser_tables;
 extern const int SFT_parser_tables[];
-#define ID_ParserTable SFT_parser_tables[0]
-#define COLOR_ParserTable SFT_parser_tables[1]
-#define COLOR_parser_tables___ParserTable____action_table SFT_parser_tables[2]
-#define COLOR_parser_tables___ParserTable____goto_table SFT_parser_tables[3]
-#define INIT_TABLE_POS_ParserTable SFT_parser_tables[4]
-#define COLOR_parser_tables___ParserTable___build_action_table SFT_parser_tables[5]
-#define COLOR_parser_tables___ParserTable___action_table_row1 SFT_parser_tables[6]
-#define COLOR_parser_tables___ParserTable___action_table_row2 SFT_parser_tables[7]
-#define COLOR_parser_tables___ParserTable___action_table_row3 SFT_parser_tables[8]
-#define COLOR_parser_tables___ParserTable___action_table_row4 SFT_parser_tables[9]
-#define COLOR_parser_tables___ParserTable___action_table_row5 SFT_parser_tables[10]
-#define COLOR_parser_tables___ParserTable___action_table_row6 SFT_parser_tables[11]
-#define COLOR_parser_tables___ParserTable___action_table_row7 SFT_parser_tables[12]
-#define COLOR_parser_tables___ParserTable___action_table_row8 SFT_parser_tables[13]
-#define COLOR_parser_tables___ParserTable___action_table_row9 SFT_parser_tables[14]
-#define COLOR_parser_tables___ParserTable___action_table_row10 SFT_parser_tables[15]
-#define COLOR_parser_tables___ParserTable___action_table_row11 SFT_parser_tables[16]
-#define COLOR_parser_tables___ParserTable___action_table_row12 SFT_parser_tables[17]
-#define COLOR_parser_tables___ParserTable___action_table_row13 SFT_parser_tables[18]
-#define COLOR_parser_tables___ParserTable___action_table_row14 SFT_parser_tables[19]
-#define COLOR_parser_tables___ParserTable___action_table_row15 SFT_parser_tables[20]
-#define COLOR_parser_tables___ParserTable___action_table_row16 SFT_parser_tables[21]
-#define COLOR_parser_tables___ParserTable___action_table_row17 SFT_parser_tables[22]
-#define COLOR_parser_tables___ParserTable___action_table_row18 SFT_parser_tables[23]
-#define COLOR_parser_tables___ParserTable___action_table_row19 SFT_parser_tables[24]
-#define COLOR_parser_tables___ParserTable___action_table_row20 SFT_parser_tables[25]
-#define COLOR_parser_tables___ParserTable___action_table_row21 SFT_parser_tables[26]
-#define COLOR_parser_tables___ParserTable___action_table_row22 SFT_parser_tables[27]
-#define COLOR_parser_tables___ParserTable___action_table_row23 SFT_parser_tables[28]
-#define COLOR_parser_tables___ParserTable___action_table_row24 SFT_parser_tables[29]
-#define COLOR_parser_tables___ParserTable___action_table_row25 SFT_parser_tables[30]
-#define COLOR_parser_tables___ParserTable___action_table_row26 SFT_parser_tables[31]
-#define COLOR_parser_tables___ParserTable___action_table_row27 SFT_parser_tables[32]
-#define COLOR_parser_tables___ParserTable___action_table_row28 SFT_parser_tables[33]
-#define COLOR_parser_tables___ParserTable___action_table_row29 SFT_parser_tables[34]
-#define COLOR_parser_tables___ParserTable___action_table_row30 SFT_parser_tables[35]
-#define COLOR_parser_tables___ParserTable___action_table_row31 SFT_parser_tables[36]
-#define COLOR_parser_tables___ParserTable___action_table_row32 SFT_parser_tables[37]
-#define COLOR_parser_tables___ParserTable___action_table_row33 SFT_parser_tables[38]
-#define COLOR_parser_tables___ParserTable___action_table_row34 SFT_parser_tables[39]
-#define COLOR_parser_tables___ParserTable___action_table_row35 SFT_parser_tables[40]
-#define COLOR_parser_tables___ParserTable___action_table_row36 SFT_parser_tables[41]
-#define COLOR_parser_tables___ParserTable___action_table_row37 SFT_parser_tables[42]
-#define COLOR_parser_tables___ParserTable___action_table_row38 SFT_parser_tables[43]
-#define COLOR_parser_tables___ParserTable___action_table_row39 SFT_parser_tables[44]
-#define COLOR_parser_tables___ParserTable___action_table_row40 SFT_parser_tables[45]
-#define COLOR_parser_tables___ParserTable___action_table_row41 SFT_parser_tables[46]
-#define COLOR_parser_tables___ParserTable___action_table_row42 SFT_parser_tables[47]
-#define COLOR_parser_tables___ParserTable___action_table_row43 SFT_parser_tables[48]
-#define COLOR_parser_tables___ParserTable___action_table_row44 SFT_parser_tables[49]
-#define COLOR_parser_tables___ParserTable___action_table_row45 SFT_parser_tables[50]
-#define COLOR_parser_tables___ParserTable___action_table_row46 SFT_parser_tables[51]
-#define COLOR_parser_tables___ParserTable___action_table_row47 SFT_parser_tables[52]
-#define COLOR_parser_tables___ParserTable___action_table_row48 SFT_parser_tables[53]
-#define COLOR_parser_tables___ParserTable___action_table_row49 SFT_parser_tables[54]
-#define COLOR_parser_tables___ParserTable___action_table_row50 SFT_parser_tables[55]
-#define COLOR_parser_tables___ParserTable___action_table_row51 SFT_parser_tables[56]
-#define COLOR_parser_tables___ParserTable___action_table_row52 SFT_parser_tables[57]
-#define COLOR_parser_tables___ParserTable___action_table_row53 SFT_parser_tables[58]
-#define COLOR_parser_tables___ParserTable___action_table_row54 SFT_parser_tables[59]
-#define COLOR_parser_tables___ParserTable___action_table_row55 SFT_parser_tables[60]
-#define COLOR_parser_tables___ParserTable___action_table_row56 SFT_parser_tables[61]
-#define COLOR_parser_tables___ParserTable___action_table_row57 SFT_parser_tables[62]
-#define COLOR_parser_tables___ParserTable___action_table_row58 SFT_parser_tables[63]
-#define COLOR_parser_tables___ParserTable___action_table_row59 SFT_parser_tables[64]
-#define COLOR_parser_tables___ParserTable___action_table_row60 SFT_parser_tables[65]
-#define COLOR_parser_tables___ParserTable___action_table_row61 SFT_parser_tables[66]
-#define COLOR_parser_tables___ParserTable___action_table_row62 SFT_parser_tables[67]
-#define COLOR_parser_tables___ParserTable___action_table_row63 SFT_parser_tables[68]
-#define COLOR_parser_tables___ParserTable___action_table_row64 SFT_parser_tables[69]
-#define COLOR_parser_tables___ParserTable___action_table_row65 SFT_parser_tables[70]
-#define COLOR_parser_tables___ParserTable___action_table_row66 SFT_parser_tables[71]
-#define COLOR_parser_tables___ParserTable___action_table_row67 SFT_parser_tables[72]
-#define COLOR_parser_tables___ParserTable___action_table_row68 SFT_parser_tables[73]
-#define COLOR_parser_tables___ParserTable___action_table_row69 SFT_parser_tables[74]
-#define COLOR_parser_tables___ParserTable___action_table_row70 SFT_parser_tables[75]
-#define COLOR_parser_tables___ParserTable___action_table_row71 SFT_parser_tables[76]
-#define COLOR_parser_tables___ParserTable___action_table_row72 SFT_parser_tables[77]
-#define COLOR_parser_tables___ParserTable___action_table_row73 SFT_parser_tables[78]
-#define COLOR_parser_tables___ParserTable___action_table_row74 SFT_parser_tables[79]
-#define COLOR_parser_tables___ParserTable___action_table_row75 SFT_parser_tables[80]
-#define COLOR_parser_tables___ParserTable___action_table_row76 SFT_parser_tables[81]
-#define COLOR_parser_tables___ParserTable___action_table_row77 SFT_parser_tables[82]
-#define COLOR_parser_tables___ParserTable___action_table_row78 SFT_parser_tables[83]
-#define COLOR_parser_tables___ParserTable___action_table_row79 SFT_parser_tables[84]
-#define COLOR_parser_tables___ParserTable___action_table_row80 SFT_parser_tables[85]
-#define COLOR_parser_tables___ParserTable___action_table_row81 SFT_parser_tables[86]
-#define COLOR_parser_tables___ParserTable___action_table_row82 SFT_parser_tables[87]
-#define COLOR_parser_tables___ParserTable___action_table_row83 SFT_parser_tables[88]
-#define COLOR_parser_tables___ParserTable___action_table_row84 SFT_parser_tables[89]
-#define COLOR_parser_tables___ParserTable___action_table_row85 SFT_parser_tables[90]
-#define COLOR_parser_tables___ParserTable___action_table_row86 SFT_parser_tables[91]
-#define COLOR_parser_tables___ParserTable___action_table_row87 SFT_parser_tables[92]
-#define COLOR_parser_tables___ParserTable___action_table_row88 SFT_parser_tables[93]
-#define COLOR_parser_tables___ParserTable___action_table_row89 SFT_parser_tables[94]
-#define COLOR_parser_tables___ParserTable___action_table_row90 SFT_parser_tables[95]
-#define COLOR_parser_tables___ParserTable___action_table_row91 SFT_parser_tables[96]
-#define COLOR_parser_tables___ParserTable___action_table_row92 SFT_parser_tables[97]
-#define COLOR_parser_tables___ParserTable___action_table_row93 SFT_parser_tables[98]
-#define COLOR_parser_tables___ParserTable___action_table_row94 SFT_parser_tables[99]
-#define COLOR_parser_tables___ParserTable___action_table_row95 SFT_parser_tables[100]
-#define COLOR_parser_tables___ParserTable___action_table_row96 SFT_parser_tables[101]
-#define COLOR_parser_tables___ParserTable___action_table_row97 SFT_parser_tables[102]
-#define COLOR_parser_tables___ParserTable___action_table_row98 SFT_parser_tables[103]
-#define COLOR_parser_tables___ParserTable___action_table_row99 SFT_parser_tables[104]
-#define COLOR_parser_tables___ParserTable___action_table_row100 SFT_parser_tables[105]
-#define COLOR_parser_tables___ParserTable___action_table_row101 SFT_parser_tables[106]
-#define COLOR_parser_tables___ParserTable___action_table_row102 SFT_parser_tables[107]
-#define COLOR_parser_tables___ParserTable___action_table_row103 SFT_parser_tables[108]
-#define COLOR_parser_tables___ParserTable___action_table_row104 SFT_parser_tables[109]
-#define COLOR_parser_tables___ParserTable___action_table_row105 SFT_parser_tables[110]
-#define COLOR_parser_tables___ParserTable___action_table_row106 SFT_parser_tables[111]
-#define COLOR_parser_tables___ParserTable___action_table_row107 SFT_parser_tables[112]
-#define COLOR_parser_tables___ParserTable___action_table_row108 SFT_parser_tables[113]
-#define COLOR_parser_tables___ParserTable___action_table_row109 SFT_parser_tables[114]
-#define COLOR_parser_tables___ParserTable___action_table_row110 SFT_parser_tables[115]
-#define COLOR_parser_tables___ParserTable___action_table_row111 SFT_parser_tables[116]
-#define COLOR_parser_tables___ParserTable___action_table_row112 SFT_parser_tables[117]
-#define COLOR_parser_tables___ParserTable___action_table_row113 SFT_parser_tables[118]
-#define COLOR_parser_tables___ParserTable___action_table_row114 SFT_parser_tables[119]
-#define COLOR_parser_tables___ParserTable___action_table_row115 SFT_parser_tables[120]
-#define COLOR_parser_tables___ParserTable___action_table_row116 SFT_parser_tables[121]
-#define COLOR_parser_tables___ParserTable___action_table_row117 SFT_parser_tables[122]
-#define COLOR_parser_tables___ParserTable___action_table_row118 SFT_parser_tables[123]
-#define COLOR_parser_tables___ParserTable___action_table_row119 SFT_parser_tables[124]
-#define COLOR_parser_tables___ParserTable___action_table_row120 SFT_parser_tables[125]
-#define COLOR_parser_tables___ParserTable___action_table_row121 SFT_parser_tables[126]
-#define COLOR_parser_tables___ParserTable___action_table_row122 SFT_parser_tables[127]
-#define COLOR_parser_tables___ParserTable___action_table_row123 SFT_parser_tables[128]
-#define COLOR_parser_tables___ParserTable___action_table_row124 SFT_parser_tables[129]
-#define COLOR_parser_tables___ParserTable___action_table_row125 SFT_parser_tables[130]
-#define COLOR_parser_tables___ParserTable___action_table_row126 SFT_parser_tables[131]
-#define COLOR_parser_tables___ParserTable___action_table_row127 SFT_parser_tables[132]
-#define COLOR_parser_tables___ParserTable___action_table_row128 SFT_parser_tables[133]
-#define COLOR_parser_tables___ParserTable___action_table_row129 SFT_parser_tables[134]
-#define COLOR_parser_tables___ParserTable___action_table_row130 SFT_parser_tables[135]
-#define COLOR_parser_tables___ParserTable___action_table_row131 SFT_parser_tables[136]
-#define COLOR_parser_tables___ParserTable___action_table_row132 SFT_parser_tables[137]
-#define COLOR_parser_tables___ParserTable___action_table_row133 SFT_parser_tables[138]
-#define COLOR_parser_tables___ParserTable___action_table_row134 SFT_parser_tables[139]
-#define COLOR_parser_tables___ParserTable___action_table_row135 SFT_parser_tables[140]
-#define COLOR_parser_tables___ParserTable___action_table_row136 SFT_parser_tables[141]
-#define COLOR_parser_tables___ParserTable___action_table_row137 SFT_parser_tables[142]
-#define COLOR_parser_tables___ParserTable___action_table_row138 SFT_parser_tables[143]
-#define COLOR_parser_tables___ParserTable___action_table_row139 SFT_parser_tables[144]
-#define COLOR_parser_tables___ParserTable___action_table_row140 SFT_parser_tables[145]
-#define COLOR_parser_tables___ParserTable___action_table_row141 SFT_parser_tables[146]
-#define COLOR_parser_tables___ParserTable___action_table_row142 SFT_parser_tables[147]
-#define COLOR_parser_tables___ParserTable___action_table_row143 SFT_parser_tables[148]
-#define COLOR_parser_tables___ParserTable___action_table_row144 SFT_parser_tables[149]
-#define COLOR_parser_tables___ParserTable___action_table_row145 SFT_parser_tables[150]
-#define COLOR_parser_tables___ParserTable___action_table_row146 SFT_parser_tables[151]
-#define COLOR_parser_tables___ParserTable___action_table_row147 SFT_parser_tables[152]
-#define COLOR_parser_tables___ParserTable___action_table_row148 SFT_parser_tables[153]
-#define COLOR_parser_tables___ParserTable___action_table_row149 SFT_parser_tables[154]
-#define COLOR_parser_tables___ParserTable___action_table_row150 SFT_parser_tables[155]
-#define COLOR_parser_tables___ParserTable___action_table_row151 SFT_parser_tables[156]
-#define COLOR_parser_tables___ParserTable___action_table_row152 SFT_parser_tables[157]
-#define COLOR_parser_tables___ParserTable___action_table_row153 SFT_parser_tables[158]
-#define COLOR_parser_tables___ParserTable___action_table_row154 SFT_parser_tables[159]
-#define COLOR_parser_tables___ParserTable___action_table_row155 SFT_parser_tables[160]
-#define COLOR_parser_tables___ParserTable___action_table_row156 SFT_parser_tables[161]
-#define COLOR_parser_tables___ParserTable___action_table_row157 SFT_parser_tables[162]
-#define COLOR_parser_tables___ParserTable___action_table_row158 SFT_parser_tables[163]
-#define COLOR_parser_tables___ParserTable___action_table_row159 SFT_parser_tables[164]
-#define COLOR_parser_tables___ParserTable___action_table_row160 SFT_parser_tables[165]
-#define COLOR_parser_tables___ParserTable___action_table_row161 SFT_parser_tables[166]
-#define COLOR_parser_tables___ParserTable___action_table_row162 SFT_parser_tables[167]
-#define COLOR_parser_tables___ParserTable___action_table_row163 SFT_parser_tables[168]
-#define COLOR_parser_tables___ParserTable___action_table_row164 SFT_parser_tables[169]
-#define COLOR_parser_tables___ParserTable___action_table_row165 SFT_parser_tables[170]
-#define COLOR_parser_tables___ParserTable___action_table_row166 SFT_parser_tables[171]
-#define COLOR_parser_tables___ParserTable___action_table_row167 SFT_parser_tables[172]
-#define COLOR_parser_tables___ParserTable___action_table_row168 SFT_parser_tables[173]
-#define COLOR_parser_tables___ParserTable___action_table_row169 SFT_parser_tables[174]
-#define COLOR_parser_tables___ParserTable___action_table_row170 SFT_parser_tables[175]
-#define COLOR_parser_tables___ParserTable___action_table_row171 SFT_parser_tables[176]
-#define COLOR_parser_tables___ParserTable___action_table_row172 SFT_parser_tables[177]
-#define COLOR_parser_tables___ParserTable___action_table_row173 SFT_parser_tables[178]
-#define COLOR_parser_tables___ParserTable___action_table_row174 SFT_parser_tables[179]
-#define COLOR_parser_tables___ParserTable___action_table_row175 SFT_parser_tables[180]
-#define COLOR_parser_tables___ParserTable___action_table_row176 SFT_parser_tables[181]
-#define COLOR_parser_tables___ParserTable___action_table_row177 SFT_parser_tables[182]
-#define COLOR_parser_tables___ParserTable___action_table_row178 SFT_parser_tables[183]
-#define COLOR_parser_tables___ParserTable___action_table_row179 SFT_parser_tables[184]
-#define COLOR_parser_tables___ParserTable___action_table_row180 SFT_parser_tables[185]
-#define COLOR_parser_tables___ParserTable___action_table_row181 SFT_parser_tables[186]
-#define COLOR_parser_tables___ParserTable___action_table_row182 SFT_parser_tables[187]
-#define COLOR_parser_tables___ParserTable___action_table_row183 SFT_parser_tables[188]
-#define COLOR_parser_tables___ParserTable___action_table_row184 SFT_parser_tables[189]
-#define COLOR_parser_tables___ParserTable___action_table_row185 SFT_parser_tables[190]
-#define COLOR_parser_tables___ParserTable___action_table_row186 SFT_parser_tables[191]
-#define COLOR_parser_tables___ParserTable___action_table_row187 SFT_parser_tables[192]
-#define COLOR_parser_tables___ParserTable___action_table_row188 SFT_parser_tables[193]
-#define COLOR_parser_tables___ParserTable___action_table_row189 SFT_parser_tables[194]
-#define COLOR_parser_tables___ParserTable___action_table_row190 SFT_parser_tables[195]
-#define COLOR_parser_tables___ParserTable___action_table_row191 SFT_parser_tables[196]
-#define COLOR_parser_tables___ParserTable___action_table_row192 SFT_parser_tables[197]
-#define COLOR_parser_tables___ParserTable___action_table_row193 SFT_parser_tables[198]
-#define COLOR_parser_tables___ParserTable___action_table_row194 SFT_parser_tables[199]
-#define COLOR_parser_tables___ParserTable___action_table_row195 SFT_parser_tables[200]
-#define COLOR_parser_tables___ParserTable___action_table_row196 SFT_parser_tables[201]
-#define COLOR_parser_tables___ParserTable___action_table_row197 SFT_parser_tables[202]
-#define COLOR_parser_tables___ParserTable___action_table_row198 SFT_parser_tables[203]
-#define COLOR_parser_tables___ParserTable___action_table_row199 SFT_parser_tables[204]
-#define COLOR_parser_tables___ParserTable___action_table_row200 SFT_parser_tables[205]
-#define COLOR_parser_tables___ParserTable___action_table_row201 SFT_parser_tables[206]
-#define COLOR_parser_tables___ParserTable___action_table_row202 SFT_parser_tables[207]
-#define COLOR_parser_tables___ParserTable___action_table_row203 SFT_parser_tables[208]
-#define COLOR_parser_tables___ParserTable___action_table_row204 SFT_parser_tables[209]
-#define COLOR_parser_tables___ParserTable___action_table_row205 SFT_parser_tables[210]
-#define COLOR_parser_tables___ParserTable___action_table_row206 SFT_parser_tables[211]
-#define COLOR_parser_tables___ParserTable___action_table_row207 SFT_parser_tables[212]
-#define COLOR_parser_tables___ParserTable___action_table_row208 SFT_parser_tables[213]
-#define COLOR_parser_tables___ParserTable___action_table_row209 SFT_parser_tables[214]
-#define COLOR_parser_tables___ParserTable___action_table_row210 SFT_parser_tables[215]
-#define COLOR_parser_tables___ParserTable___action_table_row211 SFT_parser_tables[216]
-#define COLOR_parser_tables___ParserTable___action_table_row212 SFT_parser_tables[217]
-#define COLOR_parser_tables___ParserTable___action_table_row213 SFT_parser_tables[218]
-#define COLOR_parser_tables___ParserTable___action_table_row214 SFT_parser_tables[219]
-#define COLOR_parser_tables___ParserTable___action_table_row215 SFT_parser_tables[220]
-#define COLOR_parser_tables___ParserTable___action_table_row216 SFT_parser_tables[221]
-#define COLOR_parser_tables___ParserTable___action_table_row217 SFT_parser_tables[222]
-#define COLOR_parser_tables___ParserTable___action_table_row218 SFT_parser_tables[223]
-#define COLOR_parser_tables___ParserTable___action_table_row219 SFT_parser_tables[224]
-#define COLOR_parser_tables___ParserTable___action_table_row220 SFT_parser_tables[225]
-#define COLOR_parser_tables___ParserTable___action_table_row221 SFT_parser_tables[226]
-#define COLOR_parser_tables___ParserTable___action_table_row222 SFT_parser_tables[227]
-#define COLOR_parser_tables___ParserTable___action_table_row223 SFT_parser_tables[228]
-#define COLOR_parser_tables___ParserTable___action_table_row224 SFT_parser_tables[229]
-#define COLOR_parser_tables___ParserTable___action_table_row225 SFT_parser_tables[230]
-#define COLOR_parser_tables___ParserTable___action_table_row226 SFT_parser_tables[231]
-#define COLOR_parser_tables___ParserTable___action_table_row227 SFT_parser_tables[232]
-#define COLOR_parser_tables___ParserTable___action_table_row228 SFT_parser_tables[233]
-#define COLOR_parser_tables___ParserTable___action_table_row229 SFT_parser_tables[234]
-#define COLOR_parser_tables___ParserTable___action_table_row230 SFT_parser_tables[235]
-#define COLOR_parser_tables___ParserTable___action_table_row231 SFT_parser_tables[236]
-#define COLOR_parser_tables___ParserTable___action_table_row232 SFT_parser_tables[237]
-#define COLOR_parser_tables___ParserTable___action_table_row233 SFT_parser_tables[238]
-#define COLOR_parser_tables___ParserTable___action_table_row234 SFT_parser_tables[239]
-#define COLOR_parser_tables___ParserTable___action_table_row235 SFT_parser_tables[240]
-#define COLOR_parser_tables___ParserTable___action_table_row236 SFT_parser_tables[241]
-#define COLOR_parser_tables___ParserTable___action_table_row237 SFT_parser_tables[242]
-#define COLOR_parser_tables___ParserTable___action_table_row238 SFT_parser_tables[243]
-#define COLOR_parser_tables___ParserTable___action_table_row239 SFT_parser_tables[244]
-#define COLOR_parser_tables___ParserTable___action_table_row240 SFT_parser_tables[245]
-#define COLOR_parser_tables___ParserTable___action_table_row241 SFT_parser_tables[246]
-#define COLOR_parser_tables___ParserTable___action_table_row242 SFT_parser_tables[247]
-#define COLOR_parser_tables___ParserTable___action_table_row243 SFT_parser_tables[248]
-#define COLOR_parser_tables___ParserTable___action_table_row244 SFT_parser_tables[249]
-#define COLOR_parser_tables___ParserTable___action_table_row245 SFT_parser_tables[250]
-#define COLOR_parser_tables___ParserTable___action_table_row246 SFT_parser_tables[251]
-#define COLOR_parser_tables___ParserTable___action_table_row247 SFT_parser_tables[252]
-#define COLOR_parser_tables___ParserTable___action_table_row248 SFT_parser_tables[253]
-#define COLOR_parser_tables___ParserTable___action_table_row249 SFT_parser_tables[254]
-#define COLOR_parser_tables___ParserTable___action_table_row250 SFT_parser_tables[255]
-#define COLOR_parser_tables___ParserTable___action_table_row251 SFT_parser_tables[256]
-#define COLOR_parser_tables___ParserTable___action_table_row252 SFT_parser_tables[257]
-#define COLOR_parser_tables___ParserTable___action_table_row253 SFT_parser_tables[258]
-#define COLOR_parser_tables___ParserTable___action_table_row254 SFT_parser_tables[259]
-#define COLOR_parser_tables___ParserTable___action_table_row255 SFT_parser_tables[260]
-#define COLOR_parser_tables___ParserTable___action_table_row256 SFT_parser_tables[261]
-#define COLOR_parser_tables___ParserTable___action_table_row257 SFT_parser_tables[262]
-#define COLOR_parser_tables___ParserTable___action_table_row258 SFT_parser_tables[263]
-#define COLOR_parser_tables___ParserTable___action_table_row259 SFT_parser_tables[264]
-#define COLOR_parser_tables___ParserTable___action_table_row260 SFT_parser_tables[265]
-#define COLOR_parser_tables___ParserTable___action_table_row261 SFT_parser_tables[266]
-#define COLOR_parser_tables___ParserTable___action_table_row262 SFT_parser_tables[267]
-#define COLOR_parser_tables___ParserTable___action_table_row263 SFT_parser_tables[268]
-#define COLOR_parser_tables___ParserTable___action_table_row264 SFT_parser_tables[269]
-#define COLOR_parser_tables___ParserTable___action_table_row265 SFT_parser_tables[270]
-#define COLOR_parser_tables___ParserTable___action_table_row266 SFT_parser_tables[271]
-#define COLOR_parser_tables___ParserTable___action_table_row267 SFT_parser_tables[272]
-#define COLOR_parser_tables___ParserTable___action_table_row268 SFT_parser_tables[273]
-#define COLOR_parser_tables___ParserTable___action_table_row269 SFT_parser_tables[274]
-#define COLOR_parser_tables___ParserTable___action_table_row270 SFT_parser_tables[275]
-#define COLOR_parser_tables___ParserTable___action_table_row271 SFT_parser_tables[276]
-#define COLOR_parser_tables___ParserTable___action_table_row272 SFT_parser_tables[277]
-#define COLOR_parser_tables___ParserTable___action_table_row273 SFT_parser_tables[278]
-#define COLOR_parser_tables___ParserTable___action_table_row274 SFT_parser_tables[279]
-#define COLOR_parser_tables___ParserTable___action_table_row275 SFT_parser_tables[280]
-#define COLOR_parser_tables___ParserTable___action_table_row276 SFT_parser_tables[281]
-#define COLOR_parser_tables___ParserTable___action_table_row277 SFT_parser_tables[282]
-#define COLOR_parser_tables___ParserTable___action_table_row278 SFT_parser_tables[283]
-#define COLOR_parser_tables___ParserTable___action_table_row279 SFT_parser_tables[284]
-#define COLOR_parser_tables___ParserTable___action_table_row280 SFT_parser_tables[285]
-#define COLOR_parser_tables___ParserTable___action_table_row281 SFT_parser_tables[286]
-#define COLOR_parser_tables___ParserTable___action_table_row282 SFT_parser_tables[287]
-#define COLOR_parser_tables___ParserTable___action_table_row283 SFT_parser_tables[288]
-#define COLOR_parser_tables___ParserTable___action_table_row284 SFT_parser_tables[289]
-#define COLOR_parser_tables___ParserTable___action_table_row285 SFT_parser_tables[290]
-#define COLOR_parser_tables___ParserTable___action_table_row286 SFT_parser_tables[291]
-#define COLOR_parser_tables___ParserTable___action_table_row287 SFT_parser_tables[292]
-#define COLOR_parser_tables___ParserTable___action_table_row288 SFT_parser_tables[293]
-#define COLOR_parser_tables___ParserTable___action_table_row289 SFT_parser_tables[294]
-#define COLOR_parser_tables___ParserTable___action_table_row290 SFT_parser_tables[295]
-#define COLOR_parser_tables___ParserTable___action_table_row291 SFT_parser_tables[296]
-#define COLOR_parser_tables___ParserTable___action_table_row292 SFT_parser_tables[297]
-#define COLOR_parser_tables___ParserTable___action_table_row293 SFT_parser_tables[298]
-#define COLOR_parser_tables___ParserTable___action_table_row294 SFT_parser_tables[299]
-#define COLOR_parser_tables___ParserTable___action_table_row295 SFT_parser_tables[300]
-#define COLOR_parser_tables___ParserTable___action_table_row296 SFT_parser_tables[301]
-#define COLOR_parser_tables___ParserTable___action_table_row297 SFT_parser_tables[302]
-#define COLOR_parser_tables___ParserTable___action_table_row298 SFT_parser_tables[303]
-#define COLOR_parser_tables___ParserTable___action_table_row299 SFT_parser_tables[304]
-#define COLOR_parser_tables___ParserTable___action_table_row300 SFT_parser_tables[305]
-#define COLOR_parser_tables___ParserTable___action_table_row301 SFT_parser_tables[306]
-#define COLOR_parser_tables___ParserTable___action_table_row302 SFT_parser_tables[307]
-#define COLOR_parser_tables___ParserTable___action_table_row303 SFT_parser_tables[308]
-#define COLOR_parser_tables___ParserTable___action_table_row304 SFT_parser_tables[309]
-#define COLOR_parser_tables___ParserTable___action_table_row305 SFT_parser_tables[310]
-#define COLOR_parser_tables___ParserTable___action_table_row306 SFT_parser_tables[311]
-#define COLOR_parser_tables___ParserTable___action_table_row307 SFT_parser_tables[312]
-#define COLOR_parser_tables___ParserTable___action_table_row308 SFT_parser_tables[313]
-#define COLOR_parser_tables___ParserTable___action_table_row309 SFT_parser_tables[314]
-#define COLOR_parser_tables___ParserTable___action_table_row310 SFT_parser_tables[315]
-#define COLOR_parser_tables___ParserTable___action_table_row311 SFT_parser_tables[316]
-#define COLOR_parser_tables___ParserTable___action_table_row312 SFT_parser_tables[317]
-#define COLOR_parser_tables___ParserTable___action_table_row313 SFT_parser_tables[318]
-#define COLOR_parser_tables___ParserTable___action_table_row314 SFT_parser_tables[319]
-#define COLOR_parser_tables___ParserTable___action_table_row315 SFT_parser_tables[320]
-#define COLOR_parser_tables___ParserTable___action_table_row316 SFT_parser_tables[321]
-#define COLOR_parser_tables___ParserTable___action_table_row317 SFT_parser_tables[322]
-#define COLOR_parser_tables___ParserTable___action_table_row318 SFT_parser_tables[323]
-#define COLOR_parser_tables___ParserTable___action_table_row319 SFT_parser_tables[324]
-#define COLOR_parser_tables___ParserTable___action_table_row320 SFT_parser_tables[325]
-#define COLOR_parser_tables___ParserTable___action_table_row321 SFT_parser_tables[326]
-#define COLOR_parser_tables___ParserTable___action_table_row322 SFT_parser_tables[327]
-#define COLOR_parser_tables___ParserTable___action_table_row323 SFT_parser_tables[328]
-#define COLOR_parser_tables___ParserTable___action_table_row324 SFT_parser_tables[329]
-#define COLOR_parser_tables___ParserTable___action_table_row325 SFT_parser_tables[330]
-#define COLOR_parser_tables___ParserTable___action_table_row326 SFT_parser_tables[331]
-#define COLOR_parser_tables___ParserTable___action_table_row327 SFT_parser_tables[332]
-#define COLOR_parser_tables___ParserTable___action_table_row328 SFT_parser_tables[333]
-#define COLOR_parser_tables___ParserTable___action_table_row329 SFT_parser_tables[334]
-#define COLOR_parser_tables___ParserTable___action_table_row330 SFT_parser_tables[335]
-#define COLOR_parser_tables___ParserTable___action_table_row331 SFT_parser_tables[336]
-#define COLOR_parser_tables___ParserTable___action_table_row332 SFT_parser_tables[337]
-#define COLOR_parser_tables___ParserTable___action_table_row333 SFT_parser_tables[338]
-#define COLOR_parser_tables___ParserTable___action_table_row334 SFT_parser_tables[339]
-#define COLOR_parser_tables___ParserTable___action_table_row335 SFT_parser_tables[340]
-#define COLOR_parser_tables___ParserTable___action_table_row336 SFT_parser_tables[341]
-#define COLOR_parser_tables___ParserTable___action_table_row337 SFT_parser_tables[342]
-#define COLOR_parser_tables___ParserTable___action_table_row338 SFT_parser_tables[343]
-#define COLOR_parser_tables___ParserTable___action_table_row339 SFT_parser_tables[344]
-#define COLOR_parser_tables___ParserTable___action_table_row340 SFT_parser_tables[345]
-#define COLOR_parser_tables___ParserTable___action_table_row341 SFT_parser_tables[346]
-#define COLOR_parser_tables___ParserTable___action_table_row342 SFT_parser_tables[347]
-#define COLOR_parser_tables___ParserTable___action_table_row343 SFT_parser_tables[348]
-#define COLOR_parser_tables___ParserTable___action_table_row344 SFT_parser_tables[349]
-#define COLOR_parser_tables___ParserTable___action_table_row345 SFT_parser_tables[350]
-#define COLOR_parser_tables___ParserTable___action_table_row346 SFT_parser_tables[351]
-#define COLOR_parser_tables___ParserTable___action_table_row347 SFT_parser_tables[352]
-#define COLOR_parser_tables___ParserTable___action_table_row348 SFT_parser_tables[353]
-#define COLOR_parser_tables___ParserTable___action_table_row349 SFT_parser_tables[354]
-#define COLOR_parser_tables___ParserTable___action_table_row350 SFT_parser_tables[355]
-#define COLOR_parser_tables___ParserTable___action_table_row351 SFT_parser_tables[356]
-#define COLOR_parser_tables___ParserTable___action_table_row352 SFT_parser_tables[357]
-#define COLOR_parser_tables___ParserTable___action_table_row353 SFT_parser_tables[358]
-#define COLOR_parser_tables___ParserTable___action_table_row354 SFT_parser_tables[359]
-#define COLOR_parser_tables___ParserTable___action_table_row355 SFT_parser_tables[360]
-#define COLOR_parser_tables___ParserTable___action_table_row356 SFT_parser_tables[361]
-#define COLOR_parser_tables___ParserTable___action_table_row357 SFT_parser_tables[362]
-#define COLOR_parser_tables___ParserTable___action_table_row358 SFT_parser_tables[363]
-#define COLOR_parser_tables___ParserTable___action_table_row359 SFT_parser_tables[364]
-#define COLOR_parser_tables___ParserTable___action_table_row360 SFT_parser_tables[365]
-#define COLOR_parser_tables___ParserTable___action_table_row361 SFT_parser_tables[366]
-#define COLOR_parser_tables___ParserTable___action_table_row362 SFT_parser_tables[367]
-#define COLOR_parser_tables___ParserTable___action_table_row363 SFT_parser_tables[368]
-#define COLOR_parser_tables___ParserTable___action_table_row364 SFT_parser_tables[369]
-#define COLOR_parser_tables___ParserTable___action_table_row365 SFT_parser_tables[370]
-#define COLOR_parser_tables___ParserTable___action_table_row366 SFT_parser_tables[371]
-#define COLOR_parser_tables___ParserTable___action_table_row367 SFT_parser_tables[372]
-#define COLOR_parser_tables___ParserTable___action_table_row368 SFT_parser_tables[373]
-#define COLOR_parser_tables___ParserTable___action_table_row369 SFT_parser_tables[374]
-#define COLOR_parser_tables___ParserTable___action_table_row370 SFT_parser_tables[375]
-#define COLOR_parser_tables___ParserTable___action_table_row371 SFT_parser_tables[376]
-#define COLOR_parser_tables___ParserTable___action_table_row372 SFT_parser_tables[377]
-#define COLOR_parser_tables___ParserTable___action_table_row373 SFT_parser_tables[378]
-#define COLOR_parser_tables___ParserTable___action_table_row374 SFT_parser_tables[379]
-#define COLOR_parser_tables___ParserTable___action_table_row375 SFT_parser_tables[380]
-#define COLOR_parser_tables___ParserTable___action_table_row376 SFT_parser_tables[381]
-#define COLOR_parser_tables___ParserTable___action_table_row377 SFT_parser_tables[382]
-#define COLOR_parser_tables___ParserTable___action_table_row378 SFT_parser_tables[383]
-#define COLOR_parser_tables___ParserTable___action_table_row379 SFT_parser_tables[384]
-#define COLOR_parser_tables___ParserTable___action_table_row380 SFT_parser_tables[385]
-#define COLOR_parser_tables___ParserTable___action_table_row381 SFT_parser_tables[386]
-#define COLOR_parser_tables___ParserTable___action_table_row382 SFT_parser_tables[387]
-#define COLOR_parser_tables___ParserTable___action_table_row383 SFT_parser_tables[388]
-#define COLOR_parser_tables___ParserTable___action_table_row384 SFT_parser_tables[389]
-#define COLOR_parser_tables___ParserTable___action_table_row385 SFT_parser_tables[390]
-#define COLOR_parser_tables___ParserTable___action_table_row386 SFT_parser_tables[391]
-#define COLOR_parser_tables___ParserTable___action_table_row387 SFT_parser_tables[392]
-#define COLOR_parser_tables___ParserTable___action_table_row388 SFT_parser_tables[393]
-#define COLOR_parser_tables___ParserTable___action_table_row389 SFT_parser_tables[394]
-#define COLOR_parser_tables___ParserTable___action_table_row390 SFT_parser_tables[395]
-#define COLOR_parser_tables___ParserTable___action_table_row391 SFT_parser_tables[396]
-#define COLOR_parser_tables___ParserTable___action_table_row392 SFT_parser_tables[397]
-#define COLOR_parser_tables___ParserTable___action_table_row393 SFT_parser_tables[398]
-#define COLOR_parser_tables___ParserTable___action_table_row394 SFT_parser_tables[399]
-#define COLOR_parser_tables___ParserTable___action_table_row395 SFT_parser_tables[400]
-#define COLOR_parser_tables___ParserTable___action_table_row396 SFT_parser_tables[401]
-#define COLOR_parser_tables___ParserTable___action_table_row397 SFT_parser_tables[402]
-#define COLOR_parser_tables___ParserTable___action_table_row398 SFT_parser_tables[403]
-#define COLOR_parser_tables___ParserTable___action_table_row399 SFT_parser_tables[404]
-#define COLOR_parser_tables___ParserTable___action_table_row400 SFT_parser_tables[405]
-#define COLOR_parser_tables___ParserTable___action_table_row401 SFT_parser_tables[406]
-#define COLOR_parser_tables___ParserTable___action_table_row402 SFT_parser_tables[407]
-#define COLOR_parser_tables___ParserTable___action_table_row403 SFT_parser_tables[408]
-#define COLOR_parser_tables___ParserTable___action_table_row404 SFT_parser_tables[409]
-#define COLOR_parser_tables___ParserTable___action_table_row405 SFT_parser_tables[410]
-#define COLOR_parser_tables___ParserTable___action_table_row406 SFT_parser_tables[411]
-#define COLOR_parser_tables___ParserTable___action_table_row407 SFT_parser_tables[412]
-#define COLOR_parser_tables___ParserTable___action_table_row408 SFT_parser_tables[413]
-#define COLOR_parser_tables___ParserTable___action_table_row409 SFT_parser_tables[414]
-#define COLOR_parser_tables___ParserTable___action_table_row410 SFT_parser_tables[415]
-#define COLOR_parser_tables___ParserTable___action_table_row411 SFT_parser_tables[416]
-#define COLOR_parser_tables___ParserTable___action_table_row412 SFT_parser_tables[417]
-#define COLOR_parser_tables___ParserTable___action_table_row413 SFT_parser_tables[418]
-#define COLOR_parser_tables___ParserTable___action_table_row414 SFT_parser_tables[419]
-#define COLOR_parser_tables___ParserTable___action_table_row415 SFT_parser_tables[420]
-#define COLOR_parser_tables___ParserTable___action_table_row416 SFT_parser_tables[421]
-#define COLOR_parser_tables___ParserTable___action_table_row417 SFT_parser_tables[422]
-#define COLOR_parser_tables___ParserTable___action_table_row418 SFT_parser_tables[423]
-#define COLOR_parser_tables___ParserTable___action_table_row419 SFT_parser_tables[424]
-#define COLOR_parser_tables___ParserTable___action_table_row420 SFT_parser_tables[425]
-#define COLOR_parser_tables___ParserTable___action_table_row421 SFT_parser_tables[426]
-#define COLOR_parser_tables___ParserTable___action_table_row422 SFT_parser_tables[427]
-#define COLOR_parser_tables___ParserTable___action_table_row423 SFT_parser_tables[428]
-#define COLOR_parser_tables___ParserTable___action_table_row424 SFT_parser_tables[429]
-#define COLOR_parser_tables___ParserTable___action_table_row425 SFT_parser_tables[430]
-#define COLOR_parser_tables___ParserTable___action_table_row426 SFT_parser_tables[431]
-#define COLOR_parser_tables___ParserTable___action_table_row427 SFT_parser_tables[432]
-#define COLOR_parser_tables___ParserTable___action_table_row428 SFT_parser_tables[433]
-#define COLOR_parser_tables___ParserTable___action_table_row429 SFT_parser_tables[434]
-#define COLOR_parser_tables___ParserTable___action_table_row430 SFT_parser_tables[435]
-#define COLOR_parser_tables___ParserTable___action_table_row431 SFT_parser_tables[436]
-#define COLOR_parser_tables___ParserTable___action_table_row432 SFT_parser_tables[437]
-#define COLOR_parser_tables___ParserTable___action_table_row433 SFT_parser_tables[438]
-#define COLOR_parser_tables___ParserTable___action_table_row434 SFT_parser_tables[439]
-#define COLOR_parser_tables___ParserTable___action_table_row435 SFT_parser_tables[440]
-#define COLOR_parser_tables___ParserTable___action_table_row436 SFT_parser_tables[441]
-#define COLOR_parser_tables___ParserTable___action_table_row437 SFT_parser_tables[442]
-#define COLOR_parser_tables___ParserTable___action_table_row438 SFT_parser_tables[443]
-#define COLOR_parser_tables___ParserTable___action_table_row439 SFT_parser_tables[444]
-#define COLOR_parser_tables___ParserTable___action_table_row440 SFT_parser_tables[445]
-#define COLOR_parser_tables___ParserTable___action_table_row441 SFT_parser_tables[446]
-#define COLOR_parser_tables___ParserTable___action_table_row442 SFT_parser_tables[447]
-#define COLOR_parser_tables___ParserTable___action_table_row443 SFT_parser_tables[448]
-#define COLOR_parser_tables___ParserTable___action_table_row444 SFT_parser_tables[449]
-#define COLOR_parser_tables___ParserTable___action_table_row445 SFT_parser_tables[450]
-#define COLOR_parser_tables___ParserTable___action_table_row446 SFT_parser_tables[451]
-#define COLOR_parser_tables___ParserTable___action_table_row447 SFT_parser_tables[452]
-#define COLOR_parser_tables___ParserTable___action_table_row448 SFT_parser_tables[453]
-#define COLOR_parser_tables___ParserTable___action_table_row449 SFT_parser_tables[454]
-#define COLOR_parser_tables___ParserTable___action_table_row450 SFT_parser_tables[455]
-#define COLOR_parser_tables___ParserTable___action_table_row451 SFT_parser_tables[456]
-#define COLOR_parser_tables___ParserTable___action_table_row452 SFT_parser_tables[457]
-#define COLOR_parser_tables___ParserTable___action_table_row453 SFT_parser_tables[458]
-#define COLOR_parser_tables___ParserTable___action_table_row454 SFT_parser_tables[459]
-#define COLOR_parser_tables___ParserTable___action_table_row455 SFT_parser_tables[460]
-#define COLOR_parser_tables___ParserTable___action_table_row456 SFT_parser_tables[461]
-#define COLOR_parser_tables___ParserTable___action_table_row457 SFT_parser_tables[462]
-#define COLOR_parser_tables___ParserTable___action_table_row458 SFT_parser_tables[463]
-#define COLOR_parser_tables___ParserTable___action_table_row459 SFT_parser_tables[464]
-#define COLOR_parser_tables___ParserTable___action_table_row460 SFT_parser_tables[465]
-#define COLOR_parser_tables___ParserTable___action_table_row461 SFT_parser_tables[466]
-#define COLOR_parser_tables___ParserTable___action_table_row462 SFT_parser_tables[467]
-#define COLOR_parser_tables___ParserTable___action_table_row463 SFT_parser_tables[468]
-#define COLOR_parser_tables___ParserTable___action_table_row464 SFT_parser_tables[469]
-#define COLOR_parser_tables___ParserTable___action_table_row465 SFT_parser_tables[470]
-#define COLOR_parser_tables___ParserTable___action_table_row466 SFT_parser_tables[471]
-#define COLOR_parser_tables___ParserTable___action_table_row467 SFT_parser_tables[472]
-#define COLOR_parser_tables___ParserTable___action_table_row468 SFT_parser_tables[473]
-#define COLOR_parser_tables___ParserTable___action_table_row469 SFT_parser_tables[474]
-#define COLOR_parser_tables___ParserTable___action_table_row470 SFT_parser_tables[475]
-#define COLOR_parser_tables___ParserTable___action_table_row471 SFT_parser_tables[476]
-#define COLOR_parser_tables___ParserTable___action_table_row472 SFT_parser_tables[477]
-#define COLOR_parser_tables___ParserTable___action_table_row473 SFT_parser_tables[478]
-#define COLOR_parser_tables___ParserTable___action_table_row474 SFT_parser_tables[479]
-#define COLOR_parser_tables___ParserTable___action_table_row475 SFT_parser_tables[480]
-#define COLOR_parser_tables___ParserTable___action_table_row476 SFT_parser_tables[481]
-#define COLOR_parser_tables___ParserTable___action_table_row477 SFT_parser_tables[482]
-#define COLOR_parser_tables___ParserTable___action_table_row478 SFT_parser_tables[483]
-#define COLOR_parser_tables___ParserTable___action_table_row479 SFT_parser_tables[484]
-#define COLOR_parser_tables___ParserTable___action_table_row480 SFT_parser_tables[485]
-#define COLOR_parser_tables___ParserTable___action_table_row481 SFT_parser_tables[486]
-#define COLOR_parser_tables___ParserTable___action_table_row482 SFT_parser_tables[487]
-#define COLOR_parser_tables___ParserTable___action_table_row483 SFT_parser_tables[488]
-#define COLOR_parser_tables___ParserTable___action_table_row484 SFT_parser_tables[489]
-#define COLOR_parser_tables___ParserTable___action_table_row485 SFT_parser_tables[490]
-#define COLOR_parser_tables___ParserTable___action_table_row486 SFT_parser_tables[491]
-#define COLOR_parser_tables___ParserTable___action_table_row487 SFT_parser_tables[492]
-#define COLOR_parser_tables___ParserTable___action_table_row488 SFT_parser_tables[493]
-#define COLOR_parser_tables___ParserTable___action_table_row489 SFT_parser_tables[494]
-#define COLOR_parser_tables___ParserTable___action_table_row490 SFT_parser_tables[495]
-#define COLOR_parser_tables___ParserTable___action_table_row491 SFT_parser_tables[496]
-#define COLOR_parser_tables___ParserTable___action_table_row492 SFT_parser_tables[497]
-#define COLOR_parser_tables___ParserTable___action_table_row493 SFT_parser_tables[498]
-#define COLOR_parser_tables___ParserTable___action_table_row494 SFT_parser_tables[499]
-#define COLOR_parser_tables___ParserTable___action_table_row495 SFT_parser_tables[500]
-#define COLOR_parser_tables___ParserTable___action_table_row496 SFT_parser_tables[501]
-#define COLOR_parser_tables___ParserTable___action_table_row497 SFT_parser_tables[502]
-#define COLOR_parser_tables___ParserTable___action_table_row498 SFT_parser_tables[503]
-#define COLOR_parser_tables___ParserTable___action_table_row499 SFT_parser_tables[504]
-#define COLOR_parser_tables___ParserTable___action_table_row500 SFT_parser_tables[505]
-#define COLOR_parser_tables___ParserTable___action_table_row501 SFT_parser_tables[506]
-#define COLOR_parser_tables___ParserTable___action_table_row502 SFT_parser_tables[507]
-#define COLOR_parser_tables___ParserTable___action_table_row503 SFT_parser_tables[508]
-#define COLOR_parser_tables___ParserTable___action_table_row504 SFT_parser_tables[509]
-#define COLOR_parser_tables___ParserTable___action_table_row505 SFT_parser_tables[510]
-#define COLOR_parser_tables___ParserTable___action_table_row506 SFT_parser_tables[511]
-#define COLOR_parser_tables___ParserTable___action_table_row507 SFT_parser_tables[512]
-#define COLOR_parser_tables___ParserTable___action_table_row508 SFT_parser_tables[513]
-#define COLOR_parser_tables___ParserTable___action_table_row509 SFT_parser_tables[514]
-#define COLOR_parser_tables___ParserTable___action_table_row510 SFT_parser_tables[515]
-#define COLOR_parser_tables___ParserTable___action_table_row511 SFT_parser_tables[516]
-#define COLOR_parser_tables___ParserTable___action_table_row512 SFT_parser_tables[517]
-#define COLOR_parser_tables___ParserTable___action_table_row513 SFT_parser_tables[518]
-#define COLOR_parser_tables___ParserTable___action_table_row514 SFT_parser_tables[519]
-#define COLOR_parser_tables___ParserTable___action_table_row515 SFT_parser_tables[520]
-#define COLOR_parser_tables___ParserTable___action_table_row516 SFT_parser_tables[521]
-#define COLOR_parser_tables___ParserTable___action_table_row517 SFT_parser_tables[522]
-#define COLOR_parser_tables___ParserTable___action_table_row518 SFT_parser_tables[523]
-#define COLOR_parser_tables___ParserTable___action_table_row519 SFT_parser_tables[524]
-#define COLOR_parser_tables___ParserTable___action_table_row520 SFT_parser_tables[525]
-#define COLOR_parser_tables___ParserTable___action_table_row521 SFT_parser_tables[526]
-#define COLOR_parser_tables___ParserTable___action_table_row522 SFT_parser_tables[527]
-#define COLOR_parser_tables___ParserTable___action_table_row523 SFT_parser_tables[528]
-#define COLOR_parser_tables___ParserTable___action_table_row524 SFT_parser_tables[529]
-#define COLOR_parser_tables___ParserTable___action_table_row525 SFT_parser_tables[530]
-#define COLOR_parser_tables___ParserTable___action_table_row526 SFT_parser_tables[531]
-#define COLOR_parser_tables___ParserTable___action_table_row527 SFT_parser_tables[532]
-#define COLOR_parser_tables___ParserTable___action_table_row528 SFT_parser_tables[533]
-#define COLOR_parser_tables___ParserTable___action_table_row529 SFT_parser_tables[534]
-#define COLOR_parser_tables___ParserTable___action_table_row530 SFT_parser_tables[535]
-#define COLOR_parser_tables___ParserTable___action_table_row531 SFT_parser_tables[536]
-#define COLOR_parser_tables___ParserTable___action_table_row532 SFT_parser_tables[537]
-#define COLOR_parser_tables___ParserTable___action_table_row533 SFT_parser_tables[538]
-#define COLOR_parser_tables___ParserTable___action_table_row534 SFT_parser_tables[539]
-#define COLOR_parser_tables___ParserTable___action_table_row535 SFT_parser_tables[540]
-#define COLOR_parser_tables___ParserTable___action_table_row536 SFT_parser_tables[541]
-#define COLOR_parser_tables___ParserTable___action_table_row537 SFT_parser_tables[542]
-#define COLOR_parser_tables___ParserTable___action_table_row538 SFT_parser_tables[543]
-#define COLOR_parser_tables___ParserTable___action_table_row539 SFT_parser_tables[544]
-#define COLOR_parser_tables___ParserTable___action_table_row540 SFT_parser_tables[545]
-#define COLOR_parser_tables___ParserTable___action_table_row541 SFT_parser_tables[546]
-#define COLOR_parser_tables___ParserTable___action_table_row542 SFT_parser_tables[547]
-#define COLOR_parser_tables___ParserTable___action_table_row543 SFT_parser_tables[548]
-#define COLOR_parser_tables___ParserTable___action_table_row544 SFT_parser_tables[549]
-#define COLOR_parser_tables___ParserTable___action_table_row545 SFT_parser_tables[550]
-#define COLOR_parser_tables___ParserTable___action_table_row546 SFT_parser_tables[551]
-#define COLOR_parser_tables___ParserTable___action_table_row547 SFT_parser_tables[552]
-#define COLOR_parser_tables___ParserTable___action_table_row548 SFT_parser_tables[553]
-#define COLOR_parser_tables___ParserTable___action_table_row549 SFT_parser_tables[554]
-#define COLOR_parser_tables___ParserTable___action_table_row550 SFT_parser_tables[555]
-#define COLOR_parser_tables___ParserTable___action_table_row551 SFT_parser_tables[556]
-#define COLOR_parser_tables___ParserTable___action_table_row552 SFT_parser_tables[557]
-#define COLOR_parser_tables___ParserTable___action_table_row553 SFT_parser_tables[558]
-#define COLOR_parser_tables___ParserTable___action_table_row554 SFT_parser_tables[559]
-#define COLOR_parser_tables___ParserTable___action_table_row555 SFT_parser_tables[560]
-#define COLOR_parser_tables___ParserTable___action_table_row556 SFT_parser_tables[561]
-#define COLOR_parser_tables___ParserTable___action_table_row557 SFT_parser_tables[562]
-#define COLOR_parser_tables___ParserTable___action_table_row558 SFT_parser_tables[563]
-#define COLOR_parser_tables___ParserTable___action_table_row559 SFT_parser_tables[564]
-#define COLOR_parser_tables___ParserTable___action_table_row560 SFT_parser_tables[565]
-#define COLOR_parser_tables___ParserTable___action_table_row561 SFT_parser_tables[566]
-#define COLOR_parser_tables___ParserTable___action_table_row562 SFT_parser_tables[567]
-#define COLOR_parser_tables___ParserTable___action_table_row563 SFT_parser_tables[568]
-#define COLOR_parser_tables___ParserTable___action_table_row564 SFT_parser_tables[569]
-#define COLOR_parser_tables___ParserTable___action_table_row565 SFT_parser_tables[570]
-#define COLOR_parser_tables___ParserTable___action_table_row566 SFT_parser_tables[571]
-#define COLOR_parser_tables___ParserTable___action_table_row567 SFT_parser_tables[572]
-#define COLOR_parser_tables___ParserTable___action_table_row568 SFT_parser_tables[573]
-#define COLOR_parser_tables___ParserTable___action_table_row569 SFT_parser_tables[574]
-#define COLOR_parser_tables___ParserTable___action_table_row570 SFT_parser_tables[575]
-#define COLOR_parser_tables___ParserTable___action_table_row571 SFT_parser_tables[576]
-#define COLOR_parser_tables___ParserTable___action_table_row572 SFT_parser_tables[577]
-#define COLOR_parser_tables___ParserTable___action_table_row573 SFT_parser_tables[578]
-#define COLOR_parser_tables___ParserTable___action_table_row574 SFT_parser_tables[579]
-#define COLOR_parser_tables___ParserTable___action_table_row575 SFT_parser_tables[580]
-#define COLOR_parser_tables___ParserTable___action_table_row576 SFT_parser_tables[581]
-#define COLOR_parser_tables___ParserTable___action_table_row577 SFT_parser_tables[582]
-#define COLOR_parser_tables___ParserTable___action_table_row578 SFT_parser_tables[583]
-#define COLOR_parser_tables___ParserTable___action_table_row579 SFT_parser_tables[584]
-#define COLOR_parser_tables___ParserTable___action_table_row580 SFT_parser_tables[585]
-#define COLOR_parser_tables___ParserTable___action_table_row581 SFT_parser_tables[586]
-#define COLOR_parser_tables___ParserTable___action_table_row582 SFT_parser_tables[587]
-#define COLOR_parser_tables___ParserTable___action_table_row583 SFT_parser_tables[588]
-#define COLOR_parser_tables___ParserTable___action_table_row584 SFT_parser_tables[589]
-#define COLOR_parser_tables___ParserTable___action_table_row585 SFT_parser_tables[590]
-#define COLOR_parser_tables___ParserTable___action_table_row586 SFT_parser_tables[591]
-#define COLOR_parser_tables___ParserTable___action_table_row587 SFT_parser_tables[592]
-#define COLOR_parser_tables___ParserTable___action_table_row588 SFT_parser_tables[593]
-#define COLOR_parser_tables___ParserTable___action_table_row589 SFT_parser_tables[594]
-#define COLOR_parser_tables___ParserTable___action_table_row590 SFT_parser_tables[595]
-#define COLOR_parser_tables___ParserTable___action_table_row591 SFT_parser_tables[596]
-#define COLOR_parser_tables___ParserTable___action_table_row592 SFT_parser_tables[597]
-#define COLOR_parser_tables___ParserTable___action_table_row593 SFT_parser_tables[598]
-#define COLOR_parser_tables___ParserTable___action_table_row594 SFT_parser_tables[599]
-#define COLOR_parser_tables___ParserTable___action_table_row595 SFT_parser_tables[600]
-#define COLOR_parser_tables___ParserTable___action_table_row596 SFT_parser_tables[601]
-#define COLOR_parser_tables___ParserTable___action_table_row597 SFT_parser_tables[602]
-#define COLOR_parser_tables___ParserTable___action_table_row598 SFT_parser_tables[603]
-#define COLOR_parser_tables___ParserTable___action_table_row599 SFT_parser_tables[604]
-#define COLOR_parser_tables___ParserTable___action_table_row600 SFT_parser_tables[605]
-#define COLOR_parser_tables___ParserTable___action_table_row601 SFT_parser_tables[606]
-#define COLOR_parser_tables___ParserTable___action_table_row602 SFT_parser_tables[607]
-#define COLOR_parser_tables___ParserTable___action_table_row603 SFT_parser_tables[608]
-#define COLOR_parser_tables___ParserTable___action_table_row604 SFT_parser_tables[609]
-#define COLOR_parser_tables___ParserTable___action_table_row605 SFT_parser_tables[610]
-#define COLOR_parser_tables___ParserTable___action_table_row606 SFT_parser_tables[611]
-#define COLOR_parser_tables___ParserTable___action_table_row607 SFT_parser_tables[612]
-#define COLOR_parser_tables___ParserTable___action_table_row608 SFT_parser_tables[613]
-#define COLOR_parser_tables___ParserTable___action_table_row609 SFT_parser_tables[614]
-#define COLOR_parser_tables___ParserTable___action_table_row610 SFT_parser_tables[615]
-#define COLOR_parser_tables___ParserTable___action_table_row611 SFT_parser_tables[616]
-#define COLOR_parser_tables___ParserTable___action_table_row612 SFT_parser_tables[617]
-#define COLOR_parser_tables___ParserTable___action_table_row613 SFT_parser_tables[618]
-#define COLOR_parser_tables___ParserTable___action_table_row614 SFT_parser_tables[619]
-#define COLOR_parser_tables___ParserTable___action_table_row615 SFT_parser_tables[620]
-#define COLOR_parser_tables___ParserTable___action_table_row616 SFT_parser_tables[621]
-#define COLOR_parser_tables___ParserTable___action_table_row617 SFT_parser_tables[622]
-#define COLOR_parser_tables___ParserTable___action_table_row618 SFT_parser_tables[623]
-#define COLOR_parser_tables___ParserTable___action_table_row619 SFT_parser_tables[624]
-#define COLOR_parser_tables___ParserTable___action_table_row620 SFT_parser_tables[625]
-#define COLOR_parser_tables___ParserTable___action_table_row621 SFT_parser_tables[626]
-#define COLOR_parser_tables___ParserTable___action_table_row622 SFT_parser_tables[627]
-#define COLOR_parser_tables___ParserTable___action_table_row623 SFT_parser_tables[628]
-#define COLOR_parser_tables___ParserTable___action_table_row624 SFT_parser_tables[629]
-#define COLOR_parser_tables___ParserTable___action_table_row625 SFT_parser_tables[630]
-#define COLOR_parser_tables___ParserTable___action_table_row626 SFT_parser_tables[631]
-#define COLOR_parser_tables___ParserTable___action_table_row627 SFT_parser_tables[632]
-#define COLOR_parser_tables___ParserTable___action_table_row628 SFT_parser_tables[633]
-#define COLOR_parser_tables___ParserTable___action_table_row629 SFT_parser_tables[634]
-#define COLOR_parser_tables___ParserTable___action_table_row630 SFT_parser_tables[635]
-#define COLOR_parser_tables___ParserTable___action_table_row631 SFT_parser_tables[636]
-#define COLOR_parser_tables___ParserTable___action_table_row632 SFT_parser_tables[637]
-#define COLOR_parser_tables___ParserTable___action_table_row633 SFT_parser_tables[638]
-#define COLOR_parser_tables___ParserTable___action_table_row634 SFT_parser_tables[639]
-#define COLOR_parser_tables___ParserTable___action_table_row635 SFT_parser_tables[640]
-#define COLOR_parser_tables___ParserTable___action_table_row636 SFT_parser_tables[641]
-#define COLOR_parser_tables___ParserTable___action_table_row637 SFT_parser_tables[642]
-#define COLOR_parser_tables___ParserTable___action_table_row638 SFT_parser_tables[643]
-#define COLOR_parser_tables___ParserTable___action_table_row639 SFT_parser_tables[644]
-#define COLOR_parser_tables___ParserTable___action_table_row640 SFT_parser_tables[645]
-#define COLOR_parser_tables___ParserTable___action_table_row641 SFT_parser_tables[646]
-#define COLOR_parser_tables___ParserTable___action_table_row642 SFT_parser_tables[647]
-#define COLOR_parser_tables___ParserTable___action_table_row643 SFT_parser_tables[648]
-#define COLOR_parser_tables___ParserTable___action_table_row644 SFT_parser_tables[649]
-#define COLOR_parser_tables___ParserTable___action_table_row645 SFT_parser_tables[650]
-#define COLOR_parser_tables___ParserTable___action_table_row646 SFT_parser_tables[651]
-#define COLOR_parser_tables___ParserTable___action_table_row647 SFT_parser_tables[652]
-#define COLOR_parser_tables___ParserTable___action_table_row648 SFT_parser_tables[653]
-#define COLOR_parser_tables___ParserTable___action_table_row649 SFT_parser_tables[654]
-#define COLOR_parser_tables___ParserTable___action_table_row650 SFT_parser_tables[655]
-#define COLOR_parser_tables___ParserTable___action_table_row651 SFT_parser_tables[656]
-#define COLOR_parser_tables___ParserTable___action_table_row652 SFT_parser_tables[657]
-#define COLOR_parser_tables___ParserTable___action_table_row653 SFT_parser_tables[658]
-#define COLOR_parser_tables___ParserTable___action_table_row654 SFT_parser_tables[659]
-#define COLOR_parser_tables___ParserTable___action_table_row655 SFT_parser_tables[660]
-#define COLOR_parser_tables___ParserTable___action_table_row656 SFT_parser_tables[661]
-#define COLOR_parser_tables___ParserTable___action_table_row657 SFT_parser_tables[662]
-#define COLOR_parser_tables___ParserTable___action_table_row658 SFT_parser_tables[663]
-#define COLOR_parser_tables___ParserTable___action_table_row659 SFT_parser_tables[664]
-#define COLOR_parser_tables___ParserTable___action_table_row660 SFT_parser_tables[665]
-#define COLOR_parser_tables___ParserTable___action_table_row661 SFT_parser_tables[666]
-#define COLOR_parser_tables___ParserTable___action_table_row662 SFT_parser_tables[667]
-#define COLOR_parser_tables___ParserTable___action_table_row663 SFT_parser_tables[668]
-#define COLOR_parser_tables___ParserTable___action_table_row664 SFT_parser_tables[669]
-#define COLOR_parser_tables___ParserTable___action_table_row665 SFT_parser_tables[670]
-#define COLOR_parser_tables___ParserTable___action_table_row666 SFT_parser_tables[671]
-#define COLOR_parser_tables___ParserTable___action_table_row667 SFT_parser_tables[672]
-#define COLOR_parser_tables___ParserTable___action_table_row668 SFT_parser_tables[673]
-#define COLOR_parser_tables___ParserTable___action_table_row669 SFT_parser_tables[674]
-#define COLOR_parser_tables___ParserTable___action_table_row670 SFT_parser_tables[675]
-#define COLOR_parser_tables___ParserTable___action_table_row671 SFT_parser_tables[676]
-#define COLOR_parser_tables___ParserTable___action_table_row672 SFT_parser_tables[677]
-#define COLOR_parser_tables___ParserTable___action_table_row673 SFT_parser_tables[678]
-#define COLOR_parser_tables___ParserTable___action_table_row674 SFT_parser_tables[679]
-#define COLOR_parser_tables___ParserTable___action_table_row675 SFT_parser_tables[680]
-#define COLOR_parser_tables___ParserTable___action_table_row676 SFT_parser_tables[681]
-#define COLOR_parser_tables___ParserTable___action_table_row677 SFT_parser_tables[682]
-#define COLOR_parser_tables___ParserTable___action_table_row678 SFT_parser_tables[683]
-#define COLOR_parser_tables___ParserTable___action_table_row679 SFT_parser_tables[684]
-#define COLOR_parser_tables___ParserTable___action_table_row680 SFT_parser_tables[685]
-#define COLOR_parser_tables___ParserTable___action_table_row681 SFT_parser_tables[686]
-#define COLOR_parser_tables___ParserTable___action_table_row682 SFT_parser_tables[687]
-#define COLOR_parser_tables___ParserTable___action_table_row683 SFT_parser_tables[688]
-#define COLOR_parser_tables___ParserTable___action_table_row684 SFT_parser_tables[689]
-#define COLOR_parser_tables___ParserTable___action_table_row685 SFT_parser_tables[690]
-#define COLOR_parser_tables___ParserTable___action_table_row686 SFT_parser_tables[691]
-#define COLOR_parser_tables___ParserTable___action_table_row687 SFT_parser_tables[692]
-#define COLOR_parser_tables___ParserTable___action_table_row688 SFT_parser_tables[693]
-#define COLOR_parser_tables___ParserTable___action_table_row689 SFT_parser_tables[694]
-#define COLOR_parser_tables___ParserTable___action_table_row690 SFT_parser_tables[695]
-#define COLOR_parser_tables___ParserTable___action_table_row691 SFT_parser_tables[696]
-#define COLOR_parser_tables___ParserTable___action_table_row692 SFT_parser_tables[697]
-#define COLOR_parser_tables___ParserTable___action_table_row693 SFT_parser_tables[698]
-#define COLOR_parser_tables___ParserTable___action_table_row694 SFT_parser_tables[699]
-#define COLOR_parser_tables___ParserTable___action_table_row695 SFT_parser_tables[700]
-#define COLOR_parser_tables___ParserTable___action_table_row696 SFT_parser_tables[701]
-#define COLOR_parser_tables___ParserTable___action_table_row697 SFT_parser_tables[702]
-#define COLOR_parser_tables___ParserTable___action_table_row698 SFT_parser_tables[703]
-#define COLOR_parser_tables___ParserTable___action_table_row699 SFT_parser_tables[704]
-#define COLOR_parser_tables___ParserTable___action_table_row700 SFT_parser_tables[705]
-#define COLOR_parser_tables___ParserTable___action_table_row701 SFT_parser_tables[706]
-#define COLOR_parser_tables___ParserTable___action_table_row702 SFT_parser_tables[707]
-#define COLOR_parser_tables___ParserTable___action_table_row703 SFT_parser_tables[708]
-#define COLOR_parser_tables___ParserTable___action_table_row704 SFT_parser_tables[709]
-#define COLOR_parser_tables___ParserTable___action_table_row705 SFT_parser_tables[710]
-#define COLOR_parser_tables___ParserTable___action_table_row706 SFT_parser_tables[711]
-#define COLOR_parser_tables___ParserTable___action_table_row707 SFT_parser_tables[712]
-#define COLOR_parser_tables___ParserTable___action_table_row708 SFT_parser_tables[713]
-#define COLOR_parser_tables___ParserTable___action_table_row709 SFT_parser_tables[714]
-#define COLOR_parser_tables___ParserTable___action_table_row710 SFT_parser_tables[715]
-#define COLOR_parser_tables___ParserTable___action_table_row711 SFT_parser_tables[716]
-#define COLOR_parser_tables___ParserTable___action_table_row712 SFT_parser_tables[717]
-#define COLOR_parser_tables___ParserTable___action_table_row713 SFT_parser_tables[718]
-#define COLOR_parser_tables___ParserTable___action_table_row714 SFT_parser_tables[719]
-#define COLOR_parser_tables___ParserTable___action_table_row715 SFT_parser_tables[720]
-#define COLOR_parser_tables___ParserTable___action_table_row716 SFT_parser_tables[721]
-#define COLOR_parser_tables___ParserTable___action_table_row717 SFT_parser_tables[722]
-#define COLOR_parser_tables___ParserTable___action_table_row718 SFT_parser_tables[723]
-#define COLOR_parser_tables___ParserTable___action_table_row719 SFT_parser_tables[724]
-#define COLOR_parser_tables___ParserTable___action_table_row720 SFT_parser_tables[725]
-#define COLOR_parser_tables___ParserTable___action_table_row721 SFT_parser_tables[726]
-#define COLOR_parser_tables___ParserTable___action_table_row722 SFT_parser_tables[727]
-#define COLOR_parser_tables___ParserTable___action_table_row723 SFT_parser_tables[728]
-#define COLOR_parser_tables___ParserTable___action_table_row724 SFT_parser_tables[729]
-#define COLOR_parser_tables___ParserTable___action_table_row725 SFT_parser_tables[730]
-#define COLOR_parser_tables___ParserTable___action_table_row726 SFT_parser_tables[731]
-#define COLOR_parser_tables___ParserTable___action_table_row727 SFT_parser_tables[732]
-#define COLOR_parser_tables___ParserTable___action_table_row728 SFT_parser_tables[733]
-#define COLOR_parser_tables___ParserTable___action_table_row729 SFT_parser_tables[734]
-#define COLOR_parser_tables___ParserTable___action_table_row730 SFT_parser_tables[735]
-#define COLOR_parser_tables___ParserTable___action_table_row731 SFT_parser_tables[736]
-#define COLOR_parser_tables___ParserTable___action_table_row732 SFT_parser_tables[737]
-#define COLOR_parser_tables___ParserTable___action_table_row733 SFT_parser_tables[738]
-#define COLOR_parser_tables___ParserTable___action_table_row734 SFT_parser_tables[739]
-#define COLOR_parser_tables___ParserTable___action_table_row735 SFT_parser_tables[740]
-#define COLOR_parser_tables___ParserTable___action_table_row736 SFT_parser_tables[741]
-#define COLOR_parser_tables___ParserTable___action_table_row737 SFT_parser_tables[742]
-#define COLOR_parser_tables___ParserTable___action_table_row738 SFT_parser_tables[743]
-#define COLOR_parser_tables___ParserTable___action_table_row739 SFT_parser_tables[744]
-#define COLOR_parser_tables___ParserTable___action_table_row740 SFT_parser_tables[745]
-#define COLOR_parser_tables___ParserTable___action_table_row741 SFT_parser_tables[746]
-#define COLOR_parser_tables___ParserTable___action_table_row742 SFT_parser_tables[747]
-#define COLOR_parser_tables___ParserTable___action_table_row743 SFT_parser_tables[748]
-#define COLOR_parser_tables___ParserTable___action_table_row744 SFT_parser_tables[749]
-#define COLOR_parser_tables___ParserTable___action_table_row745 SFT_parser_tables[750]
-#define COLOR_parser_tables___ParserTable___action_table_row746 SFT_parser_tables[751]
-#define COLOR_parser_tables___ParserTable___action_table_row747 SFT_parser_tables[752]
-#define COLOR_parser_tables___ParserTable___action_table_row748 SFT_parser_tables[753]
-#define COLOR_parser_tables___ParserTable___action_table_row749 SFT_parser_tables[754]
-#define COLOR_parser_tables___ParserTable___action_table_row750 SFT_parser_tables[755]
-#define COLOR_parser_tables___ParserTable___action_table_row751 SFT_parser_tables[756]
-#define COLOR_parser_tables___ParserTable___action_table_row752 SFT_parser_tables[757]
-#define COLOR_parser_tables___ParserTable___action_table_row753 SFT_parser_tables[758]
-#define COLOR_parser_tables___ParserTable___action_table_row754 SFT_parser_tables[759]
-#define COLOR_parser_tables___ParserTable___action_table_row755 SFT_parser_tables[760]
-#define COLOR_parser_tables___ParserTable___action_table_row756 SFT_parser_tables[761]
-#define COLOR_parser_tables___ParserTable___action_table_row757 SFT_parser_tables[762]
-#define COLOR_parser_tables___ParserTable___action_table_row758 SFT_parser_tables[763]
-#define COLOR_parser_tables___ParserTable___action_table_row759 SFT_parser_tables[764]
-#define COLOR_parser_tables___ParserTable___action_table_row760 SFT_parser_tables[765]
-#define COLOR_parser_tables___ParserTable___action_table_row761 SFT_parser_tables[766]
-#define COLOR_parser_tables___ParserTable___action_table_row762 SFT_parser_tables[767]
-#define COLOR_parser_tables___ParserTable___action_table_row763 SFT_parser_tables[768]
-#define COLOR_parser_tables___ParserTable___action_table_row764 SFT_parser_tables[769]
-#define COLOR_parser_tables___ParserTable___action_table_row765 SFT_parser_tables[770]
-#define COLOR_parser_tables___ParserTable___action_table_row766 SFT_parser_tables[771]
-#define COLOR_parser_tables___ParserTable___action_table_row767 SFT_parser_tables[772]
-#define COLOR_parser_tables___ParserTable___action_table_row768 SFT_parser_tables[773]
-#define COLOR_parser_tables___ParserTable___action_table_row769 SFT_parser_tables[774]
-#define COLOR_parser_tables___ParserTable___action_table_row770 SFT_parser_tables[775]
-#define COLOR_parser_tables___ParserTable___action_table_row771 SFT_parser_tables[776]
-#define COLOR_parser_tables___ParserTable___action_table_row772 SFT_parser_tables[777]
-#define COLOR_parser_tables___ParserTable___action_table_row773 SFT_parser_tables[778]
-#define COLOR_parser_tables___ParserTable___action_table_row774 SFT_parser_tables[779]
-#define COLOR_parser_tables___ParserTable___action_table_row775 SFT_parser_tables[780]
-#define COLOR_parser_tables___ParserTable___action_table_row776 SFT_parser_tables[781]
-#define COLOR_parser_tables___ParserTable___action_table_row777 SFT_parser_tables[782]
-#define COLOR_parser_tables___ParserTable___action_table_row778 SFT_parser_tables[783]
-#define COLOR_parser_tables___ParserTable___action_table_row779 SFT_parser_tables[784]
-#define COLOR_parser_tables___ParserTable___action_table_row780 SFT_parser_tables[785]
-#define COLOR_parser_tables___ParserTable___action_table_row781 SFT_parser_tables[786]
-#define COLOR_parser_tables___ParserTable___action_table_row782 SFT_parser_tables[787]
-#define COLOR_parser_tables___ParserTable___action_table_row783 SFT_parser_tables[788]
-#define COLOR_parser_tables___ParserTable___action_table_row784 SFT_parser_tables[789]
-#define COLOR_parser_tables___ParserTable___action_table_row785 SFT_parser_tables[790]
-#define COLOR_parser_tables___ParserTable___action_table_row786 SFT_parser_tables[791]
-#define COLOR_parser_tables___ParserTable___action_table_row787 SFT_parser_tables[792]
-#define COLOR_parser_tables___ParserTable___action_table_row788 SFT_parser_tables[793]
-#define COLOR_parser_tables___ParserTable___action_table_row789 SFT_parser_tables[794]
-#define COLOR_parser_tables___ParserTable___action_table_row790 SFT_parser_tables[795]
-#define COLOR_parser_tables___ParserTable___action_table_row791 SFT_parser_tables[796]
-#define COLOR_parser_tables___ParserTable___action_table_row792 SFT_parser_tables[797]
-#define COLOR_parser_tables___ParserTable___action_table_row793 SFT_parser_tables[798]
-#define COLOR_parser_tables___ParserTable___action_table_row794 SFT_parser_tables[799]
-#define COLOR_parser_tables___ParserTable___action_table_row795 SFT_parser_tables[800]
-#define COLOR_parser_tables___ParserTable___action_table_row796 SFT_parser_tables[801]
-#define COLOR_parser_tables___ParserTable___action_table_row797 SFT_parser_tables[802]
-#define COLOR_parser_tables___ParserTable___action_table_row798 SFT_parser_tables[803]
-#define COLOR_parser_tables___ParserTable___action_table_row799 SFT_parser_tables[804]
-#define COLOR_parser_tables___ParserTable___action_table_row800 SFT_parser_tables[805]
-#define COLOR_parser_tables___ParserTable___action_table_row801 SFT_parser_tables[806]
-#define COLOR_parser_tables___ParserTable___action_table_row802 SFT_parser_tables[807]
-#define COLOR_parser_tables___ParserTable___action_table_row803 SFT_parser_tables[808]
-#define COLOR_parser_tables___ParserTable___action_table_row804 SFT_parser_tables[809]
-#define COLOR_parser_tables___ParserTable___action_table_row805 SFT_parser_tables[810]
-#define COLOR_parser_tables___ParserTable___action_table_row806 SFT_parser_tables[811]
-#define COLOR_parser_tables___ParserTable___action_table_row807 SFT_parser_tables[812]
-#define COLOR_parser_tables___ParserTable___action_table_row808 SFT_parser_tables[813]
-#define COLOR_parser_tables___ParserTable___action_table_row809 SFT_parser_tables[814]
-#define COLOR_parser_tables___ParserTable___action_table_row810 SFT_parser_tables[815]
-#define COLOR_parser_tables___ParserTable___action_table_row811 SFT_parser_tables[816]
-#define COLOR_parser_tables___ParserTable___action_table_row812 SFT_parser_tables[817]
-#define COLOR_parser_tables___ParserTable___action_table_row813 SFT_parser_tables[818]
-#define COLOR_parser_tables___ParserTable___action_table_row814 SFT_parser_tables[819]
-#define COLOR_parser_tables___ParserTable___action_table_row815 SFT_parser_tables[820]
-#define COLOR_parser_tables___ParserTable___action_table_row816 SFT_parser_tables[821]
-#define COLOR_parser_tables___ParserTable___action_table_row817 SFT_parser_tables[822]
-#define COLOR_parser_tables___ParserTable___action_table_row818 SFT_parser_tables[823]
-#define COLOR_parser_tables___ParserTable___action_table_row819 SFT_parser_tables[824]
-#define COLOR_parser_tables___ParserTable___action_table_row820 SFT_parser_tables[825]
-#define COLOR_parser_tables___ParserTable___action_table_row821 SFT_parser_tables[826]
-#define COLOR_parser_tables___ParserTable___action_table_row822 SFT_parser_tables[827]
-#define COLOR_parser_tables___ParserTable___action_table_row823 SFT_parser_tables[828]
-#define COLOR_parser_tables___ParserTable___action_table_row824 SFT_parser_tables[829]
-#define COLOR_parser_tables___ParserTable___action_table_row825 SFT_parser_tables[830]
-#define COLOR_parser_tables___ParserTable___action_table_row826 SFT_parser_tables[831]
-#define COLOR_parser_tables___ParserTable___action_table_row827 SFT_parser_tables[832]
-#define COLOR_parser_tables___ParserTable___action_table_row828 SFT_parser_tables[833]
-#define COLOR_parser_tables___ParserTable___action_table_row829 SFT_parser_tables[834]
-#define COLOR_parser_tables___ParserTable___action_table_row830 SFT_parser_tables[835]
-#define COLOR_parser_tables___ParserTable___action_table_row831 SFT_parser_tables[836]
-#define COLOR_parser_tables___ParserTable___action_table_row832 SFT_parser_tables[837]
-#define COLOR_parser_tables___ParserTable___action_table_row833 SFT_parser_tables[838]
-#define COLOR_parser_tables___ParserTable___action_table_row834 SFT_parser_tables[839]
-#define COLOR_parser_tables___ParserTable___action_table_row835 SFT_parser_tables[840]
-#define COLOR_parser_tables___ParserTable___action_table_row836 SFT_parser_tables[841]
-#define COLOR_parser_tables___ParserTable___action_table_row837 SFT_parser_tables[842]
-#define COLOR_parser_tables___ParserTable___action_table_row838 SFT_parser_tables[843]
-#define COLOR_parser_tables___ParserTable___action_table_row839 SFT_parser_tables[844]
-#define COLOR_parser_tables___ParserTable___action_table_row840 SFT_parser_tables[845]
-#define COLOR_parser_tables___ParserTable___action_table_row841 SFT_parser_tables[846]
-#define COLOR_parser_tables___ParserTable___action_table_row842 SFT_parser_tables[847]
-#define COLOR_parser_tables___ParserTable___action_table_row843 SFT_parser_tables[848]
-#define COLOR_parser_tables___ParserTable___action_table_row844 SFT_parser_tables[849]
-#define COLOR_parser_tables___ParserTable___action_table_row845 SFT_parser_tables[850]
-#define COLOR_parser_tables___ParserTable___action_table_row846 SFT_parser_tables[851]
-#define COLOR_parser_tables___ParserTable___action_table_row847 SFT_parser_tables[852]
-#define COLOR_parser_tables___ParserTable___action_table_row848 SFT_parser_tables[853]
-#define COLOR_parser_tables___ParserTable___action_table_row849 SFT_parser_tables[854]
-#define COLOR_parser_tables___ParserTable___action_table_row850 SFT_parser_tables[855]
-#define COLOR_parser_tables___ParserTable___action_table_row851 SFT_parser_tables[856]
-#define COLOR_parser_tables___ParserTable___action_table_row852 SFT_parser_tables[857]
-#define COLOR_parser_tables___ParserTable___action_table_row853 SFT_parser_tables[858]
-#define COLOR_parser_tables___ParserTable___action_table_row854 SFT_parser_tables[859]
-#define COLOR_parser_tables___ParserTable___action_table_row855 SFT_parser_tables[860]
-#define COLOR_parser_tables___ParserTable___action_table_row856 SFT_parser_tables[861]
-#define COLOR_parser_tables___ParserTable___action_table_row857 SFT_parser_tables[862]
-#define COLOR_parser_tables___ParserTable___action_table_row858 SFT_parser_tables[863]
-#define COLOR_parser_tables___ParserTable___action_table_row859 SFT_parser_tables[864]
-#define COLOR_parser_tables___ParserTable___action_table_row860 SFT_parser_tables[865]
-#define COLOR_parser_tables___ParserTable___action_table_row861 SFT_parser_tables[866]
-#define COLOR_parser_tables___ParserTable___action_table_row862 SFT_parser_tables[867]
-#define COLOR_parser_tables___ParserTable___action_table_row863 SFT_parser_tables[868]
-#define COLOR_parser_tables___ParserTable___action_table_row864 SFT_parser_tables[869]
-#define COLOR_parser_tables___ParserTable___action_table_row865 SFT_parser_tables[870]
-#define COLOR_parser_tables___ParserTable___action_table_row866 SFT_parser_tables[871]
-#define COLOR_parser_tables___ParserTable___action_table_row867 SFT_parser_tables[872]
-#define COLOR_parser_tables___ParserTable___action_table_row868 SFT_parser_tables[873]
-#define COLOR_parser_tables___ParserTable___action_table_row869 SFT_parser_tables[874]
-#define COLOR_parser_tables___ParserTable___action_table_row870 SFT_parser_tables[875]
-#define COLOR_parser_tables___ParserTable___action_table_row871 SFT_parser_tables[876]
-#define COLOR_parser_tables___ParserTable___action_table_row872 SFT_parser_tables[877]
-#define COLOR_parser_tables___ParserTable___action_table_row873 SFT_parser_tables[878]
-#define COLOR_parser_tables___ParserTable___action_table_row874 SFT_parser_tables[879]
-#define COLOR_parser_tables___ParserTable___action_table_row875 SFT_parser_tables[880]
-#define COLOR_parser_tables___ParserTable___action_table_row876 SFT_parser_tables[881]
-#define COLOR_parser_tables___ParserTable___action_table_row877 SFT_parser_tables[882]
-#define COLOR_parser_tables___ParserTable___action_table_row878 SFT_parser_tables[883]
-#define COLOR_parser_tables___ParserTable___action_table_row879 SFT_parser_tables[884]
-#define COLOR_parser_tables___ParserTable___action_table_row880 SFT_parser_tables[885]
-#define COLOR_parser_tables___ParserTable___action_table_row881 SFT_parser_tables[886]
-#define COLOR_parser_tables___ParserTable___action_table_row882 SFT_parser_tables[887]
-#define COLOR_parser_tables___ParserTable___action_table_row883 SFT_parser_tables[888]
-#define COLOR_parser_tables___ParserTable___action_table_row884 SFT_parser_tables[889]
-#define COLOR_parser_tables___ParserTable___action_table_row885 SFT_parser_tables[890]
-#define COLOR_parser_tables___ParserTable___action_table_row886 SFT_parser_tables[891]
-#define COLOR_parser_tables___ParserTable___action_table_row887 SFT_parser_tables[892]
-#define COLOR_parser_tables___ParserTable___action_table_row888 SFT_parser_tables[893]
-#define COLOR_parser_tables___ParserTable___action_table_row889 SFT_parser_tables[894]
-#define COLOR_parser_tables___ParserTable___action_table_row890 SFT_parser_tables[895]
-#define COLOR_parser_tables___ParserTable___action_table_row891 SFT_parser_tables[896]
-#define COLOR_parser_tables___ParserTable___action_table_row892 SFT_parser_tables[897]
-#define COLOR_parser_tables___ParserTable___action_table_row893 SFT_parser_tables[898]
-#define COLOR_parser_tables___ParserTable___action_table_row894 SFT_parser_tables[899]
-#define COLOR_parser_tables___ParserTable___action_table_row895 SFT_parser_tables[900]
-#define COLOR_parser_tables___ParserTable___action_table_row896 SFT_parser_tables[901]
-#define COLOR_parser_tables___ParserTable___action_table_row897 SFT_parser_tables[902]
-#define COLOR_parser_tables___ParserTable___action_table_row898 SFT_parser_tables[903]
-#define COLOR_parser_tables___ParserTable___action_table_row899 SFT_parser_tables[904]
-#define COLOR_parser_tables___ParserTable___action_table_row900 SFT_parser_tables[905]
-#define COLOR_parser_tables___ParserTable___action_table_row901 SFT_parser_tables[906]
-#define COLOR_parser_tables___ParserTable___action_table_row902 SFT_parser_tables[907]
-#define COLOR_parser_tables___ParserTable___action_table_row903 SFT_parser_tables[908]
-#define COLOR_parser_tables___ParserTable___action_table_row904 SFT_parser_tables[909]
-#define COLOR_parser_tables___ParserTable___action_table_row905 SFT_parser_tables[910]
-#define COLOR_parser_tables___ParserTable___action_table_row906 SFT_parser_tables[911]
-#define COLOR_parser_tables___ParserTable___action_table_row907 SFT_parser_tables[912]
-#define COLOR_parser_tables___ParserTable___action_table_row908 SFT_parser_tables[913]
-#define COLOR_parser_tables___ParserTable___action_table_row909 SFT_parser_tables[914]
-#define COLOR_parser_tables___ParserTable___action_table_row910 SFT_parser_tables[915]
-#define COLOR_parser_tables___ParserTable___action_table_row911 SFT_parser_tables[916]
-#define COLOR_parser_tables___ParserTable___action_table_row912 SFT_parser_tables[917]
-#define COLOR_parser_tables___ParserTable___action_table_row913 SFT_parser_tables[918]
-#define COLOR_parser_tables___ParserTable___action_table_row914 SFT_parser_tables[919]
-#define COLOR_parser_tables___ParserTable___action_table_row915 SFT_parser_tables[920]
-#define COLOR_parser_tables___ParserTable___action_table_row916 SFT_parser_tables[921]
-#define COLOR_parser_tables___ParserTable___action_table_row917 SFT_parser_tables[922]
-#define COLOR_parser_tables___ParserTable___action_table_row918 SFT_parser_tables[923]
-#define COLOR_parser_tables___ParserTable___action_table_row919 SFT_parser_tables[924]
-#define COLOR_parser_tables___ParserTable___action_table_row920 SFT_parser_tables[925]
-#define COLOR_parser_tables___ParserTable___action_table_row921 SFT_parser_tables[926]
-#define COLOR_parser_tables___ParserTable___action_table_row922 SFT_parser_tables[927]
-#define COLOR_parser_tables___ParserTable___action_table_row923 SFT_parser_tables[928]
-#define COLOR_parser_tables___ParserTable___action_table_row924 SFT_parser_tables[929]
-#define COLOR_parser_tables___ParserTable___action_table_row925 SFT_parser_tables[930]
-#define COLOR_parser_tables___ParserTable___action_table_row926 SFT_parser_tables[931]
-#define COLOR_parser_tables___ParserTable___action_table_row927 SFT_parser_tables[932]
-#define COLOR_parser_tables___ParserTable___action_table_row928 SFT_parser_tables[933]
-#define COLOR_parser_tables___ParserTable___action_table_row929 SFT_parser_tables[934]
-#define COLOR_parser_tables___ParserTable___action_table_row930 SFT_parser_tables[935]
-#define COLOR_parser_tables___ParserTable___action_table_row931 SFT_parser_tables[936]
-#define COLOR_parser_tables___ParserTable___action_table_row932 SFT_parser_tables[937]
-#define COLOR_parser_tables___ParserTable___action_table_row933 SFT_parser_tables[938]
-#define COLOR_parser_tables___ParserTable___action_table_row934 SFT_parser_tables[939]
-#define COLOR_parser_tables___ParserTable___action_table_row935 SFT_parser_tables[940]
-#define COLOR_parser_tables___ParserTable___action_table_row936 SFT_parser_tables[941]
-#define COLOR_parser_tables___ParserTable___action_table_row937 SFT_parser_tables[942]
-#define COLOR_parser_tables___ParserTable___action_table_row938 SFT_parser_tables[943]
-#define COLOR_parser_tables___ParserTable___action_table_row939 SFT_parser_tables[944]
-#define COLOR_parser_tables___ParserTable___action_table_row940 SFT_parser_tables[945]
-#define COLOR_parser_tables___ParserTable___action_table_row941 SFT_parser_tables[946]
-#define COLOR_parser_tables___ParserTable___action_table_row942 SFT_parser_tables[947]
-#define COLOR_parser_tables___ParserTable___action_table_row943 SFT_parser_tables[948]
-#define COLOR_parser_tables___ParserTable___action_table_row944 SFT_parser_tables[949]
-#define COLOR_parser_tables___ParserTable___action_table_row945 SFT_parser_tables[950]
-#define COLOR_parser_tables___ParserTable___action_table_row946 SFT_parser_tables[951]
-#define COLOR_parser_tables___ParserTable___action_table_row947 SFT_parser_tables[952]
-#define COLOR_parser_tables___ParserTable___action_table_row948 SFT_parser_tables[953]
-#define COLOR_parser_tables___ParserTable___action_table_row949 SFT_parser_tables[954]
-#define COLOR_parser_tables___ParserTable___action_table_row950 SFT_parser_tables[955]
-#define COLOR_parser_tables___ParserTable___action_table_row951 SFT_parser_tables[956]
-#define COLOR_parser_tables___ParserTable___action_table_row952 SFT_parser_tables[957]
-#define COLOR_parser_tables___ParserTable___action_table_row953 SFT_parser_tables[958]
-#define COLOR_parser_tables___ParserTable___action_table_row954 SFT_parser_tables[959]
-#define COLOR_parser_tables___ParserTable___action_table_row955 SFT_parser_tables[960]
-#define COLOR_parser_tables___ParserTable___action_table_row956 SFT_parser_tables[961]
-#define COLOR_parser_tables___ParserTable___action_table_row957 SFT_parser_tables[962]
-#define COLOR_parser_tables___ParserTable___action_table_row958 SFT_parser_tables[963]
-#define COLOR_parser_tables___ParserTable___action_table_row959 SFT_parser_tables[964]
-#define COLOR_parser_tables___ParserTable___action_table_row960 SFT_parser_tables[965]
-#define COLOR_parser_tables___ParserTable___action_table_row961 SFT_parser_tables[966]
-#define COLOR_parser_tables___ParserTable___action_table_row962 SFT_parser_tables[967]
-#define COLOR_parser_tables___ParserTable___action_table_row963 SFT_parser_tables[968]
-#define COLOR_parser_tables___ParserTable___action_table_row964 SFT_parser_tables[969]
-#define COLOR_parser_tables___ParserTable___action_table_row965 SFT_parser_tables[970]
-#define COLOR_parser_tables___ParserTable___action_table_row966 SFT_parser_tables[971]
-#define COLOR_parser_tables___ParserTable___action_table_row967 SFT_parser_tables[972]
-#define COLOR_parser_tables___ParserTable___action_table_row968 SFT_parser_tables[973]
-#define COLOR_parser_tables___ParserTable___action_table_row969 SFT_parser_tables[974]
-#define COLOR_parser_tables___ParserTable___action_table_row970 SFT_parser_tables[975]
-#define COLOR_parser_tables___ParserTable___action_table_row971 SFT_parser_tables[976]
-#define COLOR_parser_tables___ParserTable___action_table_row972 SFT_parser_tables[977]
-#define COLOR_parser_tables___ParserTable___action_table_row973 SFT_parser_tables[978]
-#define COLOR_parser_tables___ParserTable___action_table_row974 SFT_parser_tables[979]
-#define COLOR_parser_tables___ParserTable___action_table_row975 SFT_parser_tables[980]
-#define COLOR_parser_tables___ParserTable___action_table_row976 SFT_parser_tables[981]
-#define COLOR_parser_tables___ParserTable___action_table_row977 SFT_parser_tables[982]
-#define COLOR_parser_tables___ParserTable___action_table_row978 SFT_parser_tables[983]
-#define COLOR_parser_tables___ParserTable___action_table_row979 SFT_parser_tables[984]
-#define COLOR_parser_tables___ParserTable___action_table_row980 SFT_parser_tables[985]
-#define COLOR_parser_tables___ParserTable___action_table_row981 SFT_parser_tables[986]
-#define COLOR_parser_tables___ParserTable___action_table_row982 SFT_parser_tables[987]
-#define COLOR_parser_tables___ParserTable___action_table_row983 SFT_parser_tables[988]
-#define COLOR_parser_tables___ParserTable___action_table_row984 SFT_parser_tables[989]
-#define COLOR_parser_tables___ParserTable___action_table_row985 SFT_parser_tables[990]
-#define COLOR_parser_tables___ParserTable___action_table_row986 SFT_parser_tables[991]
-#define COLOR_parser_tables___ParserTable___action_table_row987 SFT_parser_tables[992]
-#define COLOR_parser_tables___ParserTable___action_table_row988 SFT_parser_tables[993]
-#define COLOR_parser_tables___ParserTable___action_table_row989 SFT_parser_tables[994]
-#define COLOR_parser_tables___ParserTable___action_table_row990 SFT_parser_tables[995]
-#define COLOR_parser_tables___ParserTable___action_table_row991 SFT_parser_tables[996]
-#define COLOR_parser_tables___ParserTable___action_table_row992 SFT_parser_tables[997]
-#define COLOR_parser_tables___ParserTable___action_table_row993 SFT_parser_tables[998]
-#define COLOR_parser_tables___ParserTable___action_table_row994 SFT_parser_tables[999]
-#define COLOR_parser_tables___ParserTable___action_table_row995 SFT_parser_tables[1000]
-#define COLOR_parser_tables___ParserTable___action_table_row996 SFT_parser_tables[1001]
-#define COLOR_parser_tables___ParserTable___action_table_row997 SFT_parser_tables[1002]
-#define COLOR_parser_tables___ParserTable___action_table_row998 SFT_parser_tables[1003]
-#define COLOR_parser_tables___ParserTable___action_table_row999 SFT_parser_tables[1004]
-#define COLOR_parser_tables___ParserTable___action_table_row1000 SFT_parser_tables[1005]
-#define COLOR_parser_tables___ParserTable___action_table_row1001 SFT_parser_tables[1006]
-#define COLOR_parser_tables___ParserTable___action_table_row1002 SFT_parser_tables[1007]
-#define COLOR_parser_tables___ParserTable___action_table_row1003 SFT_parser_tables[1008]
-#define COLOR_parser_tables___ParserTable___action_table_row1004 SFT_parser_tables[1009]
-#define COLOR_parser_tables___ParserTable___action_table_row1005 SFT_parser_tables[1010]
-#define COLOR_parser_tables___ParserTable___action_table_row1006 SFT_parser_tables[1011]
-#define COLOR_parser_tables___ParserTable___action_table_row1007 SFT_parser_tables[1012]
-#define COLOR_parser_tables___ParserTable___action_table_row1008 SFT_parser_tables[1013]
-#define COLOR_parser_tables___ParserTable___action_table_row1009 SFT_parser_tables[1014]
-#define COLOR_parser_tables___ParserTable___action_table_row1010 SFT_parser_tables[1015]
-#define COLOR_parser_tables___ParserTable___action_table_row1011 SFT_parser_tables[1016]
-#define COLOR_parser_tables___ParserTable___action_table_row1012 SFT_parser_tables[1017]
-#define COLOR_parser_tables___ParserTable___action_table_row1013 SFT_parser_tables[1018]
-#define COLOR_parser_tables___ParserTable___action_table_row1014 SFT_parser_tables[1019]
-#define COLOR_parser_tables___ParserTable___action_table_row1015 SFT_parser_tables[1020]
-#define COLOR_parser_tables___ParserTable___action_table_row1016 SFT_parser_tables[1021]
-#define COLOR_parser_tables___ParserTable___action_table_row1017 SFT_parser_tables[1022]
-#define COLOR_parser_tables___ParserTable___action_table_row1018 SFT_parser_tables[1023]
-#define COLOR_parser_tables___ParserTable___action_table_row1019 SFT_parser_tables[1024]
-#define COLOR_parser_tables___ParserTable___action_table_row1020 SFT_parser_tables[1025]
-#define COLOR_parser_tables___ParserTable___action_table_row1021 SFT_parser_tables[1026]
-#define COLOR_parser_tables___ParserTable___action_table_row1022 SFT_parser_tables[1027]
-#define COLOR_parser_tables___ParserTable___action_table_row1023 SFT_parser_tables[1028]
-#define COLOR_parser_tables___ParserTable___action_table_row1024 SFT_parser_tables[1029]
-#define COLOR_parser_tables___ParserTable___action_table_row1025 SFT_parser_tables[1030]
-#define COLOR_parser_tables___ParserTable___action_table_row1026 SFT_parser_tables[1031]
-#define COLOR_parser_tables___ParserTable___action_table_row1027 SFT_parser_tables[1032]
-#define COLOR_parser_tables___ParserTable___action_table_row1028 SFT_parser_tables[1033]
-#define COLOR_parser_tables___ParserTable___action_table_row1029 SFT_parser_tables[1034]
-#define COLOR_parser_tables___ParserTable___action_table_row1030 SFT_parser_tables[1035]
-#define COLOR_parser_tables___ParserTable___action_table_row1031 SFT_parser_tables[1036]
-#define COLOR_parser_tables___ParserTable___action_table_row1032 SFT_parser_tables[1037]
-#define COLOR_parser_tables___ParserTable___action_table_row1033 SFT_parser_tables[1038]
-#define COLOR_parser_tables___ParserTable___action_table_row1034 SFT_parser_tables[1039]
-#define COLOR_parser_tables___ParserTable___action_table_row1035 SFT_parser_tables[1040]
-#define COLOR_parser_tables___ParserTable___action_table_row1036 SFT_parser_tables[1041]
-#define COLOR_parser_tables___ParserTable___action_table_row1037 SFT_parser_tables[1042]
-#define COLOR_parser_tables___ParserTable___action_table_row1038 SFT_parser_tables[1043]
-#define COLOR_parser_tables___ParserTable___action_table_row1039 SFT_parser_tables[1044]
-#define COLOR_parser_tables___ParserTable___action_table_row1040 SFT_parser_tables[1045]
-#define COLOR_parser_tables___ParserTable___action_table_row1041 SFT_parser_tables[1046]
-#define COLOR_parser_tables___ParserTable___action_table_row1042 SFT_parser_tables[1047]
-#define COLOR_parser_tables___ParserTable___action_table_row1043 SFT_parser_tables[1048]
-#define COLOR_parser_tables___ParserTable___action_table_row1044 SFT_parser_tables[1049]
-#define COLOR_parser_tables___ParserTable___action_table_row1045 SFT_parser_tables[1050]
-#define COLOR_parser_tables___ParserTable___action_table_row1046 SFT_parser_tables[1051]
-#define COLOR_parser_tables___ParserTable___action_table_row1047 SFT_parser_tables[1052]
-#define COLOR_parser_tables___ParserTable___action_table_row1048 SFT_parser_tables[1053]
-#define COLOR_parser_tables___ParserTable___action_table_row1049 SFT_parser_tables[1054]
-#define COLOR_parser_tables___ParserTable___action_table_row1050 SFT_parser_tables[1055]
-#define COLOR_parser_tables___ParserTable___action_table_row1051 SFT_parser_tables[1056]
-#define COLOR_parser_tables___ParserTable___action_table_row1052 SFT_parser_tables[1057]
-#define COLOR_parser_tables___ParserTable___action_table_row1053 SFT_parser_tables[1058]
-#define COLOR_parser_tables___ParserTable___action_table_row1054 SFT_parser_tables[1059]
-#define COLOR_parser_tables___ParserTable___action_table_row1055 SFT_parser_tables[1060]
-#define COLOR_parser_tables___ParserTable___action_table_row1056 SFT_parser_tables[1061]
-#define COLOR_parser_tables___ParserTable___action_table_row1057 SFT_parser_tables[1062]
-#define COLOR_parser_tables___ParserTable___action_table_row1058 SFT_parser_tables[1063]
-#define COLOR_parser_tables___ParserTable___action_table_row1059 SFT_parser_tables[1064]
-#define COLOR_parser_tables___ParserTable___action_table_row1060 SFT_parser_tables[1065]
-#define COLOR_parser_tables___ParserTable___action_table_row1061 SFT_parser_tables[1066]
-#define COLOR_parser_tables___ParserTable___action_table_row1062 SFT_parser_tables[1067]
-#define COLOR_parser_tables___ParserTable___action_table_row1063 SFT_parser_tables[1068]
-#define COLOR_parser_tables___ParserTable___action_table_row1064 SFT_parser_tables[1069]
-#define COLOR_parser_tables___ParserTable___action_table_row1065 SFT_parser_tables[1070]
-#define COLOR_parser_tables___ParserTable___action_table_row1066 SFT_parser_tables[1071]
-#define COLOR_parser_tables___ParserTable___action_table_row1067 SFT_parser_tables[1072]
-#define COLOR_parser_tables___ParserTable___action_table_row1068 SFT_parser_tables[1073]
-#define COLOR_parser_tables___ParserTable___action_table_row1069 SFT_parser_tables[1074]
-#define COLOR_parser_tables___ParserTable___action_table_row1070 SFT_parser_tables[1075]
-#define COLOR_parser_tables___ParserTable___action_table_row1071 SFT_parser_tables[1076]
-#define COLOR_parser_tables___ParserTable___action_table_row1072 SFT_parser_tables[1077]
-#define COLOR_parser_tables___ParserTable___action_table_row1073 SFT_parser_tables[1078]
-#define COLOR_parser_tables___ParserTable___action_table_row1074 SFT_parser_tables[1079]
-#define COLOR_parser_tables___ParserTable___action_table_row1075 SFT_parser_tables[1080]
-#define COLOR_parser_tables___ParserTable___action_table_row1076 SFT_parser_tables[1081]
-#define COLOR_parser_tables___ParserTable___action_table_row1077 SFT_parser_tables[1082]
-#define COLOR_parser_tables___ParserTable___action_table_row1078 SFT_parser_tables[1083]
-#define COLOR_parser_tables___ParserTable___action_table_row1079 SFT_parser_tables[1084]
-#define COLOR_parser_tables___ParserTable___action_table_row1080 SFT_parser_tables[1085]
-#define COLOR_parser_tables___ParserTable___action_table_row1081 SFT_parser_tables[1086]
-#define COLOR_parser_tables___ParserTable___action_table_row1082 SFT_parser_tables[1087]
-#define COLOR_parser_tables___ParserTable___action_table_row1083 SFT_parser_tables[1088]
-#define COLOR_parser_tables___ParserTable___action_table_row1084 SFT_parser_tables[1089]
-#define COLOR_parser_tables___ParserTable___action_table_row1085 SFT_parser_tables[1090]
-#define COLOR_parser_tables___ParserTable___action_table_row1086 SFT_parser_tables[1091]
-#define COLOR_parser_tables___ParserTable___action_table_row1087 SFT_parser_tables[1092]
-#define COLOR_parser_tables___ParserTable___action_table_row1088 SFT_parser_tables[1093]
-#define COLOR_parser_tables___ParserTable___action_table_row1089 SFT_parser_tables[1094]
-#define COLOR_parser_tables___ParserTable___action_table_row1090 SFT_parser_tables[1095]
-#define COLOR_parser_tables___ParserTable___action_table_row1091 SFT_parser_tables[1096]
-#define COLOR_parser_tables___ParserTable___action_table_row1092 SFT_parser_tables[1097]
-#define COLOR_parser_tables___ParserTable___action_table_row1093 SFT_parser_tables[1098]
-#define COLOR_parser_tables___ParserTable___action_table_row1094 SFT_parser_tables[1099]
-#define COLOR_parser_tables___ParserTable___action_table_row1095 SFT_parser_tables[1100]
-#define COLOR_parser_tables___ParserTable___action_table_row1096 SFT_parser_tables[1101]
-#define COLOR_parser_tables___ParserTable___action_table_row1097 SFT_parser_tables[1102]
-#define COLOR_parser_tables___ParserTable___action_table_row1098 SFT_parser_tables[1103]
-#define COLOR_parser_tables___ParserTable___action_table_row1099 SFT_parser_tables[1104]
-#define COLOR_parser_tables___ParserTable___action_table_row1100 SFT_parser_tables[1105]
-#define COLOR_parser_tables___ParserTable___action_table_row1101 SFT_parser_tables[1106]
-#define COLOR_parser_tables___ParserTable___action_table_row1102 SFT_parser_tables[1107]
-#define COLOR_parser_tables___ParserTable___action_table_row1103 SFT_parser_tables[1108]
-#define COLOR_parser_tables___ParserTable___action_table_row1104 SFT_parser_tables[1109]
-#define COLOR_parser_tables___ParserTable___action_table_row1105 SFT_parser_tables[1110]
-#define COLOR_parser_tables___ParserTable___action_table_row1106 SFT_parser_tables[1111]
-#define COLOR_parser_tables___ParserTable___action_table_row1107 SFT_parser_tables[1112]
-#define COLOR_parser_tables___ParserTable___action_table_row1108 SFT_parser_tables[1113]
-#define COLOR_parser_tables___ParserTable___action_table_row1109 SFT_parser_tables[1114]
-#define COLOR_parser_tables___ParserTable___action_table_row1110 SFT_parser_tables[1115]
-#define COLOR_parser_tables___ParserTable___action_table_row1111 SFT_parser_tables[1116]
-#define COLOR_parser_tables___ParserTable___action_table_row1112 SFT_parser_tables[1117]
-#define COLOR_parser_tables___ParserTable___action_table_row1113 SFT_parser_tables[1118]
-#define COLOR_parser_tables___ParserTable___action_table_row1114 SFT_parser_tables[1119]
-#define COLOR_parser_tables___ParserTable___action_table_row1115 SFT_parser_tables[1120]
-#define COLOR_parser_tables___ParserTable___action_table_row1116 SFT_parser_tables[1121]
-#define COLOR_parser_tables___ParserTable___action_table_row1117 SFT_parser_tables[1122]
-#define COLOR_parser_tables___ParserTable___action_table_row1118 SFT_parser_tables[1123]
-#define COLOR_parser_tables___ParserTable___action_table_row1119 SFT_parser_tables[1124]
-#define COLOR_parser_tables___ParserTable___action_table_row1120 SFT_parser_tables[1125]
-#define COLOR_parser_tables___ParserTable___action_table_row1121 SFT_parser_tables[1126]
-#define COLOR_parser_tables___ParserTable___action_table_row1122 SFT_parser_tables[1127]
-#define COLOR_parser_tables___ParserTable___action_table_row1123 SFT_parser_tables[1128]
-#define COLOR_parser_tables___ParserTable___action_table_row1124 SFT_parser_tables[1129]
-#define COLOR_parser_tables___ParserTable___action_table_row1125 SFT_parser_tables[1130]
-#define COLOR_parser_tables___ParserTable___action_table_row1126 SFT_parser_tables[1131]
-#define COLOR_parser_tables___ParserTable___action_table_row1127 SFT_parser_tables[1132]
-#define COLOR_parser_tables___ParserTable___action_table_row1128 SFT_parser_tables[1133]
-#define COLOR_parser_tables___ParserTable___action_table_row1129 SFT_parser_tables[1134]
-#define COLOR_parser_tables___ParserTable___action_table_row1130 SFT_parser_tables[1135]
-#define COLOR_parser_tables___ParserTable___action_table_row1131 SFT_parser_tables[1136]
-#define COLOR_parser_tables___ParserTable___action_table_row1132 SFT_parser_tables[1137]
-#define COLOR_parser_tables___ParserTable___action_table_row1133 SFT_parser_tables[1138]
-#define COLOR_parser_tables___ParserTable___action_table_row1134 SFT_parser_tables[1139]
-#define COLOR_parser_tables___ParserTable___action_table_row1135 SFT_parser_tables[1140]
-#define COLOR_parser_tables___ParserTable___action_table_row1136 SFT_parser_tables[1141]
-#define COLOR_parser_tables___ParserTable___action_table_row1137 SFT_parser_tables[1142]
-#define COLOR_parser_tables___ParserTable___action_table_row1138 SFT_parser_tables[1143]
-#define COLOR_parser_tables___ParserTable___action_table_row1139 SFT_parser_tables[1144]
-#define COLOR_parser_tables___ParserTable___action_table_row1140 SFT_parser_tables[1145]
-#define COLOR_parser_tables___ParserTable___action_table_row1141 SFT_parser_tables[1146]
-#define COLOR_parser_tables___ParserTable___action_table_row1142 SFT_parser_tables[1147]
-#define COLOR_parser_tables___ParserTable___action_table_row1143 SFT_parser_tables[1148]
-#define COLOR_parser_tables___ParserTable___action_table_row1144 SFT_parser_tables[1149]
-#define COLOR_parser_tables___ParserTable___action_table_row1145 SFT_parser_tables[1150]
-#define COLOR_parser_tables___ParserTable___action_table_row1146 SFT_parser_tables[1151]
-#define COLOR_parser_tables___ParserTable___action_table_row1147 SFT_parser_tables[1152]
-#define COLOR_parser_tables___ParserTable___action_table_row1148 SFT_parser_tables[1153]
-#define COLOR_parser_tables___ParserTable___action_table_row1149 SFT_parser_tables[1154]
-#define COLOR_parser_tables___ParserTable___action_table_row1150 SFT_parser_tables[1155]
-#define COLOR_parser_tables___ParserTable___action_table_row1151 SFT_parser_tables[1156]
-#define COLOR_parser_tables___ParserTable___action_table_row1152 SFT_parser_tables[1157]
-#define COLOR_parser_tables___ParserTable___action_table_row1153 SFT_parser_tables[1158]
-#define COLOR_parser_tables___ParserTable___action_table_row1154 SFT_parser_tables[1159]
-#define COLOR_parser_tables___ParserTable___action_table_row1155 SFT_parser_tables[1160]
-#define COLOR_parser_tables___ParserTable___action_table_row1156 SFT_parser_tables[1161]
-#define COLOR_parser_tables___ParserTable___action_table_row1157 SFT_parser_tables[1162]
-#define COLOR_parser_tables___ParserTable___action_table_row1158 SFT_parser_tables[1163]
-#define COLOR_parser_tables___ParserTable___action_table_row1159 SFT_parser_tables[1164]
-#define COLOR_parser_tables___ParserTable___action_table_row1160 SFT_parser_tables[1165]
-#define COLOR_parser_tables___ParserTable___action_table_row1161 SFT_parser_tables[1166]
-#define COLOR_parser_tables___ParserTable___action_table_row1162 SFT_parser_tables[1167]
-#define COLOR_parser_tables___ParserTable___action_table_row1163 SFT_parser_tables[1168]
-#define COLOR_parser_tables___ParserTable___action_table_row1164 SFT_parser_tables[1169]
-#define COLOR_parser_tables___ParserTable___action_table_row1165 SFT_parser_tables[1170]
-#define COLOR_parser_tables___ParserTable___action_table_row1166 SFT_parser_tables[1171]
-#define COLOR_parser_tables___ParserTable___action_table_row1167 SFT_parser_tables[1172]
-#define COLOR_parser_tables___ParserTable___action_table_row1168 SFT_parser_tables[1173]
-#define COLOR_parser_tables___ParserTable___action_table_row1169 SFT_parser_tables[1174]
-#define COLOR_parser_tables___ParserTable___action_table_row1170 SFT_parser_tables[1175]
-#define COLOR_parser_tables___ParserTable___action_table_row1171 SFT_parser_tables[1176]
-#define COLOR_parser_tables___ParserTable___action_table_row1172 SFT_parser_tables[1177]
-#define COLOR_parser_tables___ParserTable___action_table_row1173 SFT_parser_tables[1178]
-#define COLOR_parser_tables___ParserTable___action_table_row1174 SFT_parser_tables[1179]
-#define COLOR_parser_tables___ParserTable___action_table_row1175 SFT_parser_tables[1180]
-#define COLOR_parser_tables___ParserTable___action_table_row1176 SFT_parser_tables[1181]
-#define COLOR_parser_tables___ParserTable___action_table_row1177 SFT_parser_tables[1182]
-#define COLOR_parser_tables___ParserTable___action_table_row1178 SFT_parser_tables[1183]
-#define COLOR_parser_tables___ParserTable___action_table_row1179 SFT_parser_tables[1184]
-#define COLOR_parser_tables___ParserTable___action_table_row1180 SFT_parser_tables[1185]
-#define COLOR_parser_tables___ParserTable___action_table_row1181 SFT_parser_tables[1186]
-#define COLOR_parser_tables___ParserTable___action_table_row1182 SFT_parser_tables[1187]
-#define COLOR_parser_tables___ParserTable___action_table_row1183 SFT_parser_tables[1188]
-#define COLOR_parser_tables___ParserTable___action_table_row1184 SFT_parser_tables[1189]
-#define COLOR_parser_tables___ParserTable___action_table_row1185 SFT_parser_tables[1190]
-#define COLOR_parser_tables___ParserTable___action_table_row1186 SFT_parser_tables[1191]
-#define COLOR_parser_tables___ParserTable___action_table_row1187 SFT_parser_tables[1192]
-#define COLOR_parser_tables___ParserTable___action_table_row1188 SFT_parser_tables[1193]
-#define COLOR_parser_tables___ParserTable___action_table_row1189 SFT_parser_tables[1194]
-#define COLOR_parser_tables___ParserTable___action_table_row1190 SFT_parser_tables[1195]
-#define COLOR_parser_tables___ParserTable___action_table_row1191 SFT_parser_tables[1196]
-#define COLOR_parser_tables___ParserTable___action_table_row1192 SFT_parser_tables[1197]
-#define COLOR_parser_tables___ParserTable___action_table_row1193 SFT_parser_tables[1198]
-#define COLOR_parser_tables___ParserTable___action_table_row1194 SFT_parser_tables[1199]
-#define COLOR_parser_tables___ParserTable___action_table_row1195 SFT_parser_tables[1200]
-#define COLOR_parser_tables___ParserTable___action_table_row1196 SFT_parser_tables[1201]
-#define COLOR_parser_tables___ParserTable___action_table_row1197 SFT_parser_tables[1202]
-#define COLOR_parser_tables___ParserTable___action_table_row1198 SFT_parser_tables[1203]
-#define COLOR_parser_tables___ParserTable___action_table_row1199 SFT_parser_tables[1204]
-#define COLOR_parser_tables___ParserTable___action_table_row1200 SFT_parser_tables[1205]
-#define COLOR_parser_tables___ParserTable___action_table_row1201 SFT_parser_tables[1206]
-#define COLOR_parser_tables___ParserTable___action_table_row1202 SFT_parser_tables[1207]
-#define COLOR_parser_tables___ParserTable___action_table_row1203 SFT_parser_tables[1208]
-#define COLOR_parser_tables___ParserTable___action_table_row1204 SFT_parser_tables[1209]
-#define COLOR_parser_tables___ParserTable___action_table_row1205 SFT_parser_tables[1210]
-#define COLOR_parser_tables___ParserTable___action_table_row1206 SFT_parser_tables[1211]
-#define COLOR_parser_tables___ParserTable___action_table_row1207 SFT_parser_tables[1212]
-#define COLOR_parser_tables___ParserTable___action_table_row1208 SFT_parser_tables[1213]
-#define COLOR_parser_tables___ParserTable___action_table_row1209 SFT_parser_tables[1214]
-#define COLOR_parser_tables___ParserTable___action_table_row1210 SFT_parser_tables[1215]
-#define COLOR_parser_tables___ParserTable___action_table_row1211 SFT_parser_tables[1216]
-#define COLOR_parser_tables___ParserTable___action_table_row1212 SFT_parser_tables[1217]
-#define COLOR_parser_tables___ParserTable___action_table_row1213 SFT_parser_tables[1218]
-#define COLOR_parser_tables___ParserTable___action_table_row1214 SFT_parser_tables[1219]
-#define COLOR_parser_tables___ParserTable___action_table_row1215 SFT_parser_tables[1220]
-#define COLOR_parser_tables___ParserTable___action_table_row1216 SFT_parser_tables[1221]
-#define COLOR_parser_tables___ParserTable___action_table_row1217 SFT_parser_tables[1222]
-#define COLOR_parser_tables___ParserTable___action_table_row1218 SFT_parser_tables[1223]
-#define COLOR_parser_tables___ParserTable___action_table_row1219 SFT_parser_tables[1224]
-#define COLOR_parser_tables___ParserTable___action_table_row1220 SFT_parser_tables[1225]
-#define COLOR_parser_tables___ParserTable___action_table_row1221 SFT_parser_tables[1226]
-#define COLOR_parser_tables___ParserTable___action_table_row1222 SFT_parser_tables[1227]
-#define COLOR_parser_tables___ParserTable___action_table_row1223 SFT_parser_tables[1228]
-#define COLOR_parser_tables___ParserTable___action_table_row1224 SFT_parser_tables[1229]
-#define COLOR_parser_tables___ParserTable___action_table_row1225 SFT_parser_tables[1230]
-#define COLOR_parser_tables___ParserTable___action_table_row1226 SFT_parser_tables[1231]
-#define COLOR_parser_tables___ParserTable___action_table_row1227 SFT_parser_tables[1232]
-#define COLOR_parser_tables___ParserTable___action_table_row1228 SFT_parser_tables[1233]
-#define COLOR_parser_tables___ParserTable___action_table_row1229 SFT_parser_tables[1234]
-#define COLOR_parser_tables___ParserTable___action_table_row1230 SFT_parser_tables[1235]
-#define COLOR_parser_tables___ParserTable___action_table_row1231 SFT_parser_tables[1236]
-#define COLOR_parser_tables___ParserTable___action_table_row1232 SFT_parser_tables[1237]
-#define COLOR_parser_tables___ParserTable___action_table_row1233 SFT_parser_tables[1238]
-#define COLOR_parser_tables___ParserTable___action_table_row1234 SFT_parser_tables[1239]
-#define COLOR_parser_tables___ParserTable___action_table_row1235 SFT_parser_tables[1240]
-#define COLOR_parser_tables___ParserTable___action_table_row1236 SFT_parser_tables[1241]
-#define COLOR_parser_tables___ParserTable___action_table_row1237 SFT_parser_tables[1242]
-#define COLOR_parser_tables___ParserTable___action_table_row1238 SFT_parser_tables[1243]
-#define COLOR_parser_tables___ParserTable___action_table_row1239 SFT_parser_tables[1244]
-#define COLOR_parser_tables___ParserTable___action_table_row1240 SFT_parser_tables[1245]
-#define COLOR_parser_tables___ParserTable___action_table_row1241 SFT_parser_tables[1246]
-#define COLOR_parser_tables___ParserTable___action_table_row1242 SFT_parser_tables[1247]
-#define COLOR_parser_tables___ParserTable___action_table_row1243 SFT_parser_tables[1248]
-#define COLOR_parser_tables___ParserTable___action_table_row1244 SFT_parser_tables[1249]
-#define COLOR_parser_tables___ParserTable___action_table_row1245 SFT_parser_tables[1250]
-#define COLOR_parser_tables___ParserTable___action_table_row1246 SFT_parser_tables[1251]
-#define COLOR_parser_tables___ParserTable___action_table_row1247 SFT_parser_tables[1252]
-#define COLOR_parser_tables___ParserTable___action_table_row1248 SFT_parser_tables[1253]
-#define COLOR_parser_tables___ParserTable___action_table_row1249 SFT_parser_tables[1254]
-#define COLOR_parser_tables___ParserTable___action_table_row1250 SFT_parser_tables[1255]
-#define COLOR_parser_tables___ParserTable___action_table_row1251 SFT_parser_tables[1256]
-#define COLOR_parser_tables___ParserTable___action_table_row1252 SFT_parser_tables[1257]
-#define COLOR_parser_tables___ParserTable___action_table_row1253 SFT_parser_tables[1258]
-#define COLOR_parser_tables___ParserTable___action_table_row1254 SFT_parser_tables[1259]
-#define COLOR_parser_tables___ParserTable___action_table_row1255 SFT_parser_tables[1260]
-#define COLOR_parser_tables___ParserTable___action_table_row1256 SFT_parser_tables[1261]
-#define COLOR_parser_tables___ParserTable___action_table_row1257 SFT_parser_tables[1262]
-#define COLOR_parser_tables___ParserTable___action_table_row1258 SFT_parser_tables[1263]
-#define COLOR_parser_tables___ParserTable___action_table_row1259 SFT_parser_tables[1264]
-#define COLOR_parser_tables___ParserTable___action_table_row1260 SFT_parser_tables[1265]
-#define COLOR_parser_tables___ParserTable___action_table_row1261 SFT_parser_tables[1266]
-#define COLOR_parser_tables___ParserTable___action_table_row1262 SFT_parser_tables[1267]
-#define COLOR_parser_tables___ParserTable___action_table_row1263 SFT_parser_tables[1268]
-#define COLOR_parser_tables___ParserTable___action_table_row1264 SFT_parser_tables[1269]
-#define COLOR_parser_tables___ParserTable___action_table_row1265 SFT_parser_tables[1270]
-#define COLOR_parser_tables___ParserTable___action_table_row1266 SFT_parser_tables[1271]
-#define COLOR_parser_tables___ParserTable___action_table_row1267 SFT_parser_tables[1272]
-#define COLOR_parser_tables___ParserTable___action_table_row1268 SFT_parser_tables[1273]
-#define COLOR_parser_tables___ParserTable___action_table_row1269 SFT_parser_tables[1274]
-#define COLOR_parser_tables___ParserTable___action_table_row1270 SFT_parser_tables[1275]
-#define COLOR_parser_tables___ParserTable___action_table_row1271 SFT_parser_tables[1276]
-#define COLOR_parser_tables___ParserTable___action_table_row1272 SFT_parser_tables[1277]
-#define COLOR_parser_tables___ParserTable___action_table_row1273 SFT_parser_tables[1278]
-#define COLOR_parser_tables___ParserTable___action_table_row1274 SFT_parser_tables[1279]
-#define COLOR_parser_tables___ParserTable___action_table_row1275 SFT_parser_tables[1280]
-#define COLOR_parser_tables___ParserTable___action_table_row1276 SFT_parser_tables[1281]
-#define COLOR_parser_tables___ParserTable___action_table_row1277 SFT_parser_tables[1282]
-#define COLOR_parser_tables___ParserTable___action_table_row1278 SFT_parser_tables[1283]
-#define COLOR_parser_tables___ParserTable___action_table_row1279 SFT_parser_tables[1284]
-#define COLOR_parser_tables___ParserTable___action_table_row1280 SFT_parser_tables[1285]
-#define COLOR_parser_tables___ParserTable___action_table_row1281 SFT_parser_tables[1286]
-#define COLOR_parser_tables___ParserTable___action_table_row1282 SFT_parser_tables[1287]
-#define COLOR_parser_tables___ParserTable___action_table_row1283 SFT_parser_tables[1288]
-#define COLOR_parser_tables___ParserTable___action_table_row1284 SFT_parser_tables[1289]
-#define COLOR_parser_tables___ParserTable___action_table_row1285 SFT_parser_tables[1290]
-#define COLOR_parser_tables___ParserTable___action_table_row1286 SFT_parser_tables[1291]
-#define COLOR_parser_tables___ParserTable___action_table_row1287 SFT_parser_tables[1292]
-#define COLOR_parser_tables___ParserTable___action_table_row1288 SFT_parser_tables[1293]
-#define COLOR_parser_tables___ParserTable___action_table_row1289 SFT_parser_tables[1294]
-#define COLOR_parser_tables___ParserTable___action_table_row1290 SFT_parser_tables[1295]
-#define COLOR_parser_tables___ParserTable___action_table_row1291 SFT_parser_tables[1296]
-#define COLOR_parser_tables___ParserTable___action_table_row1292 SFT_parser_tables[1297]
-#define COLOR_parser_tables___ParserTable___action_table_row1293 SFT_parser_tables[1298]
-#define COLOR_parser_tables___ParserTable___action_table_row1294 SFT_parser_tables[1299]
-#define COLOR_parser_tables___ParserTable___action_table_row1295 SFT_parser_tables[1300]
-#define COLOR_parser_tables___ParserTable___action_table_row1296 SFT_parser_tables[1301]
-#define COLOR_parser_tables___ParserTable___action_table_row1297 SFT_parser_tables[1302]
-#define COLOR_parser_tables___ParserTable___action_table_row1298 SFT_parser_tables[1303]
-#define COLOR_parser_tables___ParserTable___action_table_row1299 SFT_parser_tables[1304]
-#define COLOR_parser_tables___ParserTable___action_table_row1300 SFT_parser_tables[1305]
-#define COLOR_parser_tables___ParserTable___action_table_row1301 SFT_parser_tables[1306]
-#define COLOR_parser_tables___ParserTable___build_goto_table SFT_parser_tables[1307]
-#define COLOR_parser_tables___ParserTable___error_messages SFT_parser_tables[1308]
-#define COLOR_parser_tables___ParserTable___errors SFT_parser_tables[1309]
-#define COLOR_parser_tables___ParserTable___init SFT_parser_tables[1310]
-#define ATTR_parser_tables___ParserTable____action_table(recv) ATTR(recv, COLOR_parser_tables___ParserTable____action_table)
+#define ID_ParserTable (SFT_parser_tables[0])
+#define COLOR_ParserTable (SFT_parser_tables[1])
+#define ATTR_parser_tables___ParserTable____action_table(recv) ATTR(recv, (SFT_parser_tables[2] + 0))
+#define ATTR_parser_tables___ParserTable____goto_table(recv) ATTR(recv, (SFT_parser_tables[2] + 1))
+#define INIT_TABLE_POS_ParserTable (SFT_parser_tables[3] + 0)
+#define CALL_parser_tables___ParserTable___build_action_table(recv) ((parser_tables___ParserTable___build_action_table_t)CALL((recv), (SFT_parser_tables[3] + 1)))
+#define CALL_parser_tables___ParserTable___action_table_row1(recv) ((parser_tables___ParserTable___action_table_row1_t)CALL((recv), (SFT_parser_tables[3] + 2)))
+#define CALL_parser_tables___ParserTable___action_table_row2(recv) ((parser_tables___ParserTable___action_table_row2_t)CALL((recv), (SFT_parser_tables[3] + 3)))
+#define CALL_parser_tables___ParserTable___action_table_row3(recv) ((parser_tables___ParserTable___action_table_row3_t)CALL((recv), (SFT_parser_tables[3] + 4)))
+#define CALL_parser_tables___ParserTable___action_table_row4(recv) ((parser_tables___ParserTable___action_table_row4_t)CALL((recv), (SFT_parser_tables[3] + 5)))
+#define CALL_parser_tables___ParserTable___action_table_row5(recv) ((parser_tables___ParserTable___action_table_row5_t)CALL((recv), (SFT_parser_tables[3] + 6)))
+#define CALL_parser_tables___ParserTable___action_table_row6(recv) ((parser_tables___ParserTable___action_table_row6_t)CALL((recv), (SFT_parser_tables[3] + 7)))
+#define CALL_parser_tables___ParserTable___action_table_row7(recv) ((parser_tables___ParserTable___action_table_row7_t)CALL((recv), (SFT_parser_tables[3] + 8)))
+#define CALL_parser_tables___ParserTable___action_table_row8(recv) ((parser_tables___ParserTable___action_table_row8_t)CALL((recv), (SFT_parser_tables[3] + 9)))
+#define CALL_parser_tables___ParserTable___action_table_row9(recv) ((parser_tables___ParserTable___action_table_row9_t)CALL((recv), (SFT_parser_tables[3] + 10)))
+#define CALL_parser_tables___ParserTable___action_table_row10(recv) ((parser_tables___ParserTable___action_table_row10_t)CALL((recv), (SFT_parser_tables[3] + 11)))
+#define CALL_parser_tables___ParserTable___action_table_row11(recv) ((parser_tables___ParserTable___action_table_row11_t)CALL((recv), (SFT_parser_tables[3] + 12)))
+#define CALL_parser_tables___ParserTable___action_table_row12(recv) ((parser_tables___ParserTable___action_table_row12_t)CALL((recv), (SFT_parser_tables[3] + 13)))
+#define CALL_parser_tables___ParserTable___action_table_row13(recv) ((parser_tables___ParserTable___action_table_row13_t)CALL((recv), (SFT_parser_tables[3] + 14)))
+#define CALL_parser_tables___ParserTable___action_table_row14(recv) ((parser_tables___ParserTable___action_table_row14_t)CALL((recv), (SFT_parser_tables[3] + 15)))
+#define CALL_parser_tables___ParserTable___action_table_row15(recv) ((parser_tables___ParserTable___action_table_row15_t)CALL((recv), (SFT_parser_tables[3] + 16)))
+#define CALL_parser_tables___ParserTable___action_table_row16(recv) ((parser_tables___ParserTable___action_table_row16_t)CALL((recv), (SFT_parser_tables[3] + 17)))
+#define CALL_parser_tables___ParserTable___action_table_row17(recv) ((parser_tables___ParserTable___action_table_row17_t)CALL((recv), (SFT_parser_tables[3] + 18)))
+#define CALL_parser_tables___ParserTable___action_table_row18(recv) ((parser_tables___ParserTable___action_table_row18_t)CALL((recv), (SFT_parser_tables[3] + 19)))
+#define CALL_parser_tables___ParserTable___action_table_row19(recv) ((parser_tables___ParserTable___action_table_row19_t)CALL((recv), (SFT_parser_tables[3] + 20)))
+#define CALL_parser_tables___ParserTable___action_table_row20(recv) ((parser_tables___ParserTable___action_table_row20_t)CALL((recv), (SFT_parser_tables[3] + 21)))
+#define CALL_parser_tables___ParserTable___action_table_row21(recv) ((parser_tables___ParserTable___action_table_row21_t)CALL((recv), (SFT_parser_tables[3] + 22)))
+#define CALL_parser_tables___ParserTable___action_table_row22(recv) ((parser_tables___ParserTable___action_table_row22_t)CALL((recv), (SFT_parser_tables[3] + 23)))
+#define CALL_parser_tables___ParserTable___action_table_row23(recv) ((parser_tables___ParserTable___action_table_row23_t)CALL((recv), (SFT_parser_tables[3] + 24)))
+#define CALL_parser_tables___ParserTable___action_table_row24(recv) ((parser_tables___ParserTable___action_table_row24_t)CALL((recv), (SFT_parser_tables[3] + 25)))
+#define CALL_parser_tables___ParserTable___action_table_row25(recv) ((parser_tables___ParserTable___action_table_row25_t)CALL((recv), (SFT_parser_tables[3] + 26)))
+#define CALL_parser_tables___ParserTable___action_table_row26(recv) ((parser_tables___ParserTable___action_table_row26_t)CALL((recv), (SFT_parser_tables[3] + 27)))
+#define CALL_parser_tables___ParserTable___action_table_row27(recv) ((parser_tables___ParserTable___action_table_row27_t)CALL((recv), (SFT_parser_tables[3] + 28)))
+#define CALL_parser_tables___ParserTable___action_table_row28(recv) ((parser_tables___ParserTable___action_table_row28_t)CALL((recv), (SFT_parser_tables[3] + 29)))
+#define CALL_parser_tables___ParserTable___action_table_row29(recv) ((parser_tables___ParserTable___action_table_row29_t)CALL((recv), (SFT_parser_tables[3] + 30)))
+#define CALL_parser_tables___ParserTable___action_table_row30(recv) ((parser_tables___ParserTable___action_table_row30_t)CALL((recv), (SFT_parser_tables[3] + 31)))
+#define CALL_parser_tables___ParserTable___action_table_row31(recv) ((parser_tables___ParserTable___action_table_row31_t)CALL((recv), (SFT_parser_tables[3] + 32)))
+#define CALL_parser_tables___ParserTable___action_table_row32(recv) ((parser_tables___ParserTable___action_table_row32_t)CALL((recv), (SFT_parser_tables[3] + 33)))
+#define CALL_parser_tables___ParserTable___action_table_row33(recv) ((parser_tables___ParserTable___action_table_row33_t)CALL((recv), (SFT_parser_tables[3] + 34)))
+#define CALL_parser_tables___ParserTable___action_table_row34(recv) ((parser_tables___ParserTable___action_table_row34_t)CALL((recv), (SFT_parser_tables[3] + 35)))
+#define CALL_parser_tables___ParserTable___action_table_row35(recv) ((parser_tables___ParserTable___action_table_row35_t)CALL((recv), (SFT_parser_tables[3] + 36)))
+#define CALL_parser_tables___ParserTable___action_table_row36(recv) ((parser_tables___ParserTable___action_table_row36_t)CALL((recv), (SFT_parser_tables[3] + 37)))
+#define CALL_parser_tables___ParserTable___action_table_row37(recv) ((parser_tables___ParserTable___action_table_row37_t)CALL((recv), (SFT_parser_tables[3] + 38)))
+#define CALL_parser_tables___ParserTable___action_table_row38(recv) ((parser_tables___ParserTable___action_table_row38_t)CALL((recv), (SFT_parser_tables[3] + 39)))
+#define CALL_parser_tables___ParserTable___action_table_row39(recv) ((parser_tables___ParserTable___action_table_row39_t)CALL((recv), (SFT_parser_tables[3] + 40)))
+#define CALL_parser_tables___ParserTable___action_table_row40(recv) ((parser_tables___ParserTable___action_table_row40_t)CALL((recv), (SFT_parser_tables[3] + 41)))
+#define CALL_parser_tables___ParserTable___action_table_row41(recv) ((parser_tables___ParserTable___action_table_row41_t)CALL((recv), (SFT_parser_tables[3] + 42)))
+#define CALL_parser_tables___ParserTable___action_table_row42(recv) ((parser_tables___ParserTable___action_table_row42_t)CALL((recv), (SFT_parser_tables[3] + 43)))
+#define CALL_parser_tables___ParserTable___action_table_row43(recv) ((parser_tables___ParserTable___action_table_row43_t)CALL((recv), (SFT_parser_tables[3] + 44)))
+#define CALL_parser_tables___ParserTable___action_table_row44(recv) ((parser_tables___ParserTable___action_table_row44_t)CALL((recv), (SFT_parser_tables[3] + 45)))
+#define CALL_parser_tables___ParserTable___action_table_row45(recv) ((parser_tables___ParserTable___action_table_row45_t)CALL((recv), (SFT_parser_tables[3] + 46)))
+#define CALL_parser_tables___ParserTable___action_table_row46(recv) ((parser_tables___ParserTable___action_table_row46_t)CALL((recv), (SFT_parser_tables[3] + 47)))
+#define CALL_parser_tables___ParserTable___action_table_row47(recv) ((parser_tables___ParserTable___action_table_row47_t)CALL((recv), (SFT_parser_tables[3] + 48)))
+#define CALL_parser_tables___ParserTable___action_table_row48(recv) ((parser_tables___ParserTable___action_table_row48_t)CALL((recv), (SFT_parser_tables[3] + 49)))
+#define CALL_parser_tables___ParserTable___action_table_row49(recv) ((parser_tables___ParserTable___action_table_row49_t)CALL((recv), (SFT_parser_tables[3] + 50)))
+#define CALL_parser_tables___ParserTable___action_table_row50(recv) ((parser_tables___ParserTable___action_table_row50_t)CALL((recv), (SFT_parser_tables[3] + 51)))
+#define CALL_parser_tables___ParserTable___action_table_row51(recv) ((parser_tables___ParserTable___action_table_row51_t)CALL((recv), (SFT_parser_tables[3] + 52)))
+#define CALL_parser_tables___ParserTable___action_table_row52(recv) ((parser_tables___ParserTable___action_table_row52_t)CALL((recv), (SFT_parser_tables[3] + 53)))
+#define CALL_parser_tables___ParserTable___action_table_row53(recv) ((parser_tables___ParserTable___action_table_row53_t)CALL((recv), (SFT_parser_tables[3] + 54)))
+#define CALL_parser_tables___ParserTable___action_table_row54(recv) ((parser_tables___ParserTable___action_table_row54_t)CALL((recv), (SFT_parser_tables[3] + 55)))
+#define CALL_parser_tables___ParserTable___action_table_row55(recv) ((parser_tables___ParserTable___action_table_row55_t)CALL((recv), (SFT_parser_tables[3] + 56)))
+#define CALL_parser_tables___ParserTable___action_table_row56(recv) ((parser_tables___ParserTable___action_table_row56_t)CALL((recv), (SFT_parser_tables[3] + 57)))
+#define CALL_parser_tables___ParserTable___action_table_row57(recv) ((parser_tables___ParserTable___action_table_row57_t)CALL((recv), (SFT_parser_tables[3] + 58)))
+#define CALL_parser_tables___ParserTable___action_table_row58(recv) ((parser_tables___ParserTable___action_table_row58_t)CALL((recv), (SFT_parser_tables[3] + 59)))
+#define CALL_parser_tables___ParserTable___action_table_row59(recv) ((parser_tables___ParserTable___action_table_row59_t)CALL((recv), (SFT_parser_tables[3] + 60)))
+#define CALL_parser_tables___ParserTable___action_table_row60(recv) ((parser_tables___ParserTable___action_table_row60_t)CALL((recv), (SFT_parser_tables[3] + 61)))
+#define CALL_parser_tables___ParserTable___action_table_row61(recv) ((parser_tables___ParserTable___action_table_row61_t)CALL((recv), (SFT_parser_tables[3] + 62)))
+#define CALL_parser_tables___ParserTable___action_table_row62(recv) ((parser_tables___ParserTable___action_table_row62_t)CALL((recv), (SFT_parser_tables[3] + 63)))
+#define CALL_parser_tables___ParserTable___action_table_row63(recv) ((parser_tables___ParserTable___action_table_row63_t)CALL((recv), (SFT_parser_tables[3] + 64)))
+#define CALL_parser_tables___ParserTable___action_table_row64(recv) ((parser_tables___ParserTable___action_table_row64_t)CALL((recv), (SFT_parser_tables[3] + 65)))
+#define CALL_parser_tables___ParserTable___action_table_row65(recv) ((parser_tables___ParserTable___action_table_row65_t)CALL((recv), (SFT_parser_tables[3] + 66)))
+#define CALL_parser_tables___ParserTable___action_table_row66(recv) ((parser_tables___ParserTable___action_table_row66_t)CALL((recv), (SFT_parser_tables[3] + 67)))
+#define CALL_parser_tables___ParserTable___action_table_row67(recv) ((parser_tables___ParserTable___action_table_row67_t)CALL((recv), (SFT_parser_tables[3] + 68)))
+#define CALL_parser_tables___ParserTable___action_table_row68(recv) ((parser_tables___ParserTable___action_table_row68_t)CALL((recv), (SFT_parser_tables[3] + 69)))
+#define CALL_parser_tables___ParserTable___action_table_row69(recv) ((parser_tables___ParserTable___action_table_row69_t)CALL((recv), (SFT_parser_tables[3] + 70)))
+#define CALL_parser_tables___ParserTable___action_table_row70(recv) ((parser_tables___ParserTable___action_table_row70_t)CALL((recv), (SFT_parser_tables[3] + 71)))
+#define CALL_parser_tables___ParserTable___action_table_row71(recv) ((parser_tables___ParserTable___action_table_row71_t)CALL((recv), (SFT_parser_tables[3] + 72)))
+#define CALL_parser_tables___ParserTable___action_table_row72(recv) ((parser_tables___ParserTable___action_table_row72_t)CALL((recv), (SFT_parser_tables[3] + 73)))
+#define CALL_parser_tables___ParserTable___action_table_row73(recv) ((parser_tables___ParserTable___action_table_row73_t)CALL((recv), (SFT_parser_tables[3] + 74)))
+#define CALL_parser_tables___ParserTable___action_table_row74(recv) ((parser_tables___ParserTable___action_table_row74_t)CALL((recv), (SFT_parser_tables[3] + 75)))
+#define CALL_parser_tables___ParserTable___action_table_row75(recv) ((parser_tables___ParserTable___action_table_row75_t)CALL((recv), (SFT_parser_tables[3] + 76)))
+#define CALL_parser_tables___ParserTable___action_table_row76(recv) ((parser_tables___ParserTable___action_table_row76_t)CALL((recv), (SFT_parser_tables[3] + 77)))
+#define CALL_parser_tables___ParserTable___action_table_row77(recv) ((parser_tables___ParserTable___action_table_row77_t)CALL((recv), (SFT_parser_tables[3] + 78)))
+#define CALL_parser_tables___ParserTable___action_table_row78(recv) ((parser_tables___ParserTable___action_table_row78_t)CALL((recv), (SFT_parser_tables[3] + 79)))
+#define CALL_parser_tables___ParserTable___action_table_row79(recv) ((parser_tables___ParserTable___action_table_row79_t)CALL((recv), (SFT_parser_tables[3] + 80)))
+#define CALL_parser_tables___ParserTable___action_table_row80(recv) ((parser_tables___ParserTable___action_table_row80_t)CALL((recv), (SFT_parser_tables[3] + 81)))
+#define CALL_parser_tables___ParserTable___action_table_row81(recv) ((parser_tables___ParserTable___action_table_row81_t)CALL((recv), (SFT_parser_tables[3] + 82)))
+#define CALL_parser_tables___ParserTable___action_table_row82(recv) ((parser_tables___ParserTable___action_table_row82_t)CALL((recv), (SFT_parser_tables[3] + 83)))
+#define CALL_parser_tables___ParserTable___action_table_row83(recv) ((parser_tables___ParserTable___action_table_row83_t)CALL((recv), (SFT_parser_tables[3] + 84)))
+#define CALL_parser_tables___ParserTable___action_table_row84(recv) ((parser_tables___ParserTable___action_table_row84_t)CALL((recv), (SFT_parser_tables[3] + 85)))
+#define CALL_parser_tables___ParserTable___action_table_row85(recv) ((parser_tables___ParserTable___action_table_row85_t)CALL((recv), (SFT_parser_tables[3] + 86)))
+#define CALL_parser_tables___ParserTable___action_table_row86(recv) ((parser_tables___ParserTable___action_table_row86_t)CALL((recv), (SFT_parser_tables[3] + 87)))
+#define CALL_parser_tables___ParserTable___action_table_row87(recv) ((parser_tables___ParserTable___action_table_row87_t)CALL((recv), (SFT_parser_tables[3] + 88)))
+#define CALL_parser_tables___ParserTable___action_table_row88(recv) ((parser_tables___ParserTable___action_table_row88_t)CALL((recv), (SFT_parser_tables[3] + 89)))
+#define CALL_parser_tables___ParserTable___action_table_row89(recv) ((parser_tables___ParserTable___action_table_row89_t)CALL((recv), (SFT_parser_tables[3] + 90)))
+#define CALL_parser_tables___ParserTable___action_table_row90(recv) ((parser_tables___ParserTable___action_table_row90_t)CALL((recv), (SFT_parser_tables[3] + 91)))
+#define CALL_parser_tables___ParserTable___action_table_row91(recv) ((parser_tables___ParserTable___action_table_row91_t)CALL((recv), (SFT_parser_tables[3] + 92)))
+#define CALL_parser_tables___ParserTable___action_table_row92(recv) ((parser_tables___ParserTable___action_table_row92_t)CALL((recv), (SFT_parser_tables[3] + 93)))
+#define CALL_parser_tables___ParserTable___action_table_row93(recv) ((parser_tables___ParserTable___action_table_row93_t)CALL((recv), (SFT_parser_tables[3] + 94)))
+#define CALL_parser_tables___ParserTable___action_table_row94(recv) ((parser_tables___ParserTable___action_table_row94_t)CALL((recv), (SFT_parser_tables[3] + 95)))
+#define CALL_parser_tables___ParserTable___action_table_row95(recv) ((parser_tables___ParserTable___action_table_row95_t)CALL((recv), (SFT_parser_tables[3] + 96)))
+#define CALL_parser_tables___ParserTable___action_table_row96(recv) ((parser_tables___ParserTable___action_table_row96_t)CALL((recv), (SFT_parser_tables[3] + 97)))
+#define CALL_parser_tables___ParserTable___action_table_row97(recv) ((parser_tables___ParserTable___action_table_row97_t)CALL((recv), (SFT_parser_tables[3] + 98)))
+#define CALL_parser_tables___ParserTable___action_table_row98(recv) ((parser_tables___ParserTable___action_table_row98_t)CALL((recv), (SFT_parser_tables[3] + 99)))
+#define CALL_parser_tables___ParserTable___action_table_row99(recv) ((parser_tables___ParserTable___action_table_row99_t)CALL((recv), (SFT_parser_tables[3] + 100)))
+#define CALL_parser_tables___ParserTable___action_table_row100(recv) ((parser_tables___ParserTable___action_table_row100_t)CALL((recv), (SFT_parser_tables[3] + 101)))
+#define CALL_parser_tables___ParserTable___action_table_row101(recv) ((parser_tables___ParserTable___action_table_row101_t)CALL((recv), (SFT_parser_tables[3] + 102)))
+#define CALL_parser_tables___ParserTable___action_table_row102(recv) ((parser_tables___ParserTable___action_table_row102_t)CALL((recv), (SFT_parser_tables[3] + 103)))
+#define CALL_parser_tables___ParserTable___action_table_row103(recv) ((parser_tables___ParserTable___action_table_row103_t)CALL((recv), (SFT_parser_tables[3] + 104)))
+#define CALL_parser_tables___ParserTable___action_table_row104(recv) ((parser_tables___ParserTable___action_table_row104_t)CALL((recv), (SFT_parser_tables[3] + 105)))
+#define CALL_parser_tables___ParserTable___action_table_row105(recv) ((parser_tables___ParserTable___action_table_row105_t)CALL((recv), (SFT_parser_tables[3] + 106)))
+#define CALL_parser_tables___ParserTable___action_table_row106(recv) ((parser_tables___ParserTable___action_table_row106_t)CALL((recv), (SFT_parser_tables[3] + 107)))
+#define CALL_parser_tables___ParserTable___action_table_row107(recv) ((parser_tables___ParserTable___action_table_row107_t)CALL((recv), (SFT_parser_tables[3] + 108)))
+#define CALL_parser_tables___ParserTable___action_table_row108(recv) ((parser_tables___ParserTable___action_table_row108_t)CALL((recv), (SFT_parser_tables[3] + 109)))
+#define CALL_parser_tables___ParserTable___action_table_row109(recv) ((parser_tables___ParserTable___action_table_row109_t)CALL((recv), (SFT_parser_tables[3] + 110)))
+#define CALL_parser_tables___ParserTable___action_table_row110(recv) ((parser_tables___ParserTable___action_table_row110_t)CALL((recv), (SFT_parser_tables[3] + 111)))
+#define CALL_parser_tables___ParserTable___action_table_row111(recv) ((parser_tables___ParserTable___action_table_row111_t)CALL((recv), (SFT_parser_tables[3] + 112)))
+#define CALL_parser_tables___ParserTable___action_table_row112(recv) ((parser_tables___ParserTable___action_table_row112_t)CALL((recv), (SFT_parser_tables[3] + 113)))
+#define CALL_parser_tables___ParserTable___action_table_row113(recv) ((parser_tables___ParserTable___action_table_row113_t)CALL((recv), (SFT_parser_tables[3] + 114)))
+#define CALL_parser_tables___ParserTable___action_table_row114(recv) ((parser_tables___ParserTable___action_table_row114_t)CALL((recv), (SFT_parser_tables[3] + 115)))
+#define CALL_parser_tables___ParserTable___action_table_row115(recv) ((parser_tables___ParserTable___action_table_row115_t)CALL((recv), (SFT_parser_tables[3] + 116)))
+#define CALL_parser_tables___ParserTable___action_table_row116(recv) ((parser_tables___ParserTable___action_table_row116_t)CALL((recv), (SFT_parser_tables[3] + 117)))
+#define CALL_parser_tables___ParserTable___action_table_row117(recv) ((parser_tables___ParserTable___action_table_row117_t)CALL((recv), (SFT_parser_tables[3] + 118)))
+#define CALL_parser_tables___ParserTable___action_table_row118(recv) ((parser_tables___ParserTable___action_table_row118_t)CALL((recv), (SFT_parser_tables[3] + 119)))
+#define CALL_parser_tables___ParserTable___action_table_row119(recv) ((parser_tables___ParserTable___action_table_row119_t)CALL((recv), (SFT_parser_tables[3] + 120)))
+#define CALL_parser_tables___ParserTable___action_table_row120(recv) ((parser_tables___ParserTable___action_table_row120_t)CALL((recv), (SFT_parser_tables[3] + 121)))
+#define CALL_parser_tables___ParserTable___action_table_row121(recv) ((parser_tables___ParserTable___action_table_row121_t)CALL((recv), (SFT_parser_tables[3] + 122)))
+#define CALL_parser_tables___ParserTable___action_table_row122(recv) ((parser_tables___ParserTable___action_table_row122_t)CALL((recv), (SFT_parser_tables[3] + 123)))
+#define CALL_parser_tables___ParserTable___action_table_row123(recv) ((parser_tables___ParserTable___action_table_row123_t)CALL((recv), (SFT_parser_tables[3] + 124)))
+#define CALL_parser_tables___ParserTable___action_table_row124(recv) ((parser_tables___ParserTable___action_table_row124_t)CALL((recv), (SFT_parser_tables[3] + 125)))
+#define CALL_parser_tables___ParserTable___action_table_row125(recv) ((parser_tables___ParserTable___action_table_row125_t)CALL((recv), (SFT_parser_tables[3] + 126)))
+#define CALL_parser_tables___ParserTable___action_table_row126(recv) ((parser_tables___ParserTable___action_table_row126_t)CALL((recv), (SFT_parser_tables[3] + 127)))
+#define CALL_parser_tables___ParserTable___action_table_row127(recv) ((parser_tables___ParserTable___action_table_row127_t)CALL((recv), (SFT_parser_tables[3] + 128)))
+#define CALL_parser_tables___ParserTable___action_table_row128(recv) ((parser_tables___ParserTable___action_table_row128_t)CALL((recv), (SFT_parser_tables[3] + 129)))
+#define CALL_parser_tables___ParserTable___action_table_row129(recv) ((parser_tables___ParserTable___action_table_row129_t)CALL((recv), (SFT_parser_tables[3] + 130)))
+#define CALL_parser_tables___ParserTable___action_table_row130(recv) ((parser_tables___ParserTable___action_table_row130_t)CALL((recv), (SFT_parser_tables[3] + 131)))
+#define CALL_parser_tables___ParserTable___action_table_row131(recv) ((parser_tables___ParserTable___action_table_row131_t)CALL((recv), (SFT_parser_tables[3] + 132)))
+#define CALL_parser_tables___ParserTable___action_table_row132(recv) ((parser_tables___ParserTable___action_table_row132_t)CALL((recv), (SFT_parser_tables[3] + 133)))
+#define CALL_parser_tables___ParserTable___action_table_row133(recv) ((parser_tables___ParserTable___action_table_row133_t)CALL((recv), (SFT_parser_tables[3] + 134)))
+#define CALL_parser_tables___ParserTable___action_table_row134(recv) ((parser_tables___ParserTable___action_table_row134_t)CALL((recv), (SFT_parser_tables[3] + 135)))
+#define CALL_parser_tables___ParserTable___action_table_row135(recv) ((parser_tables___ParserTable___action_table_row135_t)CALL((recv), (SFT_parser_tables[3] + 136)))
+#define CALL_parser_tables___ParserTable___action_table_row136(recv) ((parser_tables___ParserTable___action_table_row136_t)CALL((recv), (SFT_parser_tables[3] + 137)))
+#define CALL_parser_tables___ParserTable___action_table_row137(recv) ((parser_tables___ParserTable___action_table_row137_t)CALL((recv), (SFT_parser_tables[3] + 138)))
+#define CALL_parser_tables___ParserTable___action_table_row138(recv) ((parser_tables___ParserTable___action_table_row138_t)CALL((recv), (SFT_parser_tables[3] + 139)))
+#define CALL_parser_tables___ParserTable___action_table_row139(recv) ((parser_tables___ParserTable___action_table_row139_t)CALL((recv), (SFT_parser_tables[3] + 140)))
+#define CALL_parser_tables___ParserTable___action_table_row140(recv) ((parser_tables___ParserTable___action_table_row140_t)CALL((recv), (SFT_parser_tables[3] + 141)))
+#define CALL_parser_tables___ParserTable___action_table_row141(recv) ((parser_tables___ParserTable___action_table_row141_t)CALL((recv), (SFT_parser_tables[3] + 142)))
+#define CALL_parser_tables___ParserTable___action_table_row142(recv) ((parser_tables___ParserTable___action_table_row142_t)CALL((recv), (SFT_parser_tables[3] + 143)))
+#define CALL_parser_tables___ParserTable___action_table_row143(recv) ((parser_tables___ParserTable___action_table_row143_t)CALL((recv), (SFT_parser_tables[3] + 144)))
+#define CALL_parser_tables___ParserTable___action_table_row144(recv) ((parser_tables___ParserTable___action_table_row144_t)CALL((recv), (SFT_parser_tables[3] + 145)))
+#define CALL_parser_tables___ParserTable___action_table_row145(recv) ((parser_tables___ParserTable___action_table_row145_t)CALL((recv), (SFT_parser_tables[3] + 146)))
+#define CALL_parser_tables___ParserTable___action_table_row146(recv) ((parser_tables___ParserTable___action_table_row146_t)CALL((recv), (SFT_parser_tables[3] + 147)))
+#define CALL_parser_tables___ParserTable___action_table_row147(recv) ((parser_tables___ParserTable___action_table_row147_t)CALL((recv), (SFT_parser_tables[3] + 148)))
+#define CALL_parser_tables___ParserTable___action_table_row148(recv) ((parser_tables___ParserTable___action_table_row148_t)CALL((recv), (SFT_parser_tables[3] + 149)))
+#define CALL_parser_tables___ParserTable___action_table_row149(recv) ((parser_tables___ParserTable___action_table_row149_t)CALL((recv), (SFT_parser_tables[3] + 150)))
+#define CALL_parser_tables___ParserTable___action_table_row150(recv) ((parser_tables___ParserTable___action_table_row150_t)CALL((recv), (SFT_parser_tables[3] + 151)))
+#define CALL_parser_tables___ParserTable___action_table_row151(recv) ((parser_tables___ParserTable___action_table_row151_t)CALL((recv), (SFT_parser_tables[3] + 152)))
+#define CALL_parser_tables___ParserTable___action_table_row152(recv) ((parser_tables___ParserTable___action_table_row152_t)CALL((recv), (SFT_parser_tables[3] + 153)))
+#define CALL_parser_tables___ParserTable___action_table_row153(recv) ((parser_tables___ParserTable___action_table_row153_t)CALL((recv), (SFT_parser_tables[3] + 154)))
+#define CALL_parser_tables___ParserTable___action_table_row154(recv) ((parser_tables___ParserTable___action_table_row154_t)CALL((recv), (SFT_parser_tables[3] + 155)))
+#define CALL_parser_tables___ParserTable___action_table_row155(recv) ((parser_tables___ParserTable___action_table_row155_t)CALL((recv), (SFT_parser_tables[3] + 156)))
+#define CALL_parser_tables___ParserTable___action_table_row156(recv) ((parser_tables___ParserTable___action_table_row156_t)CALL((recv), (SFT_parser_tables[3] + 157)))
+#define CALL_parser_tables___ParserTable___action_table_row157(recv) ((parser_tables___ParserTable___action_table_row157_t)CALL((recv), (SFT_parser_tables[3] + 158)))
+#define CALL_parser_tables___ParserTable___action_table_row158(recv) ((parser_tables___ParserTable___action_table_row158_t)CALL((recv), (SFT_parser_tables[3] + 159)))
+#define CALL_parser_tables___ParserTable___action_table_row159(recv) ((parser_tables___ParserTable___action_table_row159_t)CALL((recv), (SFT_parser_tables[3] + 160)))
+#define CALL_parser_tables___ParserTable___action_table_row160(recv) ((parser_tables___ParserTable___action_table_row160_t)CALL((recv), (SFT_parser_tables[3] + 161)))
+#define CALL_parser_tables___ParserTable___action_table_row161(recv) ((parser_tables___ParserTable___action_table_row161_t)CALL((recv), (SFT_parser_tables[3] + 162)))
+#define CALL_parser_tables___ParserTable___action_table_row162(recv) ((parser_tables___ParserTable___action_table_row162_t)CALL((recv), (SFT_parser_tables[3] + 163)))
+#define CALL_parser_tables___ParserTable___action_table_row163(recv) ((parser_tables___ParserTable___action_table_row163_t)CALL((recv), (SFT_parser_tables[3] + 164)))
+#define CALL_parser_tables___ParserTable___action_table_row164(recv) ((parser_tables___ParserTable___action_table_row164_t)CALL((recv), (SFT_parser_tables[3] + 165)))
+#define CALL_parser_tables___ParserTable___action_table_row165(recv) ((parser_tables___ParserTable___action_table_row165_t)CALL((recv), (SFT_parser_tables[3] + 166)))
+#define CALL_parser_tables___ParserTable___action_table_row166(recv) ((parser_tables___ParserTable___action_table_row166_t)CALL((recv), (SFT_parser_tables[3] + 167)))
+#define CALL_parser_tables___ParserTable___action_table_row167(recv) ((parser_tables___ParserTable___action_table_row167_t)CALL((recv), (SFT_parser_tables[3] + 168)))
+#define CALL_parser_tables___ParserTable___action_table_row168(recv) ((parser_tables___ParserTable___action_table_row168_t)CALL((recv), (SFT_parser_tables[3] + 169)))
+#define CALL_parser_tables___ParserTable___action_table_row169(recv) ((parser_tables___ParserTable___action_table_row169_t)CALL((recv), (SFT_parser_tables[3] + 170)))
+#define CALL_parser_tables___ParserTable___action_table_row170(recv) ((parser_tables___ParserTable___action_table_row170_t)CALL((recv), (SFT_parser_tables[3] + 171)))
+#define CALL_parser_tables___ParserTable___action_table_row171(recv) ((parser_tables___ParserTable___action_table_row171_t)CALL((recv), (SFT_parser_tables[3] + 172)))
+#define CALL_parser_tables___ParserTable___action_table_row172(recv) ((parser_tables___ParserTable___action_table_row172_t)CALL((recv), (SFT_parser_tables[3] + 173)))
+#define CALL_parser_tables___ParserTable___action_table_row173(recv) ((parser_tables___ParserTable___action_table_row173_t)CALL((recv), (SFT_parser_tables[3] + 174)))
+#define CALL_parser_tables___ParserTable___action_table_row174(recv) ((parser_tables___ParserTable___action_table_row174_t)CALL((recv), (SFT_parser_tables[3] + 175)))
+#define CALL_parser_tables___ParserTable___action_table_row175(recv) ((parser_tables___ParserTable___action_table_row175_t)CALL((recv), (SFT_parser_tables[3] + 176)))
+#define CALL_parser_tables___ParserTable___action_table_row176(recv) ((parser_tables___ParserTable___action_table_row176_t)CALL((recv), (SFT_parser_tables[3] + 177)))
+#define CALL_parser_tables___ParserTable___action_table_row177(recv) ((parser_tables___ParserTable___action_table_row177_t)CALL((recv), (SFT_parser_tables[3] + 178)))
+#define CALL_parser_tables___ParserTable___action_table_row178(recv) ((parser_tables___ParserTable___action_table_row178_t)CALL((recv), (SFT_parser_tables[3] + 179)))
+#define CALL_parser_tables___ParserTable___action_table_row179(recv) ((parser_tables___ParserTable___action_table_row179_t)CALL((recv), (SFT_parser_tables[3] + 180)))
+#define CALL_parser_tables___ParserTable___action_table_row180(recv) ((parser_tables___ParserTable___action_table_row180_t)CALL((recv), (SFT_parser_tables[3] + 181)))
+#define CALL_parser_tables___ParserTable___action_table_row181(recv) ((parser_tables___ParserTable___action_table_row181_t)CALL((recv), (SFT_parser_tables[3] + 182)))
+#define CALL_parser_tables___ParserTable___action_table_row182(recv) ((parser_tables___ParserTable___action_table_row182_t)CALL((recv), (SFT_parser_tables[3] + 183)))
+#define CALL_parser_tables___ParserTable___action_table_row183(recv) ((parser_tables___ParserTable___action_table_row183_t)CALL((recv), (SFT_parser_tables[3] + 184)))
+#define CALL_parser_tables___ParserTable___action_table_row184(recv) ((parser_tables___ParserTable___action_table_row184_t)CALL((recv), (SFT_parser_tables[3] + 185)))
+#define CALL_parser_tables___ParserTable___action_table_row185(recv) ((parser_tables___ParserTable___action_table_row185_t)CALL((recv), (SFT_parser_tables[3] + 186)))
+#define CALL_parser_tables___ParserTable___action_table_row186(recv) ((parser_tables___ParserTable___action_table_row186_t)CALL((recv), (SFT_parser_tables[3] + 187)))
+#define CALL_parser_tables___ParserTable___action_table_row187(recv) ((parser_tables___ParserTable___action_table_row187_t)CALL((recv), (SFT_parser_tables[3] + 188)))
+#define CALL_parser_tables___ParserTable___action_table_row188(recv) ((parser_tables___ParserTable___action_table_row188_t)CALL((recv), (SFT_parser_tables[3] + 189)))
+#define CALL_parser_tables___ParserTable___action_table_row189(recv) ((parser_tables___ParserTable___action_table_row189_t)CALL((recv), (SFT_parser_tables[3] + 190)))
+#define CALL_parser_tables___ParserTable___action_table_row190(recv) ((parser_tables___ParserTable___action_table_row190_t)CALL((recv), (SFT_parser_tables[3] + 191)))
+#define CALL_parser_tables___ParserTable___action_table_row191(recv) ((parser_tables___ParserTable___action_table_row191_t)CALL((recv), (SFT_parser_tables[3] + 192)))
+#define CALL_parser_tables___ParserTable___action_table_row192(recv) ((parser_tables___ParserTable___action_table_row192_t)CALL((recv), (SFT_parser_tables[3] + 193)))
+#define CALL_parser_tables___ParserTable___action_table_row193(recv) ((parser_tables___ParserTable___action_table_row193_t)CALL((recv), (SFT_parser_tables[3] + 194)))
+#define CALL_parser_tables___ParserTable___action_table_row194(recv) ((parser_tables___ParserTable___action_table_row194_t)CALL((recv), (SFT_parser_tables[3] + 195)))
+#define CALL_parser_tables___ParserTable___action_table_row195(recv) ((parser_tables___ParserTable___action_table_row195_t)CALL((recv), (SFT_parser_tables[3] + 196)))
+#define CALL_parser_tables___ParserTable___action_table_row196(recv) ((parser_tables___ParserTable___action_table_row196_t)CALL((recv), (SFT_parser_tables[3] + 197)))
+#define CALL_parser_tables___ParserTable___action_table_row197(recv) ((parser_tables___ParserTable___action_table_row197_t)CALL((recv), (SFT_parser_tables[3] + 198)))
+#define CALL_parser_tables___ParserTable___action_table_row198(recv) ((parser_tables___ParserTable___action_table_row198_t)CALL((recv), (SFT_parser_tables[3] + 199)))
+#define CALL_parser_tables___ParserTable___action_table_row199(recv) ((parser_tables___ParserTable___action_table_row199_t)CALL((recv), (SFT_parser_tables[3] + 200)))
+#define CALL_parser_tables___ParserTable___action_table_row200(recv) ((parser_tables___ParserTable___action_table_row200_t)CALL((recv), (SFT_parser_tables[3] + 201)))
+#define CALL_parser_tables___ParserTable___action_table_row201(recv) ((parser_tables___ParserTable___action_table_row201_t)CALL((recv), (SFT_parser_tables[3] + 202)))
+#define CALL_parser_tables___ParserTable___action_table_row202(recv) ((parser_tables___ParserTable___action_table_row202_t)CALL((recv), (SFT_parser_tables[3] + 203)))
+#define CALL_parser_tables___ParserTable___action_table_row203(recv) ((parser_tables___ParserTable___action_table_row203_t)CALL((recv), (SFT_parser_tables[3] + 204)))
+#define CALL_parser_tables___ParserTable___action_table_row204(recv) ((parser_tables___ParserTable___action_table_row204_t)CALL((recv), (SFT_parser_tables[3] + 205)))
+#define CALL_parser_tables___ParserTable___action_table_row205(recv) ((parser_tables___ParserTable___action_table_row205_t)CALL((recv), (SFT_parser_tables[3] + 206)))
+#define CALL_parser_tables___ParserTable___action_table_row206(recv) ((parser_tables___ParserTable___action_table_row206_t)CALL((recv), (SFT_parser_tables[3] + 207)))
+#define CALL_parser_tables___ParserTable___action_table_row207(recv) ((parser_tables___ParserTable___action_table_row207_t)CALL((recv), (SFT_parser_tables[3] + 208)))
+#define CALL_parser_tables___ParserTable___action_table_row208(recv) ((parser_tables___ParserTable___action_table_row208_t)CALL((recv), (SFT_parser_tables[3] + 209)))
+#define CALL_parser_tables___ParserTable___action_table_row209(recv) ((parser_tables___ParserTable___action_table_row209_t)CALL((recv), (SFT_parser_tables[3] + 210)))
+#define CALL_parser_tables___ParserTable___action_table_row210(recv) ((parser_tables___ParserTable___action_table_row210_t)CALL((recv), (SFT_parser_tables[3] + 211)))
+#define CALL_parser_tables___ParserTable___action_table_row211(recv) ((parser_tables___ParserTable___action_table_row211_t)CALL((recv), (SFT_parser_tables[3] + 212)))
+#define CALL_parser_tables___ParserTable___action_table_row212(recv) ((parser_tables___ParserTable___action_table_row212_t)CALL((recv), (SFT_parser_tables[3] + 213)))
+#define CALL_parser_tables___ParserTable___action_table_row213(recv) ((parser_tables___ParserTable___action_table_row213_t)CALL((recv), (SFT_parser_tables[3] + 214)))
+#define CALL_parser_tables___ParserTable___action_table_row214(recv) ((parser_tables___ParserTable___action_table_row214_t)CALL((recv), (SFT_parser_tables[3] + 215)))
+#define CALL_parser_tables___ParserTable___action_table_row215(recv) ((parser_tables___ParserTable___action_table_row215_t)CALL((recv), (SFT_parser_tables[3] + 216)))
+#define CALL_parser_tables___ParserTable___action_table_row216(recv) ((parser_tables___ParserTable___action_table_row216_t)CALL((recv), (SFT_parser_tables[3] + 217)))
+#define CALL_parser_tables___ParserTable___action_table_row217(recv) ((parser_tables___ParserTable___action_table_row217_t)CALL((recv), (SFT_parser_tables[3] + 218)))
+#define CALL_parser_tables___ParserTable___action_table_row218(recv) ((parser_tables___ParserTable___action_table_row218_t)CALL((recv), (SFT_parser_tables[3] + 219)))
+#define CALL_parser_tables___ParserTable___action_table_row219(recv) ((parser_tables___ParserTable___action_table_row219_t)CALL((recv), (SFT_parser_tables[3] + 220)))
+#define CALL_parser_tables___ParserTable___action_table_row220(recv) ((parser_tables___ParserTable___action_table_row220_t)CALL((recv), (SFT_parser_tables[3] + 221)))
+#define CALL_parser_tables___ParserTable___action_table_row221(recv) ((parser_tables___ParserTable___action_table_row221_t)CALL((recv), (SFT_parser_tables[3] + 222)))
+#define CALL_parser_tables___ParserTable___action_table_row222(recv) ((parser_tables___ParserTable___action_table_row222_t)CALL((recv), (SFT_parser_tables[3] + 223)))
+#define CALL_parser_tables___ParserTable___action_table_row223(recv) ((parser_tables___ParserTable___action_table_row223_t)CALL((recv), (SFT_parser_tables[3] + 224)))
+#define CALL_parser_tables___ParserTable___action_table_row224(recv) ((parser_tables___ParserTable___action_table_row224_t)CALL((recv), (SFT_parser_tables[3] + 225)))
+#define CALL_parser_tables___ParserTable___action_table_row225(recv) ((parser_tables___ParserTable___action_table_row225_t)CALL((recv), (SFT_parser_tables[3] + 226)))
+#define CALL_parser_tables___ParserTable___action_table_row226(recv) ((parser_tables___ParserTable___action_table_row226_t)CALL((recv), (SFT_parser_tables[3] + 227)))
+#define CALL_parser_tables___ParserTable___action_table_row227(recv) ((parser_tables___ParserTable___action_table_row227_t)CALL((recv), (SFT_parser_tables[3] + 228)))
+#define CALL_parser_tables___ParserTable___action_table_row228(recv) ((parser_tables___ParserTable___action_table_row228_t)CALL((recv), (SFT_parser_tables[3] + 229)))
+#define CALL_parser_tables___ParserTable___action_table_row229(recv) ((parser_tables___ParserTable___action_table_row229_t)CALL((recv), (SFT_parser_tables[3] + 230)))
+#define CALL_parser_tables___ParserTable___action_table_row230(recv) ((parser_tables___ParserTable___action_table_row230_t)CALL((recv), (SFT_parser_tables[3] + 231)))
+#define CALL_parser_tables___ParserTable___action_table_row231(recv) ((parser_tables___ParserTable___action_table_row231_t)CALL((recv), (SFT_parser_tables[3] + 232)))
+#define CALL_parser_tables___ParserTable___action_table_row232(recv) ((parser_tables___ParserTable___action_table_row232_t)CALL((recv), (SFT_parser_tables[3] + 233)))
+#define CALL_parser_tables___ParserTable___action_table_row233(recv) ((parser_tables___ParserTable___action_table_row233_t)CALL((recv), (SFT_parser_tables[3] + 234)))
+#define CALL_parser_tables___ParserTable___action_table_row234(recv) ((parser_tables___ParserTable___action_table_row234_t)CALL((recv), (SFT_parser_tables[3] + 235)))
+#define CALL_parser_tables___ParserTable___action_table_row235(recv) ((parser_tables___ParserTable___action_table_row235_t)CALL((recv), (SFT_parser_tables[3] + 236)))
+#define CALL_parser_tables___ParserTable___action_table_row236(recv) ((parser_tables___ParserTable___action_table_row236_t)CALL((recv), (SFT_parser_tables[3] + 237)))
+#define CALL_parser_tables___ParserTable___action_table_row237(recv) ((parser_tables___ParserTable___action_table_row237_t)CALL((recv), (SFT_parser_tables[3] + 238)))
+#define CALL_parser_tables___ParserTable___action_table_row238(recv) ((parser_tables___ParserTable___action_table_row238_t)CALL((recv), (SFT_parser_tables[3] + 239)))
+#define CALL_parser_tables___ParserTable___action_table_row239(recv) ((parser_tables___ParserTable___action_table_row239_t)CALL((recv), (SFT_parser_tables[3] + 240)))
+#define CALL_parser_tables___ParserTable___action_table_row240(recv) ((parser_tables___ParserTable___action_table_row240_t)CALL((recv), (SFT_parser_tables[3] + 241)))
+#define CALL_parser_tables___ParserTable___action_table_row241(recv) ((parser_tables___ParserTable___action_table_row241_t)CALL((recv), (SFT_parser_tables[3] + 242)))
+#define CALL_parser_tables___ParserTable___action_table_row242(recv) ((parser_tables___ParserTable___action_table_row242_t)CALL((recv), (SFT_parser_tables[3] + 243)))
+#define CALL_parser_tables___ParserTable___action_table_row243(recv) ((parser_tables___ParserTable___action_table_row243_t)CALL((recv), (SFT_parser_tables[3] + 244)))
+#define CALL_parser_tables___ParserTable___action_table_row244(recv) ((parser_tables___ParserTable___action_table_row244_t)CALL((recv), (SFT_parser_tables[3] + 245)))
+#define CALL_parser_tables___ParserTable___action_table_row245(recv) ((parser_tables___ParserTable___action_table_row245_t)CALL((recv), (SFT_parser_tables[3] + 246)))
+#define CALL_parser_tables___ParserTable___action_table_row246(recv) ((parser_tables___ParserTable___action_table_row246_t)CALL((recv), (SFT_parser_tables[3] + 247)))
+#define CALL_parser_tables___ParserTable___action_table_row247(recv) ((parser_tables___ParserTable___action_table_row247_t)CALL((recv), (SFT_parser_tables[3] + 248)))
+#define CALL_parser_tables___ParserTable___action_table_row248(recv) ((parser_tables___ParserTable___action_table_row248_t)CALL((recv), (SFT_parser_tables[3] + 249)))
+#define CALL_parser_tables___ParserTable___action_table_row249(recv) ((parser_tables___ParserTable___action_table_row249_t)CALL((recv), (SFT_parser_tables[3] + 250)))
+#define CALL_parser_tables___ParserTable___action_table_row250(recv) ((parser_tables___ParserTable___action_table_row250_t)CALL((recv), (SFT_parser_tables[3] + 251)))
+#define CALL_parser_tables___ParserTable___action_table_row251(recv) ((parser_tables___ParserTable___action_table_row251_t)CALL((recv), (SFT_parser_tables[3] + 252)))
+#define CALL_parser_tables___ParserTable___action_table_row252(recv) ((parser_tables___ParserTable___action_table_row252_t)CALL((recv), (SFT_parser_tables[3] + 253)))
+#define CALL_parser_tables___ParserTable___action_table_row253(recv) ((parser_tables___ParserTable___action_table_row253_t)CALL((recv), (SFT_parser_tables[3] + 254)))
+#define CALL_parser_tables___ParserTable___action_table_row254(recv) ((parser_tables___ParserTable___action_table_row254_t)CALL((recv), (SFT_parser_tables[3] + 255)))
+#define CALL_parser_tables___ParserTable___action_table_row255(recv) ((parser_tables___ParserTable___action_table_row255_t)CALL((recv), (SFT_parser_tables[3] + 256)))
+#define CALL_parser_tables___ParserTable___action_table_row256(recv) ((parser_tables___ParserTable___action_table_row256_t)CALL((recv), (SFT_parser_tables[3] + 257)))
+#define CALL_parser_tables___ParserTable___action_table_row257(recv) ((parser_tables___ParserTable___action_table_row257_t)CALL((recv), (SFT_parser_tables[3] + 258)))
+#define CALL_parser_tables___ParserTable___action_table_row258(recv) ((parser_tables___ParserTable___action_table_row258_t)CALL((recv), (SFT_parser_tables[3] + 259)))
+#define CALL_parser_tables___ParserTable___action_table_row259(recv) ((parser_tables___ParserTable___action_table_row259_t)CALL((recv), (SFT_parser_tables[3] + 260)))
+#define CALL_parser_tables___ParserTable___action_table_row260(recv) ((parser_tables___ParserTable___action_table_row260_t)CALL((recv), (SFT_parser_tables[3] + 261)))
+#define CALL_parser_tables___ParserTable___action_table_row261(recv) ((parser_tables___ParserTable___action_table_row261_t)CALL((recv), (SFT_parser_tables[3] + 262)))
+#define CALL_parser_tables___ParserTable___action_table_row262(recv) ((parser_tables___ParserTable___action_table_row262_t)CALL((recv), (SFT_parser_tables[3] + 263)))
+#define CALL_parser_tables___ParserTable___action_table_row263(recv) ((parser_tables___ParserTable___action_table_row263_t)CALL((recv), (SFT_parser_tables[3] + 264)))
+#define CALL_parser_tables___ParserTable___action_table_row264(recv) ((parser_tables___ParserTable___action_table_row264_t)CALL((recv), (SFT_parser_tables[3] + 265)))
+#define CALL_parser_tables___ParserTable___action_table_row265(recv) ((parser_tables___ParserTable___action_table_row265_t)CALL((recv), (SFT_parser_tables[3] + 266)))
+#define CALL_parser_tables___ParserTable___action_table_row266(recv) ((parser_tables___ParserTable___action_table_row266_t)CALL((recv), (SFT_parser_tables[3] + 267)))
+#define CALL_parser_tables___ParserTable___action_table_row267(recv) ((parser_tables___ParserTable___action_table_row267_t)CALL((recv), (SFT_parser_tables[3] + 268)))
+#define CALL_parser_tables___ParserTable___action_table_row268(recv) ((parser_tables___ParserTable___action_table_row268_t)CALL((recv), (SFT_parser_tables[3] + 269)))
+#define CALL_parser_tables___ParserTable___action_table_row269(recv) ((parser_tables___ParserTable___action_table_row269_t)CALL((recv), (SFT_parser_tables[3] + 270)))
+#define CALL_parser_tables___ParserTable___action_table_row270(recv) ((parser_tables___ParserTable___action_table_row270_t)CALL((recv), (SFT_parser_tables[3] + 271)))
+#define CALL_parser_tables___ParserTable___action_table_row271(recv) ((parser_tables___ParserTable___action_table_row271_t)CALL((recv), (SFT_parser_tables[3] + 272)))
+#define CALL_parser_tables___ParserTable___action_table_row272(recv) ((parser_tables___ParserTable___action_table_row272_t)CALL((recv), (SFT_parser_tables[3] + 273)))
+#define CALL_parser_tables___ParserTable___action_table_row273(recv) ((parser_tables___ParserTable___action_table_row273_t)CALL((recv), (SFT_parser_tables[3] + 274)))
+#define CALL_parser_tables___ParserTable___action_table_row274(recv) ((parser_tables___ParserTable___action_table_row274_t)CALL((recv), (SFT_parser_tables[3] + 275)))
+#define CALL_parser_tables___ParserTable___action_table_row275(recv) ((parser_tables___ParserTable___action_table_row275_t)CALL((recv), (SFT_parser_tables[3] + 276)))
+#define CALL_parser_tables___ParserTable___action_table_row276(recv) ((parser_tables___ParserTable___action_table_row276_t)CALL((recv), (SFT_parser_tables[3] + 277)))
+#define CALL_parser_tables___ParserTable___action_table_row277(recv) ((parser_tables___ParserTable___action_table_row277_t)CALL((recv), (SFT_parser_tables[3] + 278)))
+#define CALL_parser_tables___ParserTable___action_table_row278(recv) ((parser_tables___ParserTable___action_table_row278_t)CALL((recv), (SFT_parser_tables[3] + 279)))
+#define CALL_parser_tables___ParserTable___action_table_row279(recv) ((parser_tables___ParserTable___action_table_row279_t)CALL((recv), (SFT_parser_tables[3] + 280)))
+#define CALL_parser_tables___ParserTable___action_table_row280(recv) ((parser_tables___ParserTable___action_table_row280_t)CALL((recv), (SFT_parser_tables[3] + 281)))
+#define CALL_parser_tables___ParserTable___action_table_row281(recv) ((parser_tables___ParserTable___action_table_row281_t)CALL((recv), (SFT_parser_tables[3] + 282)))
+#define CALL_parser_tables___ParserTable___action_table_row282(recv) ((parser_tables___ParserTable___action_table_row282_t)CALL((recv), (SFT_parser_tables[3] + 283)))
+#define CALL_parser_tables___ParserTable___action_table_row283(recv) ((parser_tables___ParserTable___action_table_row283_t)CALL((recv), (SFT_parser_tables[3] + 284)))
+#define CALL_parser_tables___ParserTable___action_table_row284(recv) ((parser_tables___ParserTable___action_table_row284_t)CALL((recv), (SFT_parser_tables[3] + 285)))
+#define CALL_parser_tables___ParserTable___action_table_row285(recv) ((parser_tables___ParserTable___action_table_row285_t)CALL((recv), (SFT_parser_tables[3] + 286)))
+#define CALL_parser_tables___ParserTable___action_table_row286(recv) ((parser_tables___ParserTable___action_table_row286_t)CALL((recv), (SFT_parser_tables[3] + 287)))
+#define CALL_parser_tables___ParserTable___action_table_row287(recv) ((parser_tables___ParserTable___action_table_row287_t)CALL((recv), (SFT_parser_tables[3] + 288)))
+#define CALL_parser_tables___ParserTable___action_table_row288(recv) ((parser_tables___ParserTable___action_table_row288_t)CALL((recv), (SFT_parser_tables[3] + 289)))
+#define CALL_parser_tables___ParserTable___action_table_row289(recv) ((parser_tables___ParserTable___action_table_row289_t)CALL((recv), (SFT_parser_tables[3] + 290)))
+#define CALL_parser_tables___ParserTable___action_table_row290(recv) ((parser_tables___ParserTable___action_table_row290_t)CALL((recv), (SFT_parser_tables[3] + 291)))
+#define CALL_parser_tables___ParserTable___action_table_row291(recv) ((parser_tables___ParserTable___action_table_row291_t)CALL((recv), (SFT_parser_tables[3] + 292)))
+#define CALL_parser_tables___ParserTable___action_table_row292(recv) ((parser_tables___ParserTable___action_table_row292_t)CALL((recv), (SFT_parser_tables[3] + 293)))
+#define CALL_parser_tables___ParserTable___action_table_row293(recv) ((parser_tables___ParserTable___action_table_row293_t)CALL((recv), (SFT_parser_tables[3] + 294)))
+#define CALL_parser_tables___ParserTable___action_table_row294(recv) ((parser_tables___ParserTable___action_table_row294_t)CALL((recv), (SFT_parser_tables[3] + 295)))
+#define CALL_parser_tables___ParserTable___action_table_row295(recv) ((parser_tables___ParserTable___action_table_row295_t)CALL((recv), (SFT_parser_tables[3] + 296)))
+#define CALL_parser_tables___ParserTable___action_table_row296(recv) ((parser_tables___ParserTable___action_table_row296_t)CALL((recv), (SFT_parser_tables[3] + 297)))
+#define CALL_parser_tables___ParserTable___action_table_row297(recv) ((parser_tables___ParserTable___action_table_row297_t)CALL((recv), (SFT_parser_tables[3] + 298)))
+#define CALL_parser_tables___ParserTable___action_table_row298(recv) ((parser_tables___ParserTable___action_table_row298_t)CALL((recv), (SFT_parser_tables[3] + 299)))
+#define CALL_parser_tables___ParserTable___action_table_row299(recv) ((parser_tables___ParserTable___action_table_row299_t)CALL((recv), (SFT_parser_tables[3] + 300)))
+#define CALL_parser_tables___ParserTable___action_table_row300(recv) ((parser_tables___ParserTable___action_table_row300_t)CALL((recv), (SFT_parser_tables[3] + 301)))
+#define CALL_parser_tables___ParserTable___action_table_row301(recv) ((parser_tables___ParserTable___action_table_row301_t)CALL((recv), (SFT_parser_tables[3] + 302)))
+#define CALL_parser_tables___ParserTable___action_table_row302(recv) ((parser_tables___ParserTable___action_table_row302_t)CALL((recv), (SFT_parser_tables[3] + 303)))
+#define CALL_parser_tables___ParserTable___action_table_row303(recv) ((parser_tables___ParserTable___action_table_row303_t)CALL((recv), (SFT_parser_tables[3] + 304)))
+#define CALL_parser_tables___ParserTable___action_table_row304(recv) ((parser_tables___ParserTable___action_table_row304_t)CALL((recv), (SFT_parser_tables[3] + 305)))
+#define CALL_parser_tables___ParserTable___action_table_row305(recv) ((parser_tables___ParserTable___action_table_row305_t)CALL((recv), (SFT_parser_tables[3] + 306)))
+#define CALL_parser_tables___ParserTable___action_table_row306(recv) ((parser_tables___ParserTable___action_table_row306_t)CALL((recv), (SFT_parser_tables[3] + 307)))
+#define CALL_parser_tables___ParserTable___action_table_row307(recv) ((parser_tables___ParserTable___action_table_row307_t)CALL((recv), (SFT_parser_tables[3] + 308)))
+#define CALL_parser_tables___ParserTable___action_table_row308(recv) ((parser_tables___ParserTable___action_table_row308_t)CALL((recv), (SFT_parser_tables[3] + 309)))
+#define CALL_parser_tables___ParserTable___action_table_row309(recv) ((parser_tables___ParserTable___action_table_row309_t)CALL((recv), (SFT_parser_tables[3] + 310)))
+#define CALL_parser_tables___ParserTable___action_table_row310(recv) ((parser_tables___ParserTable___action_table_row310_t)CALL((recv), (SFT_parser_tables[3] + 311)))
+#define CALL_parser_tables___ParserTable___action_table_row311(recv) ((parser_tables___ParserTable___action_table_row311_t)CALL((recv), (SFT_parser_tables[3] + 312)))
+#define CALL_parser_tables___ParserTable___action_table_row312(recv) ((parser_tables___ParserTable___action_table_row312_t)CALL((recv), (SFT_parser_tables[3] + 313)))
+#define CALL_parser_tables___ParserTable___action_table_row313(recv) ((parser_tables___ParserTable___action_table_row313_t)CALL((recv), (SFT_parser_tables[3] + 314)))
+#define CALL_parser_tables___ParserTable___action_table_row314(recv) ((parser_tables___ParserTable___action_table_row314_t)CALL((recv), (SFT_parser_tables[3] + 315)))
+#define CALL_parser_tables___ParserTable___action_table_row315(recv) ((parser_tables___ParserTable___action_table_row315_t)CALL((recv), (SFT_parser_tables[3] + 316)))
+#define CALL_parser_tables___ParserTable___action_table_row316(recv) ((parser_tables___ParserTable___action_table_row316_t)CALL((recv), (SFT_parser_tables[3] + 317)))
+#define CALL_parser_tables___ParserTable___action_table_row317(recv) ((parser_tables___ParserTable___action_table_row317_t)CALL((recv), (SFT_parser_tables[3] + 318)))
+#define CALL_parser_tables___ParserTable___action_table_row318(recv) ((parser_tables___ParserTable___action_table_row318_t)CALL((recv), (SFT_parser_tables[3] + 319)))
+#define CALL_parser_tables___ParserTable___action_table_row319(recv) ((parser_tables___ParserTable___action_table_row319_t)CALL((recv), (SFT_parser_tables[3] + 320)))
+#define CALL_parser_tables___ParserTable___action_table_row320(recv) ((parser_tables___ParserTable___action_table_row320_t)CALL((recv), (SFT_parser_tables[3] + 321)))
+#define CALL_parser_tables___ParserTable___action_table_row321(recv) ((parser_tables___ParserTable___action_table_row321_t)CALL((recv), (SFT_parser_tables[3] + 322)))
+#define CALL_parser_tables___ParserTable___action_table_row322(recv) ((parser_tables___ParserTable___action_table_row322_t)CALL((recv), (SFT_parser_tables[3] + 323)))
+#define CALL_parser_tables___ParserTable___action_table_row323(recv) ((parser_tables___ParserTable___action_table_row323_t)CALL((recv), (SFT_parser_tables[3] + 324)))
+#define CALL_parser_tables___ParserTable___action_table_row324(recv) ((parser_tables___ParserTable___action_table_row324_t)CALL((recv), (SFT_parser_tables[3] + 325)))
+#define CALL_parser_tables___ParserTable___action_table_row325(recv) ((parser_tables___ParserTable___action_table_row325_t)CALL((recv), (SFT_parser_tables[3] + 326)))
+#define CALL_parser_tables___ParserTable___action_table_row326(recv) ((parser_tables___ParserTable___action_table_row326_t)CALL((recv), (SFT_parser_tables[3] + 327)))
+#define CALL_parser_tables___ParserTable___action_table_row327(recv) ((parser_tables___ParserTable___action_table_row327_t)CALL((recv), (SFT_parser_tables[3] + 328)))
+#define CALL_parser_tables___ParserTable___action_table_row328(recv) ((parser_tables___ParserTable___action_table_row328_t)CALL((recv), (SFT_parser_tables[3] + 329)))
+#define CALL_parser_tables___ParserTable___action_table_row329(recv) ((parser_tables___ParserTable___action_table_row329_t)CALL((recv), (SFT_parser_tables[3] + 330)))
+#define CALL_parser_tables___ParserTable___action_table_row330(recv) ((parser_tables___ParserTable___action_table_row330_t)CALL((recv), (SFT_parser_tables[3] + 331)))
+#define CALL_parser_tables___ParserTable___action_table_row331(recv) ((parser_tables___ParserTable___action_table_row331_t)CALL((recv), (SFT_parser_tables[3] + 332)))
+#define CALL_parser_tables___ParserTable___action_table_row332(recv) ((parser_tables___ParserTable___action_table_row332_t)CALL((recv), (SFT_parser_tables[3] + 333)))
+#define CALL_parser_tables___ParserTable___action_table_row333(recv) ((parser_tables___ParserTable___action_table_row333_t)CALL((recv), (SFT_parser_tables[3] + 334)))
+#define CALL_parser_tables___ParserTable___action_table_row334(recv) ((parser_tables___ParserTable___action_table_row334_t)CALL((recv), (SFT_parser_tables[3] + 335)))
+#define CALL_parser_tables___ParserTable___action_table_row335(recv) ((parser_tables___ParserTable___action_table_row335_t)CALL((recv), (SFT_parser_tables[3] + 336)))
+#define CALL_parser_tables___ParserTable___action_table_row336(recv) ((parser_tables___ParserTable___action_table_row336_t)CALL((recv), (SFT_parser_tables[3] + 337)))
+#define CALL_parser_tables___ParserTable___action_table_row337(recv) ((parser_tables___ParserTable___action_table_row337_t)CALL((recv), (SFT_parser_tables[3] + 338)))
+#define CALL_parser_tables___ParserTable___action_table_row338(recv) ((parser_tables___ParserTable___action_table_row338_t)CALL((recv), (SFT_parser_tables[3] + 339)))
+#define CALL_parser_tables___ParserTable___action_table_row339(recv) ((parser_tables___ParserTable___action_table_row339_t)CALL((recv), (SFT_parser_tables[3] + 340)))
+#define CALL_parser_tables___ParserTable___action_table_row340(recv) ((parser_tables___ParserTable___action_table_row340_t)CALL((recv), (SFT_parser_tables[3] + 341)))
+#define CALL_parser_tables___ParserTable___action_table_row341(recv) ((parser_tables___ParserTable___action_table_row341_t)CALL((recv), (SFT_parser_tables[3] + 342)))
+#define CALL_parser_tables___ParserTable___action_table_row342(recv) ((parser_tables___ParserTable___action_table_row342_t)CALL((recv), (SFT_parser_tables[3] + 343)))
+#define CALL_parser_tables___ParserTable___action_table_row343(recv) ((parser_tables___ParserTable___action_table_row343_t)CALL((recv), (SFT_parser_tables[3] + 344)))
+#define CALL_parser_tables___ParserTable___action_table_row344(recv) ((parser_tables___ParserTable___action_table_row344_t)CALL((recv), (SFT_parser_tables[3] + 345)))
+#define CALL_parser_tables___ParserTable___action_table_row345(recv) ((parser_tables___ParserTable___action_table_row345_t)CALL((recv), (SFT_parser_tables[3] + 346)))
+#define CALL_parser_tables___ParserTable___action_table_row346(recv) ((parser_tables___ParserTable___action_table_row346_t)CALL((recv), (SFT_parser_tables[3] + 347)))
+#define CALL_parser_tables___ParserTable___action_table_row347(recv) ((parser_tables___ParserTable___action_table_row347_t)CALL((recv), (SFT_parser_tables[3] + 348)))
+#define CALL_parser_tables___ParserTable___action_table_row348(recv) ((parser_tables___ParserTable___action_table_row348_t)CALL((recv), (SFT_parser_tables[3] + 349)))
+#define CALL_parser_tables___ParserTable___action_table_row349(recv) ((parser_tables___ParserTable___action_table_row349_t)CALL((recv), (SFT_parser_tables[3] + 350)))
+#define CALL_parser_tables___ParserTable___action_table_row350(recv) ((parser_tables___ParserTable___action_table_row350_t)CALL((recv), (SFT_parser_tables[3] + 351)))
+#define CALL_parser_tables___ParserTable___action_table_row351(recv) ((parser_tables___ParserTable___action_table_row351_t)CALL((recv), (SFT_parser_tables[3] + 352)))
+#define CALL_parser_tables___ParserTable___action_table_row352(recv) ((parser_tables___ParserTable___action_table_row352_t)CALL((recv), (SFT_parser_tables[3] + 353)))
+#define CALL_parser_tables___ParserTable___action_table_row353(recv) ((parser_tables___ParserTable___action_table_row353_t)CALL((recv), (SFT_parser_tables[3] + 354)))
+#define CALL_parser_tables___ParserTable___action_table_row354(recv) ((parser_tables___ParserTable___action_table_row354_t)CALL((recv), (SFT_parser_tables[3] + 355)))
+#define CALL_parser_tables___ParserTable___action_table_row355(recv) ((parser_tables___ParserTable___action_table_row355_t)CALL((recv), (SFT_parser_tables[3] + 356)))
+#define CALL_parser_tables___ParserTable___action_table_row356(recv) ((parser_tables___ParserTable___action_table_row356_t)CALL((recv), (SFT_parser_tables[3] + 357)))
+#define CALL_parser_tables___ParserTable___action_table_row357(recv) ((parser_tables___ParserTable___action_table_row357_t)CALL((recv), (SFT_parser_tables[3] + 358)))
+#define CALL_parser_tables___ParserTable___action_table_row358(recv) ((parser_tables___ParserTable___action_table_row358_t)CALL((recv), (SFT_parser_tables[3] + 359)))
+#define CALL_parser_tables___ParserTable___action_table_row359(recv) ((parser_tables___ParserTable___action_table_row359_t)CALL((recv), (SFT_parser_tables[3] + 360)))
+#define CALL_parser_tables___ParserTable___action_table_row360(recv) ((parser_tables___ParserTable___action_table_row360_t)CALL((recv), (SFT_parser_tables[3] + 361)))
+#define CALL_parser_tables___ParserTable___action_table_row361(recv) ((parser_tables___ParserTable___action_table_row361_t)CALL((recv), (SFT_parser_tables[3] + 362)))
+#define CALL_parser_tables___ParserTable___action_table_row362(recv) ((parser_tables___ParserTable___action_table_row362_t)CALL((recv), (SFT_parser_tables[3] + 363)))
+#define CALL_parser_tables___ParserTable___action_table_row363(recv) ((parser_tables___ParserTable___action_table_row363_t)CALL((recv), (SFT_parser_tables[3] + 364)))
+#define CALL_parser_tables___ParserTable___action_table_row364(recv) ((parser_tables___ParserTable___action_table_row364_t)CALL((recv), (SFT_parser_tables[3] + 365)))
+#define CALL_parser_tables___ParserTable___action_table_row365(recv) ((parser_tables___ParserTable___action_table_row365_t)CALL((recv), (SFT_parser_tables[3] + 366)))
+#define CALL_parser_tables___ParserTable___action_table_row366(recv) ((parser_tables___ParserTable___action_table_row366_t)CALL((recv), (SFT_parser_tables[3] + 367)))
+#define CALL_parser_tables___ParserTable___action_table_row367(recv) ((parser_tables___ParserTable___action_table_row367_t)CALL((recv), (SFT_parser_tables[3] + 368)))
+#define CALL_parser_tables___ParserTable___action_table_row368(recv) ((parser_tables___ParserTable___action_table_row368_t)CALL((recv), (SFT_parser_tables[3] + 369)))
+#define CALL_parser_tables___ParserTable___action_table_row369(recv) ((parser_tables___ParserTable___action_table_row369_t)CALL((recv), (SFT_parser_tables[3] + 370)))
+#define CALL_parser_tables___ParserTable___action_table_row370(recv) ((parser_tables___ParserTable___action_table_row370_t)CALL((recv), (SFT_parser_tables[3] + 371)))
+#define CALL_parser_tables___ParserTable___action_table_row371(recv) ((parser_tables___ParserTable___action_table_row371_t)CALL((recv), (SFT_parser_tables[3] + 372)))
+#define CALL_parser_tables___ParserTable___action_table_row372(recv) ((parser_tables___ParserTable___action_table_row372_t)CALL((recv), (SFT_parser_tables[3] + 373)))
+#define CALL_parser_tables___ParserTable___action_table_row373(recv) ((parser_tables___ParserTable___action_table_row373_t)CALL((recv), (SFT_parser_tables[3] + 374)))
+#define CALL_parser_tables___ParserTable___action_table_row374(recv) ((parser_tables___ParserTable___action_table_row374_t)CALL((recv), (SFT_parser_tables[3] + 375)))
+#define CALL_parser_tables___ParserTable___action_table_row375(recv) ((parser_tables___ParserTable___action_table_row375_t)CALL((recv), (SFT_parser_tables[3] + 376)))
+#define CALL_parser_tables___ParserTable___action_table_row376(recv) ((parser_tables___ParserTable___action_table_row376_t)CALL((recv), (SFT_parser_tables[3] + 377)))
+#define CALL_parser_tables___ParserTable___action_table_row377(recv) ((parser_tables___ParserTable___action_table_row377_t)CALL((recv), (SFT_parser_tables[3] + 378)))
+#define CALL_parser_tables___ParserTable___action_table_row378(recv) ((parser_tables___ParserTable___action_table_row378_t)CALL((recv), (SFT_parser_tables[3] + 379)))
+#define CALL_parser_tables___ParserTable___action_table_row379(recv) ((parser_tables___ParserTable___action_table_row379_t)CALL((recv), (SFT_parser_tables[3] + 380)))
+#define CALL_parser_tables___ParserTable___action_table_row380(recv) ((parser_tables___ParserTable___action_table_row380_t)CALL((recv), (SFT_parser_tables[3] + 381)))
+#define CALL_parser_tables___ParserTable___action_table_row381(recv) ((parser_tables___ParserTable___action_table_row381_t)CALL((recv), (SFT_parser_tables[3] + 382)))
+#define CALL_parser_tables___ParserTable___action_table_row382(recv) ((parser_tables___ParserTable___action_table_row382_t)CALL((recv), (SFT_parser_tables[3] + 383)))
+#define CALL_parser_tables___ParserTable___action_table_row383(recv) ((parser_tables___ParserTable___action_table_row383_t)CALL((recv), (SFT_parser_tables[3] + 384)))
+#define CALL_parser_tables___ParserTable___action_table_row384(recv) ((parser_tables___ParserTable___action_table_row384_t)CALL((recv), (SFT_parser_tables[3] + 385)))
+#define CALL_parser_tables___ParserTable___action_table_row385(recv) ((parser_tables___ParserTable___action_table_row385_t)CALL((recv), (SFT_parser_tables[3] + 386)))
+#define CALL_parser_tables___ParserTable___action_table_row386(recv) ((parser_tables___ParserTable___action_table_row386_t)CALL((recv), (SFT_parser_tables[3] + 387)))
+#define CALL_parser_tables___ParserTable___action_table_row387(recv) ((parser_tables___ParserTable___action_table_row387_t)CALL((recv), (SFT_parser_tables[3] + 388)))
+#define CALL_parser_tables___ParserTable___action_table_row388(recv) ((parser_tables___ParserTable___action_table_row388_t)CALL((recv), (SFT_parser_tables[3] + 389)))
+#define CALL_parser_tables___ParserTable___action_table_row389(recv) ((parser_tables___ParserTable___action_table_row389_t)CALL((recv), (SFT_parser_tables[3] + 390)))
+#define CALL_parser_tables___ParserTable___action_table_row390(recv) ((parser_tables___ParserTable___action_table_row390_t)CALL((recv), (SFT_parser_tables[3] + 391)))
+#define CALL_parser_tables___ParserTable___action_table_row391(recv) ((parser_tables___ParserTable___action_table_row391_t)CALL((recv), (SFT_parser_tables[3] + 392)))
+#define CALL_parser_tables___ParserTable___action_table_row392(recv) ((parser_tables___ParserTable___action_table_row392_t)CALL((recv), (SFT_parser_tables[3] + 393)))
+#define CALL_parser_tables___ParserTable___action_table_row393(recv) ((parser_tables___ParserTable___action_table_row393_t)CALL((recv), (SFT_parser_tables[3] + 394)))
+#define CALL_parser_tables___ParserTable___action_table_row394(recv) ((parser_tables___ParserTable___action_table_row394_t)CALL((recv), (SFT_parser_tables[3] + 395)))
+#define CALL_parser_tables___ParserTable___action_table_row395(recv) ((parser_tables___ParserTable___action_table_row395_t)CALL((recv), (SFT_parser_tables[3] + 396)))
+#define CALL_parser_tables___ParserTable___action_table_row396(recv) ((parser_tables___ParserTable___action_table_row396_t)CALL((recv), (SFT_parser_tables[3] + 397)))
+#define CALL_parser_tables___ParserTable___action_table_row397(recv) ((parser_tables___ParserTable___action_table_row397_t)CALL((recv), (SFT_parser_tables[3] + 398)))
+#define CALL_parser_tables___ParserTable___action_table_row398(recv) ((parser_tables___ParserTable___action_table_row398_t)CALL((recv), (SFT_parser_tables[3] + 399)))
+#define CALL_parser_tables___ParserTable___action_table_row399(recv) ((parser_tables___ParserTable___action_table_row399_t)CALL((recv), (SFT_parser_tables[3] + 400)))
+#define CALL_parser_tables___ParserTable___action_table_row400(recv) ((parser_tables___ParserTable___action_table_row400_t)CALL((recv), (SFT_parser_tables[3] + 401)))
+#define CALL_parser_tables___ParserTable___action_table_row401(recv) ((parser_tables___ParserTable___action_table_row401_t)CALL((recv), (SFT_parser_tables[3] + 402)))
+#define CALL_parser_tables___ParserTable___action_table_row402(recv) ((parser_tables___ParserTable___action_table_row402_t)CALL((recv), (SFT_parser_tables[3] + 403)))
+#define CALL_parser_tables___ParserTable___action_table_row403(recv) ((parser_tables___ParserTable___action_table_row403_t)CALL((recv), (SFT_parser_tables[3] + 404)))
+#define CALL_parser_tables___ParserTable___action_table_row404(recv) ((parser_tables___ParserTable___action_table_row404_t)CALL((recv), (SFT_parser_tables[3] + 405)))
+#define CALL_parser_tables___ParserTable___action_table_row405(recv) ((parser_tables___ParserTable___action_table_row405_t)CALL((recv), (SFT_parser_tables[3] + 406)))
+#define CALL_parser_tables___ParserTable___action_table_row406(recv) ((parser_tables___ParserTable___action_table_row406_t)CALL((recv), (SFT_parser_tables[3] + 407)))
+#define CALL_parser_tables___ParserTable___action_table_row407(recv) ((parser_tables___ParserTable___action_table_row407_t)CALL((recv), (SFT_parser_tables[3] + 408)))
+#define CALL_parser_tables___ParserTable___action_table_row408(recv) ((parser_tables___ParserTable___action_table_row408_t)CALL((recv), (SFT_parser_tables[3] + 409)))
+#define CALL_parser_tables___ParserTable___action_table_row409(recv) ((parser_tables___ParserTable___action_table_row409_t)CALL((recv), (SFT_parser_tables[3] + 410)))
+#define CALL_parser_tables___ParserTable___action_table_row410(recv) ((parser_tables___ParserTable___action_table_row410_t)CALL((recv), (SFT_parser_tables[3] + 411)))
+#define CALL_parser_tables___ParserTable___action_table_row411(recv) ((parser_tables___ParserTable___action_table_row411_t)CALL((recv), (SFT_parser_tables[3] + 412)))
+#define CALL_parser_tables___ParserTable___action_table_row412(recv) ((parser_tables___ParserTable___action_table_row412_t)CALL((recv), (SFT_parser_tables[3] + 413)))
+#define CALL_parser_tables___ParserTable___action_table_row413(recv) ((parser_tables___ParserTable___action_table_row413_t)CALL((recv), (SFT_parser_tables[3] + 414)))
+#define CALL_parser_tables___ParserTable___action_table_row414(recv) ((parser_tables___ParserTable___action_table_row414_t)CALL((recv), (SFT_parser_tables[3] + 415)))
+#define CALL_parser_tables___ParserTable___action_table_row415(recv) ((parser_tables___ParserTable___action_table_row415_t)CALL((recv), (SFT_parser_tables[3] + 416)))
+#define CALL_parser_tables___ParserTable___action_table_row416(recv) ((parser_tables___ParserTable___action_table_row416_t)CALL((recv), (SFT_parser_tables[3] + 417)))
+#define CALL_parser_tables___ParserTable___action_table_row417(recv) ((parser_tables___ParserTable___action_table_row417_t)CALL((recv), (SFT_parser_tables[3] + 418)))
+#define CALL_parser_tables___ParserTable___action_table_row418(recv) ((parser_tables___ParserTable___action_table_row418_t)CALL((recv), (SFT_parser_tables[3] + 419)))
+#define CALL_parser_tables___ParserTable___action_table_row419(recv) ((parser_tables___ParserTable___action_table_row419_t)CALL((recv), (SFT_parser_tables[3] + 420)))
+#define CALL_parser_tables___ParserTable___action_table_row420(recv) ((parser_tables___ParserTable___action_table_row420_t)CALL((recv), (SFT_parser_tables[3] + 421)))
+#define CALL_parser_tables___ParserTable___action_table_row421(recv) ((parser_tables___ParserTable___action_table_row421_t)CALL((recv), (SFT_parser_tables[3] + 422)))
+#define CALL_parser_tables___ParserTable___action_table_row422(recv) ((parser_tables___ParserTable___action_table_row422_t)CALL((recv), (SFT_parser_tables[3] + 423)))
+#define CALL_parser_tables___ParserTable___action_table_row423(recv) ((parser_tables___ParserTable___action_table_row423_t)CALL((recv), (SFT_parser_tables[3] + 424)))
+#define CALL_parser_tables___ParserTable___action_table_row424(recv) ((parser_tables___ParserTable___action_table_row424_t)CALL((recv), (SFT_parser_tables[3] + 425)))
+#define CALL_parser_tables___ParserTable___action_table_row425(recv) ((parser_tables___ParserTable___action_table_row425_t)CALL((recv), (SFT_parser_tables[3] + 426)))
+#define CALL_parser_tables___ParserTable___action_table_row426(recv) ((parser_tables___ParserTable___action_table_row426_t)CALL((recv), (SFT_parser_tables[3] + 427)))
+#define CALL_parser_tables___ParserTable___action_table_row427(recv) ((parser_tables___ParserTable___action_table_row427_t)CALL((recv), (SFT_parser_tables[3] + 428)))
+#define CALL_parser_tables___ParserTable___action_table_row428(recv) ((parser_tables___ParserTable___action_table_row428_t)CALL((recv), (SFT_parser_tables[3] + 429)))
+#define CALL_parser_tables___ParserTable___action_table_row429(recv) ((parser_tables___ParserTable___action_table_row429_t)CALL((recv), (SFT_parser_tables[3] + 430)))
+#define CALL_parser_tables___ParserTable___action_table_row430(recv) ((parser_tables___ParserTable___action_table_row430_t)CALL((recv), (SFT_parser_tables[3] + 431)))
+#define CALL_parser_tables___ParserTable___action_table_row431(recv) ((parser_tables___ParserTable___action_table_row431_t)CALL((recv), (SFT_parser_tables[3] + 432)))
+#define CALL_parser_tables___ParserTable___action_table_row432(recv) ((parser_tables___ParserTable___action_table_row432_t)CALL((recv), (SFT_parser_tables[3] + 433)))
+#define CALL_parser_tables___ParserTable___action_table_row433(recv) ((parser_tables___ParserTable___action_table_row433_t)CALL((recv), (SFT_parser_tables[3] + 434)))
+#define CALL_parser_tables___ParserTable___action_table_row434(recv) ((parser_tables___ParserTable___action_table_row434_t)CALL((recv), (SFT_parser_tables[3] + 435)))
+#define CALL_parser_tables___ParserTable___action_table_row435(recv) ((parser_tables___ParserTable___action_table_row435_t)CALL((recv), (SFT_parser_tables[3] + 436)))
+#define CALL_parser_tables___ParserTable___action_table_row436(recv) ((parser_tables___ParserTable___action_table_row436_t)CALL((recv), (SFT_parser_tables[3] + 437)))
+#define CALL_parser_tables___ParserTable___action_table_row437(recv) ((parser_tables___ParserTable___action_table_row437_t)CALL((recv), (SFT_parser_tables[3] + 438)))
+#define CALL_parser_tables___ParserTable___action_table_row438(recv) ((parser_tables___ParserTable___action_table_row438_t)CALL((recv), (SFT_parser_tables[3] + 439)))
+#define CALL_parser_tables___ParserTable___action_table_row439(recv) ((parser_tables___ParserTable___action_table_row439_t)CALL((recv), (SFT_parser_tables[3] + 440)))
+#define CALL_parser_tables___ParserTable___action_table_row440(recv) ((parser_tables___ParserTable___action_table_row440_t)CALL((recv), (SFT_parser_tables[3] + 441)))
+#define CALL_parser_tables___ParserTable___action_table_row441(recv) ((parser_tables___ParserTable___action_table_row441_t)CALL((recv), (SFT_parser_tables[3] + 442)))
+#define CALL_parser_tables___ParserTable___action_table_row442(recv) ((parser_tables___ParserTable___action_table_row442_t)CALL((recv), (SFT_parser_tables[3] + 443)))
+#define CALL_parser_tables___ParserTable___action_table_row443(recv) ((parser_tables___ParserTable___action_table_row443_t)CALL((recv), (SFT_parser_tables[3] + 444)))
+#define CALL_parser_tables___ParserTable___action_table_row444(recv) ((parser_tables___ParserTable___action_table_row444_t)CALL((recv), (SFT_parser_tables[3] + 445)))
+#define CALL_parser_tables___ParserTable___action_table_row445(recv) ((parser_tables___ParserTable___action_table_row445_t)CALL((recv), (SFT_parser_tables[3] + 446)))
+#define CALL_parser_tables___ParserTable___action_table_row446(recv) ((parser_tables___ParserTable___action_table_row446_t)CALL((recv), (SFT_parser_tables[3] + 447)))
+#define CALL_parser_tables___ParserTable___action_table_row447(recv) ((parser_tables___ParserTable___action_table_row447_t)CALL((recv), (SFT_parser_tables[3] + 448)))
+#define CALL_parser_tables___ParserTable___action_table_row448(recv) ((parser_tables___ParserTable___action_table_row448_t)CALL((recv), (SFT_parser_tables[3] + 449)))
+#define CALL_parser_tables___ParserTable___action_table_row449(recv) ((parser_tables___ParserTable___action_table_row449_t)CALL((recv), (SFT_parser_tables[3] + 450)))
+#define CALL_parser_tables___ParserTable___action_table_row450(recv) ((parser_tables___ParserTable___action_table_row450_t)CALL((recv), (SFT_parser_tables[3] + 451)))
+#define CALL_parser_tables___ParserTable___action_table_row451(recv) ((parser_tables___ParserTable___action_table_row451_t)CALL((recv), (SFT_parser_tables[3] + 452)))
+#define CALL_parser_tables___ParserTable___action_table_row452(recv) ((parser_tables___ParserTable___action_table_row452_t)CALL((recv), (SFT_parser_tables[3] + 453)))
+#define CALL_parser_tables___ParserTable___action_table_row453(recv) ((parser_tables___ParserTable___action_table_row453_t)CALL((recv), (SFT_parser_tables[3] + 454)))
+#define CALL_parser_tables___ParserTable___action_table_row454(recv) ((parser_tables___ParserTable___action_table_row454_t)CALL((recv), (SFT_parser_tables[3] + 455)))
+#define CALL_parser_tables___ParserTable___action_table_row455(recv) ((parser_tables___ParserTable___action_table_row455_t)CALL((recv), (SFT_parser_tables[3] + 456)))
+#define CALL_parser_tables___ParserTable___action_table_row456(recv) ((parser_tables___ParserTable___action_table_row456_t)CALL((recv), (SFT_parser_tables[3] + 457)))
+#define CALL_parser_tables___ParserTable___action_table_row457(recv) ((parser_tables___ParserTable___action_table_row457_t)CALL((recv), (SFT_parser_tables[3] + 458)))
+#define CALL_parser_tables___ParserTable___action_table_row458(recv) ((parser_tables___ParserTable___action_table_row458_t)CALL((recv), (SFT_parser_tables[3] + 459)))
+#define CALL_parser_tables___ParserTable___action_table_row459(recv) ((parser_tables___ParserTable___action_table_row459_t)CALL((recv), (SFT_parser_tables[3] + 460)))
+#define CALL_parser_tables___ParserTable___action_table_row460(recv) ((parser_tables___ParserTable___action_table_row460_t)CALL((recv), (SFT_parser_tables[3] + 461)))
+#define CALL_parser_tables___ParserTable___action_table_row461(recv) ((parser_tables___ParserTable___action_table_row461_t)CALL((recv), (SFT_parser_tables[3] + 462)))
+#define CALL_parser_tables___ParserTable___action_table_row462(recv) ((parser_tables___ParserTable___action_table_row462_t)CALL((recv), (SFT_parser_tables[3] + 463)))
+#define CALL_parser_tables___ParserTable___action_table_row463(recv) ((parser_tables___ParserTable___action_table_row463_t)CALL((recv), (SFT_parser_tables[3] + 464)))
+#define CALL_parser_tables___ParserTable___action_table_row464(recv) ((parser_tables___ParserTable___action_table_row464_t)CALL((recv), (SFT_parser_tables[3] + 465)))
+#define CALL_parser_tables___ParserTable___action_table_row465(recv) ((parser_tables___ParserTable___action_table_row465_t)CALL((recv), (SFT_parser_tables[3] + 466)))
+#define CALL_parser_tables___ParserTable___action_table_row466(recv) ((parser_tables___ParserTable___action_table_row466_t)CALL((recv), (SFT_parser_tables[3] + 467)))
+#define CALL_parser_tables___ParserTable___action_table_row467(recv) ((parser_tables___ParserTable___action_table_row467_t)CALL((recv), (SFT_parser_tables[3] + 468)))
+#define CALL_parser_tables___ParserTable___action_table_row468(recv) ((parser_tables___ParserTable___action_table_row468_t)CALL((recv), (SFT_parser_tables[3] + 469)))
+#define CALL_parser_tables___ParserTable___action_table_row469(recv) ((parser_tables___ParserTable___action_table_row469_t)CALL((recv), (SFT_parser_tables[3] + 470)))
+#define CALL_parser_tables___ParserTable___action_table_row470(recv) ((parser_tables___ParserTable___action_table_row470_t)CALL((recv), (SFT_parser_tables[3] + 471)))
+#define CALL_parser_tables___ParserTable___action_table_row471(recv) ((parser_tables___ParserTable___action_table_row471_t)CALL((recv), (SFT_parser_tables[3] + 472)))
+#define CALL_parser_tables___ParserTable___action_table_row472(recv) ((parser_tables___ParserTable___action_table_row472_t)CALL((recv), (SFT_parser_tables[3] + 473)))
+#define CALL_parser_tables___ParserTable___action_table_row473(recv) ((parser_tables___ParserTable___action_table_row473_t)CALL((recv), (SFT_parser_tables[3] + 474)))
+#define CALL_parser_tables___ParserTable___action_table_row474(recv) ((parser_tables___ParserTable___action_table_row474_t)CALL((recv), (SFT_parser_tables[3] + 475)))
+#define CALL_parser_tables___ParserTable___action_table_row475(recv) ((parser_tables___ParserTable___action_table_row475_t)CALL((recv), (SFT_parser_tables[3] + 476)))
+#define CALL_parser_tables___ParserTable___action_table_row476(recv) ((parser_tables___ParserTable___action_table_row476_t)CALL((recv), (SFT_parser_tables[3] + 477)))
+#define CALL_parser_tables___ParserTable___action_table_row477(recv) ((parser_tables___ParserTable___action_table_row477_t)CALL((recv), (SFT_parser_tables[3] + 478)))
+#define CALL_parser_tables___ParserTable___action_table_row478(recv) ((parser_tables___ParserTable___action_table_row478_t)CALL((recv), (SFT_parser_tables[3] + 479)))
+#define CALL_parser_tables___ParserTable___action_table_row479(recv) ((parser_tables___ParserTable___action_table_row479_t)CALL((recv), (SFT_parser_tables[3] + 480)))
+#define CALL_parser_tables___ParserTable___action_table_row480(recv) ((parser_tables___ParserTable___action_table_row480_t)CALL((recv), (SFT_parser_tables[3] + 481)))
+#define CALL_parser_tables___ParserTable___action_table_row481(recv) ((parser_tables___ParserTable___action_table_row481_t)CALL((recv), (SFT_parser_tables[3] + 482)))
+#define CALL_parser_tables___ParserTable___action_table_row482(recv) ((parser_tables___ParserTable___action_table_row482_t)CALL((recv), (SFT_parser_tables[3] + 483)))
+#define CALL_parser_tables___ParserTable___action_table_row483(recv) ((parser_tables___ParserTable___action_table_row483_t)CALL((recv), (SFT_parser_tables[3] + 484)))
+#define CALL_parser_tables___ParserTable___action_table_row484(recv) ((parser_tables___ParserTable___action_table_row484_t)CALL((recv), (SFT_parser_tables[3] + 485)))
+#define CALL_parser_tables___ParserTable___action_table_row485(recv) ((parser_tables___ParserTable___action_table_row485_t)CALL((recv), (SFT_parser_tables[3] + 486)))
+#define CALL_parser_tables___ParserTable___action_table_row486(recv) ((parser_tables___ParserTable___action_table_row486_t)CALL((recv), (SFT_parser_tables[3] + 487)))
+#define CALL_parser_tables___ParserTable___action_table_row487(recv) ((parser_tables___ParserTable___action_table_row487_t)CALL((recv), (SFT_parser_tables[3] + 488)))
+#define CALL_parser_tables___ParserTable___action_table_row488(recv) ((parser_tables___ParserTable___action_table_row488_t)CALL((recv), (SFT_parser_tables[3] + 489)))
+#define CALL_parser_tables___ParserTable___action_table_row489(recv) ((parser_tables___ParserTable___action_table_row489_t)CALL((recv), (SFT_parser_tables[3] + 490)))
+#define CALL_parser_tables___ParserTable___action_table_row490(recv) ((parser_tables___ParserTable___action_table_row490_t)CALL((recv), (SFT_parser_tables[3] + 491)))
+#define CALL_parser_tables___ParserTable___action_table_row491(recv) ((parser_tables___ParserTable___action_table_row491_t)CALL((recv), (SFT_parser_tables[3] + 492)))
+#define CALL_parser_tables___ParserTable___action_table_row492(recv) ((parser_tables___ParserTable___action_table_row492_t)CALL((recv), (SFT_parser_tables[3] + 493)))
+#define CALL_parser_tables___ParserTable___action_table_row493(recv) ((parser_tables___ParserTable___action_table_row493_t)CALL((recv), (SFT_parser_tables[3] + 494)))
+#define CALL_parser_tables___ParserTable___action_table_row494(recv) ((parser_tables___ParserTable___action_table_row494_t)CALL((recv), (SFT_parser_tables[3] + 495)))
+#define CALL_parser_tables___ParserTable___action_table_row495(recv) ((parser_tables___ParserTable___action_table_row495_t)CALL((recv), (SFT_parser_tables[3] + 496)))
+#define CALL_parser_tables___ParserTable___action_table_row496(recv) ((parser_tables___ParserTable___action_table_row496_t)CALL((recv), (SFT_parser_tables[3] + 497)))
+#define CALL_parser_tables___ParserTable___action_table_row497(recv) ((parser_tables___ParserTable___action_table_row497_t)CALL((recv), (SFT_parser_tables[3] + 498)))
+#define CALL_parser_tables___ParserTable___action_table_row498(recv) ((parser_tables___ParserTable___action_table_row498_t)CALL((recv), (SFT_parser_tables[3] + 499)))
+#define CALL_parser_tables___ParserTable___action_table_row499(recv) ((parser_tables___ParserTable___action_table_row499_t)CALL((recv), (SFT_parser_tables[3] + 500)))
+#define CALL_parser_tables___ParserTable___action_table_row500(recv) ((parser_tables___ParserTable___action_table_row500_t)CALL((recv), (SFT_parser_tables[3] + 501)))
+#define CALL_parser_tables___ParserTable___action_table_row501(recv) ((parser_tables___ParserTable___action_table_row501_t)CALL((recv), (SFT_parser_tables[3] + 502)))
+#define CALL_parser_tables___ParserTable___action_table_row502(recv) ((parser_tables___ParserTable___action_table_row502_t)CALL((recv), (SFT_parser_tables[3] + 503)))
+#define CALL_parser_tables___ParserTable___action_table_row503(recv) ((parser_tables___ParserTable___action_table_row503_t)CALL((recv), (SFT_parser_tables[3] + 504)))
+#define CALL_parser_tables___ParserTable___action_table_row504(recv) ((parser_tables___ParserTable___action_table_row504_t)CALL((recv), (SFT_parser_tables[3] + 505)))
+#define CALL_parser_tables___ParserTable___action_table_row505(recv) ((parser_tables___ParserTable___action_table_row505_t)CALL((recv), (SFT_parser_tables[3] + 506)))
+#define CALL_parser_tables___ParserTable___action_table_row506(recv) ((parser_tables___ParserTable___action_table_row506_t)CALL((recv), (SFT_parser_tables[3] + 507)))
+#define CALL_parser_tables___ParserTable___action_table_row507(recv) ((parser_tables___ParserTable___action_table_row507_t)CALL((recv), (SFT_parser_tables[3] + 508)))
+#define CALL_parser_tables___ParserTable___action_table_row508(recv) ((parser_tables___ParserTable___action_table_row508_t)CALL((recv), (SFT_parser_tables[3] + 509)))
+#define CALL_parser_tables___ParserTable___action_table_row509(recv) ((parser_tables___ParserTable___action_table_row509_t)CALL((recv), (SFT_parser_tables[3] + 510)))
+#define CALL_parser_tables___ParserTable___action_table_row510(recv) ((parser_tables___ParserTable___action_table_row510_t)CALL((recv), (SFT_parser_tables[3] + 511)))
+#define CALL_parser_tables___ParserTable___action_table_row511(recv) ((parser_tables___ParserTable___action_table_row511_t)CALL((recv), (SFT_parser_tables[3] + 512)))
+#define CALL_parser_tables___ParserTable___action_table_row512(recv) ((parser_tables___ParserTable___action_table_row512_t)CALL((recv), (SFT_parser_tables[3] + 513)))
+#define CALL_parser_tables___ParserTable___action_table_row513(recv) ((parser_tables___ParserTable___action_table_row513_t)CALL((recv), (SFT_parser_tables[3] + 514)))
+#define CALL_parser_tables___ParserTable___action_table_row514(recv) ((parser_tables___ParserTable___action_table_row514_t)CALL((recv), (SFT_parser_tables[3] + 515)))
+#define CALL_parser_tables___ParserTable___action_table_row515(recv) ((parser_tables___ParserTable___action_table_row515_t)CALL((recv), (SFT_parser_tables[3] + 516)))
+#define CALL_parser_tables___ParserTable___action_table_row516(recv) ((parser_tables___ParserTable___action_table_row516_t)CALL((recv), (SFT_parser_tables[3] + 517)))
+#define CALL_parser_tables___ParserTable___action_table_row517(recv) ((parser_tables___ParserTable___action_table_row517_t)CALL((recv), (SFT_parser_tables[3] + 518)))
+#define CALL_parser_tables___ParserTable___action_table_row518(recv) ((parser_tables___ParserTable___action_table_row518_t)CALL((recv), (SFT_parser_tables[3] + 519)))
+#define CALL_parser_tables___ParserTable___action_table_row519(recv) ((parser_tables___ParserTable___action_table_row519_t)CALL((recv), (SFT_parser_tables[3] + 520)))
+#define CALL_parser_tables___ParserTable___action_table_row520(recv) ((parser_tables___ParserTable___action_table_row520_t)CALL((recv), (SFT_parser_tables[3] + 521)))
+#define CALL_parser_tables___ParserTable___action_table_row521(recv) ((parser_tables___ParserTable___action_table_row521_t)CALL((recv), (SFT_parser_tables[3] + 522)))
+#define CALL_parser_tables___ParserTable___action_table_row522(recv) ((parser_tables___ParserTable___action_table_row522_t)CALL((recv), (SFT_parser_tables[3] + 523)))
+#define CALL_parser_tables___ParserTable___action_table_row523(recv) ((parser_tables___ParserTable___action_table_row523_t)CALL((recv), (SFT_parser_tables[3] + 524)))
+#define CALL_parser_tables___ParserTable___action_table_row524(recv) ((parser_tables___ParserTable___action_table_row524_t)CALL((recv), (SFT_parser_tables[3] + 525)))
+#define CALL_parser_tables___ParserTable___action_table_row525(recv) ((parser_tables___ParserTable___action_table_row525_t)CALL((recv), (SFT_parser_tables[3] + 526)))
+#define CALL_parser_tables___ParserTable___action_table_row526(recv) ((parser_tables___ParserTable___action_table_row526_t)CALL((recv), (SFT_parser_tables[3] + 527)))
+#define CALL_parser_tables___ParserTable___action_table_row527(recv) ((parser_tables___ParserTable___action_table_row527_t)CALL((recv), (SFT_parser_tables[3] + 528)))
+#define CALL_parser_tables___ParserTable___action_table_row528(recv) ((parser_tables___ParserTable___action_table_row528_t)CALL((recv), (SFT_parser_tables[3] + 529)))
+#define CALL_parser_tables___ParserTable___action_table_row529(recv) ((parser_tables___ParserTable___action_table_row529_t)CALL((recv), (SFT_parser_tables[3] + 530)))
+#define CALL_parser_tables___ParserTable___action_table_row530(recv) ((parser_tables___ParserTable___action_table_row530_t)CALL((recv), (SFT_parser_tables[3] + 531)))
+#define CALL_parser_tables___ParserTable___action_table_row531(recv) ((parser_tables___ParserTable___action_table_row531_t)CALL((recv), (SFT_parser_tables[3] + 532)))
+#define CALL_parser_tables___ParserTable___action_table_row532(recv) ((parser_tables___ParserTable___action_table_row532_t)CALL((recv), (SFT_parser_tables[3] + 533)))
+#define CALL_parser_tables___ParserTable___action_table_row533(recv) ((parser_tables___ParserTable___action_table_row533_t)CALL((recv), (SFT_parser_tables[3] + 534)))
+#define CALL_parser_tables___ParserTable___action_table_row534(recv) ((parser_tables___ParserTable___action_table_row534_t)CALL((recv), (SFT_parser_tables[3] + 535)))
+#define CALL_parser_tables___ParserTable___action_table_row535(recv) ((parser_tables___ParserTable___action_table_row535_t)CALL((recv), (SFT_parser_tables[3] + 536)))
+#define CALL_parser_tables___ParserTable___action_table_row536(recv) ((parser_tables___ParserTable___action_table_row536_t)CALL((recv), (SFT_parser_tables[3] + 537)))
+#define CALL_parser_tables___ParserTable___action_table_row537(recv) ((parser_tables___ParserTable___action_table_row537_t)CALL((recv), (SFT_parser_tables[3] + 538)))
+#define CALL_parser_tables___ParserTable___action_table_row538(recv) ((parser_tables___ParserTable___action_table_row538_t)CALL((recv), (SFT_parser_tables[3] + 539)))
+#define CALL_parser_tables___ParserTable___action_table_row539(recv) ((parser_tables___ParserTable___action_table_row539_t)CALL((recv), (SFT_parser_tables[3] + 540)))
+#define CALL_parser_tables___ParserTable___action_table_row540(recv) ((parser_tables___ParserTable___action_table_row540_t)CALL((recv), (SFT_parser_tables[3] + 541)))
+#define CALL_parser_tables___ParserTable___action_table_row541(recv) ((parser_tables___ParserTable___action_table_row541_t)CALL((recv), (SFT_parser_tables[3] + 542)))
+#define CALL_parser_tables___ParserTable___action_table_row542(recv) ((parser_tables___ParserTable___action_table_row542_t)CALL((recv), (SFT_parser_tables[3] + 543)))
+#define CALL_parser_tables___ParserTable___action_table_row543(recv) ((parser_tables___ParserTable___action_table_row543_t)CALL((recv), (SFT_parser_tables[3] + 544)))
+#define CALL_parser_tables___ParserTable___action_table_row544(recv) ((parser_tables___ParserTable___action_table_row544_t)CALL((recv), (SFT_parser_tables[3] + 545)))
+#define CALL_parser_tables___ParserTable___action_table_row545(recv) ((parser_tables___ParserTable___action_table_row545_t)CALL((recv), (SFT_parser_tables[3] + 546)))
+#define CALL_parser_tables___ParserTable___action_table_row546(recv) ((parser_tables___ParserTable___action_table_row546_t)CALL((recv), (SFT_parser_tables[3] + 547)))
+#define CALL_parser_tables___ParserTable___action_table_row547(recv) ((parser_tables___ParserTable___action_table_row547_t)CALL((recv), (SFT_parser_tables[3] + 548)))
+#define CALL_parser_tables___ParserTable___action_table_row548(recv) ((parser_tables___ParserTable___action_table_row548_t)CALL((recv), (SFT_parser_tables[3] + 549)))
+#define CALL_parser_tables___ParserTable___action_table_row549(recv) ((parser_tables___ParserTable___action_table_row549_t)CALL((recv), (SFT_parser_tables[3] + 550)))
+#define CALL_parser_tables___ParserTable___action_table_row550(recv) ((parser_tables___ParserTable___action_table_row550_t)CALL((recv), (SFT_parser_tables[3] + 551)))
+#define CALL_parser_tables___ParserTable___action_table_row551(recv) ((parser_tables___ParserTable___action_table_row551_t)CALL((recv), (SFT_parser_tables[3] + 552)))
+#define CALL_parser_tables___ParserTable___action_table_row552(recv) ((parser_tables___ParserTable___action_table_row552_t)CALL((recv), (SFT_parser_tables[3] + 553)))
+#define CALL_parser_tables___ParserTable___action_table_row553(recv) ((parser_tables___ParserTable___action_table_row553_t)CALL((recv), (SFT_parser_tables[3] + 554)))
+#define CALL_parser_tables___ParserTable___action_table_row554(recv) ((parser_tables___ParserTable___action_table_row554_t)CALL((recv), (SFT_parser_tables[3] + 555)))
+#define CALL_parser_tables___ParserTable___action_table_row555(recv) ((parser_tables___ParserTable___action_table_row555_t)CALL((recv), (SFT_parser_tables[3] + 556)))
+#define CALL_parser_tables___ParserTable___action_table_row556(recv) ((parser_tables___ParserTable___action_table_row556_t)CALL((recv), (SFT_parser_tables[3] + 557)))
+#define CALL_parser_tables___ParserTable___action_table_row557(recv) ((parser_tables___ParserTable___action_table_row557_t)CALL((recv), (SFT_parser_tables[3] + 558)))
+#define CALL_parser_tables___ParserTable___action_table_row558(recv) ((parser_tables___ParserTable___action_table_row558_t)CALL((recv), (SFT_parser_tables[3] + 559)))
+#define CALL_parser_tables___ParserTable___action_table_row559(recv) ((parser_tables___ParserTable___action_table_row559_t)CALL((recv), (SFT_parser_tables[3] + 560)))
+#define CALL_parser_tables___ParserTable___action_table_row560(recv) ((parser_tables___ParserTable___action_table_row560_t)CALL((recv), (SFT_parser_tables[3] + 561)))
+#define CALL_parser_tables___ParserTable___action_table_row561(recv) ((parser_tables___ParserTable___action_table_row561_t)CALL((recv), (SFT_parser_tables[3] + 562)))
+#define CALL_parser_tables___ParserTable___action_table_row562(recv) ((parser_tables___ParserTable___action_table_row562_t)CALL((recv), (SFT_parser_tables[3] + 563)))
+#define CALL_parser_tables___ParserTable___action_table_row563(recv) ((parser_tables___ParserTable___action_table_row563_t)CALL((recv), (SFT_parser_tables[3] + 564)))
+#define CALL_parser_tables___ParserTable___action_table_row564(recv) ((parser_tables___ParserTable___action_table_row564_t)CALL((recv), (SFT_parser_tables[3] + 565)))
+#define CALL_parser_tables___ParserTable___action_table_row565(recv) ((parser_tables___ParserTable___action_table_row565_t)CALL((recv), (SFT_parser_tables[3] + 566)))
+#define CALL_parser_tables___ParserTable___action_table_row566(recv) ((parser_tables___ParserTable___action_table_row566_t)CALL((recv), (SFT_parser_tables[3] + 567)))
+#define CALL_parser_tables___ParserTable___action_table_row567(recv) ((parser_tables___ParserTable___action_table_row567_t)CALL((recv), (SFT_parser_tables[3] + 568)))
+#define CALL_parser_tables___ParserTable___action_table_row568(recv) ((parser_tables___ParserTable___action_table_row568_t)CALL((recv), (SFT_parser_tables[3] + 569)))
+#define CALL_parser_tables___ParserTable___action_table_row569(recv) ((parser_tables___ParserTable___action_table_row569_t)CALL((recv), (SFT_parser_tables[3] + 570)))
+#define CALL_parser_tables___ParserTable___action_table_row570(recv) ((parser_tables___ParserTable___action_table_row570_t)CALL((recv), (SFT_parser_tables[3] + 571)))
+#define CALL_parser_tables___ParserTable___action_table_row571(recv) ((parser_tables___ParserTable___action_table_row571_t)CALL((recv), (SFT_parser_tables[3] + 572)))
+#define CALL_parser_tables___ParserTable___action_table_row572(recv) ((parser_tables___ParserTable___action_table_row572_t)CALL((recv), (SFT_parser_tables[3] + 573)))
+#define CALL_parser_tables___ParserTable___action_table_row573(recv) ((parser_tables___ParserTable___action_table_row573_t)CALL((recv), (SFT_parser_tables[3] + 574)))
+#define CALL_parser_tables___ParserTable___action_table_row574(recv) ((parser_tables___ParserTable___action_table_row574_t)CALL((recv), (SFT_parser_tables[3] + 575)))
+#define CALL_parser_tables___ParserTable___action_table_row575(recv) ((parser_tables___ParserTable___action_table_row575_t)CALL((recv), (SFT_parser_tables[3] + 576)))
+#define CALL_parser_tables___ParserTable___action_table_row576(recv) ((parser_tables___ParserTable___action_table_row576_t)CALL((recv), (SFT_parser_tables[3] + 577)))
+#define CALL_parser_tables___ParserTable___action_table_row577(recv) ((parser_tables___ParserTable___action_table_row577_t)CALL((recv), (SFT_parser_tables[3] + 578)))
+#define CALL_parser_tables___ParserTable___action_table_row578(recv) ((parser_tables___ParserTable___action_table_row578_t)CALL((recv), (SFT_parser_tables[3] + 579)))
+#define CALL_parser_tables___ParserTable___action_table_row579(recv) ((parser_tables___ParserTable___action_table_row579_t)CALL((recv), (SFT_parser_tables[3] + 580)))
+#define CALL_parser_tables___ParserTable___action_table_row580(recv) ((parser_tables___ParserTable___action_table_row580_t)CALL((recv), (SFT_parser_tables[3] + 581)))
+#define CALL_parser_tables___ParserTable___action_table_row581(recv) ((parser_tables___ParserTable___action_table_row581_t)CALL((recv), (SFT_parser_tables[3] + 582)))
+#define CALL_parser_tables___ParserTable___action_table_row582(recv) ((parser_tables___ParserTable___action_table_row582_t)CALL((recv), (SFT_parser_tables[3] + 583)))
+#define CALL_parser_tables___ParserTable___action_table_row583(recv) ((parser_tables___ParserTable___action_table_row583_t)CALL((recv), (SFT_parser_tables[3] + 584)))
+#define CALL_parser_tables___ParserTable___action_table_row584(recv) ((parser_tables___ParserTable___action_table_row584_t)CALL((recv), (SFT_parser_tables[3] + 585)))
+#define CALL_parser_tables___ParserTable___action_table_row585(recv) ((parser_tables___ParserTable___action_table_row585_t)CALL((recv), (SFT_parser_tables[3] + 586)))
+#define CALL_parser_tables___ParserTable___action_table_row586(recv) ((parser_tables___ParserTable___action_table_row586_t)CALL((recv), (SFT_parser_tables[3] + 587)))
+#define CALL_parser_tables___ParserTable___action_table_row587(recv) ((parser_tables___ParserTable___action_table_row587_t)CALL((recv), (SFT_parser_tables[3] + 588)))
+#define CALL_parser_tables___ParserTable___action_table_row588(recv) ((parser_tables___ParserTable___action_table_row588_t)CALL((recv), (SFT_parser_tables[3] + 589)))
+#define CALL_parser_tables___ParserTable___action_table_row589(recv) ((parser_tables___ParserTable___action_table_row589_t)CALL((recv), (SFT_parser_tables[3] + 590)))
+#define CALL_parser_tables___ParserTable___action_table_row590(recv) ((parser_tables___ParserTable___action_table_row590_t)CALL((recv), (SFT_parser_tables[3] + 591)))
+#define CALL_parser_tables___ParserTable___action_table_row591(recv) ((parser_tables___ParserTable___action_table_row591_t)CALL((recv), (SFT_parser_tables[3] + 592)))
+#define CALL_parser_tables___ParserTable___action_table_row592(recv) ((parser_tables___ParserTable___action_table_row592_t)CALL((recv), (SFT_parser_tables[3] + 593)))
+#define CALL_parser_tables___ParserTable___action_table_row593(recv) ((parser_tables___ParserTable___action_table_row593_t)CALL((recv), (SFT_parser_tables[3] + 594)))
+#define CALL_parser_tables___ParserTable___action_table_row594(recv) ((parser_tables___ParserTable___action_table_row594_t)CALL((recv), (SFT_parser_tables[3] + 595)))
+#define CALL_parser_tables___ParserTable___action_table_row595(recv) ((parser_tables___ParserTable___action_table_row595_t)CALL((recv), (SFT_parser_tables[3] + 596)))
+#define CALL_parser_tables___ParserTable___action_table_row596(recv) ((parser_tables___ParserTable___action_table_row596_t)CALL((recv), (SFT_parser_tables[3] + 597)))
+#define CALL_parser_tables___ParserTable___action_table_row597(recv) ((parser_tables___ParserTable___action_table_row597_t)CALL((recv), (SFT_parser_tables[3] + 598)))
+#define CALL_parser_tables___ParserTable___action_table_row598(recv) ((parser_tables___ParserTable___action_table_row598_t)CALL((recv), (SFT_parser_tables[3] + 599)))
+#define CALL_parser_tables___ParserTable___action_table_row599(recv) ((parser_tables___ParserTable___action_table_row599_t)CALL((recv), (SFT_parser_tables[3] + 600)))
+#define CALL_parser_tables___ParserTable___action_table_row600(recv) ((parser_tables___ParserTable___action_table_row600_t)CALL((recv), (SFT_parser_tables[3] + 601)))
+#define CALL_parser_tables___ParserTable___action_table_row601(recv) ((parser_tables___ParserTable___action_table_row601_t)CALL((recv), (SFT_parser_tables[3] + 602)))
+#define CALL_parser_tables___ParserTable___action_table_row602(recv) ((parser_tables___ParserTable___action_table_row602_t)CALL((recv), (SFT_parser_tables[3] + 603)))
+#define CALL_parser_tables___ParserTable___action_table_row603(recv) ((parser_tables___ParserTable___action_table_row603_t)CALL((recv), (SFT_parser_tables[3] + 604)))
+#define CALL_parser_tables___ParserTable___action_table_row604(recv) ((parser_tables___ParserTable___action_table_row604_t)CALL((recv), (SFT_parser_tables[3] + 605)))
+#define CALL_parser_tables___ParserTable___action_table_row605(recv) ((parser_tables___ParserTable___action_table_row605_t)CALL((recv), (SFT_parser_tables[3] + 606)))
+#define CALL_parser_tables___ParserTable___action_table_row606(recv) ((parser_tables___ParserTable___action_table_row606_t)CALL((recv), (SFT_parser_tables[3] + 607)))
+#define CALL_parser_tables___ParserTable___action_table_row607(recv) ((parser_tables___ParserTable___action_table_row607_t)CALL((recv), (SFT_parser_tables[3] + 608)))
+#define CALL_parser_tables___ParserTable___action_table_row608(recv) ((parser_tables___ParserTable___action_table_row608_t)CALL((recv), (SFT_parser_tables[3] + 609)))
+#define CALL_parser_tables___ParserTable___action_table_row609(recv) ((parser_tables___ParserTable___action_table_row609_t)CALL((recv), (SFT_parser_tables[3] + 610)))
+#define CALL_parser_tables___ParserTable___action_table_row610(recv) ((parser_tables___ParserTable___action_table_row610_t)CALL((recv), (SFT_parser_tables[3] + 611)))
+#define CALL_parser_tables___ParserTable___action_table_row611(recv) ((parser_tables___ParserTable___action_table_row611_t)CALL((recv), (SFT_parser_tables[3] + 612)))
+#define CALL_parser_tables___ParserTable___action_table_row612(recv) ((parser_tables___ParserTable___action_table_row612_t)CALL((recv), (SFT_parser_tables[3] + 613)))
+#define CALL_parser_tables___ParserTable___action_table_row613(recv) ((parser_tables___ParserTable___action_table_row613_t)CALL((recv), (SFT_parser_tables[3] + 614)))
+#define CALL_parser_tables___ParserTable___action_table_row614(recv) ((parser_tables___ParserTable___action_table_row614_t)CALL((recv), (SFT_parser_tables[3] + 615)))
+#define CALL_parser_tables___ParserTable___action_table_row615(recv) ((parser_tables___ParserTable___action_table_row615_t)CALL((recv), (SFT_parser_tables[3] + 616)))
+#define CALL_parser_tables___ParserTable___action_table_row616(recv) ((parser_tables___ParserTable___action_table_row616_t)CALL((recv), (SFT_parser_tables[3] + 617)))
+#define CALL_parser_tables___ParserTable___action_table_row617(recv) ((parser_tables___ParserTable___action_table_row617_t)CALL((recv), (SFT_parser_tables[3] + 618)))
+#define CALL_parser_tables___ParserTable___action_table_row618(recv) ((parser_tables___ParserTable___action_table_row618_t)CALL((recv), (SFT_parser_tables[3] + 619)))
+#define CALL_parser_tables___ParserTable___action_table_row619(recv) ((parser_tables___ParserTable___action_table_row619_t)CALL((recv), (SFT_parser_tables[3] + 620)))
+#define CALL_parser_tables___ParserTable___action_table_row620(recv) ((parser_tables___ParserTable___action_table_row620_t)CALL((recv), (SFT_parser_tables[3] + 621)))
+#define CALL_parser_tables___ParserTable___action_table_row621(recv) ((parser_tables___ParserTable___action_table_row621_t)CALL((recv), (SFT_parser_tables[3] + 622)))
+#define CALL_parser_tables___ParserTable___action_table_row622(recv) ((parser_tables___ParserTable___action_table_row622_t)CALL((recv), (SFT_parser_tables[3] + 623)))
+#define CALL_parser_tables___ParserTable___action_table_row623(recv) ((parser_tables___ParserTable___action_table_row623_t)CALL((recv), (SFT_parser_tables[3] + 624)))
+#define CALL_parser_tables___ParserTable___action_table_row624(recv) ((parser_tables___ParserTable___action_table_row624_t)CALL((recv), (SFT_parser_tables[3] + 625)))
+#define CALL_parser_tables___ParserTable___action_table_row625(recv) ((parser_tables___ParserTable___action_table_row625_t)CALL((recv), (SFT_parser_tables[3] + 626)))
+#define CALL_parser_tables___ParserTable___action_table_row626(recv) ((parser_tables___ParserTable___action_table_row626_t)CALL((recv), (SFT_parser_tables[3] + 627)))
+#define CALL_parser_tables___ParserTable___action_table_row627(recv) ((parser_tables___ParserTable___action_table_row627_t)CALL((recv), (SFT_parser_tables[3] + 628)))
+#define CALL_parser_tables___ParserTable___action_table_row628(recv) ((parser_tables___ParserTable___action_table_row628_t)CALL((recv), (SFT_parser_tables[3] + 629)))
+#define CALL_parser_tables___ParserTable___action_table_row629(recv) ((parser_tables___ParserTable___action_table_row629_t)CALL((recv), (SFT_parser_tables[3] + 630)))
+#define CALL_parser_tables___ParserTable___action_table_row630(recv) ((parser_tables___ParserTable___action_table_row630_t)CALL((recv), (SFT_parser_tables[3] + 631)))
+#define CALL_parser_tables___ParserTable___action_table_row631(recv) ((parser_tables___ParserTable___action_table_row631_t)CALL((recv), (SFT_parser_tables[3] + 632)))
+#define CALL_parser_tables___ParserTable___action_table_row632(recv) ((parser_tables___ParserTable___action_table_row632_t)CALL((recv), (SFT_parser_tables[3] + 633)))
+#define CALL_parser_tables___ParserTable___action_table_row633(recv) ((parser_tables___ParserTable___action_table_row633_t)CALL((recv), (SFT_parser_tables[3] + 634)))
+#define CALL_parser_tables___ParserTable___action_table_row634(recv) ((parser_tables___ParserTable___action_table_row634_t)CALL((recv), (SFT_parser_tables[3] + 635)))
+#define CALL_parser_tables___ParserTable___action_table_row635(recv) ((parser_tables___ParserTable___action_table_row635_t)CALL((recv), (SFT_parser_tables[3] + 636)))
+#define CALL_parser_tables___ParserTable___action_table_row636(recv) ((parser_tables___ParserTable___action_table_row636_t)CALL((recv), (SFT_parser_tables[3] + 637)))
+#define CALL_parser_tables___ParserTable___action_table_row637(recv) ((parser_tables___ParserTable___action_table_row637_t)CALL((recv), (SFT_parser_tables[3] + 638)))
+#define CALL_parser_tables___ParserTable___action_table_row638(recv) ((parser_tables___ParserTable___action_table_row638_t)CALL((recv), (SFT_parser_tables[3] + 639)))
+#define CALL_parser_tables___ParserTable___action_table_row639(recv) ((parser_tables___ParserTable___action_table_row639_t)CALL((recv), (SFT_parser_tables[3] + 640)))
+#define CALL_parser_tables___ParserTable___action_table_row640(recv) ((parser_tables___ParserTable___action_table_row640_t)CALL((recv), (SFT_parser_tables[3] + 641)))
+#define CALL_parser_tables___ParserTable___action_table_row641(recv) ((parser_tables___ParserTable___action_table_row641_t)CALL((recv), (SFT_parser_tables[3] + 642)))
+#define CALL_parser_tables___ParserTable___action_table_row642(recv) ((parser_tables___ParserTable___action_table_row642_t)CALL((recv), (SFT_parser_tables[3] + 643)))
+#define CALL_parser_tables___ParserTable___action_table_row643(recv) ((parser_tables___ParserTable___action_table_row643_t)CALL((recv), (SFT_parser_tables[3] + 644)))
+#define CALL_parser_tables___ParserTable___action_table_row644(recv) ((parser_tables___ParserTable___action_table_row644_t)CALL((recv), (SFT_parser_tables[3] + 645)))
+#define CALL_parser_tables___ParserTable___action_table_row645(recv) ((parser_tables___ParserTable___action_table_row645_t)CALL((recv), (SFT_parser_tables[3] + 646)))
+#define CALL_parser_tables___ParserTable___action_table_row646(recv) ((parser_tables___ParserTable___action_table_row646_t)CALL((recv), (SFT_parser_tables[3] + 647)))
+#define CALL_parser_tables___ParserTable___action_table_row647(recv) ((parser_tables___ParserTable___action_table_row647_t)CALL((recv), (SFT_parser_tables[3] + 648)))
+#define CALL_parser_tables___ParserTable___action_table_row648(recv) ((parser_tables___ParserTable___action_table_row648_t)CALL((recv), (SFT_parser_tables[3] + 649)))
+#define CALL_parser_tables___ParserTable___action_table_row649(recv) ((parser_tables___ParserTable___action_table_row649_t)CALL((recv), (SFT_parser_tables[3] + 650)))
+#define CALL_parser_tables___ParserTable___action_table_row650(recv) ((parser_tables___ParserTable___action_table_row650_t)CALL((recv), (SFT_parser_tables[3] + 651)))
+#define CALL_parser_tables___ParserTable___action_table_row651(recv) ((parser_tables___ParserTable___action_table_row651_t)CALL((recv), (SFT_parser_tables[3] + 652)))
+#define CALL_parser_tables___ParserTable___action_table_row652(recv) ((parser_tables___ParserTable___action_table_row652_t)CALL((recv), (SFT_parser_tables[3] + 653)))
+#define CALL_parser_tables___ParserTable___action_table_row653(recv) ((parser_tables___ParserTable___action_table_row653_t)CALL((recv), (SFT_parser_tables[3] + 654)))
+#define CALL_parser_tables___ParserTable___action_table_row654(recv) ((parser_tables___ParserTable___action_table_row654_t)CALL((recv), (SFT_parser_tables[3] + 655)))
+#define CALL_parser_tables___ParserTable___action_table_row655(recv) ((parser_tables___ParserTable___action_table_row655_t)CALL((recv), (SFT_parser_tables[3] + 656)))
+#define CALL_parser_tables___ParserTable___action_table_row656(recv) ((parser_tables___ParserTable___action_table_row656_t)CALL((recv), (SFT_parser_tables[3] + 657)))
+#define CALL_parser_tables___ParserTable___action_table_row657(recv) ((parser_tables___ParserTable___action_table_row657_t)CALL((recv), (SFT_parser_tables[3] + 658)))
+#define CALL_parser_tables___ParserTable___action_table_row658(recv) ((parser_tables___ParserTable___action_table_row658_t)CALL((recv), (SFT_parser_tables[3] + 659)))
+#define CALL_parser_tables___ParserTable___action_table_row659(recv) ((parser_tables___ParserTable___action_table_row659_t)CALL((recv), (SFT_parser_tables[3] + 660)))
+#define CALL_parser_tables___ParserTable___action_table_row660(recv) ((parser_tables___ParserTable___action_table_row660_t)CALL((recv), (SFT_parser_tables[3] + 661)))
+#define CALL_parser_tables___ParserTable___action_table_row661(recv) ((parser_tables___ParserTable___action_table_row661_t)CALL((recv), (SFT_parser_tables[3] + 662)))
+#define CALL_parser_tables___ParserTable___action_table_row662(recv) ((parser_tables___ParserTable___action_table_row662_t)CALL((recv), (SFT_parser_tables[3] + 663)))
+#define CALL_parser_tables___ParserTable___action_table_row663(recv) ((parser_tables___ParserTable___action_table_row663_t)CALL((recv), (SFT_parser_tables[3] + 664)))
+#define CALL_parser_tables___ParserTable___action_table_row664(recv) ((parser_tables___ParserTable___action_table_row664_t)CALL((recv), (SFT_parser_tables[3] + 665)))
+#define CALL_parser_tables___ParserTable___action_table_row665(recv) ((parser_tables___ParserTable___action_table_row665_t)CALL((recv), (SFT_parser_tables[3] + 666)))
+#define CALL_parser_tables___ParserTable___action_table_row666(recv) ((parser_tables___ParserTable___action_table_row666_t)CALL((recv), (SFT_parser_tables[3] + 667)))
+#define CALL_parser_tables___ParserTable___action_table_row667(recv) ((parser_tables___ParserTable___action_table_row667_t)CALL((recv), (SFT_parser_tables[3] + 668)))
+#define CALL_parser_tables___ParserTable___action_table_row668(recv) ((parser_tables___ParserTable___action_table_row668_t)CALL((recv), (SFT_parser_tables[3] + 669)))
+#define CALL_parser_tables___ParserTable___action_table_row669(recv) ((parser_tables___ParserTable___action_table_row669_t)CALL((recv), (SFT_parser_tables[3] + 670)))
+#define CALL_parser_tables___ParserTable___action_table_row670(recv) ((parser_tables___ParserTable___action_table_row670_t)CALL((recv), (SFT_parser_tables[3] + 671)))
+#define CALL_parser_tables___ParserTable___action_table_row671(recv) ((parser_tables___ParserTable___action_table_row671_t)CALL((recv), (SFT_parser_tables[3] + 672)))
+#define CALL_parser_tables___ParserTable___action_table_row672(recv) ((parser_tables___ParserTable___action_table_row672_t)CALL((recv), (SFT_parser_tables[3] + 673)))
+#define CALL_parser_tables___ParserTable___action_table_row673(recv) ((parser_tables___ParserTable___action_table_row673_t)CALL((recv), (SFT_parser_tables[3] + 674)))
+#define CALL_parser_tables___ParserTable___action_table_row674(recv) ((parser_tables___ParserTable___action_table_row674_t)CALL((recv), (SFT_parser_tables[3] + 675)))
+#define CALL_parser_tables___ParserTable___action_table_row675(recv) ((parser_tables___ParserTable___action_table_row675_t)CALL((recv), (SFT_parser_tables[3] + 676)))
+#define CALL_parser_tables___ParserTable___action_table_row676(recv) ((parser_tables___ParserTable___action_table_row676_t)CALL((recv), (SFT_parser_tables[3] + 677)))
+#define CALL_parser_tables___ParserTable___action_table_row677(recv) ((parser_tables___ParserTable___action_table_row677_t)CALL((recv), (SFT_parser_tables[3] + 678)))
+#define CALL_parser_tables___ParserTable___action_table_row678(recv) ((parser_tables___ParserTable___action_table_row678_t)CALL((recv), (SFT_parser_tables[3] + 679)))
+#define CALL_parser_tables___ParserTable___action_table_row679(recv) ((parser_tables___ParserTable___action_table_row679_t)CALL((recv), (SFT_parser_tables[3] + 680)))
+#define CALL_parser_tables___ParserTable___action_table_row680(recv) ((parser_tables___ParserTable___action_table_row680_t)CALL((recv), (SFT_parser_tables[3] + 681)))
+#define CALL_parser_tables___ParserTable___action_table_row681(recv) ((parser_tables___ParserTable___action_table_row681_t)CALL((recv), (SFT_parser_tables[3] + 682)))
+#define CALL_parser_tables___ParserTable___action_table_row682(recv) ((parser_tables___ParserTable___action_table_row682_t)CALL((recv), (SFT_parser_tables[3] + 683)))
+#define CALL_parser_tables___ParserTable___action_table_row683(recv) ((parser_tables___ParserTable___action_table_row683_t)CALL((recv), (SFT_parser_tables[3] + 684)))
+#define CALL_parser_tables___ParserTable___action_table_row684(recv) ((parser_tables___ParserTable___action_table_row684_t)CALL((recv), (SFT_parser_tables[3] + 685)))
+#define CALL_parser_tables___ParserTable___action_table_row685(recv) ((parser_tables___ParserTable___action_table_row685_t)CALL((recv), (SFT_parser_tables[3] + 686)))
+#define CALL_parser_tables___ParserTable___action_table_row686(recv) ((parser_tables___ParserTable___action_table_row686_t)CALL((recv), (SFT_parser_tables[3] + 687)))
+#define CALL_parser_tables___ParserTable___action_table_row687(recv) ((parser_tables___ParserTable___action_table_row687_t)CALL((recv), (SFT_parser_tables[3] + 688)))
+#define CALL_parser_tables___ParserTable___action_table_row688(recv) ((parser_tables___ParserTable___action_table_row688_t)CALL((recv), (SFT_parser_tables[3] + 689)))
+#define CALL_parser_tables___ParserTable___action_table_row689(recv) ((parser_tables___ParserTable___action_table_row689_t)CALL((recv), (SFT_parser_tables[3] + 690)))
+#define CALL_parser_tables___ParserTable___action_table_row690(recv) ((parser_tables___ParserTable___action_table_row690_t)CALL((recv), (SFT_parser_tables[3] + 691)))
+#define CALL_parser_tables___ParserTable___action_table_row691(recv) ((parser_tables___ParserTable___action_table_row691_t)CALL((recv), (SFT_parser_tables[3] + 692)))
+#define CALL_parser_tables___ParserTable___action_table_row692(recv) ((parser_tables___ParserTable___action_table_row692_t)CALL((recv), (SFT_parser_tables[3] + 693)))
+#define CALL_parser_tables___ParserTable___action_table_row693(recv) ((parser_tables___ParserTable___action_table_row693_t)CALL((recv), (SFT_parser_tables[3] + 694)))
+#define CALL_parser_tables___ParserTable___action_table_row694(recv) ((parser_tables___ParserTable___action_table_row694_t)CALL((recv), (SFT_parser_tables[3] + 695)))
+#define CALL_parser_tables___ParserTable___action_table_row695(recv) ((parser_tables___ParserTable___action_table_row695_t)CALL((recv), (SFT_parser_tables[3] + 696)))
+#define CALL_parser_tables___ParserTable___action_table_row696(recv) ((parser_tables___ParserTable___action_table_row696_t)CALL((recv), (SFT_parser_tables[3] + 697)))
+#define CALL_parser_tables___ParserTable___action_table_row697(recv) ((parser_tables___ParserTable___action_table_row697_t)CALL((recv), (SFT_parser_tables[3] + 698)))
+#define CALL_parser_tables___ParserTable___action_table_row698(recv) ((parser_tables___ParserTable___action_table_row698_t)CALL((recv), (SFT_parser_tables[3] + 699)))
+#define CALL_parser_tables___ParserTable___action_table_row699(recv) ((parser_tables___ParserTable___action_table_row699_t)CALL((recv), (SFT_parser_tables[3] + 700)))
+#define CALL_parser_tables___ParserTable___action_table_row700(recv) ((parser_tables___ParserTable___action_table_row700_t)CALL((recv), (SFT_parser_tables[3] + 701)))
+#define CALL_parser_tables___ParserTable___action_table_row701(recv) ((parser_tables___ParserTable___action_table_row701_t)CALL((recv), (SFT_parser_tables[3] + 702)))
+#define CALL_parser_tables___ParserTable___action_table_row702(recv) ((parser_tables___ParserTable___action_table_row702_t)CALL((recv), (SFT_parser_tables[3] + 703)))
+#define CALL_parser_tables___ParserTable___action_table_row703(recv) ((parser_tables___ParserTable___action_table_row703_t)CALL((recv), (SFT_parser_tables[3] + 704)))
+#define CALL_parser_tables___ParserTable___action_table_row704(recv) ((parser_tables___ParserTable___action_table_row704_t)CALL((recv), (SFT_parser_tables[3] + 705)))
+#define CALL_parser_tables___ParserTable___action_table_row705(recv) ((parser_tables___ParserTable___action_table_row705_t)CALL((recv), (SFT_parser_tables[3] + 706)))
+#define CALL_parser_tables___ParserTable___action_table_row706(recv) ((parser_tables___ParserTable___action_table_row706_t)CALL((recv), (SFT_parser_tables[3] + 707)))
+#define CALL_parser_tables___ParserTable___action_table_row707(recv) ((parser_tables___ParserTable___action_table_row707_t)CALL((recv), (SFT_parser_tables[3] + 708)))
+#define CALL_parser_tables___ParserTable___action_table_row708(recv) ((parser_tables___ParserTable___action_table_row708_t)CALL((recv), (SFT_parser_tables[3] + 709)))
+#define CALL_parser_tables___ParserTable___action_table_row709(recv) ((parser_tables___ParserTable___action_table_row709_t)CALL((recv), (SFT_parser_tables[3] + 710)))
+#define CALL_parser_tables___ParserTable___action_table_row710(recv) ((parser_tables___ParserTable___action_table_row710_t)CALL((recv), (SFT_parser_tables[3] + 711)))
+#define CALL_parser_tables___ParserTable___action_table_row711(recv) ((parser_tables___ParserTable___action_table_row711_t)CALL((recv), (SFT_parser_tables[3] + 712)))
+#define CALL_parser_tables___ParserTable___action_table_row712(recv) ((parser_tables___ParserTable___action_table_row712_t)CALL((recv), (SFT_parser_tables[3] + 713)))
+#define CALL_parser_tables___ParserTable___action_table_row713(recv) ((parser_tables___ParserTable___action_table_row713_t)CALL((recv), (SFT_parser_tables[3] + 714)))
+#define CALL_parser_tables___ParserTable___action_table_row714(recv) ((parser_tables___ParserTable___action_table_row714_t)CALL((recv), (SFT_parser_tables[3] + 715)))
+#define CALL_parser_tables___ParserTable___action_table_row715(recv) ((parser_tables___ParserTable___action_table_row715_t)CALL((recv), (SFT_parser_tables[3] + 716)))
+#define CALL_parser_tables___ParserTable___action_table_row716(recv) ((parser_tables___ParserTable___action_table_row716_t)CALL((recv), (SFT_parser_tables[3] + 717)))
+#define CALL_parser_tables___ParserTable___action_table_row717(recv) ((parser_tables___ParserTable___action_table_row717_t)CALL((recv), (SFT_parser_tables[3] + 718)))
+#define CALL_parser_tables___ParserTable___action_table_row718(recv) ((parser_tables___ParserTable___action_table_row718_t)CALL((recv), (SFT_parser_tables[3] + 719)))
+#define CALL_parser_tables___ParserTable___action_table_row719(recv) ((parser_tables___ParserTable___action_table_row719_t)CALL((recv), (SFT_parser_tables[3] + 720)))
+#define CALL_parser_tables___ParserTable___action_table_row720(recv) ((parser_tables___ParserTable___action_table_row720_t)CALL((recv), (SFT_parser_tables[3] + 721)))
+#define CALL_parser_tables___ParserTable___action_table_row721(recv) ((parser_tables___ParserTable___action_table_row721_t)CALL((recv), (SFT_parser_tables[3] + 722)))
+#define CALL_parser_tables___ParserTable___action_table_row722(recv) ((parser_tables___ParserTable___action_table_row722_t)CALL((recv), (SFT_parser_tables[3] + 723)))
+#define CALL_parser_tables___ParserTable___action_table_row723(recv) ((parser_tables___ParserTable___action_table_row723_t)CALL((recv), (SFT_parser_tables[3] + 724)))
+#define CALL_parser_tables___ParserTable___action_table_row724(recv) ((parser_tables___ParserTable___action_table_row724_t)CALL((recv), (SFT_parser_tables[3] + 725)))
+#define CALL_parser_tables___ParserTable___action_table_row725(recv) ((parser_tables___ParserTable___action_table_row725_t)CALL((recv), (SFT_parser_tables[3] + 726)))
+#define CALL_parser_tables___ParserTable___action_table_row726(recv) ((parser_tables___ParserTable___action_table_row726_t)CALL((recv), (SFT_parser_tables[3] + 727)))
+#define CALL_parser_tables___ParserTable___action_table_row727(recv) ((parser_tables___ParserTable___action_table_row727_t)CALL((recv), (SFT_parser_tables[3] + 728)))
+#define CALL_parser_tables___ParserTable___action_table_row728(recv) ((parser_tables___ParserTable___action_table_row728_t)CALL((recv), (SFT_parser_tables[3] + 729)))
+#define CALL_parser_tables___ParserTable___action_table_row729(recv) ((parser_tables___ParserTable___action_table_row729_t)CALL((recv), (SFT_parser_tables[3] + 730)))
+#define CALL_parser_tables___ParserTable___action_table_row730(recv) ((parser_tables___ParserTable___action_table_row730_t)CALL((recv), (SFT_parser_tables[3] + 731)))
+#define CALL_parser_tables___ParserTable___action_table_row731(recv) ((parser_tables___ParserTable___action_table_row731_t)CALL((recv), (SFT_parser_tables[3] + 732)))
+#define CALL_parser_tables___ParserTable___action_table_row732(recv) ((parser_tables___ParserTable___action_table_row732_t)CALL((recv), (SFT_parser_tables[3] + 733)))
+#define CALL_parser_tables___ParserTable___action_table_row733(recv) ((parser_tables___ParserTable___action_table_row733_t)CALL((recv), (SFT_parser_tables[3] + 734)))
+#define CALL_parser_tables___ParserTable___action_table_row734(recv) ((parser_tables___ParserTable___action_table_row734_t)CALL((recv), (SFT_parser_tables[3] + 735)))
+#define CALL_parser_tables___ParserTable___action_table_row735(recv) ((parser_tables___ParserTable___action_table_row735_t)CALL((recv), (SFT_parser_tables[3] + 736)))
+#define CALL_parser_tables___ParserTable___action_table_row736(recv) ((parser_tables___ParserTable___action_table_row736_t)CALL((recv), (SFT_parser_tables[3] + 737)))
+#define CALL_parser_tables___ParserTable___action_table_row737(recv) ((parser_tables___ParserTable___action_table_row737_t)CALL((recv), (SFT_parser_tables[3] + 738)))
+#define CALL_parser_tables___ParserTable___action_table_row738(recv) ((parser_tables___ParserTable___action_table_row738_t)CALL((recv), (SFT_parser_tables[3] + 739)))
+#define CALL_parser_tables___ParserTable___action_table_row739(recv) ((parser_tables___ParserTable___action_table_row739_t)CALL((recv), (SFT_parser_tables[3] + 740)))
+#define CALL_parser_tables___ParserTable___action_table_row740(recv) ((parser_tables___ParserTable___action_table_row740_t)CALL((recv), (SFT_parser_tables[3] + 741)))
+#define CALL_parser_tables___ParserTable___action_table_row741(recv) ((parser_tables___ParserTable___action_table_row741_t)CALL((recv), (SFT_parser_tables[3] + 742)))
+#define CALL_parser_tables___ParserTable___action_table_row742(recv) ((parser_tables___ParserTable___action_table_row742_t)CALL((recv), (SFT_parser_tables[3] + 743)))
+#define CALL_parser_tables___ParserTable___action_table_row743(recv) ((parser_tables___ParserTable___action_table_row743_t)CALL((recv), (SFT_parser_tables[3] + 744)))
+#define CALL_parser_tables___ParserTable___action_table_row744(recv) ((parser_tables___ParserTable___action_table_row744_t)CALL((recv), (SFT_parser_tables[3] + 745)))
+#define CALL_parser_tables___ParserTable___action_table_row745(recv) ((parser_tables___ParserTable___action_table_row745_t)CALL((recv), (SFT_parser_tables[3] + 746)))
+#define CALL_parser_tables___ParserTable___action_table_row746(recv) ((parser_tables___ParserTable___action_table_row746_t)CALL((recv), (SFT_parser_tables[3] + 747)))
+#define CALL_parser_tables___ParserTable___action_table_row747(recv) ((parser_tables___ParserTable___action_table_row747_t)CALL((recv), (SFT_parser_tables[3] + 748)))
+#define CALL_parser_tables___ParserTable___action_table_row748(recv) ((parser_tables___ParserTable___action_table_row748_t)CALL((recv), (SFT_parser_tables[3] + 749)))
+#define CALL_parser_tables___ParserTable___action_table_row749(recv) ((parser_tables___ParserTable___action_table_row749_t)CALL((recv), (SFT_parser_tables[3] + 750)))
+#define CALL_parser_tables___ParserTable___action_table_row750(recv) ((parser_tables___ParserTable___action_table_row750_t)CALL((recv), (SFT_parser_tables[3] + 751)))
+#define CALL_parser_tables___ParserTable___action_table_row751(recv) ((parser_tables___ParserTable___action_table_row751_t)CALL((recv), (SFT_parser_tables[3] + 752)))
+#define CALL_parser_tables___ParserTable___action_table_row752(recv) ((parser_tables___ParserTable___action_table_row752_t)CALL((recv), (SFT_parser_tables[3] + 753)))
+#define CALL_parser_tables___ParserTable___action_table_row753(recv) ((parser_tables___ParserTable___action_table_row753_t)CALL((recv), (SFT_parser_tables[3] + 754)))
+#define CALL_parser_tables___ParserTable___action_table_row754(recv) ((parser_tables___ParserTable___action_table_row754_t)CALL((recv), (SFT_parser_tables[3] + 755)))
+#define CALL_parser_tables___ParserTable___action_table_row755(recv) ((parser_tables___ParserTable___action_table_row755_t)CALL((recv), (SFT_parser_tables[3] + 756)))
+#define CALL_parser_tables___ParserTable___action_table_row756(recv) ((parser_tables___ParserTable___action_table_row756_t)CALL((recv), (SFT_parser_tables[3] + 757)))
+#define CALL_parser_tables___ParserTable___action_table_row757(recv) ((parser_tables___ParserTable___action_table_row757_t)CALL((recv), (SFT_parser_tables[3] + 758)))
+#define CALL_parser_tables___ParserTable___action_table_row758(recv) ((parser_tables___ParserTable___action_table_row758_t)CALL((recv), (SFT_parser_tables[3] + 759)))
+#define CALL_parser_tables___ParserTable___action_table_row759(recv) ((parser_tables___ParserTable___action_table_row759_t)CALL((recv), (SFT_parser_tables[3] + 760)))
+#define CALL_parser_tables___ParserTable___action_table_row760(recv) ((parser_tables___ParserTable___action_table_row760_t)CALL((recv), (SFT_parser_tables[3] + 761)))
+#define CALL_parser_tables___ParserTable___action_table_row761(recv) ((parser_tables___ParserTable___action_table_row761_t)CALL((recv), (SFT_parser_tables[3] + 762)))
+#define CALL_parser_tables___ParserTable___action_table_row762(recv) ((parser_tables___ParserTable___action_table_row762_t)CALL((recv), (SFT_parser_tables[3] + 763)))
+#define CALL_parser_tables___ParserTable___action_table_row763(recv) ((parser_tables___ParserTable___action_table_row763_t)CALL((recv), (SFT_parser_tables[3] + 764)))
+#define CALL_parser_tables___ParserTable___action_table_row764(recv) ((parser_tables___ParserTable___action_table_row764_t)CALL((recv), (SFT_parser_tables[3] + 765)))
+#define CALL_parser_tables___ParserTable___action_table_row765(recv) ((parser_tables___ParserTable___action_table_row765_t)CALL((recv), (SFT_parser_tables[3] + 766)))
+#define CALL_parser_tables___ParserTable___action_table_row766(recv) ((parser_tables___ParserTable___action_table_row766_t)CALL((recv), (SFT_parser_tables[3] + 767)))
+#define CALL_parser_tables___ParserTable___action_table_row767(recv) ((parser_tables___ParserTable___action_table_row767_t)CALL((recv), (SFT_parser_tables[3] + 768)))
+#define CALL_parser_tables___ParserTable___action_table_row768(recv) ((parser_tables___ParserTable___action_table_row768_t)CALL((recv), (SFT_parser_tables[3] + 769)))
+#define CALL_parser_tables___ParserTable___action_table_row769(recv) ((parser_tables___ParserTable___action_table_row769_t)CALL((recv), (SFT_parser_tables[3] + 770)))
+#define CALL_parser_tables___ParserTable___action_table_row770(recv) ((parser_tables___ParserTable___action_table_row770_t)CALL((recv), (SFT_parser_tables[3] + 771)))
+#define CALL_parser_tables___ParserTable___action_table_row771(recv) ((parser_tables___ParserTable___action_table_row771_t)CALL((recv), (SFT_parser_tables[3] + 772)))
+#define CALL_parser_tables___ParserTable___action_table_row772(recv) ((parser_tables___ParserTable___action_table_row772_t)CALL((recv), (SFT_parser_tables[3] + 773)))
+#define CALL_parser_tables___ParserTable___action_table_row773(recv) ((parser_tables___ParserTable___action_table_row773_t)CALL((recv), (SFT_parser_tables[3] + 774)))
+#define CALL_parser_tables___ParserTable___action_table_row774(recv) ((parser_tables___ParserTable___action_table_row774_t)CALL((recv), (SFT_parser_tables[3] + 775)))
+#define CALL_parser_tables___ParserTable___action_table_row775(recv) ((parser_tables___ParserTable___action_table_row775_t)CALL((recv), (SFT_parser_tables[3] + 776)))
+#define CALL_parser_tables___ParserTable___action_table_row776(recv) ((parser_tables___ParserTable___action_table_row776_t)CALL((recv), (SFT_parser_tables[3] + 777)))
+#define CALL_parser_tables___ParserTable___action_table_row777(recv) ((parser_tables___ParserTable___action_table_row777_t)CALL((recv), (SFT_parser_tables[3] + 778)))
+#define CALL_parser_tables___ParserTable___action_table_row778(recv) ((parser_tables___ParserTable___action_table_row778_t)CALL((recv), (SFT_parser_tables[3] + 779)))
+#define CALL_parser_tables___ParserTable___action_table_row779(recv) ((parser_tables___ParserTable___action_table_row779_t)CALL((recv), (SFT_parser_tables[3] + 780)))
+#define CALL_parser_tables___ParserTable___action_table_row780(recv) ((parser_tables___ParserTable___action_table_row780_t)CALL((recv), (SFT_parser_tables[3] + 781)))
+#define CALL_parser_tables___ParserTable___action_table_row781(recv) ((parser_tables___ParserTable___action_table_row781_t)CALL((recv), (SFT_parser_tables[3] + 782)))
+#define CALL_parser_tables___ParserTable___action_table_row782(recv) ((parser_tables___ParserTable___action_table_row782_t)CALL((recv), (SFT_parser_tables[3] + 783)))
+#define CALL_parser_tables___ParserTable___action_table_row783(recv) ((parser_tables___ParserTable___action_table_row783_t)CALL((recv), (SFT_parser_tables[3] + 784)))
+#define CALL_parser_tables___ParserTable___action_table_row784(recv) ((parser_tables___ParserTable___action_table_row784_t)CALL((recv), (SFT_parser_tables[3] + 785)))
+#define CALL_parser_tables___ParserTable___action_table_row785(recv) ((parser_tables___ParserTable___action_table_row785_t)CALL((recv), (SFT_parser_tables[3] + 786)))
+#define CALL_parser_tables___ParserTable___action_table_row786(recv) ((parser_tables___ParserTable___action_table_row786_t)CALL((recv), (SFT_parser_tables[3] + 787)))
+#define CALL_parser_tables___ParserTable___action_table_row787(recv) ((parser_tables___ParserTable___action_table_row787_t)CALL((recv), (SFT_parser_tables[3] + 788)))
+#define CALL_parser_tables___ParserTable___action_table_row788(recv) ((parser_tables___ParserTable___action_table_row788_t)CALL((recv), (SFT_parser_tables[3] + 789)))
+#define CALL_parser_tables___ParserTable___action_table_row789(recv) ((parser_tables___ParserTable___action_table_row789_t)CALL((recv), (SFT_parser_tables[3] + 790)))
+#define CALL_parser_tables___ParserTable___action_table_row790(recv) ((parser_tables___ParserTable___action_table_row790_t)CALL((recv), (SFT_parser_tables[3] + 791)))
+#define CALL_parser_tables___ParserTable___action_table_row791(recv) ((parser_tables___ParserTable___action_table_row791_t)CALL((recv), (SFT_parser_tables[3] + 792)))
+#define CALL_parser_tables___ParserTable___action_table_row792(recv) ((parser_tables___ParserTable___action_table_row792_t)CALL((recv), (SFT_parser_tables[3] + 793)))
+#define CALL_parser_tables___ParserTable___action_table_row793(recv) ((parser_tables___ParserTable___action_table_row793_t)CALL((recv), (SFT_parser_tables[3] + 794)))
+#define CALL_parser_tables___ParserTable___action_table_row794(recv) ((parser_tables___ParserTable___action_table_row794_t)CALL((recv), (SFT_parser_tables[3] + 795)))
+#define CALL_parser_tables___ParserTable___action_table_row795(recv) ((parser_tables___ParserTable___action_table_row795_t)CALL((recv), (SFT_parser_tables[3] + 796)))
+#define CALL_parser_tables___ParserTable___action_table_row796(recv) ((parser_tables___ParserTable___action_table_row796_t)CALL((recv), (SFT_parser_tables[3] + 797)))
+#define CALL_parser_tables___ParserTable___action_table_row797(recv) ((parser_tables___ParserTable___action_table_row797_t)CALL((recv), (SFT_parser_tables[3] + 798)))
+#define CALL_parser_tables___ParserTable___action_table_row798(recv) ((parser_tables___ParserTable___action_table_row798_t)CALL((recv), (SFT_parser_tables[3] + 799)))
+#define CALL_parser_tables___ParserTable___action_table_row799(recv) ((parser_tables___ParserTable___action_table_row799_t)CALL((recv), (SFT_parser_tables[3] + 800)))
+#define CALL_parser_tables___ParserTable___action_table_row800(recv) ((parser_tables___ParserTable___action_table_row800_t)CALL((recv), (SFT_parser_tables[3] + 801)))
+#define CALL_parser_tables___ParserTable___action_table_row801(recv) ((parser_tables___ParserTable___action_table_row801_t)CALL((recv), (SFT_parser_tables[3] + 802)))
+#define CALL_parser_tables___ParserTable___action_table_row802(recv) ((parser_tables___ParserTable___action_table_row802_t)CALL((recv), (SFT_parser_tables[3] + 803)))
+#define CALL_parser_tables___ParserTable___action_table_row803(recv) ((parser_tables___ParserTable___action_table_row803_t)CALL((recv), (SFT_parser_tables[3] + 804)))
+#define CALL_parser_tables___ParserTable___action_table_row804(recv) ((parser_tables___ParserTable___action_table_row804_t)CALL((recv), (SFT_parser_tables[3] + 805)))
+#define CALL_parser_tables___ParserTable___action_table_row805(recv) ((parser_tables___ParserTable___action_table_row805_t)CALL((recv), (SFT_parser_tables[3] + 806)))
+#define CALL_parser_tables___ParserTable___action_table_row806(recv) ((parser_tables___ParserTable___action_table_row806_t)CALL((recv), (SFT_parser_tables[3] + 807)))
+#define CALL_parser_tables___ParserTable___action_table_row807(recv) ((parser_tables___ParserTable___action_table_row807_t)CALL((recv), (SFT_parser_tables[3] + 808)))
+#define CALL_parser_tables___ParserTable___action_table_row808(recv) ((parser_tables___ParserTable___action_table_row808_t)CALL((recv), (SFT_parser_tables[3] + 809)))
+#define CALL_parser_tables___ParserTable___action_table_row809(recv) ((parser_tables___ParserTable___action_table_row809_t)CALL((recv), (SFT_parser_tables[3] + 810)))
+#define CALL_parser_tables___ParserTable___action_table_row810(recv) ((parser_tables___ParserTable___action_table_row810_t)CALL((recv), (SFT_parser_tables[3] + 811)))
+#define CALL_parser_tables___ParserTable___action_table_row811(recv) ((parser_tables___ParserTable___action_table_row811_t)CALL((recv), (SFT_parser_tables[3] + 812)))
+#define CALL_parser_tables___ParserTable___action_table_row812(recv) ((parser_tables___ParserTable___action_table_row812_t)CALL((recv), (SFT_parser_tables[3] + 813)))
+#define CALL_parser_tables___ParserTable___action_table_row813(recv) ((parser_tables___ParserTable___action_table_row813_t)CALL((recv), (SFT_parser_tables[3] + 814)))
+#define CALL_parser_tables___ParserTable___action_table_row814(recv) ((parser_tables___ParserTable___action_table_row814_t)CALL((recv), (SFT_parser_tables[3] + 815)))
+#define CALL_parser_tables___ParserTable___action_table_row815(recv) ((parser_tables___ParserTable___action_table_row815_t)CALL((recv), (SFT_parser_tables[3] + 816)))
+#define CALL_parser_tables___ParserTable___action_table_row816(recv) ((parser_tables___ParserTable___action_table_row816_t)CALL((recv), (SFT_parser_tables[3] + 817)))
+#define CALL_parser_tables___ParserTable___action_table_row817(recv) ((parser_tables___ParserTable___action_table_row817_t)CALL((recv), (SFT_parser_tables[3] + 818)))
+#define CALL_parser_tables___ParserTable___action_table_row818(recv) ((parser_tables___ParserTable___action_table_row818_t)CALL((recv), (SFT_parser_tables[3] + 819)))
+#define CALL_parser_tables___ParserTable___action_table_row819(recv) ((parser_tables___ParserTable___action_table_row819_t)CALL((recv), (SFT_parser_tables[3] + 820)))
+#define CALL_parser_tables___ParserTable___action_table_row820(recv) ((parser_tables___ParserTable___action_table_row820_t)CALL((recv), (SFT_parser_tables[3] + 821)))
+#define CALL_parser_tables___ParserTable___action_table_row821(recv) ((parser_tables___ParserTable___action_table_row821_t)CALL((recv), (SFT_parser_tables[3] + 822)))
+#define CALL_parser_tables___ParserTable___action_table_row822(recv) ((parser_tables___ParserTable___action_table_row822_t)CALL((recv), (SFT_parser_tables[3] + 823)))
+#define CALL_parser_tables___ParserTable___action_table_row823(recv) ((parser_tables___ParserTable___action_table_row823_t)CALL((recv), (SFT_parser_tables[3] + 824)))
+#define CALL_parser_tables___ParserTable___action_table_row824(recv) ((parser_tables___ParserTable___action_table_row824_t)CALL((recv), (SFT_parser_tables[3] + 825)))
+#define CALL_parser_tables___ParserTable___action_table_row825(recv) ((parser_tables___ParserTable___action_table_row825_t)CALL((recv), (SFT_parser_tables[3] + 826)))
+#define CALL_parser_tables___ParserTable___action_table_row826(recv) ((parser_tables___ParserTable___action_table_row826_t)CALL((recv), (SFT_parser_tables[3] + 827)))
+#define CALL_parser_tables___ParserTable___action_table_row827(recv) ((parser_tables___ParserTable___action_table_row827_t)CALL((recv), (SFT_parser_tables[3] + 828)))
+#define CALL_parser_tables___ParserTable___action_table_row828(recv) ((parser_tables___ParserTable___action_table_row828_t)CALL((recv), (SFT_parser_tables[3] + 829)))
+#define CALL_parser_tables___ParserTable___action_table_row829(recv) ((parser_tables___ParserTable___action_table_row829_t)CALL((recv), (SFT_parser_tables[3] + 830)))
+#define CALL_parser_tables___ParserTable___action_table_row830(recv) ((parser_tables___ParserTable___action_table_row830_t)CALL((recv), (SFT_parser_tables[3] + 831)))
+#define CALL_parser_tables___ParserTable___action_table_row831(recv) ((parser_tables___ParserTable___action_table_row831_t)CALL((recv), (SFT_parser_tables[3] + 832)))
+#define CALL_parser_tables___ParserTable___action_table_row832(recv) ((parser_tables___ParserTable___action_table_row832_t)CALL((recv), (SFT_parser_tables[3] + 833)))
+#define CALL_parser_tables___ParserTable___action_table_row833(recv) ((parser_tables___ParserTable___action_table_row833_t)CALL((recv), (SFT_parser_tables[3] + 834)))
+#define CALL_parser_tables___ParserTable___action_table_row834(recv) ((parser_tables___ParserTable___action_table_row834_t)CALL((recv), (SFT_parser_tables[3] + 835)))
+#define CALL_parser_tables___ParserTable___action_table_row835(recv) ((parser_tables___ParserTable___action_table_row835_t)CALL((recv), (SFT_parser_tables[3] + 836)))
+#define CALL_parser_tables___ParserTable___action_table_row836(recv) ((parser_tables___ParserTable___action_table_row836_t)CALL((recv), (SFT_parser_tables[3] + 837)))
+#define CALL_parser_tables___ParserTable___action_table_row837(recv) ((parser_tables___ParserTable___action_table_row837_t)CALL((recv), (SFT_parser_tables[3] + 838)))
+#define CALL_parser_tables___ParserTable___action_table_row838(recv) ((parser_tables___ParserTable___action_table_row838_t)CALL((recv), (SFT_parser_tables[3] + 839)))
+#define CALL_parser_tables___ParserTable___action_table_row839(recv) ((parser_tables___ParserTable___action_table_row839_t)CALL((recv), (SFT_parser_tables[3] + 840)))
+#define CALL_parser_tables___ParserTable___action_table_row840(recv) ((parser_tables___ParserTable___action_table_row840_t)CALL((recv), (SFT_parser_tables[3] + 841)))
+#define CALL_parser_tables___ParserTable___action_table_row841(recv) ((parser_tables___ParserTable___action_table_row841_t)CALL((recv), (SFT_parser_tables[3] + 842)))
+#define CALL_parser_tables___ParserTable___action_table_row842(recv) ((parser_tables___ParserTable___action_table_row842_t)CALL((recv), (SFT_parser_tables[3] + 843)))
+#define CALL_parser_tables___ParserTable___action_table_row843(recv) ((parser_tables___ParserTable___action_table_row843_t)CALL((recv), (SFT_parser_tables[3] + 844)))
+#define CALL_parser_tables___ParserTable___action_table_row844(recv) ((parser_tables___ParserTable___action_table_row844_t)CALL((recv), (SFT_parser_tables[3] + 845)))
+#define CALL_parser_tables___ParserTable___action_table_row845(recv) ((parser_tables___ParserTable___action_table_row845_t)CALL((recv), (SFT_parser_tables[3] + 846)))
+#define CALL_parser_tables___ParserTable___action_table_row846(recv) ((parser_tables___ParserTable___action_table_row846_t)CALL((recv), (SFT_parser_tables[3] + 847)))
+#define CALL_parser_tables___ParserTable___action_table_row847(recv) ((parser_tables___ParserTable___action_table_row847_t)CALL((recv), (SFT_parser_tables[3] + 848)))
+#define CALL_parser_tables___ParserTable___action_table_row848(recv) ((parser_tables___ParserTable___action_table_row848_t)CALL((recv), (SFT_parser_tables[3] + 849)))
+#define CALL_parser_tables___ParserTable___action_table_row849(recv) ((parser_tables___ParserTable___action_table_row849_t)CALL((recv), (SFT_parser_tables[3] + 850)))
+#define CALL_parser_tables___ParserTable___action_table_row850(recv) ((parser_tables___ParserTable___action_table_row850_t)CALL((recv), (SFT_parser_tables[3] + 851)))
+#define CALL_parser_tables___ParserTable___action_table_row851(recv) ((parser_tables___ParserTable___action_table_row851_t)CALL((recv), (SFT_parser_tables[3] + 852)))
+#define CALL_parser_tables___ParserTable___action_table_row852(recv) ((parser_tables___ParserTable___action_table_row852_t)CALL((recv), (SFT_parser_tables[3] + 853)))
+#define CALL_parser_tables___ParserTable___action_table_row853(recv) ((parser_tables___ParserTable___action_table_row853_t)CALL((recv), (SFT_parser_tables[3] + 854)))
+#define CALL_parser_tables___ParserTable___action_table_row854(recv) ((parser_tables___ParserTable___action_table_row854_t)CALL((recv), (SFT_parser_tables[3] + 855)))
+#define CALL_parser_tables___ParserTable___action_table_row855(recv) ((parser_tables___ParserTable___action_table_row855_t)CALL((recv), (SFT_parser_tables[3] + 856)))
+#define CALL_parser_tables___ParserTable___action_table_row856(recv) ((parser_tables___ParserTable___action_table_row856_t)CALL((recv), (SFT_parser_tables[3] + 857)))
+#define CALL_parser_tables___ParserTable___action_table_row857(recv) ((parser_tables___ParserTable___action_table_row857_t)CALL((recv), (SFT_parser_tables[3] + 858)))
+#define CALL_parser_tables___ParserTable___action_table_row858(recv) ((parser_tables___ParserTable___action_table_row858_t)CALL((recv), (SFT_parser_tables[3] + 859)))
+#define CALL_parser_tables___ParserTable___action_table_row859(recv) ((parser_tables___ParserTable___action_table_row859_t)CALL((recv), (SFT_parser_tables[3] + 860)))
+#define CALL_parser_tables___ParserTable___action_table_row860(recv) ((parser_tables___ParserTable___action_table_row860_t)CALL((recv), (SFT_parser_tables[3] + 861)))
+#define CALL_parser_tables___ParserTable___action_table_row861(recv) ((parser_tables___ParserTable___action_table_row861_t)CALL((recv), (SFT_parser_tables[3] + 862)))
+#define CALL_parser_tables___ParserTable___action_table_row862(recv) ((parser_tables___ParserTable___action_table_row862_t)CALL((recv), (SFT_parser_tables[3] + 863)))
+#define CALL_parser_tables___ParserTable___action_table_row863(recv) ((parser_tables___ParserTable___action_table_row863_t)CALL((recv), (SFT_parser_tables[3] + 864)))
+#define CALL_parser_tables___ParserTable___action_table_row864(recv) ((parser_tables___ParserTable___action_table_row864_t)CALL((recv), (SFT_parser_tables[3] + 865)))
+#define CALL_parser_tables___ParserTable___action_table_row865(recv) ((parser_tables___ParserTable___action_table_row865_t)CALL((recv), (SFT_parser_tables[3] + 866)))
+#define CALL_parser_tables___ParserTable___action_table_row866(recv) ((parser_tables___ParserTable___action_table_row866_t)CALL((recv), (SFT_parser_tables[3] + 867)))
+#define CALL_parser_tables___ParserTable___action_table_row867(recv) ((parser_tables___ParserTable___action_table_row867_t)CALL((recv), (SFT_parser_tables[3] + 868)))
+#define CALL_parser_tables___ParserTable___action_table_row868(recv) ((parser_tables___ParserTable___action_table_row868_t)CALL((recv), (SFT_parser_tables[3] + 869)))
+#define CALL_parser_tables___ParserTable___action_table_row869(recv) ((parser_tables___ParserTable___action_table_row869_t)CALL((recv), (SFT_parser_tables[3] + 870)))
+#define CALL_parser_tables___ParserTable___action_table_row870(recv) ((parser_tables___ParserTable___action_table_row870_t)CALL((recv), (SFT_parser_tables[3] + 871)))
+#define CALL_parser_tables___ParserTable___action_table_row871(recv) ((parser_tables___ParserTable___action_table_row871_t)CALL((recv), (SFT_parser_tables[3] + 872)))
+#define CALL_parser_tables___ParserTable___action_table_row872(recv) ((parser_tables___ParserTable___action_table_row872_t)CALL((recv), (SFT_parser_tables[3] + 873)))
+#define CALL_parser_tables___ParserTable___action_table_row873(recv) ((parser_tables___ParserTable___action_table_row873_t)CALL((recv), (SFT_parser_tables[3] + 874)))
+#define CALL_parser_tables___ParserTable___action_table_row874(recv) ((parser_tables___ParserTable___action_table_row874_t)CALL((recv), (SFT_parser_tables[3] + 875)))
+#define CALL_parser_tables___ParserTable___action_table_row875(recv) ((parser_tables___ParserTable___action_table_row875_t)CALL((recv), (SFT_parser_tables[3] + 876)))
+#define CALL_parser_tables___ParserTable___action_table_row876(recv) ((parser_tables___ParserTable___action_table_row876_t)CALL((recv), (SFT_parser_tables[3] + 877)))
+#define CALL_parser_tables___ParserTable___action_table_row877(recv) ((parser_tables___ParserTable___action_table_row877_t)CALL((recv), (SFT_parser_tables[3] + 878)))
+#define CALL_parser_tables___ParserTable___action_table_row878(recv) ((parser_tables___ParserTable___action_table_row878_t)CALL((recv), (SFT_parser_tables[3] + 879)))
+#define CALL_parser_tables___ParserTable___action_table_row879(recv) ((parser_tables___ParserTable___action_table_row879_t)CALL((recv), (SFT_parser_tables[3] + 880)))
+#define CALL_parser_tables___ParserTable___action_table_row880(recv) ((parser_tables___ParserTable___action_table_row880_t)CALL((recv), (SFT_parser_tables[3] + 881)))
+#define CALL_parser_tables___ParserTable___action_table_row881(recv) ((parser_tables___ParserTable___action_table_row881_t)CALL((recv), (SFT_parser_tables[3] + 882)))
+#define CALL_parser_tables___ParserTable___action_table_row882(recv) ((parser_tables___ParserTable___action_table_row882_t)CALL((recv), (SFT_parser_tables[3] + 883)))
+#define CALL_parser_tables___ParserTable___action_table_row883(recv) ((parser_tables___ParserTable___action_table_row883_t)CALL((recv), (SFT_parser_tables[3] + 884)))
+#define CALL_parser_tables___ParserTable___action_table_row884(recv) ((parser_tables___ParserTable___action_table_row884_t)CALL((recv), (SFT_parser_tables[3] + 885)))
+#define CALL_parser_tables___ParserTable___action_table_row885(recv) ((parser_tables___ParserTable___action_table_row885_t)CALL((recv), (SFT_parser_tables[3] + 886)))
+#define CALL_parser_tables___ParserTable___action_table_row886(recv) ((parser_tables___ParserTable___action_table_row886_t)CALL((recv), (SFT_parser_tables[3] + 887)))
+#define CALL_parser_tables___ParserTable___action_table_row887(recv) ((parser_tables___ParserTable___action_table_row887_t)CALL((recv), (SFT_parser_tables[3] + 888)))
+#define CALL_parser_tables___ParserTable___action_table_row888(recv) ((parser_tables___ParserTable___action_table_row888_t)CALL((recv), (SFT_parser_tables[3] + 889)))
+#define CALL_parser_tables___ParserTable___action_table_row889(recv) ((parser_tables___ParserTable___action_table_row889_t)CALL((recv), (SFT_parser_tables[3] + 890)))
+#define CALL_parser_tables___ParserTable___action_table_row890(recv) ((parser_tables___ParserTable___action_table_row890_t)CALL((recv), (SFT_parser_tables[3] + 891)))
+#define CALL_parser_tables___ParserTable___action_table_row891(recv) ((parser_tables___ParserTable___action_table_row891_t)CALL((recv), (SFT_parser_tables[3] + 892)))
+#define CALL_parser_tables___ParserTable___action_table_row892(recv) ((parser_tables___ParserTable___action_table_row892_t)CALL((recv), (SFT_parser_tables[3] + 893)))
+#define CALL_parser_tables___ParserTable___action_table_row893(recv) ((parser_tables___ParserTable___action_table_row893_t)CALL((recv), (SFT_parser_tables[3] + 894)))
+#define CALL_parser_tables___ParserTable___action_table_row894(recv) ((parser_tables___ParserTable___action_table_row894_t)CALL((recv), (SFT_parser_tables[3] + 895)))
+#define CALL_parser_tables___ParserTable___action_table_row895(recv) ((parser_tables___ParserTable___action_table_row895_t)CALL((recv), (SFT_parser_tables[3] + 896)))
+#define CALL_parser_tables___ParserTable___action_table_row896(recv) ((parser_tables___ParserTable___action_table_row896_t)CALL((recv), (SFT_parser_tables[3] + 897)))
+#define CALL_parser_tables___ParserTable___action_table_row897(recv) ((parser_tables___ParserTable___action_table_row897_t)CALL((recv), (SFT_parser_tables[3] + 898)))
+#define CALL_parser_tables___ParserTable___action_table_row898(recv) ((parser_tables___ParserTable___action_table_row898_t)CALL((recv), (SFT_parser_tables[3] + 899)))
+#define CALL_parser_tables___ParserTable___action_table_row899(recv) ((parser_tables___ParserTable___action_table_row899_t)CALL((recv), (SFT_parser_tables[3] + 900)))
+#define CALL_parser_tables___ParserTable___action_table_row900(recv) ((parser_tables___ParserTable___action_table_row900_t)CALL((recv), (SFT_parser_tables[3] + 901)))
+#define CALL_parser_tables___ParserTable___action_table_row901(recv) ((parser_tables___ParserTable___action_table_row901_t)CALL((recv), (SFT_parser_tables[3] + 902)))
+#define CALL_parser_tables___ParserTable___action_table_row902(recv) ((parser_tables___ParserTable___action_table_row902_t)CALL((recv), (SFT_parser_tables[3] + 903)))
+#define CALL_parser_tables___ParserTable___action_table_row903(recv) ((parser_tables___ParserTable___action_table_row903_t)CALL((recv), (SFT_parser_tables[3] + 904)))
+#define CALL_parser_tables___ParserTable___action_table_row904(recv) ((parser_tables___ParserTable___action_table_row904_t)CALL((recv), (SFT_parser_tables[3] + 905)))
+#define CALL_parser_tables___ParserTable___action_table_row905(recv) ((parser_tables___ParserTable___action_table_row905_t)CALL((recv), (SFT_parser_tables[3] + 906)))
+#define CALL_parser_tables___ParserTable___action_table_row906(recv) ((parser_tables___ParserTable___action_table_row906_t)CALL((recv), (SFT_parser_tables[3] + 907)))
+#define CALL_parser_tables___ParserTable___action_table_row907(recv) ((parser_tables___ParserTable___action_table_row907_t)CALL((recv), (SFT_parser_tables[3] + 908)))
+#define CALL_parser_tables___ParserTable___action_table_row908(recv) ((parser_tables___ParserTable___action_table_row908_t)CALL((recv), (SFT_parser_tables[3] + 909)))
+#define CALL_parser_tables___ParserTable___action_table_row909(recv) ((parser_tables___ParserTable___action_table_row909_t)CALL((recv), (SFT_parser_tables[3] + 910)))
+#define CALL_parser_tables___ParserTable___action_table_row910(recv) ((parser_tables___ParserTable___action_table_row910_t)CALL((recv), (SFT_parser_tables[3] + 911)))
+#define CALL_parser_tables___ParserTable___action_table_row911(recv) ((parser_tables___ParserTable___action_table_row911_t)CALL((recv), (SFT_parser_tables[3] + 912)))
+#define CALL_parser_tables___ParserTable___action_table_row912(recv) ((parser_tables___ParserTable___action_table_row912_t)CALL((recv), (SFT_parser_tables[3] + 913)))
+#define CALL_parser_tables___ParserTable___action_table_row913(recv) ((parser_tables___ParserTable___action_table_row913_t)CALL((recv), (SFT_parser_tables[3] + 914)))
+#define CALL_parser_tables___ParserTable___action_table_row914(recv) ((parser_tables___ParserTable___action_table_row914_t)CALL((recv), (SFT_parser_tables[3] + 915)))
+#define CALL_parser_tables___ParserTable___action_table_row915(recv) ((parser_tables___ParserTable___action_table_row915_t)CALL((recv), (SFT_parser_tables[3] + 916)))
+#define CALL_parser_tables___ParserTable___action_table_row916(recv) ((parser_tables___ParserTable___action_table_row916_t)CALL((recv), (SFT_parser_tables[3] + 917)))
+#define CALL_parser_tables___ParserTable___action_table_row917(recv) ((parser_tables___ParserTable___action_table_row917_t)CALL((recv), (SFT_parser_tables[3] + 918)))
+#define CALL_parser_tables___ParserTable___action_table_row918(recv) ((parser_tables___ParserTable___action_table_row918_t)CALL((recv), (SFT_parser_tables[3] + 919)))
+#define CALL_parser_tables___ParserTable___action_table_row919(recv) ((parser_tables___ParserTable___action_table_row919_t)CALL((recv), (SFT_parser_tables[3] + 920)))
+#define CALL_parser_tables___ParserTable___action_table_row920(recv) ((parser_tables___ParserTable___action_table_row920_t)CALL((recv), (SFT_parser_tables[3] + 921)))
+#define CALL_parser_tables___ParserTable___action_table_row921(recv) ((parser_tables___ParserTable___action_table_row921_t)CALL((recv), (SFT_parser_tables[3] + 922)))
+#define CALL_parser_tables___ParserTable___action_table_row922(recv) ((parser_tables___ParserTable___action_table_row922_t)CALL((recv), (SFT_parser_tables[3] + 923)))
+#define CALL_parser_tables___ParserTable___action_table_row923(recv) ((parser_tables___ParserTable___action_table_row923_t)CALL((recv), (SFT_parser_tables[3] + 924)))
+#define CALL_parser_tables___ParserTable___action_table_row924(recv) ((parser_tables___ParserTable___action_table_row924_t)CALL((recv), (SFT_parser_tables[3] + 925)))
+#define CALL_parser_tables___ParserTable___action_table_row925(recv) ((parser_tables___ParserTable___action_table_row925_t)CALL((recv), (SFT_parser_tables[3] + 926)))
+#define CALL_parser_tables___ParserTable___action_table_row926(recv) ((parser_tables___ParserTable___action_table_row926_t)CALL((recv), (SFT_parser_tables[3] + 927)))
+#define CALL_parser_tables___ParserTable___action_table_row927(recv) ((parser_tables___ParserTable___action_table_row927_t)CALL((recv), (SFT_parser_tables[3] + 928)))
+#define CALL_parser_tables___ParserTable___action_table_row928(recv) ((parser_tables___ParserTable___action_table_row928_t)CALL((recv), (SFT_parser_tables[3] + 929)))
+#define CALL_parser_tables___ParserTable___action_table_row929(recv) ((parser_tables___ParserTable___action_table_row929_t)CALL((recv), (SFT_parser_tables[3] + 930)))
+#define CALL_parser_tables___ParserTable___action_table_row930(recv) ((parser_tables___ParserTable___action_table_row930_t)CALL((recv), (SFT_parser_tables[3] + 931)))
+#define CALL_parser_tables___ParserTable___action_table_row931(recv) ((parser_tables___ParserTable___action_table_row931_t)CALL((recv), (SFT_parser_tables[3] + 932)))
+#define CALL_parser_tables___ParserTable___action_table_row932(recv) ((parser_tables___ParserTable___action_table_row932_t)CALL((recv), (SFT_parser_tables[3] + 933)))
+#define CALL_parser_tables___ParserTable___action_table_row933(recv) ((parser_tables___ParserTable___action_table_row933_t)CALL((recv), (SFT_parser_tables[3] + 934)))
+#define CALL_parser_tables___ParserTable___action_table_row934(recv) ((parser_tables___ParserTable___action_table_row934_t)CALL((recv), (SFT_parser_tables[3] + 935)))
+#define CALL_parser_tables___ParserTable___action_table_row935(recv) ((parser_tables___ParserTable___action_table_row935_t)CALL((recv), (SFT_parser_tables[3] + 936)))
+#define CALL_parser_tables___ParserTable___action_table_row936(recv) ((parser_tables___ParserTable___action_table_row936_t)CALL((recv), (SFT_parser_tables[3] + 937)))
+#define CALL_parser_tables___ParserTable___action_table_row937(recv) ((parser_tables___ParserTable___action_table_row937_t)CALL((recv), (SFT_parser_tables[3] + 938)))
+#define CALL_parser_tables___ParserTable___action_table_row938(recv) ((parser_tables___ParserTable___action_table_row938_t)CALL((recv), (SFT_parser_tables[3] + 939)))
+#define CALL_parser_tables___ParserTable___action_table_row939(recv) ((parser_tables___ParserTable___action_table_row939_t)CALL((recv), (SFT_parser_tables[3] + 940)))
+#define CALL_parser_tables___ParserTable___action_table_row940(recv) ((parser_tables___ParserTable___action_table_row940_t)CALL((recv), (SFT_parser_tables[3] + 941)))
+#define CALL_parser_tables___ParserTable___action_table_row941(recv) ((parser_tables___ParserTable___action_table_row941_t)CALL((recv), (SFT_parser_tables[3] + 942)))
+#define CALL_parser_tables___ParserTable___action_table_row942(recv) ((parser_tables___ParserTable___action_table_row942_t)CALL((recv), (SFT_parser_tables[3] + 943)))
+#define CALL_parser_tables___ParserTable___action_table_row943(recv) ((parser_tables___ParserTable___action_table_row943_t)CALL((recv), (SFT_parser_tables[3] + 944)))
+#define CALL_parser_tables___ParserTable___action_table_row944(recv) ((parser_tables___ParserTable___action_table_row944_t)CALL((recv), (SFT_parser_tables[3] + 945)))
+#define CALL_parser_tables___ParserTable___action_table_row945(recv) ((parser_tables___ParserTable___action_table_row945_t)CALL((recv), (SFT_parser_tables[3] + 946)))
+#define CALL_parser_tables___ParserTable___action_table_row946(recv) ((parser_tables___ParserTable___action_table_row946_t)CALL((recv), (SFT_parser_tables[3] + 947)))
+#define CALL_parser_tables___ParserTable___action_table_row947(recv) ((parser_tables___ParserTable___action_table_row947_t)CALL((recv), (SFT_parser_tables[3] + 948)))
+#define CALL_parser_tables___ParserTable___action_table_row948(recv) ((parser_tables___ParserTable___action_table_row948_t)CALL((recv), (SFT_parser_tables[3] + 949)))
+#define CALL_parser_tables___ParserTable___action_table_row949(recv) ((parser_tables___ParserTable___action_table_row949_t)CALL((recv), (SFT_parser_tables[3] + 950)))
+#define CALL_parser_tables___ParserTable___action_table_row950(recv) ((parser_tables___ParserTable___action_table_row950_t)CALL((recv), (SFT_parser_tables[3] + 951)))
+#define CALL_parser_tables___ParserTable___action_table_row951(recv) ((parser_tables___ParserTable___action_table_row951_t)CALL((recv), (SFT_parser_tables[3] + 952)))
+#define CALL_parser_tables___ParserTable___action_table_row952(recv) ((parser_tables___ParserTable___action_table_row952_t)CALL((recv), (SFT_parser_tables[3] + 953)))
+#define CALL_parser_tables___ParserTable___action_table_row953(recv) ((parser_tables___ParserTable___action_table_row953_t)CALL((recv), (SFT_parser_tables[3] + 954)))
+#define CALL_parser_tables___ParserTable___action_table_row954(recv) ((parser_tables___ParserTable___action_table_row954_t)CALL((recv), (SFT_parser_tables[3] + 955)))
+#define CALL_parser_tables___ParserTable___action_table_row955(recv) ((parser_tables___ParserTable___action_table_row955_t)CALL((recv), (SFT_parser_tables[3] + 956)))
+#define CALL_parser_tables___ParserTable___action_table_row956(recv) ((parser_tables___ParserTable___action_table_row956_t)CALL((recv), (SFT_parser_tables[3] + 957)))
+#define CALL_parser_tables___ParserTable___action_table_row957(recv) ((parser_tables___ParserTable___action_table_row957_t)CALL((recv), (SFT_parser_tables[3] + 958)))
+#define CALL_parser_tables___ParserTable___action_table_row958(recv) ((parser_tables___ParserTable___action_table_row958_t)CALL((recv), (SFT_parser_tables[3] + 959)))
+#define CALL_parser_tables___ParserTable___action_table_row959(recv) ((parser_tables___ParserTable___action_table_row959_t)CALL((recv), (SFT_parser_tables[3] + 960)))
+#define CALL_parser_tables___ParserTable___action_table_row960(recv) ((parser_tables___ParserTable___action_table_row960_t)CALL((recv), (SFT_parser_tables[3] + 961)))
+#define CALL_parser_tables___ParserTable___action_table_row961(recv) ((parser_tables___ParserTable___action_table_row961_t)CALL((recv), (SFT_parser_tables[3] + 962)))
+#define CALL_parser_tables___ParserTable___action_table_row962(recv) ((parser_tables___ParserTable___action_table_row962_t)CALL((recv), (SFT_parser_tables[3] + 963)))
+#define CALL_parser_tables___ParserTable___action_table_row963(recv) ((parser_tables___ParserTable___action_table_row963_t)CALL((recv), (SFT_parser_tables[3] + 964)))
+#define CALL_parser_tables___ParserTable___action_table_row964(recv) ((parser_tables___ParserTable___action_table_row964_t)CALL((recv), (SFT_parser_tables[3] + 965)))
+#define CALL_parser_tables___ParserTable___action_table_row965(recv) ((parser_tables___ParserTable___action_table_row965_t)CALL((recv), (SFT_parser_tables[3] + 966)))
+#define CALL_parser_tables___ParserTable___action_table_row966(recv) ((parser_tables___ParserTable___action_table_row966_t)CALL((recv), (SFT_parser_tables[3] + 967)))
+#define CALL_parser_tables___ParserTable___action_table_row967(recv) ((parser_tables___ParserTable___action_table_row967_t)CALL((recv), (SFT_parser_tables[3] + 968)))
+#define CALL_parser_tables___ParserTable___action_table_row968(recv) ((parser_tables___ParserTable___action_table_row968_t)CALL((recv), (SFT_parser_tables[3] + 969)))
+#define CALL_parser_tables___ParserTable___action_table_row969(recv) ((parser_tables___ParserTable___action_table_row969_t)CALL((recv), (SFT_parser_tables[3] + 970)))
+#define CALL_parser_tables___ParserTable___action_table_row970(recv) ((parser_tables___ParserTable___action_table_row970_t)CALL((recv), (SFT_parser_tables[3] + 971)))
+#define CALL_parser_tables___ParserTable___action_table_row971(recv) ((parser_tables___ParserTable___action_table_row971_t)CALL((recv), (SFT_parser_tables[3] + 972)))
+#define CALL_parser_tables___ParserTable___action_table_row972(recv) ((parser_tables___ParserTable___action_table_row972_t)CALL((recv), (SFT_parser_tables[3] + 973)))
+#define CALL_parser_tables___ParserTable___action_table_row973(recv) ((parser_tables___ParserTable___action_table_row973_t)CALL((recv), (SFT_parser_tables[3] + 974)))
+#define CALL_parser_tables___ParserTable___action_table_row974(recv) ((parser_tables___ParserTable___action_table_row974_t)CALL((recv), (SFT_parser_tables[3] + 975)))
+#define CALL_parser_tables___ParserTable___action_table_row975(recv) ((parser_tables___ParserTable___action_table_row975_t)CALL((recv), (SFT_parser_tables[3] + 976)))
+#define CALL_parser_tables___ParserTable___action_table_row976(recv) ((parser_tables___ParserTable___action_table_row976_t)CALL((recv), (SFT_parser_tables[3] + 977)))
+#define CALL_parser_tables___ParserTable___action_table_row977(recv) ((parser_tables___ParserTable___action_table_row977_t)CALL((recv), (SFT_parser_tables[3] + 978)))
+#define CALL_parser_tables___ParserTable___action_table_row978(recv) ((parser_tables___ParserTable___action_table_row978_t)CALL((recv), (SFT_parser_tables[3] + 979)))
+#define CALL_parser_tables___ParserTable___action_table_row979(recv) ((parser_tables___ParserTable___action_table_row979_t)CALL((recv), (SFT_parser_tables[3] + 980)))
+#define CALL_parser_tables___ParserTable___action_table_row980(recv) ((parser_tables___ParserTable___action_table_row980_t)CALL((recv), (SFT_parser_tables[3] + 981)))
+#define CALL_parser_tables___ParserTable___action_table_row981(recv) ((parser_tables___ParserTable___action_table_row981_t)CALL((recv), (SFT_parser_tables[3] + 982)))
+#define CALL_parser_tables___ParserTable___action_table_row982(recv) ((parser_tables___ParserTable___action_table_row982_t)CALL((recv), (SFT_parser_tables[3] + 983)))
+#define CALL_parser_tables___ParserTable___action_table_row983(recv) ((parser_tables___ParserTable___action_table_row983_t)CALL((recv), (SFT_parser_tables[3] + 984)))
+#define CALL_parser_tables___ParserTable___action_table_row984(recv) ((parser_tables___ParserTable___action_table_row984_t)CALL((recv), (SFT_parser_tables[3] + 985)))
+#define CALL_parser_tables___ParserTable___action_table_row985(recv) ((parser_tables___ParserTable___action_table_row985_t)CALL((recv), (SFT_parser_tables[3] + 986)))
+#define CALL_parser_tables___ParserTable___action_table_row986(recv) ((parser_tables___ParserTable___action_table_row986_t)CALL((recv), (SFT_parser_tables[3] + 987)))
+#define CALL_parser_tables___ParserTable___action_table_row987(recv) ((parser_tables___ParserTable___action_table_row987_t)CALL((recv), (SFT_parser_tables[3] + 988)))
+#define CALL_parser_tables___ParserTable___action_table_row988(recv) ((parser_tables___ParserTable___action_table_row988_t)CALL((recv), (SFT_parser_tables[3] + 989)))
+#define CALL_parser_tables___ParserTable___action_table_row989(recv) ((parser_tables___ParserTable___action_table_row989_t)CALL((recv), (SFT_parser_tables[3] + 990)))
+#define CALL_parser_tables___ParserTable___action_table_row990(recv) ((parser_tables___ParserTable___action_table_row990_t)CALL((recv), (SFT_parser_tables[3] + 991)))
+#define CALL_parser_tables___ParserTable___action_table_row991(recv) ((parser_tables___ParserTable___action_table_row991_t)CALL((recv), (SFT_parser_tables[3] + 992)))
+#define CALL_parser_tables___ParserTable___action_table_row992(recv) ((parser_tables___ParserTable___action_table_row992_t)CALL((recv), (SFT_parser_tables[3] + 993)))
+#define CALL_parser_tables___ParserTable___action_table_row993(recv) ((parser_tables___ParserTable___action_table_row993_t)CALL((recv), (SFT_parser_tables[3] + 994)))
+#define CALL_parser_tables___ParserTable___action_table_row994(recv) ((parser_tables___ParserTable___action_table_row994_t)CALL((recv), (SFT_parser_tables[3] + 995)))
+#define CALL_parser_tables___ParserTable___action_table_row995(recv) ((parser_tables___ParserTable___action_table_row995_t)CALL((recv), (SFT_parser_tables[3] + 996)))
+#define CALL_parser_tables___ParserTable___action_table_row996(recv) ((parser_tables___ParserTable___action_table_row996_t)CALL((recv), (SFT_parser_tables[3] + 997)))
+#define CALL_parser_tables___ParserTable___action_table_row997(recv) ((parser_tables___ParserTable___action_table_row997_t)CALL((recv), (SFT_parser_tables[3] + 998)))
+#define CALL_parser_tables___ParserTable___action_table_row998(recv) ((parser_tables___ParserTable___action_table_row998_t)CALL((recv), (SFT_parser_tables[3] + 999)))
+#define CALL_parser_tables___ParserTable___action_table_row999(recv) ((parser_tables___ParserTable___action_table_row999_t)CALL((recv), (SFT_parser_tables[3] + 1000)))
+#define CALL_parser_tables___ParserTable___action_table_row1000(recv) ((parser_tables___ParserTable___action_table_row1000_t)CALL((recv), (SFT_parser_tables[3] + 1001)))
+#define CALL_parser_tables___ParserTable___action_table_row1001(recv) ((parser_tables___ParserTable___action_table_row1001_t)CALL((recv), (SFT_parser_tables[3] + 1002)))
+#define CALL_parser_tables___ParserTable___action_table_row1002(recv) ((parser_tables___ParserTable___action_table_row1002_t)CALL((recv), (SFT_parser_tables[3] + 1003)))
+#define CALL_parser_tables___ParserTable___action_table_row1003(recv) ((parser_tables___ParserTable___action_table_row1003_t)CALL((recv), (SFT_parser_tables[3] + 1004)))
+#define CALL_parser_tables___ParserTable___action_table_row1004(recv) ((parser_tables___ParserTable___action_table_row1004_t)CALL((recv), (SFT_parser_tables[3] + 1005)))
+#define CALL_parser_tables___ParserTable___action_table_row1005(recv) ((parser_tables___ParserTable___action_table_row1005_t)CALL((recv), (SFT_parser_tables[3] + 1006)))
+#define CALL_parser_tables___ParserTable___action_table_row1006(recv) ((parser_tables___ParserTable___action_table_row1006_t)CALL((recv), (SFT_parser_tables[3] + 1007)))
+#define CALL_parser_tables___ParserTable___action_table_row1007(recv) ((parser_tables___ParserTable___action_table_row1007_t)CALL((recv), (SFT_parser_tables[3] + 1008)))
+#define CALL_parser_tables___ParserTable___action_table_row1008(recv) ((parser_tables___ParserTable___action_table_row1008_t)CALL((recv), (SFT_parser_tables[3] + 1009)))
+#define CALL_parser_tables___ParserTable___action_table_row1009(recv) ((parser_tables___ParserTable___action_table_row1009_t)CALL((recv), (SFT_parser_tables[3] + 1010)))
+#define CALL_parser_tables___ParserTable___action_table_row1010(recv) ((parser_tables___ParserTable___action_table_row1010_t)CALL((recv), (SFT_parser_tables[3] + 1011)))
+#define CALL_parser_tables___ParserTable___action_table_row1011(recv) ((parser_tables___ParserTable___action_table_row1011_t)CALL((recv), (SFT_parser_tables[3] + 1012)))
+#define CALL_parser_tables___ParserTable___action_table_row1012(recv) ((parser_tables___ParserTable___action_table_row1012_t)CALL((recv), (SFT_parser_tables[3] + 1013)))
+#define CALL_parser_tables___ParserTable___action_table_row1013(recv) ((parser_tables___ParserTable___action_table_row1013_t)CALL((recv), (SFT_parser_tables[3] + 1014)))
+#define CALL_parser_tables___ParserTable___action_table_row1014(recv) ((parser_tables___ParserTable___action_table_row1014_t)CALL((recv), (SFT_parser_tables[3] + 1015)))
+#define CALL_parser_tables___ParserTable___action_table_row1015(recv) ((parser_tables___ParserTable___action_table_row1015_t)CALL((recv), (SFT_parser_tables[3] + 1016)))
+#define CALL_parser_tables___ParserTable___action_table_row1016(recv) ((parser_tables___ParserTable___action_table_row1016_t)CALL((recv), (SFT_parser_tables[3] + 1017)))
+#define CALL_parser_tables___ParserTable___action_table_row1017(recv) ((parser_tables___ParserTable___action_table_row1017_t)CALL((recv), (SFT_parser_tables[3] + 1018)))
+#define CALL_parser_tables___ParserTable___action_table_row1018(recv) ((parser_tables___ParserTable___action_table_row1018_t)CALL((recv), (SFT_parser_tables[3] + 1019)))
+#define CALL_parser_tables___ParserTable___action_table_row1019(recv) ((parser_tables___ParserTable___action_table_row1019_t)CALL((recv), (SFT_parser_tables[3] + 1020)))
+#define CALL_parser_tables___ParserTable___action_table_row1020(recv) ((parser_tables___ParserTable___action_table_row1020_t)CALL((recv), (SFT_parser_tables[3] + 1021)))
+#define CALL_parser_tables___ParserTable___action_table_row1021(recv) ((parser_tables___ParserTable___action_table_row1021_t)CALL((recv), (SFT_parser_tables[3] + 1022)))
+#define CALL_parser_tables___ParserTable___action_table_row1022(recv) ((parser_tables___ParserTable___action_table_row1022_t)CALL((recv), (SFT_parser_tables[3] + 1023)))
+#define CALL_parser_tables___ParserTable___action_table_row1023(recv) ((parser_tables___ParserTable___action_table_row1023_t)CALL((recv), (SFT_parser_tables[3] + 1024)))
+#define CALL_parser_tables___ParserTable___action_table_row1024(recv) ((parser_tables___ParserTable___action_table_row1024_t)CALL((recv), (SFT_parser_tables[3] + 1025)))
+#define CALL_parser_tables___ParserTable___action_table_row1025(recv) ((parser_tables___ParserTable___action_table_row1025_t)CALL((recv), (SFT_parser_tables[3] + 1026)))
+#define CALL_parser_tables___ParserTable___action_table_row1026(recv) ((parser_tables___ParserTable___action_table_row1026_t)CALL((recv), (SFT_parser_tables[3] + 1027)))
+#define CALL_parser_tables___ParserTable___action_table_row1027(recv) ((parser_tables___ParserTable___action_table_row1027_t)CALL((recv), (SFT_parser_tables[3] + 1028)))
+#define CALL_parser_tables___ParserTable___action_table_row1028(recv) ((parser_tables___ParserTable___action_table_row1028_t)CALL((recv), (SFT_parser_tables[3] + 1029)))
+#define CALL_parser_tables___ParserTable___action_table_row1029(recv) ((parser_tables___ParserTable___action_table_row1029_t)CALL((recv), (SFT_parser_tables[3] + 1030)))
+#define CALL_parser_tables___ParserTable___action_table_row1030(recv) ((parser_tables___ParserTable___action_table_row1030_t)CALL((recv), (SFT_parser_tables[3] + 1031)))
+#define CALL_parser_tables___ParserTable___action_table_row1031(recv) ((parser_tables___ParserTable___action_table_row1031_t)CALL((recv), (SFT_parser_tables[3] + 1032)))
+#define CALL_parser_tables___ParserTable___action_table_row1032(recv) ((parser_tables___ParserTable___action_table_row1032_t)CALL((recv), (SFT_parser_tables[3] + 1033)))
+#define CALL_parser_tables___ParserTable___action_table_row1033(recv) ((parser_tables___ParserTable___action_table_row1033_t)CALL((recv), (SFT_parser_tables[3] + 1034)))
+#define CALL_parser_tables___ParserTable___action_table_row1034(recv) ((parser_tables___ParserTable___action_table_row1034_t)CALL((recv), (SFT_parser_tables[3] + 1035)))
+#define CALL_parser_tables___ParserTable___action_table_row1035(recv) ((parser_tables___ParserTable___action_table_row1035_t)CALL((recv), (SFT_parser_tables[3] + 1036)))
+#define CALL_parser_tables___ParserTable___action_table_row1036(recv) ((parser_tables___ParserTable___action_table_row1036_t)CALL((recv), (SFT_parser_tables[3] + 1037)))
+#define CALL_parser_tables___ParserTable___action_table_row1037(recv) ((parser_tables___ParserTable___action_table_row1037_t)CALL((recv), (SFT_parser_tables[3] + 1038)))
+#define CALL_parser_tables___ParserTable___action_table_row1038(recv) ((parser_tables___ParserTable___action_table_row1038_t)CALL((recv), (SFT_parser_tables[3] + 1039)))
+#define CALL_parser_tables___ParserTable___action_table_row1039(recv) ((parser_tables___ParserTable___action_table_row1039_t)CALL((recv), (SFT_parser_tables[3] + 1040)))
+#define CALL_parser_tables___ParserTable___action_table_row1040(recv) ((parser_tables___ParserTable___action_table_row1040_t)CALL((recv), (SFT_parser_tables[3] + 1041)))
+#define CALL_parser_tables___ParserTable___action_table_row1041(recv) ((parser_tables___ParserTable___action_table_row1041_t)CALL((recv), (SFT_parser_tables[3] + 1042)))
+#define CALL_parser_tables___ParserTable___action_table_row1042(recv) ((parser_tables___ParserTable___action_table_row1042_t)CALL((recv), (SFT_parser_tables[3] + 1043)))
+#define CALL_parser_tables___ParserTable___action_table_row1043(recv) ((parser_tables___ParserTable___action_table_row1043_t)CALL((recv), (SFT_parser_tables[3] + 1044)))
+#define CALL_parser_tables___ParserTable___action_table_row1044(recv) ((parser_tables___ParserTable___action_table_row1044_t)CALL((recv), (SFT_parser_tables[3] + 1045)))
+#define CALL_parser_tables___ParserTable___action_table_row1045(recv) ((parser_tables___ParserTable___action_table_row1045_t)CALL((recv), (SFT_parser_tables[3] + 1046)))
+#define CALL_parser_tables___ParserTable___action_table_row1046(recv) ((parser_tables___ParserTable___action_table_row1046_t)CALL((recv), (SFT_parser_tables[3] + 1047)))
+#define CALL_parser_tables___ParserTable___action_table_row1047(recv) ((parser_tables___ParserTable___action_table_row1047_t)CALL((recv), (SFT_parser_tables[3] + 1048)))
+#define CALL_parser_tables___ParserTable___action_table_row1048(recv) ((parser_tables___ParserTable___action_table_row1048_t)CALL((recv), (SFT_parser_tables[3] + 1049)))
+#define CALL_parser_tables___ParserTable___action_table_row1049(recv) ((parser_tables___ParserTable___action_table_row1049_t)CALL((recv), (SFT_parser_tables[3] + 1050)))
+#define CALL_parser_tables___ParserTable___action_table_row1050(recv) ((parser_tables___ParserTable___action_table_row1050_t)CALL((recv), (SFT_parser_tables[3] + 1051)))
+#define CALL_parser_tables___ParserTable___action_table_row1051(recv) ((parser_tables___ParserTable___action_table_row1051_t)CALL((recv), (SFT_parser_tables[3] + 1052)))
+#define CALL_parser_tables___ParserTable___action_table_row1052(recv) ((parser_tables___ParserTable___action_table_row1052_t)CALL((recv), (SFT_parser_tables[3] + 1053)))
+#define CALL_parser_tables___ParserTable___action_table_row1053(recv) ((parser_tables___ParserTable___action_table_row1053_t)CALL((recv), (SFT_parser_tables[3] + 1054)))
+#define CALL_parser_tables___ParserTable___action_table_row1054(recv) ((parser_tables___ParserTable___action_table_row1054_t)CALL((recv), (SFT_parser_tables[3] + 1055)))
+#define CALL_parser_tables___ParserTable___action_table_row1055(recv) ((parser_tables___ParserTable___action_table_row1055_t)CALL((recv), (SFT_parser_tables[3] + 1056)))
+#define CALL_parser_tables___ParserTable___action_table_row1056(recv) ((parser_tables___ParserTable___action_table_row1056_t)CALL((recv), (SFT_parser_tables[3] + 1057)))
+#define CALL_parser_tables___ParserTable___action_table_row1057(recv) ((parser_tables___ParserTable___action_table_row1057_t)CALL((recv), (SFT_parser_tables[3] + 1058)))
+#define CALL_parser_tables___ParserTable___action_table_row1058(recv) ((parser_tables___ParserTable___action_table_row1058_t)CALL((recv), (SFT_parser_tables[3] + 1059)))
+#define CALL_parser_tables___ParserTable___action_table_row1059(recv) ((parser_tables___ParserTable___action_table_row1059_t)CALL((recv), (SFT_parser_tables[3] + 1060)))
+#define CALL_parser_tables___ParserTable___action_table_row1060(recv) ((parser_tables___ParserTable___action_table_row1060_t)CALL((recv), (SFT_parser_tables[3] + 1061)))
+#define CALL_parser_tables___ParserTable___action_table_row1061(recv) ((parser_tables___ParserTable___action_table_row1061_t)CALL((recv), (SFT_parser_tables[3] + 1062)))
+#define CALL_parser_tables___ParserTable___action_table_row1062(recv) ((parser_tables___ParserTable___action_table_row1062_t)CALL((recv), (SFT_parser_tables[3] + 1063)))
+#define CALL_parser_tables___ParserTable___action_table_row1063(recv) ((parser_tables___ParserTable___action_table_row1063_t)CALL((recv), (SFT_parser_tables[3] + 1064)))
+#define CALL_parser_tables___ParserTable___action_table_row1064(recv) ((parser_tables___ParserTable___action_table_row1064_t)CALL((recv), (SFT_parser_tables[3] + 1065)))
+#define CALL_parser_tables___ParserTable___action_table_row1065(recv) ((parser_tables___ParserTable___action_table_row1065_t)CALL((recv), (SFT_parser_tables[3] + 1066)))
+#define CALL_parser_tables___ParserTable___action_table_row1066(recv) ((parser_tables___ParserTable___action_table_row1066_t)CALL((recv), (SFT_parser_tables[3] + 1067)))
+#define CALL_parser_tables___ParserTable___action_table_row1067(recv) ((parser_tables___ParserTable___action_table_row1067_t)CALL((recv), (SFT_parser_tables[3] + 1068)))
+#define CALL_parser_tables___ParserTable___action_table_row1068(recv) ((parser_tables___ParserTable___action_table_row1068_t)CALL((recv), (SFT_parser_tables[3] + 1069)))
+#define CALL_parser_tables___ParserTable___action_table_row1069(recv) ((parser_tables___ParserTable___action_table_row1069_t)CALL((recv), (SFT_parser_tables[3] + 1070)))
+#define CALL_parser_tables___ParserTable___action_table_row1070(recv) ((parser_tables___ParserTable___action_table_row1070_t)CALL((recv), (SFT_parser_tables[3] + 1071)))
+#define CALL_parser_tables___ParserTable___action_table_row1071(recv) ((parser_tables___ParserTable___action_table_row1071_t)CALL((recv), (SFT_parser_tables[3] + 1072)))
+#define CALL_parser_tables___ParserTable___action_table_row1072(recv) ((parser_tables___ParserTable___action_table_row1072_t)CALL((recv), (SFT_parser_tables[3] + 1073)))
+#define CALL_parser_tables___ParserTable___action_table_row1073(recv) ((parser_tables___ParserTable___action_table_row1073_t)CALL((recv), (SFT_parser_tables[3] + 1074)))
+#define CALL_parser_tables___ParserTable___action_table_row1074(recv) ((parser_tables___ParserTable___action_table_row1074_t)CALL((recv), (SFT_parser_tables[3] + 1075)))
+#define CALL_parser_tables___ParserTable___action_table_row1075(recv) ((parser_tables___ParserTable___action_table_row1075_t)CALL((recv), (SFT_parser_tables[3] + 1076)))
+#define CALL_parser_tables___ParserTable___action_table_row1076(recv) ((parser_tables___ParserTable___action_table_row1076_t)CALL((recv), (SFT_parser_tables[3] + 1077)))
+#define CALL_parser_tables___ParserTable___action_table_row1077(recv) ((parser_tables___ParserTable___action_table_row1077_t)CALL((recv), (SFT_parser_tables[3] + 1078)))
+#define CALL_parser_tables___ParserTable___action_table_row1078(recv) ((parser_tables___ParserTable___action_table_row1078_t)CALL((recv), (SFT_parser_tables[3] + 1079)))
+#define CALL_parser_tables___ParserTable___action_table_row1079(recv) ((parser_tables___ParserTable___action_table_row1079_t)CALL((recv), (SFT_parser_tables[3] + 1080)))
+#define CALL_parser_tables___ParserTable___action_table_row1080(recv) ((parser_tables___ParserTable___action_table_row1080_t)CALL((recv), (SFT_parser_tables[3] + 1081)))
+#define CALL_parser_tables___ParserTable___action_table_row1081(recv) ((parser_tables___ParserTable___action_table_row1081_t)CALL((recv), (SFT_parser_tables[3] + 1082)))
+#define CALL_parser_tables___ParserTable___action_table_row1082(recv) ((parser_tables___ParserTable___action_table_row1082_t)CALL((recv), (SFT_parser_tables[3] + 1083)))
+#define CALL_parser_tables___ParserTable___action_table_row1083(recv) ((parser_tables___ParserTable___action_table_row1083_t)CALL((recv), (SFT_parser_tables[3] + 1084)))
+#define CALL_parser_tables___ParserTable___action_table_row1084(recv) ((parser_tables___ParserTable___action_table_row1084_t)CALL((recv), (SFT_parser_tables[3] + 1085)))
+#define CALL_parser_tables___ParserTable___action_table_row1085(recv) ((parser_tables___ParserTable___action_table_row1085_t)CALL((recv), (SFT_parser_tables[3] + 1086)))
+#define CALL_parser_tables___ParserTable___action_table_row1086(recv) ((parser_tables___ParserTable___action_table_row1086_t)CALL((recv), (SFT_parser_tables[3] + 1087)))
+#define CALL_parser_tables___ParserTable___action_table_row1087(recv) ((parser_tables___ParserTable___action_table_row1087_t)CALL((recv), (SFT_parser_tables[3] + 1088)))
+#define CALL_parser_tables___ParserTable___action_table_row1088(recv) ((parser_tables___ParserTable___action_table_row1088_t)CALL((recv), (SFT_parser_tables[3] + 1089)))
+#define CALL_parser_tables___ParserTable___action_table_row1089(recv) ((parser_tables___ParserTable___action_table_row1089_t)CALL((recv), (SFT_parser_tables[3] + 1090)))
+#define CALL_parser_tables___ParserTable___action_table_row1090(recv) ((parser_tables___ParserTable___action_table_row1090_t)CALL((recv), (SFT_parser_tables[3] + 1091)))
+#define CALL_parser_tables___ParserTable___action_table_row1091(recv) ((parser_tables___ParserTable___action_table_row1091_t)CALL((recv), (SFT_parser_tables[3] + 1092)))
+#define CALL_parser_tables___ParserTable___action_table_row1092(recv) ((parser_tables___ParserTable___action_table_row1092_t)CALL((recv), (SFT_parser_tables[3] + 1093)))
+#define CALL_parser_tables___ParserTable___action_table_row1093(recv) ((parser_tables___ParserTable___action_table_row1093_t)CALL((recv), (SFT_parser_tables[3] + 1094)))
+#define CALL_parser_tables___ParserTable___action_table_row1094(recv) ((parser_tables___ParserTable___action_table_row1094_t)CALL((recv), (SFT_parser_tables[3] + 1095)))
+#define CALL_parser_tables___ParserTable___action_table_row1095(recv) ((parser_tables___ParserTable___action_table_row1095_t)CALL((recv), (SFT_parser_tables[3] + 1096)))
+#define CALL_parser_tables___ParserTable___action_table_row1096(recv) ((parser_tables___ParserTable___action_table_row1096_t)CALL((recv), (SFT_parser_tables[3] + 1097)))
+#define CALL_parser_tables___ParserTable___action_table_row1097(recv) ((parser_tables___ParserTable___action_table_row1097_t)CALL((recv), (SFT_parser_tables[3] + 1098)))
+#define CALL_parser_tables___ParserTable___action_table_row1098(recv) ((parser_tables___ParserTable___action_table_row1098_t)CALL((recv), (SFT_parser_tables[3] + 1099)))
+#define CALL_parser_tables___ParserTable___action_table_row1099(recv) ((parser_tables___ParserTable___action_table_row1099_t)CALL((recv), (SFT_parser_tables[3] + 1100)))
+#define CALL_parser_tables___ParserTable___action_table_row1100(recv) ((parser_tables___ParserTable___action_table_row1100_t)CALL((recv), (SFT_parser_tables[3] + 1101)))
+#define CALL_parser_tables___ParserTable___action_table_row1101(recv) ((parser_tables___ParserTable___action_table_row1101_t)CALL((recv), (SFT_parser_tables[3] + 1102)))
+#define CALL_parser_tables___ParserTable___action_table_row1102(recv) ((parser_tables___ParserTable___action_table_row1102_t)CALL((recv), (SFT_parser_tables[3] + 1103)))
+#define CALL_parser_tables___ParserTable___action_table_row1103(recv) ((parser_tables___ParserTable___action_table_row1103_t)CALL((recv), (SFT_parser_tables[3] + 1104)))
+#define CALL_parser_tables___ParserTable___action_table_row1104(recv) ((parser_tables___ParserTable___action_table_row1104_t)CALL((recv), (SFT_parser_tables[3] + 1105)))
+#define CALL_parser_tables___ParserTable___action_table_row1105(recv) ((parser_tables___ParserTable___action_table_row1105_t)CALL((recv), (SFT_parser_tables[3] + 1106)))
+#define CALL_parser_tables___ParserTable___action_table_row1106(recv) ((parser_tables___ParserTable___action_table_row1106_t)CALL((recv), (SFT_parser_tables[3] + 1107)))
+#define CALL_parser_tables___ParserTable___action_table_row1107(recv) ((parser_tables___ParserTable___action_table_row1107_t)CALL((recv), (SFT_parser_tables[3] + 1108)))
+#define CALL_parser_tables___ParserTable___action_table_row1108(recv) ((parser_tables___ParserTable___action_table_row1108_t)CALL((recv), (SFT_parser_tables[3] + 1109)))
+#define CALL_parser_tables___ParserTable___action_table_row1109(recv) ((parser_tables___ParserTable___action_table_row1109_t)CALL((recv), (SFT_parser_tables[3] + 1110)))
+#define CALL_parser_tables___ParserTable___action_table_row1110(recv) ((parser_tables___ParserTable___action_table_row1110_t)CALL((recv), (SFT_parser_tables[3] + 1111)))
+#define CALL_parser_tables___ParserTable___action_table_row1111(recv) ((parser_tables___ParserTable___action_table_row1111_t)CALL((recv), (SFT_parser_tables[3] + 1112)))
+#define CALL_parser_tables___ParserTable___action_table_row1112(recv) ((parser_tables___ParserTable___action_table_row1112_t)CALL((recv), (SFT_parser_tables[3] + 1113)))
+#define CALL_parser_tables___ParserTable___action_table_row1113(recv) ((parser_tables___ParserTable___action_table_row1113_t)CALL((recv), (SFT_parser_tables[3] + 1114)))
+#define CALL_parser_tables___ParserTable___action_table_row1114(recv) ((parser_tables___ParserTable___action_table_row1114_t)CALL((recv), (SFT_parser_tables[3] + 1115)))
+#define CALL_parser_tables___ParserTable___action_table_row1115(recv) ((parser_tables___ParserTable___action_table_row1115_t)CALL((recv), (SFT_parser_tables[3] + 1116)))
+#define CALL_parser_tables___ParserTable___action_table_row1116(recv) ((parser_tables___ParserTable___action_table_row1116_t)CALL((recv), (SFT_parser_tables[3] + 1117)))
+#define CALL_parser_tables___ParserTable___action_table_row1117(recv) ((parser_tables___ParserTable___action_table_row1117_t)CALL((recv), (SFT_parser_tables[3] + 1118)))
+#define CALL_parser_tables___ParserTable___action_table_row1118(recv) ((parser_tables___ParserTable___action_table_row1118_t)CALL((recv), (SFT_parser_tables[3] + 1119)))
+#define CALL_parser_tables___ParserTable___action_table_row1119(recv) ((parser_tables___ParserTable___action_table_row1119_t)CALL((recv), (SFT_parser_tables[3] + 1120)))
+#define CALL_parser_tables___ParserTable___action_table_row1120(recv) ((parser_tables___ParserTable___action_table_row1120_t)CALL((recv), (SFT_parser_tables[3] + 1121)))
+#define CALL_parser_tables___ParserTable___action_table_row1121(recv) ((parser_tables___ParserTable___action_table_row1121_t)CALL((recv), (SFT_parser_tables[3] + 1122)))
+#define CALL_parser_tables___ParserTable___action_table_row1122(recv) ((parser_tables___ParserTable___action_table_row1122_t)CALL((recv), (SFT_parser_tables[3] + 1123)))
+#define CALL_parser_tables___ParserTable___action_table_row1123(recv) ((parser_tables___ParserTable___action_table_row1123_t)CALL((recv), (SFT_parser_tables[3] + 1124)))
+#define CALL_parser_tables___ParserTable___action_table_row1124(recv) ((parser_tables___ParserTable___action_table_row1124_t)CALL((recv), (SFT_parser_tables[3] + 1125)))
+#define CALL_parser_tables___ParserTable___action_table_row1125(recv) ((parser_tables___ParserTable___action_table_row1125_t)CALL((recv), (SFT_parser_tables[3] + 1126)))
+#define CALL_parser_tables___ParserTable___action_table_row1126(recv) ((parser_tables___ParserTable___action_table_row1126_t)CALL((recv), (SFT_parser_tables[3] + 1127)))
+#define CALL_parser_tables___ParserTable___action_table_row1127(recv) ((parser_tables___ParserTable___action_table_row1127_t)CALL((recv), (SFT_parser_tables[3] + 1128)))
+#define CALL_parser_tables___ParserTable___action_table_row1128(recv) ((parser_tables___ParserTable___action_table_row1128_t)CALL((recv), (SFT_parser_tables[3] + 1129)))
+#define CALL_parser_tables___ParserTable___action_table_row1129(recv) ((parser_tables___ParserTable___action_table_row1129_t)CALL((recv), (SFT_parser_tables[3] + 1130)))
+#define CALL_parser_tables___ParserTable___action_table_row1130(recv) ((parser_tables___ParserTable___action_table_row1130_t)CALL((recv), (SFT_parser_tables[3] + 1131)))
+#define CALL_parser_tables___ParserTable___action_table_row1131(recv) ((parser_tables___ParserTable___action_table_row1131_t)CALL((recv), (SFT_parser_tables[3] + 1132)))
+#define CALL_parser_tables___ParserTable___action_table_row1132(recv) ((parser_tables___ParserTable___action_table_row1132_t)CALL((recv), (SFT_parser_tables[3] + 1133)))
+#define CALL_parser_tables___ParserTable___action_table_row1133(recv) ((parser_tables___ParserTable___action_table_row1133_t)CALL((recv), (SFT_parser_tables[3] + 1134)))
+#define CALL_parser_tables___ParserTable___action_table_row1134(recv) ((parser_tables___ParserTable___action_table_row1134_t)CALL((recv), (SFT_parser_tables[3] + 1135)))
+#define CALL_parser_tables___ParserTable___action_table_row1135(recv) ((parser_tables___ParserTable___action_table_row1135_t)CALL((recv), (SFT_parser_tables[3] + 1136)))
+#define CALL_parser_tables___ParserTable___action_table_row1136(recv) ((parser_tables___ParserTable___action_table_row1136_t)CALL((recv), (SFT_parser_tables[3] + 1137)))
+#define CALL_parser_tables___ParserTable___action_table_row1137(recv) ((parser_tables___ParserTable___action_table_row1137_t)CALL((recv), (SFT_parser_tables[3] + 1138)))
+#define CALL_parser_tables___ParserTable___action_table_row1138(recv) ((parser_tables___ParserTable___action_table_row1138_t)CALL((recv), (SFT_parser_tables[3] + 1139)))
+#define CALL_parser_tables___ParserTable___action_table_row1139(recv) ((parser_tables___ParserTable___action_table_row1139_t)CALL((recv), (SFT_parser_tables[3] + 1140)))
+#define CALL_parser_tables___ParserTable___action_table_row1140(recv) ((parser_tables___ParserTable___action_table_row1140_t)CALL((recv), (SFT_parser_tables[3] + 1141)))
+#define CALL_parser_tables___ParserTable___action_table_row1141(recv) ((parser_tables___ParserTable___action_table_row1141_t)CALL((recv), (SFT_parser_tables[3] + 1142)))
+#define CALL_parser_tables___ParserTable___action_table_row1142(recv) ((parser_tables___ParserTable___action_table_row1142_t)CALL((recv), (SFT_parser_tables[3] + 1143)))
+#define CALL_parser_tables___ParserTable___action_table_row1143(recv) ((parser_tables___ParserTable___action_table_row1143_t)CALL((recv), (SFT_parser_tables[3] + 1144)))
+#define CALL_parser_tables___ParserTable___action_table_row1144(recv) ((parser_tables___ParserTable___action_table_row1144_t)CALL((recv), (SFT_parser_tables[3] + 1145)))
+#define CALL_parser_tables___ParserTable___action_table_row1145(recv) ((parser_tables___ParserTable___action_table_row1145_t)CALL((recv), (SFT_parser_tables[3] + 1146)))
+#define CALL_parser_tables___ParserTable___action_table_row1146(recv) ((parser_tables___ParserTable___action_table_row1146_t)CALL((recv), (SFT_parser_tables[3] + 1147)))
+#define CALL_parser_tables___ParserTable___action_table_row1147(recv) ((parser_tables___ParserTable___action_table_row1147_t)CALL((recv), (SFT_parser_tables[3] + 1148)))
+#define CALL_parser_tables___ParserTable___action_table_row1148(recv) ((parser_tables___ParserTable___action_table_row1148_t)CALL((recv), (SFT_parser_tables[3] + 1149)))
+#define CALL_parser_tables___ParserTable___action_table_row1149(recv) ((parser_tables___ParserTable___action_table_row1149_t)CALL((recv), (SFT_parser_tables[3] + 1150)))
+#define CALL_parser_tables___ParserTable___action_table_row1150(recv) ((parser_tables___ParserTable___action_table_row1150_t)CALL((recv), (SFT_parser_tables[3] + 1151)))
+#define CALL_parser_tables___ParserTable___action_table_row1151(recv) ((parser_tables___ParserTable___action_table_row1151_t)CALL((recv), (SFT_parser_tables[3] + 1152)))
+#define CALL_parser_tables___ParserTable___action_table_row1152(recv) ((parser_tables___ParserTable___action_table_row1152_t)CALL((recv), (SFT_parser_tables[3] + 1153)))
+#define CALL_parser_tables___ParserTable___action_table_row1153(recv) ((parser_tables___ParserTable___action_table_row1153_t)CALL((recv), (SFT_parser_tables[3] + 1154)))
+#define CALL_parser_tables___ParserTable___action_table_row1154(recv) ((parser_tables___ParserTable___action_table_row1154_t)CALL((recv), (SFT_parser_tables[3] + 1155)))
+#define CALL_parser_tables___ParserTable___action_table_row1155(recv) ((parser_tables___ParserTable___action_table_row1155_t)CALL((recv), (SFT_parser_tables[3] + 1156)))
+#define CALL_parser_tables___ParserTable___action_table_row1156(recv) ((parser_tables___ParserTable___action_table_row1156_t)CALL((recv), (SFT_parser_tables[3] + 1157)))
+#define CALL_parser_tables___ParserTable___action_table_row1157(recv) ((parser_tables___ParserTable___action_table_row1157_t)CALL((recv), (SFT_parser_tables[3] + 1158)))
+#define CALL_parser_tables___ParserTable___action_table_row1158(recv) ((parser_tables___ParserTable___action_table_row1158_t)CALL((recv), (SFT_parser_tables[3] + 1159)))
+#define CALL_parser_tables___ParserTable___action_table_row1159(recv) ((parser_tables___ParserTable___action_table_row1159_t)CALL((recv), (SFT_parser_tables[3] + 1160)))
+#define CALL_parser_tables___ParserTable___action_table_row1160(recv) ((parser_tables___ParserTable___action_table_row1160_t)CALL((recv), (SFT_parser_tables[3] + 1161)))
+#define CALL_parser_tables___ParserTable___action_table_row1161(recv) ((parser_tables___ParserTable___action_table_row1161_t)CALL((recv), (SFT_parser_tables[3] + 1162)))
+#define CALL_parser_tables___ParserTable___action_table_row1162(recv) ((parser_tables___ParserTable___action_table_row1162_t)CALL((recv), (SFT_parser_tables[3] + 1163)))
+#define CALL_parser_tables___ParserTable___action_table_row1163(recv) ((parser_tables___ParserTable___action_table_row1163_t)CALL((recv), (SFT_parser_tables[3] + 1164)))
+#define CALL_parser_tables___ParserTable___action_table_row1164(recv) ((parser_tables___ParserTable___action_table_row1164_t)CALL((recv), (SFT_parser_tables[3] + 1165)))
+#define CALL_parser_tables___ParserTable___action_table_row1165(recv) ((parser_tables___ParserTable___action_table_row1165_t)CALL((recv), (SFT_parser_tables[3] + 1166)))
+#define CALL_parser_tables___ParserTable___action_table_row1166(recv) ((parser_tables___ParserTable___action_table_row1166_t)CALL((recv), (SFT_parser_tables[3] + 1167)))
+#define CALL_parser_tables___ParserTable___action_table_row1167(recv) ((parser_tables___ParserTable___action_table_row1167_t)CALL((recv), (SFT_parser_tables[3] + 1168)))
+#define CALL_parser_tables___ParserTable___action_table_row1168(recv) ((parser_tables___ParserTable___action_table_row1168_t)CALL((recv), (SFT_parser_tables[3] + 1169)))
+#define CALL_parser_tables___ParserTable___action_table_row1169(recv) ((parser_tables___ParserTable___action_table_row1169_t)CALL((recv), (SFT_parser_tables[3] + 1170)))
+#define CALL_parser_tables___ParserTable___action_table_row1170(recv) ((parser_tables___ParserTable___action_table_row1170_t)CALL((recv), (SFT_parser_tables[3] + 1171)))
+#define CALL_parser_tables___ParserTable___action_table_row1171(recv) ((parser_tables___ParserTable___action_table_row1171_t)CALL((recv), (SFT_parser_tables[3] + 1172)))
+#define CALL_parser_tables___ParserTable___action_table_row1172(recv) ((parser_tables___ParserTable___action_table_row1172_t)CALL((recv), (SFT_parser_tables[3] + 1173)))
+#define CALL_parser_tables___ParserTable___action_table_row1173(recv) ((parser_tables___ParserTable___action_table_row1173_t)CALL((recv), (SFT_parser_tables[3] + 1174)))
+#define CALL_parser_tables___ParserTable___action_table_row1174(recv) ((parser_tables___ParserTable___action_table_row1174_t)CALL((recv), (SFT_parser_tables[3] + 1175)))
+#define CALL_parser_tables___ParserTable___action_table_row1175(recv) ((parser_tables___ParserTable___action_table_row1175_t)CALL((recv), (SFT_parser_tables[3] + 1176)))
+#define CALL_parser_tables___ParserTable___action_table_row1176(recv) ((parser_tables___ParserTable___action_table_row1176_t)CALL((recv), (SFT_parser_tables[3] + 1177)))
+#define CALL_parser_tables___ParserTable___action_table_row1177(recv) ((parser_tables___ParserTable___action_table_row1177_t)CALL((recv), (SFT_parser_tables[3] + 1178)))
+#define CALL_parser_tables___ParserTable___action_table_row1178(recv) ((parser_tables___ParserTable___action_table_row1178_t)CALL((recv), (SFT_parser_tables[3] + 1179)))
+#define CALL_parser_tables___ParserTable___action_table_row1179(recv) ((parser_tables___ParserTable___action_table_row1179_t)CALL((recv), (SFT_parser_tables[3] + 1180)))
+#define CALL_parser_tables___ParserTable___action_table_row1180(recv) ((parser_tables___ParserTable___action_table_row1180_t)CALL((recv), (SFT_parser_tables[3] + 1181)))
+#define CALL_parser_tables___ParserTable___action_table_row1181(recv) ((parser_tables___ParserTable___action_table_row1181_t)CALL((recv), (SFT_parser_tables[3] + 1182)))
+#define CALL_parser_tables___ParserTable___action_table_row1182(recv) ((parser_tables___ParserTable___action_table_row1182_t)CALL((recv), (SFT_parser_tables[3] + 1183)))
+#define CALL_parser_tables___ParserTable___action_table_row1183(recv) ((parser_tables___ParserTable___action_table_row1183_t)CALL((recv), (SFT_parser_tables[3] + 1184)))
+#define CALL_parser_tables___ParserTable___action_table_row1184(recv) ((parser_tables___ParserTable___action_table_row1184_t)CALL((recv), (SFT_parser_tables[3] + 1185)))
+#define CALL_parser_tables___ParserTable___action_table_row1185(recv) ((parser_tables___ParserTable___action_table_row1185_t)CALL((recv), (SFT_parser_tables[3] + 1186)))
+#define CALL_parser_tables___ParserTable___action_table_row1186(recv) ((parser_tables___ParserTable___action_table_row1186_t)CALL((recv), (SFT_parser_tables[3] + 1187)))
+#define CALL_parser_tables___ParserTable___action_table_row1187(recv) ((parser_tables___ParserTable___action_table_row1187_t)CALL((recv), (SFT_parser_tables[3] + 1188)))
+#define CALL_parser_tables___ParserTable___action_table_row1188(recv) ((parser_tables___ParserTable___action_table_row1188_t)CALL((recv), (SFT_parser_tables[3] + 1189)))
+#define CALL_parser_tables___ParserTable___action_table_row1189(recv) ((parser_tables___ParserTable___action_table_row1189_t)CALL((recv), (SFT_parser_tables[3] + 1190)))
+#define CALL_parser_tables___ParserTable___action_table_row1190(recv) ((parser_tables___ParserTable___action_table_row1190_t)CALL((recv), (SFT_parser_tables[3] + 1191)))
+#define CALL_parser_tables___ParserTable___action_table_row1191(recv) ((parser_tables___ParserTable___action_table_row1191_t)CALL((recv), (SFT_parser_tables[3] + 1192)))
+#define CALL_parser_tables___ParserTable___action_table_row1192(recv) ((parser_tables___ParserTable___action_table_row1192_t)CALL((recv), (SFT_parser_tables[3] + 1193)))
+#define CALL_parser_tables___ParserTable___action_table_row1193(recv) ((parser_tables___ParserTable___action_table_row1193_t)CALL((recv), (SFT_parser_tables[3] + 1194)))
+#define CALL_parser_tables___ParserTable___action_table_row1194(recv) ((parser_tables___ParserTable___action_table_row1194_t)CALL((recv), (SFT_parser_tables[3] + 1195)))
+#define CALL_parser_tables___ParserTable___action_table_row1195(recv) ((parser_tables___ParserTable___action_table_row1195_t)CALL((recv), (SFT_parser_tables[3] + 1196)))
+#define CALL_parser_tables___ParserTable___action_table_row1196(recv) ((parser_tables___ParserTable___action_table_row1196_t)CALL((recv), (SFT_parser_tables[3] + 1197)))
+#define CALL_parser_tables___ParserTable___action_table_row1197(recv) ((parser_tables___ParserTable___action_table_row1197_t)CALL((recv), (SFT_parser_tables[3] + 1198)))
+#define CALL_parser_tables___ParserTable___action_table_row1198(recv) ((parser_tables___ParserTable___action_table_row1198_t)CALL((recv), (SFT_parser_tables[3] + 1199)))
+#define CALL_parser_tables___ParserTable___action_table_row1199(recv) ((parser_tables___ParserTable___action_table_row1199_t)CALL((recv), (SFT_parser_tables[3] + 1200)))
+#define CALL_parser_tables___ParserTable___action_table_row1200(recv) ((parser_tables___ParserTable___action_table_row1200_t)CALL((recv), (SFT_parser_tables[3] + 1201)))
+#define CALL_parser_tables___ParserTable___action_table_row1201(recv) ((parser_tables___ParserTable___action_table_row1201_t)CALL((recv), (SFT_parser_tables[3] + 1202)))
+#define CALL_parser_tables___ParserTable___action_table_row1202(recv) ((parser_tables___ParserTable___action_table_row1202_t)CALL((recv), (SFT_parser_tables[3] + 1203)))
+#define CALL_parser_tables___ParserTable___action_table_row1203(recv) ((parser_tables___ParserTable___action_table_row1203_t)CALL((recv), (SFT_parser_tables[3] + 1204)))
+#define CALL_parser_tables___ParserTable___action_table_row1204(recv) ((parser_tables___ParserTable___action_table_row1204_t)CALL((recv), (SFT_parser_tables[3] + 1205)))
+#define CALL_parser_tables___ParserTable___action_table_row1205(recv) ((parser_tables___ParserTable___action_table_row1205_t)CALL((recv), (SFT_parser_tables[3] + 1206)))
+#define CALL_parser_tables___ParserTable___action_table_row1206(recv) ((parser_tables___ParserTable___action_table_row1206_t)CALL((recv), (SFT_parser_tables[3] + 1207)))
+#define CALL_parser_tables___ParserTable___action_table_row1207(recv) ((parser_tables___ParserTable___action_table_row1207_t)CALL((recv), (SFT_parser_tables[3] + 1208)))
+#define CALL_parser_tables___ParserTable___action_table_row1208(recv) ((parser_tables___ParserTable___action_table_row1208_t)CALL((recv), (SFT_parser_tables[3] + 1209)))
+#define CALL_parser_tables___ParserTable___action_table_row1209(recv) ((parser_tables___ParserTable___action_table_row1209_t)CALL((recv), (SFT_parser_tables[3] + 1210)))
+#define CALL_parser_tables___ParserTable___action_table_row1210(recv) ((parser_tables___ParserTable___action_table_row1210_t)CALL((recv), (SFT_parser_tables[3] + 1211)))
+#define CALL_parser_tables___ParserTable___action_table_row1211(recv) ((parser_tables___ParserTable___action_table_row1211_t)CALL((recv), (SFT_parser_tables[3] + 1212)))
+#define CALL_parser_tables___ParserTable___action_table_row1212(recv) ((parser_tables___ParserTable___action_table_row1212_t)CALL((recv), (SFT_parser_tables[3] + 1213)))
+#define CALL_parser_tables___ParserTable___action_table_row1213(recv) ((parser_tables___ParserTable___action_table_row1213_t)CALL((recv), (SFT_parser_tables[3] + 1214)))
+#define CALL_parser_tables___ParserTable___action_table_row1214(recv) ((parser_tables___ParserTable___action_table_row1214_t)CALL((recv), (SFT_parser_tables[3] + 1215)))
+#define CALL_parser_tables___ParserTable___action_table_row1215(recv) ((parser_tables___ParserTable___action_table_row1215_t)CALL((recv), (SFT_parser_tables[3] + 1216)))
+#define CALL_parser_tables___ParserTable___action_table_row1216(recv) ((parser_tables___ParserTable___action_table_row1216_t)CALL((recv), (SFT_parser_tables[3] + 1217)))
+#define CALL_parser_tables___ParserTable___action_table_row1217(recv) ((parser_tables___ParserTable___action_table_row1217_t)CALL((recv), (SFT_parser_tables[3] + 1218)))
+#define CALL_parser_tables___ParserTable___action_table_row1218(recv) ((parser_tables___ParserTable___action_table_row1218_t)CALL((recv), (SFT_parser_tables[3] + 1219)))
+#define CALL_parser_tables___ParserTable___action_table_row1219(recv) ((parser_tables___ParserTable___action_table_row1219_t)CALL((recv), (SFT_parser_tables[3] + 1220)))
+#define CALL_parser_tables___ParserTable___action_table_row1220(recv) ((parser_tables___ParserTable___action_table_row1220_t)CALL((recv), (SFT_parser_tables[3] + 1221)))
+#define CALL_parser_tables___ParserTable___action_table_row1221(recv) ((parser_tables___ParserTable___action_table_row1221_t)CALL((recv), (SFT_parser_tables[3] + 1222)))
+#define CALL_parser_tables___ParserTable___action_table_row1222(recv) ((parser_tables___ParserTable___action_table_row1222_t)CALL((recv), (SFT_parser_tables[3] + 1223)))
+#define CALL_parser_tables___ParserTable___action_table_row1223(recv) ((parser_tables___ParserTable___action_table_row1223_t)CALL((recv), (SFT_parser_tables[3] + 1224)))
+#define CALL_parser_tables___ParserTable___action_table_row1224(recv) ((parser_tables___ParserTable___action_table_row1224_t)CALL((recv), (SFT_parser_tables[3] + 1225)))
+#define CALL_parser_tables___ParserTable___action_table_row1225(recv) ((parser_tables___ParserTable___action_table_row1225_t)CALL((recv), (SFT_parser_tables[3] + 1226)))
+#define CALL_parser_tables___ParserTable___action_table_row1226(recv) ((parser_tables___ParserTable___action_table_row1226_t)CALL((recv), (SFT_parser_tables[3] + 1227)))
+#define CALL_parser_tables___ParserTable___action_table_row1227(recv) ((parser_tables___ParserTable___action_table_row1227_t)CALL((recv), (SFT_parser_tables[3] + 1228)))
+#define CALL_parser_tables___ParserTable___action_table_row1228(recv) ((parser_tables___ParserTable___action_table_row1228_t)CALL((recv), (SFT_parser_tables[3] + 1229)))
+#define CALL_parser_tables___ParserTable___action_table_row1229(recv) ((parser_tables___ParserTable___action_table_row1229_t)CALL((recv), (SFT_parser_tables[3] + 1230)))
+#define CALL_parser_tables___ParserTable___action_table_row1230(recv) ((parser_tables___ParserTable___action_table_row1230_t)CALL((recv), (SFT_parser_tables[3] + 1231)))
+#define CALL_parser_tables___ParserTable___action_table_row1231(recv) ((parser_tables___ParserTable___action_table_row1231_t)CALL((recv), (SFT_parser_tables[3] + 1232)))
+#define CALL_parser_tables___ParserTable___action_table_row1232(recv) ((parser_tables___ParserTable___action_table_row1232_t)CALL((recv), (SFT_parser_tables[3] + 1233)))
+#define CALL_parser_tables___ParserTable___action_table_row1233(recv) ((parser_tables___ParserTable___action_table_row1233_t)CALL((recv), (SFT_parser_tables[3] + 1234)))
+#define CALL_parser_tables___ParserTable___action_table_row1234(recv) ((parser_tables___ParserTable___action_table_row1234_t)CALL((recv), (SFT_parser_tables[3] + 1235)))
+#define CALL_parser_tables___ParserTable___action_table_row1235(recv) ((parser_tables___ParserTable___action_table_row1235_t)CALL((recv), (SFT_parser_tables[3] + 1236)))
+#define CALL_parser_tables___ParserTable___action_table_row1236(recv) ((parser_tables___ParserTable___action_table_row1236_t)CALL((recv), (SFT_parser_tables[3] + 1237)))
+#define CALL_parser_tables___ParserTable___action_table_row1237(recv) ((parser_tables___ParserTable___action_table_row1237_t)CALL((recv), (SFT_parser_tables[3] + 1238)))
+#define CALL_parser_tables___ParserTable___action_table_row1238(recv) ((parser_tables___ParserTable___action_table_row1238_t)CALL((recv), (SFT_parser_tables[3] + 1239)))
+#define CALL_parser_tables___ParserTable___action_table_row1239(recv) ((parser_tables___ParserTable___action_table_row1239_t)CALL((recv), (SFT_parser_tables[3] + 1240)))
+#define CALL_parser_tables___ParserTable___action_table_row1240(recv) ((parser_tables___ParserTable___action_table_row1240_t)CALL((recv), (SFT_parser_tables[3] + 1241)))
+#define CALL_parser_tables___ParserTable___action_table_row1241(recv) ((parser_tables___ParserTable___action_table_row1241_t)CALL((recv), (SFT_parser_tables[3] + 1242)))
+#define CALL_parser_tables___ParserTable___action_table_row1242(recv) ((parser_tables___ParserTable___action_table_row1242_t)CALL((recv), (SFT_parser_tables[3] + 1243)))
+#define CALL_parser_tables___ParserTable___action_table_row1243(recv) ((parser_tables___ParserTable___action_table_row1243_t)CALL((recv), (SFT_parser_tables[3] + 1244)))
+#define CALL_parser_tables___ParserTable___action_table_row1244(recv) ((parser_tables___ParserTable___action_table_row1244_t)CALL((recv), (SFT_parser_tables[3] + 1245)))
+#define CALL_parser_tables___ParserTable___action_table_row1245(recv) ((parser_tables___ParserTable___action_table_row1245_t)CALL((recv), (SFT_parser_tables[3] + 1246)))
+#define CALL_parser_tables___ParserTable___action_table_row1246(recv) ((parser_tables___ParserTable___action_table_row1246_t)CALL((recv), (SFT_parser_tables[3] + 1247)))
+#define CALL_parser_tables___ParserTable___action_table_row1247(recv) ((parser_tables___ParserTable___action_table_row1247_t)CALL((recv), (SFT_parser_tables[3] + 1248)))
+#define CALL_parser_tables___ParserTable___action_table_row1248(recv) ((parser_tables___ParserTable___action_table_row1248_t)CALL((recv), (SFT_parser_tables[3] + 1249)))
+#define CALL_parser_tables___ParserTable___action_table_row1249(recv) ((parser_tables___ParserTable___action_table_row1249_t)CALL((recv), (SFT_parser_tables[3] + 1250)))
+#define CALL_parser_tables___ParserTable___action_table_row1250(recv) ((parser_tables___ParserTable___action_table_row1250_t)CALL((recv), (SFT_parser_tables[3] + 1251)))
+#define CALL_parser_tables___ParserTable___action_table_row1251(recv) ((parser_tables___ParserTable___action_table_row1251_t)CALL((recv), (SFT_parser_tables[3] + 1252)))
+#define CALL_parser_tables___ParserTable___action_table_row1252(recv) ((parser_tables___ParserTable___action_table_row1252_t)CALL((recv), (SFT_parser_tables[3] + 1253)))
+#define CALL_parser_tables___ParserTable___action_table_row1253(recv) ((parser_tables___ParserTable___action_table_row1253_t)CALL((recv), (SFT_parser_tables[3] + 1254)))
+#define CALL_parser_tables___ParserTable___action_table_row1254(recv) ((parser_tables___ParserTable___action_table_row1254_t)CALL((recv), (SFT_parser_tables[3] + 1255)))
+#define CALL_parser_tables___ParserTable___action_table_row1255(recv) ((parser_tables___ParserTable___action_table_row1255_t)CALL((recv), (SFT_parser_tables[3] + 1256)))
+#define CALL_parser_tables___ParserTable___action_table_row1256(recv) ((parser_tables___ParserTable___action_table_row1256_t)CALL((recv), (SFT_parser_tables[3] + 1257)))
+#define CALL_parser_tables___ParserTable___action_table_row1257(recv) ((parser_tables___ParserTable___action_table_row1257_t)CALL((recv), (SFT_parser_tables[3] + 1258)))
+#define CALL_parser_tables___ParserTable___action_table_row1258(recv) ((parser_tables___ParserTable___action_table_row1258_t)CALL((recv), (SFT_parser_tables[3] + 1259)))
+#define CALL_parser_tables___ParserTable___action_table_row1259(recv) ((parser_tables___ParserTable___action_table_row1259_t)CALL((recv), (SFT_parser_tables[3] + 1260)))
+#define CALL_parser_tables___ParserTable___action_table_row1260(recv) ((parser_tables___ParserTable___action_table_row1260_t)CALL((recv), (SFT_parser_tables[3] + 1261)))
+#define CALL_parser_tables___ParserTable___action_table_row1261(recv) ((parser_tables___ParserTable___action_table_row1261_t)CALL((recv), (SFT_parser_tables[3] + 1262)))
+#define CALL_parser_tables___ParserTable___action_table_row1262(recv) ((parser_tables___ParserTable___action_table_row1262_t)CALL((recv), (SFT_parser_tables[3] + 1263)))
+#define CALL_parser_tables___ParserTable___action_table_row1263(recv) ((parser_tables___ParserTable___action_table_row1263_t)CALL((recv), (SFT_parser_tables[3] + 1264)))
+#define CALL_parser_tables___ParserTable___action_table_row1264(recv) ((parser_tables___ParserTable___action_table_row1264_t)CALL((recv), (SFT_parser_tables[3] + 1265)))
+#define CALL_parser_tables___ParserTable___action_table_row1265(recv) ((parser_tables___ParserTable___action_table_row1265_t)CALL((recv), (SFT_parser_tables[3] + 1266)))
+#define CALL_parser_tables___ParserTable___action_table_row1266(recv) ((parser_tables___ParserTable___action_table_row1266_t)CALL((recv), (SFT_parser_tables[3] + 1267)))
+#define CALL_parser_tables___ParserTable___action_table_row1267(recv) ((parser_tables___ParserTable___action_table_row1267_t)CALL((recv), (SFT_parser_tables[3] + 1268)))
+#define CALL_parser_tables___ParserTable___action_table_row1268(recv) ((parser_tables___ParserTable___action_table_row1268_t)CALL((recv), (SFT_parser_tables[3] + 1269)))
+#define CALL_parser_tables___ParserTable___action_table_row1269(recv) ((parser_tables___ParserTable___action_table_row1269_t)CALL((recv), (SFT_parser_tables[3] + 1270)))
+#define CALL_parser_tables___ParserTable___action_table_row1270(recv) ((parser_tables___ParserTable___action_table_row1270_t)CALL((recv), (SFT_parser_tables[3] + 1271)))
+#define CALL_parser_tables___ParserTable___action_table_row1271(recv) ((parser_tables___ParserTable___action_table_row1271_t)CALL((recv), (SFT_parser_tables[3] + 1272)))
+#define CALL_parser_tables___ParserTable___action_table_row1272(recv) ((parser_tables___ParserTable___action_table_row1272_t)CALL((recv), (SFT_parser_tables[3] + 1273)))
+#define CALL_parser_tables___ParserTable___action_table_row1273(recv) ((parser_tables___ParserTable___action_table_row1273_t)CALL((recv), (SFT_parser_tables[3] + 1274)))
+#define CALL_parser_tables___ParserTable___action_table_row1274(recv) ((parser_tables___ParserTable___action_table_row1274_t)CALL((recv), (SFT_parser_tables[3] + 1275)))
+#define CALL_parser_tables___ParserTable___action_table_row1275(recv) ((parser_tables___ParserTable___action_table_row1275_t)CALL((recv), (SFT_parser_tables[3] + 1276)))
+#define CALL_parser_tables___ParserTable___action_table_row1276(recv) ((parser_tables___ParserTable___action_table_row1276_t)CALL((recv), (SFT_parser_tables[3] + 1277)))
+#define CALL_parser_tables___ParserTable___action_table_row1277(recv) ((parser_tables___ParserTable___action_table_row1277_t)CALL((recv), (SFT_parser_tables[3] + 1278)))
+#define CALL_parser_tables___ParserTable___action_table_row1278(recv) ((parser_tables___ParserTable___action_table_row1278_t)CALL((recv), (SFT_parser_tables[3] + 1279)))
+#define CALL_parser_tables___ParserTable___action_table_row1279(recv) ((parser_tables___ParserTable___action_table_row1279_t)CALL((recv), (SFT_parser_tables[3] + 1280)))
+#define CALL_parser_tables___ParserTable___action_table_row1280(recv) ((parser_tables___ParserTable___action_table_row1280_t)CALL((recv), (SFT_parser_tables[3] + 1281)))
+#define CALL_parser_tables___ParserTable___action_table_row1281(recv) ((parser_tables___ParserTable___action_table_row1281_t)CALL((recv), (SFT_parser_tables[3] + 1282)))
+#define CALL_parser_tables___ParserTable___action_table_row1282(recv) ((parser_tables___ParserTable___action_table_row1282_t)CALL((recv), (SFT_parser_tables[3] + 1283)))
+#define CALL_parser_tables___ParserTable___action_table_row1283(recv) ((parser_tables___ParserTable___action_table_row1283_t)CALL((recv), (SFT_parser_tables[3] + 1284)))
+#define CALL_parser_tables___ParserTable___action_table_row1284(recv) ((parser_tables___ParserTable___action_table_row1284_t)CALL((recv), (SFT_parser_tables[3] + 1285)))
+#define CALL_parser_tables___ParserTable___action_table_row1285(recv) ((parser_tables___ParserTable___action_table_row1285_t)CALL((recv), (SFT_parser_tables[3] + 1286)))
+#define CALL_parser_tables___ParserTable___action_table_row1286(recv) ((parser_tables___ParserTable___action_table_row1286_t)CALL((recv), (SFT_parser_tables[3] + 1287)))
+#define CALL_parser_tables___ParserTable___action_table_row1287(recv) ((parser_tables___ParserTable___action_table_row1287_t)CALL((recv), (SFT_parser_tables[3] + 1288)))
+#define CALL_parser_tables___ParserTable___action_table_row1288(recv) ((parser_tables___ParserTable___action_table_row1288_t)CALL((recv), (SFT_parser_tables[3] + 1289)))
+#define CALL_parser_tables___ParserTable___action_table_row1289(recv) ((parser_tables___ParserTable___action_table_row1289_t)CALL((recv), (SFT_parser_tables[3] + 1290)))
+#define CALL_parser_tables___ParserTable___action_table_row1290(recv) ((parser_tables___ParserTable___action_table_row1290_t)CALL((recv), (SFT_parser_tables[3] + 1291)))
+#define CALL_parser_tables___ParserTable___action_table_row1291(recv) ((parser_tables___ParserTable___action_table_row1291_t)CALL((recv), (SFT_parser_tables[3] + 1292)))
+#define CALL_parser_tables___ParserTable___action_table_row1292(recv) ((parser_tables___ParserTable___action_table_row1292_t)CALL((recv), (SFT_parser_tables[3] + 1293)))
+#define CALL_parser_tables___ParserTable___action_table_row1293(recv) ((parser_tables___ParserTable___action_table_row1293_t)CALL((recv), (SFT_parser_tables[3] + 1294)))
+#define CALL_parser_tables___ParserTable___action_table_row1294(recv) ((parser_tables___ParserTable___action_table_row1294_t)CALL((recv), (SFT_parser_tables[3] + 1295)))
+#define CALL_parser_tables___ParserTable___action_table_row1295(recv) ((parser_tables___ParserTable___action_table_row1295_t)CALL((recv), (SFT_parser_tables[3] + 1296)))
+#define CALL_parser_tables___ParserTable___action_table_row1296(recv) ((parser_tables___ParserTable___action_table_row1296_t)CALL((recv), (SFT_parser_tables[3] + 1297)))
+#define CALL_parser_tables___ParserTable___action_table_row1297(recv) ((parser_tables___ParserTable___action_table_row1297_t)CALL((recv), (SFT_parser_tables[3] + 1298)))
+#define CALL_parser_tables___ParserTable___action_table_row1298(recv) ((parser_tables___ParserTable___action_table_row1298_t)CALL((recv), (SFT_parser_tables[3] + 1299)))
+#define CALL_parser_tables___ParserTable___action_table_row1299(recv) ((parser_tables___ParserTable___action_table_row1299_t)CALL((recv), (SFT_parser_tables[3] + 1300)))
+#define CALL_parser_tables___ParserTable___action_table_row1300(recv) ((parser_tables___ParserTable___action_table_row1300_t)CALL((recv), (SFT_parser_tables[3] + 1301)))
+#define CALL_parser_tables___ParserTable___action_table_row1301(recv) ((parser_tables___ParserTable___action_table_row1301_t)CALL((recv), (SFT_parser_tables[3] + 1302)))
+#define CALL_parser_tables___ParserTable___build_goto_table(recv) ((parser_tables___ParserTable___build_goto_table_t)CALL((recv), (SFT_parser_tables[3] + 1303)))
+#define CALL_parser_tables___ParserTable___error_messages(recv) ((parser_tables___ParserTable___error_messages_t)CALL((recv), (SFT_parser_tables[3] + 1304)))
+#define CALL_parser_tables___ParserTable___errors(recv) ((parser_tables___ParserTable___errors_t)CALL((recv), (SFT_parser_tables[3] + 1305)))
+#define CALL_parser_tables___ParserTable___init(recv) ((parser_tables___ParserTable___init_t)CALL((recv), (SFT_parser_tables[3] + 1306)))
 typedef void (* parser_tables___ParserTable___build_action_table_t)(val_t  self);
 void parser_tables___ParserTable___build_action_table(val_t  self);
 #define LOCATE_parser_tables___ParserTable___build_action_table "parser_tables::ParserTable::build_action_table"
@@ -5225,7 +5224,6 @@ val_t parser_tables___ParserTable___action_table_row1300(val_t  self);
 typedef val_t (* parser_tables___ParserTable___action_table_row1301_t)(val_t  self);
 val_t parser_tables___ParserTable___action_table_row1301(val_t  self);
 #define LOCATE_parser_tables___ParserTable___action_table_row1301 "parser_tables::ParserTable::action_table_row1301"
-#define ATTR_parser_tables___ParserTable____goto_table(recv) ATTR(recv, COLOR_parser_tables___ParserTable____goto_table)
 typedef void (* parser_tables___ParserTable___build_goto_table_t)(val_t  self);
 void parser_tables___ParserTable___build_goto_table(val_t  self);
 #define LOCATE_parser_tables___ParserTable___build_goto_table "parser_tables::ParserTable::build_goto_table"
index 41cfe6d..64defd4 100644 (file)
@@ -9,7 +9,7 @@ val_t partial_order___PartialOrder___iterator(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrder____elements_list(variable[2]) /*PartialOrder::_elements_list*/;
-  variable[2] = ((array___AbstractArray___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*AbstractArray::iterator*/;
+  variable[2] = CALL_abstract_collection___Collection___iterator(variable[2])(variable[2]) /*AbstractArray::iterator*/;
   variable[1] = variable[2];
   goto return_label0;
   return_label0: while(false);
@@ -25,7 +25,7 @@ val_t partial_order___PartialOrder___is_empty(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrder____elements(variable[2]) /*PartialOrder::_elements*/;
-  variable[2] = ((abstract_collection___Collection___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(variable[2]) /*Collection::is_empty*/;
+  variable[2] = CALL_abstract_collection___Collection___is_empty(variable[2])(variable[2]) /*Collection::is_empty*/;
   variable[1] = variable[2];
   goto return_label1;
   return_label1: while(false);
@@ -41,7 +41,7 @@ val_t partial_order___PartialOrder___length(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrder____elements(variable[2]) /*PartialOrder::_elements*/;
-  variable[2] = ((abstract_collection___Collection___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*Collection::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*Collection::length*/;
   variable[1] = variable[2];
   goto return_label2;
   return_label2: while(false);
@@ -58,7 +58,7 @@ val_t partial_order___PartialOrder___has(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrder____elements(variable[3]) /*PartialOrder::_elements*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*e*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*e*/) /*Map::has_key*/;
   variable[2] = variable[3];
   goto return_label3;
   return_label3: while(false);
@@ -75,14 +75,14 @@ val_t partial_order___PartialOrder___has_only(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrder____elements(variable[3]) /*PartialOrder::_elements*/;
-  variable[3] = ((abstract_collection___Collection___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*Collection::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*Collection::length*/;
   variable[3] = TAG_Bool((variable[3])==( TAG_Int(1)));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
     variable[4] = ATTR_partial_order___PartialOrder____elements(variable[4]) /*PartialOrder::_elements*/;
-    variable[4] = ((abstract_collection___Collection___first_t)CALL(variable[4],COLOR_abstract_collection___Collection___first))(variable[4]) /*Collection::first*/;
-    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*e*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*e*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*e*/) /*Object::==*/)))));
+    variable[4] = CALL_abstract_collection___Collection___first(variable[4])(variable[4]) /*Collection::first*/;
+    variable[4] = TAG_Bool((variable[4] ==  variable[1] /*e*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*e*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*e*/) /*Object::==*/)))));
   }
   variable[3] = variable[4];
   variable[2] = variable[3];
@@ -100,7 +100,7 @@ val_t partial_order___PartialOrder___count(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((partial_order___PartialOrder___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*e*/) /*PartialOrder::has*/;
+  variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*e*/) /*PartialOrder::has*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  TAG_Int(1);
     goto return_label5;
@@ -121,7 +121,7 @@ val_t partial_order___PartialOrder___first(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrder____elements_list(variable[2]) /*PartialOrder::_elements_list*/;
-  variable[2] = ((abstract_collection___IndexedCollection___first_t)CALL(variable[2],COLOR_abstract_collection___Collection___first))(variable[2]) /*IndexedCollection::first*/;
+  variable[2] = CALL_abstract_collection___Collection___first(variable[2])(variable[2]) /*IndexedCollection::first*/;
   variable[1] = variable[2];
   goto return_label6;
   return_label6: while(false);
@@ -147,11 +147,11 @@ val_t partial_order___PartialOrder_____bra(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrder____elements(variable[3]) /*PartialOrder::_elements*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*e*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*e*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_partial_order___PartialOrder____elements(variable[3]) /*PartialOrder::_elements*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*e*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*e*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label7;
   } else { /*if*/
@@ -172,41 +172,41 @@ val_t partial_order___PartialOrder___to_dot(val_t  self) {
   variable[3] = NEW_String_string___String___init(); /*new String*/
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((partial_order___PartialOrder___to_dot_header_t)CALL(variable[3],COLOR_partial_order___PartialOrder___to_dot_header))(variable[3]) /*PartialOrder::to_dot_header*/;
-  ((string___String___append_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*s*/, variable[3]) /*String::append*/;
+  variable[3] = CALL_partial_order___PartialOrder___to_dot_header(variable[3])(variable[3]) /*PartialOrder::to_dot_header*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[3]) /*String::append*/;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrder____elements(variable[3]) /*PartialOrder::_elements*/;
-  variable[3] = ((abstract_collection___Map___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Map::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
     variable[6] = variable[0];
-    variable[7] = ((partial_order___PartialOrderElement___value_t)CALL( variable[5] /*e*/,COLOR_partial_order___PartialOrderElement___value))( variable[5] /*e*/) /*PartialOrderElement::value*/;
-    variable[6] = ((partial_order___PartialOrder___to_dot_node_t)CALL(variable[6],COLOR_partial_order___PartialOrder___to_dot_node))(variable[6], variable[7]) /*PartialOrder::to_dot_node*/;
-    ((string___String___append_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*s*/, variable[6]) /*String::append*/;
-    variable[6] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL( variable[5] /*e*/,COLOR_partial_order___PartialOrderElement___direct_greaters))( variable[5] /*e*/) /*PartialOrderElement::direct_greaters*/;
-    variable[6] = ((array___AbstractArray___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*AbstractArray::iterator*/;
+    variable[7] = CALL_partial_order___PartialOrderElement___value( variable[5] /*e*/)( variable[5] /*e*/) /*PartialOrderElement::value*/;
+    variable[6] = CALL_partial_order___PartialOrder___to_dot_node(variable[6])(variable[6], variable[7]) /*PartialOrder::to_dot_node*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[6]) /*String::append*/;
+    variable[6] = CALL_partial_order___PartialOrderElement___direct_greaters( variable[5] /*e*/)( variable[5] /*e*/) /*PartialOrderElement::direct_greaters*/;
+    variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+      variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[7])) break; /*for*/
-      variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+      variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
       variable[8] = variable[7];
       variable[9] = variable[0];
-      variable[10] = ((partial_order___PartialOrderElement___value_t)CALL( variable[5] /*e*/,COLOR_partial_order___PartialOrderElement___value))( variable[5] /*e*/) /*PartialOrderElement::value*/;
-      variable[9] = ((partial_order___PartialOrder___to_dot_edge_t)CALL(variable[9],COLOR_partial_order___PartialOrder___to_dot_edge))(variable[9], variable[10],  variable[8] /*d*/) /*PartialOrder::to_dot_edge*/;
-      ((string___String___append_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*s*/, variable[9]) /*String::append*/;
+      variable[10] = CALL_partial_order___PartialOrderElement___value( variable[5] /*e*/)( variable[5] /*e*/) /*PartialOrderElement::value*/;
+      variable[9] = CALL_partial_order___PartialOrder___to_dot_edge(variable[9])(variable[9], variable[10],  variable[8] /*d*/) /*PartialOrder::to_dot_edge*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[9]) /*String::append*/;
       continue_10: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
     }
     break_10: while(0);
     continue_9: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_9: while(0);
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("}\n"), TAG_Int(2)); /*new String*/
-  ((string___String___append_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*s*/, variable[3]) /*String::append*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[3]) /*String::append*/;
   variable[1] =  variable[2] /*s*/;
   goto return_label8;
   return_label8: while(false);
@@ -235,16 +235,17 @@ val_t partial_order___PartialOrder___to_dot_node(val_t  self, val_t  param0) {
   trace.file = LOCATE_partial_order;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = NEW_String_string___String___init(); /*new String*/
+  variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[4] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
   variable[5] = variable[4];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
   variable[6] =  variable[1] /*e*/;
-  variable[6] = ((string___String___to_s_t)CALL(variable[6],COLOR_string___Object___to_s))(variable[6]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[6]) /*String::append*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[8]) /*AbstractArray::add*/;
+  variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
   variable[2] = variable[3];
   goto return_label12;
   return_label12: while(false);
@@ -260,22 +261,23 @@ val_t partial_order___PartialOrder___to_dot_edge(val_t  self, val_t  param0, val
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = NEW_String_string___String___init(); /*new String*/
+  variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[5] = NEW_String_string___String___with_native(BOX_NativeString("\""), TAG_Int(1)); /*new String*/
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
   variable[7] =  variable[1] /*e1*/;
-  variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[7]) /*String::append*/;
+  variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[7]) /*AbstractArray::add*/;
   variable[8] = NEW_String_string___String___with_native(BOX_NativeString("\" -> \""), TAG_Int(6)); /*new String*/
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[9]) /*AbstractArray::add*/;
   variable[10] =  variable[2] /*e2*/;
-  variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString("\";\n"), TAG_Int(3)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[12]) /*AbstractArray::add*/;
+  variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
   variable[3] = variable[4];
   goto return_label13;
   return_label13: while(false);
@@ -290,31 +292,31 @@ val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0
   trace.file = LOCATE_partial_order;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(( variable[1] /*c*/ ==  NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*c*/,COLOR_kernel___Object_____eqeq))( variable[1] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool(( variable[1] /*c*/ ==  NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*c*/)( variable[1] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = NEW_Array_array___Array___init(); /*new Array[E]*/
     variable[2] = variable[3];
     goto return_label14;
   }
   variable[3] = variable[0];
-  variable[3] = ((partial_order___PartialOrder___has_all_t)CALL(variable[3],COLOR_partial_order___PartialOrder___has_all))(variable[3],  variable[1] /*c*/) /*PartialOrder::has_all*/;
+  variable[3] = CALL_partial_order___PartialOrder___has_all(variable[3])(variable[3],  variable[1] /*c*/) /*PartialOrder::has_all*/;
   if (!UNTAG_Bool(variable[3])) { 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);}
-  variable[4] = ((abstract_collection___Collection___length_t)CALL( variable[1] /*c*/,COLOR_abstract_collection___Collection___length))( variable[1] /*c*/) /*Collection::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*c*/)( variable[1] /*c*/) /*Collection::length*/;
   variable[5] = NEW_Array_array___Array___with_capacity(variable[4]); /*new Array[E]*/
   variable[4] = variable[5];
   variable[3] = variable[4];
-  variable[5] = ((abstract_collection___Collection___length_t)CALL( variable[1] /*c*/,COLOR_abstract_collection___Collection___length))( variable[1] /*c*/) /*Collection::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*c*/)( variable[1] /*c*/) /*Collection::length*/;
   variable[6] = NEW_Array_array___Array___with_capacity(variable[5]); /*new Array[E]*/
   variable[5] = variable[6];
   variable[4] = variable[5];
-  variable[5] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*c*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*c*/) /*Collection::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*c*/)( variable[1] /*c*/) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
     variable[9] = variable[0];
-    variable[9] = ((partial_order___PartialOrder___add_to_smallests_t)CALL(variable[9],COLOR_partial_order___PartialOrder___add_to_smallests))(variable[9],  variable[7] /*e*/,  variable[3] /*res*/,  variable[4] /*tmp*/) /*PartialOrder::add_to_smallests*/;
+    variable[9] = CALL_partial_order___PartialOrder___add_to_smallests(variable[9])(variable[9],  variable[7] /*e*/,  variable[3] /*res*/,  variable[4] /*tmp*/) /*PartialOrder::add_to_smallests*/;
     variable[8] = variable[9];
     if (UNTAG_Bool( variable[8] /*r*/)) { /*if*/
       variable[9] =  variable[4] /*tmp*/;
@@ -322,7 +324,7 @@ val_t partial_order___PartialOrder___select_smallests(val_t  self, val_t  param0
       variable[3] =  variable[9] /*t*/ /*res=*/;
     }
     continue_15: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
   break_15: while(0);
   variable[2] =  variable[3] /*res*/;
@@ -341,38 +343,38 @@ val_t partial_order___PartialOrder___add(val_t  self, val_t  param0, val_t  para
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((partial_order___PartialOrder___has_t)CALL(variable[4],COLOR_abstract_collection___Collection___has))(variable[4],  variable[1] /*e*/) /*PartialOrder::has*/;
+  variable[4] = CALL_abstract_collection___Collection___has(variable[4])(variable[4],  variable[1] /*e*/) /*PartialOrder::has*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___add, LOCATE_partial_order, 125); nit_exit(1);}
-  variable[4] = TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[5] = variable[4];
   if (!UNTAG_Bool(variable[5])) { /* or */
     variable[5] = variable[0];
-    variable[5] = ((partial_order___PartialOrder___has_all_t)CALL(variable[5],COLOR_partial_order___PartialOrder___has_all))(variable[5],  variable[2] /*supers*/) /*PartialOrder::has_all*/;
+    variable[5] = CALL_partial_order___PartialOrder___has_all(variable[5])(variable[5],  variable[2] /*supers*/) /*PartialOrder::has_all*/;
   }
   variable[4] = variable[5];
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_partial_order___PartialOrder___add, LOCATE_partial_order, 126); nit_exit(1);}
   variable[5] = variable[0];
-  variable[5] = ((partial_order___PartialOrder___select_smallests_t)CALL(variable[5],COLOR_partial_order___PartialOrder___select_smallests))(variable[5],  variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
+  variable[5] = CALL_partial_order___PartialOrder___select_smallests(variable[5])(variable[5],  variable[2] /*supers*/) /*PartialOrder::select_smallests*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((partial_order___PartialOrder___new_poe_t)CALL(variable[6],COLOR_partial_order___PartialOrder___new_poe))(variable[6],  variable[1] /*e*/,  variable[4] /*directs*/) /*PartialOrder::new_poe*/;
+  variable[6] = CALL_partial_order___PartialOrder___new_poe(variable[6])(variable[6],  variable[1] /*e*/,  variable[4] /*directs*/) /*PartialOrder::new_poe*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
   variable[6] = ATTR_partial_order___PartialOrder____elements(variable[6]) /*PartialOrder::_elements*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[6],COLOR_abstract_collection___Map_____braeq))(variable[6],  variable[1] /*e*/,  variable[5] /*poe*/) /*Map::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[6])(variable[6],  variable[1] /*e*/,  variable[5] /*poe*/) /*Map::[]=*/;
   variable[6] = variable[0];
   variable[6] = ATTR_partial_order___PartialOrder____elements_list(variable[6]) /*PartialOrder::_elements_list*/;
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[1] /*e*/) /*AbstractArray::add*/;
-  variable[6] = TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*supers*/,COLOR_kernel___Object_____eqeq))( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[1] /*e*/) /*AbstractArray::add*/;
+  variable[6] = TAG_Bool(( variable[2] /*supers*/ ==  NIT_NULL /*null*/) || (( variable[2] /*supers*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*supers*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*supers*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*supers*/)( variable[2] /*supers*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[7] = variable[6];
   if (!UNTAG_Bool(variable[7])) { /* or */
-    variable[7] = ((abstract_collection___Collection___is_empty_t)CALL( variable[2] /*supers*/,COLOR_abstract_collection___Collection___is_empty))( variable[2] /*supers*/) /*Collection::is_empty*/;
+    variable[7] = CALL_abstract_collection___Collection___is_empty( variable[2] /*supers*/)( variable[2] /*supers*/) /*Collection::is_empty*/;
   }
   variable[6] = variable[7];
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
     variable[6] = ATTR_partial_order___PartialOrder____roots(variable[6]) /*PartialOrder::_roots*/;
-    ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[1] /*e*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[1] /*e*/) /*AbstractArray::add*/;
   }
   variable[3] =  variable[5] /*poe*/;
   goto return_label16;
@@ -388,20 +390,20 @@ val_t partial_order___PartialOrder___has_all(val_t  self, val_t  param0) {
   trace.file = LOCATE_partial_order;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*e*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*e*/) /*Collection::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*e*/)( variable[1] /*e*/) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
     variable[6] = variable[0];
-    variable[6] = ((partial_order___PartialOrder___has_t)CALL(variable[6],COLOR_abstract_collection___Collection___has))(variable[6],  variable[5] /*i*/) /*PartialOrder::has*/;
+    variable[6] = CALL_abstract_collection___Collection___has(variable[6])(variable[6],  variable[5] /*i*/) /*PartialOrder::has*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label17;
     }
     continue_18: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_18: while(0);
   variable[2] =  TAG_Bool(true);
@@ -438,30 +440,30 @@ val_t partial_order___PartialOrder___add_to_smallests(val_t  self, val_t  param0
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  ((array___AbstractArray___clear_t)CALL( variable[3] /*to*/,COLOR_abstract_collection___RemovableCollection___clear))( variable[3] /*to*/) /*AbstractArray::clear*/;
+  CALL_abstract_collection___RemovableCollection___clear( variable[3] /*to*/)( variable[3] /*to*/) /*AbstractArray::clear*/;
   variable[6] = variable[0];
-  variable[6] = ((partial_order___PartialOrder_____bra_t)CALL(variable[6],COLOR_partial_order___PartialOrder_____bra))(variable[6],  variable[1] /*e*/) /*PartialOrder::[]*/;
+  variable[6] = CALL_partial_order___PartialOrder_____bra(variable[6])(variable[6],  variable[1] /*e*/) /*PartialOrder::[]*/;
   variable[5] = variable[6];
-  variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*from*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*from*/) /*AbstractArray::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator( variable[2] /*from*/)( variable[2] /*from*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
     variable[8] = variable[7];
-    variable[9] = ((partial_order___PartialOrderElement_____g_t)CALL( variable[5] /*poe*/,COLOR_partial_order___PartialOrderElement_____g))( variable[5] /*poe*/,  variable[8] /*i*/) /*PartialOrderElement::>*/;
+    variable[9] = CALL_partial_order___PartialOrderElement_____g( variable[5] /*poe*/)( variable[5] /*poe*/,  variable[8] /*i*/) /*PartialOrderElement::>*/;
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[4] =  TAG_Bool(false);
       goto return_label20;
     }
-    variable[9] = ((partial_order___PartialOrderElement_____l_t)CALL( variable[5] /*poe*/,COLOR_partial_order___PartialOrderElement_____l))( variable[5] /*poe*/,  variable[8] /*i*/) /*PartialOrderElement::<*/;
+    variable[9] = CALL_partial_order___PartialOrderElement_____l( variable[5] /*poe*/)( variable[5] /*poe*/,  variable[8] /*i*/) /*PartialOrderElement::<*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[9])))) { /*if*/
-      ((array___AbstractArray___add_t)CALL( variable[3] /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*to*/,  variable[8] /*i*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[3] /*to*/)( variable[3] /*to*/,  variable[8] /*i*/) /*AbstractArray::add*/;
     }
     continue_21: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
   }
   break_21: while(0);
-  ((array___AbstractArray___add_t)CALL( variable[3] /*to*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*to*/,  variable[1] /*e*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[3] /*to*/)( variable[3] /*to*/,  variable[1] /*e*/) /*AbstractArray::add*/;
   variable[4] =  TAG_Bool(true);
   goto return_label20;
   return_label20: while(false);
@@ -477,23 +479,23 @@ void partial_order___PartialOrder___compute_smallers_for(val_t  self, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((partial_order___PartialOrderElement___value_t)CALL( variable[1] /*poe*/,COLOR_partial_order___PartialOrderElement___value))( variable[1] /*poe*/) /*PartialOrderElement::value*/;
+  variable[5] = CALL_partial_order___PartialOrderElement___value( variable[1] /*poe*/)( variable[1] /*poe*/) /*PartialOrderElement::value*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
   variable[5] = ATTR_partial_order___PartialOrder____elements(variable[5]) /*PartialOrder::_elements*/;
-  variable[5] = ((abstract_collection___Map___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Map::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Map::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
     variable[7] = variable[6];
-    variable[8] = ((partial_order___PartialOrderElement_____l_t)CALL( variable[7] /*s*/,COLOR_partial_order___PartialOrderElement_____l))( variable[7] /*s*/,  variable[4] /*e*/) /*PartialOrderElement::<*/;
+    variable[8] = CALL_partial_order___PartialOrderElement_____l( variable[7] /*s*/)( variable[7] /*s*/,  variable[4] /*e*/) /*PartialOrderElement::<*/;
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[8] = ((partial_order___PartialOrderElement___value_t)CALL( variable[7] /*s*/,COLOR_partial_order___PartialOrderElement___value))( variable[7] /*s*/) /*PartialOrderElement::value*/;
-      ((abstract_collection___SimpleCollection___add_t)CALL( variable[2] /*set*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*set*/, variable[8]) /*SimpleCollection::add*/;
+      variable[8] = CALL_partial_order___PartialOrderElement___value( variable[7] /*s*/)( variable[7] /*s*/) /*PartialOrderElement::value*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[2] /*set*/)( variable[2] /*set*/, variable[8]) /*SimpleCollection::add*/;
     }
     continue_23: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
   }
   break_23: while(0);
   return_label22: while(false);
@@ -585,18 +587,18 @@ val_t partial_order___PartialOrderElement___greaters_and_self(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[2]) /*PartialOrderElement::_greaters_and_self_cache*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[3] = variable[0];
     variable[3] = ATTR_partial_order___PartialOrderElement____greaters(variable[3]) /*PartialOrderElement::_greaters*/;
-    variable[3] = ((array___Collection___to_a_t)CALL(variable[3],COLOR_array___Collection___to_a))(variable[3]) /*Collection::to_a*/;
+    variable[3] = CALL_array___Collection___to_a(variable[3])(variable[3]) /*Collection::to_a*/;
     ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[2]) /*PartialOrderElement::_greaters_and_self_cache*/ = variable[3];
     variable[2] = variable[0];
     variable[2] = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[2]) /*PartialOrderElement::_greaters_and_self_cache*/;
     variable[3] = variable[0];
     variable[3] = ATTR_partial_order___PartialOrderElement____value(variable[3]) /*PartialOrderElement::_value*/;
-    ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
   }
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(variable[2]) /*PartialOrderElement::_greaters_and_self_cache*/;
@@ -617,7 +619,7 @@ val_t partial_order___PartialOrderElement___smallers(val_t  self) {
   variable[2] = ATTR_partial_order___PartialOrderElement____smallers_last_length(variable[2]) /*PartialOrderElement::_smallers_last_length*/;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrderElement____order(variable[3]) /*PartialOrderElement::_order*/;
-  variable[3] = ((partial_order___PartialOrder___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*PartialOrder::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*PartialOrder::length*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])<UNTAG_Int(variable[3]));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
@@ -625,11 +627,11 @@ val_t partial_order___PartialOrderElement___smallers(val_t  self) {
     variable[3] = variable[0];
     variable[4] = variable[0];
     variable[4] = ATTR_partial_order___PartialOrderElement____smallers_cache(variable[4]) /*PartialOrderElement::_smallers_cache*/;
-    ((partial_order___PartialOrder___compute_smallers_for_t)CALL(variable[2],COLOR_partial_order___PartialOrder___compute_smallers_for))(variable[2], variable[3], variable[4]) /*PartialOrder::compute_smallers_for*/;
+    CALL_partial_order___PartialOrder___compute_smallers_for(variable[2])(variable[2], variable[3], variable[4]) /*PartialOrder::compute_smallers_for*/;
     variable[2] = variable[0];
     variable[3] = variable[0];
     variable[3] = ATTR_partial_order___PartialOrderElement____order(variable[3]) /*PartialOrderElement::_order*/;
-    variable[3] = ((partial_order___PartialOrder___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*PartialOrder::length*/;
+    variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*PartialOrder::length*/;
     ATTR_partial_order___PartialOrderElement____smallers_last_length(variable[2]) /*PartialOrderElement::_smallers_last_length*/ = variable[3];
   }
   variable[2] = variable[0];
@@ -649,49 +651,49 @@ val_t partial_order___PartialOrderElement___linear_extension(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable[2]) /*PartialOrderElement::_linear_extension_cache*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[3] = NEW_Array_array___Array___init(); /*new Array[E]*/
     variable[2] = variable[3];
     variable[4] = NEW_Array_array___Array___init(); /*new Array[E]*/
     variable[3] = variable[4];
     variable[4] = variable[0];
-    variable[4] = ((partial_order___PartialOrderElement___value_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___value))(variable[4]) /*PartialOrderElement::value*/;
-    ((array___AbstractArray___add_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*res*/, variable[4]) /*AbstractArray::add*/;
+    variable[4] = CALL_partial_order___PartialOrderElement___value(variable[4])(variable[4]) /*PartialOrderElement::value*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*res*/)( variable[2] /*res*/, variable[4]) /*AbstractArray::add*/;
     variable[4] = variable[0];
-    variable[4] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[4]) /*PartialOrderElement::direct_greaters*/;
-    variable[4] = ((array___AbstractArray___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*AbstractArray::iterator*/;
+    variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[4])(variable[4]) /*PartialOrderElement::direct_greaters*/;
+    variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[5] = ((array___ArrayIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ArrayIterator::is_ok*/;
+      variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[5])) break; /*for*/
-      variable[5] = ((array___ArrayIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ArrayIterator::item*/;
+      variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ArrayIterator::item*/;
       variable[6] = variable[5];
       variable[8] = variable[0];
-      variable[8] = ((partial_order___PartialOrderElement___order_t)CALL(variable[8],COLOR_partial_order___PartialOrderElement___order))(variable[8]) /*PartialOrderElement::order*/;
-      variable[8] = ((partial_order___PartialOrder_____bra_t)CALL(variable[8],COLOR_partial_order___PartialOrder_____bra))(variable[8],  variable[6] /*s*/) /*PartialOrder::[]*/;
-      variable[8] = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable[8],COLOR_partial_order___PartialOrderElement___linear_extension))(variable[8]) /*PartialOrderElement::linear_extension*/;
+      variable[8] = CALL_partial_order___PartialOrderElement___order(variable[8])(variable[8]) /*PartialOrderElement::order*/;
+      variable[8] = CALL_partial_order___PartialOrder_____bra(variable[8])(variable[8],  variable[6] /*s*/) /*PartialOrder::[]*/;
+      variable[8] = CALL_partial_order___PartialOrderElement___linear_extension(variable[8])(variable[8]) /*PartialOrderElement::linear_extension*/;
       variable[7] = variable[8];
-      ((array___AbstractArray___clear_t)CALL( variable[3] /*res2*/,COLOR_abstract_collection___RemovableCollection___clear))( variable[3] /*res2*/) /*AbstractArray::clear*/;
-      variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Collection___iterator))( variable[2] /*res*/) /*AbstractArray::iterator*/;
+      CALL_abstract_collection___RemovableCollection___clear( variable[3] /*res2*/)( variable[3] /*res2*/) /*AbstractArray::clear*/;
+      variable[8] = CALL_abstract_collection___Collection___iterator( variable[2] /*res*/)( variable[2] /*res*/) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
+        variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[9])) break; /*for*/
-        variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
+        variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
         variable[10] = variable[9];
-        variable[11] = ((array___AbstractArray___has_t)CALL( variable[7] /*sl*/,COLOR_abstract_collection___Collection___has))( variable[7] /*sl*/,  variable[10] /*e*/) /*AbstractArray::has*/;
+        variable[11] = CALL_abstract_collection___Collection___has( variable[7] /*sl*/)( variable[7] /*sl*/,  variable[10] /*e*/) /*AbstractArray::has*/;
         if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[11])))) { /*if*/
-          ((array___AbstractArray___add_t)CALL( variable[3] /*res2*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*res2*/,  variable[10] /*e*/) /*AbstractArray::add*/;
+          CALL_abstract_collection___SimpleCollection___add( variable[3] /*res2*/)( variable[3] /*res2*/,  variable[10] /*e*/) /*AbstractArray::add*/;
         }
         continue_29: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
       }
       break_29: while(0);
-      ((abstract_collection___IndexedCollection___append_t)CALL( variable[3] /*res2*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*res2*/,  variable[7] /*sl*/) /*IndexedCollection::append*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[3] /*res2*/)( variable[3] /*res2*/,  variable[7] /*sl*/) /*IndexedCollection::append*/;
       variable[8] =  variable[2] /*res*/;
       variable[2] =  variable[3] /*res2*/ /*res=*/;
       variable[3] =  variable[8] /*tmp*/ /*res2=*/;
       continue_28: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ArrayIterator::next*/;
     }
     break_28: while(0);
     variable[4] = variable[0];
@@ -714,33 +716,33 @@ val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_partial_order___PartialOrderElement____reverse_linear_extension_cache(variable[2]) /*PartialOrderElement::_reverse_linear_extension_cache*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[3] = NEW_HashSet_hash___HashSet___init(); /*new HashSet[E]*/
     variable[2] = variable[3];
     variable[3] = variable[0];
-    variable[3] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[3]) /*PartialOrderElement::direct_greaters*/;
-    variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+    variable[3] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[3])(variable[3]) /*PartialOrderElement::direct_greaters*/;
+    variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+      variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[4])) break; /*for*/
-      variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+      variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
       variable[5] = variable[4];
       variable[7] = variable[0];
-      variable[7] = ((partial_order___PartialOrderElement___order_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___order))(variable[7]) /*PartialOrderElement::order*/;
-      variable[7] = ((partial_order___PartialOrder_____bra_t)CALL(variable[7],COLOR_partial_order___PartialOrder_____bra))(variable[7],  variable[5] /*s*/) /*PartialOrder::[]*/;
-      variable[7] = ((partial_order___PartialOrderElement___linear_extension_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___linear_extension))(variable[7]) /*PartialOrderElement::linear_extension*/;
+      variable[7] = CALL_partial_order___PartialOrderElement___order(variable[7])(variable[7]) /*PartialOrderElement::order*/;
+      variable[7] = CALL_partial_order___PartialOrder_____bra(variable[7])(variable[7],  variable[5] /*s*/) /*PartialOrder::[]*/;
+      variable[7] = CALL_partial_order___PartialOrderElement___linear_extension(variable[7])(variable[7]) /*PartialOrderElement::linear_extension*/;
       variable[6] = variable[7];
-      ((abstract_collection___SimpleCollection___add_all_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add_all))( variable[2] /*res*/,  variable[6] /*sl*/) /*SimpleCollection::add_all*/;
+      CALL_abstract_collection___SimpleCollection___add_all( variable[2] /*res*/)( variable[2] /*res*/,  variable[6] /*sl*/) /*SimpleCollection::add_all*/;
       continue_31: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
     }
     break_31: while(0);
     variable[3] = variable[0];
-    variable[3] = ((partial_order___PartialOrderElement___value_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement___value))(variable[3]) /*PartialOrderElement::value*/;
-    ((hash___HashSet___add_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*res*/, variable[3]) /*HashSet::add*/;
+    variable[3] = CALL_partial_order___PartialOrderElement___value(variable[3])(variable[3]) /*PartialOrderElement::value*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*res*/)( variable[2] /*res*/, variable[3]) /*HashSet::add*/;
     variable[3] = variable[0];
-    variable[4] = ((array___Collection___to_a_t)CALL( variable[2] /*res*/,COLOR_array___Collection___to_a))( variable[2] /*res*/) /*Collection::to_a*/;
+    variable[4] = CALL_array___Collection___to_a( variable[2] /*res*/)( variable[2] /*res*/) /*Collection::to_a*/;
     ATTR_partial_order___PartialOrderElement____linear_extension_cache(variable[3]) /*PartialOrderElement::_linear_extension_cache*/ = variable[4];
   }
   variable[2] = variable[0];
@@ -761,7 +763,7 @@ val_t partial_order___PartialOrderElement_____l(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrderElement____greaters(variable[3]) /*PartialOrderElement::_greaters*/;
-  variable[3] = ((abstract_collection___Collection___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*o*/) /*Collection::has*/;
+  variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*o*/) /*Collection::has*/;
   variable[2] = variable[3];
   goto return_label32;
   return_label32: while(false);
@@ -778,12 +780,12 @@ val_t partial_order___PartialOrderElement_____leq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrderElement____value(variable[3]) /*PartialOrderElement::_value*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*o*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*o*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*o*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*o*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*o*/) /*Object::==*/)))));
   variable[4] = variable[3];
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
     variable[4] = ATTR_partial_order___PartialOrderElement____greaters(variable[4]) /*PartialOrderElement::_greaters*/;
-    variable[4] = ((abstract_collection___Collection___has_t)CALL(variable[4],COLOR_abstract_collection___Collection___has))(variable[4],  variable[1] /*o*/) /*Collection::has*/;
+    variable[4] = CALL_abstract_collection___Collection___has(variable[4])(variable[4],  variable[1] /*o*/) /*Collection::has*/;
   }
   variable[3] = variable[4];
   variable[2] = variable[3];
@@ -802,10 +804,10 @@ val_t partial_order___PartialOrderElement_____g(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrderElement____order(variable[3]) /*PartialOrderElement::_order*/;
-  variable[3] = ((partial_order___PartialOrder_____bra_t)CALL(variable[3],COLOR_partial_order___PartialOrder_____bra))(variable[3],  variable[1] /*o*/) /*PartialOrder::[]*/;
+  variable[3] = CALL_partial_order___PartialOrder_____bra(variable[3])(variable[3],  variable[1] /*o*/) /*PartialOrder::[]*/;
   variable[4] = variable[0];
   variable[4] = ATTR_partial_order___PartialOrderElement____value(variable[4]) /*PartialOrderElement::_value*/;
-  variable[3] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement_____l))(variable[3], variable[4]) /*PartialOrderElement::<*/;
+  variable[3] = CALL_partial_order___PartialOrderElement_____l(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<*/;
   variable[2] = variable[3];
   goto return_label34;
   return_label34: while(false);
@@ -822,15 +824,15 @@ val_t partial_order___PartialOrderElement_____geq(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrderElement____value(variable[3]) /*PartialOrderElement::_value*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*o*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*o*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*o*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*o*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*o*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*o*/) /*Object::==*/)))));
   variable[4] = variable[3];
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
     variable[4] = ATTR_partial_order___PartialOrderElement____order(variable[4]) /*PartialOrderElement::_order*/;
-    variable[4] = ((partial_order___PartialOrder_____bra_t)CALL(variable[4],COLOR_partial_order___PartialOrder_____bra))(variable[4],  variable[1] /*o*/) /*PartialOrder::[]*/;
+    variable[4] = CALL_partial_order___PartialOrder_____bra(variable[4])(variable[4],  variable[1] /*o*/) /*PartialOrder::[]*/;
     variable[5] = variable[0];
     variable[5] = ATTR_partial_order___PartialOrderElement____value(variable[5]) /*PartialOrderElement::_value*/;
-    variable[4] = ((partial_order___PartialOrderElement_____l_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement_____l))(variable[4], variable[5]) /*PartialOrderElement::<*/;
+    variable[4] = CALL_partial_order___PartialOrderElement_____l(variable[4])(variable[4], variable[5]) /*PartialOrderElement::<*/;
   }
   variable[3] = variable[4];
   variable[2] = variable[3];
@@ -849,7 +851,7 @@ void partial_order___PartialOrderElement___register_direct_smallers(val_t  self,
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_partial_order___PartialOrderElement____direct_smallers(variable[3]) /*PartialOrderElement::_direct_smallers*/;
-  ((array___AbstractArray___add_t)CALL(variable[3],COLOR_abstract_collection___SimpleCollection___add))(variable[3],  variable[1] /*e*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3],  variable[1] /*e*/) /*AbstractArray::add*/;
   return_label36: while(false);
   tracehead = trace.prev;
   return;
@@ -884,39 +886,39 @@ void partial_order___PartialOrderElement___init(val_t  self, val_t  param0, val_
   variable[6] = ATTR_partial_order___PartialOrderElement____greaters(variable[6]) /*PartialOrderElement::_greaters*/;
   variable[5] = variable[6];
   variable[6] =  TAG_Int(0);
-  variable[7] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*directs*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*directs*/) /*AbstractArray::iterator*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator( variable[3] /*directs*/)( variable[3] /*directs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
-    ((abstract_collection___SimpleCollection___add_t)CALL( variable[5] /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*g*/,  variable[9] /*ee*/) /*SimpleCollection::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[5] /*g*/)( variable[5] /*g*/,  variable[9] /*ee*/) /*SimpleCollection::add*/;
     variable[11] = variable[0];
     variable[11] = ATTR_partial_order___PartialOrderElement____order(variable[11]) /*PartialOrderElement::_order*/;
-    variable[11] = ((partial_order___PartialOrder_____bra_t)CALL(variable[11],COLOR_partial_order___PartialOrder_____bra))(variable[11],  variable[9] /*ee*/) /*PartialOrder::[]*/;
+    variable[11] = CALL_partial_order___PartialOrder_____bra(variable[11])(variable[11],  variable[9] /*ee*/) /*PartialOrder::[]*/;
     variable[10] = variable[11];
-    variable[11] = ((partial_order___PartialOrderElement___rank_t)CALL( variable[10] /*poee*/,COLOR_partial_order___PartialOrderElement___rank))( variable[10] /*poee*/) /*PartialOrderElement::rank*/;
+    variable[11] = CALL_partial_order___PartialOrderElement___rank( variable[10] /*poee*/)( variable[10] /*poee*/) /*PartialOrderElement::rank*/;
     variable[11] = TAG_Bool(UNTAG_Int(variable[11])>=UNTAG_Int( variable[6] /*r*/));
     if (UNTAG_Bool(variable[11])) { /*if*/
-      variable[11] = ((partial_order___PartialOrderElement___rank_t)CALL( variable[10] /*poee*/,COLOR_partial_order___PartialOrderElement___rank))( variable[10] /*poee*/) /*PartialOrderElement::rank*/;
+      variable[11] = CALL_partial_order___PartialOrderElement___rank( variable[10] /*poee*/)( variable[10] /*poee*/) /*PartialOrderElement::rank*/;
       variable[11] = TAG_Int(UNTAG_Int(variable[11])+UNTAG_Int( TAG_Int(1)));
       variable[6] = variable[11] /*r=*/;
     }
-    ((partial_order___PartialOrderElement___register_direct_smallers_t)CALL( variable[10] /*poee*/,COLOR_partial_order___PartialOrderElement___register_direct_smallers))( variable[10] /*poee*/,  variable[2] /*e*/) /*PartialOrderElement::register_direct_smallers*/;
-    variable[11] = ((partial_order___PartialOrderElement___greaters_t)CALL( variable[10] /*poee*/,COLOR_partial_order___PartialOrderElement___greaters))( variable[10] /*poee*/) /*PartialOrderElement::greaters*/;
-    variable[11] = ((abstract_collection___Collection___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Collection::iterator*/;
+    CALL_partial_order___PartialOrderElement___register_direct_smallers( variable[10] /*poee*/)( variable[10] /*poee*/,  variable[2] /*e*/) /*PartialOrderElement::register_direct_smallers*/;
+    variable[11] = CALL_partial_order___PartialOrderElement___greaters( variable[10] /*poee*/)( variable[10] /*poee*/) /*PartialOrderElement::greaters*/;
+    variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Collection::iterator*/;
     while (true) { /*for*/
-      variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
+      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[12])) break; /*for*/
-      variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
+      variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
       variable[13] = variable[12];
-      ((abstract_collection___SimpleCollection___add_t)CALL( variable[5] /*g*/,COLOR_abstract_collection___SimpleCollection___add))( variable[5] /*g*/,  variable[13] /*eee*/) /*SimpleCollection::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[5] /*g*/)( variable[5] /*g*/,  variable[13] /*eee*/) /*SimpleCollection::add*/;
       continue_39: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
     }
     break_39: while(0);
     continue_38: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
   break_38: while(0);
   variable[7] = variable[0];
index 7234e90..60b1ca0 100644 (file)
@@ -9,55 +9,55 @@ extern const classtable_elt_t VFT_PartialOrder[];
 extern const classtable_elt_t VFT_PartialOrderElement[];
 extern const char *LOCATE_partial_order;
 extern const int SFT_partial_order[];
-#define ID_PartialOrder SFT_partial_order[0]
-#define COLOR_PartialOrder SFT_partial_order[1]
-#define COLOR_partial_order___PartialOrder____elements SFT_partial_order[2]
-#define COLOR_partial_order___PartialOrder____elements_list SFT_partial_order[3]
-#define COLOR_partial_order___PartialOrder____roots SFT_partial_order[4]
-#define INIT_TABLE_POS_PartialOrder SFT_partial_order[5]
-#define COLOR_partial_order___PartialOrder___roots SFT_partial_order[6]
-#define COLOR_partial_order___PartialOrder_____bra SFT_partial_order[7]
-#define COLOR_partial_order___PartialOrder___to_dot SFT_partial_order[8]
-#define COLOR_partial_order___PartialOrder___to_dot_header SFT_partial_order[9]
-#define COLOR_partial_order___PartialOrder___to_dot_node SFT_partial_order[10]
-#define COLOR_partial_order___PartialOrder___to_dot_edge SFT_partial_order[11]
-#define COLOR_partial_order___PartialOrder___select_smallests SFT_partial_order[12]
-#define COLOR_partial_order___PartialOrder___add SFT_partial_order[13]
-#define COLOR_partial_order___PartialOrder___has_all SFT_partial_order[14]
-#define COLOR_partial_order___PartialOrder___new_poe SFT_partial_order[15]
-#define COLOR_partial_order___PartialOrder___add_to_smallests SFT_partial_order[16]
-#define COLOR_partial_order___PartialOrder___compute_smallers_for SFT_partial_order[17]
-#define COLOR_partial_order___PartialOrder___init SFT_partial_order[18]
-#define ID_PartialOrderElement SFT_partial_order[19]
-#define COLOR_PartialOrderElement SFT_partial_order[20]
-#define COLOR_partial_order___PartialOrderElement____order SFT_partial_order[21]
-#define COLOR_partial_order___PartialOrderElement____value SFT_partial_order[22]
-#define COLOR_partial_order___PartialOrderElement____rank SFT_partial_order[23]
-#define COLOR_partial_order___PartialOrderElement____direct_greaters SFT_partial_order[24]
-#define COLOR_partial_order___PartialOrderElement____direct_smallers SFT_partial_order[25]
-#define COLOR_partial_order___PartialOrderElement____greaters SFT_partial_order[26]
-#define COLOR_partial_order___PartialOrderElement____greaters_and_self_cache SFT_partial_order[27]
-#define COLOR_partial_order___PartialOrderElement____smallers_last_length SFT_partial_order[28]
-#define COLOR_partial_order___PartialOrderElement____smallers_cache SFT_partial_order[29]
-#define COLOR_partial_order___PartialOrderElement____linear_extension_cache SFT_partial_order[30]
-#define COLOR_partial_order___PartialOrderElement____reverse_linear_extension_cache SFT_partial_order[31]
-#define INIT_TABLE_POS_PartialOrderElement SFT_partial_order[32]
-#define COLOR_partial_order___PartialOrderElement___order SFT_partial_order[33]
-#define COLOR_partial_order___PartialOrderElement___value SFT_partial_order[34]
-#define COLOR_partial_order___PartialOrderElement___rank SFT_partial_order[35]
-#define COLOR_partial_order___PartialOrderElement___direct_greaters SFT_partial_order[36]
-#define COLOR_partial_order___PartialOrderElement___direct_smallers SFT_partial_order[37]
-#define COLOR_partial_order___PartialOrderElement___greaters SFT_partial_order[38]
-#define COLOR_partial_order___PartialOrderElement___greaters_and_self SFT_partial_order[39]
-#define COLOR_partial_order___PartialOrderElement___smallers SFT_partial_order[40]
-#define COLOR_partial_order___PartialOrderElement___linear_extension SFT_partial_order[41]
-#define COLOR_partial_order___PartialOrderElement___reverse_linear_extension SFT_partial_order[42]
-#define COLOR_partial_order___PartialOrderElement_____l SFT_partial_order[43]
-#define COLOR_partial_order___PartialOrderElement_____leq SFT_partial_order[44]
-#define COLOR_partial_order___PartialOrderElement_____g SFT_partial_order[45]
-#define COLOR_partial_order___PartialOrderElement_____geq SFT_partial_order[46]
-#define COLOR_partial_order___PartialOrderElement___register_direct_smallers SFT_partial_order[47]
-#define COLOR_partial_order___PartialOrderElement___init SFT_partial_order[48]
+#define ID_PartialOrder (SFT_partial_order[0])
+#define COLOR_PartialOrder (SFT_partial_order[1])
+#define ATTR_partial_order___PartialOrder____elements(recv) ATTR(recv, (SFT_partial_order[2] + 0))
+#define ATTR_partial_order___PartialOrder____elements_list(recv) ATTR(recv, (SFT_partial_order[2] + 1))
+#define ATTR_partial_order___PartialOrder____roots(recv) ATTR(recv, (SFT_partial_order[2] + 2))
+#define INIT_TABLE_POS_PartialOrder (SFT_partial_order[3] + 0)
+#define CALL_partial_order___PartialOrder___roots(recv) ((partial_order___PartialOrder___roots_t)CALL((recv), (SFT_partial_order[3] + 1)))
+#define CALL_partial_order___PartialOrder_____bra(recv) ((partial_order___PartialOrder_____bra_t)CALL((recv), (SFT_partial_order[3] + 2)))
+#define CALL_partial_order___PartialOrder___to_dot(recv) ((partial_order___PartialOrder___to_dot_t)CALL((recv), (SFT_partial_order[3] + 3)))
+#define CALL_partial_order___PartialOrder___to_dot_header(recv) ((partial_order___PartialOrder___to_dot_header_t)CALL((recv), (SFT_partial_order[3] + 4)))
+#define CALL_partial_order___PartialOrder___to_dot_node(recv) ((partial_order___PartialOrder___to_dot_node_t)CALL((recv), (SFT_partial_order[3] + 5)))
+#define CALL_partial_order___PartialOrder___to_dot_edge(recv) ((partial_order___PartialOrder___to_dot_edge_t)CALL((recv), (SFT_partial_order[3] + 6)))
+#define CALL_partial_order___PartialOrder___select_smallests(recv) ((partial_order___PartialOrder___select_smallests_t)CALL((recv), (SFT_partial_order[3] + 7)))
+#define CALL_partial_order___PartialOrder___add(recv) ((partial_order___PartialOrder___add_t)CALL((recv), (SFT_partial_order[3] + 8)))
+#define CALL_partial_order___PartialOrder___has_all(recv) ((partial_order___PartialOrder___has_all_t)CALL((recv), (SFT_partial_order[3] + 9)))
+#define CALL_partial_order___PartialOrder___new_poe(recv) ((partial_order___PartialOrder___new_poe_t)CALL((recv), (SFT_partial_order[3] + 10)))
+#define CALL_partial_order___PartialOrder___add_to_smallests(recv) ((partial_order___PartialOrder___add_to_smallests_t)CALL((recv), (SFT_partial_order[3] + 11)))
+#define CALL_partial_order___PartialOrder___compute_smallers_for(recv) ((partial_order___PartialOrder___compute_smallers_for_t)CALL((recv), (SFT_partial_order[3] + 12)))
+#define CALL_partial_order___PartialOrder___init(recv) ((partial_order___PartialOrder___init_t)CALL((recv), (SFT_partial_order[3] + 13)))
+#define ID_PartialOrderElement (SFT_partial_order[4])
+#define COLOR_PartialOrderElement (SFT_partial_order[5])
+#define ATTR_partial_order___PartialOrderElement____order(recv) ATTR(recv, (SFT_partial_order[6] + 0))
+#define ATTR_partial_order___PartialOrderElement____value(recv) ATTR(recv, (SFT_partial_order[6] + 1))
+#define ATTR_partial_order___PartialOrderElement____rank(recv) ATTR(recv, (SFT_partial_order[6] + 2))
+#define ATTR_partial_order___PartialOrderElement____direct_greaters(recv) ATTR(recv, (SFT_partial_order[6] + 3))
+#define ATTR_partial_order___PartialOrderElement____direct_smallers(recv) ATTR(recv, (SFT_partial_order[6] + 4))
+#define ATTR_partial_order___PartialOrderElement____greaters(recv) ATTR(recv, (SFT_partial_order[6] + 5))
+#define ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(recv) ATTR(recv, (SFT_partial_order[6] + 6))
+#define ATTR_partial_order___PartialOrderElement____smallers_last_length(recv) ATTR(recv, (SFT_partial_order[6] + 7))
+#define ATTR_partial_order___PartialOrderElement____smallers_cache(recv) ATTR(recv, (SFT_partial_order[6] + 8))
+#define ATTR_partial_order___PartialOrderElement____linear_extension_cache(recv) ATTR(recv, (SFT_partial_order[6] + 9))
+#define ATTR_partial_order___PartialOrderElement____reverse_linear_extension_cache(recv) ATTR(recv, (SFT_partial_order[6] + 10))
+#define INIT_TABLE_POS_PartialOrderElement (SFT_partial_order[7] + 0)
+#define CALL_partial_order___PartialOrderElement___order(recv) ((partial_order___PartialOrderElement___order_t)CALL((recv), (SFT_partial_order[7] + 1)))
+#define CALL_partial_order___PartialOrderElement___value(recv) ((partial_order___PartialOrderElement___value_t)CALL((recv), (SFT_partial_order[7] + 2)))
+#define CALL_partial_order___PartialOrderElement___rank(recv) ((partial_order___PartialOrderElement___rank_t)CALL((recv), (SFT_partial_order[7] + 3)))
+#define CALL_partial_order___PartialOrderElement___direct_greaters(recv) ((partial_order___PartialOrderElement___direct_greaters_t)CALL((recv), (SFT_partial_order[7] + 4)))
+#define CALL_partial_order___PartialOrderElement___direct_smallers(recv) ((partial_order___PartialOrderElement___direct_smallers_t)CALL((recv), (SFT_partial_order[7] + 5)))
+#define CALL_partial_order___PartialOrderElement___greaters(recv) ((partial_order___PartialOrderElement___greaters_t)CALL((recv), (SFT_partial_order[7] + 6)))
+#define CALL_partial_order___PartialOrderElement___greaters_and_self(recv) ((partial_order___PartialOrderElement___greaters_and_self_t)CALL((recv), (SFT_partial_order[7] + 7)))
+#define CALL_partial_order___PartialOrderElement___smallers(recv) ((partial_order___PartialOrderElement___smallers_t)CALL((recv), (SFT_partial_order[7] + 8)))
+#define CALL_partial_order___PartialOrderElement___linear_extension(recv) ((partial_order___PartialOrderElement___linear_extension_t)CALL((recv), (SFT_partial_order[7] + 9)))
+#define CALL_partial_order___PartialOrderElement___reverse_linear_extension(recv) ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL((recv), (SFT_partial_order[7] + 10)))
+#define CALL_partial_order___PartialOrderElement_____l(recv) ((partial_order___PartialOrderElement_____l_t)CALL((recv), (SFT_partial_order[7] + 11)))
+#define CALL_partial_order___PartialOrderElement_____leq(recv) ((partial_order___PartialOrderElement_____leq_t)CALL((recv), (SFT_partial_order[7] + 12)))
+#define CALL_partial_order___PartialOrderElement_____g(recv) ((partial_order___PartialOrderElement_____g_t)CALL((recv), (SFT_partial_order[7] + 13)))
+#define CALL_partial_order___PartialOrderElement_____geq(recv) ((partial_order___PartialOrderElement_____geq_t)CALL((recv), (SFT_partial_order[7] + 14)))
+#define CALL_partial_order___PartialOrderElement___register_direct_smallers(recv) ((partial_order___PartialOrderElement___register_direct_smallers_t)CALL((recv), (SFT_partial_order[7] + 15)))
+#define CALL_partial_order___PartialOrderElement___init(recv) ((partial_order___PartialOrderElement___init_t)CALL((recv), (SFT_partial_order[7] + 16)))
 typedef val_t (* partial_order___PartialOrder___iterator_t)(val_t  self);
 val_t partial_order___PartialOrder___iterator(val_t  self);
 #define LOCATE_partial_order___PartialOrder___iterator "partial_order::PartialOrder::(abstract_collection::Collection::iterator)"
@@ -79,9 +79,6 @@ val_t partial_order___PartialOrder___count(val_t  self, val_t  param0);
 typedef val_t (* partial_order___PartialOrder___first_t)(val_t  self);
 val_t partial_order___PartialOrder___first(val_t  self);
 #define LOCATE_partial_order___PartialOrder___first "partial_order::PartialOrder::(abstract_collection::Collection::first)"
-#define ATTR_partial_order___PartialOrder____elements(recv) ATTR(recv, COLOR_partial_order___PartialOrder____elements)
-#define ATTR_partial_order___PartialOrder____elements_list(recv) ATTR(recv, COLOR_partial_order___PartialOrder____elements_list)
-#define ATTR_partial_order___PartialOrder____roots(recv) ATTR(recv, COLOR_partial_order___PartialOrder____roots)
 typedef val_t (* partial_order___PartialOrder___roots_t)(val_t  self);
 val_t partial_order___PartialOrder___roots(val_t  self);
 #define LOCATE_partial_order___PartialOrder___roots "partial_order::PartialOrder::roots"
@@ -122,44 +119,33 @@ typedef void (* partial_order___PartialOrder___init_t)(val_t  self, int* init_ta
 void partial_order___PartialOrder___init(val_t  self, int* init_table);
 #define LOCATE_partial_order___PartialOrder___init "partial_order::PartialOrder::init"
 val_t NEW_PartialOrder_partial_order___PartialOrder___init();
-#define ATTR_partial_order___PartialOrderElement____order(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____order)
 typedef val_t (* partial_order___PartialOrderElement___order_t)(val_t  self);
 val_t partial_order___PartialOrderElement___order(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___order "partial_order::PartialOrderElement::order"
-#define ATTR_partial_order___PartialOrderElement____value(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____value)
 typedef val_t (* partial_order___PartialOrderElement___value_t)(val_t  self);
 val_t partial_order___PartialOrderElement___value(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___value "partial_order::PartialOrderElement::value"
-#define ATTR_partial_order___PartialOrderElement____rank(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____rank)
 typedef val_t (* partial_order___PartialOrderElement___rank_t)(val_t  self);
 val_t partial_order___PartialOrderElement___rank(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___rank "partial_order::PartialOrderElement::rank"
-#define ATTR_partial_order___PartialOrderElement____direct_greaters(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____direct_greaters)
 typedef val_t (* partial_order___PartialOrderElement___direct_greaters_t)(val_t  self);
 val_t partial_order___PartialOrderElement___direct_greaters(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___direct_greaters "partial_order::PartialOrderElement::direct_greaters"
-#define ATTR_partial_order___PartialOrderElement____direct_smallers(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____direct_smallers)
 typedef val_t (* partial_order___PartialOrderElement___direct_smallers_t)(val_t  self);
 val_t partial_order___PartialOrderElement___direct_smallers(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___direct_smallers "partial_order::PartialOrderElement::direct_smallers"
-#define ATTR_partial_order___PartialOrderElement____greaters(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____greaters)
 typedef val_t (* partial_order___PartialOrderElement___greaters_t)(val_t  self);
 val_t partial_order___PartialOrderElement___greaters(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___greaters "partial_order::PartialOrderElement::greaters"
-#define ATTR_partial_order___PartialOrderElement____greaters_and_self_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____greaters_and_self_cache)
 typedef val_t (* partial_order___PartialOrderElement___greaters_and_self_t)(val_t  self);
 val_t partial_order___PartialOrderElement___greaters_and_self(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___greaters_and_self "partial_order::PartialOrderElement::greaters_and_self"
-#define ATTR_partial_order___PartialOrderElement____smallers_last_length(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____smallers_last_length)
-#define ATTR_partial_order___PartialOrderElement____smallers_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____smallers_cache)
 typedef val_t (* partial_order___PartialOrderElement___smallers_t)(val_t  self);
 val_t partial_order___PartialOrderElement___smallers(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___smallers "partial_order::PartialOrderElement::smallers"
-#define ATTR_partial_order___PartialOrderElement____linear_extension_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____linear_extension_cache)
 typedef val_t (* partial_order___PartialOrderElement___linear_extension_t)(val_t  self);
 val_t partial_order___PartialOrderElement___linear_extension(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___linear_extension "partial_order::PartialOrderElement::linear_extension"
-#define ATTR_partial_order___PartialOrderElement____reverse_linear_extension_cache(recv) ATTR(recv, COLOR_partial_order___PartialOrderElement____reverse_linear_extension_cache)
 typedef val_t (* partial_order___PartialOrderElement___reverse_linear_extension_t)(val_t  self);
 val_t partial_order___PartialOrderElement___reverse_linear_extension(val_t  self);
 #define LOCATE_partial_order___PartialOrderElement___reverse_linear_extension "partial_order::PartialOrderElement::reverse_linear_extension"
index ee144c2..ae81c62 100644 (file)
@@ -27,7 +27,7 @@ val_t range___Range___is_empty(val_t  self) {
   variable[2] = ATTR_range___Range____first(variable[2]) /*Range::_first*/;
   variable[3] = variable[0];
   variable[3] = ATTR_range___Range____after(variable[3]) /*Range::_after*/;
-  variable[2] = ((kernel___Comparable_____geq_t)CALL(variable[2],COLOR_kernel___Comparable_____geq))(variable[2], variable[3]) /*Comparable::>=*/;
+  variable[2] = CALL_kernel___Comparable_____geq(variable[2])(variable[2], variable[3]) /*Comparable::>=*/;
   variable[1] = variable[2];
   goto return_label1;
   return_label1: while(false);
@@ -45,7 +45,7 @@ val_t range___Range___length(val_t  self) {
   variable[3] = ATTR_range___Range____first(variable[3]) /*Range::_first*/;
   variable[4] = variable[0];
   variable[4] = ATTR_range___Range____after(variable[4]) /*Range::_after*/;
-  variable[3] = ((kernel___Discrete___distance_t)CALL(variable[3],COLOR_kernel___Discrete___distance))(variable[3], variable[4]) /*Discrete::distance*/;
+  variable[3] = CALL_kernel___Discrete___distance(variable[3])(variable[3], variable[4]) /*Discrete::distance*/;
   variable[2] = variable[3];
   variable[3] = TAG_Bool(UNTAG_Int( variable[2] /*nb*/)>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[3])) { /*if*/
@@ -69,12 +69,12 @@ val_t range___Range___has(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_range___Range____first(variable[3]) /*Range::_first*/;
-  variable[3] = ((kernel___Comparable_____geq_t)CALL( variable[1] /*item*/,COLOR_kernel___Comparable_____geq))( variable[1] /*item*/, variable[3]) /*Comparable::>=*/;
+  variable[3] = CALL_kernel___Comparable_____geq( variable[1] /*item*/)( variable[1] /*item*/, variable[3]) /*Comparable::>=*/;
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
     variable[4] = ATTR_range___Range____last(variable[4]) /*Range::_last*/;
-    variable[4] = ((kernel___Comparable_____leq_t)CALL( variable[1] /*item*/,COLOR_kernel___Comparable_____leq))( variable[1] /*item*/, variable[4]) /*Comparable::<=*/;
+    variable[4] = CALL_kernel___Comparable_____leq( variable[1] /*item*/)( variable[1] /*item*/, variable[4]) /*Comparable::<=*/;
   }
   variable[3] = variable[4];
   variable[2] = variable[3];
@@ -93,12 +93,12 @@ val_t range___Range___has_only(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_range___Range____first(variable[3]) /*Range::_first*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*item*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*item*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*item*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*item*/) /*Object::==*/)))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
     variable[4] = ATTR_range___Range____last(variable[4]) /*Range::_last*/;
-    variable[4] = TAG_Bool(( variable[1] /*item*/ == variable[4]) || (( variable[1] /*item*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*item*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*item*/,variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*item*/,COLOR_kernel___Object_____eqeq))( variable[1] /*item*/, variable[4]) /*Object::==*/)))));
+    variable[4] = TAG_Bool(( variable[1] /*item*/ == variable[4]) || (( variable[1] /*item*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*item*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*item*/,variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*item*/)( variable[1] /*item*/, variable[4]) /*Object::==*/)))));
   }
   variable[3] = variable[4];
   variable[2] = variable[3];
@@ -116,7 +116,7 @@ val_t range___Range___count(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((range___Range___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3],  variable[1] /*item*/) /*Range::has*/;
+  variable[3] = CALL_abstract_collection___Collection___has(variable[3])(variable[3],  variable[1] /*item*/) /*Range::has*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  TAG_Int(1);
     goto return_label5;
@@ -170,7 +170,7 @@ void range___Range___init(val_t  self, val_t  param0, val_t  param1, int* init_t
   variable[4] = variable[0];
   ATTR_range___Range____last(variable[4]) /*Range::_last*/ =  variable[2] /*to*/;
   variable[4] = variable[0];
-  variable[5] = ((kernel___Discrete___succ_t)CALL( variable[2] /*to*/,COLOR_kernel___Discrete___succ))( variable[2] /*to*/) /*Discrete::succ*/;
+  variable[5] = CALL_kernel___Discrete___succ( variable[2] /*to*/)( variable[2] /*to*/) /*Discrete::succ*/;
   ATTR_range___Range____after(variable[4]) /*Range::_after*/ = variable[5];
   return_label6: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Range].i] = 1;
@@ -190,7 +190,7 @@ void range___Range___without_last(val_t  self, val_t  param0, val_t  param1, int
   variable[4] = variable[0];
   ATTR_range___Range____first(variable[4]) /*Range::_first*/ =  variable[1] /*from*/;
   variable[4] = variable[0];
-  variable[5] = ((kernel___Discrete___prec_t)CALL( variable[2] /*to*/,COLOR_kernel___Discrete___prec))( variable[2] /*to*/) /*Discrete::prec*/;
+  variable[5] = CALL_kernel___Discrete___prec( variable[2] /*to*/)( variable[2] /*to*/) /*Discrete::prec*/;
   ATTR_range___Range____last(variable[4]) /*Range::_last*/ = variable[5];
   variable[4] = variable[0];
   ATTR_range___Range____after(variable[4]) /*Range::_after*/ =  variable[2] /*to*/;
@@ -218,7 +218,7 @@ void range___IteratorRange___next(val_t  self) {
   variable[2] = variable[0];
   variable[3] = variable[0];
   variable[3] = ATTR_range___IteratorRange____item(variable[3]) /*IteratorRange::_item*/;
-  variable[3] = ((kernel___Discrete___succ_t)CALL(variable[3],COLOR_kernel___Discrete___succ))(variable[3]) /*Discrete::succ*/;
+  variable[3] = CALL_kernel___Discrete___succ(variable[3])(variable[3]) /*Discrete::succ*/;
   ATTR_range___IteratorRange____item(variable[2]) /*IteratorRange::_item*/ = variable[3];
   return_label8: while(false);
   tracehead = trace.prev;
@@ -235,8 +235,8 @@ val_t range___IteratorRange___is_ok(val_t  self) {
   variable[2] = ATTR_range___IteratorRange____item(variable[2]) /*IteratorRange::_item*/;
   variable[3] = variable[0];
   variable[3] = ATTR_range___IteratorRange____range(variable[3]) /*IteratorRange::_range*/;
-  variable[3] = ((range___Range___after_t)CALL(variable[3],COLOR_range___Range___after))(variable[3]) /*Range::after*/;
-  variable[2] = ((kernel___Comparable_____l_t)CALL(variable[2],COLOR_kernel___Comparable_____l))(variable[2], variable[3]) /*Comparable::<*/;
+  variable[3] = CALL_range___Range___after(variable[3])(variable[3]) /*Range::after*/;
+  variable[2] = CALL_kernel___Comparable_____l(variable[2])(variable[2], variable[3]) /*Comparable::<*/;
   variable[1] = variable[2];
   goto return_label9;
   return_label9: while(false);
@@ -255,7 +255,7 @@ void range___IteratorRange___init(val_t  self, val_t  param0, int* init_table) {
   variable[3] = variable[0];
   ATTR_range___IteratorRange____range(variable[3]) /*IteratorRange::_range*/ =  variable[1] /*r*/;
   variable[3] = variable[0];
-  variable[4] = ((range___Range___first_t)CALL( variable[1] /*r*/,COLOR_abstract_collection___Collection___first))( variable[1] /*r*/) /*Range::first*/;
+  variable[4] = CALL_abstract_collection___Collection___first( variable[1] /*r*/)( variable[1] /*r*/) /*Range::first*/;
   ATTR_range___IteratorRange____item(variable[3]) /*IteratorRange::_item*/ = variable[4];
   return_label10: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_IteratorRange].i] = 1;
index fa49b84..c549ff6 100644 (file)
@@ -9,22 +9,22 @@ extern const classtable_elt_t VFT_Range[];
 extern const classtable_elt_t VFT_IteratorRange[];
 extern const char *LOCATE_range;
 extern const int SFT_range[];
-#define ID_Range SFT_range[0]
-#define COLOR_Range SFT_range[1]
-#define COLOR_range___Range____first SFT_range[2]
-#define COLOR_range___Range____last SFT_range[3]
-#define COLOR_range___Range____after SFT_range[4]
-#define INIT_TABLE_POS_Range SFT_range[5]
-#define COLOR_range___Range___last SFT_range[6]
-#define COLOR_range___Range___after SFT_range[7]
-#define COLOR_range___Range___init SFT_range[8]
-#define COLOR_range___Range___without_last SFT_range[9]
-#define ID_IteratorRange SFT_range[10]
-#define COLOR_IteratorRange SFT_range[11]
-#define COLOR_range___IteratorRange____range SFT_range[12]
-#define COLOR_range___IteratorRange____item SFT_range[13]
-#define INIT_TABLE_POS_IteratorRange SFT_range[14]
-#define COLOR_range___IteratorRange___init SFT_range[15]
+#define ID_Range (SFT_range[0])
+#define COLOR_Range (SFT_range[1])
+#define ATTR_range___Range____first(recv) ATTR(recv, (SFT_range[2] + 0))
+#define ATTR_range___Range____last(recv) ATTR(recv, (SFT_range[2] + 1))
+#define ATTR_range___Range____after(recv) ATTR(recv, (SFT_range[2] + 2))
+#define INIT_TABLE_POS_Range (SFT_range[3] + 0)
+#define CALL_range___Range___last(recv) ((range___Range___last_t)CALL((recv), (SFT_range[3] + 1)))
+#define CALL_range___Range___after(recv) ((range___Range___after_t)CALL((recv), (SFT_range[3] + 2)))
+#define CALL_range___Range___init(recv) ((range___Range___init_t)CALL((recv), (SFT_range[3] + 3)))
+#define CALL_range___Range___without_last(recv) ((range___Range___without_last_t)CALL((recv), (SFT_range[3] + 4)))
+#define ID_IteratorRange (SFT_range[4])
+#define COLOR_IteratorRange (SFT_range[5])
+#define ATTR_range___IteratorRange____range(recv) ATTR(recv, (SFT_range[6] + 0))
+#define ATTR_range___IteratorRange____item(recv) ATTR(recv, (SFT_range[6] + 1))
+#define INIT_TABLE_POS_IteratorRange (SFT_range[7] + 0)
+#define CALL_range___IteratorRange___init(recv) ((range___IteratorRange___init_t)CALL((recv), (SFT_range[7] + 1)))
 typedef val_t (* range___Range___iterator_t)(val_t  self);
 val_t range___Range___iterator(val_t  self);
 #define LOCATE_range___Range___iterator "range::Range::(abstract_collection::Collection::iterator)"
@@ -46,12 +46,9 @@ val_t range___Range___count(val_t  self, val_t  param0);
 typedef val_t (* range___Range___first_t)(val_t  self);
 val_t range___Range___first(val_t  self);
 #define LOCATE_range___Range___first "range::Range::(abstract_collection::Collection::first)"
-#define ATTR_range___Range____first(recv) ATTR(recv, COLOR_range___Range____first)
-#define ATTR_range___Range____last(recv) ATTR(recv, COLOR_range___Range____last)
 typedef val_t (* range___Range___last_t)(val_t  self);
 val_t range___Range___last(val_t  self);
 #define LOCATE_range___Range___last "range::Range::last"
-#define ATTR_range___Range____after(recv) ATTR(recv, COLOR_range___Range____after)
 typedef val_t (* range___Range___after_t)(val_t  self);
 val_t range___Range___after(val_t  self);
 #define LOCATE_range___Range___after "range::Range::after"
@@ -72,8 +69,6 @@ void range___IteratorRange___next(val_t  self);
 typedef val_t (* range___IteratorRange___is_ok_t)(val_t  self);
 val_t range___IteratorRange___is_ok(val_t  self);
 #define LOCATE_range___IteratorRange___is_ok "range::IteratorRange::(abstract_collection::Iterator::is_ok)"
-#define ATTR_range___IteratorRange____range(recv) ATTR(recv, COLOR_range___IteratorRange____range)
-#define ATTR_range___IteratorRange____item(recv) ATTR(recv, COLOR_range___IteratorRange____item)
 typedef void (* range___IteratorRange___init_t)(val_t  self, val_t  param0, int* init_table);
 void range___IteratorRange___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_range___IteratorRange___init "range::IteratorRange::init"
index da120cc..6184777 100644 (file)
@@ -21,9 +21,9 @@ void sorter___AbstractSorter___sort(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*array*/,COLOR_abstract_collection___Collection___length))( variable[1] /*array*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*array*/)( variable[1] /*array*/) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
-  ((sorter___AbstractSorter___sub_sort_t)CALL(variable[3],COLOR_sorter___AbstractSorter___sub_sort))(variable[3],  variable[1] /*array*/,  TAG_Int(0), variable[4]) /*AbstractSorter::sub_sort*/;
+  CALL_sorter___AbstractSorter___sub_sort(variable[3])(variable[3],  variable[1] /*array*/,  TAG_Int(0), variable[4]) /*AbstractSorter::sub_sort*/;
   return_label0: while(false);
   tracehead = trace.prev;
   return;
@@ -46,10 +46,10 @@ void sorter___AbstractSorter___sub_sort(val_t  self, val_t  param0, val_t  param
     variable[5] = TAG_Bool(UNTAG_Int(variable[5])<UNTAG_Int( variable[3] /*to*/));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = variable[0];
-      ((sorter___AbstractSorter___quick_sort_t)CALL(variable[5],COLOR_sorter___AbstractSorter___quick_sort))(variable[5],  variable[1] /*array*/,  variable[2] /*from*/,  variable[3] /*to*/) /*AbstractSorter::quick_sort*/;
+      CALL_sorter___AbstractSorter___quick_sort(variable[5])(variable[5],  variable[1] /*array*/,  variable[2] /*from*/,  variable[3] /*to*/) /*AbstractSorter::quick_sort*/;
     } else { /*if*/
       variable[5] = variable[0];
-      ((sorter___AbstractSorter___bubble_sort_t)CALL(variable[5],COLOR_sorter___AbstractSorter___bubble_sort))(variable[5],  variable[1] /*array*/,  variable[2] /*from*/,  variable[3] /*to*/) /*AbstractSorter::bubble_sort*/;
+      CALL_sorter___AbstractSorter___bubble_sort(variable[5])(variable[5],  variable[1] /*array*/,  variable[2] /*from*/,  variable[3] /*to*/) /*AbstractSorter::bubble_sort*/;
     }
   }
   return_label1: while(false);
@@ -113,7 +113,7 @@ void sorter___AbstractSorter___quick_sort(val_t  self, val_t  param0, val_t  par
         goto return_label6;
         return_label6: while(false);
         variable[10] = variable[12];
-        variable[9] = ((sorter___AbstractSorter___compare_t)CALL(variable[9],COLOR_sorter___AbstractSorter___compare))(variable[9], variable[10],  variable[5] /*pivot*/) /*AbstractSorter::compare*/;
+        variable[9] = CALL_sorter___AbstractSorter___compare(variable[9])(variable[9], variable[10],  variable[5] /*pivot*/) /*AbstractSorter::compare*/;
         variable[9] = TAG_Bool(UNTAG_Int(variable[9])<=UNTAG_Int( TAG_Int(0)));
       }
       variable[8] = variable[9];
@@ -145,7 +145,7 @@ void sorter___AbstractSorter___quick_sort(val_t  self, val_t  param0, val_t  par
         goto return_label8;
         return_label8: while(false);
         variable[10] = variable[12];
-        variable[9] = ((sorter___AbstractSorter___compare_t)CALL(variable[9],COLOR_sorter___AbstractSorter___compare))(variable[9], variable[10],  variable[5] /*pivot*/) /*AbstractSorter::compare*/;
+        variable[9] = CALL_sorter___AbstractSorter___compare(variable[9])(variable[9], variable[10],  variable[5] /*pivot*/) /*AbstractSorter::compare*/;
         variable[9] = TAG_Bool(UNTAG_Int(variable[9])>=UNTAG_Int( TAG_Int(0)));
       }
       variable[8] = variable[9];
@@ -193,8 +193,8 @@ void sorter___AbstractSorter___quick_sort(val_t  self, val_t  param0, val_t  par
       goto return_label10;
       return_label10: while(false);
       variable[9] = variable[11];
-      ((array___Array_____braeq_t)CALL( variable[1] /*array*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*array*/,  variable[6] /*i*/, variable[9]) /*Array::[]=*/;
-      ((array___Array_____braeq_t)CALL( variable[1] /*array*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*array*/,  variable[7] /*j*/,  variable[8] /*t*/) /*Array::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/,  variable[6] /*i*/, variable[9]) /*Array::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/,  variable[7] /*j*/,  variable[8] /*t*/) /*Array::[]=*/;
     }
     continue_4: while(0);
   }
@@ -218,14 +218,14 @@ void sorter___AbstractSorter___quick_sort(val_t  self, val_t  param0, val_t  par
   goto return_label11;
   return_label11: while(false);
   variable[8] = variable[11];
-  ((array___Array_____braeq_t)CALL( variable[1] /*array*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*array*/,  variable[2] /*from*/, variable[8]) /*Array::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/,  variable[2] /*from*/, variable[8]) /*Array::[]=*/;
   variable[8] = TAG_Int(UNTAG_Int( variable[6] /*i*/)-UNTAG_Int( TAG_Int(1)));
-  ((array___Array_____braeq_t)CALL( variable[1] /*array*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*array*/, variable[8],  variable[5] /*pivot*/) /*Array::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/, variable[8],  variable[5] /*pivot*/) /*Array::[]=*/;
   variable[8] = variable[0];
   variable[9] = TAG_Int(UNTAG_Int( variable[6] /*i*/)-UNTAG_Int( TAG_Int(2)));
-  ((sorter___AbstractSorter___sub_sort_t)CALL(variable[8],COLOR_sorter___AbstractSorter___sub_sort))(variable[8],  variable[1] /*array*/,  variable[2] /*from*/, variable[9]) /*AbstractSorter::sub_sort*/;
+  CALL_sorter___AbstractSorter___sub_sort(variable[8])(variable[8],  variable[1] /*array*/,  variable[2] /*from*/, variable[9]) /*AbstractSorter::sub_sort*/;
   variable[8] = variable[0];
-  ((sorter___AbstractSorter___sub_sort_t)CALL(variable[8],COLOR_sorter___AbstractSorter___sub_sort))(variable[8],  variable[1] /*array*/,  variable[6] /*i*/,  variable[3] /*to*/) /*AbstractSorter::sub_sort*/;
+  CALL_sorter___AbstractSorter___sub_sort(variable[8])(variable[8],  variable[1] /*array*/,  variable[6] /*i*/,  variable[3] /*to*/) /*AbstractSorter::sub_sort*/;
   return_label2: while(false);
   tracehead = trace.prev;
   return;
@@ -287,7 +287,7 @@ void sorter___AbstractSorter___bubble_sort(val_t  self, val_t  param0, val_t  pa
       goto return_label16;
       return_label16: while(false);
       variable[10] = variable[12];
-      variable[9] = ((sorter___AbstractSorter___compare_t)CALL(variable[9],COLOR_sorter___AbstractSorter___compare))(variable[9],  variable[7] /*min_v*/, variable[10]) /*AbstractSorter::compare*/;
+      variable[9] = CALL_sorter___AbstractSorter___compare(variable[9])(variable[9],  variable[7] /*min_v*/, variable[10]) /*AbstractSorter::compare*/;
       variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0)));
       if (UNTAG_Bool(variable[9])) { /*if*/
         variable[6] =  variable[8] /*j*/ /*min=*/;
@@ -335,8 +335,8 @@ void sorter___AbstractSorter___bubble_sort(val_t  self, val_t  param0, val_t  pa
       goto return_label18;
       return_label18: while(false);
       variable[9] = variable[11];
-      ((array___Array_____braeq_t)CALL( variable[1] /*array*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*array*/,  variable[6] /*min*/, variable[9]) /*Array::[]=*/;
-      ((array___Array_____braeq_t)CALL( variable[1] /*array*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*array*/,  variable[5] /*i*/,  variable[7] /*min_v*/) /*Array::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/,  variable[6] /*min*/, variable[9]) /*Array::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/,  variable[5] /*i*/,  variable[7] /*min_v*/) /*Array::[]=*/;
     }
     variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_13: while(0);
@@ -364,7 +364,7 @@ val_t sorter___ComparableSorter___compare(val_t  self, val_t  param0, val_t  par
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = ((kernel___Comparable_____leqg_t)CALL( variable[1] /*a*/,COLOR_kernel___Comparable_____leqg))( variable[1] /*a*/,  variable[2] /*b*/) /*Comparable::<=>*/;
+  variable[4] = CALL_kernel___Comparable_____leqg( variable[1] /*a*/)( variable[1] /*a*/,  variable[2] /*b*/) /*Comparable::<=>*/;
   variable[3] = variable[4];
   goto return_label19;
   return_label19: while(false);
index e6a73ae..eb71f05 100644 (file)
@@ -9,19 +9,19 @@ extern const classtable_elt_t VFT_AbstractSorter[];
 extern const classtable_elt_t VFT_ComparableSorter[];
 extern const char *LOCATE_sorter;
 extern const int SFT_sorter[];
-#define ID_AbstractSorter SFT_sorter[0]
-#define COLOR_AbstractSorter SFT_sorter[1]
-#define INIT_TABLE_POS_AbstractSorter SFT_sorter[2]
-#define COLOR_sorter___AbstractSorter___compare SFT_sorter[3]
-#define COLOR_sorter___AbstractSorter___sort SFT_sorter[4]
-#define COLOR_sorter___AbstractSorter___sub_sort SFT_sorter[5]
-#define COLOR_sorter___AbstractSorter___quick_sort SFT_sorter[6]
-#define COLOR_sorter___AbstractSorter___bubble_sort SFT_sorter[7]
-#define COLOR_sorter___AbstractSorter___init SFT_sorter[8]
-#define ID_ComparableSorter SFT_sorter[9]
-#define COLOR_ComparableSorter SFT_sorter[10]
-#define INIT_TABLE_POS_ComparableSorter SFT_sorter[11]
-#define COLOR_sorter___ComparableSorter___init SFT_sorter[12]
+#define ID_AbstractSorter (SFT_sorter[0])
+#define COLOR_AbstractSorter (SFT_sorter[1])
+#define INIT_TABLE_POS_AbstractSorter (SFT_sorter[2] + 0)
+#define CALL_sorter___AbstractSorter___compare(recv) ((sorter___AbstractSorter___compare_t)CALL((recv), (SFT_sorter[2] + 1)))
+#define CALL_sorter___AbstractSorter___sort(recv) ((sorter___AbstractSorter___sort_t)CALL((recv), (SFT_sorter[2] + 2)))
+#define CALL_sorter___AbstractSorter___sub_sort(recv) ((sorter___AbstractSorter___sub_sort_t)CALL((recv), (SFT_sorter[2] + 3)))
+#define CALL_sorter___AbstractSorter___quick_sort(recv) ((sorter___AbstractSorter___quick_sort_t)CALL((recv), (SFT_sorter[2] + 4)))
+#define CALL_sorter___AbstractSorter___bubble_sort(recv) ((sorter___AbstractSorter___bubble_sort_t)CALL((recv), (SFT_sorter[2] + 5)))
+#define CALL_sorter___AbstractSorter___init(recv) ((sorter___AbstractSorter___init_t)CALL((recv), (SFT_sorter[2] + 6)))
+#define ID_ComparableSorter (SFT_sorter[3])
+#define COLOR_ComparableSorter (SFT_sorter[4])
+#define INIT_TABLE_POS_ComparableSorter (SFT_sorter[5] + 0)
+#define CALL_sorter___ComparableSorter___init(recv) ((sorter___ComparableSorter___init_t)CALL((recv), (SFT_sorter[5] + 1)))
 typedef val_t (* sorter___AbstractSorter___compare_t)(val_t  self, val_t  param0, val_t  param1);
 val_t sorter___AbstractSorter___compare(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_sorter___AbstractSorter___compare "sorter::AbstractSorter::compare"
index 82c67bf..4d5308a 100644 (file)
@@ -9,7 +9,7 @@ val_t static_type___MMLocalClass___get_type(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_static_type___MMLocalClass____base_type_cache(variable[2]) /*MMLocalClass::_base_type_cache*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
     variable[3] = variable[0];
@@ -35,17 +35,17 @@ void static_type___MMLocalClass___add_ancestor(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/;
-  variable[4] = ((static_type___MMAncestor___local_class_t)CALL( variable[1] /*a*/,COLOR_static_type___MMAncestor___local_class))( variable[1] /*a*/) /*MMAncestor::local_class*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3], variable[4]) /*Map::has_key*/;
+  variable[4] = CALL_static_type___MMAncestor___local_class( variable[1] /*a*/)( variable[1] /*a*/) /*MMAncestor::local_class*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3], variable[4]) /*Map::has_key*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMLocalClass___add_ancestor, LOCATE_static_type, 37); nit_exit(1);}
-  variable[3] = ((static_type___MMAncestor___local_class_t)CALL( variable[1] /*a*/,COLOR_static_type___MMAncestor___local_class))( variable[1] /*a*/) /*MMAncestor::local_class*/;
+  variable[3] = CALL_static_type___MMAncestor___local_class( variable[1] /*a*/)( variable[1] /*a*/) /*MMAncestor::local_class*/;
   variable[4] = variable[0];
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[4]) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMLocalClass___add_ancestor, LOCATE_static_type, 38); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/;
-  variable[4] = ((static_type___MMAncestor___local_class_t)CALL( variable[1] /*a*/,COLOR_static_type___MMAncestor___local_class))( variable[1] /*a*/) /*MMAncestor::local_class*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[1] /*a*/) /*Map::[]=*/;
+  variable[4] = CALL_static_type___MMAncestor___local_class( variable[1] /*a*/)( variable[1] /*a*/) /*MMAncestor::local_class*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[1] /*a*/) /*Map::[]=*/;
   return_label1: while(false);
   tracehead = trace.prev;
   return;
@@ -69,16 +69,16 @@ val_t static_type___MMLocalClass___ancestor(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMLocalClass___ancestor, LOCATE_static_type, 48); nit_exit(1);}
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*c*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*c*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_static_type___MMLocalClass____ancestors(variable[3]) /*MMLocalClass::_ancestors*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*c*/) /*Map::[]*/;
-    variable[3] = ((static_type___MMAncestor___stype_t)CALL(variable[3],COLOR_static_type___MMAncestor___stype))(variable[3]) /*MMAncestor::stype*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*c*/) /*Map::[]*/;
+    variable[3] = CALL_static_type___MMAncestor___stype(variable[3])(variable[3]) /*MMAncestor::stype*/;
     variable[2] = variable[3];
     goto return_label2;
   }
@@ -116,32 +116,32 @@ val_t static_type___MMLocalProperty___signature_for(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[3]) /*MMLocalProperty::local_class*/;
-  variable[3] = ((static_type___MMLocalClass___get_type_t)CALL(variable[3],COLOR_static_type___MMLocalClass___get_type))(variable[3]) /*MMLocalClass::get_type*/;
-  variable[3] = TAG_Bool(( variable[1] /*t*/ == variable[3]) || (( variable[1] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/,variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))( variable[1] /*t*/, variable[3]) /*Object::==*/)))));
+  variable[3] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[3])(variable[3]) /*MMLocalProperty::local_class*/;
+  variable[3] = CALL_static_type___MMLocalClass___get_type(variable[3])(variable[3]) /*MMLocalClass::get_type*/;
+  variable[3] = TAG_Bool(( variable[1] /*t*/ == variable[3]) || (( variable[1] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/,variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*t*/)( variable[1] /*t*/, variable[3]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((static_type___MMLocalProperty___signature_t)CALL(variable[3],COLOR_static_type___MMLocalProperty___signature))(variable[3]) /*MMLocalProperty::signature*/;
+    variable[3] = CALL_static_type___MMLocalProperty___signature(variable[3])(variable[3]) /*MMLocalProperty::signature*/;
     variable[2] = variable[3];
     goto return_label3;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMLocalProperty____signatures_cache(variable[3]) /*MMLocalProperty::_signatures_cache*/;
-  variable[3] = ((abstract_collection___CoupleMap___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*t*/) /*CoupleMap::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*t*/) /*CoupleMap::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_static_type___MMLocalProperty____signatures_cache(variable[3]) /*MMLocalProperty::_signatures_cache*/;
-    variable[3] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*t*/) /*CoupleMap::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*t*/) /*CoupleMap::[]*/;
     variable[2] = variable[3];
     goto return_label3;
   }
   variable[4] = variable[0];
-  variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
-  variable[4] = ((static_type___MMSignature___adaptation_to_t)CALL(variable[4],COLOR_static_type___MMSignature___adaptation_to))(variable[4],  variable[1] /*t*/) /*MMSignature::adaptation_to*/;
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+  variable[4] = CALL_static_type___MMSignature___adaptation_to(variable[4])(variable[4],  variable[1] /*t*/) /*MMSignature::adaptation_to*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_static_type___MMLocalProperty____signatures_cache(variable[4]) /*MMLocalProperty::_signatures_cache*/;
-  ((hash___HashMap_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[1] /*t*/,  variable[3] /*res*/) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*t*/,  variable[3] /*res*/) /*HashMap::[]=*/;
   variable[2] =  variable[3] /*res*/;
   goto return_label3;
   return_label3: while(false);
@@ -158,12 +158,12 @@ val_t static_type___MMSignature___to_s(val_t  self) {
   /*variable[2] is variable s*/
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMSignature____params(variable[3]) /*MMSignature::_params*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
     variable[4] = ATTR_static_type___MMSignature____params(variable[4]) /*MMSignature::_params*/;
-    variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+    variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
     variable[4] = TAG_Bool(UNTAG_Int(variable[4])>UNTAG_Int( TAG_Int(0)));
   }
   variable[3] = variable[4];
@@ -171,20 +171,20 @@ val_t static_type___MMSignature___to_s(val_t  self) {
     /*variable[3] is variable tmp*/
     variable[5] = variable[0];
     variable[5] = ATTR_static_type___MMSignature____params(variable[5]) /*MMSignature::_params*/;
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[6] = NEW_Array_array___Array___with_capacity(variable[5]); /*new Array[String]*/
     variable[5] = variable[6];
     variable[4] = variable[5];
     variable[5] = variable[0];
     variable[5] = ATTR_static_type___MMSignature____params(variable[5]) /*MMSignature::_params*/;
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[5]); /*new Range[Int]*/
     variable[5] = variable[6];
-    variable[5] = ((range___Range___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Range::iterator*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*Iterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((abstract_collection___Iterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*Iterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*Iterator::item*/;
       variable[7] = variable[6];
       variable[9] = variable[0];
       variable[9] = ATTR_static_type___MMSignature____params(variable[9]) /*MMSignature::_params*/;
@@ -207,23 +207,24 @@ val_t static_type___MMSignature___to_s(val_t  self) {
       return_label6: while(false);
       variable[9] = variable[12];
       variable[8] = variable[9];
-      variable[9] = ((string___Object___to_s_t)CALL( variable[8] /*p*/,COLOR_string___Object___to_s))( variable[8] /*p*/) /*Object::to_s*/;
-      ((array___AbstractArray___add_t)CALL( variable[4] /*a*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*a*/, variable[9]) /*AbstractArray::add*/;
+      variable[9] = CALL_string___Object___to_s( variable[8] /*p*/)( variable[8] /*p*/) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*a*/)( variable[4] /*a*/, variable[9]) /*AbstractArray::add*/;
       continue_5: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*Iterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*Iterator::next*/;
     }
     break_5: while(0);
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("("), TAG_Int(1)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(","), TAG_Int(1)); /*new String*/
-    variable[8] = ((string___Collection___join_t)CALL( variable[4] /*a*/,COLOR_string___Collection___join))( variable[4] /*a*/, variable[8]) /*Collection::join*/;
+    variable[8] = CALL_string___Collection___join( variable[4] /*a*/)( variable[4] /*a*/, variable[8]) /*Collection::join*/;
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString(")"), TAG_Int(1)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
     variable[2] = variable[5] /*s=*/;
   } else { /*if*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
@@ -231,21 +232,22 @@ val_t static_type___MMSignature___to_s(val_t  self) {
   }
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMSignature____return_type(variable[3]) /*MMSignature::_return_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = NEW_String_string___String___init(); /*new String*/
+    variable[3] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
     variable[5] = variable[4];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[5]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[5]) /*AbstractArray::add*/;
     variable[6] = variable[0];
     variable[6] = ATTR_static_type___MMSignature____return_type(variable[6]) /*MMSignature::_return_type*/;
     variable[7] = variable[6];
-    variable[7] = ((string___String___to_s_t)CALL(variable[7],COLOR_string___Object___to_s))(variable[7]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[7]) /*String::append*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[7]) /*AbstractArray::add*/;
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___append))(variable[3], variable[9]) /*String::append*/;
-    ((string___String___append_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*s*/, variable[3]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[3])(variable[3], variable[9]) /*AbstractArray::add*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Object::to_s*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[3]) /*String::append*/;
   }
   variable[1] =  variable[2] /*s*/;
   goto return_label4;
@@ -289,11 +291,11 @@ val_t static_type___MMSignature___arity(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_static_type___MMSignature____params(variable[2]) /*MMSignature::_params*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature___arity, LOCATE_static_type, 91); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_static_type___MMSignature____params(variable[2]) /*MMSignature::_params*/;
-  variable[2] = ((array___AbstractArray___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*AbstractArray::length*/;
+  variable[2] = CALL_abstract_collection___Collection___length(variable[2])(variable[2]) /*AbstractArray::length*/;
   variable[1] = variable[2];
   goto return_label7;
   return_label7: while(false);
@@ -308,32 +310,32 @@ val_t static_type___MMSignature_____l(val_t  self, val_t  param0) {
   trace.file = LOCATE_static_type;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*s*/ ==  NIT_NULL /*null*/) || (( variable[1] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*s*/,COLOR_kernel___Object_____eqeq))( variable[1] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*s*/ ==  NIT_NULL /*null*/) || (( variable[1] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*s*/)( variable[1] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____l, LOCATE_static_type, 98); nit_exit(1);}
   variable[3] = variable[0];
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*s*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*s*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*s*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*s*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*s*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*s*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  TAG_Bool(true);
     goto return_label8;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMSignature____recv(variable[3]) /*MMSignature::_recv*/;
-  variable[3] = ((static_type___MMType___module_t)CALL(variable[3],COLOR_static_type___MMType___module))(variable[3]) /*MMType::module*/;
-  variable[4] = ((static_type___MMSignature___recv_t)CALL( variable[1] /*s*/,COLOR_static_type___MMSignature___recv))( variable[1] /*s*/) /*MMSignature::recv*/;
-  variable[4] = ((static_type___MMType___module_t)CALL(variable[4],COLOR_static_type___MMType___module))(variable[4]) /*MMType::module*/;
-  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[4]) /*Object::==*/)))));
+  variable[3] = CALL_static_type___MMType___module(variable[3])(variable[3]) /*MMType::module*/;
+  variable[4] = CALL_static_type___MMSignature___recv( variable[1] /*s*/)( variable[1] /*s*/) /*MMSignature::recv*/;
+  variable[4] = CALL_static_type___MMType___module(variable[4])(variable[4]) /*MMType::module*/;
+  variable[3] = TAG_Bool((variable[3] == variable[4]) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3],variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[4]) /*Object::==*/)))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____l, LOCATE_static_type, 102); nit_exit(1);}
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMSignature___arity_t)CALL(variable[3],COLOR_static_type___MMSignature___arity))(variable[3]) /*MMSignature::arity*/;
-  variable[4] = ((static_type___MMSignature___arity_t)CALL( variable[1] /*s*/,COLOR_static_type___MMSignature___arity))( variable[1] /*s*/) /*MMSignature::arity*/;
+  variable[3] = CALL_static_type___MMSignature___arity(variable[3])(variable[3]) /*MMSignature::arity*/;
+  variable[4] = CALL_static_type___MMSignature___arity( variable[1] /*s*/)( variable[1] /*s*/) /*MMSignature::arity*/;
   variable[3] = TAG_Bool((variable[3])!=(variable[4]));
   variable[4] = variable[3];
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
     variable[4] = ATTR_static_type___MMSignature____return_type(variable[4]) /*MMSignature::_return_type*/;
-    variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
-    variable[5] = ((static_type___MMSignature___return_type_t)CALL( variable[1] /*s*/,COLOR_static_type___MMSignature___return_type))( variable[1] /*s*/) /*MMSignature::return_type*/;
-    variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[5] = CALL_static_type___MMSignature___return_type( variable[1] /*s*/)( variable[1] /*s*/) /*MMSignature::return_type*/;
+    variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
     variable[4] = TAG_Bool((variable[4])!=(variable[5]));
   }
   variable[3] = variable[4];
@@ -343,13 +345,13 @@ val_t static_type___MMSignature_____l(val_t  self, val_t  param0) {
   }
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMSignature____return_type(variable[3]) /*MMSignature::_return_type*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
     variable[4] = ATTR_static_type___MMSignature____return_type(variable[4]) /*MMSignature::_return_type*/;
-    variable[5] = ((static_type___MMSignature___return_type_t)CALL( variable[1] /*s*/,COLOR_static_type___MMSignature___return_type))( variable[1] /*s*/) /*MMSignature::return_type*/;
-    variable[4] = ((static_type___MMType_____l_t)CALL(variable[4],COLOR_static_type___MMType_____l))(variable[4], variable[5]) /*MMType::<*/;
+    variable[5] = CALL_static_type___MMSignature___return_type( variable[1] /*s*/)( variable[1] /*s*/) /*MMSignature::return_type*/;
+    variable[4] = CALL_static_type___MMType_____l(variable[4])(variable[4], variable[5]) /*MMType::<*/;
     variable[4] =  TAG_Bool(!UNTAG_Bool(variable[4]));
   }
   variable[3] = variable[4];
@@ -358,25 +360,25 @@ val_t static_type___MMSignature_____l(val_t  self, val_t  param0) {
     goto return_label8;
   }
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMSignature___arity_t)CALL(variable[3],COLOR_static_type___MMSignature___arity))(variable[3]) /*MMSignature::arity*/;
+  variable[3] = CALL_static_type___MMSignature___arity(variable[3])(variable[3]) /*MMSignature::arity*/;
   variable[4] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[3]); /*new Range[Int]*/
   variable[3] = variable[4];
-  variable[3] = ((range___Range___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Range::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((static_type___MMSignature_____bra_t)CALL( variable[1] /*s*/,COLOR_static_type___MMSignature_____bra))( variable[1] /*s*/,  variable[5] /*i*/) /*MMSignature::[]*/;
+    variable[6] = CALL_static_type___MMSignature_____bra( variable[1] /*s*/)( variable[1] /*s*/,  variable[5] /*i*/) /*MMSignature::[]*/;
     variable[7] = variable[0];
-    variable[7] = ((static_type___MMSignature_____bra_t)CALL(variable[7],COLOR_static_type___MMSignature_____bra))(variable[7],  variable[5] /*i*/) /*MMSignature::[]*/;
-    variable[6] = ((static_type___MMType_____l_t)CALL(variable[6],COLOR_static_type___MMType_____l))(variable[6], variable[7]) /*MMType::<*/;
+    variable[7] = CALL_static_type___MMSignature_____bra(variable[7])(variable[7],  variable[5] /*i*/) /*MMSignature::[]*/;
+    variable[6] = CALL_static_type___MMType_____l(variable[6])(variable[6], variable[7]) /*MMType::<*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
       variable[2] =  TAG_Bool(false);
       goto return_label8;
     }
     continue_9: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_9: while(0);
   variable[2] =  TAG_Bool(true);
@@ -395,7 +397,7 @@ val_t static_type___MMSignature_____bra(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMSignature____params(variable[3]) /*MMSignature::_params*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[3] = TAG_Bool(UNTAG_Int(variable[3])>UNTAG_Int( variable[1] /*i*/));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature_____bra, LOCATE_static_type, 119); nit_exit(1);}
   variable[3] = variable[0];
@@ -434,61 +436,61 @@ val_t static_type___MMSignature___adaptation_to(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMSignature____recv(variable[3]) /*MMSignature::_recv*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*r*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*r*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*r*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*r*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*r*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*r*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[2] = variable[3];
     goto return_label12;
   }
-  variable[4] = ((static_type___MMType___module_t)CALL( variable[1] /*r*/,COLOR_static_type___MMType___module))( variable[1] /*r*/) /*MMType::module*/;
+  variable[4] = CALL_static_type___MMType___module( variable[1] /*r*/)( variable[1] /*r*/) /*MMType::module*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
   variable[5] = ATTR_static_type___MMSignature____params(variable[5]) /*MMSignature::_params*/;
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*p*/ ==  NIT_NULL /*null*/) || (( variable[4] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*p*/,COLOR_kernel___Object_____eqeq))( variable[4] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*p*/ ==  NIT_NULL /*null*/) || (( variable[4] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*p*/)( variable[4] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
     variable[4] = variable[5] /*p=*/;
     variable[5] = variable[0];
     variable[5] = ATTR_static_type___MMSignature____params(variable[5]) /*MMSignature::_params*/;
-    variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
       variable[7] = variable[6];
-      variable[8] = ((static_type___MMType___for_module_t)CALL( variable[7] /*i*/,COLOR_static_type___MMType___for_module))( variable[7] /*i*/,  variable[3] /*mod*/) /*MMType::for_module*/;
-      variable[8] = ((static_type___MMType___adapt_to_t)CALL(variable[8],COLOR_static_type___MMType___adapt_to))(variable[8],  variable[1] /*r*/) /*MMType::adapt_to*/;
-      ((array___AbstractArray___add_t)CALL( variable[4] /*p*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*p*/, variable[8]) /*AbstractArray::add*/;
+      variable[8] = CALL_static_type___MMType___for_module( variable[7] /*i*/)( variable[7] /*i*/,  variable[3] /*mod*/) /*MMType::for_module*/;
+      variable[8] = CALL_static_type___MMType___adapt_to(variable[8])(variable[8],  variable[1] /*r*/) /*MMType::adapt_to*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*p*/)( variable[4] /*p*/, variable[8]) /*AbstractArray::add*/;
       continue_13: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
     }
     break_13: while(0);
   }
   variable[6] = variable[0];
   variable[6] = ATTR_static_type___MMSignature____return_type(variable[6]) /*MMSignature::_return_type*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*rv*/ ==  NIT_NULL /*null*/) || (( variable[5] /*rv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*rv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*rv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*rv*/,COLOR_kernel___Object_____eqeq))( variable[5] /*rv*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*rv*/ ==  NIT_NULL /*null*/) || (( variable[5] /*rv*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*rv*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*rv*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*rv*/)( variable[5] /*rv*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = ((static_type___MMType___for_module_t)CALL( variable[5] /*rv*/,COLOR_static_type___MMType___for_module))( variable[5] /*rv*/,  variable[3] /*mod*/) /*MMType::for_module*/;
-    variable[6] = ((static_type___MMType___adapt_to_t)CALL(variable[6],COLOR_static_type___MMType___adapt_to))(variable[6],  variable[1] /*r*/) /*MMType::adapt_to*/;
+    variable[6] = CALL_static_type___MMType___for_module( variable[5] /*rv*/)( variable[5] /*rv*/,  variable[3] /*mod*/) /*MMType::for_module*/;
+    variable[6] = CALL_static_type___MMType___adapt_to(variable[6])(variable[6],  variable[1] /*r*/) /*MMType::adapt_to*/;
     variable[5] = variable[6] /*rv=*/;
   }
   variable[7] = NEW_MMSignature_static_type___MMSignature___init( variable[4] /*p*/,  variable[5] /*rv*/,  variable[1] /*r*/); /*new MMSignature*/
   variable[6] = variable[7];
   variable[7] = variable[0];
   variable[7] = ATTR_static_type___MMSignature____closures(variable[7]) /*MMSignature::_closures*/;
-  variable[7] = ((array___AbstractArray___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*AbstractArray::iterator*/;
+  variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /*for*/
-    variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
     variable[9] = variable[8];
-    variable[10] = ((static_type___MMSignature___closures_t)CALL( variable[6] /*res*/,COLOR_static_type___MMSignature___closures))( variable[6] /*res*/) /*MMSignature::closures*/;
-    variable[11] = ((static_type___MMClosure___adaptation_to_t)CALL( variable[9] /*clos*/,COLOR_static_type___MMClosure___adaptation_to))( variable[9] /*clos*/,  variable[1] /*r*/) /*MMClosure::adaptation_to*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10], variable[11]) /*AbstractArray::add*/;
+    variable[10] = CALL_static_type___MMSignature___closures( variable[6] /*res*/)( variable[6] /*res*/) /*MMSignature::closures*/;
+    variable[11] = CALL_static_type___MMClosure___adaptation_to( variable[9] /*clos*/)( variable[9] /*clos*/,  variable[1] /*r*/) /*MMClosure::adaptation_to*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[11]) /*AbstractArray::add*/;
     continue_14: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
   }
   break_14: while(0);
   variable[2] =  variable[6] /*res*/;
@@ -507,7 +509,7 @@ val_t static_type___MMSignature___not_for_self(val_t  self) {
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMSignature____not_for_self_cache(variable[3]) /*MMSignature::_not_for_self_cache*/;
   variable[2] = variable[3];
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*res*/ ==  NIT_NULL /*null*/) || (( variable[2] /*res*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*res*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*res*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*res*/,COLOR_kernel___Object_____eqeq))( variable[2] /*res*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*res*/ ==  NIT_NULL /*null*/) || (( variable[2] /*res*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*res*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*res*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*res*/)( variable[2] /*res*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[1] =  variable[2] /*res*/;
     goto return_label15;
@@ -516,40 +518,40 @@ val_t static_type___MMSignature___not_for_self(val_t  self) {
   variable[5] = variable[0];
   variable[5] = ATTR_static_type___MMSignature____params(variable[5]) /*MMSignature::_params*/;
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*p*/ ==  NIT_NULL /*null*/) || (( variable[4] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*p*/,COLOR_kernel___Object_____eqeq))( variable[4] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*p*/ ==  NIT_NULL /*null*/) || (( variable[4] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*p*/)( variable[4] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
     variable[4] = variable[5] /*p=*/;
     variable[5] = variable[0];
     variable[5] = ATTR_static_type___MMSignature____params(variable[5]) /*MMSignature::_params*/;
-    variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+    variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+      variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[6])) break; /*for*/
-      variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+      variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
       variable[7] = variable[6];
-      variable[9] = ((static_type___MMType___not_for_self_t)CALL( variable[7] /*i*/,COLOR_static_type___MMType___not_for_self))( variable[7] /*i*/) /*MMType::not_for_self*/;
+      variable[9] = CALL_static_type___MMType___not_for_self( variable[7] /*i*/)( variable[7] /*i*/) /*MMType::not_for_self*/;
       variable[8] = variable[9];
-      variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*i*/ ==  variable[8] /*i2*/) || (( variable[7] /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*i*/, variable[8] /*i2*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*i*/,COLOR_kernel___Object_____eqeq))( variable[7] /*i*/,  variable[8] /*i2*/) /*Object::==*/)))))));
+      variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*i*/ ==  variable[8] /*i2*/) || (( variable[7] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*i*/, variable[8] /*i2*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*i*/)( variable[7] /*i*/,  variable[8] /*i2*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[9])) { /*if*/
         variable[3] =  TAG_Bool(true) /*need_for_self=*/;
       }
-      ((array___AbstractArray___add_t)CALL( variable[4] /*p*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*p*/,  variable[8] /*i2*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*p*/)( variable[4] /*p*/,  variable[8] /*i2*/) /*AbstractArray::add*/;
       continue_16: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
     }
     break_16: while(0);
   }
   variable[6] = variable[0];
   variable[6] = ATTR_static_type___MMSignature____return_type(variable[6]) /*MMSignature::_return_type*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*rv*/ ==  NIT_NULL /*null*/) || (( variable[5] /*rv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*rv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*rv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*rv*/,COLOR_kernel___Object_____eqeq))( variable[5] /*rv*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*rv*/ ==  NIT_NULL /*null*/) || (( variable[5] /*rv*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*rv*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*rv*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*rv*/)( variable[5] /*rv*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = ((static_type___MMType___not_for_self_t)CALL( variable[5] /*rv*/,COLOR_static_type___MMType___not_for_self))( variable[5] /*rv*/) /*MMType::not_for_self*/;
+    variable[6] = CALL_static_type___MMType___not_for_self( variable[5] /*rv*/)( variable[5] /*rv*/) /*MMType::not_for_self*/;
     variable[5] = variable[6] /*rv=*/;
     variable[6] = variable[0];
     variable[6] = ATTR_static_type___MMSignature____return_type(variable[6]) /*MMSignature::_return_type*/;
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*rv*/ == variable[6]) || (( variable[5] /*rv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*rv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*rv*/,variable[6])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*rv*/,COLOR_kernel___Object_____eqeq))( variable[5] /*rv*/, variable[6]) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*rv*/ == variable[6]) || (( variable[5] /*rv*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*rv*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*rv*/,variable[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*rv*/)( variable[5] /*rv*/, variable[6]) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[3] =  TAG_Bool(true) /*need_for_self=*/;
     }
@@ -557,27 +559,27 @@ val_t static_type___MMSignature___not_for_self(val_t  self) {
   variable[7] = variable[0];
   variable[7] = ATTR_static_type___MMSignature____closures(variable[7]) /*MMSignature::_closures*/;
   variable[6] = variable[7];
-  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*clos*/ ==  NIT_NULL /*null*/) || (( variable[6] /*clos*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*clos*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*clos*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*clos*/,COLOR_kernel___Object_____eqeq))( variable[6] /*clos*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*clos*/ ==  NIT_NULL /*null*/) || (( variable[6] /*clos*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*clos*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*clos*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*clos*/)( variable[6] /*clos*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[7] = NEW_Array_array___Array___init(); /*new Array[MMClosure]*/
     variable[6] = variable[7] /*clos=*/;
     variable[7] = variable[0];
     variable[7] = ATTR_static_type___MMSignature____closures(variable[7]) /*MMSignature::_closures*/;
-    variable[7] = ((array___AbstractArray___iterator_t)CALL(variable[7],COLOR_abstract_collection___Collection___iterator))(variable[7]) /*AbstractArray::iterator*/;
+    variable[7] = CALL_abstract_collection___Collection___iterator(variable[7])(variable[7]) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[8] = ((array___ArrayIterator___is_ok_t)CALL(variable[7],COLOR_abstract_collection___Iterator___is_ok))(variable[7]) /*ArrayIterator::is_ok*/;
+      variable[8] = CALL_abstract_collection___Iterator___is_ok(variable[7])(variable[7]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[8])) break; /*for*/
-      variable[8] = ((array___ArrayIterator___item_t)CALL(variable[7],COLOR_abstract_collection___Iterator___item))(variable[7]) /*ArrayIterator::item*/;
+      variable[8] = CALL_abstract_collection___Iterator___item(variable[7])(variable[7]) /*ArrayIterator::item*/;
       variable[9] = variable[8];
-      variable[11] = ((static_type___MMClosure___not_for_self_t)CALL( variable[9] /*c*/,COLOR_static_type___MMClosure___not_for_self))( variable[9] /*c*/) /*MMClosure::not_for_self*/;
+      variable[11] = CALL_static_type___MMClosure___not_for_self( variable[9] /*c*/)( variable[9] /*c*/) /*MMClosure::not_for_self*/;
       variable[10] = variable[11];
-      variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*c2*/ ==  variable[9] /*c*/) || (( variable[10] /*c2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*c2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c2*/, variable[9] /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*c2*/,COLOR_kernel___Object_____eqeq))( variable[10] /*c2*/,  variable[9] /*c*/) /*Object::==*/)))))));
+      variable[11] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[10] /*c2*/ ==  variable[9] /*c*/) || (( variable[10] /*c2*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*c2*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c2*/, variable[9] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*c2*/)( variable[10] /*c2*/,  variable[9] /*c*/) /*Object::==*/)))))));
       if (UNTAG_Bool(variable[11])) { /*if*/
         variable[3] =  TAG_Bool(true) /*need_for_self=*/;
       }
-      ((array___AbstractArray___add_t)CALL( variable[6] /*clos*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*clos*/,  variable[10] /*c2*/) /*AbstractArray::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[6] /*clos*/)( variable[6] /*clos*/,  variable[10] /*c2*/) /*AbstractArray::add*/;
       continue_17: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[7],COLOR_abstract_collection___Iterator___next))(variable[7]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[7])(variable[7]) /*ArrayIterator::next*/;
     }
     break_17: while(0);
   }
@@ -587,8 +589,8 @@ val_t static_type___MMSignature___not_for_self(val_t  self) {
     variable[8] = NEW_MMSignature_static_type___MMSignature___init( variable[4] /*p*/,  variable[5] /*rv*/, variable[7]); /*new MMSignature*/
     variable[7] = variable[8];
     variable[2] = variable[7] /*res=*/;
-    variable[7] = ((static_type___MMSignature___closures_t)CALL( variable[2] /*res*/,COLOR_static_type___MMSignature___closures))( variable[2] /*res*/) /*MMSignature::closures*/;
-    ((abstract_collection___SimpleCollection___add_all_t)CALL(variable[7],COLOR_abstract_collection___SimpleCollection___add_all))(variable[7],  variable[6] /*clos*/) /*SimpleCollection::add_all*/;
+    variable[7] = CALL_static_type___MMSignature___closures( variable[2] /*res*/)( variable[2] /*res*/) /*MMSignature::closures*/;
+    CALL_abstract_collection___SimpleCollection___add_all(variable[7])(variable[7],  variable[6] /*clos*/) /*SimpleCollection::add_all*/;
   } else { /*if*/
     variable[7] = variable[0];
     variable[2] = variable[7] /*res=*/;
@@ -612,7 +614,7 @@ void static_type___MMSignature___init(val_t  self, val_t  param0, val_t  param1,
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSignature].i]) return;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*params*/ ==  NIT_NULL /*null*/) || (( variable[1] /*params*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*params*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*params*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*params*/,COLOR_kernel___Object_____eqeq))( variable[1] /*params*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*params*/ ==  NIT_NULL /*null*/) || (( variable[1] /*params*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*params*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*params*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*params*/)( variable[1] /*params*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMSignature___init, LOCATE_static_type, 219); nit_exit(1);}
   variable[5] = variable[0];
   ATTR_static_type___MMSignature____params(variable[5]) /*MMSignature::_params*/ =  variable[1] /*params*/;
@@ -662,7 +664,7 @@ val_t static_type___MMClosure___adaptation_to(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMClosure____signature(variable[3]) /*MMClosure::_signature*/;
-  variable[3] = ((static_type___MMSignature___adaptation_to_t)CALL(variable[3],COLOR_static_type___MMSignature___adaptation_to))(variable[3],  variable[1] /*r*/) /*MMSignature::adaptation_to*/;
+  variable[3] = CALL_static_type___MMSignature___adaptation_to(variable[3])(variable[3],  variable[1] /*r*/) /*MMSignature::adaptation_to*/;
   variable[4] = variable[0];
   variable[4] = ATTR_static_type___MMClosure____is_break(variable[4]) /*MMClosure::_is_break*/;
   variable[5] = variable[0];
@@ -706,11 +708,11 @@ val_t static_type___MMClosure___not_for_self(val_t  self) {
   variable[0] =  self;
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMClosure____signature(variable[3]) /*MMClosure::_signature*/;
-  variable[3] = ((static_type___MMSignature___not_for_self_t)CALL(variable[3],COLOR_static_type___MMSignature___not_for_self))(variable[3]) /*MMSignature::not_for_self*/;
+  variable[3] = CALL_static_type___MMSignature___not_for_self(variable[3])(variable[3]) /*MMSignature::not_for_self*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMClosure____signature(variable[3]) /*MMClosure::_signature*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sig*/ == variable[3]) || (( variable[2] /*sig*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*sig*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sig*/,variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*sig*/,COLOR_kernel___Object_____eqeq))( variable[2] /*sig*/, variable[3]) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[2] /*sig*/ == variable[3]) || (( variable[2] /*sig*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*sig*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*sig*/,variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*sig*/)( variable[2] /*sig*/, variable[3]) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_static_type___MMClosure____is_break(variable[3]) /*MMClosure::_is_break*/;
@@ -737,18 +739,18 @@ val_t static_type___MMAncestor___to_s(val_t  self) {
   trace.file = LOCATE_static_type;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((static_type___MMAncestor___stype_t)CALL(variable[2],COLOR_static_type___MMAncestor___stype))(variable[2]) /*MMAncestor::stype*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = CALL_static_type___MMAncestor___stype(variable[2])(variable[2]) /*MMAncestor::stype*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((static_type___MMAncestor___local_class_t)CALL(variable[2],COLOR_static_type___MMAncestor___local_class))(variable[2]) /*MMAncestor::local_class*/;
-    variable[2] = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*MMLocalClass::to_s*/;
+    variable[2] = CALL_static_type___MMAncestor___local_class(variable[2])(variable[2]) /*MMAncestor::local_class*/;
+    variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*MMLocalClass::to_s*/;
     variable[1] = variable[2];
     goto return_label22;
   } else { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((static_type___MMAncestor___stype_t)CALL(variable[2],COLOR_static_type___MMAncestor___stype))(variable[2]) /*MMAncestor::stype*/;
-    variable[2] = ((string___Object___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*Object::to_s*/;
+    variable[2] = CALL_static_type___MMAncestor___stype(variable[2])(variable[2]) /*MMAncestor::stype*/;
+    variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
     variable[1] = variable[2];
     goto return_label22;
   }
@@ -802,12 +804,12 @@ val_t static_type___MMAncestor___is_reffinement(val_t  self) {
   trace.file = LOCATE_static_type;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((static_type___MMAncestor___stype_t)CALL(variable[2],COLOR_static_type___MMAncestor___stype))(variable[2]) /*MMAncestor::stype*/;
-  variable[2] = ((static_type___MMType___module_t)CALL(variable[2],COLOR_static_type___MMType___module))(variable[2]) /*MMType::module*/;
+  variable[2] = CALL_static_type___MMAncestor___stype(variable[2])(variable[2]) /*MMAncestor::stype*/;
+  variable[2] = CALL_static_type___MMType___module(variable[2])(variable[2]) /*MMType::module*/;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMAncestor___stype_t)CALL(variable[3],COLOR_static_type___MMAncestor___stype))(variable[3]) /*MMAncestor::stype*/;
-  variable[3] = ((static_type___MMType___module_t)CALL(variable[3],COLOR_static_type___MMType___module))(variable[3]) /*MMType::module*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], variable[3]) /*Object::==*/)))))));
+  variable[3] = CALL_static_type___MMAncestor___stype(variable[3])(variable[3]) /*MMAncestor::stype*/;
+  variable[3] = CALL_static_type___MMType___module(variable[3])(variable[3]) /*MMType::module*/;
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], variable[3]) /*Object::==*/)))))));
   variable[1] = variable[2];
   goto return_label23;
   return_label23: while(false);
@@ -822,14 +824,14 @@ val_t static_type___MMAncestor___is_specialisation(val_t  self) {
   trace.file = LOCATE_static_type;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((static_type___MMAncestor___stype_t)CALL(variable[2],COLOR_static_type___MMAncestor___stype))(variable[2]) /*MMAncestor::stype*/;
-  variable[2] = ((static_type___MMType___local_class_t)CALL(variable[2],COLOR_static_type___MMType___local_class))(variable[2]) /*MMType::local_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___global))(variable[2]) /*MMLocalClass::global*/;
+  variable[2] = CALL_static_type___MMAncestor___stype(variable[2])(variable[2]) /*MMAncestor::stype*/;
+  variable[2] = CALL_static_type___MMType___local_class(variable[2])(variable[2]) /*MMType::local_class*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___global(variable[2])(variable[2]) /*MMLocalClass::global*/;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMAncestor___inheriter_t)CALL(variable[3],COLOR_static_type___MMAncestor___inheriter))(variable[3]) /*MMAncestor::inheriter*/;
-  variable[3] = ((static_type___MMType___local_class_t)CALL(variable[3],COLOR_static_type___MMType___local_class))(variable[3]) /*MMType::local_class*/;
-  variable[3] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___global))(variable[3]) /*MMLocalClass::global*/;
-  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2], variable[3]) /*Object::==*/)))))));
+  variable[3] = CALL_static_type___MMAncestor___inheriter(variable[3])(variable[3]) /*MMAncestor::inheriter*/;
+  variable[3] = CALL_static_type___MMType___local_class(variable[3])(variable[3]) /*MMType::local_class*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___global(variable[3])(variable[3]) /*MMLocalClass::global*/;
+  variable[2] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[2] == variable[3]) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2],variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], variable[3]) /*Object::==*/)))))));
   variable[1] = variable[2];
   goto return_label24;
   return_label24: while(false);
@@ -973,7 +975,7 @@ val_t static_type___MMTypeClass___to_s(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_static_type___MMTypeClass____local_class(variable[2]) /*MMTypeClass::_local_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*MMLocalClass::to_s*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*MMLocalClass::to_s*/;
   variable[1] = variable[2];
   goto return_label26;
   return_label26: while(false);
@@ -989,7 +991,7 @@ val_t static_type___MMTypeClass___module(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_static_type___MMTypeClass____local_class(variable[2]) /*MMTypeClass::_local_class*/;
-  variable[2] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[2],COLOR_abstractmetamodel___MMLocalClass___module))(variable[2]) /*MMLocalClass::module*/;
+  variable[2] = CALL_abstractmetamodel___MMLocalClass___module(variable[2])(variable[2]) /*MMLocalClass::module*/;
   variable[1] = variable[2];
   goto return_label27;
   return_label27: while(false);
@@ -1013,11 +1015,11 @@ val_t static_type___MMTypeClass_____l(val_t  self, val_t  param0) {
   trace.file = LOCATE_static_type;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*t*/ ==  NIT_NULL /*null*/) || (( variable[1] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))( variable[1] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*t*/ ==  NIT_NULL /*null*/) || (( variable[1] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*t*/)( variable[1] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = ((static_type___MMType___is_supertype_t)CALL( variable[1] /*t*/,COLOR_static_type___MMType___is_supertype))( variable[1] /*t*/, variable[4]) /*MMType::is_supertype*/;
+    variable[4] = CALL_static_type___MMType___is_supertype( variable[1] /*t*/)( variable[1] /*t*/, variable[4]) /*MMType::is_supertype*/;
   }
   variable[3] = variable[4];
   variable[2] = variable[3];
@@ -1036,22 +1038,22 @@ val_t static_type___MMTypeClass___upcast_for(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_static_type___MMTypeClass____local_class(variable[3]) /*MMTypeClass::_local_class*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 338); nit_exit(1);}
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*c*/ ==  NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*c*/,COLOR_kernel___Object_____eqeq))( variable[1] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*c*/ ==  NIT_NULL /*null*/) || (( variable[1] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*c*/)( variable[1] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 339); nit_exit(1);}
   variable[4] = variable[0];
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[4]) /*MMTypeClass::_local_class*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*c*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*c*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*c*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*c*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[4]) /*MMTypeClass::_local_class*/;
-    variable[4] = ((static_type___MMLocalClass___ancestor_t)CALL(variable[4],COLOR_static_type___MMLocalClass___ancestor))(variable[4],  variable[1] /*c*/) /*MMLocalClass::ancestor*/;
+    variable[4] = CALL_static_type___MMLocalClass___ancestor(variable[4])(variable[4],  variable[1] /*c*/) /*MMLocalClass::ancestor*/;
     variable[3] = variable[4] /*t=*/;
   }
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeClass___upcast_for, LOCATE_static_type, 345); nit_exit(1);}
   variable[2] =  variable[3] /*t*/;
   goto return_label29;
@@ -1083,11 +1085,11 @@ val_t static_type___MMTypeSimpleClass___is_supertype(val_t  self, val_t  param0)
   trace.file = LOCATE_static_type;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((static_type___MMType___local_class_t)CALL( variable[1] /*t*/,COLOR_static_type___MMType___local_class))( variable[1] /*t*/) /*MMType::local_class*/;
-  variable[3] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[3]) /*MMLocalClass::cshe*/;
+  variable[3] = CALL_static_type___MMType___local_class( variable[1] /*t*/)( variable[1] /*t*/) /*MMType::local_class*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[3])(variable[3]) /*MMLocalClass::cshe*/;
   variable[4] = variable[0];
   variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[4]) /*MMTypeClass::_local_class*/;
-  variable[3] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[3],COLOR_partial_order___PartialOrderElement_____leq))(variable[3], variable[4]) /*PartialOrderElement::<=*/;
+  variable[3] = CALL_partial_order___PartialOrderElement_____leq(variable[3])(variable[3], variable[4]) /*PartialOrderElement::<=*/;
   variable[2] = variable[3];
   goto return_label31;
   return_label31: while(false);
@@ -1105,16 +1107,16 @@ val_t static_type___MMTypeSimpleClass___for_module(val_t  self, val_t  param0) {
   variable[4] = variable[0];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((static_type___MMTypeClass___module_t)CALL(variable[4],COLOR_static_type___MMType___module))(variable[4]) /*MMTypeClass::module*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*mod*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*mod*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  variable[1] /*mod*/) /*Object::==*/)))))));
+  variable[4] = CALL_static_type___MMType___module(variable[4])(variable[4]) /*MMTypeClass::module*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  variable[1] /*mod*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*mod*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  variable[1] /*mod*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[4] = ATTR_static_type___MMTypeClass____local_class(variable[4]) /*MMTypeClass::_local_class*/;
-    variable[4] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___for_module))(variable[4],  variable[1] /*mod*/) /*MMLocalClass::for_module*/;
-    variable[4] = ((static_type___MMLocalClass___get_type_t)CALL(variable[4],COLOR_static_type___MMLocalClass___get_type))(variable[4]) /*MMLocalClass::get_type*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalClass___for_module(variable[4])(variable[4],  variable[1] /*mod*/) /*MMLocalClass::for_module*/;
+    variable[4] = CALL_static_type___MMLocalClass___get_type(variable[4])(variable[4]) /*MMLocalClass::get_type*/;
     variable[3] = variable[4] /*t=*/;
   }
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_static_type___MMTypeSimpleClass___for_module, LOCATE_static_type, 368); nit_exit(1);}
   variable[2] =  variable[3] /*t*/;
   goto return_label32;
@@ -1146,7 +1148,7 @@ void static_type___MMTypeSimpleClass___init(val_t  self, val_t  param0, int* ini
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMTypeSimpleClass].i]) return;
-  ((static_type___MMTypeClass___init_t)CALL(variable[0],COLOR_static_type___MMTypeClass___init))(variable[0],  variable[1] /*c*/, init_table /*YYY*/) /*MMTypeClass::init*/;
+  CALL_static_type___MMTypeClass___init(variable[0])(variable[0],  variable[1] /*c*/, init_table /*YYY*/) /*MMTypeClass::init*/;
   return_label34: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMTypeSimpleClass].i] = 1;
   tracehead = trace.prev;
index 7410e2e..c70f897 100644 (file)
@@ -19,96 +19,94 @@ extern const classtable_elt_t VFT_MMTypeSimpleClass[];
 extern const classtable_elt_t VFT_MMTypeNone[];
 extern const char *LOCATE_static_type;
 extern const int SFT_static_type[];
-#define COLOR_static_type___MMLocalClass____base_type_cache SFT_static_type[0]
-#define COLOR_static_type___MMLocalClass____ancestors SFT_static_type[1]
-#define COLOR_static_type___MMLocalClass___get_type SFT_static_type[2]
-#define COLOR_static_type___MMLocalClass___add_ancestor SFT_static_type[3]
-#define COLOR_static_type___MMLocalClass___ancestors SFT_static_type[4]
-#define COLOR_static_type___MMLocalClass___ancestor SFT_static_type[5]
-#define COLOR_static_type___MMLocalProperty____signature SFT_static_type[6]
-#define COLOR_static_type___MMLocalProperty____signatures_cache SFT_static_type[7]
-#define COLOR_static_type___MMLocalProperty___signature SFT_static_type[8]
-#define COLOR_static_type___MMLocalProperty___signature__eq SFT_static_type[9]
-#define COLOR_static_type___MMLocalProperty___signature_for SFT_static_type[10]
-#define ID_MMSignature SFT_static_type[11]
-#define COLOR_MMSignature SFT_static_type[12]
-#define COLOR_static_type___MMSignature____recv SFT_static_type[13]
-#define COLOR_static_type___MMSignature____params SFT_static_type[14]
-#define COLOR_static_type___MMSignature____return_type SFT_static_type[15]
-#define COLOR_static_type___MMSignature____closures SFT_static_type[16]
-#define COLOR_static_type___MMSignature____not_for_self_cache SFT_static_type[17]
-#define INIT_TABLE_POS_MMSignature SFT_static_type[18]
-#define COLOR_static_type___MMSignature___recv SFT_static_type[19]
-#define COLOR_static_type___MMSignature___return_type SFT_static_type[20]
-#define COLOR_static_type___MMSignature___closures SFT_static_type[21]
-#define COLOR_static_type___MMSignature___arity SFT_static_type[22]
-#define COLOR_static_type___MMSignature_____l SFT_static_type[23]
-#define COLOR_static_type___MMSignature_____bra SFT_static_type[24]
-#define COLOR_static_type___MMSignature___adaptation_to SFT_static_type[25]
-#define COLOR_static_type___MMSignature___not_for_self SFT_static_type[26]
-#define COLOR_static_type___MMSignature___init SFT_static_type[27]
-#define ID_MMClosure SFT_static_type[28]
-#define COLOR_MMClosure SFT_static_type[29]
-#define COLOR_static_type___MMClosure____signature SFT_static_type[30]
-#define COLOR_static_type___MMClosure____is_break SFT_static_type[31]
-#define COLOR_static_type___MMClosure____is_optional SFT_static_type[32]
-#define INIT_TABLE_POS_MMClosure SFT_static_type[33]
-#define COLOR_static_type___MMClosure___signature SFT_static_type[34]
-#define COLOR_static_type___MMClosure___is_break SFT_static_type[35]
-#define COLOR_static_type___MMClosure___is_optional SFT_static_type[36]
-#define COLOR_static_type___MMClosure___adaptation_to SFT_static_type[37]
-#define COLOR_static_type___MMClosure___init SFT_static_type[38]
-#define COLOR_static_type___MMClosure___not_for_self SFT_static_type[39]
-#define ID_MMAncestor SFT_static_type[40]
-#define COLOR_MMAncestor SFT_static_type[41]
-#define COLOR_static_type___MMAncestor____stype SFT_static_type[42]
-#define COLOR_static_type___MMAncestor____inheriter SFT_static_type[43]
-#define INIT_TABLE_POS_MMAncestor SFT_static_type[44]
-#define COLOR_static_type___MMAncestor___stype SFT_static_type[45]
-#define COLOR_static_type___MMAncestor___stype__eq SFT_static_type[46]
-#define COLOR_static_type___MMAncestor___inheriter SFT_static_type[47]
-#define COLOR_static_type___MMAncestor___inheriter__eq SFT_static_type[48]
-#define COLOR_static_type___MMAncestor___is_reffinement SFT_static_type[49]
-#define COLOR_static_type___MMAncestor___is_specialisation SFT_static_type[50]
-#define COLOR_static_type___MMAncestor___local_class SFT_static_type[51]
-#define COLOR_static_type___MMAncestor___init SFT_static_type[52]
-#define ID_MMType SFT_static_type[53]
-#define COLOR_MMType SFT_static_type[54]
-#define INIT_TABLE_POS_MMType SFT_static_type[55]
-#define COLOR_static_type___MMType___module SFT_static_type[56]
-#define COLOR_static_type___MMType___local_class SFT_static_type[57]
-#define COLOR_static_type___MMType_____l SFT_static_type[58]
-#define COLOR_static_type___MMType___is_supertype SFT_static_type[59]
-#define COLOR_static_type___MMType___for_module SFT_static_type[60]
-#define COLOR_static_type___MMType___adapt_to SFT_static_type[61]
-#define COLOR_static_type___MMType___upcast_for SFT_static_type[62]
-#define COLOR_static_type___MMType___not_for_self SFT_static_type[63]
-#define COLOR_static_type___MMType___init SFT_static_type[64]
-#define ID_MMTypeClass SFT_static_type[65]
-#define COLOR_MMTypeClass SFT_static_type[66]
-#define COLOR_static_type___MMTypeClass____local_class SFT_static_type[67]
-#define INIT_TABLE_POS_MMTypeClass SFT_static_type[68]
-#define COLOR_static_type___MMTypeClass___init SFT_static_type[69]
-#define ID_MMTypeSimpleClass SFT_static_type[70]
-#define COLOR_MMTypeSimpleClass SFT_static_type[71]
-#define INIT_TABLE_POS_MMTypeSimpleClass SFT_static_type[72]
-#define COLOR_static_type___MMTypeSimpleClass___init SFT_static_type[73]
-#define ID_MMTypeNone SFT_static_type[74]
-#define COLOR_MMTypeNone SFT_static_type[75]
-#define COLOR_static_type___MMTypeNone____module SFT_static_type[76]
-#define INIT_TABLE_POS_MMTypeNone SFT_static_type[77]
-#define COLOR_static_type___MMTypeNone___init SFT_static_type[78]
-#define COLOR_static_type___MMModule____type_none SFT_static_type[79]
-#define COLOR_static_type___MMModule___type_none SFT_static_type[80]
+#define ATTR_static_type___MMLocalClass____base_type_cache(recv) ATTR(recv, (SFT_static_type[0] + 0))
+#define ATTR_static_type___MMLocalClass____ancestors(recv) ATTR(recv, (SFT_static_type[0] + 1))
+#define CALL_static_type___MMLocalClass___get_type(recv) ((static_type___MMLocalClass___get_type_t)CALL((recv), (SFT_static_type[1] + 0)))
+#define CALL_static_type___MMLocalClass___add_ancestor(recv) ((static_type___MMLocalClass___add_ancestor_t)CALL((recv), (SFT_static_type[1] + 1)))
+#define CALL_static_type___MMLocalClass___ancestors(recv) ((static_type___MMLocalClass___ancestors_t)CALL((recv), (SFT_static_type[1] + 2)))
+#define CALL_static_type___MMLocalClass___ancestor(recv) ((static_type___MMLocalClass___ancestor_t)CALL((recv), (SFT_static_type[1] + 3)))
+#define ATTR_static_type___MMLocalProperty____signature(recv) ATTR(recv, (SFT_static_type[2] + 0))
+#define ATTR_static_type___MMLocalProperty____signatures_cache(recv) ATTR(recv, (SFT_static_type[2] + 1))
+#define CALL_static_type___MMLocalProperty___signature(recv) ((static_type___MMLocalProperty___signature_t)CALL((recv), (SFT_static_type[3] + 0)))
+#define CALL_static_type___MMLocalProperty___signature__eq(recv) ((static_type___MMLocalProperty___signature__eq_t)CALL((recv), (SFT_static_type[3] + 1)))
+#define CALL_static_type___MMLocalProperty___signature_for(recv) ((static_type___MMLocalProperty___signature_for_t)CALL((recv), (SFT_static_type[3] + 2)))
+#define ID_MMSignature (SFT_static_type[4])
+#define COLOR_MMSignature (SFT_static_type[5])
+#define ATTR_static_type___MMSignature____recv(recv) ATTR(recv, (SFT_static_type[6] + 0))
+#define ATTR_static_type___MMSignature____params(recv) ATTR(recv, (SFT_static_type[6] + 1))
+#define ATTR_static_type___MMSignature____return_type(recv) ATTR(recv, (SFT_static_type[6] + 2))
+#define ATTR_static_type___MMSignature____closures(recv) ATTR(recv, (SFT_static_type[6] + 3))
+#define ATTR_static_type___MMSignature____not_for_self_cache(recv) ATTR(recv, (SFT_static_type[6] + 4))
+#define INIT_TABLE_POS_MMSignature (SFT_static_type[7] + 0)
+#define CALL_static_type___MMSignature___recv(recv) ((static_type___MMSignature___recv_t)CALL((recv), (SFT_static_type[7] + 1)))
+#define CALL_static_type___MMSignature___return_type(recv) ((static_type___MMSignature___return_type_t)CALL((recv), (SFT_static_type[7] + 2)))
+#define CALL_static_type___MMSignature___closures(recv) ((static_type___MMSignature___closures_t)CALL((recv), (SFT_static_type[7] + 3)))
+#define CALL_static_type___MMSignature___arity(recv) ((static_type___MMSignature___arity_t)CALL((recv), (SFT_static_type[7] + 4)))
+#define CALL_static_type___MMSignature_____l(recv) ((static_type___MMSignature_____l_t)CALL((recv), (SFT_static_type[7] + 5)))
+#define CALL_static_type___MMSignature_____bra(recv) ((static_type___MMSignature_____bra_t)CALL((recv), (SFT_static_type[7] + 6)))
+#define CALL_static_type___MMSignature___adaptation_to(recv) ((static_type___MMSignature___adaptation_to_t)CALL((recv), (SFT_static_type[7] + 7)))
+#define CALL_static_type___MMSignature___not_for_self(recv) ((static_type___MMSignature___not_for_self_t)CALL((recv), (SFT_static_type[7] + 8)))
+#define CALL_static_type___MMSignature___init(recv) ((static_type___MMSignature___init_t)CALL((recv), (SFT_static_type[7] + 9)))
+#define ID_MMClosure (SFT_static_type[8])
+#define COLOR_MMClosure (SFT_static_type[9])
+#define ATTR_static_type___MMClosure____signature(recv) ATTR(recv, (SFT_static_type[10] + 0))
+#define ATTR_static_type___MMClosure____is_break(recv) ATTR(recv, (SFT_static_type[10] + 1))
+#define ATTR_static_type___MMClosure____is_optional(recv) ATTR(recv, (SFT_static_type[10] + 2))
+#define INIT_TABLE_POS_MMClosure (SFT_static_type[11] + 0)
+#define CALL_static_type___MMClosure___signature(recv) ((static_type___MMClosure___signature_t)CALL((recv), (SFT_static_type[11] + 1)))
+#define CALL_static_type___MMClosure___is_break(recv) ((static_type___MMClosure___is_break_t)CALL((recv), (SFT_static_type[11] + 2)))
+#define CALL_static_type___MMClosure___is_optional(recv) ((static_type___MMClosure___is_optional_t)CALL((recv), (SFT_static_type[11] + 3)))
+#define CALL_static_type___MMClosure___adaptation_to(recv) ((static_type___MMClosure___adaptation_to_t)CALL((recv), (SFT_static_type[11] + 4)))
+#define CALL_static_type___MMClosure___init(recv) ((static_type___MMClosure___init_t)CALL((recv), (SFT_static_type[11] + 5)))
+#define CALL_static_type___MMClosure___not_for_self(recv) ((static_type___MMClosure___not_for_self_t)CALL((recv), (SFT_static_type[11] + 6)))
+#define ID_MMAncestor (SFT_static_type[12])
+#define COLOR_MMAncestor (SFT_static_type[13])
+#define ATTR_static_type___MMAncestor____stype(recv) ATTR(recv, (SFT_static_type[14] + 0))
+#define ATTR_static_type___MMAncestor____inheriter(recv) ATTR(recv, (SFT_static_type[14] + 1))
+#define INIT_TABLE_POS_MMAncestor (SFT_static_type[15] + 0)
+#define CALL_static_type___MMAncestor___stype(recv) ((static_type___MMAncestor___stype_t)CALL((recv), (SFT_static_type[15] + 1)))
+#define CALL_static_type___MMAncestor___stype__eq(recv) ((static_type___MMAncestor___stype__eq_t)CALL((recv), (SFT_static_type[15] + 2)))
+#define CALL_static_type___MMAncestor___inheriter(recv) ((static_type___MMAncestor___inheriter_t)CALL((recv), (SFT_static_type[15] + 3)))
+#define CALL_static_type___MMAncestor___inheriter__eq(recv) ((static_type___MMAncestor___inheriter__eq_t)CALL((recv), (SFT_static_type[15] + 4)))
+#define CALL_static_type___MMAncestor___is_reffinement(recv) ((static_type___MMAncestor___is_reffinement_t)CALL((recv), (SFT_static_type[15] + 5)))
+#define CALL_static_type___MMAncestor___is_specialisation(recv) ((static_type___MMAncestor___is_specialisation_t)CALL((recv), (SFT_static_type[15] + 6)))
+#define CALL_static_type___MMAncestor___local_class(recv) ((static_type___MMAncestor___local_class_t)CALL((recv), (SFT_static_type[15] + 7)))
+#define CALL_static_type___MMAncestor___init(recv) ((static_type___MMAncestor___init_t)CALL((recv), (SFT_static_type[15] + 8)))
+#define ID_MMType (SFT_static_type[16])
+#define COLOR_MMType (SFT_static_type[17])
+#define INIT_TABLE_POS_MMType (SFT_static_type[18] + 0)
+#define CALL_static_type___MMType___module(recv) ((static_type___MMType___module_t)CALL((recv), (SFT_static_type[18] + 1)))
+#define CALL_static_type___MMType___local_class(recv) ((static_type___MMType___local_class_t)CALL((recv), (SFT_static_type[18] + 2)))
+#define CALL_static_type___MMType_____l(recv) ((static_type___MMType_____l_t)CALL((recv), (SFT_static_type[18] + 3)))
+#define CALL_static_type___MMType___is_supertype(recv) ((static_type___MMType___is_supertype_t)CALL((recv), (SFT_static_type[18] + 4)))
+#define CALL_static_type___MMType___for_module(recv) ((static_type___MMType___for_module_t)CALL((recv), (SFT_static_type[18] + 5)))
+#define CALL_static_type___MMType___adapt_to(recv) ((static_type___MMType___adapt_to_t)CALL((recv), (SFT_static_type[18] + 6)))
+#define CALL_static_type___MMType___upcast_for(recv) ((static_type___MMType___upcast_for_t)CALL((recv), (SFT_static_type[18] + 7)))
+#define CALL_static_type___MMType___not_for_self(recv) ((static_type___MMType___not_for_self_t)CALL((recv), (SFT_static_type[18] + 8)))
+#define CALL_static_type___MMType___init(recv) ((static_type___MMType___init_t)CALL((recv), (SFT_static_type[18] + 9)))
+#define ID_MMTypeClass (SFT_static_type[19])
+#define COLOR_MMTypeClass (SFT_static_type[20])
+#define ATTR_static_type___MMTypeClass____local_class(recv) ATTR(recv, (SFT_static_type[21] + 0))
+#define INIT_TABLE_POS_MMTypeClass (SFT_static_type[22] + 0)
+#define CALL_static_type___MMTypeClass___init(recv) ((static_type___MMTypeClass___init_t)CALL((recv), (SFT_static_type[22] + 1)))
+#define ID_MMTypeSimpleClass (SFT_static_type[23])
+#define COLOR_MMTypeSimpleClass (SFT_static_type[24])
+#define INIT_TABLE_POS_MMTypeSimpleClass (SFT_static_type[25] + 0)
+#define CALL_static_type___MMTypeSimpleClass___init(recv) ((static_type___MMTypeSimpleClass___init_t)CALL((recv), (SFT_static_type[25] + 1)))
+#define ID_MMTypeNone (SFT_static_type[26])
+#define COLOR_MMTypeNone (SFT_static_type[27])
+#define ATTR_static_type___MMTypeNone____module(recv) ATTR(recv, (SFT_static_type[28] + 0))
+#define INIT_TABLE_POS_MMTypeNone (SFT_static_type[29] + 0)
+#define CALL_static_type___MMTypeNone___init(recv) ((static_type___MMTypeNone___init_t)CALL((recv), (SFT_static_type[29] + 1)))
+#define ATTR_static_type___MMModule____type_none(recv) ATTR(recv, (SFT_static_type[30] + 0))
+#define CALL_static_type___MMModule___type_none(recv) ((static_type___MMModule___type_none_t)CALL((recv), (SFT_static_type[31] + 0)))
 val_t NEW_MMLocalClass_abstractmetamodel___MMLocalClass___init(val_t p0, val_t p1);
-#define ATTR_static_type___MMLocalClass____base_type_cache(recv) ATTR(recv, COLOR_static_type___MMLocalClass____base_type_cache)
 typedef val_t (* static_type___MMLocalClass___get_type_t)(val_t  self);
 val_t static_type___MMLocalClass___get_type(val_t  self);
 #define LOCATE_static_type___MMLocalClass___get_type "static_type::MMLocalClass::get_type"
 typedef void (* static_type___MMLocalClass___add_ancestor_t)(val_t  self, val_t  param0);
 void static_type___MMLocalClass___add_ancestor(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMLocalClass___add_ancestor "static_type::MMLocalClass::add_ancestor"
-#define ATTR_static_type___MMLocalClass____ancestors(recv) ATTR(recv, COLOR_static_type___MMLocalClass____ancestors)
 typedef val_t (* static_type___MMLocalClass___ancestors_t)(val_t  self);
 val_t static_type___MMLocalClass___ancestors(val_t  self);
 #define LOCATE_static_type___MMLocalClass___ancestors "static_type::MMLocalClass::ancestors"
@@ -116,30 +114,24 @@ typedef val_t (* static_type___MMLocalClass___ancestor_t)(val_t  self, val_t  pa
 val_t static_type___MMLocalClass___ancestor(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMLocalClass___ancestor "static_type::MMLocalClass::ancestor"
 val_t NEW_MMLocalProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t p1);
-#define ATTR_static_type___MMLocalProperty____signature(recv) ATTR(recv, COLOR_static_type___MMLocalProperty____signature)
 typedef val_t (* static_type___MMLocalProperty___signature_t)(val_t  self);
 val_t static_type___MMLocalProperty___signature(val_t  self);
 #define LOCATE_static_type___MMLocalProperty___signature "static_type::MMLocalProperty::signature"
 typedef void (* static_type___MMLocalProperty___signature__eq_t)(val_t  self, val_t  param0);
 void static_type___MMLocalProperty___signature__eq(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMLocalProperty___signature__eq "static_type::MMLocalProperty::signature="
-#define ATTR_static_type___MMLocalProperty____signatures_cache(recv) ATTR(recv, COLOR_static_type___MMLocalProperty____signatures_cache)
 typedef val_t (* static_type___MMLocalProperty___signature_for_t)(val_t  self, val_t  param0);
 val_t static_type___MMLocalProperty___signature_for(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMLocalProperty___signature_for "static_type::MMLocalProperty::signature_for"
 typedef val_t (* static_type___MMSignature___to_s_t)(val_t  self);
 val_t static_type___MMSignature___to_s(val_t  self);
 #define LOCATE_static_type___MMSignature___to_s "static_type::MMSignature::(string::Object::to_s)"
-#define ATTR_static_type___MMSignature____recv(recv) ATTR(recv, COLOR_static_type___MMSignature____recv)
 typedef val_t (* static_type___MMSignature___recv_t)(val_t  self);
 val_t static_type___MMSignature___recv(val_t  self);
 #define LOCATE_static_type___MMSignature___recv "static_type::MMSignature::recv"
-#define ATTR_static_type___MMSignature____params(recv) ATTR(recv, COLOR_static_type___MMSignature____params)
-#define ATTR_static_type___MMSignature____return_type(recv) ATTR(recv, COLOR_static_type___MMSignature____return_type)
 typedef val_t (* static_type___MMSignature___return_type_t)(val_t  self);
 val_t static_type___MMSignature___return_type(val_t  self);
 #define LOCATE_static_type___MMSignature___return_type "static_type::MMSignature::return_type"
-#define ATTR_static_type___MMSignature____closures(recv) ATTR(recv, COLOR_static_type___MMSignature____closures)
 typedef val_t (* static_type___MMSignature___closures_t)(val_t  self);
 val_t static_type___MMSignature___closures(val_t  self);
 #define LOCATE_static_type___MMSignature___closures "static_type::MMSignature::closures"
@@ -155,7 +147,6 @@ val_t static_type___MMSignature_____bra(val_t  self, val_t  param0);
 typedef val_t (* static_type___MMSignature___adaptation_to_t)(val_t  self, val_t  param0);
 val_t static_type___MMSignature___adaptation_to(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMSignature___adaptation_to "static_type::MMSignature::adaptation_to"
-#define ATTR_static_type___MMSignature____not_for_self_cache(recv) ATTR(recv, COLOR_static_type___MMSignature____not_for_self_cache)
 typedef val_t (* static_type___MMSignature___not_for_self_t)(val_t  self);
 val_t static_type___MMSignature___not_for_self(val_t  self);
 #define LOCATE_static_type___MMSignature___not_for_self "static_type::MMSignature::not_for_self"
@@ -163,15 +154,12 @@ typedef void (* static_type___MMSignature___init_t)(val_t  self, val_t  param0,
 void static_type___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_static_type___MMSignature___init "static_type::MMSignature::init"
 val_t NEW_MMSignature_static_type___MMSignature___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_static_type___MMClosure____signature(recv) ATTR(recv, COLOR_static_type___MMClosure____signature)
 typedef val_t (* static_type___MMClosure___signature_t)(val_t  self);
 val_t static_type___MMClosure___signature(val_t  self);
 #define LOCATE_static_type___MMClosure___signature "static_type::MMClosure::signature"
-#define ATTR_static_type___MMClosure____is_break(recv) ATTR(recv, COLOR_static_type___MMClosure____is_break)
 typedef val_t (* static_type___MMClosure___is_break_t)(val_t  self);
 val_t static_type___MMClosure___is_break(val_t  self);
 #define LOCATE_static_type___MMClosure___is_break "static_type::MMClosure::is_break"
-#define ATTR_static_type___MMClosure____is_optional(recv) ATTR(recv, COLOR_static_type___MMClosure____is_optional)
 typedef val_t (* static_type___MMClosure___is_optional_t)(val_t  self);
 val_t static_type___MMClosure___is_optional(val_t  self);
 #define LOCATE_static_type___MMClosure___is_optional "static_type::MMClosure::is_optional"
@@ -188,14 +176,12 @@ val_t static_type___MMClosure___not_for_self(val_t  self);
 typedef val_t (* static_type___MMAncestor___to_s_t)(val_t  self);
 val_t static_type___MMAncestor___to_s(val_t  self);
 #define LOCATE_static_type___MMAncestor___to_s "static_type::MMAncestor::(string::Object::to_s)"
-#define ATTR_static_type___MMAncestor____stype(recv) ATTR(recv, COLOR_static_type___MMAncestor____stype)
 typedef val_t (* static_type___MMAncestor___stype_t)(val_t  self);
 val_t static_type___MMAncestor___stype(val_t  self);
 #define LOCATE_static_type___MMAncestor___stype "static_type::MMAncestor::stype"
 typedef void (* static_type___MMAncestor___stype__eq_t)(val_t  self, val_t  param0);
 void static_type___MMAncestor___stype__eq(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMAncestor___stype__eq "static_type::MMAncestor::stype="
-#define ATTR_static_type___MMAncestor____inheriter(recv) ATTR(recv, COLOR_static_type___MMAncestor____inheriter)
 typedef val_t (* static_type___MMAncestor___inheriter_t)(val_t  self);
 val_t static_type___MMAncestor___inheriter(val_t  self);
 #define LOCATE_static_type___MMAncestor___inheriter "static_type::MMAncestor::inheriter"
@@ -258,7 +244,6 @@ val_t static_type___MMTypeClass_____l(val_t  self, val_t  param0);
 typedef val_t (* static_type___MMTypeClass___upcast_for_t)(val_t  self, val_t  param0);
 val_t static_type___MMTypeClass___upcast_for(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMTypeClass___upcast_for "static_type::MMTypeClass::(static_type::MMType::upcast_for)"
-#define ATTR_static_type___MMTypeClass____local_class(recv) ATTR(recv, COLOR_static_type___MMTypeClass____local_class)
 typedef void (* static_type___MMTypeClass___init_t)(val_t  self, val_t  param0, int* init_table);
 void static_type___MMTypeClass___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_static_type___MMTypeClass___init "static_type::MMTypeClass::init"
@@ -291,13 +276,11 @@ val_t static_type___MMTypeNone___is_supertype(val_t  self, val_t  param0);
 typedef val_t (* static_type___MMTypeNone___upcast_for_t)(val_t  self, val_t  param0);
 val_t static_type___MMTypeNone___upcast_for(val_t  self, val_t  param0);
 #define LOCATE_static_type___MMTypeNone___upcast_for "static_type::MMTypeNone::(static_type::MMType::upcast_for)"
-#define ATTR_static_type___MMTypeNone____module(recv) ATTR(recv, COLOR_static_type___MMTypeNone____module)
 typedef void (* static_type___MMTypeNone___init_t)(val_t  self, val_t  param0, int* init_table);
 void static_type___MMTypeNone___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_static_type___MMTypeNone___init "static_type::MMTypeNone::init"
 val_t NEW_MMTypeNone_static_type___MMTypeNone___init(val_t p0);
 val_t NEW_MMModule_abstractmetamodel___MMModule___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_static_type___MMModule____type_none(recv) ATTR(recv, COLOR_static_type___MMModule____type_none)
 typedef val_t (* static_type___MMModule___type_none_t)(val_t  self);
 val_t static_type___MMModule___type_none(val_t  self);
 #define LOCATE_static_type___MMModule___type_none "static_type::MMModule::type_none"
index 1f8e0cb..8ab0baf 100644 (file)
@@ -48,18 +48,18 @@ val_t stream___IStream___read(val_t  self, val_t  param0) {
     variable[5] = variable[4];
     if (UNTAG_Bool(variable[5])) { /* and */
       variable[5] = variable[0];
-      variable[5] = ((stream___IStream___eof_t)CALL(variable[5],COLOR_stream___IStream___eof))(variable[5]) /*IStream::eof*/;
+      variable[5] = CALL_stream___IStream___eof(variable[5])(variable[5]) /*IStream::eof*/;
       variable[5] =  TAG_Bool(!UNTAG_Bool(variable[5]));
     }
     variable[4] = variable[5];
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[5] = variable[0];
-    variable[5] = ((stream___IStream___read_char_t)CALL(variable[5],COLOR_stream___IStream___read_char))(variable[5]) /*IStream::read_char*/;
+    variable[5] = CALL_stream___IStream___read_char(variable[5])(variable[5]) /*IStream::read_char*/;
     variable[4] = variable[5];
     variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*c*/)>=UNTAG_Int( TAG_Int(0)));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = TAG_Char(UNTAG_Int( variable[4] /*c*/));
-      ((string___String___add_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*s*/, variable[5]) /*String::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[3] /*s*/)( variable[3] /*s*/, variable[5]) /*String::add*/;
       variable[1] = TAG_Int(UNTAG_Int(variable[1])-UNTAG_Int( TAG_Int(1))) /*i*/;
     }
     continue_1: while(0);
@@ -79,12 +79,12 @@ val_t stream___IStream___read_line(val_t  self) {
   trace.file = LOCATE_stream;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((stream___IStream___eof_t)CALL(variable[2],COLOR_stream___IStream___eof))(variable[2]) /*IStream::eof*/;
+  variable[2] = CALL_stream___IStream___eof(variable[2])(variable[2]) /*IStream::eof*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___IStream___read_line, LOCATE_stream, 47); nit_exit(1);}
   variable[3] = NEW_String_string___String___init(); /*new String*/
   variable[2] = variable[3];
   variable[3] = variable[0];
-  ((stream___IStream___append_line_to_t)CALL(variable[3],COLOR_stream___IStream___append_line_to))(variable[3],  variable[2] /*s*/) /*IStream::append_line_to*/;
+  CALL_stream___IStream___append_line_to(variable[3])(variable[3],  variable[2] /*s*/) /*IStream::append_line_to*/;
   variable[1] =  variable[2] /*s*/;
   goto return_label2;
   return_label2: while(false);
@@ -102,15 +102,15 @@ val_t stream___IStream___read_all(val_t  self) {
   variable[2] = variable[3];
   while (true) { /*while*/
     variable[3] = variable[0];
-    variable[3] = ((stream___IStream___eof_t)CALL(variable[3],COLOR_stream___IStream___eof))(variable[3]) /*IStream::eof*/;
+    variable[3] = CALL_stream___IStream___eof(variable[3])(variable[3]) /*IStream::eof*/;
     if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) break; /* while*/
     variable[4] = variable[0];
-    variable[4] = ((stream___IStream___read_char_t)CALL(variable[4],COLOR_stream___IStream___read_char))(variable[4]) /*IStream::read_char*/;
+    variable[4] = CALL_stream___IStream___read_char(variable[4])(variable[4]) /*IStream::read_char*/;
     variable[3] = variable[4];
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*c*/)>=UNTAG_Int( TAG_Int(0)));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = TAG_Char(UNTAG_Int( variable[3] /*c*/));
-      ((string___String___add_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*s*/, variable[4]) /*String::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[2] /*s*/)( variable[2] /*s*/, variable[4]) /*String::add*/;
     }
     continue_4: while(0);
   }
@@ -132,20 +132,20 @@ void stream___IStream___append_line_to(val_t  self, val_t  param0) {
   while (true) { /*while*/
     if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
     variable[4] = variable[0];
-    variable[4] = ((stream___IStream___read_char_t)CALL(variable[4],COLOR_stream___IStream___read_char))(variable[4]) /*IStream::read_char*/;
+    variable[4] = CALL_stream___IStream___read_char(variable[4])(variable[4]) /*IStream::read_char*/;
     variable[3] = variable[4];
     variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
     variable[4] = TAG_Bool(( variable[3] /*x*/)==(variable[4]));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((stream___IStream___eof_t)CALL(variable[4],COLOR_stream___IStream___eof))(variable[4]) /*IStream::eof*/;
+      variable[4] = CALL_stream___IStream___eof(variable[4])(variable[4]) /*IStream::eof*/;
       if (UNTAG_Bool(variable[4])) { /*if*/
         goto return_label5;
       }
     } else { /*if*/
       variable[5] = TAG_Char(UNTAG_Int( variable[3] /*x*/));
       variable[4] = variable[5];
-      ((array___AbstractArray___push_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___IndexedCollection___push))( variable[1] /*s*/,  variable[4] /*c*/) /*AbstractArray::push*/;
+      CALL_abstract_collection___IndexedCollection___push( variable[1] /*s*/)( variable[1] /*s*/,  variable[4] /*c*/) /*AbstractArray::push*/;
       variable[5] = TAG_Bool(( variable[4] /*c*/)==( TAG_Char('\n')));
       if (UNTAG_Bool(variable[5])) { /*if*/
         goto return_label5;
@@ -202,23 +202,23 @@ val_t stream___BufferedIStream___read_char(val_t  self) {
   trace.file = LOCATE_stream;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((stream___BufferedIStream___eof_t)CALL(variable[2],COLOR_stream___IStream___eof))(variable[2]) /*BufferedIStream::eof*/;
+  variable[2] = CALL_stream___IStream___eof(variable[2])(variable[2]) /*BufferedIStream::eof*/;
   if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___BufferedIStream___read_char, LOCATE_stream, 98); nit_exit(1);}
   variable[2] = variable[0];
   variable[2] = ATTR_stream___BufferedIStream____buffer_pos(variable[2]) /*BufferedIStream::_buffer_pos*/;
   variable[3] = variable[0];
   variable[3] = ATTR_stream___BufferedIStream____buffer(variable[3]) /*BufferedIStream::_buffer*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>=UNTAG_Int(variable[3]));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    ((stream___BufferedIStream___fill_buffer_t)CALL(variable[2],COLOR_stream___BufferedIStream___fill_buffer))(variable[2]) /*BufferedIStream::fill_buffer*/;
+    CALL_stream___BufferedIStream___fill_buffer(variable[2])(variable[2]) /*BufferedIStream::fill_buffer*/;
   }
   variable[2] = variable[0];
   variable[2] = ATTR_stream___BufferedIStream____buffer_pos(variable[2]) /*BufferedIStream::_buffer_pos*/;
   variable[3] = variable[0];
   variable[3] = ATTR_stream___BufferedIStream____buffer(variable[3]) /*BufferedIStream::_buffer*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>=UNTAG_Int(variable[3]));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
@@ -229,7 +229,7 @@ val_t stream___BufferedIStream___read_char(val_t  self) {
   variable[3] = ATTR_stream___BufferedIStream____buffer(variable[3]) /*BufferedIStream::_buffer*/;
   variable[4] = variable[0];
   variable[4] = ATTR_stream___BufferedIStream____buffer_pos(variable[4]) /*BufferedIStream::_buffer_pos*/;
-  variable[3] = ((string___String_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3], variable[4]) /*String::[]*/;
+  variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3], variable[4]) /*String::[]*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   ATTR_stream___BufferedIStream____buffer_pos(variable[3]) /*BufferedIStream::_buffer_pos*/ = TAG_Int(UNTAG_Int(ATTR_stream___BufferedIStream____buffer_pos(variable[3]) /*BufferedIStream::_buffer_pos*/)+UNTAG_Int( TAG_Int(1)));
@@ -255,7 +255,7 @@ val_t stream___BufferedIStream___read(val_t  self, val_t  param0) {
   variable[4] = variable[5];
   variable[6] = variable[0];
   variable[6] = ATTR_stream___BufferedIStream____buffer(variable[6]) /*BufferedIStream::_buffer*/;
-  variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
   variable[5] = variable[6];
   while (true) { /*while*/
     variable[6] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)>UNTAG_Int( TAG_Int(0)));
@@ -263,9 +263,9 @@ val_t stream___BufferedIStream___read(val_t  self, val_t  param0) {
     variable[6] = TAG_Bool(UNTAG_Int( variable[4] /*j*/)>=UNTAG_Int( variable[5] /*k*/));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
-      ((stream___BufferedIStream___fill_buffer_t)CALL(variable[6],COLOR_stream___BufferedIStream___fill_buffer))(variable[6]) /*BufferedIStream::fill_buffer*/;
+      CALL_stream___BufferedIStream___fill_buffer(variable[6])(variable[6]) /*BufferedIStream::fill_buffer*/;
       variable[6] = variable[0];
-      variable[6] = ((stream___BufferedIStream___eof_t)CALL(variable[6],COLOR_stream___IStream___eof))(variable[6]) /*BufferedIStream::eof*/;
+      variable[6] = CALL_stream___IStream___eof(variable[6])(variable[6]) /*BufferedIStream::eof*/;
       if (UNTAG_Bool(variable[6])) { /*if*/
         variable[2] =  variable[3] /*s*/;
         goto return_label8;
@@ -275,7 +275,7 @@ val_t stream___BufferedIStream___read(val_t  self, val_t  param0) {
       variable[4] = variable[6] /*j=*/;
       variable[6] = variable[0];
       variable[6] = ATTR_stream___BufferedIStream____buffer(variable[6]) /*BufferedIStream::_buffer*/;
-      variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+      variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
       variable[5] = variable[6] /*k=*/;
     }
     while (true) { /*while*/
@@ -288,8 +288,8 @@ val_t stream___BufferedIStream___read(val_t  self, val_t  param0) {
       if (!UNTAG_Bool(variable[6])) break; /* while*/
       variable[6] = variable[0];
       variable[6] = ATTR_stream___BufferedIStream____buffer(variable[6]) /*BufferedIStream::_buffer*/;
-      variable[6] = ((string___String_____bra_t)CALL(variable[6],COLOR_abstract_collection___Map_____bra))(variable[6],  variable[4] /*j*/) /*String::[]*/;
-      ((string___String___add_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*s*/, variable[6]) /*String::add*/;
+      variable[6] = CALL_abstract_collection___Map_____bra(variable[6])(variable[6],  variable[4] /*j*/) /*String::[]*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[3] /*s*/)( variable[3] /*s*/, variable[6]) /*String::add*/;
       variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*j*/;
       variable[1] = TAG_Int(UNTAG_Int(variable[1])-UNTAG_Int( TAG_Int(1))) /*i*/;
       continue_10: while(0);
@@ -317,22 +317,22 @@ val_t stream___BufferedIStream___read_all(val_t  self) {
   variable[2] = variable[3];
   while (true) { /*while*/
     variable[3] = variable[0];
-    variable[3] = ((stream___BufferedIStream___eof_t)CALL(variable[3],COLOR_stream___IStream___eof))(variable[3]) /*BufferedIStream::eof*/;
+    variable[3] = CALL_stream___IStream___eof(variable[3])(variable[3]) /*BufferedIStream::eof*/;
     if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) break; /* while*/
     variable[4] = variable[0];
     variable[4] = ATTR_stream___BufferedIStream____buffer_pos(variable[4]) /*BufferedIStream::_buffer_pos*/;
     variable[3] = variable[4];
     variable[5] = variable[0];
     variable[5] = ATTR_stream___BufferedIStream____buffer(variable[5]) /*BufferedIStream::_buffer*/;
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[4] = variable[5];
     while (true) { /*while*/
       variable[5] = TAG_Bool(UNTAG_Int( variable[3] /*j*/)<UNTAG_Int( variable[4] /*k*/));
       if (!UNTAG_Bool(variable[5])) break; /* while*/
       variable[5] = variable[0];
       variable[5] = ATTR_stream___BufferedIStream____buffer(variable[5]) /*BufferedIStream::_buffer*/;
-      variable[5] = ((string___String_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[3] /*j*/) /*String::[]*/;
-      ((string___String___add_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*s*/, variable[5]) /*String::add*/;
+      variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[3] /*j*/) /*String::[]*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[2] /*s*/)( variable[2] /*s*/, variable[5]) /*String::add*/;
       variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*j*/;
       continue_13: while(0);
     }
@@ -340,7 +340,7 @@ val_t stream___BufferedIStream___read_all(val_t  self) {
     variable[5] = variable[0];
     ATTR_stream___BufferedIStream____buffer_pos(variable[5]) /*BufferedIStream::_buffer_pos*/ =  variable[3] /*j*/;
     variable[5] = variable[0];
-    ((stream___BufferedIStream___fill_buffer_t)CALL(variable[5],COLOR_stream___BufferedIStream___fill_buffer))(variable[5]) /*BufferedIStream::fill_buffer*/;
+    CALL_stream___BufferedIStream___fill_buffer(variable[5])(variable[5]) /*BufferedIStream::fill_buffer*/;
     continue_12: while(0);
   }
   break_12: while(0);
@@ -366,13 +366,13 @@ void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0) {
     while (true) { /*while*/
       variable[4] = variable[0];
       variable[4] = ATTR_stream___BufferedIStream____buffer(variable[4]) /*BufferedIStream::_buffer*/;
-      variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+      variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
       variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int(variable[4]));
       variable[5] = variable[4];
       if (UNTAG_Bool(variable[5])) { /* and */
         variable[5] = variable[0];
         variable[5] = ATTR_stream___BufferedIStream____buffer(variable[5]) /*BufferedIStream::_buffer*/;
-        variable[5] = ((string___String_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[3] /*i*/) /*String::[]*/;
+        variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[3] /*i*/) /*String::[]*/;
         variable[5] = TAG_Bool((variable[5])!=( TAG_Char('\n')));
       }
       variable[4] = variable[5];
@@ -385,12 +385,12 @@ void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0) {
     variable[4] = ATTR_stream___BufferedIStream____buffer_pos(variable[4]) /*BufferedIStream::_buffer_pos*/;
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)>UNTAG_Int(variable[4]));
     if (UNTAG_Bool(variable[4])) { /*if*/
-      variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+      variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
       variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( variable[3] /*i*/));
       variable[5] = variable[0];
       variable[5] = ATTR_stream___BufferedIStream____buffer_pos(variable[5]) /*BufferedIStream::_buffer_pos*/;
       variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int(variable[5]));
-      ((string___String___enlarge_t)CALL( variable[1] /*s*/,COLOR_array___AbstractArray___enlarge))( variable[1] /*s*/, variable[4]) /*String::enlarge*/;
+      CALL_array___AbstractArray___enlarge( variable[1] /*s*/)( variable[1] /*s*/, variable[4]) /*String::enlarge*/;
       variable[5] = variable[0];
       variable[5] = ATTR_stream___BufferedIStream____buffer_pos(variable[5]) /*BufferedIStream::_buffer_pos*/;
       variable[4] = variable[5];
@@ -399,8 +399,8 @@ void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0) {
         if (!UNTAG_Bool(variable[5])) break; /* while*/
         variable[5] = variable[0];
         variable[5] = ATTR_stream___BufferedIStream____buffer(variable[5]) /*BufferedIStream::_buffer*/;
-        variable[5] = ((string___String_____bra_t)CALL(variable[5],COLOR_abstract_collection___Map_____bra))(variable[5],  variable[4] /*j*/) /*String::[]*/;
-        ((string___String___add_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[1] /*s*/, variable[5]) /*String::add*/;
+        variable[5] = CALL_abstract_collection___Map_____bra(variable[5])(variable[5],  variable[4] /*j*/) /*String::[]*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[1] /*s*/)( variable[1] /*s*/, variable[5]) /*String::add*/;
         variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*j*/;
         continue_17: while(0);
       }
@@ -408,7 +408,7 @@ void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0) {
     }
     variable[4] = variable[0];
     variable[4] = ATTR_stream___BufferedIStream____buffer(variable[4]) /*BufferedIStream::_buffer*/;
-    variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+    variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
     variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int(variable[4]));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
@@ -419,12 +419,12 @@ void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0) {
       variable[4] = variable[0];
       ATTR_stream___BufferedIStream____buffer_pos(variable[4]) /*BufferedIStream::_buffer_pos*/ =  variable[3] /*i*/;
       variable[4] = variable[0];
-      variable[4] = ((stream___BufferedIStream___end_reached_t)CALL(variable[4],COLOR_stream___BufferedIStream___end_reached))(variable[4]) /*BufferedIStream::end_reached*/;
+      variable[4] = CALL_stream___BufferedIStream___end_reached(variable[4])(variable[4]) /*BufferedIStream::end_reached*/;
       if (UNTAG_Bool(variable[4])) { /*if*/
         goto return_label14;
       } else { /*if*/
         variable[4] = variable[0];
-        ((stream___BufferedIStream___fill_buffer_t)CALL(variable[4],COLOR_stream___BufferedIStream___fill_buffer))(variable[4]) /*BufferedIStream::fill_buffer*/;
+        CALL_stream___BufferedIStream___fill_buffer(variable[4])(variable[4]) /*BufferedIStream::fill_buffer*/;
       }
     }
     continue_15: while(0);
@@ -445,12 +445,12 @@ val_t stream___BufferedIStream___eof(val_t  self) {
   variable[2] = ATTR_stream___BufferedIStream____buffer_pos(variable[2]) /*BufferedIStream::_buffer_pos*/;
   variable[3] = variable[0];
   variable[3] = ATTR_stream___BufferedIStream____buffer(variable[3]) /*BufferedIStream::_buffer*/;
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[2] = TAG_Bool(UNTAG_Int(variable[2])>=UNTAG_Int(variable[3]));
   variable[3] = variable[2];
   if (UNTAG_Bool(variable[3])) { /* and */
     variable[3] = variable[0];
-    variable[3] = ((stream___BufferedIStream___end_reached_t)CALL(variable[3],COLOR_stream___BufferedIStream___end_reached))(variable[3]) /*BufferedIStream::end_reached*/;
+    variable[3] = CALL_stream___BufferedIStream___end_reached(variable[3])(variable[3]) /*BufferedIStream::end_reached*/;
   }
   variable[2] = variable[3];
   variable[1] = variable[2];
@@ -510,7 +510,7 @@ void stream___FDStream___close(val_t  self) {
   variable[2] = variable[0];
   variable[3] = variable[0];
   variable[3] = ATTR_stream___FDStream____fd(variable[3]) /*FDStream::_fd*/;
-  ((stream___FDStream___native_close_t)CALL(variable[2],COLOR_stream___FDStream___native_close))(variable[2], variable[3]) /*FDStream::native_close*/;
+  CALL_stream___FDStream___native_close(variable[2])(variable[2], variable[3]) /*FDStream::native_close*/;
   return_label20: while(false);
   tracehead = trace.prev;
   return;
@@ -577,7 +577,7 @@ val_t stream___FDIStream___read_char(val_t  self) {
   variable[3] = variable[0];
   variable[4] = variable[0];
   variable[4] = ATTR_stream___FDStream____fd(variable[4]) /*FDStream::_fd*/;
-  variable[3] = ((stream___FDStream___native_read_char_t)CALL(variable[3],COLOR_stream___FDStream___native_read_char))(variable[3], variable[4]) /*FDStream::native_read_char*/;
+  variable[3] = CALL_stream___FDStream___native_read_char(variable[3])(variable[3], variable[4]) /*FDStream::native_read_char*/;
   variable[2] = variable[3];
   variable[3] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
   variable[3] = TAG_Bool(( variable[2] /*nb*/)==(variable[3]));
@@ -609,7 +609,7 @@ void stream___FDIStream___init(val_t  self, val_t  param0, int* init_table) {
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_FDIStream].i]) return;
-  ((stream___FDStream___init_t)CALL(variable[0],COLOR_stream___FDStream___init))(variable[0], variable[1], init_table /*YYY*/) /*FDStream::init*/;
+  CALL_stream___FDStream___init(variable[0])(variable[0], variable[1], init_table /*YYY*/) /*FDStream::init*/;
   return_label23: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_FDIStream].i] = 1;
   tracehead = trace.prev;
@@ -626,11 +626,11 @@ void stream___FDOStream___write(val_t  self, val_t  param0) {
   variable[4] = variable[0];
   variable[5] = variable[0];
   variable[5] = ATTR_stream___FDStream____fd(variable[5]) /*FDStream::_fd*/;
-  variable[6] = ((string___String___to_cstring_t)CALL( variable[1] /*s*/,COLOR_string___String___to_cstring))( variable[1] /*s*/) /*String::to_cstring*/;
-  variable[7] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
-  variable[4] = ((stream___FDStream___native_write_t)CALL(variable[4],COLOR_stream___FDStream___native_write))(variable[4], variable[5], variable[6], variable[7]) /*FDStream::native_write*/;
+  variable[6] = CALL_string___String___to_cstring( variable[1] /*s*/)( variable[1] /*s*/) /*String::to_cstring*/;
+  variable[7] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[4] = CALL_stream___FDStream___native_write(variable[4])(variable[4], variable[5], variable[6], variable[7]) /*FDStream::native_write*/;
   variable[3] = variable[4];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*nb*/)<UNTAG_Int(variable[4]));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
@@ -658,7 +658,7 @@ void stream___FDOStream___init(val_t  self, val_t  param0, int* init_table) {
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_FDOStream].i]) return;
-  ((stream___FDStream___init_t)CALL(variable[0],COLOR_stream___FDStream___init))(variable[0], variable[1], init_table /*YYY*/) /*FDStream::init*/;
+  CALL_stream___FDStream___init(variable[0])(variable[0], variable[1], init_table /*YYY*/) /*FDStream::init*/;
   variable[3] = variable[0];
   ATTR_stream___FDOStream____is_writable(variable[3]) /*FDOStream::_is_writable*/ =  TAG_Bool(true);
   return_label25: while(false);
@@ -675,8 +675,8 @@ void stream___FDIOStream___init(val_t  self, val_t  param0, int* init_table) {
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_FDIOStream].i]) return;
-  ((stream___FDIStream___init_t)CALL(variable[0],COLOR_stream___FDIStream___init))(variable[0], variable[1], init_table /*YYY*/) /*FDIStream::init*/;
-  ((stream___FDOStream___init_t)CALL(variable[0],COLOR_stream___FDOStream___init))(variable[0], variable[1], init_table /*YYY*/) /*FDOStream::init*/;
+  CALL_stream___FDIStream___init(variable[0])(variable[0], variable[1], init_table /*YYY*/) /*FDIStream::init*/;
+  CALL_stream___FDOStream___init(variable[0])(variable[0], variable[1], init_table /*YYY*/) /*FDOStream::init*/;
   variable[3] = variable[0];
   ATTR_stream___FDStream____fd(variable[3]) /*FDStream::_fd*/ =  variable[1] /*fd*/;
   variable[3] = variable[0];
index eecfac1..841cc0d 100644 (file)
@@ -24,59 +24,59 @@ extern const classtable_elt_t VFT_FDOStream[];
 extern const classtable_elt_t VFT_FDIOStream[];
 extern const char *LOCATE_stream;
 extern const int SFT_stream[];
-#define ID_IOS SFT_stream[0]
-#define COLOR_IOS SFT_stream[1]
-#define INIT_TABLE_POS_IOS SFT_stream[2]
-#define COLOR_stream___IOS___close SFT_stream[3]
-#define COLOR_stream___IOS___init SFT_stream[4]
-#define ID_IStream SFT_stream[5]
-#define COLOR_IStream SFT_stream[6]
-#define INIT_TABLE_POS_IStream SFT_stream[7]
-#define COLOR_stream___IStream___read_char SFT_stream[8]
-#define COLOR_stream___IStream___read SFT_stream[9]
-#define COLOR_stream___IStream___read_line SFT_stream[10]
-#define COLOR_stream___IStream___read_all SFT_stream[11]
-#define COLOR_stream___IStream___append_line_to SFT_stream[12]
-#define COLOR_stream___IStream___eof SFT_stream[13]
-#define ID_OStream SFT_stream[14]
-#define COLOR_OStream SFT_stream[15]
-#define INIT_TABLE_POS_OStream SFT_stream[16]
-#define COLOR_stream___OStream___write SFT_stream[17]
-#define COLOR_stream___OStream___is_writable SFT_stream[18]
-#define ID_BufferedIStream SFT_stream[19]
-#define COLOR_BufferedIStream SFT_stream[20]
-#define COLOR_stream___BufferedIStream____buffer SFT_stream[21]
-#define COLOR_stream___BufferedIStream____buffer_pos SFT_stream[22]
-#define INIT_TABLE_POS_BufferedIStream SFT_stream[23]
-#define COLOR_stream___BufferedIStream___fill_buffer SFT_stream[24]
-#define COLOR_stream___BufferedIStream___end_reached SFT_stream[25]
-#define COLOR_stream___BufferedIStream___prepare_buffer SFT_stream[26]
-#define ID_IOStream SFT_stream[27]
-#define COLOR_IOStream SFT_stream[28]
-#define INIT_TABLE_POS_IOStream SFT_stream[29]
-#define ID_FDStream SFT_stream[30]
-#define COLOR_FDStream SFT_stream[31]
-#define COLOR_stream___FDStream____fd SFT_stream[32]
-#define INIT_TABLE_POS_FDStream SFT_stream[33]
-#define COLOR_stream___FDStream___native_close SFT_stream[34]
-#define COLOR_stream___FDStream___native_read_char SFT_stream[35]
-#define COLOR_stream___FDStream___native_read SFT_stream[36]
-#define COLOR_stream___FDStream___native_write SFT_stream[37]
-#define COLOR_stream___FDStream___init SFT_stream[38]
-#define ID_FDIStream SFT_stream[39]
-#define COLOR_FDIStream SFT_stream[40]
-#define COLOR_stream___FDIStream____eof SFT_stream[41]
-#define INIT_TABLE_POS_FDIStream SFT_stream[42]
-#define COLOR_stream___FDIStream___init SFT_stream[43]
-#define ID_FDOStream SFT_stream[44]
-#define COLOR_FDOStream SFT_stream[45]
-#define COLOR_stream___FDOStream____is_writable SFT_stream[46]
-#define INIT_TABLE_POS_FDOStream SFT_stream[47]
-#define COLOR_stream___FDOStream___init SFT_stream[48]
-#define ID_FDIOStream SFT_stream[49]
-#define COLOR_FDIOStream SFT_stream[50]
-#define INIT_TABLE_POS_FDIOStream SFT_stream[51]
-#define COLOR_stream___FDIOStream___init SFT_stream[52]
+#define ID_IOS (SFT_stream[0])
+#define COLOR_IOS (SFT_stream[1])
+#define INIT_TABLE_POS_IOS (SFT_stream[2] + 0)
+#define CALL_stream___IOS___close(recv) ((stream___IOS___close_t)CALL((recv), (SFT_stream[2] + 1)))
+#define CALL_stream___IOS___init(recv) ((stream___IOS___init_t)CALL((recv), (SFT_stream[2] + 2)))
+#define ID_IStream (SFT_stream[3])
+#define COLOR_IStream (SFT_stream[4])
+#define INIT_TABLE_POS_IStream (SFT_stream[5] + 0)
+#define CALL_stream___IStream___read_char(recv) ((stream___IStream___read_char_t)CALL((recv), (SFT_stream[5] + 1)))
+#define CALL_stream___IStream___read(recv) ((stream___IStream___read_t)CALL((recv), (SFT_stream[5] + 2)))
+#define CALL_stream___IStream___read_line(recv) ((stream___IStream___read_line_t)CALL((recv), (SFT_stream[5] + 3)))
+#define CALL_stream___IStream___read_all(recv) ((stream___IStream___read_all_t)CALL((recv), (SFT_stream[5] + 4)))
+#define CALL_stream___IStream___append_line_to(recv) ((stream___IStream___append_line_to_t)CALL((recv), (SFT_stream[5] + 5)))
+#define CALL_stream___IStream___eof(recv) ((stream___IStream___eof_t)CALL((recv), (SFT_stream[5] + 6)))
+#define ID_OStream (SFT_stream[6])
+#define COLOR_OStream (SFT_stream[7])
+#define INIT_TABLE_POS_OStream (SFT_stream[8] + 0)
+#define CALL_stream___OStream___write(recv) ((stream___OStream___write_t)CALL((recv), (SFT_stream[8] + 1)))
+#define CALL_stream___OStream___is_writable(recv) ((stream___OStream___is_writable_t)CALL((recv), (SFT_stream[8] + 2)))
+#define ID_BufferedIStream (SFT_stream[9])
+#define COLOR_BufferedIStream (SFT_stream[10])
+#define ATTR_stream___BufferedIStream____buffer(recv) ATTR(recv, (SFT_stream[11] + 0))
+#define ATTR_stream___BufferedIStream____buffer_pos(recv) ATTR(recv, (SFT_stream[11] + 1))
+#define INIT_TABLE_POS_BufferedIStream (SFT_stream[12] + 0)
+#define CALL_stream___BufferedIStream___fill_buffer(recv) ((stream___BufferedIStream___fill_buffer_t)CALL((recv), (SFT_stream[12] + 1)))
+#define CALL_stream___BufferedIStream___end_reached(recv) ((stream___BufferedIStream___end_reached_t)CALL((recv), (SFT_stream[12] + 2)))
+#define CALL_stream___BufferedIStream___prepare_buffer(recv) ((stream___BufferedIStream___prepare_buffer_t)CALL((recv), (SFT_stream[12] + 3)))
+#define ID_IOStream (SFT_stream[13])
+#define COLOR_IOStream (SFT_stream[14])
+#define INIT_TABLE_POS_IOStream (SFT_stream[15] + 0)
+#define ID_FDStream (SFT_stream[16])
+#define COLOR_FDStream (SFT_stream[17])
+#define ATTR_stream___FDStream____fd(recv) ATTR(recv, (SFT_stream[18] + 0))
+#define INIT_TABLE_POS_FDStream (SFT_stream[19] + 0)
+#define CALL_stream___FDStream___native_close(recv) ((stream___FDStream___native_close_t)CALL((recv), (SFT_stream[19] + 1)))
+#define CALL_stream___FDStream___native_read_char(recv) ((stream___FDStream___native_read_char_t)CALL((recv), (SFT_stream[19] + 2)))
+#define CALL_stream___FDStream___native_read(recv) ((stream___FDStream___native_read_t)CALL((recv), (SFT_stream[19] + 3)))
+#define CALL_stream___FDStream___native_write(recv) ((stream___FDStream___native_write_t)CALL((recv), (SFT_stream[19] + 4)))
+#define CALL_stream___FDStream___init(recv) ((stream___FDStream___init_t)CALL((recv), (SFT_stream[19] + 5)))
+#define ID_FDIStream (SFT_stream[20])
+#define COLOR_FDIStream (SFT_stream[21])
+#define ATTR_stream___FDIStream____eof(recv) ATTR(recv, (SFT_stream[22] + 0))
+#define INIT_TABLE_POS_FDIStream (SFT_stream[23] + 0)
+#define CALL_stream___FDIStream___init(recv) ((stream___FDIStream___init_t)CALL((recv), (SFT_stream[23] + 1)))
+#define ID_FDOStream (SFT_stream[24])
+#define COLOR_FDOStream (SFT_stream[25])
+#define ATTR_stream___FDOStream____is_writable(recv) ATTR(recv, (SFT_stream[26] + 0))
+#define INIT_TABLE_POS_FDOStream (SFT_stream[27] + 0)
+#define CALL_stream___FDOStream___init(recv) ((stream___FDOStream___init_t)CALL((recv), (SFT_stream[27] + 1)))
+#define ID_FDIOStream (SFT_stream[28])
+#define COLOR_FDIOStream (SFT_stream[29])
+#define INIT_TABLE_POS_FDIOStream (SFT_stream[30] + 0)
+#define CALL_stream___FDIOStream___init(recv) ((stream___FDIOStream___init_t)CALL((recv), (SFT_stream[30] + 1)))
 typedef void (* stream___IOS___close_t)(val_t  self);
 void stream___IOS___close(val_t  self);
 #define LOCATE_stream___IOS___close "stream::IOS::close"
@@ -126,8 +126,6 @@ void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0);
 typedef val_t (* stream___BufferedIStream___eof_t)(val_t  self);
 val_t stream___BufferedIStream___eof(val_t  self);
 #define LOCATE_stream___BufferedIStream___eof "stream::BufferedIStream::(stream::IStream::eof)"
-#define ATTR_stream___BufferedIStream____buffer(recv) ATTR(recv, COLOR_stream___BufferedIStream____buffer)
-#define ATTR_stream___BufferedIStream____buffer_pos(recv) ATTR(recv, COLOR_stream___BufferedIStream____buffer_pos)
 typedef void (* stream___BufferedIStream___fill_buffer_t)(val_t  self);
 void stream___BufferedIStream___fill_buffer(val_t  self);
 #define LOCATE_stream___BufferedIStream___fill_buffer "stream::BufferedIStream::fill_buffer"
@@ -141,7 +139,6 @@ val_t NEW_IOStream_stream___IOS___init();
 typedef void (* stream___FDStream___close_t)(val_t  self);
 void stream___FDStream___close(val_t  self);
 #define LOCATE_stream___FDStream___close "stream::FDStream::(stream::IOS::close)"
-#define ATTR_stream___FDStream____fd(recv) ATTR(recv, COLOR_stream___FDStream____fd)
 typedef val_t (* stream___FDStream___native_close_t)(val_t  self, val_t  param0);
 val_t stream___FDStream___native_close(val_t  self, val_t  param0);
 #define LOCATE_stream___FDStream___native_close "stream::FDStream::native_close"
@@ -164,7 +161,6 @@ val_t stream___FDIStream___read_char(val_t  self);
 typedef val_t (* stream___FDIStream___eof_t)(val_t  self);
 val_t stream___FDIStream___eof(val_t  self);
 #define LOCATE_stream___FDIStream___eof "stream::FDIStream::(stream::IStream::eof)"
-#define ATTR_stream___FDIStream____eof(recv) ATTR(recv, COLOR_stream___FDIStream____eof)
 typedef void (* stream___FDIStream___init_t)(val_t  self, val_t  param0, int* init_table);
 void stream___FDIStream___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_stream___FDIStream___init "stream::FDIStream::init"
@@ -175,7 +171,6 @@ void stream___FDOStream___write(val_t  self, val_t  param0);
 typedef val_t (* stream___FDOStream___is_writable_t)(val_t  self);
 val_t stream___FDOStream___is_writable(val_t  self);
 #define LOCATE_stream___FDOStream___is_writable "stream::FDOStream::(stream::OStream::is_writable)"
-#define ATTR_stream___FDOStream____is_writable(recv) ATTR(recv, COLOR_stream___FDOStream____is_writable)
 typedef void (* stream___FDOStream___init_t)(val_t  self, val_t  param0, int* init_table);
 void stream___FDOStream___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_stream___FDOStream___init "stream::FDOStream::init"
index 7ae7824..692d7b6 100644 (file)
@@ -20,9 +20,9 @@ val_t string___String_____eqeq(val_t  self, val_t  param0) {
   variable[3] = TAG_Bool(( variable[1] /*o*/==NIT_NULL) || VAL_ISA( variable[1] /*o*/, COLOR_String, ID_String)) /*cast String*/;
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String_____eqeq, LOCATE_string, 297); nit_exit(1);}
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = variable[4];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*o*/,COLOR_abstract_collection___Collection___length))( variable[1] /*o*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*o*/)( variable[1] /*o*/) /*AbstractArray::length*/;
   variable[4] = TAG_Bool((variable[4])!=( variable[3] /*l*/));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  TAG_Bool(false);
@@ -64,7 +64,7 @@ void string___String___output(val_t  self) {
   variable[2] =  TAG_Int(0);
   while (true) { /*while*/
     variable[3] = variable[0];
-    variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+    variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
     variable[3] = TAG_Bool(UNTAG_Int( variable[2] /*i*/)<UNTAG_Int(variable[3]));
     if (!UNTAG_Bool(variable[3])) break; /* while*/
     variable[3] = variable[0];
@@ -106,18 +106,18 @@ void string___String_____braeq(val_t  self, val_t  param0, val_t  param1) {
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Bool(( variable[1] /*index*/)==(variable[4]));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((string___String___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[2] /*item*/) /*String::add*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[2] /*item*/) /*String::add*/;
     goto return_label5;
   }
   variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*index*/)>=UNTAG_Int( TAG_Int(0)));
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[5] = TAG_Bool(UNTAG_Int( variable[1] /*index*/)<UNTAG_Int(variable[5]));
   }
   variable[4] = variable[5];
@@ -140,19 +140,19 @@ void string___String___add(val_t  self, val_t  param0) {
   variable[3] = variable[0];
   variable[3] = ATTR_string___String____capacity(variable[3]) /*String::_capacity*/;
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[3] = TAG_Bool(UNTAG_Int(variable[3])<=UNTAG_Int(variable[4]));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = variable[0];
-    variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+    variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(5)));
-    ((string___String___enlarge_t)CALL(variable[3],COLOR_array___AbstractArray___enlarge))(variable[3], variable[4]) /*String::enlarge*/;
+    CALL_array___AbstractArray___enlarge(variable[3])(variable[3], variable[4]) /*String::enlarge*/;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_string___String____items(variable[3]) /*String::_items*/;
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   UNBOX_NativeString(variable[3])[UNTAG_Int(variable[4])]=UNTAG_Char( variable[1] /*c*/);
   variable[3] = variable[0];
   ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/)+UNTAG_Int( TAG_Int(1)));
@@ -170,31 +170,31 @@ void string___String___append(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = TAG_Bool(( variable[1] /*s*/==NIT_NULL) || VAL_ISA( variable[1] /*s*/, COLOR_String, ID_String)) /*cast String*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+    variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
     variable[3] = variable[4];
     variable[4] = variable[0];
     variable[4] = ATTR_string___String____capacity(variable[4]) /*String::_capacity*/;
     variable[5] = variable[0];
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( variable[3] /*sl*/));
     variable[4] = TAG_Bool(UNTAG_Int(variable[4])<UNTAG_Int(variable[5]));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
       variable[5] = variable[0];
-      variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+      variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
       variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( variable[3] /*sl*/));
-      ((string___String___enlarge_t)CALL(variable[4],COLOR_array___AbstractArray___enlarge))(variable[4], variable[5]) /*String::enlarge*/;
+      CALL_array___AbstractArray___enlarge(variable[4])(variable[4], variable[5]) /*String::enlarge*/;
     }
-    variable[4] = ((string___String___items_t)CALL( variable[1] /*s*/,COLOR_string___String___items))( variable[1] /*s*/) /*String::items*/;
+    variable[4] = CALL_string___String___items( variable[1] /*s*/)( variable[1] /*s*/) /*String::items*/;
     variable[5] = variable[0];
     variable[5] = ATTR_string___String____items(variable[5]) /*String::_items*/;
     variable[6] = variable[0];
-    variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+    variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
     (void)memcpy(UNBOX_NativeString(variable[5])+UNTAG_Int(variable[6]), UNBOX_NativeString(variable[4])+UNTAG_Int( TAG_Int(0)), UNTAG_Int( variable[3] /*sl*/));
     variable[4] = variable[0];
     ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length(variable[4]) /*AbstractArray::_length*/)+UNTAG_Int( variable[3] /*sl*/));
   } else { /*if*/
-    ((string___String___append_t)CALL(variable[0],COLOR_SUPER_string___String___append))(variable[0], variable[1]) /*super String::append*/;
+    CALL_SUPER_string___String___append(variable[0])(variable[0], variable[1]) /*super String::append*/;
   }
   return_label7: while(false);
   tracehead = trace.prev;
@@ -230,7 +230,7 @@ void string___String___enlarge(val_t  self, val_t  param0) {
   variable[5] = variable[0];
   variable[5] = ATTR_string___String____items(variable[5]) /*String::_items*/;
   variable[6] = variable[0];
-  variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
   (void)memcpy(UNBOX_NativeString( variable[4] /*a*/)+UNTAG_Int( TAG_Int(0)), UNBOX_NativeString(variable[5])+UNTAG_Int( TAG_Int(0)), UNTAG_Int(variable[6]));
   variable[5] = variable[0];
   ATTR_string___String____items(variable[5]) /*String::_items*/ =  variable[4] /*a*/;
@@ -266,9 +266,9 @@ val_t string___String_____l(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] =  TAG_Int(0);
   variable[5] = variable[0];
-  variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
   variable[4] = variable[5];
-  variable[6] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[5] = variable[6];
   while (true) { /*while*/
     variable[6] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l1*/));
@@ -279,10 +279,10 @@ val_t string___String_____l(val_t  self, val_t  param0) {
     variable[6] = variable[7];
     if (!UNTAG_Bool(variable[6])) break; /* while*/
     variable[7] = variable[0];
-    variable[7] = ((string___String_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[3] /*i*/) /*String::[]*/;
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[3] /*i*/) /*String::[]*/;
     variable[7] = TAG_Int((unsigned char)UNTAG_Char(variable[7]));
     variable[6] = variable[7];
-    variable[8] = ((string___String_____bra_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____bra))( variable[1] /*s*/,  variable[3] /*i*/) /*String::[]*/;
+    variable[8] = CALL_abstract_collection___Map_____bra( variable[1] /*s*/)( variable[1] /*s*/,  variable[3] /*i*/) /*String::[]*/;
     variable[8] = TAG_Int((unsigned char)UNTAG_Char(variable[8]));
     variable[7] = variable[8];
     variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*c1*/)<UNTAG_Int( variable[7] /*c2*/));
@@ -321,15 +321,15 @@ val_t string___String_____plus(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int(variable[5]));
   variable[5] = NEW_String_string___String___with_capacity(variable[4]); /*new String*/
   variable[4] = variable[5];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((string___String___append_t)CALL( variable[3] /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*r*/, variable[4]) /*String::append*/;
-  ((string___String___append_t)CALL( variable[3] /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*r*/,  variable[1] /*s*/) /*String::append*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*r*/)( variable[3] /*r*/, variable[4]) /*String::append*/;
+  CALL_abstract_collection___IndexedCollection___append( variable[3] /*r*/)( variable[3] /*r*/,  variable[1] /*s*/) /*String::append*/;
   variable[2] =  variable[3] /*r*/;
   goto return_label13;
   return_label13: while(false);
@@ -347,7 +347,7 @@ val_t string___String_____star(val_t  self, val_t  param0) {
   variable[3] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)>=UNTAG_Int( TAG_Int(0)));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String_____star, LOCATE_string, 85); nit_exit(1);}
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])*UNTAG_Int( variable[1] /*i*/));
   variable[5] = NEW_String_string___String___with_capacity(variable[4]); /*new String*/
   variable[4] = variable[5];
@@ -356,7 +356,7 @@ val_t string___String_____star(val_t  self, val_t  param0) {
     variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*i*/)>UNTAG_Int( TAG_Int(0)));
     if (!UNTAG_Bool(variable[4])) break; /* while*/
     variable[4] = variable[0];
-    ((string___String___append_t)CALL( variable[3] /*r*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*r*/, variable[4]) /*String::append*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*r*/)( variable[3] /*r*/, variable[4]) /*String::append*/;
     variable[1] = TAG_Int(UNTAG_Int(variable[1])-UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_15: while(0);
   }
@@ -375,7 +375,7 @@ val_t string___String___to_i(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___String___to_cstring_t)CALL(variable[2],COLOR_string___String___to_cstring))(variable[2]) /*String::to_cstring*/;
+  variable[2] = CALL_string___String___to_cstring(variable[2])(variable[2]) /*String::to_cstring*/;
   variable[2] = TAG_Int(atoi(UNBOX_NativeString(variable[2])));
   variable[1] = variable[2];
   goto return_label16;
@@ -391,7 +391,7 @@ val_t string___String___to_hex(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___String___a_to_t)CALL(variable[2],COLOR_string___String___a_to))(variable[2],  TAG_Int(16)) /*String::a_to*/;
+  variable[2] = CALL_string___String___a_to(variable[2])(variable[2],  TAG_Int(16)) /*String::a_to*/;
   variable[1] = variable[2];
   goto return_label17;
   return_label17: while(false);
@@ -409,13 +409,13 @@ val_t string___String___a_to(val_t  self, val_t  param0) {
   variable[3] =  TAG_Int(0);
   variable[4] =  TAG_Bool(false);
   variable[5] = variable[0];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[9] = ((kernel___Char___to_i_t)CALL( variable[7] /*c*/,COLOR_kernel___Char___to_i))( variable[7] /*c*/) /*Char::to_i*/;
+    variable[9] = CALL_kernel___Char___to_i( variable[7] /*c*/)( variable[7] /*c*/) /*Char::to_i*/;
     variable[8] = variable[9];
     variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*v*/)>UNTAG_Int( variable[1] /*base*/));
     if (UNTAG_Bool(variable[9])) { /*if*/
@@ -438,7 +438,7 @@ val_t string___String___a_to(val_t  self, val_t  param0) {
       }
     }
     continue_19: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_19: while(0);
   if (UNTAG_Bool( variable[4] /*neg*/)) { /*if*/
@@ -462,8 +462,8 @@ val_t string___String___to_cstring(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[3] = variable[0];
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
-  ((string___String_____braeq_t)CALL(variable[2],COLOR_abstract_collection___Map_____braeq))(variable[2], variable[3],  TAG_Char('\0')) /*String::[]=*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
+  CALL_abstract_collection___Map_____braeq(variable[2])(variable[2], variable[3],  TAG_Char('\0')) /*String::[]=*/;
   variable[2] = variable[0];
   ATTR_array___AbstractArray____length(variable[2]) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length(variable[2]) /*AbstractArray::_length*/)-UNTAG_Int( TAG_Int(1)));
   variable[2] = variable[0];
@@ -491,11 +491,11 @@ val_t string___String___substring(val_t  self, val_t  param0, val_t  param1) {
     variable[1] =  TAG_Int(0) /*from=*/;
   }
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Bool(UNTAG_Int( variable[2] /*count*/)>UNTAG_Int(variable[4]));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+    variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
     variable[2] = variable[4] /*count=*/;
   }
   variable[4] = TAG_Bool(UNTAG_Int( variable[1] /*from*/)<UNTAG_Int( variable[2] /*count*/));
@@ -510,7 +510,7 @@ val_t string___String___substring(val_t  self, val_t  param0, val_t  param1) {
       variable[5] = variable[0];
       variable[5] = ATTR_string___String____items(variable[5]) /*String::_items*/;
       variable[5] = TAG_Char(UNBOX_NativeString(variable[5])[UNTAG_Int( variable[1] /*from*/)]);
-      ((array___AbstractArray___push_t)CALL( variable[4] /*r*/,COLOR_abstract_collection___IndexedCollection___push))( variable[4] /*r*/, variable[5]) /*AbstractArray::push*/;
+      CALL_abstract_collection___IndexedCollection___push( variable[4] /*r*/)( variable[4] /*r*/, variable[5]) /*AbstractArray::push*/;
       variable[1] = TAG_Int(UNTAG_Int(variable[1])+UNTAG_Int( TAG_Int(1))) /*from*/;
       continue_22: while(0);
     }
@@ -535,14 +535,14 @@ val_t string___String___substring_from(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[3] = TAG_Bool(UNTAG_Int( variable[1] /*from*/)<UNTAG_Int(variable[3]));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string___String___substring_from, LOCATE_string, 174); nit_exit(1);}
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( variable[1] /*from*/));
-  variable[3] = ((string___String___substring_t)CALL(variable[3],COLOR_string___String___substring))(variable[3],  variable[1] /*from*/, variable[4]) /*String::substring*/;
+  variable[3] = CALL_string___String___substring(variable[3])(variable[3],  variable[1] /*from*/, variable[4]) /*String::substring*/;
   variable[2] = variable[3];
   goto return_label23;
   return_label23: while(false);
@@ -558,7 +558,7 @@ val_t string___String___has_substring(val_t  self, val_t  param0, val_t  param1)
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*str*/,COLOR_abstract_collection___Collection___length))( variable[1] /*str*/) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*str*/)( variable[1] /*str*/) /*AbstractArray::length*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int( TAG_Int(1)));
   variable[4] = variable[5];
   variable[6] = TAG_Int(UNTAG_Int( variable[2] /*pos*/)+UNTAG_Int( variable[4] /*itsindex*/));
@@ -569,7 +569,7 @@ val_t string___String___has_substring(val_t  self, val_t  param0, val_t  param1)
   variable[8] = ATTR_string___String____items( variable[1] /*str*/) /*String::_items*/;
   variable[7] = variable[8];
   variable[8] = variable[0];
-  variable[8] = ((array___AbstractArray___length_t)CALL(variable[8],COLOR_abstract_collection___Collection___length))(variable[8]) /*AbstractArray::length*/;
+  variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*AbstractArray::length*/;
   variable[8] = TAG_Bool(UNTAG_Int( variable[5] /*myindex*/)>UNTAG_Int(variable[8]));
   variable[9] = variable[8];
   if (!UNTAG_Bool(variable[9])) { /* or */
@@ -610,7 +610,7 @@ val_t string___String___has_prefix(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((string___String___has_substring_t)CALL(variable[3],COLOR_string___String___has_substring))(variable[3],  variable[1] /*prefix*/,  TAG_Int(0)) /*String::has_substring*/;
+  variable[3] = CALL_string___String___has_substring(variable[3])(variable[3],  variable[1] /*prefix*/,  TAG_Int(0)) /*String::has_substring*/;
   variable[2] = variable[3];
   goto return_label26;
   return_label26: while(false);
@@ -627,10 +627,10 @@ val_t string___String___has_suffix(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(variable[4]) /*AbstractArray::length*/;
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*suffix*/,COLOR_abstract_collection___Collection___length))( variable[1] /*suffix*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length(variable[4])(variable[4]) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*suffix*/)( variable[1] /*suffix*/) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int(variable[5]));
-  variable[3] = ((string___String___has_substring_t)CALL(variable[3],COLOR_string___String___has_substring))(variable[3],  variable[1] /*suffix*/, variable[4]) /*String::has_substring*/;
+  variable[3] = CALL_string___String___has_substring(variable[3])(variable[3],  variable[1] /*suffix*/, variable[4]) /*String::has_substring*/;
   variable[2] = variable[3];
   goto return_label27;
   return_label27: while(false);
@@ -646,7 +646,7 @@ void string___String___init(val_t  self, int* init_table) {
   variable[0] =  self;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return;
   variable[2] = variable[0];
-  ((string___String___with_capacity_t)CALL(variable[2],COLOR_string___String___with_capacity))(variable[2],  TAG_Int(5), init_table /*YYY*/) /*String::with_capacity*/;
+  CALL_string___String___with_capacity(variable[2])(variable[2],  TAG_Int(5), init_table /*YYY*/) /*String::with_capacity*/;
   return_label28: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i] = 1;
   tracehead = trace.prev;
@@ -662,11 +662,11 @@ void string___String___from(val_t  self, val_t  param0, int* init_table) {
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return;
   variable[3] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1)));
   ATTR_string___String____capacity(variable[3]) /*String::_capacity*/ = variable[4];
   variable[3] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   ATTR_array___AbstractArray____length(variable[3]) /*AbstractArray::_length*/ = variable[4];
   variable[3] = variable[0];
   variable[4] = variable[0];
@@ -674,7 +674,7 @@ void string___String___from(val_t  self, val_t  param0, int* init_table) {
   variable[5] = ATTR_string___String____capacity(variable[5]) /*String::_capacity*/;
   variable[4] = BOX_NativeString((char*)malloc((UNTAG_Int(variable[5]) * sizeof(char))));
   ATTR_string___String____items(variable[3]) /*String::_items*/ = variable[4];
-  variable[3] = ((string___String___items_t)CALL( variable[1] /*s*/,COLOR_string___String___items))( variable[1] /*s*/) /*String::items*/;
+  variable[3] = CALL_string___String___items( variable[1] /*s*/)( variable[1] /*s*/) /*String::items*/;
   variable[4] = variable[0];
   variable[4] = ATTR_string___String____items(variable[4]) /*String::_items*/;
   variable[5] = variable[0];
@@ -741,7 +741,7 @@ void string___String___from_cstring(val_t  self, val_t  param0, int* init_table)
   variable[0] =  self;
   variable[1] =  param0;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return;
-  variable[4] = ((string___NativeString___cstring_length_t)CALL( variable[1] /*str*/,COLOR_string___NativeString___cstring_length))( variable[1] /*str*/) /*NativeString::cstring_length*/;
+  variable[4] = CALL_string___NativeString___cstring_length( variable[1] /*str*/)( variable[1] /*str*/) /*NativeString::cstring_length*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
   ATTR_string___String____items(variable[4]) /*String::_items*/ =  variable[1] /*str*/;
@@ -766,7 +766,7 @@ void string___String___filled_with(val_t  self, val_t  param0, val_t  param1, in
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_String].i]) return;
   variable[4] = variable[0];
-  ((string___String___with_capacity_t)CALL(variable[4],COLOR_string___String___with_capacity))(variable[4],  variable[2] /*count*/, init_table /*YYY*/) /*String::with_capacity*/;
+  CALL_string___String___with_capacity(variable[4])(variable[4],  variable[2] /*count*/, init_table /*YYY*/) /*String::with_capacity*/;
   variable[4] =  TAG_Int(0);
   while (true) { /*while*/
     variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*i*/)<UNTAG_Int( variable[2] /*count*/));
@@ -793,21 +793,21 @@ val_t string___String___to_upper(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[4] = NEW_String_string___String___with_capacity(variable[3]); /*new String*/
   variable[3] = variable[4];
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((kernel___Char___to_upper_t)CALL( variable[5] /*i*/,COLOR_kernel___Char___to_upper))( variable[5] /*i*/) /*Char::to_upper*/;
-    ((string___String___add_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*s*/, variable[6]) /*String::add*/;
+    variable[6] = CALL_kernel___Char___to_upper( variable[5] /*i*/)( variable[5] /*i*/) /*Char::to_upper*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*s*/)( variable[2] /*s*/, variable[6]) /*String::add*/;
     continue_36: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_36: while(0);
   variable[1] =  variable[2] /*s*/;
@@ -824,21 +824,21 @@ val_t string___String___to_lower(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((array___AbstractArray___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*AbstractArray::length*/;
+  variable[3] = CALL_abstract_collection___Collection___length(variable[3])(variable[3]) /*AbstractArray::length*/;
   variable[4] = NEW_String_string___String___with_capacity(variable[3]); /*new String*/
   variable[3] = variable[4];
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((array___AbstractArray___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*AbstractArray::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((array___ArrayIterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*ArrayIterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((array___ArrayIterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*ArrayIterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*ArrayIterator::item*/;
     variable[5] = variable[4];
-    variable[6] = ((kernel___Char___to_lower_t)CALL( variable[5] /*i*/,COLOR_kernel___Char___to_lower))( variable[5] /*i*/) /*Char::to_lower*/;
-    ((string___String___add_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*s*/, variable[6]) /*String::add*/;
+    variable[6] = CALL_kernel___Char___to_lower( variable[5] /*i*/)( variable[5] /*i*/) /*Char::to_lower*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[2] /*s*/)( variable[2] /*s*/, variable[6]) /*String::add*/;
     continue_38: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*ArrayIterator::next*/;
   }
   break_38: while(0);
   variable[1] =  variable[2] /*s*/;
@@ -873,7 +873,7 @@ val_t string___Object___to_s(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___Object___inspect_t)CALL(variable[2],COLOR_string___Object___inspect))(variable[2]) /*Object::inspect*/;
+  variable[2] = CALL_string___Object___inspect(variable[2])(variable[2]) /*Object::inspect*/;
   variable[1] = variable[2];
   goto return_label39;
   return_label39: while(false);
@@ -888,9 +888,9 @@ val_t string___Object___inspect(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((string___Object___inspect_head_t)CALL(variable[3],COLOR_string___Object___inspect_head))(variable[3]) /*Object::inspect_head*/;
+  variable[3] = CALL_string___Object___inspect_head(variable[3])(variable[3]) /*Object::inspect_head*/;
   variable[2] = variable[3];
-  ((string___String___add_t)CALL( variable[2] /*r*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*r*/,  TAG_Char('>')) /*String::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[2] /*r*/)( variable[2] /*r*/,  TAG_Char('>')) /*String::add*/;
   variable[1] =  variable[2] /*r*/;
   goto return_label40;
   return_label40: while(false);
@@ -904,18 +904,19 @@ val_t string___Object___inspect_head(val_t  self) {
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_string;
   variable[0] =  self;
-  variable[2] = NEW_String_string___String___init(); /*new String*/
+  variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
   variable[4] = variable[3];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[4]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[4]) /*AbstractArray::add*/;
   variable[5] = variable[0];
   variable[5] = TAG_Int((bigint)variable[5]);
-  variable[5] = ((string___Int___to_hex_t)CALL(variable[5],COLOR_string___Int___to_hex))(variable[5]) /*Int::to_hex*/;
+  variable[5] = CALL_string___Int___to_hex(variable[5])(variable[5]) /*Int::to_hex*/;
   variable[6] = variable[5];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[6]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[6]) /*AbstractArray::add*/;
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[2],COLOR_abstract_collection___IndexedCollection___append))(variable[2], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[8]) /*AbstractArray::add*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Object::to_s*/;
   variable[1] = variable[2];
   goto return_label41;
   return_label41: while(false);
@@ -931,7 +932,7 @@ val_t string___Object___args(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = (G_sys);
-  variable[2] = ((string___Sys___args_t)CALL(variable[2],COLOR_string___Object___args))(variable[2]) /*Sys::args*/;
+  variable[2] = CALL_string___Object___args(variable[2])(variable[2]) /*Sys::args*/;
   variable[1] = variable[2];
   goto return_label42;
   return_label42: while(false);
@@ -979,7 +980,7 @@ val_t string___Int___to_s(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___Int___to_base_t)CALL(variable[2],COLOR_string___Int___to_base))(variable[2],  TAG_Int(10),  TAG_Bool(true)) /*Int::to_base*/;
+  variable[2] = CALL_string___Int___to_base(variable[2])(variable[2],  TAG_Int(10),  TAG_Bool(true)) /*Int::to_base*/;
   variable[1] = variable[2];
   goto return_label46;
   return_label46: while(false);
@@ -1003,12 +1004,12 @@ void string___Int___fill_string(val_t  self, val_t  param0, val_t  param1, val_t
     variable[6] = variable[0];
     variable[6] = TAG_Int(-UNTAG_Int(variable[6]));
     variable[5] = variable[6] /*n=*/;
-    ((string___String_____braeq_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*s*/,  TAG_Int(0),  TAG_Char('-')) /*String::[]=*/;
+    CALL_abstract_collection___Map_____braeq( variable[1] /*s*/)( variable[1] /*s*/,  TAG_Int(0),  TAG_Char('-')) /*String::[]=*/;
   } else { /*if*/
     variable[6] = variable[0];
     variable[6] = TAG_Bool((variable[6])==( TAG_Int(0)));
     if (UNTAG_Bool(variable[6])) { /*if*/
-      ((string___String_____braeq_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*s*/,  TAG_Int(0),  TAG_Char('0')) /*String::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[1] /*s*/)( variable[1] /*s*/,  TAG_Int(0),  TAG_Char('0')) /*String::[]=*/;
       goto return_label47;
     } else { /*if*/
       variable[6] = variable[0];
@@ -1016,7 +1017,7 @@ void string___Int___fill_string(val_t  self, val_t  param0, val_t  param1, val_t
     }
   }
   variable[7] = variable[0];
-  variable[7] = ((kernel___Int___digit_count_t)CALL(variable[7],COLOR_kernel___Int___digit_count))(variable[7],  variable[2] /*base*/) /*Int::digit_count*/;
+  variable[7] = CALL_kernel___Int___digit_count(variable[7])(variable[7],  variable[2] /*base*/) /*Int::digit_count*/;
   variable[7] = TAG_Int(UNTAG_Int(variable[7])-UNTAG_Int( TAG_Int(1)));
   variable[6] = variable[7];
   while (true) { /*while*/
@@ -1028,8 +1029,8 @@ void string___Int___fill_string(val_t  self, val_t  param0, val_t  param1, val_t
     variable[7] = variable[8];
     if (!UNTAG_Bool(variable[7])) break; /* while*/
     variable[7] = TAG_Int(UNTAG_Int( variable[5] /*n*/)%UNTAG_Int( variable[2] /*base*/));
-    variable[7] = ((kernel___Int___to_c_t)CALL(variable[7],COLOR_kernel___Int___to_c))(variable[7]) /*Int::to_c*/;
-    ((string___String_____braeq_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____braeq))( variable[1] /*s*/,  variable[6] /*pos*/, variable[7]) /*String::[]=*/;
+    variable[7] = CALL_kernel___Int___to_c(variable[7])(variable[7]) /*Int::to_c*/;
+    CALL_abstract_collection___Map_____braeq( variable[1] /*s*/)( variable[1] /*s*/,  variable[6] /*pos*/, variable[7]) /*String::[]=*/;
     variable[7] = TAG_Int(UNTAG_Int( variable[5] /*n*/)/UNTAG_Int( variable[2] /*base*/));
     variable[5] = variable[7] /*n=*/;
     variable[6] = TAG_Int(UNTAG_Int(variable[6])-UNTAG_Int( TAG_Int(1))) /*pos*/;
@@ -1048,7 +1049,7 @@ val_t string___Int___to_hex(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___Int___to_base_t)CALL(variable[2],COLOR_string___Int___to_base))(variable[2],  TAG_Int(16),  TAG_Bool(false)) /*Int::to_base*/;
+  variable[2] = CALL_string___Int___to_base(variable[2])(variable[2],  TAG_Int(16),  TAG_Bool(false)) /*Int::to_base*/;
   variable[1] = variable[2];
   goto return_label49;
   return_label49: while(false);
@@ -1065,12 +1066,12 @@ val_t string___Int___to_base(val_t  self, val_t  param0, val_t  param1) {
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ((kernel___Int___digit_count_t)CALL(variable[5],COLOR_kernel___Int___digit_count))(variable[5],  variable[1] /*base*/) /*Int::digit_count*/;
+  variable[5] = CALL_kernel___Int___digit_count(variable[5])(variable[5],  variable[1] /*base*/) /*Int::digit_count*/;
   variable[4] = variable[5];
   variable[6] = NEW_String_string___String___filled_with( TAG_Char(' '),  variable[4] /*l*/); /*new String*/
   variable[5] = variable[6];
   variable[6] = variable[0];
-  ((string___Int___fill_string_t)CALL(variable[6],COLOR_string___Int___fill_string))(variable[6],  variable[5] /*s*/,  variable[1] /*base*/,  variable[2] /*signed*/) /*Int::fill_string*/;
+  CALL_string___Int___fill_string(variable[6])(variable[6],  variable[5] /*s*/,  variable[1] /*base*/,  variable[2] /*signed*/) /*Int::fill_string*/;
   variable[3] =  variable[5] /*s*/;
   goto return_label50;
   return_label50: while(false);
@@ -1085,7 +1086,7 @@ val_t string___Float___to_s(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___Float___to_precision_t)CALL(variable[2],COLOR_string___Float___to_precision))(variable[2],  TAG_Int(6)) /*Float::to_precision*/;
+  variable[2] = CALL_string___Float___to_precision(variable[2])(variable[2],  TAG_Int(6)) /*Float::to_precision*/;
   variable[1] = variable[2];
   goto return_label51;
   return_label51: while(false);
@@ -1104,7 +1105,7 @@ val_t string___Float___to_precision(val_t  self, val_t  param0) {
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = TAG_Int((bigint)UNBOX_Float(variable[3]));
-    variable[3] = ((string___Int___to_s_t)CALL(variable[3],COLOR_string___Object___to_s))(variable[3]) /*Int::to_s*/;
+    variable[3] = CALL_string___Object___to_s(variable[3])(variable[3]) /*Int::to_s*/;
     variable[2] = variable[3];
     goto return_label52;
   }
@@ -1129,22 +1130,23 @@ val_t string___Float___to_precision(val_t  self, val_t  param0) {
   variable[6] = BOX_Float(UNBOX_Float(variable[6])*UNBOX_Float( variable[4] /*dec*/));
   variable[6] = TAG_Int((bigint)UNBOX_Float(variable[6]));
   variable[5] = variable[6];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[3] /*i*/;
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[5] /*d*/;
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
   variable[2] = variable[6];
   goto return_label52;
   return_label52: while(false);
@@ -1161,7 +1163,7 @@ val_t string___Char___to_s(val_t  self) {
   variable[3] = NEW_String_string___String___with_capacity( TAG_Int(1)); /*new String*/
   variable[2] = variable[3];
   variable[3] = variable[0];
-  ((string___String_____braeq_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*s*/,  TAG_Int(0), variable[3]) /*String::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*s*/)( variable[2] /*s*/,  TAG_Int(0), variable[3]) /*String::[]=*/;
   variable[1] =  variable[2] /*s*/;
   goto return_label54;
   return_label54: while(false);
@@ -1178,19 +1180,19 @@ val_t string___Collection___to_s(val_t  self) {
   variable[3] = NEW_String_string___String___init(); /*new String*/
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
+  variable[3] = CALL_abstract_collection___Collection___iterator(variable[3])(variable[3]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
+    variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[4])) break; /*for*/
-    variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
+    variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/;
     variable[5] = variable[4];
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*e*/)( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[6])) { /*if*/
-      variable[6] = ((string___Object___to_s_t)CALL( variable[5] /*e*/,COLOR_string___Object___to_s))( variable[5] /*e*/) /*Object::to_s*/;
-      ((string___String___append_t)CALL( variable[2] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[2] /*s*/, variable[6]) /*String::append*/;
+      variable[6] = CALL_string___Object___to_s( variable[5] /*e*/)( variable[5] /*e*/) /*Object::to_s*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[2] /*s*/)( variable[2] /*s*/, variable[6]) /*String::append*/;
     }
     continue_56: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
   }
   break_56: while(0);
   variable[1] =  variable[2] /*s*/;
@@ -1208,7 +1210,7 @@ val_t string___Collection___join(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___Collection___is_empty_t)CALL(variable[3],COLOR_abstract_collection___Collection___is_empty))(variable[3]) /*Collection::is_empty*/;
+  variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*Collection::is_empty*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[2] = variable[3];
@@ -1217,28 +1219,28 @@ val_t string___Collection___join(val_t  self, val_t  param0) {
   variable[4] = NEW_String_string___String___init(); /*new String*/
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((abstract_collection___Collection___iterator_t)CALL(variable[5],COLOR_abstract_collection___Collection___iterator))(variable[5]) /*Collection::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator(variable[5])(variable[5]) /*Collection::iterator*/;
   variable[4] = variable[5];
-  variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[4] /*i*/) /*Iterator::item*/;
+  variable[6] = CALL_abstract_collection___Iterator___item( variable[4] /*i*/)( variable[4] /*i*/) /*Iterator::item*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*e*/)( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = ((string___Object___to_s_t)CALL( variable[5] /*e*/,COLOR_string___Object___to_s))( variable[5] /*e*/) /*Object::to_s*/;
-    ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[6]) /*String::append*/;
+    variable[6] = CALL_string___Object___to_s( variable[5] /*e*/)( variable[5] /*e*/) /*Object::to_s*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[6]) /*String::append*/;
   }
-  ((abstract_collection___Iterator___next_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[4] /*i*/) /*Iterator::next*/;
+  CALL_abstract_collection___Iterator___next( variable[4] /*i*/)( variable[4] /*i*/) /*Iterator::next*/;
   while (true) { /*while*/
-    variable[6] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[4] /*i*/) /*Iterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok( variable[4] /*i*/)( variable[4] /*i*/) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /* while*/
-    ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/,  variable[1] /*sep*/) /*String::append*/;
-    variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[4] /*i*/) /*Iterator::item*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/,  variable[1] /*sep*/) /*String::append*/;
+    variable[6] = CALL_abstract_collection___Iterator___item( variable[4] /*i*/)( variable[4] /*i*/) /*Iterator::item*/;
     variable[5] = variable[6] /*e=*/;
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*e*/,COLOR_kernel___Object_____eqeq))( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*e*/ ==  NIT_NULL /*null*/) || (( variable[5] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*e*/)( variable[5] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[6])) { /*if*/
-      variable[6] = ((string___Object___to_s_t)CALL( variable[5] /*e*/,COLOR_string___Object___to_s))( variable[5] /*e*/) /*Object::to_s*/;
-      ((string___String___append_t)CALL( variable[3] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[3] /*s*/, variable[6]) /*String::append*/;
+      variable[6] = CALL_string___Object___to_s( variable[5] /*e*/)( variable[5] /*e*/) /*Object::to_s*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[3] /*s*/)( variable[3] /*s*/, variable[6]) /*String::append*/;
     }
-    ((abstract_collection___Iterator___next_t)CALL( variable[4] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[4] /*i*/) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next( variable[4] /*i*/)( variable[4] /*i*/) /*Iterator::next*/;
     continue_58: while(0);
   }
   break_58: while(0);
@@ -1258,7 +1260,7 @@ val_t string___Map___map_join(val_t  self, val_t  param0, val_t  param1) {
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((abstract_collection___Collection___is_empty_t)CALL(variable[4],COLOR_abstract_collection___Collection___is_empty))(variable[4]) /*Collection::is_empty*/;
+  variable[4] = CALL_abstract_collection___Collection___is_empty(variable[4])(variable[4]) /*Collection::is_empty*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[3] = variable[4];
@@ -1267,72 +1269,74 @@ val_t string___Map___map_join(val_t  self, val_t  param0, val_t  param1) {
   variable[5] = NEW_String_string___String___init(); /*new String*/
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((abstract_collection___Map___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Map::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Map::iterator*/;
   variable[5] = variable[6];
-  variable[7] = ((abstract_collection___MapIterator___key_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[5] /*i*/) /*MapIterator::key*/;
+  variable[7] = CALL_abstract_collection___MapIterator___key( variable[5] /*i*/)( variable[5] /*i*/) /*MapIterator::key*/;
   variable[6] = variable[7];
-  variable[8] = ((abstract_collection___Iterator___item_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[5] /*i*/) /*Iterator::item*/;
+  variable[8] = CALL_abstract_collection___Iterator___item( variable[5] /*i*/)( variable[5] /*i*/) /*Iterator::item*/;
   variable[7] = variable[8];
-  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*e*/ ==  NIT_NULL /*null*/) || (( variable[7] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))( variable[7] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*e*/ ==  NIT_NULL /*null*/) || (( variable[7] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*e*/)( variable[7] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = NEW_String_string___String___init(); /*new String*/
+    variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
     variable[11] =  variable[6] /*k*/;
-    variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+    variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
     variable[14] =  variable[2] /*couple_sep*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
     variable[17] =  variable[7] /*e*/;
-    variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
+    variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
     variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[19]) /*String::append*/;
-    ((string___String___append_t)CALL( variable[4] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[4] /*s*/, variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[19]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[4] /*s*/)( variable[4] /*s*/, variable[8]) /*String::append*/;
   }
-  ((abstract_collection___Iterator___next_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[5] /*i*/) /*Iterator::next*/;
+  CALL_abstract_collection___Iterator___next( variable[5] /*i*/)( variable[5] /*i*/) /*Iterator::next*/;
   while (true) { /*while*/
-    variable[8] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[5] /*i*/) /*Iterator::is_ok*/;
+    variable[8] = CALL_abstract_collection___Iterator___is_ok( variable[5] /*i*/)( variable[5] /*i*/) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[8])) break; /* while*/
-    ((string___String___append_t)CALL( variable[4] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[4] /*s*/,  variable[1] /*sep*/) /*String::append*/;
-    variable[8] = ((abstract_collection___MapIterator___key_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[5] /*i*/) /*MapIterator::key*/;
+    CALL_abstract_collection___IndexedCollection___append( variable[4] /*s*/)( variable[4] /*s*/,  variable[1] /*sep*/) /*String::append*/;
+    variable[8] = CALL_abstract_collection___MapIterator___key( variable[5] /*i*/)( variable[5] /*i*/) /*MapIterator::key*/;
     variable[6] = variable[8] /*k=*/;
-    variable[8] = ((abstract_collection___Iterator___item_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[5] /*i*/) /*Iterator::item*/;
+    variable[8] = CALL_abstract_collection___Iterator___item( variable[5] /*i*/)( variable[5] /*i*/) /*Iterator::item*/;
     variable[7] = variable[8] /*e=*/;
-    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*e*/ ==  NIT_NULL /*null*/) || (( variable[7] /*e*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*e*/,COLOR_kernel___Object_____eqeq))( variable[7] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[8] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*e*/ ==  NIT_NULL /*null*/) || (( variable[7] /*e*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*e*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*e*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*e*/)( variable[7] /*e*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[6] /*k*/;
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
       variable[14] =  variable[2] /*couple_sep*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
       variable[17] =  variable[7] /*e*/;
-      variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
+      variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[19]) /*String::append*/;
-      ((string___String___append_t)CALL( variable[4] /*s*/,COLOR_abstract_collection___IndexedCollection___append))( variable[4] /*s*/, variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[19]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_abstract_collection___IndexedCollection___append( variable[4] /*s*/)( variable[4] /*s*/, variable[8]) /*String::append*/;
     }
-    ((abstract_collection___Iterator___next_t)CALL( variable[5] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[5] /*i*/) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next( variable[5] /*i*/)( variable[5] /*i*/) /*Iterator::next*/;
     continue_60: while(0);
   }
   break_60: while(0);
@@ -1439,10 +1443,10 @@ val_t string___Sys___args(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_string___Sys____args_cache(variable[2]) /*Sys::_args_cache*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[2] = variable[0];
-    ((string___Sys___init_args_t)CALL(variable[2],COLOR_string___Sys___init_args))(variable[2]) /*Sys::init_args*/;
+    CALL_string___Sys___init_args(variable[2])(variable[2]) /*Sys::init_args*/;
   }
   variable[2] = variable[0];
   variable[2] = ATTR_string___Sys____args_cache(variable[2]) /*Sys::_args_cache*/;
@@ -1460,7 +1464,7 @@ val_t string___Sys___program_name(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string___Sys___native_argv_t)CALL(variable[2],COLOR_string___Sys___native_argv))(variable[2],  TAG_Int(0)) /*Sys::native_argv*/;
+  variable[2] = CALL_string___Sys___native_argv(variable[2])(variable[2],  TAG_Int(0)) /*Sys::native_argv*/;
   variable[3] = NEW_String_string___String___from_cstring(variable[2]); /*new String*/
   variable[2] = variable[3];
   variable[1] = variable[2];
@@ -1477,7 +1481,7 @@ void string___Sys___init_args(val_t  self) {
   trace.file = LOCATE_string;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((string___Sys___native_argc_t)CALL(variable[3],COLOR_string___Sys___native_argc))(variable[3]) /*Sys::native_argc*/;
+  variable[3] = CALL_string___Sys___native_argc(variable[3])(variable[3]) /*Sys::native_argc*/;
   variable[2] = variable[3];
   variable[4] = NEW_Array_array___Array___with_capacity( TAG_Int(0)); /*new Array[String]*/
   variable[3] = variable[4];
@@ -1487,10 +1491,10 @@ void string___Sys___init_args(val_t  self) {
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = TAG_Int(UNTAG_Int( variable[4] /*i*/)-UNTAG_Int( TAG_Int(1)));
     variable[6] = variable[0];
-    variable[6] = ((string___Sys___native_argv_t)CALL(variable[6],COLOR_string___Sys___native_argv))(variable[6],  variable[4] /*i*/) /*Sys::native_argv*/;
+    variable[6] = CALL_string___Sys___native_argv(variable[6])(variable[6],  variable[4] /*i*/) /*Sys::native_argv*/;
     variable[7] = NEW_String_string___String___from_cstring(variable[6]); /*new String*/
     variable[6] = variable[7];
-    ((array___Array_____braeq_t)CALL( variable[3] /*args*/,COLOR_abstract_collection___Map_____braeq))( variable[3] /*args*/, variable[5], variable[6]) /*Array::[]=*/;
+    CALL_abstract_collection___Map_____braeq( variable[3] /*args*/)( variable[3] /*args*/, variable[5], variable[6]) /*Array::[]=*/;
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_66: while(0);
   }
index 5252ffe..e39a0c6 100644 (file)
@@ -15,62 +15,62 @@ val_t BOX_NativeString(char * val);
 extern const classtable_elt_t VFT_StringCapable[];
 extern const char *LOCATE_string;
 extern const int SFT_string[];
-#define ID_String SFT_string[0]
-#define COLOR_String SFT_string[1]
-#define COLOR_string___String____items SFT_string[2]
-#define COLOR_string___String____capacity SFT_string[3]
-#define INIT_TABLE_POS_String SFT_string[4]
-#define COLOR_SUPER_string___String___append SFT_string[5]
-#define COLOR_string___String_____plus SFT_string[6]
-#define COLOR_string___String_____star SFT_string[7]
-#define COLOR_string___String___to_i SFT_string[8]
-#define COLOR_string___String___to_hex SFT_string[9]
-#define COLOR_string___String___a_to SFT_string[10]
-#define COLOR_string___String___to_cstring SFT_string[11]
-#define COLOR_string___String___substring SFT_string[12]
-#define COLOR_string___String___substring_from SFT_string[13]
-#define COLOR_string___String___has_substring SFT_string[14]
-#define COLOR_string___String___has_prefix SFT_string[15]
-#define COLOR_string___String___has_suffix SFT_string[16]
-#define COLOR_string___String___init SFT_string[17]
-#define COLOR_string___String___from SFT_string[18]
-#define COLOR_string___String___with_capacity SFT_string[19]
-#define COLOR_string___String___with_native SFT_string[20]
-#define COLOR_string___String___from_cstring SFT_string[21]
-#define COLOR_string___String___filled_with SFT_string[22]
-#define COLOR_string___String___to_upper SFT_string[23]
-#define COLOR_string___String___to_lower SFT_string[24]
-#define COLOR_string___String___items SFT_string[25]
-#define COLOR_string___String___capacity SFT_string[26]
-#define COLOR_string___Object___to_s SFT_string[27]
-#define COLOR_string___Object___inspect SFT_string[28]
-#define COLOR_string___Object___inspect_head SFT_string[29]
-#define COLOR_string___Object___args SFT_string[30]
-#define COLOR_string___Int___fill_string SFT_string[31]
-#define COLOR_string___Int___to_hex SFT_string[32]
-#define COLOR_string___Int___to_base SFT_string[33]
-#define COLOR_string___Float___to_precision SFT_string[34]
-#define COLOR_string___Collection___join SFT_string[35]
-#define COLOR_string___Map___map_join SFT_string[36]
-#define ID_NativeString SFT_string[37]
-#define COLOR_NativeString SFT_string[38]
-#define INIT_TABLE_POS_NativeString SFT_string[39]
-#define COLOR_string___NativeString_____bra SFT_string[40]
-#define COLOR_string___NativeString_____braeq SFT_string[41]
-#define COLOR_string___NativeString___copy_to SFT_string[42]
-#define COLOR_string___NativeString___cstring_length SFT_string[43]
-#define COLOR_string___NativeString___atoi SFT_string[44]
-#define COLOR_string___NativeString___init SFT_string[45]
-#define ID_StringCapable SFT_string[46]
-#define COLOR_StringCapable SFT_string[47]
-#define INIT_TABLE_POS_StringCapable SFT_string[48]
-#define COLOR_string___StringCapable___calloc_string SFT_string[49]
-#define COLOR_string___StringCapable___init SFT_string[50]
-#define COLOR_string___Sys____args_cache SFT_string[51]
-#define COLOR_string___Sys___program_name SFT_string[52]
-#define COLOR_string___Sys___init_args SFT_string[53]
-#define COLOR_string___Sys___native_argc SFT_string[54]
-#define COLOR_string___Sys___native_argv SFT_string[55]
+#define ID_String (SFT_string[0])
+#define COLOR_String (SFT_string[1])
+#define ATTR_string___String____items(recv) ATTR(recv, (SFT_string[2] + 0))
+#define ATTR_string___String____capacity(recv) ATTR(recv, (SFT_string[2] + 1))
+#define INIT_TABLE_POS_String (SFT_string[3] + 0)
+#define CALL_SUPER_string___String___append(recv) ((string___String___append_t)CALL((recv), (SFT_string[3] + 1)))
+#define CALL_string___String_____plus(recv) ((string___String_____plus_t)CALL((recv), (SFT_string[3] + 2)))
+#define CALL_string___String_____star(recv) ((string___String_____star_t)CALL((recv), (SFT_string[3] + 3)))
+#define CALL_string___String___to_i(recv) ((string___String___to_i_t)CALL((recv), (SFT_string[3] + 4)))
+#define CALL_string___String___to_hex(recv) ((string___String___to_hex_t)CALL((recv), (SFT_string[3] + 5)))
+#define CALL_string___String___a_to(recv) ((string___String___a_to_t)CALL((recv), (SFT_string[3] + 6)))
+#define CALL_string___String___to_cstring(recv) ((string___String___to_cstring_t)CALL((recv), (SFT_string[3] + 7)))
+#define CALL_string___String___substring(recv) ((string___String___substring_t)CALL((recv), (SFT_string[3] + 8)))
+#define CALL_string___String___substring_from(recv) ((string___String___substring_from_t)CALL((recv), (SFT_string[3] + 9)))
+#define CALL_string___String___has_substring(recv) ((string___String___has_substring_t)CALL((recv), (SFT_string[3] + 10)))
+#define CALL_string___String___has_prefix(recv) ((string___String___has_prefix_t)CALL((recv), (SFT_string[3] + 11)))
+#define CALL_string___String___has_suffix(recv) ((string___String___has_suffix_t)CALL((recv), (SFT_string[3] + 12)))
+#define CALL_string___String___init(recv) ((string___String___init_t)CALL((recv), (SFT_string[3] + 13)))
+#define CALL_string___String___from(recv) ((string___String___from_t)CALL((recv), (SFT_string[3] + 14)))
+#define CALL_string___String___with_capacity(recv) ((string___String___with_capacity_t)CALL((recv), (SFT_string[3] + 15)))
+#define CALL_string___String___with_native(recv) ((string___String___with_native_t)CALL((recv), (SFT_string[3] + 16)))
+#define CALL_string___String___from_cstring(recv) ((string___String___from_cstring_t)CALL((recv), (SFT_string[3] + 17)))
+#define CALL_string___String___filled_with(recv) ((string___String___filled_with_t)CALL((recv), (SFT_string[3] + 18)))
+#define CALL_string___String___to_upper(recv) ((string___String___to_upper_t)CALL((recv), (SFT_string[3] + 19)))
+#define CALL_string___String___to_lower(recv) ((string___String___to_lower_t)CALL((recv), (SFT_string[3] + 20)))
+#define CALL_string___String___items(recv) ((string___String___items_t)CALL((recv), (SFT_string[3] + 21)))
+#define CALL_string___String___capacity(recv) ((string___String___capacity_t)CALL((recv), (SFT_string[3] + 22)))
+#define CALL_string___Object___to_s(recv) ((string___Object___to_s_t)CALL((recv), (SFT_string[4] + 0)))
+#define CALL_string___Object___inspect(recv) ((string___Object___inspect_t)CALL((recv), (SFT_string[4] + 1)))
+#define CALL_string___Object___inspect_head(recv) ((string___Object___inspect_head_t)CALL((recv), (SFT_string[4] + 2)))
+#define CALL_string___Object___args(recv) ((string___Object___args_t)CALL((recv), (SFT_string[4] + 3)))
+#define CALL_string___Int___fill_string(recv) ((string___Int___fill_string_t)CALL((recv), (SFT_string[5] + 0)))
+#define CALL_string___Int___to_hex(recv) ((string___Int___to_hex_t)CALL((recv), (SFT_string[5] + 1)))
+#define CALL_string___Int___to_base(recv) ((string___Int___to_base_t)CALL((recv), (SFT_string[5] + 2)))
+#define CALL_string___Float___to_precision(recv) ((string___Float___to_precision_t)CALL((recv), (SFT_string[6] + 0)))
+#define CALL_string___Collection___join(recv) ((string___Collection___join_t)CALL((recv), (SFT_string[7] + 0)))
+#define CALL_string___Map___map_join(recv) ((string___Map___map_join_t)CALL((recv), (SFT_string[8] + 0)))
+#define ID_NativeString (SFT_string[9])
+#define COLOR_NativeString (SFT_string[10])
+#define INIT_TABLE_POS_NativeString (SFT_string[11] + 0)
+#define CALL_string___NativeString_____bra(recv) ((string___NativeString_____bra_t)CALL((recv), (SFT_string[11] + 1)))
+#define CALL_string___NativeString_____braeq(recv) ((string___NativeString_____braeq_t)CALL((recv), (SFT_string[11] + 2)))
+#define CALL_string___NativeString___copy_to(recv) ((string___NativeString___copy_to_t)CALL((recv), (SFT_string[11] + 3)))
+#define CALL_string___NativeString___cstring_length(recv) ((string___NativeString___cstring_length_t)CALL((recv), (SFT_string[11] + 4)))
+#define CALL_string___NativeString___atoi(recv) ((string___NativeString___atoi_t)CALL((recv), (SFT_string[11] + 5)))
+#define CALL_string___NativeString___init(recv) ((string___NativeString___init_t)CALL((recv), (SFT_string[11] + 6)))
+#define ID_StringCapable (SFT_string[12])
+#define COLOR_StringCapable (SFT_string[13])
+#define INIT_TABLE_POS_StringCapable (SFT_string[14] + 0)
+#define CALL_string___StringCapable___calloc_string(recv) ((string___StringCapable___calloc_string_t)CALL((recv), (SFT_string[14] + 1)))
+#define CALL_string___StringCapable___init(recv) ((string___StringCapable___init_t)CALL((recv), (SFT_string[14] + 2)))
+#define ATTR_string___Sys____args_cache(recv) ATTR(recv, (SFT_string[15] + 0))
+#define CALL_string___Sys___program_name(recv) ((string___Sys___program_name_t)CALL((recv), (SFT_string[16] + 0)))
+#define CALL_string___Sys___init_args(recv) ((string___Sys___init_args_t)CALL((recv), (SFT_string[16] + 1)))
+#define CALL_string___Sys___native_argc(recv) ((string___Sys___native_argc_t)CALL((recv), (SFT_string[16] + 2)))
+#define CALL_string___Sys___native_argv(recv) ((string___Sys___native_argv_t)CALL((recv), (SFT_string[16] + 3)))
 typedef val_t (* string___String_____eqeq_t)(val_t  self, val_t  param0);
 val_t string___String_____eqeq(val_t  self, val_t  param0);
 #define LOCATE_string___String_____eqeq "string::String::(kernel::Object::==)"
@@ -161,11 +161,9 @@ val_t string___String___to_upper(val_t  self);
 typedef val_t (* string___String___to_lower_t)(val_t  self);
 val_t string___String___to_lower(val_t  self);
 #define LOCATE_string___String___to_lower "string::String::to_lower"
-#define ATTR_string___String____items(recv) ATTR(recv, COLOR_string___String____items)
 typedef val_t (* string___String___items_t)(val_t  self);
 val_t string___String___items(val_t  self);
 #define LOCATE_string___String___items "string::String::items"
-#define ATTR_string___String____capacity(recv) ATTR(recv, COLOR_string___String____capacity)
 typedef val_t (* string___String___capacity_t)(val_t  self);
 val_t string___String___capacity(val_t  self);
 #define LOCATE_string___String___capacity "string::String::capacity"
@@ -244,7 +242,6 @@ val_t NEW_Sys_kernel___Sys___init();
 typedef val_t (* string___Sys___args_t)(val_t  self);
 val_t string___Sys___args(val_t  self);
 #define LOCATE_string___Sys___args "string::Sys::(string::Object::args)"
-#define ATTR_string___Sys____args_cache(recv) ATTR(recv, COLOR_string___Sys____args_cache)
 typedef val_t (* string___Sys___program_name_t)(val_t  self);
 val_t string___Sys___program_name(val_t  self);
 #define LOCATE_string___Sys___program_name "string::Sys::program_name"
index 5907fc4..bc1ec43 100644 (file)
@@ -35,15 +35,15 @@ val_t string_search___Pattern___search_all_in(val_t  self, val_t  param0) {
   variable[4] = NEW_Array_array___Array___init(); /*new Array[Match]*/
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((string_search___Pattern___search_in_t)CALL(variable[5],COLOR_string_search___Pattern___search_in))(variable[5],  variable[1] /*s*/,  TAG_Int(0)) /*Pattern::search_in*/;
+  variable[5] = CALL_string_search___Pattern___search_in(variable[5])(variable[5],  variable[1] /*s*/,  TAG_Int(0)) /*Pattern::search_in*/;
   variable[4] = variable[5];
   while (true) { /*while*/
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*match*/ ==  NIT_NULL /*null*/) || (( variable[4] /*match*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*match*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*match*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*match*/,COLOR_kernel___Object_____eqeq))( variable[4] /*match*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*match*/ ==  NIT_NULL /*null*/) || (( variable[4] /*match*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*match*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*match*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*match*/)( variable[4] /*match*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
-    ((array___AbstractArray___add_t)CALL( variable[3] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*res*/,  variable[4] /*match*/) /*AbstractArray::add*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*res*/)( variable[3] /*res*/,  variable[4] /*match*/) /*AbstractArray::add*/;
     variable[5] = variable[0];
-    variable[6] = ((string_search___Match___after_t)CALL( variable[4] /*match*/,COLOR_string_search___Match___after))( variable[4] /*match*/) /*Match::after*/;
-    variable[5] = ((string_search___Pattern___search_in_t)CALL(variable[5],COLOR_string_search___Pattern___search_in))(variable[5],  variable[1] /*s*/, variable[6]) /*Pattern::search_in*/;
+    variable[6] = CALL_string_search___Match___after( variable[4] /*match*/)( variable[4] /*match*/) /*Match::after*/;
+    variable[5] = CALL_string_search___Pattern___search_in(variable[5])(variable[5],  variable[1] /*s*/, variable[6]) /*Pattern::search_in*/;
     variable[4] = variable[5] /*match=*/;
     continue_1: while(0);
   }
@@ -66,29 +66,29 @@ val_t string_search___Pattern___split_in(val_t  self, val_t  param0) {
   variable[3] = variable[4];
   variable[4] =  TAG_Int(0);
   variable[6] = variable[0];
-  variable[6] = ((string_search___Pattern___search_in_t)CALL(variable[6],COLOR_string_search___Pattern___search_in))(variable[6],  variable[1] /*s*/,  TAG_Int(0)) /*Pattern::search_in*/;
+  variable[6] = CALL_string_search___Pattern___search_in(variable[6])(variable[6],  variable[1] /*s*/,  TAG_Int(0)) /*Pattern::search_in*/;
   variable[5] = variable[6];
   while (true) { /*while*/
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*match*/ ==  NIT_NULL /*null*/) || (( variable[5] /*match*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*match*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*match*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*match*/,COLOR_kernel___Object_____eqeq))( variable[5] /*match*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*match*/ ==  NIT_NULL /*null*/) || (( variable[5] /*match*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*match*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*match*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*match*/)( variable[5] /*match*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (!UNTAG_Bool(variable[6])) break; /* while*/
-    variable[7] = ((string_search___Match___from_t)CALL( variable[5] /*match*/,COLOR_string_search___Match___from))( variable[5] /*match*/) /*Match::from*/;
+    variable[7] = CALL_string_search___Match___from( variable[5] /*match*/)( variable[5] /*match*/) /*Match::from*/;
     variable[7] = TAG_Int(UNTAG_Int(variable[7])-UNTAG_Int( variable[4] /*i*/));
     variable[6] = variable[7];
     variable[7] = NEW_Match_string_search___Match___init( variable[1] /*s*/,  variable[4] /*i*/,  variable[6] /*len*/); /*new Match*/
-    ((array___AbstractArray___add_t)CALL( variable[3] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*res*/, variable[7]) /*AbstractArray::add*/;
-    variable[7] = ((string_search___Match___after_t)CALL( variable[5] /*match*/,COLOR_string_search___Match___after))( variable[5] /*match*/) /*Match::after*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[3] /*res*/)( variable[3] /*res*/, variable[7]) /*AbstractArray::add*/;
+    variable[7] = CALL_string_search___Match___after( variable[5] /*match*/)( variable[5] /*match*/) /*Match::after*/;
     variable[4] = variable[7] /*i=*/;
     variable[7] = variable[0];
-    variable[7] = ((string_search___Pattern___search_in_t)CALL(variable[7],COLOR_string_search___Pattern___search_in))(variable[7],  variable[1] /*s*/,  variable[4] /*i*/) /*Pattern::search_in*/;
+    variable[7] = CALL_string_search___Pattern___search_in(variable[7])(variable[7],  variable[1] /*s*/,  variable[4] /*i*/) /*Pattern::search_in*/;
     variable[5] = variable[7] /*match=*/;
     continue_3: while(0);
   }
   break_3: while(0);
-  variable[6] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[6] = TAG_Int(UNTAG_Int(variable[6])-UNTAG_Int( variable[4] /*i*/));
   variable[7] = NEW_Match_string_search___Match___init( variable[1] /*s*/,  variable[4] /*i*/, variable[6]); /*new Match*/
   variable[6] = variable[7];
-  ((array___AbstractArray___add_t)CALL( variable[3] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*res*/, variable[6]) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[3] /*res*/)( variable[3] /*res*/, variable[6]) /*AbstractArray::add*/;
   variable[2] =  variable[3] /*res*/;
   goto return_label2;
   return_label2: while(false);
@@ -130,7 +130,7 @@ val_t string_search___BM_Pattern___search_index_in(val_t  self, val_t  param0, v
   variable[2] =  param1;
   variable[4] = TAG_Bool(UNTAG_Int( variable[2] /*from*/)>=UNTAG_Int( TAG_Int(0)));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string_search___BM_Pattern___search_index_in, LOCATE_string_search, 72); nit_exit(1);}
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
   variable[6] = ATTR_string_search___BM_Pattern____length(variable[6]) /*BM_Pattern::_length*/;
@@ -149,9 +149,9 @@ val_t string_search___BM_Pattern___search_index_in(val_t  self, val_t  param0, v
       if (UNTAG_Bool(variable[9])) { /* and */
         variable[9] = variable[0];
         variable[9] = ATTR_string_search___BM_Pattern____motif(variable[9]) /*BM_Pattern::_motif*/;
-        variable[9] = ((string___String_____bra_t)CALL(variable[9],COLOR_abstract_collection___Map_____bra))(variable[9],  variable[7] /*i*/) /*String::[]*/;
+        variable[9] = CALL_abstract_collection___Map_____bra(variable[9])(variable[9],  variable[7] /*i*/) /*String::[]*/;
         variable[10] = TAG_Int(UNTAG_Int( variable[7] /*i*/)+UNTAG_Int( variable[6] /*j*/));
-        variable[10] = ((string___String_____bra_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____bra))( variable[1] /*s*/, variable[10]) /*String::[]*/;
+        variable[10] = CALL_abstract_collection___Map_____bra( variable[1] /*s*/)( variable[1] /*s*/, variable[10]) /*String::[]*/;
         variable[9] = TAG_Bool((variable[9])==(variable[10]));
       }
       variable[8] = variable[9];
@@ -188,8 +188,8 @@ val_t string_search___BM_Pattern___search_index_in(val_t  self, val_t  param0, v
       variable[8] = variable[9];
       variable[10] = variable[0];
       variable[11] = TAG_Int(UNTAG_Int( variable[7] /*i*/)+UNTAG_Int( variable[6] /*j*/));
-      variable[11] = ((string___String_____bra_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____bra))( variable[1] /*s*/, variable[11]) /*String::[]*/;
-      variable[10] = ((string_search___BM_Pattern___bc_t)CALL(variable[10],COLOR_string_search___BM_Pattern___bc))(variable[10], variable[11]) /*BM_Pattern::bc*/;
+      variable[11] = CALL_abstract_collection___Map_____bra( variable[1] /*s*/)( variable[1] /*s*/, variable[11]) /*String::[]*/;
+      variable[10] = CALL_string_search___BM_Pattern___bc(variable[10])(variable[10], variable[11]) /*BM_Pattern::bc*/;
       variable[10] = TAG_Int(UNTAG_Int(variable[10])-UNTAG_Int( variable[5] /*m*/));
       variable[10] = TAG_Int(UNTAG_Int(variable[10])+UNTAG_Int( TAG_Int(1)));
       variable[10] = TAG_Int(UNTAG_Int(variable[10])+UNTAG_Int( variable[7] /*i*/));
@@ -221,7 +221,7 @@ val_t string_search___BM_Pattern___search_in(val_t  self, val_t  param0, val_t
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ((string_search___BM_Pattern___search_index_in_t)CALL(variable[5],COLOR_string_search___Pattern___search_index_in))(variable[5],  variable[1] /*s*/,  variable[2] /*from*/) /*BM_Pattern::search_index_in*/;
+  variable[5] = CALL_string_search___Pattern___search_index_in(variable[5])(variable[5],  variable[1] /*s*/,  variable[2] /*from*/) /*BM_Pattern::search_index_in*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*to*/)<UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[5])) { /*if*/
@@ -251,7 +251,7 @@ void string_search___BM_Pattern___init(val_t  self, val_t  param0, int* init_tab
   variable[3] = variable[0];
   ATTR_string_search___BM_Pattern____motif(variable[3]) /*BM_Pattern::_motif*/ =  variable[1] /*motif*/;
   variable[3] = variable[0];
-  variable[4] = ((array___AbstractArray___length_t)CALL( variable[1] /*motif*/,COLOR_abstract_collection___Collection___length))( variable[1] /*motif*/) /*AbstractArray::length*/;
+  variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*motif*/)( variable[1] /*motif*/) /*AbstractArray::length*/;
   ATTR_string_search___BM_Pattern____length(variable[3]) /*BM_Pattern::_length*/ = variable[4];
   variable[3] = variable[0];
   variable[4] = variable[0];
@@ -263,9 +263,9 @@ void string_search___BM_Pattern___init(val_t  self, val_t  param0, int* init_tab
   variable[4] = NEW_ArrayMap_array___ArrayMap___init(); /*new ArrayMap[Char, Int]*/
   ATTR_string_search___BM_Pattern____bc_table(variable[3]) /*BM_Pattern::_bc_table*/ = variable[4];
   variable[3] = variable[0];
-  ((string_search___BM_Pattern___compute_gs_t)CALL(variable[3],COLOR_string_search___BM_Pattern___compute_gs))(variable[3]) /*BM_Pattern::compute_gs*/;
+  CALL_string_search___BM_Pattern___compute_gs(variable[3])(variable[3]) /*BM_Pattern::compute_gs*/;
   variable[3] = variable[0];
-  ((string_search___BM_Pattern___compute_bc_t)CALL(variable[3],COLOR_string_search___BM_Pattern___compute_bc))(variable[3]) /*BM_Pattern::compute_bc*/;
+  CALL_string_search___BM_Pattern___compute_bc(variable[3])(variable[3]) /*BM_Pattern::compute_bc*/;
   return_label10: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_BM_Pattern].i] = 1;
   tracehead = trace.prev;
@@ -281,11 +281,11 @@ val_t string_search___BM_Pattern___bc(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_string_search___BM_Pattern____bc_table(variable[3]) /*BM_Pattern::_bc_table*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*e*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*e*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_string_search___BM_Pattern____bc_table(variable[3]) /*BM_Pattern::_bc_table*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*e*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*e*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label11;
   } else { /*if*/
@@ -318,10 +318,10 @@ void string_search___BM_Pattern___compute_bc(val_t  self) {
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[5] = variable[0];
     variable[5] = ATTR_string_search___BM_Pattern____bc_table(variable[5]) /*BM_Pattern::_bc_table*/;
-    variable[6] = ((string___String_____bra_t)CALL( variable[2] /*x*/,COLOR_abstract_collection___Map_____bra))( variable[2] /*x*/,  variable[4] /*i*/) /*String::[]*/;
+    variable[6] = CALL_abstract_collection___Map_____bra( variable[2] /*x*/)( variable[2] /*x*/,  variable[4] /*i*/) /*String::[]*/;
     variable[7] = TAG_Int(UNTAG_Int( variable[3] /*m*/)-UNTAG_Int( variable[4] /*i*/));
     variable[7] = TAG_Int(UNTAG_Int(variable[7])-UNTAG_Int( TAG_Int(1)));
-    ((abstract_collection___Map_____braeq_t)CALL(variable[5],COLOR_abstract_collection___Map_____braeq))(variable[5], variable[6], variable[7]) /*Map::[]=*/;
+    CALL_abstract_collection___Map_____braeq(variable[5])(variable[5], variable[6], variable[7]) /*Map::[]=*/;
     variable[4] = TAG_Int(UNTAG_Int(variable[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_13: while(0);
   }
@@ -403,7 +403,7 @@ val_t string_search___BM_Pattern___suffixes(val_t  self) {
       goto return_label17;
       return_label17: while(false);
       variable[8] = variable[11];
-      ((array___Array_____braeq_t)CALL( variable[4] /*suff*/,COLOR_abstract_collection___Map_____braeq))( variable[4] /*suff*/,  variable[7] /*i*/, variable[8]) /*Array::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[4] /*suff*/)( variable[4] /*suff*/,  variable[7] /*i*/, variable[8]) /*Array::[]=*/;
     } else { /*if*/
       variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*i*/)<UNTAG_Int( variable[6] /*g*/));
       if (UNTAG_Bool(variable[8])) { /*if*/
@@ -414,11 +414,11 @@ val_t string_search___BM_Pattern___suffixes(val_t  self) {
         variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*g*/)>=UNTAG_Int( TAG_Int(0)));
         variable[9] = variable[8];
         if (UNTAG_Bool(variable[9])) { /* and */
-          variable[9] = ((string___String_____bra_t)CALL( variable[2] /*x*/,COLOR_abstract_collection___Map_____bra))( variable[2] /*x*/,  variable[6] /*g*/) /*String::[]*/;
+          variable[9] = CALL_abstract_collection___Map_____bra( variable[2] /*x*/)( variable[2] /*x*/,  variable[6] /*g*/) /*String::[]*/;
           variable[10] = TAG_Int(UNTAG_Int( variable[6] /*g*/)+UNTAG_Int( variable[3] /*m*/));
           variable[10] = TAG_Int(UNTAG_Int(variable[10])-UNTAG_Int( TAG_Int(1)));
           variable[10] = TAG_Int(UNTAG_Int(variable[10])-UNTAG_Int( variable[5] /*f*/));
-          variable[10] = ((string___String_____bra_t)CALL( variable[2] /*x*/,COLOR_abstract_collection___Map_____bra))( variable[2] /*x*/, variable[10]) /*String::[]*/;
+          variable[10] = CALL_abstract_collection___Map_____bra( variable[2] /*x*/)( variable[2] /*x*/, variable[10]) /*String::[]*/;
           variable[9] = TAG_Bool((variable[9])==(variable[10]));
         }
         variable[8] = variable[9];
@@ -428,7 +428,7 @@ val_t string_search___BM_Pattern___suffixes(val_t  self) {
       }
       break_18: while(0);
       variable[8] = TAG_Int(UNTAG_Int( variable[5] /*f*/)-UNTAG_Int( variable[6] /*g*/));
-      ((array___Array_____braeq_t)CALL( variable[4] /*suff*/,COLOR_abstract_collection___Map_____braeq))( variable[4] /*suff*/,  variable[7] /*i*/, variable[8]) /*Array::[]=*/;
+      CALL_abstract_collection___Map_____braeq( variable[4] /*suff*/)( variable[4] /*suff*/,  variable[7] /*i*/, variable[8]) /*Array::[]=*/;
     }
     variable[7] = TAG_Int(UNTAG_Int(variable[7])-UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_15: while(0);
@@ -454,7 +454,7 @@ void string_search___BM_Pattern___compute_gs(val_t  self) {
   variable[4] = ATTR_string_search___BM_Pattern____length(variable[4]) /*BM_Pattern::_length*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((string_search___BM_Pattern___suffixes_t)CALL(variable[5],COLOR_string_search___BM_Pattern___suffixes))(variable[5]) /*BM_Pattern::suffixes*/;
+  variable[5] = CALL_string_search___BM_Pattern___suffixes(variable[5])(variable[5]) /*BM_Pattern::suffixes*/;
   variable[4] = variable[5];
   variable[5] =  TAG_Int(0);
   while (true) { /*while*/
@@ -462,7 +462,7 @@ void string_search___BM_Pattern___compute_gs(val_t  self) {
     if (!UNTAG_Bool(variable[6])) break; /* while*/
     variable[6] = variable[0];
     variable[6] = ATTR_string_search___BM_Pattern____gs(variable[6]) /*BM_Pattern::_gs*/;
-    ((array___Array_____braeq_t)CALL(variable[6],COLOR_abstract_collection___Map_____braeq))(variable[6],  variable[5] /*i*/,  variable[3] /*m*/) /*Array::[]=*/;
+    CALL_abstract_collection___Map_____braeq(variable[6])(variable[6],  variable[5] /*i*/,  variable[3] /*m*/) /*Array::[]=*/;
     variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_20: while(0);
   }
@@ -532,7 +532,7 @@ void string_search___BM_Pattern___compute_gs(val_t  self) {
           variable[7] = ATTR_string_search___BM_Pattern____gs(variable[7]) /*BM_Pattern::_gs*/;
           variable[8] = TAG_Int(UNTAG_Int( variable[3] /*m*/)-UNTAG_Int( TAG_Int(1)));
           variable[8] = TAG_Int(UNTAG_Int(variable[8])-UNTAG_Int( variable[5] /*i*/));
-          ((array___Array_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7],  variable[6] /*j*/, variable[8]) /*Array::[]=*/;
+          CALL_abstract_collection___Map_____braeq(variable[7])(variable[7],  variable[6] /*j*/, variable[8]) /*Array::[]=*/;
         }
         variable[6] = TAG_Int(UNTAG_Int(variable[6])+UNTAG_Int( TAG_Int(1))) /*j*/;
         continue_23: while(0);
@@ -572,7 +572,7 @@ void string_search___BM_Pattern___compute_gs(val_t  self) {
     variable[8] = TAG_Int(UNTAG_Int(variable[8])-UNTAG_Int(variable[9]));
     variable[9] = TAG_Int(UNTAG_Int( variable[3] /*m*/)-UNTAG_Int( TAG_Int(1)));
     variable[9] = TAG_Int(UNTAG_Int(variable[9])-UNTAG_Int( variable[5] /*i*/));
-    ((array___Array_____braeq_t)CALL(variable[7],COLOR_abstract_collection___Map_____braeq))(variable[7], variable[8], variable[9]) /*Array::[]=*/;
+    CALL_abstract_collection___Map_____braeq(variable[7])(variable[7], variable[8], variable[9]) /*Array::[]=*/;
     variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*i*/;
     continue_25: while(0);
   }
@@ -594,7 +594,7 @@ val_t string_search___Match___to_s(val_t  self) {
   variable[3] = ATTR_string_search___Match____from(variable[3]) /*Match::_from*/;
   variable[4] = variable[0];
   variable[4] = ATTR_string_search___Match____length(variable[4]) /*Match::_length*/;
-  variable[2] = ((string___String___substring_t)CALL(variable[2],COLOR_string___String___substring))(variable[2], variable[3], variable[4]) /*String::substring*/;
+  variable[2] = CALL_string___String___substring(variable[2])(variable[2], variable[3], variable[4]) /*String::substring*/;
   variable[1] = variable[2];
   goto return_label27;
   return_label27: while(false);
@@ -657,14 +657,14 @@ void string_search___Match___init(val_t  self, val_t  param0, val_t  param1, val
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Match].i]) return;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*s*/ ==  NIT_NULL /*null*/) || (( variable[1] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*s*/,COLOR_kernel___Object_____eqeq))( variable[1] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*s*/ ==  NIT_NULL /*null*/) || (( variable[1] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*s*/)( variable[1] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", " 'non_null_string' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string_search___Match___init, LOCATE_string_search, 223); nit_exit(1);}
   variable[5] = TAG_Bool(UNTAG_Int( variable[3] /*len*/)>=UNTAG_Int( TAG_Int(0)));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", " 'positive_length' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string_search___Match___init, LOCATE_string_search, 224); nit_exit(1);}
   variable[5] = TAG_Bool(UNTAG_Int( variable[2] /*f*/)>=UNTAG_Int( TAG_Int(0)));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", " 'valid_from' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string_search___Match___init, LOCATE_string_search, 225); nit_exit(1);}
   variable[5] = TAG_Int(UNTAG_Int( variable[2] /*f*/)+UNTAG_Int( variable[3] /*len*/));
-  variable[6] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[5] = TAG_Bool(UNTAG_Int(variable[5])<=UNTAG_Int(variable[6]));
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", " 'valid_after' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string_search___Match___init, LOCATE_string_search, 226); nit_exit(1);}
   variable[5] = variable[0];
@@ -687,12 +687,12 @@ val_t string_search___Char___search_index_in(val_t  self, val_t  param0, val_t
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[4] = variable[5];
   while (true) { /*while*/
     variable[5] = TAG_Bool(UNTAG_Int( variable[2] /*from*/)<UNTAG_Int( variable[4] /*stop*/));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
-    variable[5] = ((string___String_____bra_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____bra))( variable[1] /*s*/,  variable[2] /*from*/) /*String::[]*/;
+    variable[5] = CALL_abstract_collection___Map_____bra( variable[1] /*s*/)( variable[1] /*s*/,  variable[2] /*from*/) /*String::[]*/;
     variable[6] = variable[0];
     variable[5] = TAG_Bool((variable[5])==(variable[6]));
     if (UNTAG_Bool(variable[5])) { /*if*/
@@ -720,7 +720,7 @@ val_t string_search___Char___search_in(val_t  self, val_t  param0, val_t  param1
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ((string_search___Char___search_index_in_t)CALL(variable[5],COLOR_string_search___Pattern___search_index_in))(variable[5],  variable[1] /*s*/,  variable[2] /*from*/) /*Char::search_index_in*/;
+  variable[5] = CALL_string_search___Pattern___search_index_in(variable[5])(variable[5],  variable[1] /*s*/,  variable[2] /*from*/) /*Char::search_index_in*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*pos*/)<UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[5])) { /*if*/
@@ -746,9 +746,9 @@ val_t string_search___String___search_index_in(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   variable[4] = TAG_Bool(UNTAG_Int( variable[2] /*from*/)>=UNTAG_Int( TAG_Int(0)));
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_string_search___String___search_index_in, LOCATE_string_search, 260); nit_exit(1);}
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Collection___length))( variable[1] /*s*/) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[1] /*s*/)( variable[1] /*s*/) /*AbstractArray::length*/;
   variable[6] = variable[0];
-  variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
   variable[5] = TAG_Int(UNTAG_Int(variable[5])-UNTAG_Int(variable[6]));
   variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1)));
   variable[4] = variable[5];
@@ -756,7 +756,7 @@ val_t string_search___String___search_index_in(val_t  self, val_t  param0, val_t
     variable[5] = TAG_Bool(UNTAG_Int( variable[2] /*from*/)<UNTAG_Int( variable[4] /*stop*/));
     if (!UNTAG_Bool(variable[5])) break; /* while*/
     variable[6] = variable[0];
-    variable[6] = ((array___AbstractArray___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*AbstractArray::length*/;
+    variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*AbstractArray::length*/;
     variable[6] = TAG_Int(UNTAG_Int(variable[6])-UNTAG_Int( TAG_Int(1)));
     variable[5] = variable[6];
     while (true) { /*while*/
@@ -764,9 +764,9 @@ val_t string_search___String___search_index_in(val_t  self, val_t  param0, val_t
       variable[7] = variable[6];
       if (UNTAG_Bool(variable[7])) { /* and */
         variable[7] = variable[0];
-        variable[7] = ((string___String_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[5] /*i*/) /*String::[]*/;
+        variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[5] /*i*/) /*String::[]*/;
         variable[8] = TAG_Int(UNTAG_Int( variable[5] /*i*/)+UNTAG_Int( variable[2] /*from*/));
-        variable[8] = ((string___String_____bra_t)CALL( variable[1] /*s*/,COLOR_abstract_collection___Map_____bra))( variable[1] /*s*/, variable[8]) /*String::[]*/;
+        variable[8] = CALL_abstract_collection___Map_____bra( variable[1] /*s*/)( variable[1] /*s*/, variable[8]) /*String::[]*/;
         variable[7] = TAG_Bool((variable[7])==(variable[8]));
       }
       variable[6] = variable[7];
@@ -801,7 +801,7 @@ val_t string_search___String___search_in(val_t  self, val_t  param0, val_t  para
   variable[1] =  param0;
   variable[2] =  param1;
   variable[5] = variable[0];
-  variable[5] = ((string_search___String___search_index_in_t)CALL(variable[5],COLOR_string_search___Pattern___search_index_in))(variable[5],  variable[1] /*s*/,  variable[2] /*from*/) /*String::search_index_in*/;
+  variable[5] = CALL_string_search___Pattern___search_index_in(variable[5])(variable[5],  variable[1] /*s*/,  variable[2] /*from*/) /*String::search_index_in*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(UNTAG_Int( variable[4] /*pos*/)<UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[5])) { /*if*/
@@ -809,7 +809,7 @@ val_t string_search___String___search_in(val_t  self, val_t  param0, val_t  para
     goto return_label36;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[6] = NEW_Match_string_search___Match___init( variable[1] /*s*/,  variable[4] /*pos*/, variable[5]); /*new Match*/
     variable[5] = variable[6];
     variable[3] = variable[5];
@@ -828,7 +828,7 @@ val_t string_search___String___search(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((string_search___Pattern___search_in_t)CALL( variable[1] /*p*/,COLOR_string_search___Pattern___search_in))( variable[1] /*p*/, variable[3],  TAG_Int(0)) /*Pattern::search_in*/;
+  variable[3] = CALL_string_search___Pattern___search_in( variable[1] /*p*/)( variable[1] /*p*/, variable[3],  TAG_Int(0)) /*Pattern::search_in*/;
   variable[2] = variable[3];
   goto return_label37;
   return_label37: while(false);
@@ -845,7 +845,7 @@ val_t string_search___String___search_from(val_t  self, val_t  param0, val_t  pa
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((string_search___Pattern___search_in_t)CALL( variable[1] /*p*/,COLOR_string_search___Pattern___search_in))( variable[1] /*p*/, variable[4],  variable[2] /*from*/) /*Pattern::search_in*/;
+  variable[4] = CALL_string_search___Pattern___search_in( variable[1] /*p*/)( variable[1] /*p*/, variable[4],  variable[2] /*from*/) /*Pattern::search_in*/;
   variable[3] = variable[4];
   goto return_label38;
   return_label38: while(false);
@@ -861,7 +861,7 @@ val_t string_search___String___search_all(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((string_search___Pattern___search_all_in_t)CALL( variable[1] /*p*/,COLOR_string_search___Pattern___search_all_in))( variable[1] /*p*/, variable[3]) /*Pattern::search_all_in*/;
+  variable[3] = CALL_string_search___Pattern___search_all_in( variable[1] /*p*/)( variable[1] /*p*/, variable[3]) /*Pattern::search_all_in*/;
   variable[2] = variable[3];
   goto return_label39;
   return_label39: while(false);
@@ -877,22 +877,22 @@ val_t string_search___String___split_with(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((string_search___Pattern___split_in_t)CALL( variable[1] /*p*/,COLOR_string_search___Pattern___split_in))( variable[1] /*p*/, variable[4]) /*Pattern::split_in*/;
+  variable[4] = CALL_string_search___Pattern___split_in( variable[1] /*p*/)( variable[1] /*p*/, variable[4]) /*Pattern::split_in*/;
   variable[3] = variable[4];
-  variable[5] = ((array___AbstractArray___length_t)CALL( variable[3] /*matches*/,COLOR_abstract_collection___Collection___length))( variable[3] /*matches*/) /*AbstractArray::length*/;
+  variable[5] = CALL_abstract_collection___Collection___length( variable[3] /*matches*/)( variable[3] /*matches*/) /*AbstractArray::length*/;
   variable[6] = NEW_Array_array___Array___with_capacity(variable[5]); /*new Array[String]*/
   variable[5] = variable[6];
   variable[4] = variable[5];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*matches*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*matches*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[3] /*matches*/)( variable[3] /*matches*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[8] = ((string_search___Match___to_s_t)CALL( variable[7] /*m*/,COLOR_string___Object___to_s))( variable[7] /*m*/) /*Match::to_s*/;
-    ((array___AbstractArray___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/, variable[8]) /*AbstractArray::add*/;
+    variable[8] = CALL_string___Object___to_s( variable[7] /*m*/)( variable[7] /*m*/) /*Match::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/, variable[8]) /*AbstractArray::add*/;
     continue_41: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_41: while(0);
   variable[2] =  variable[4] /*res*/;
@@ -909,7 +909,7 @@ val_t string_search___String___split(val_t  self) {
   trace.file = LOCATE_string_search;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((string_search___String___split_with_t)CALL(variable[2],COLOR_string_search___String___split_with))(variable[2],  TAG_Char('\n')) /*String::split_with*/;
+  variable[2] = CALL_string_search___String___split_with(variable[2])(variable[2],  TAG_Char('\n')) /*String::split_with*/;
   variable[1] = variable[2];
   goto return_label42;
   return_label42: while(false);
index 28c6bfb..1dcd5c3 100644 (file)
@@ -11,42 +11,42 @@ extern const classtable_elt_t VFT_BM_Pattern[];
 extern const classtable_elt_t VFT_Match[];
 extern const char *LOCATE_string_search;
 extern const int SFT_string_search[];
-#define ID_Pattern SFT_string_search[0]
-#define COLOR_Pattern SFT_string_search[1]
-#define INIT_TABLE_POS_Pattern SFT_string_search[2]
-#define COLOR_string_search___Pattern___search_index_in SFT_string_search[3]
-#define COLOR_string_search___Pattern___search_in SFT_string_search[4]
-#define COLOR_string_search___Pattern___search_all_in SFT_string_search[5]
-#define COLOR_string_search___Pattern___split_in SFT_string_search[6]
-#define COLOR_string_search___Pattern___init SFT_string_search[7]
-#define ID_BM_Pattern SFT_string_search[8]
-#define COLOR_BM_Pattern SFT_string_search[9]
-#define COLOR_string_search___BM_Pattern____motif SFT_string_search[10]
-#define COLOR_string_search___BM_Pattern____length SFT_string_search[11]
-#define COLOR_string_search___BM_Pattern____gs SFT_string_search[12]
-#define COLOR_string_search___BM_Pattern____bc_table SFT_string_search[13]
-#define INIT_TABLE_POS_BM_Pattern SFT_string_search[14]
-#define COLOR_string_search___BM_Pattern___init SFT_string_search[15]
-#define COLOR_string_search___BM_Pattern___bc SFT_string_search[16]
-#define COLOR_string_search___BM_Pattern___compute_bc SFT_string_search[17]
-#define COLOR_string_search___BM_Pattern___suffixes SFT_string_search[18]
-#define COLOR_string_search___BM_Pattern___compute_gs SFT_string_search[19]
-#define ID_Match SFT_string_search[20]
-#define COLOR_Match SFT_string_search[21]
-#define COLOR_string_search___Match____string SFT_string_search[22]
-#define COLOR_string_search___Match____from SFT_string_search[23]
-#define COLOR_string_search___Match____length SFT_string_search[24]
-#define INIT_TABLE_POS_Match SFT_string_search[25]
-#define COLOR_string_search___Match___string SFT_string_search[26]
-#define COLOR_string_search___Match___from SFT_string_search[27]
-#define COLOR_string_search___Match___length SFT_string_search[28]
-#define COLOR_string_search___Match___after SFT_string_search[29]
-#define COLOR_string_search___Match___init SFT_string_search[30]
-#define COLOR_string_search___String___search SFT_string_search[31]
-#define COLOR_string_search___String___search_from SFT_string_search[32]
-#define COLOR_string_search___String___search_all SFT_string_search[33]
-#define COLOR_string_search___String___split_with SFT_string_search[34]
-#define COLOR_string_search___String___split SFT_string_search[35]
+#define ID_Pattern (SFT_string_search[0])
+#define COLOR_Pattern (SFT_string_search[1])
+#define INIT_TABLE_POS_Pattern (SFT_string_search[2] + 0)
+#define CALL_string_search___Pattern___search_index_in(recv) ((string_search___Pattern___search_index_in_t)CALL((recv), (SFT_string_search[2] + 1)))
+#define CALL_string_search___Pattern___search_in(recv) ((string_search___Pattern___search_in_t)CALL((recv), (SFT_string_search[2] + 2)))
+#define CALL_string_search___Pattern___search_all_in(recv) ((string_search___Pattern___search_all_in_t)CALL((recv), (SFT_string_search[2] + 3)))
+#define CALL_string_search___Pattern___split_in(recv) ((string_search___Pattern___split_in_t)CALL((recv), (SFT_string_search[2] + 4)))
+#define CALL_string_search___Pattern___init(recv) ((string_search___Pattern___init_t)CALL((recv), (SFT_string_search[2] + 5)))
+#define ID_BM_Pattern (SFT_string_search[3])
+#define COLOR_BM_Pattern (SFT_string_search[4])
+#define ATTR_string_search___BM_Pattern____motif(recv) ATTR(recv, (SFT_string_search[5] + 0))
+#define ATTR_string_search___BM_Pattern____length(recv) ATTR(recv, (SFT_string_search[5] + 1))
+#define ATTR_string_search___BM_Pattern____gs(recv) ATTR(recv, (SFT_string_search[5] + 2))
+#define ATTR_string_search___BM_Pattern____bc_table(recv) ATTR(recv, (SFT_string_search[5] + 3))
+#define INIT_TABLE_POS_BM_Pattern (SFT_string_search[6] + 0)
+#define CALL_string_search___BM_Pattern___init(recv) ((string_search___BM_Pattern___init_t)CALL((recv), (SFT_string_search[6] + 1)))
+#define CALL_string_search___BM_Pattern___bc(recv) ((string_search___BM_Pattern___bc_t)CALL((recv), (SFT_string_search[6] + 2)))
+#define CALL_string_search___BM_Pattern___compute_bc(recv) ((string_search___BM_Pattern___compute_bc_t)CALL((recv), (SFT_string_search[6] + 3)))
+#define CALL_string_search___BM_Pattern___suffixes(recv) ((string_search___BM_Pattern___suffixes_t)CALL((recv), (SFT_string_search[6] + 4)))
+#define CALL_string_search___BM_Pattern___compute_gs(recv) ((string_search___BM_Pattern___compute_gs_t)CALL((recv), (SFT_string_search[6] + 5)))
+#define ID_Match (SFT_string_search[7])
+#define COLOR_Match (SFT_string_search[8])
+#define ATTR_string_search___Match____string(recv) ATTR(recv, (SFT_string_search[9] + 0))
+#define ATTR_string_search___Match____from(recv) ATTR(recv, (SFT_string_search[9] + 1))
+#define ATTR_string_search___Match____length(recv) ATTR(recv, (SFT_string_search[9] + 2))
+#define INIT_TABLE_POS_Match (SFT_string_search[10] + 0)
+#define CALL_string_search___Match___string(recv) ((string_search___Match___string_t)CALL((recv), (SFT_string_search[10] + 1)))
+#define CALL_string_search___Match___from(recv) ((string_search___Match___from_t)CALL((recv), (SFT_string_search[10] + 2)))
+#define CALL_string_search___Match___length(recv) ((string_search___Match___length_t)CALL((recv), (SFT_string_search[10] + 3)))
+#define CALL_string_search___Match___after(recv) ((string_search___Match___after_t)CALL((recv), (SFT_string_search[10] + 4)))
+#define CALL_string_search___Match___init(recv) ((string_search___Match___init_t)CALL((recv), (SFT_string_search[10] + 5)))
+#define CALL_string_search___String___search(recv) ((string_search___String___search_t)CALL((recv), (SFT_string_search[11] + 0)))
+#define CALL_string_search___String___search_from(recv) ((string_search___String___search_from_t)CALL((recv), (SFT_string_search[11] + 1)))
+#define CALL_string_search___String___search_all(recv) ((string_search___String___search_all_t)CALL((recv), (SFT_string_search[11] + 2)))
+#define CALL_string_search___String___split_with(recv) ((string_search___String___split_with_t)CALL((recv), (SFT_string_search[11] + 3)))
+#define CALL_string_search___String___split(recv) ((string_search___String___split_t)CALL((recv), (SFT_string_search[11] + 4)))
 typedef val_t (* string_search___Pattern___search_index_in_t)(val_t  self, val_t  param0, val_t  param1);
 val_t string_search___Pattern___search_index_in(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_string_search___Pattern___search_index_in "string_search::Pattern::search_index_in"
@@ -76,13 +76,9 @@ typedef void (* string_search___BM_Pattern___init_t)(val_t  self, val_t  param0,
 void string_search___BM_Pattern___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_string_search___BM_Pattern___init "string_search::BM_Pattern::init"
 val_t NEW_BM_Pattern_string_search___BM_Pattern___init(val_t p0);
-#define ATTR_string_search___BM_Pattern____motif(recv) ATTR(recv, COLOR_string_search___BM_Pattern____motif)
-#define ATTR_string_search___BM_Pattern____length(recv) ATTR(recv, COLOR_string_search___BM_Pattern____length)
 typedef val_t (* string_search___BM_Pattern___bc_t)(val_t  self, val_t  param0);
 val_t string_search___BM_Pattern___bc(val_t  self, val_t  param0);
 #define LOCATE_string_search___BM_Pattern___bc "string_search::BM_Pattern::bc"
-#define ATTR_string_search___BM_Pattern____gs(recv) ATTR(recv, COLOR_string_search___BM_Pattern____gs)
-#define ATTR_string_search___BM_Pattern____bc_table(recv) ATTR(recv, COLOR_string_search___BM_Pattern____bc_table)
 typedef void (* string_search___BM_Pattern___compute_bc_t)(val_t  self);
 void string_search___BM_Pattern___compute_bc(val_t  self);
 #define LOCATE_string_search___BM_Pattern___compute_bc "string_search::BM_Pattern::compute_bc"
@@ -95,15 +91,12 @@ void string_search___BM_Pattern___compute_gs(val_t  self);
 typedef val_t (* string_search___Match___to_s_t)(val_t  self);
 val_t string_search___Match___to_s(val_t  self);
 #define LOCATE_string_search___Match___to_s "string_search::Match::(string::Object::to_s)"
-#define ATTR_string_search___Match____string(recv) ATTR(recv, COLOR_string_search___Match____string)
 typedef val_t (* string_search___Match___string_t)(val_t  self);
 val_t string_search___Match___string(val_t  self);
 #define LOCATE_string_search___Match___string "string_search::Match::string"
-#define ATTR_string_search___Match____from(recv) ATTR(recv, COLOR_string_search___Match____from)
 typedef val_t (* string_search___Match___from_t)(val_t  self);
 val_t string_search___Match___from(val_t  self);
 #define LOCATE_string_search___Match___from "string_search::Match::from"
-#define ATTR_string_search___Match____length(recv) ATTR(recv, COLOR_string_search___Match____length)
 typedef val_t (* string_search___Match___length_t)(val_t  self);
 val_t string_search___Match___length(val_t  self);
 #define LOCATE_string_search___Match___length "string_search::Match::length"
index b8bf435..b7a002e 100644 (file)
@@ -16,10 +16,10 @@ val_t symbol___String___to_symbol(val_t  self) {
   }
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[2] /*symbol_dictionary*/,COLOR_abstract_collection___Map___has_key))( variable[2] /*symbol_dictionary*/, variable[3]) /*CoupleMap::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key( variable[2] /*symbol_dictionary*/)( variable[2] /*symbol_dictionary*/, variable[3]) /*CoupleMap::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[2] /*symbol_dictionary*/,COLOR_abstract_collection___Map_____bra))( variable[2] /*symbol_dictionary*/, variable[3]) /*CoupleMap::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra( variable[2] /*symbol_dictionary*/)( variable[2] /*symbol_dictionary*/, variable[3]) /*CoupleMap::[]*/;
     variable[1] = variable[3];
     goto return_label0;
   } else { /*if*/
@@ -28,7 +28,7 @@ val_t symbol___String___to_symbol(val_t  self) {
     variable[4] = variable[5];
     variable[3] = variable[4];
     variable[4] = variable[0];
-    ((hash___HashMap_____braeq_t)CALL( variable[2] /*symbol_dictionary*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*symbol_dictionary*/, variable[4],  variable[3] /*symbol*/) /*HashMap::[]=*/;
+    CALL_abstract_collection___Map_____braeq( variable[2] /*symbol_dictionary*/)( variable[2] /*symbol_dictionary*/, variable[4],  variable[3] /*symbol*/) /*HashMap::[]=*/;
     variable[1] =  variable[3] /*symbol*/;
     goto return_label0;
   }
@@ -45,7 +45,7 @@ val_t symbol___Symbol___to_s(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_symbol___Symbol____string(variable[2]) /*Symbol::_string*/;
-  variable[2] = ((string___String___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*String::to_s*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*String::to_s*/;
   variable[1] = variable[2];
   goto return_label2;
   return_label2: while(false);
index 974508b..ac1b0e1 100644 (file)
@@ -7,12 +7,12 @@
 extern const classtable_elt_t VFT_Symbol[];
 extern const char *LOCATE_symbol;
 extern const int SFT_symbol[];
-#define COLOR_symbol___String___to_symbol SFT_symbol[0]
-#define ID_Symbol SFT_symbol[1]
-#define COLOR_Symbol SFT_symbol[2]
-#define COLOR_symbol___Symbol____string SFT_symbol[3]
-#define INIT_TABLE_POS_Symbol SFT_symbol[4]
-#define COLOR_symbol___Symbol___init SFT_symbol[5]
+#define CALL_symbol___String___to_symbol(recv) ((symbol___String___to_symbol_t)CALL((recv), (SFT_symbol[0] + 0)))
+#define ID_Symbol (SFT_symbol[1])
+#define COLOR_Symbol (SFT_symbol[2])
+#define ATTR_symbol___Symbol____string(recv) ATTR(recv, (SFT_symbol[3] + 0))
+#define INIT_TABLE_POS_Symbol (SFT_symbol[4] + 0)
+#define CALL_symbol___Symbol___init(recv) ((symbol___Symbol___init_t)CALL((recv), (SFT_symbol[4] + 1)))
 val_t NEW_String_string___String___init();
 val_t NEW_String_string___String___from(val_t p0);
 val_t NEW_String_string___String___with_capacity(val_t p0);
@@ -25,7 +25,6 @@ val_t symbol___String___to_symbol(val_t  self);
 typedef val_t (* symbol___Symbol___to_s_t)(val_t  self);
 val_t symbol___Symbol___to_s(val_t  self);
 #define LOCATE_symbol___Symbol___to_s "symbol::Symbol::(string::Object::to_s)"
-#define ATTR_symbol___Symbol____string(recv) ATTR(recv, COLOR_symbol___Symbol____string)
 typedef void (* symbol___Symbol___init_t)(val_t  self, val_t  param0, int* init_table);
 void symbol___Symbol___init(val_t  self, val_t  param0, int* init_table);
 #define LOCATE_symbol___Symbol___init "symbol::Symbol::init"
index ef2410f..9698e71 100644 (file)
@@ -30,36 +30,37 @@ val_t syntax___SrcModuleLoader___parse_file(val_t  self, val_t  param0, val_t  p
   variable[7] = variable[8];
   variable[9] = NEW_Parser_parser___Parser___init( variable[7] /*lexer*/); /*new Parser*/
   variable[8] = variable[9];
-  variable[10] = ((parser___Parser___parse_t)CALL( variable[8] /*parser*/,COLOR_parser___Parser___parse))( variable[8] /*parser*/) /*Parser::parse*/;
+  variable[10] = CALL_parser___Parser___parse( variable[8] /*parser*/)( variable[8] /*parser*/) /*Parser::parse*/;
   variable[9] = variable[10];
-  variable[10] = ((parser_nodes___Start___n_base_t)CALL( variable[9] /*node_tree*/,COLOR_parser_nodes___Start___n_base))( variable[9] /*node_tree*/) /*Start::n_base*/;
-  variable[10] = TAG_Bool((variable[10] ==  NIT_NULL /*null*/) || ((variable[10] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[10],COLOR_kernel___Object_____eqeq))(variable[10],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[10] = CALL_parser_nodes___Start___n_base( variable[9] /*node_tree*/)( variable[9] /*node_tree*/) /*Start::n_base*/;
+  variable[10] = TAG_Bool((variable[10] ==  NIT_NULL /*null*/) || ((variable[10] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[10])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[10], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[10])(variable[10],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    variable[11] = ((parser_nodes___Start___n_eof_t)CALL( variable[9] /*node_tree*/,COLOR_parser_nodes___Start___n_eof))( variable[9] /*node_tree*/) /*Start::n_eof*/;
+    variable[11] = CALL_parser_nodes___Start___n_eof( variable[9] /*node_tree*/)( variable[9] /*node_tree*/) /*Start::n_eof*/;
     variable[10] = variable[11];
     variable[11] = TAG_Bool(( variable[10] /*err*/==NIT_NULL) || VAL_ISA( variable[10] /*err*/, COLOR_PError, ID_PError)) /*cast PError*/;
     if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_syntax___SrcModuleLoader___parse_file, LOCATE_syntax, 40); nit_exit(1);}
-    variable[11] = NEW_String_string___String___init(); /*new String*/
+    variable[11] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[12] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[13] = variable[12];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[13]) /*String::append*/;
-    variable[14] = ((parser_prod___Token___locate_t)CALL( variable[10] /*err*/,COLOR_parser_prod___PNode___locate))( variable[10] /*err*/) /*Token::locate*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[13]) /*AbstractArray::add*/;
+    variable[14] = CALL_parser_prod___PNode___locate( variable[10] /*err*/)( variable[10] /*err*/) /*Token::locate*/;
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[15]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[15]) /*AbstractArray::add*/;
     variable[16] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
     variable[17] = variable[16];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[17]) /*String::append*/;
-    variable[18] = ((lexer___PError___message_t)CALL( variable[10] /*err*/,COLOR_lexer___PError___message))( variable[10] /*err*/) /*PError::message*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[17]) /*AbstractArray::add*/;
+    variable[18] = CALL_lexer___PError___message( variable[10] /*err*/)( variable[10] /*err*/) /*PError::message*/;
     variable[19] = variable[18];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[19]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
     variable[21] = variable[20];
-    ((string___String___append_t)CALL(variable[11],COLOR_abstract_collection___IndexedCollection___append))(variable[11], variable[21]) /*String::append*/;
-    ((mmloader___ToolContext___error_t)CALL( variable[1] /*context*/,COLOR_mmloader___ToolContext___error))( variable[1] /*context*/, variable[11]) /*ToolContext::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11], variable[21]) /*AbstractArray::add*/;
+    variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+    CALL_mmloader___ToolContext___error( variable[1] /*context*/)( variable[1] /*context*/, variable[11]) /*ToolContext::error*/;
     variable[11] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
   }
-  variable[11] = ((parser_nodes___Start___n_base_t)CALL( variable[9] /*node_tree*/,COLOR_parser_nodes___Start___n_base))( variable[9] /*node_tree*/) /*Start::n_base*/;
+  variable[11] = CALL_parser_nodes___Start___n_base( variable[9] /*node_tree*/)( variable[9] /*node_tree*/) /*Start::n_base*/;
   variable[10] = variable[11];
   variable[11] = TAG_Bool(( variable[10] /*node_module*/==NIT_NULL) || VAL_ISA( variable[10] /*node_module*/, COLOR_AModule, ID_AModule)) /*cast AModule*/;
   if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_syntax___SrcModuleLoader___parse_file, LOCATE_syntax, 45); nit_exit(1);}
@@ -80,8 +81,8 @@ void syntax___SrcModuleLoader___process_metamodel(val_t  self, val_t  param0, va
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  ((syntax___MMSrcModule___process_supermodules_t)CALL( variable[2] /*module*/,COLOR_syntax___MMSrcModule___process_supermodules))( variable[2] /*module*/,  variable[1] /*context*/) /*MMSrcModule::process_supermodules*/;
-  ((syntax___MMSrcModule___process_syntax_t)CALL( variable[2] /*module*/,COLOR_syntax___MMSrcModule___process_syntax))( variable[2] /*module*/,  variable[1] /*context*/) /*MMSrcModule::process_syntax*/;
+  CALL_syntax___MMSrcModule___process_supermodules( variable[2] /*module*/)( variable[2] /*module*/,  variable[1] /*context*/) /*MMSrcModule::process_supermodules*/;
+  CALL_syntax___MMSrcModule___process_syntax( variable[2] /*module*/)( variable[2] /*module*/,  variable[1] /*context*/) /*MMSrcModule::process_syntax*/;
   return_label2: while(false);
   tracehead = trace.prev;
   return;
@@ -108,9 +109,9 @@ void syntax___MMSrcModule___process_supermodules(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___MMSrcModule___node_t)CALL(variable[3],COLOR_syntax_base___MMSrcModule___node))(variable[3]) /*MMSrcModule::node*/;
+  variable[3] = CALL_syntax_base___MMSrcModule___node(variable[3])(variable[3]) /*MMSrcModule::node*/;
   variable[4] = variable[0];
-  ((mmbuilder___AModule___import_super_modules_t)CALL(variable[3],COLOR_mmbuilder___AModule___import_super_modules))(variable[3],  variable[1] /*tc*/, variable[4]) /*AModule::import_super_modules*/;
+  CALL_mmbuilder___AModule___import_super_modules(variable[3])(variable[3],  variable[1] /*tc*/, variable[4]) /*AModule::import_super_modules*/;
   return_label4: while(false);
   tracehead = trace.prev;
   return;
@@ -124,24 +125,24 @@ void syntax___MMSrcModule___process_syntax(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((mmbuilder___MMSrcModule___do_mmbuilder_t)CALL(variable[3],COLOR_mmbuilder___MMSrcModule___do_mmbuilder))(variable[3],  variable[1] /*tc*/) /*MMSrcModule::do_mmbuilder*/;
-  variable[3] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  CALL_mmbuilder___MMSrcModule___do_mmbuilder(variable[3])(variable[3],  variable[1] /*tc*/) /*MMSrcModule::do_mmbuilder*/;
+  variable[3] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[3] = TAG_Bool(UNTAG_Int(variable[3])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
   }
   variable[3] = variable[0];
-  ((typing___MMSrcModule___do_typing_t)CALL(variable[3],COLOR_typing___MMSrcModule___do_typing))(variable[3],  variable[1] /*tc*/) /*MMSrcModule::do_typing*/;
-  variable[3] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  CALL_typing___MMSrcModule___do_typing(variable[3])(variable[3],  variable[1] /*tc*/) /*MMSrcModule::do_typing*/;
+  variable[3] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[3] = TAG_Bool(UNTAG_Int(variable[3])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     exit(UNTAG_Int( TAG_Int(1)));
   }
   variable[3] = variable[0];
-  ((control_flow___MMSrcModule___do_control_flow_t)CALL(variable[3],COLOR_control_flow___MMSrcModule___do_control_flow))(variable[3],  variable[1] /*tc*/) /*MMSrcModule::do_control_flow*/;
-  variable[3] = ((mmloader___ToolContext___error_count_t)CALL( variable[1] /*tc*/,COLOR_mmloader___ToolContext___error_count))( variable[1] /*tc*/) /*ToolContext::error_count*/;
+  CALL_control_flow___MMSrcModule___do_control_flow(variable[3])(variable[3],  variable[1] /*tc*/) /*MMSrcModule::do_control_flow*/;
+  variable[3] = CALL_mmloader___ToolContext___error_count( variable[1] /*tc*/)( variable[1] /*tc*/) /*ToolContext::error_count*/;
   variable[3] = TAG_Bool(UNTAG_Int(variable[3])>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
index 5df6b41..040797a 100644 (file)
@@ -9,12 +9,12 @@
 extern const classtable_elt_t VFT_SrcModuleLoader[];
 extern const char *LOCATE_syntax;
 extern const int SFT_syntax[];
-#define ID_SrcModuleLoader SFT_syntax[0]
-#define COLOR_SrcModuleLoader SFT_syntax[1]
-#define INIT_TABLE_POS_SrcModuleLoader SFT_syntax[2]
-#define COLOR_syntax___SrcModuleLoader___init SFT_syntax[3]
-#define COLOR_syntax___MMSrcModule___process_supermodules SFT_syntax[4]
-#define COLOR_syntax___MMSrcModule___process_syntax SFT_syntax[5]
+#define ID_SrcModuleLoader (SFT_syntax[0])
+#define COLOR_SrcModuleLoader (SFT_syntax[1])
+#define INIT_TABLE_POS_SrcModuleLoader (SFT_syntax[2] + 0)
+#define CALL_syntax___SrcModuleLoader___init(recv) ((syntax___SrcModuleLoader___init_t)CALL((recv), (SFT_syntax[2] + 1)))
+#define CALL_syntax___MMSrcModule___process_supermodules(recv) ((syntax___MMSrcModule___process_supermodules_t)CALL((recv), (SFT_syntax[3] + 0)))
+#define CALL_syntax___MMSrcModule___process_syntax(recv) ((syntax___MMSrcModule___process_syntax_t)CALL((recv), (SFT_syntax[3] + 1)))
 typedef val_t (* syntax___SrcModuleLoader___file_type_t)(val_t  self);
 val_t syntax___SrcModuleLoader___file_type(val_t  self);
 #define LOCATE_syntax___SrcModuleLoader___file_type "syntax::SrcModuleLoader::(mmloader::ModuleLoader::file_type)"
index 6a857d2..7a684f8 100644 (file)
@@ -30,7 +30,7 @@ void syntax_base___MMSrcModule___init(val_t  self, val_t  param0, val_t  param1,
   variable[3] =  param2;
   variable[4] =  param3;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcModule].i]) return;
-  ((abstractmetamodel___MMModule___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMModule___init))(variable[0],  variable[4] /*name*/,  variable[3] /*dir*/,  variable[1] /*c*/, init_table /*YYY*/) /*MMModule::init*/;
+  CALL_abstractmetamodel___MMModule___init(variable[0])(variable[0],  variable[4] /*name*/,  variable[3] /*dir*/,  variable[1] /*c*/, init_table /*YYY*/) /*MMModule::init*/;
   variable[6] = variable[0];
   ATTR_syntax_base___MMSrcModule____node(variable[6]) /*MMSrcModule::_node*/ =  variable[2] /*source*/;
   variable[6] = variable[0];
@@ -52,12 +52,12 @@ val_t syntax_base___MMGlobalClass___check_visibility(val_t  self, val_t  param0,
   variable[2] =  param1;
   variable[3] =  param2;
   variable[6] = variable[0];
-  variable[6] = ((abstractmetamodel___MMGlobalClass___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalClass___intro))(variable[6]) /*MMGlobalClass::intro*/;
-  variable[6] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___module))(variable[6]) /*MMLocalClass::module*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalClass___intro(variable[6])(variable[6]) /*MMGlobalClass::intro*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___module(variable[6])(variable[6]) /*MMLocalClass::module*/;
   variable[5] = variable[6];
   variable[6] = TAG_Bool(( variable[5] /*pm*/==NIT_NULL) || VAL_ISA( variable[5] /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
   if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_syntax_base___MMGlobalClass___check_visibility, LOCATE_syntax_base, 44); nit_exit(1);}
-  variable[7] = ((abstractmetamodel___MMModule___visibility_for_t)CALL( variable[3] /*cm*/,COLOR_abstractmetamodel___MMModule___visibility_for))( variable[3] /*cm*/,  variable[5] /*pm*/) /*MMModule::visibility_for*/;
+  variable[7] = CALL_abstractmetamodel___MMModule___visibility_for( variable[3] /*cm*/)( variable[3] /*cm*/,  variable[5] /*pm*/) /*MMModule::visibility_for*/;
   variable[6] = variable[7];
   variable[7] = TAG_Bool(( variable[6] /*vpm*/)==( TAG_Int(3)));
   if (UNTAG_Bool(variable[7])) { /*if*/
@@ -66,43 +66,45 @@ val_t syntax_base___MMGlobalClass___check_visibility(val_t  self, val_t  param0,
   } else { /*if*/
     variable[7] = TAG_Bool(( variable[6] /*vpm*/)==( TAG_Int(0)));
     if (UNTAG_Bool(variable[7])) { /*if*/
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] = variable[0];
       variable[11] = variable[10];
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
       variable[14] =  variable[3] /*cm*/;
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[16]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/,  variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
       variable[4] =  TAG_Bool(false);
       goto return_label1;
     } else { /*if*/
       variable[7] = variable[0];
-      variable[7] = ((abstractmetamodel___MMGlobalClass___visibility_level_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalClass___visibility_level))(variable[7]) /*MMGlobalClass::visibility_level*/;
+      variable[7] = CALL_abstractmetamodel___MMGlobalClass___visibility_level(variable[7])(variable[7]) /*MMGlobalClass::visibility_level*/;
       variable[7] = TAG_Bool(UNTAG_Int(variable[7])>=UNTAG_Int( TAG_Int(3)));
       if (UNTAG_Bool(variable[7])) { /*if*/
-        variable[7] = NEW_String_string___String___init(); /*new String*/
+        variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Class "), TAG_Int(24)); /*new String*/
         variable[9] = variable[8];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
         variable[10] = variable[0];
         variable[11] = variable[10];
-        variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+        variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
         variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)); /*new String*/
         variable[13] = variable[12];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/,  variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+        variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*n*/, variable[7]) /*AbsSyntaxVisitor::error*/;
         variable[4] =  TAG_Bool(false);
         goto return_label1;
       }
@@ -162,10 +164,10 @@ void syntax_base___MMSrcLocalClass___init(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcLocalClass].i]) return;
-  ((abstractmetamodel___MMLocalClass___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMLocalClass___init))(variable[0],  variable[1] /*n*/,  variable[3] /*a*/, init_table /*YYY*/) /*MMLocalClass::init*/;
+  CALL_abstractmetamodel___MMLocalClass___init(variable[0])(variable[0],  variable[1] /*n*/,  variable[3] /*a*/, init_table /*YYY*/) /*MMLocalClass::init*/;
   variable[5] = variable[0];
   variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[PClassdef]*/
-  ((array___AbstractArray___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6],  variable[2] /*cla*/) /*AbstractArray::add*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6],  variable[2] /*cla*/) /*AbstractArray::add*/;
   ATTR_syntax_base___MMSrcLocalClass____nodes(variable[5]) /*MMSrcLocalClass::_nodes*/ = variable[6];
   variable[5] = variable[0];
   variable[6] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Symbol, MMLocalProperty]*/
@@ -187,12 +189,12 @@ val_t syntax_base___MMGlobalProperty___check_visibility(val_t  self, val_t  para
   variable[3] =  param2;
   variable[4] =  param3;
   variable[7] = variable[0];
-  variable[7] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable[7]) /*MMGlobalProperty::local_class*/;
-  variable[7] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___module))(variable[7]) /*MMLocalClass::module*/;
+  variable[7] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable[7])(variable[7]) /*MMGlobalProperty::local_class*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___module(variable[7])(variable[7]) /*MMLocalClass::module*/;
   variable[6] = variable[7];
   variable[7] = TAG_Bool(( variable[6] /*pm*/==NIT_NULL) || VAL_ISA( variable[6] /*pm*/, COLOR_MMSrcModule, ID_MMSrcModule)) /*cast MMSrcModule*/;
   if (!UNTAG_Bool(variable[7])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_syntax_base___MMGlobalProperty___check_visibility, LOCATE_syntax_base, 83); nit_exit(1);}
-  variable[8] = ((abstractmetamodel___MMModule___visibility_for_t)CALL( variable[3] /*cm*/,COLOR_abstractmetamodel___MMModule___visibility_for))( variable[3] /*cm*/,  variable[6] /*pm*/) /*MMModule::visibility_for*/;
+  variable[8] = CALL_abstractmetamodel___MMModule___visibility_for( variable[3] /*cm*/)( variable[3] /*cm*/,  variable[6] /*pm*/) /*MMModule::visibility_for*/;
   variable[7] = variable[8];
   variable[8] = TAG_Bool(( variable[7] /*vpm*/)==( TAG_Int(3)));
   if (UNTAG_Bool(variable[8])) { /*if*/
@@ -201,48 +203,50 @@ val_t syntax_base___MMGlobalProperty___check_visibility(val_t  self, val_t  para
   } else { /*if*/
     variable[8] = TAG_Bool(( variable[7] /*vpm*/)==( TAG_Int(0)));
     if (UNTAG_Bool(variable[8])) { /*if*/
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] = variable[0];
       variable[12] = variable[11];
-      variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+      variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" comes from the hidden module "), TAG_Int(30)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
       variable[15] =  variable[3] /*cm*/;
-      variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/;
+      variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/,  variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
       variable[5] =  TAG_Bool(false);
       goto return_label3;
     } else { /*if*/
       variable[8] = variable[0];
-      variable[8] = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))(variable[8]) /*MMGlobalProperty::visibility_level*/;
+      variable[8] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[8])(variable[8]) /*MMGlobalProperty::visibility_level*/;
       variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(3)));
       if (UNTAG_Bool(variable[8])) { /*if*/
-        variable[8] = NEW_String_string___String___init(); /*new String*/
+        variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
         variable[10] = variable[9];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
         variable[11] = variable[0];
         variable[12] = variable[11];
-        variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+        variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
         variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" is private."), TAG_Int(12)); /*new String*/
         variable[14] = variable[13];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/,  variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+        variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
         variable[5] =  TAG_Bool(false);
         goto return_label3;
       } else { /*if*/
         variable[8] = variable[0];
-        variable[8] = ((abstractmetamodel___MMGlobalProperty___visibility_level_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalProperty___visibility_level))(variable[8]) /*MMGlobalProperty::visibility_level*/;
+        variable[8] = CALL_abstractmetamodel___MMGlobalProperty___visibility_level(variable[8])(variable[8]) /*MMGlobalProperty::visibility_level*/;
         variable[8] = TAG_Bool(UNTAG_Int(variable[8])>=UNTAG_Int( TAG_Int(2)));
         variable[9] = variable[8];
         if (UNTAG_Bool(variable[9])) { /* and */
@@ -250,18 +254,19 @@ val_t syntax_base___MMGlobalProperty___check_visibility(val_t  self, val_t  para
         }
         variable[8] = variable[9];
         if (UNTAG_Bool(variable[8])) { /*if*/
-          variable[8] = NEW_String_string___String___init(); /*new String*/
+          variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Visibility error: Property "), TAG_Int(27)); /*new String*/
           variable[10] = variable[9];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
           variable[11] = variable[0];
           variable[12] = variable[11];
-          variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[12]) /*String::append*/;
+          variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[12]) /*AbstractArray::add*/;
           variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" is protected and can only acceded by self."), TAG_Int(43)); /*new String*/
           variable[14] = variable[13];
-          ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/,  variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
+          variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*n*/, variable[8]) /*AbsSyntaxVisitor::error*/;
           variable[5] =  TAG_Bool(false);
           goto return_label3;
         }
@@ -320,7 +325,7 @@ void syntax_base___MMSrcAttribute___init(val_t  self, val_t  param0, val_t  para
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcAttribute].i]) return;
-  ((abstractmetamodel___MMLocalProperty___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMLocalProperty___init))(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
   variable[5] = variable[0];
   ATTR_syntax_base___MMSrcAttribute____node(variable[5]) /*MMSrcAttribute::_node*/ =  variable[3] /*n*/;
   return_label6: while(false);
@@ -348,7 +353,7 @@ void syntax_base___MMAttrImplementationMethod___init(val_t  self, val_t  param0,
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMAttrImplementationMethod].i]) return;
-  ((abstractmetamodel___MMLocalProperty___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMLocalProperty___init))(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
   variable[5] = variable[0];
   ATTR_syntax_base___MMAttrImplementationMethod____node(variable[5]) /*MMAttrImplementationMethod::_node*/ =  variable[3] /*n*/;
   return_label7: while(false);
@@ -367,7 +372,7 @@ void syntax_base___MMReadImplementationMethod___init(val_t  self, val_t  param0,
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMReadImplementationMethod].i]) return;
-  ((syntax_base___MMAttrImplementationMethod___init_t)CALL(variable[0],COLOR_syntax_base___MMAttrImplementationMethod___init))(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/,  variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
+  CALL_syntax_base___MMAttrImplementationMethod___init(variable[0])(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/,  variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
   return_label8: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMReadImplementationMethod].i] = 1;
   tracehead = trace.prev;
@@ -384,7 +389,7 @@ void syntax_base___MMWriteImplementationMethod___init(val_t  self, val_t  param0
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i]) return;
-  ((syntax_base___MMAttrImplementationMethod___init_t)CALL(variable[0],COLOR_syntax_base___MMAttrImplementationMethod___init))(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/,  variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
+  CALL_syntax_base___MMAttrImplementationMethod___init(variable[0])(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/,  variable[3] /*n*/, init_table /*YYY*/) /*MMAttrImplementationMethod::init*/;
   return_label9: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMWriteImplementationMethod].i] = 1;
   tracehead = trace.prev;
@@ -426,7 +431,7 @@ void syntax_base___MMMethSrcMethod___init(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMMethSrcMethod].i]) return;
-  ((abstractmetamodel___MMLocalProperty___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMLocalProperty___init))(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
   variable[5] = variable[0];
   ATTR_syntax_base___MMMethSrcMethod____node(variable[5]) /*MMMethSrcMethod::_node*/ =  variable[3] /*n*/;
   return_label11: while(false);
@@ -454,7 +459,7 @@ void syntax_base___MMSrcTypeProperty___init(val_t  self, val_t  param0, val_t  p
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSrcTypeProperty].i]) return;
-  ((abstractmetamodel___MMLocalProperty___init_t)CALL(variable[0],COLOR_abstractmetamodel___MMLocalProperty___init))(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
+  CALL_abstractmetamodel___MMLocalProperty___init(variable[0])(variable[0],  variable[1] /*name*/,  variable[2] /*cla*/, init_table /*YYY*/) /*MMLocalProperty::init*/;
   variable[5] = variable[0];
   ATTR_syntax_base___MMSrcTypeProperty____node(variable[5]) /*MMSrcTypeProperty::_node*/ =  variable[3] /*n*/;
   return_label12: while(false);
@@ -508,11 +513,11 @@ void syntax_base___MMImplicitInit___init(val_t  self, val_t  param0, val_t  para
   if (once_bool_15) variable[5] = once_value_15;
   else {
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-    variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
     once_value_15 = variable[5];
     once_bool_15 = true;
   }
-  ((syntax_base___MMMethSrcMethod___init_t)CALL(variable[0],COLOR_syntax_base___MMMethSrcMethod___init))(variable[0], variable[5],  variable[1] /*cla*/,  NIT_NULL /*null*/, init_table /*YYY*/) /*MMMethSrcMethod::init*/;
+  CALL_syntax_base___MMMethSrcMethod___init(variable[0])(variable[0], variable[5],  variable[1] /*cla*/,  NIT_NULL /*null*/, init_table /*YYY*/) /*MMMethSrcMethod::init*/;
   variable[5] = variable[0];
   ATTR_syntax_base___MMImplicitInit____unassigned_attributes(variable[5]) /*MMImplicitInit::_unassigned_attributes*/ =  variable[2] /*unassigned_attributes*/;
   variable[5] = variable[0];
@@ -531,7 +536,7 @@ val_t syntax_base___Variable___to_s(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_syntax_base___Variable____name(variable[2]) /*Variable::_name*/;
-  variable[2] = ((symbol___Symbol___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*Symbol::to_s*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
   variable[1] = variable[2];
   goto return_label16;
   return_label16: while(false);
@@ -636,7 +641,7 @@ void syntax_base___VarVariable___init(val_t  self, val_t  param0, val_t  param1,
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_VarVariable].i]) return;
-  ((syntax_base___Variable___init_t)CALL(variable[0],COLOR_syntax_base___Variable___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
+  CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
   return_label20: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_VarVariable].i] = 1;
   tracehead = trace.prev;
@@ -672,7 +677,7 @@ void syntax_base___ParamVariable___init(val_t  self, val_t  param0, val_t  param
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ParamVariable].i]) return;
-  ((syntax_base___Variable___init_t)CALL(variable[0],COLOR_syntax_base___Variable___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
+  CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
   return_label23: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ParamVariable].i] = 1;
   tracehead = trace.prev;
@@ -708,7 +713,7 @@ void syntax_base___AutoVariable___init(val_t  self, val_t  param0, val_t  param1
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AutoVariable].i]) return;
-  ((syntax_base___Variable___init_t)CALL(variable[0],COLOR_syntax_base___Variable___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
+  CALL_syntax_base___Variable___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*Variable::init*/;
   return_label26: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AutoVariable].i] = 1;
   tracehead = trace.prev;
@@ -754,7 +759,7 @@ void syntax_base___ClosureVariable___init(val_t  self, val_t  param0, val_t  par
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ClosureVariable].i]) return;
-  ((syntax_base___Variable___init_t)CALL(variable[0],COLOR_syntax_base___Variable___init))(variable[0],  variable[1] /*n*/,  variable[2] /*d*/, init_table /*YYY*/) /*Variable::init*/;
+  CALL_syntax_base___Variable___init(variable[0])(variable[0],  variable[1] /*n*/,  variable[2] /*d*/, init_table /*YYY*/) /*Variable::init*/;
   variable[5] = variable[0];
   ATTR_syntax_base___ClosureVariable____closure(variable[5]) /*ClosureVariable::_closure*/ =  variable[3] /*c*/;
   return_label29: while(false);
@@ -762,8 +767,8 @@ void syntax_base___ClosureVariable___init(val_t  self, val_t  param0, val_t  par
   tracehead = trace.prev;
   return;
 }
-val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 259, LOCATE_syntax_base___AbsSyntaxVisitor___type_bool};
+val_t syntax_base___AbsSyntaxVisitor___type_object(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 259, LOCATE_syntax_base___AbsSyntaxVisitor___type_object};
   static val_t once_value_31; static int once_bool_31; /* Once value for variable[3]*/
   val_t variable[4];
   void **closurevariable = NULL;
@@ -774,21 +779,21 @@ val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t  self) {
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
   if (once_bool_31) variable[3] = once_value_31;
   else {
-    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Object"), TAG_Int(6)); /*new String*/
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
     once_value_31 = variable[3];
     once_bool_31 = true;
   }
-  variable[2] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[2], variable[3]) /*MMModule::class_by_name*/;
-  variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[2],COLOR_static_type___MMLocalClass___get_type))(variable[2]) /*MMLocalClass::get_type*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
   variable[1] = variable[2];
   goto return_label30;
   return_label30: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t syntax_base___AbsSyntaxVisitor___type_int(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 265, LOCATE_syntax_base___AbsSyntaxVisitor___type_int};
+val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 265, LOCATE_syntax_base___AbsSyntaxVisitor___type_bool};
   static val_t once_value_33; static int once_bool_33; /* Once value for variable[3]*/
   val_t variable[4];
   void **closurevariable = NULL;
@@ -799,21 +804,21 @@ val_t syntax_base___AbsSyntaxVisitor___type_int(val_t  self) {
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
   if (once_bool_33) variable[3] = once_value_33;
   else {
-    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Bool"), TAG_Int(4)); /*new String*/
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
     once_value_33 = variable[3];
     once_bool_33 = true;
   }
-  variable[2] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[2], variable[3]) /*MMModule::class_by_name*/;
-  variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[2],COLOR_static_type___MMLocalClass___get_type))(variable[2]) /*MMLocalClass::get_type*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
   variable[1] = variable[2];
   goto return_label32;
   return_label32: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t syntax_base___AbsSyntaxVisitor___type_float(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 271, LOCATE_syntax_base___AbsSyntaxVisitor___type_float};
+val_t syntax_base___AbsSyntaxVisitor___type_int(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 271, LOCATE_syntax_base___AbsSyntaxVisitor___type_int};
   static val_t once_value_35; static int once_bool_35; /* Once value for variable[3]*/
   val_t variable[4];
   void **closurevariable = NULL;
@@ -824,21 +829,21 @@ val_t syntax_base___AbsSyntaxVisitor___type_float(val_t  self) {
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
   if (once_bool_35) variable[3] = once_value_35;
   else {
-    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Int"), TAG_Int(3)); /*new String*/
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
     once_value_35 = variable[3];
     once_bool_35 = true;
   }
-  variable[2] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[2], variable[3]) /*MMModule::class_by_name*/;
-  variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[2],COLOR_static_type___MMLocalClass___get_type))(variable[2]) /*MMLocalClass::get_type*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
   variable[1] = variable[2];
   goto return_label34;
   return_label34: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t syntax_base___AbsSyntaxVisitor___type_char(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 277, LOCATE_syntax_base___AbsSyntaxVisitor___type_char};
+val_t syntax_base___AbsSyntaxVisitor___type_float(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 277, LOCATE_syntax_base___AbsSyntaxVisitor___type_float};
   static val_t once_value_37; static int once_bool_37; /* Once value for variable[3]*/
   val_t variable[4];
   void **closurevariable = NULL;
@@ -849,21 +854,21 @@ val_t syntax_base___AbsSyntaxVisitor___type_char(val_t  self) {
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
   if (once_bool_37) variable[3] = once_value_37;
   else {
-    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Float"), TAG_Int(5)); /*new String*/
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
     once_value_37 = variable[3];
     once_bool_37 = true;
   }
-  variable[2] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[2], variable[3]) /*MMModule::class_by_name*/;
-  variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[2],COLOR_static_type___MMLocalClass___get_type))(variable[2]) /*MMLocalClass::get_type*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
   variable[1] = variable[2];
   goto return_label36;
   return_label36: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t syntax_base___AbsSyntaxVisitor___type_string(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 283, LOCATE_syntax_base___AbsSyntaxVisitor___type_string};
+val_t syntax_base___AbsSyntaxVisitor___type_char(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 283, LOCATE_syntax_base___AbsSyntaxVisitor___type_char};
   static val_t once_value_39; static int once_bool_39; /* Once value for variable[3]*/
   val_t variable[4];
   void **closurevariable = NULL;
@@ -874,21 +879,21 @@ val_t syntax_base___AbsSyntaxVisitor___type_string(val_t  self) {
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
   if (once_bool_39) variable[3] = once_value_39;
   else {
-    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("String"), TAG_Int(6)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Char"), TAG_Int(4)); /*new String*/
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
     once_value_39 = variable[3];
     once_bool_39 = true;
   }
-  variable[2] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[2], variable[3]) /*MMModule::class_by_name*/;
-  variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[2],COLOR_static_type___MMLocalClass___get_type))(variable[2]) /*MMLocalClass::get_type*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
   variable[1] = variable[2];
   goto return_label38;
   return_label38: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
-val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 289, LOCATE_syntax_base___AbsSyntaxVisitor___type_collection};
+val_t syntax_base___AbsSyntaxVisitor___type_string(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 289, LOCATE_syntax_base___AbsSyntaxVisitor___type_string};
   static val_t once_value_41; static int once_bool_41; /* Once value for variable[3]*/
   val_t variable[4];
   void **closurevariable = NULL;
@@ -899,22 +904,47 @@ val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t  self) {
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
   if (once_bool_41) variable[3] = once_value_41;
   else {
-    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Collection"), TAG_Int(10)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("String"), TAG_Int(6)); /*new String*/
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
     once_value_41 = variable[3];
     once_bool_41 = true;
   }
-  variable[2] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[2], variable[3]) /*MMModule::class_by_name*/;
-  variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[2],COLOR_static_type___MMLocalClass___get_type))(variable[2]) /*MMLocalClass::get_type*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
   variable[1] = variable[2];
   goto return_label40;
   return_label40: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
+val_t syntax_base___AbsSyntaxVisitor___type_collection(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 295, LOCATE_syntax_base___AbsSyntaxVisitor___type_collection};
+  static val_t once_value_43; static int once_bool_43; /* Once value for variable[3]*/
+  val_t variable[4];
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_syntax_base;
+  variable[0] =  self;
+  variable[2] = variable[0];
+  variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
+  if (once_bool_43) variable[3] = once_value_43;
+  else {
+    variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Collection"), TAG_Int(10)); /*new String*/
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
+    once_value_43 = variable[3];
+    once_bool_43 = true;
+  }
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
+  variable[1] = variable[2];
+  goto return_label42;
+  return_label42: while(false);
+  tracehead = trace.prev;
+  return variable[1];
+}
 val_t syntax_base___AbsSyntaxVisitor___type_array(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 295, LOCATE_syntax_base___AbsSyntaxVisitor___type_array};
-  static val_t once_value_43; static int once_bool_43; /* Once value for variable[4]*/
+  struct trace_t trace = {NULL, NULL, 301, LOCATE_syntax_base___AbsSyntaxVisitor___type_array};
+  static val_t once_value_45; static int once_bool_45; /* Once value for variable[4]*/
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -923,26 +953,26 @@ val_t syntax_base___AbsSyntaxVisitor___type_array(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[3]) /*AbsSyntaxVisitor::_module*/;
-  if (once_bool_43) variable[4] = once_value_43;
+  if (once_bool_45) variable[4] = once_value_45;
   else {
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Array"), TAG_Int(5)); /*new String*/
-    variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/;
-    once_value_43 = variable[4];
-    once_bool_43 = true;
+    variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
+    once_value_45 = variable[4];
+    once_bool_45 = true;
   }
-  variable[3] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[3], variable[4]) /*MMModule::class_by_name*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___class_by_name(variable[3])(variable[3], variable[4]) /*MMModule::class_by_name*/;
   variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[1] /*stype*/) /*AbstractArray::add*/;
-  variable[3] = ((genericity___MMLocalClass___get_instantiate_type_t)CALL(variable[3],COLOR_genericity___MMLocalClass___get_instantiate_type))(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[1] /*stype*/) /*AbstractArray::add*/;
+  variable[3] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[3])(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
   variable[2] = variable[3];
-  goto return_label42;
-  return_label42: while(false);
+  goto return_label44;
+  return_label44: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t syntax_base___AbsSyntaxVisitor___type_discrete(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 301, LOCATE_syntax_base___AbsSyntaxVisitor___type_discrete};
-  static val_t once_value_45; static int once_bool_45; /* Once value for variable[3]*/
+  struct trace_t trace = {NULL, NULL, 307, LOCATE_syntax_base___AbsSyntaxVisitor___type_discrete};
+  static val_t once_value_47; static int once_bool_47; /* Once value for variable[3]*/
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -950,24 +980,24 @@ val_t syntax_base___AbsSyntaxVisitor___type_discrete(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
-  if (once_bool_45) variable[3] = once_value_45;
+  if (once_bool_47) variable[3] = once_value_47;
   else {
     variable[3] = NEW_String_string___String___with_native(BOX_NativeString("Discrete"), TAG_Int(8)); /*new String*/
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
-    once_value_45 = variable[3];
-    once_bool_45 = true;
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
+    once_value_47 = variable[3];
+    once_bool_47 = true;
   }
-  variable[2] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[2],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[2], variable[3]) /*MMModule::class_by_name*/;
-  variable[2] = ((genericity___MMLocalClass___get_type_t)CALL(variable[2],COLOR_static_type___MMLocalClass___get_type))(variable[2]) /*MMLocalClass::get_type*/;
+  variable[2] = CALL_abstractmetamodel___MMModule___class_by_name(variable[2])(variable[2], variable[3]) /*MMModule::class_by_name*/;
+  variable[2] = CALL_static_type___MMLocalClass___get_type(variable[2])(variable[2]) /*MMLocalClass::get_type*/;
   variable[1] = variable[2];
-  goto return_label44;
-  return_label44: while(false);
+  goto return_label46;
+  return_label46: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t syntax_base___AbsSyntaxVisitor___type_range(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 307, LOCATE_syntax_base___AbsSyntaxVisitor___type_range};
-  static val_t once_value_47; static int once_bool_47; /* Once value for variable[4]*/
+  struct trace_t trace = {NULL, NULL, 313, LOCATE_syntax_base___AbsSyntaxVisitor___type_range};
+  static val_t once_value_49; static int once_bool_49; /* Once value for variable[4]*/
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -976,25 +1006,25 @@ val_t syntax_base___AbsSyntaxVisitor___type_range(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[3]) /*AbsSyntaxVisitor::_module*/;
-  if (once_bool_47) variable[4] = once_value_47;
+  if (once_bool_49) variable[4] = once_value_49;
   else {
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Range"), TAG_Int(5)); /*new String*/
-    variable[4] = ((symbol___String___to_symbol_t)CALL(variable[4],COLOR_symbol___String___to_symbol))(variable[4]) /*String::to_symbol*/;
-    once_value_47 = variable[4];
-    once_bool_47 = true;
+    variable[4] = CALL_symbol___String___to_symbol(variable[4])(variable[4]) /*String::to_symbol*/;
+    once_value_49 = variable[4];
+    once_bool_49 = true;
   }
-  variable[3] = ((abstractmetamodel___MMModule___class_by_name_t)CALL(variable[3],COLOR_abstractmetamodel___MMModule___class_by_name))(variable[3], variable[4]) /*MMModule::class_by_name*/;
+  variable[3] = CALL_abstractmetamodel___MMModule___class_by_name(variable[3])(variable[3], variable[4]) /*MMModule::class_by_name*/;
   variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[MMType]*/
-  ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4],  variable[1] /*stype*/) /*AbstractArray::add*/;
-  variable[3] = ((genericity___MMLocalClass___get_instantiate_type_t)CALL(variable[3],COLOR_genericity___MMLocalClass___get_instantiate_type))(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4],  variable[1] /*stype*/) /*AbstractArray::add*/;
+  variable[3] = CALL_genericity___MMLocalClass___get_instantiate_type(variable[3])(variable[3], variable[4]) /*MMLocalClass::get_instantiate_type*/;
   variable[2] = variable[3];
-  goto return_label46;
-  return_label46: while(false);
+  goto return_label48;
+  return_label48: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t syntax_base___AbsSyntaxVisitor___type_none(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 313, LOCATE_syntax_base___AbsSyntaxVisitor___type_none};
+  struct trace_t trace = {NULL, NULL, 319, LOCATE_syntax_base___AbsSyntaxVisitor___type_none};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1002,15 +1032,15 @@ val_t syntax_base___AbsSyntaxVisitor___type_none(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[2]) /*AbsSyntaxVisitor::_module*/;
-  variable[2] = ((static_type___MMModule___type_none_t)CALL(variable[2],COLOR_static_type___MMModule___type_none))(variable[2]) /*MMModule::type_none*/;
+  variable[2] = CALL_static_type___MMModule___type_none(variable[2])(variable[2]) /*MMModule::type_none*/;
   variable[1] = variable[2];
-  goto return_label48;
-  return_label48: while(false);
+  goto return_label50;
+  return_label50: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t syntax_base___AbsSyntaxVisitor___module(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 319, LOCATE_syntax_base___AbsSyntaxVisitor___module};
+  struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___module};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1019,7 +1049,7 @@ val_t syntax_base___AbsSyntaxVisitor___module(val_t  self) {
   return ATTR_syntax_base___AbsSyntaxVisitor____module( self) /*AbsSyntaxVisitor::_module*/;
 }
 void syntax_base___AbsSyntaxVisitor___module__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 319, LOCATE_syntax_base___AbsSyntaxVisitor___module__eq};
+  struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___module__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1029,7 +1059,7 @@ void syntax_base___AbsSyntaxVisitor___module__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t syntax_base___AbsSyntaxVisitor___local_class(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 322, LOCATE_syntax_base___AbsSyntaxVisitor___local_class};
+  struct trace_t trace = {NULL, NULL, 328, LOCATE_syntax_base___AbsSyntaxVisitor___local_class};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1038,7 +1068,7 @@ val_t syntax_base___AbsSyntaxVisitor___local_class(val_t  self) {
   return ATTR_syntax_base___AbsSyntaxVisitor____local_class( self) /*AbsSyntaxVisitor::_local_class*/;
 }
 void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 322, LOCATE_syntax_base___AbsSyntaxVisitor___local_class__eq};
+  struct trace_t trace = {NULL, NULL, 328, LOCATE_syntax_base___AbsSyntaxVisitor___local_class__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1048,7 +1078,7 @@ void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t  self, val_t  param0
   return;
 }
 val_t syntax_base___AbsSyntaxVisitor___local_property(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___local_property};
+  struct trace_t trace = {NULL, NULL, 331, LOCATE_syntax_base___AbsSyntaxVisitor___local_property};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1057,7 +1087,7 @@ val_t syntax_base___AbsSyntaxVisitor___local_property(val_t  self) {
   return ATTR_syntax_base___AbsSyntaxVisitor____local_property( self) /*AbsSyntaxVisitor::_local_property*/;
 }
 void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 325, LOCATE_syntax_base___AbsSyntaxVisitor___local_property__eq};
+  struct trace_t trace = {NULL, NULL, 331, LOCATE_syntax_base___AbsSyntaxVisitor___local_property__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1067,7 +1097,7 @@ void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t  self, val_t  par
   return;
 }
 val_t syntax_base___AbsSyntaxVisitor___tc(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 328, LOCATE_syntax_base___AbsSyntaxVisitor___tc};
+  struct trace_t trace = {NULL, NULL, 334, LOCATE_syntax_base___AbsSyntaxVisitor___tc};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1076,7 +1106,7 @@ val_t syntax_base___AbsSyntaxVisitor___tc(val_t  self) {
   return ATTR_syntax_base___AbsSyntaxVisitor____tc( self) /*AbsSyntaxVisitor::_tc*/;
 }
 void syntax_base___AbsSyntaxVisitor___error(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 331, LOCATE_syntax_base___AbsSyntaxVisitor___error};
+  struct trace_t trace = {NULL, NULL, 337, LOCATE_syntax_base___AbsSyntaxVisitor___error};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1086,29 +1116,30 @@ void syntax_base___AbsSyntaxVisitor___error(val_t  self, val_t  param0, val_t  p
   variable[2] =  param1;
   variable[4] = variable[0];
   variable[4] = ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[4]) /*AbsSyntaxVisitor::_tc*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((syntax_base___AbsSyntaxVisitor___locate_t)CALL(variable[8],COLOR_syntax_base___AbsSyntaxVisitor___locate))(variable[8],  variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
+  variable[8] = CALL_syntax_base___AbsSyntaxVisitor___locate(variable[8])(variable[8],  variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[2] /*s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[14]) /*String::append*/;
-  ((mmloader___ToolContext___error_t)CALL(variable[4],COLOR_mmloader___ToolContext___error))(variable[4], variable[5]) /*ToolContext::error*/;
-  return_label49: while(false);
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_mmloader___ToolContext___error(variable[4])(variable[4], variable[5]) /*ToolContext::error*/;
+  return_label51: while(false);
   tracehead = trace.prev;
   return;
 }
 void syntax_base___AbsSyntaxVisitor___warning(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 337, LOCATE_syntax_base___AbsSyntaxVisitor___warning};
+  struct trace_t trace = {NULL, NULL, 343, LOCATE_syntax_base___AbsSyntaxVisitor___warning};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1118,52 +1149,53 @@ void syntax_base___AbsSyntaxVisitor___warning(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   variable[4] = variable[0];
   variable[4] = ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[4]) /*AbsSyntaxVisitor::_tc*/;
-  variable[5] = NEW_String_string___String___init(); /*new String*/
+  variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[7] = variable[6];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
   variable[8] = variable[0];
-  variable[8] = ((syntax_base___AbsSyntaxVisitor___locate_t)CALL(variable[8],COLOR_syntax_base___AbsSyntaxVisitor___locate))(variable[8],  variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
+  variable[8] = CALL_syntax_base___AbsSyntaxVisitor___locate(variable[8])(variable[8],  variable[1] /*n*/) /*AbsSyntaxVisitor::locate*/;
   variable[9] = variable[8];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[2] /*s*/;
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[14]) /*String::append*/;
-  ((mmloader___ToolContext___warning_t)CALL(variable[4],COLOR_mmloader___ToolContext___warning))(variable[4], variable[5]) /*ToolContext::warning*/;
-  return_label50: while(false);
+  CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[14]) /*AbstractArray::add*/;
+  variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+  CALL_mmloader___ToolContext___warning(variable[4])(variable[4], variable[5]) /*ToolContext::warning*/;
+  return_label52: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t syntax_base___AbsSyntaxVisitor___locate(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 343, LOCATE_syntax_base___AbsSyntaxVisitor___locate};
+  struct trace_t trace = {NULL, NULL, 349, LOCATE_syntax_base___AbsSyntaxVisitor___locate};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = ((parser_prod___PNode___locate_t)CALL( variable[1] /*n*/,COLOR_parser_prod___PNode___locate))( variable[1] /*n*/) /*PNode::locate*/;
+    variable[3] = CALL_parser_prod___PNode___locate( variable[1] /*n*/)( variable[1] /*n*/) /*PNode::locate*/;
     variable[2] = variable[3];
-    goto return_label51;
+    goto return_label53;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_syntax_base___AbsSyntaxVisitor____module(variable[3]) /*AbsSyntaxVisitor::_module*/;
-  variable[3] = ((mmloader___MMModule___filename_t)CALL(variable[3],COLOR_mmloader___MMModule___filename))(variable[3]) /*MMModule::filename*/;
+  variable[3] = CALL_mmloader___MMModule___filename(variable[3])(variable[3]) /*MMModule::filename*/;
   variable[2] = variable[3];
-  goto return_label51;
-  return_label51: while(false);
+  goto return_label53;
+  return_label53: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t syntax_base___AbsSyntaxVisitor___check_conform(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 350, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform};
+  struct trace_t trace = {NULL, NULL, 356, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1172,47 +1204,48 @@ val_t syntax_base___AbsSyntaxVisitor___check_conform(val_t  self, val_t  param0,
   variable[1] =  param0;
   variable[2] =  param1;
   variable[3] =  param2;
-  variable[5] = TAG_Bool(( variable[3] /*stype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*stype*/,COLOR_kernel___Object_____eqeq))( variable[3] /*stype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = TAG_Bool(( variable[3] /*stype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*stype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*stype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*stype*/)( variable[3] /*stype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[6] = variable[5];
   if (!UNTAG_Bool(variable[6])) { /* or */
-    variable[6] = TAG_Bool(( variable[2] /*subtype*/ ==  NIT_NULL /*null*/) || (( variable[2] /*subtype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*subtype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*subtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*subtype*/,COLOR_kernel___Object_____eqeq))( variable[2] /*subtype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[6] = TAG_Bool(( variable[2] /*subtype*/ ==  NIT_NULL /*null*/) || (( variable[2] /*subtype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*subtype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*subtype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*subtype*/)( variable[2] /*subtype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   }
   variable[5] = variable[6];
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[4] =  TAG_Bool(false);
-    goto return_label52;
+    goto return_label54;
   }
-  variable[5] = ((static_type___MMType_____l_t)CALL( variable[2] /*subtype*/,COLOR_static_type___MMType_____l))( variable[2] /*subtype*/,  variable[3] /*stype*/) /*MMType::<*/;
+  variable[5] = CALL_static_type___MMType_____l( variable[2] /*subtype*/)( variable[2] /*subtype*/,  variable[3] /*stype*/) /*MMType::<*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[4] =  TAG_Bool(true);
-    goto return_label52;
+    goto return_label54;
   }
   variable[5] = variable[0];
-  variable[6] = NEW_String_string___String___init(); /*new String*/
+  variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
   variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Type error: expected "), TAG_Int(21)); /*new String*/
   variable[8] = variable[7];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
   variable[9] =  variable[3] /*stype*/;
-  variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+  variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
   variable[10] = NEW_String_string___String___with_native(BOX_NativeString(", got "), TAG_Int(6)); /*new String*/
   variable[11] = variable[10];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
   variable[12] =  variable[2] /*subtype*/;
-  variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+  variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
   variable[13] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[14] = variable[13];
-  ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
-  ((syntax_base___AbsSyntaxVisitor___error_t)CALL(variable[5],COLOR_syntax_base___AbsSyntaxVisitor___error))(variable[5],  variable[1] /*n*/, variable[6]) /*AbsSyntaxVisitor::error*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
+  variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+  CALL_syntax_base___AbsSyntaxVisitor___error(variable[5])(variable[5],  variable[1] /*n*/, variable[6]) /*AbsSyntaxVisitor::error*/;
   variable[4] =  TAG_Bool(false);
-  goto return_label52;
-  return_label52: while(false);
+  goto return_label54;
+  return_label54: while(false);
   tracehead = trace.prev;
   return variable[4];
 }
 val_t syntax_base___AbsSyntaxVisitor___check_expr(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 365, LOCATE_syntax_base___AbsSyntaxVisitor___check_expr};
+  struct trace_t trace = {NULL, NULL, 371, LOCATE_syntax_base___AbsSyntaxVisitor___check_expr};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1220,30 +1253,30 @@ val_t syntax_base___AbsSyntaxVisitor___check_expr(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((syntax_base___AbsSyntaxVisitor___tc_t)CALL(variable[3],COLOR_syntax_base___AbsSyntaxVisitor___tc))(variable[3]) /*AbsSyntaxVisitor::tc*/;
-  variable[3] = ((mmloader___ToolContext___error_count_t)CALL(variable[3],COLOR_mmloader___ToolContext___error_count))(variable[3]) /*ToolContext::error_count*/;
+  variable[3] = CALL_syntax_base___AbsSyntaxVisitor___tc(variable[3])(variable[3]) /*AbsSyntaxVisitor::tc*/;
+  variable[3] = CALL_mmloader___ToolContext___error_count(variable[3])(variable[3]) /*ToolContext::error_count*/;
   variable[3] = TAG_Bool((variable[3])==( TAG_Int(0)));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
-    variable[4] = ((syntax_base___PExpr___stype_t)CALL( variable[1] /*n*/,COLOR_syntax_base___PExpr___stype))( variable[1] /*n*/) /*PExpr::stype*/;
-    variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[4] = CALL_syntax_base___PExpr___stype( variable[1] /*n*/)( variable[1] /*n*/) /*PExpr::stype*/;
+    variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Type error: expected expression."), TAG_Int(32)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL(variable[3],COLOR_syntax_base___AbsSyntaxVisitor___error))(variable[3],  variable[1] /*n*/, variable[4]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error(variable[3])(variable[3],  variable[1] /*n*/, variable[4]) /*AbsSyntaxVisitor::error*/;
     variable[2] =  TAG_Bool(false);
-    goto return_label53;
+    goto return_label55;
   }
   variable[2] =  TAG_Bool(true);
-  goto return_label53;
-  return_label53: while(false);
+  goto return_label55;
+  return_label55: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 379, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform_expr};
+  struct trace_t trace = {NULL, NULL, 385, LOCATE_syntax_base___AbsSyntaxVisitor___check_conform_expr};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1252,23 +1285,23 @@ val_t syntax_base___AbsSyntaxVisitor___check_conform_expr(val_t  self, val_t  pa
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL(variable[4],COLOR_syntax_base___AbsSyntaxVisitor___check_expr))(variable[4],  variable[1] /*n*/) /*AbsSyntaxVisitor::check_expr*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr(variable[4])(variable[4],  variable[1] /*n*/) /*AbsSyntaxVisitor::check_expr*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = ((syntax_base___PExpr___stype_t)CALL( variable[1] /*n*/,COLOR_syntax_base___PExpr___stype))( variable[1] /*n*/) /*PExpr::stype*/;
-    variable[4] = ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL(variable[4],COLOR_syntax_base___AbsSyntaxVisitor___check_conform))(variable[4],  variable[1] /*n*/, variable[5],  variable[2] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
+    variable[5] = CALL_syntax_base___PExpr___stype( variable[1] /*n*/)( variable[1] /*n*/) /*PExpr::stype*/;
+    variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_conform(variable[4])(variable[4],  variable[1] /*n*/, variable[5],  variable[2] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
     variable[3] = variable[4];
-    goto return_label54;
+    goto return_label56;
   } else { /*if*/
     variable[3] =  TAG_Bool(false);
-    goto return_label54;
+    goto return_label56;
   }
-  return_label54: while(false);
+  return_label56: while(false);
   tracehead = trace.prev;
   return variable[3];
 }
 void syntax_base___AbsSyntaxVisitor___init(val_t  self, val_t  param0, val_t  param1, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 386, LOCATE_syntax_base___AbsSyntaxVisitor___init};
+  struct trace_t trace = {NULL, NULL, 392, LOCATE_syntax_base___AbsSyntaxVisitor___init};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1281,13 +1314,13 @@ void syntax_base___AbsSyntaxVisitor___init(val_t  self, val_t  param0, val_t  pa
   ATTR_syntax_base___AbsSyntaxVisitor____tc(variable[4]) /*AbsSyntaxVisitor::_tc*/ =  variable[1] /*tc*/;
   variable[4] = variable[0];
   ATTR_syntax_base___AbsSyntaxVisitor____module(variable[4]) /*AbsSyntaxVisitor::_module*/ =  variable[2] /*module*/;
-  return_label55: while(false);
+  return_label57: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_AbsSyntaxVisitor].i] = 1;
   tracehead = trace.prev;
   return;
 }
 void syntax_base___PNode___accept_abs_syntax_visitor(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 396, LOCATE_syntax_base___PNode___accept_abs_syntax_visitor};
+  struct trace_t trace = {NULL, NULL, 402, LOCATE_syntax_base___PNode___accept_abs_syntax_visitor};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1295,13 +1328,13 @@ void syntax_base___PNode___accept_abs_syntax_visitor(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((parser_prod___PNode___visit_all_t)CALL(variable[3],COLOR_parser_prod___PNode___visit_all))(variable[3],  variable[1] /*v*/) /*PNode::visit_all*/;
-  return_label56: while(false);
+  CALL_parser_prod___PNode___visit_all(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::visit_all*/;
+  return_label58: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t syntax_base___Token___to_symbol(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 402, LOCATE_syntax_base___Token___to_symbol};
+  struct trace_t trace = {NULL, NULL, 408, LOCATE_syntax_base___Token___to_symbol};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1310,191 +1343,191 @@ val_t syntax_base___Token___to_symbol(val_t  self) {
   variable[3] = variable[0];
   variable[3] = ATTR_syntax_base___Token____symbol(variable[3]) /*Token::_symbol*/;
   variable[2] = variable[3];
-  variable[3] = TAG_Bool(( variable[2] /*s*/ ==  NIT_NULL /*null*/) || (( variable[2] /*s*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*s*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*s*/,COLOR_kernel___Object_____eqeq))( variable[2] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool(( variable[2] /*s*/ ==  NIT_NULL /*null*/) || (( variable[2] /*s*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*s*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*s*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*s*/)( variable[2] /*s*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((lexer___Token___text_t)CALL(variable[3],COLOR_lexer___Token___text))(variable[3]) /*Token::text*/;
-    variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+    variable[3] = CALL_lexer___Token___text(variable[3])(variable[3]) /*Token::text*/;
+    variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
     variable[2] = variable[3] /*s=*/;
     variable[3] = variable[0];
     ATTR_syntax_base___Token____symbol(variable[3]) /*Token::_symbol*/ =  variable[2] /*s*/;
   }
   variable[1] =  variable[2] /*s*/;
-  goto return_label57;
-  return_label57: while(false);
+  goto return_label59;
+  return_label59: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t syntax_base___PClassdef___local_class(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 416, LOCATE_syntax_base___PClassdef___local_class};
+  struct trace_t trace = {NULL, NULL, 422, LOCATE_syntax_base___PClassdef___local_class};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 416);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 422);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___AAttrPropdef___prop(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 421, LOCATE_syntax_base___AAttrPropdef___prop};
+  struct trace_t trace = {NULL, NULL, 427, LOCATE_syntax_base___AAttrPropdef___prop};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 421);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 427);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___AAttrPropdef___readmethod(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 424, LOCATE_syntax_base___AAttrPropdef___readmethod};
+  struct trace_t trace = {NULL, NULL, 430, LOCATE_syntax_base___AAttrPropdef___readmethod};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 424);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 430);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___AAttrPropdef___writemethod(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 427, LOCATE_syntax_base___AAttrPropdef___writemethod};
+  struct trace_t trace = {NULL, NULL, 433, LOCATE_syntax_base___AAttrPropdef___writemethod};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 427);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 433);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___AMethPropdef___method(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 432, LOCATE_syntax_base___AMethPropdef___method};
+  struct trace_t trace = {NULL, NULL, 438, LOCATE_syntax_base___AMethPropdef___method};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 432);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 438);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___AMethPropdef___self_var(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 435, LOCATE_syntax_base___AMethPropdef___self_var};
+  struct trace_t trace = {NULL, NULL, 441, LOCATE_syntax_base___AMethPropdef___self_var};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 435);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 441);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___ATypePropdef___prop(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 440, LOCATE_syntax_base___ATypePropdef___prop};
+  struct trace_t trace = {NULL, NULL, 446, LOCATE_syntax_base___ATypePropdef___prop};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 440);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 446);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___PParam___position(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 445, LOCATE_syntax_base___PParam___position};
+  struct trace_t trace = {NULL, NULL, 451, LOCATE_syntax_base___PParam___position};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 445);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 451);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___PParam___variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 448, LOCATE_syntax_base___PParam___variable};
+  struct trace_t trace = {NULL, NULL, 454, LOCATE_syntax_base___PParam___variable};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 448);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 454);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___PClosureDecl___variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 453, LOCATE_syntax_base___PClosureDecl___variable};
+  struct trace_t trace = {NULL, NULL, 459, LOCATE_syntax_base___PClosureDecl___variable};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 453);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 459);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___PType___get_local_class(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 458, LOCATE_syntax_base___PType___get_local_class};
+  struct trace_t trace = {NULL, NULL, 464, LOCATE_syntax_base___PType___get_local_class};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 458);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 464);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___PType___get_stype(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 463, LOCATE_syntax_base___PType___get_stype};
+  struct trace_t trace = {NULL, NULL, 469, LOCATE_syntax_base___PType___get_stype};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 463);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 469);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___PType___get_unchecked_stype(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 467, LOCATE_syntax_base___PType___get_unchecked_stype};
+  struct trace_t trace = {NULL, NULL, 473, LOCATE_syntax_base___PType___get_unchecked_stype};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 467);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 473);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 void syntax_base___PType___check_conform(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 473, LOCATE_syntax_base___PType___check_conform};
+  struct trace_t trace = {NULL, NULL, 479, LOCATE_syntax_base___PType___check_conform};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 473);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 479);
   nit_exit(1);
   tracehead = trace.prev;
   return;
 }
 val_t syntax_base___AType___get_local_class(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 483, LOCATE_syntax_base___AType___get_local_class};
+  struct trace_t trace = {NULL, NULL, 489, LOCATE_syntax_base___AType___get_local_class};
   val_t variable[16];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1502,90 +1535,92 @@ val_t syntax_base___AType___get_local_class(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AType___n_id_t)CALL(variable[4],COLOR_parser_nodes___AType___n_id))(variable[4]) /*AType::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___AType___n_id(variable[4])(variable[4]) /*AType::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[3] = variable[4];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
   variable[4] = variable[5];
-  variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
   variable[5] = variable[6];
-  variable[6] = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable[5] /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[7] = variable[6];
   if (UNTAG_Bool(variable[7])) { /* and */
-    variable[7] = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable[5] /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
-    variable[7] = ((abstract_collection___Map___has_key_t)CALL(variable[7],COLOR_abstract_collection___Map___has_key))(variable[7],  variable[3] /*name*/) /*Map::has_key*/;
+    variable[7] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+    variable[7] = CALL_abstract_collection___Map___has_key(variable[7])(variable[7],  variable[3] /*name*/) /*Map::has_key*/;
   }
   variable[6] = variable[7];
   variable[7] = variable[6];
   if (!UNTAG_Bool(variable[7])) { /* or */
-    variable[7] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[5] /*cla*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
-    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[7],COLOR_kernel___Object_____eqeq))(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
+    variable[7] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[7] ==  NIT_NULL /*null*/) || ((variable[7] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[7])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[7], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[7])(variable[7],  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[8] = variable[7];
     if (UNTAG_Bool(variable[8])) { /* and */
-      variable[8] = ((abstractmetamodel___MMLocalClass___has_global_property_by_name_t)CALL( variable[5] /*cla*/,COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name))( variable[5] /*cla*/,  variable[3] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
+      variable[8] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable[5] /*cla*/)( variable[5] /*cla*/,  variable[3] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
     }
     variable[7] = variable[8];
   }
   variable[6] = variable[7];
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AType___n_id_t)CALL(variable[6],COLOR_parser_nodes___AType___n_id))(variable[6]) /*AType::n_id*/;
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[6] = CALL_parser_nodes___AType___n_id(variable[6])(variable[6]) /*AType::n_id*/;
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[3] /*name*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is a formal type"), TAG_Int(17)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
     variable[6] = variable[0];
     ATTR_syntax_base___AType____stype_cached(variable[6]) /*AType::_stype_cached*/ =  TAG_Bool(true);
     variable[2] =  NIT_NULL /*null*/;
-    goto return_label58;
+    goto return_label60;
   }
-  variable[6] = ((abstractmetamodel___MMModule___has_global_class_named_t)CALL( variable[4] /*mod*/,COLOR_abstractmetamodel___MMModule___has_global_class_named))( variable[4] /*mod*/,  variable[3] /*name*/) /*MMModule::has_global_class_named*/;
+  variable[6] = CALL_abstractmetamodel___MMModule___has_global_class_named( variable[4] /*mod*/)( variable[4] /*mod*/,  variable[3] /*name*/) /*MMModule::has_global_class_named*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AType___n_id_t)CALL(variable[6],COLOR_parser_nodes___AType___n_id))(variable[6]) /*AType::n_id*/;
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[6] = CALL_parser_nodes___AType___n_id(variable[6])(variable[6]) /*AType::n_id*/;
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: class "), TAG_Int(18)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[3] /*name*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" not found in module "), TAG_Int(21)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
     variable[13] =  variable[4] /*mod*/;
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
     variable[6] = variable[0];
     ATTR_syntax_base___AType____stype_cached(variable[6]) /*AType::_stype_cached*/ =  TAG_Bool(true);
     variable[2] =  NIT_NULL /*null*/;
-    goto return_label58;
+    goto return_label60;
   }
-  variable[7] = ((abstractmetamodel___MMModule___class_by_name_t)CALL( variable[4] /*mod*/,COLOR_abstractmetamodel___MMModule___class_by_name))( variable[4] /*mod*/,  variable[3] /*name*/) /*MMModule::class_by_name*/;
+  variable[7] = CALL_abstractmetamodel___MMModule___class_by_name( variable[4] /*mod*/)( variable[4] /*mod*/,  variable[3] /*name*/) /*MMModule::class_by_name*/;
   variable[6] = variable[7];
-  variable[7] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[6] /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[6] /*local_class*/) /*MMLocalClass::global*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___global( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::global*/;
   variable[8] = variable[0];
-  ((syntax_base___MMGlobalClass___check_visibility_t)CALL(variable[7],COLOR_syntax_base___MMGlobalClass___check_visibility))(variable[7],  variable[1] /*v*/, variable[8],  variable[4] /*mod*/) /*MMGlobalClass::check_visibility*/;
+  CALL_syntax_base___MMGlobalClass___check_visibility(variable[7])(variable[7],  variable[1] /*v*/, variable[8],  variable[4] /*mod*/) /*MMGlobalClass::check_visibility*/;
   variable[2] =  variable[6] /*local_class*/;
-  goto return_label58;
-  return_label58: while(false);
+  goto return_label60;
+  return_label60: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t syntax_base___AType___get_stype(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 563, LOCATE_syntax_base___AType___get_stype};
+  struct trace_t trace = {NULL, NULL, 569, LOCATE_syntax_base___AType___get_stype};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1593,21 +1628,21 @@ val_t syntax_base___AType___get_stype(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___AType___get_unchecked_stype_t)CALL(variable[4],COLOR_syntax_base___PType___get_unchecked_stype))(variable[4],  variable[1] /*v*/) /*AType::get_unchecked_stype*/;
+  variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[4])(variable[4],  variable[1] /*v*/) /*AType::get_unchecked_stype*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    ((syntax_base___AType___check_conform_t)CALL(variable[4],COLOR_syntax_base___PType___check_conform))(variable[4],  variable[1] /*v*/) /*AType::check_conform*/;
+    CALL_syntax_base___PType___check_conform(variable[4])(variable[4],  variable[1] /*v*/) /*AType::check_conform*/;
   }
   variable[2] =  variable[3] /*t*/;
-  goto return_label59;
-  return_label59: while(false);
+  goto return_label61;
+  return_label61: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t syntax_base___AType___get_unchecked_stype(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 506, LOCATE_syntax_base___AType___get_unchecked_stype};
+  struct trace_t trace = {NULL, NULL, 512, LOCATE_syntax_base___AType___get_unchecked_stype};
   val_t variable[22];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1620,186 +1655,190 @@ val_t syntax_base___AType___get_unchecked_stype(val_t  self, val_t  param0) {
     variable[3] = variable[0];
     variable[3] = ATTR_syntax_base___AType____stype_cache(variable[3]) /*AType::_stype_cache*/;
     variable[2] = variable[3];
-    goto return_label60;
+    goto return_label62;
   }
   variable[3] = variable[0];
   ATTR_syntax_base___AType____stype_cached(variable[3]) /*AType::_stype_cached*/ =  TAG_Bool(true);
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AType___n_id_t)CALL(variable[4],COLOR_parser_nodes___AType___n_id))(variable[4]) /*AType::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___AType___n_id(variable[4])(variable[4]) /*AType::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[3] = variable[4];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
   variable[4] = variable[5];
-  variable[6] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
   variable[5] = variable[6];
-  variable[6] = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable[5] /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
-  variable[6] = ((abstract_collection___Map___has_key_t)CALL(variable[6],COLOR_abstract_collection___Map___has_key))(variable[6],  variable[3] /*name*/) /*Map::has_key*/;
+  variable[6] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+  variable[6] = CALL_abstract_collection___Map___has_key(variable[6])(variable[6],  variable[3] /*name*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AType___n_types_t)CALL(variable[6],COLOR_parser_nodes___AType___n_types))(variable[6]) /*AType::n_types*/;
-    variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
+    variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/;
+    variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
     variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(0)));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] =  variable[3] /*name*/;
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
       variable[2] =  NIT_NULL /*null*/;
-      goto return_label60;
+      goto return_label62;
     }
-    variable[7] = ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL( variable[5] /*cla*/,COLOR_syntax_base___MMSrcLocalClass___formal_dict))( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
-    variable[7] = ((abstract_collection___Map_____bra_t)CALL(variable[7],COLOR_abstract_collection___Map_____bra))(variable[7],  variable[3] /*name*/) /*Map::[]*/;
+    variable[7] = CALL_syntax_base___MMSrcLocalClass___formal_dict( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMSrcLocalClass::formal_dict*/;
+    variable[7] = CALL_abstract_collection___Map_____bra(variable[7])(variable[7],  variable[3] /*name*/) /*Map::[]*/;
     variable[6] = variable[7];
     variable[7] = variable[0];
     ATTR_syntax_base___AType____stype_cache(variable[7]) /*AType::_stype_cache*/ =  variable[6] /*formal*/;
     variable[2] =  variable[6] /*formal*/;
-    goto return_label60;
+    goto return_label62;
   }
-  variable[6] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[5] /*cla*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::global_properties*/;
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[7] = variable[6];
   if (UNTAG_Bool(variable[7])) { /* and */
-    variable[7] = ((abstractmetamodel___MMLocalClass___has_global_property_by_name_t)CALL( variable[5] /*cla*/,COLOR_abstractmetamodel___MMLocalClass___has_global_property_by_name))( variable[5] /*cla*/,  variable[3] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___has_global_property_by_name( variable[5] /*cla*/)( variable[5] /*cla*/,  variable[3] /*name*/) /*MMLocalClass::has_global_property_by_name*/;
   }
   variable[6] = variable[7];
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AType___n_types_t)CALL(variable[6],COLOR_parser_nodes___AType___n_types))(variable[6]) /*AType::n_types*/;
-    variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
+    variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/;
+    variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
     variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(0)));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: formal type "), TAG_Int(24)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] =  variable[3] /*name*/;
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" cannot have formal parameters."), TAG_Int(31)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
       variable[2] =  NIT_NULL /*null*/;
-      goto return_label60;
+      goto return_label62;
     }
-    variable[7] = ((genericity___MMLocalClass___get_type_t)CALL( variable[5] /*cla*/,COLOR_static_type___MMLocalClass___get_type))( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
-    variable[7] = ((static_type___MMType___local_class_t)CALL(variable[7],COLOR_static_type___MMType___local_class))(variable[7]) /*MMType::local_class*/;
-    variable[7] = ((virtualtype___MMLocalClass___select_virtual_type_t)CALL(variable[7],COLOR_virtualtype___MMLocalClass___select_virtual_type))(variable[7],  variable[3] /*name*/) /*MMLocalClass::select_virtual_type*/;
-    variable[8] = ((genericity___MMLocalClass___get_type_t)CALL( variable[5] /*cla*/,COLOR_static_type___MMLocalClass___get_type))( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
-    variable[7] = ((virtualtype___MMTypeProperty___stype_for_t)CALL(variable[7],COLOR_virtualtype___MMTypeProperty___stype_for))(variable[7], variable[8]) /*MMTypeProperty::stype_for*/;
+    variable[7] = CALL_static_type___MMLocalClass___get_type( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
+    variable[7] = CALL_static_type___MMType___local_class(variable[7])(variable[7]) /*MMType::local_class*/;
+    variable[7] = CALL_virtualtype___MMLocalClass___select_virtual_type(variable[7])(variable[7],  variable[3] /*name*/) /*MMLocalClass::select_virtual_type*/;
+    variable[8] = CALL_static_type___MMLocalClass___get_type( variable[5] /*cla*/)( variable[5] /*cla*/) /*MMLocalClass::get_type*/;
+    variable[7] = CALL_virtualtype___MMTypeProperty___stype_for(variable[7])(variable[7], variable[8]) /*MMTypeProperty::stype_for*/;
     variable[6] = variable[7];
-    variable[7] = TAG_Bool(( variable[6] /*t*/ ==  NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))( variable[6] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[7] = TAG_Bool(( variable[6] /*t*/ ==  NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*t*/)( variable[6] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[7] = variable[0];
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Type error: circular definition in formal type "), TAG_Int(47)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[3] /*name*/;
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
       variable[2] =  NIT_NULL /*null*/;
-      goto return_label60;
+      goto return_label62;
     }
     variable[7] = variable[0];
     ATTR_syntax_base___AType____stype_cache(variable[7]) /*AType::_stype_cache*/ =  variable[6] /*t*/;
     variable[2] =  variable[6] /*t*/;
-    goto return_label60;
+    goto return_label62;
   }
   variable[7] = variable[0];
-  variable[7] = ((syntax_base___AType___get_local_class_t)CALL(variable[7],COLOR_syntax_base___PType___get_local_class))(variable[7],  variable[1] /*v*/) /*AType::get_local_class*/;
+  variable[7] = CALL_syntax_base___PType___get_local_class(variable[7])(variable[7],  variable[1] /*v*/) /*AType::get_local_class*/;
   variable[6] = variable[7];
-  variable[7] = TAG_Bool(( variable[6] /*local_class*/ ==  NIT_NULL /*null*/) || (( variable[6] /*local_class*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*local_class*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*local_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*local_class*/,COLOR_kernel___Object_____eqeq))( variable[6] /*local_class*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[7] = TAG_Bool(( variable[6] /*local_class*/ ==  NIT_NULL /*null*/) || (( variable[6] /*local_class*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*local_class*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*local_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*local_class*/)( variable[6] /*local_class*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     variable[2] =  NIT_NULL /*null*/;
-    goto return_label60;
+    goto return_label62;
   }
   variable[8] = variable[0];
-  variable[8] = ((parser_nodes___AType___n_types_t)CALL(variable[8],COLOR_parser_nodes___AType___n_types))(variable[8]) /*AType::n_types*/;
-  variable[8] = ((list___List___length_t)CALL(variable[8],COLOR_abstract_collection___Collection___length))(variable[8]) /*List::length*/;
+  variable[8] = CALL_parser_nodes___AType___n_types(variable[8])(variable[8]) /*AType::n_types*/;
+  variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*List::length*/;
   variable[7] = variable[8];
-  variable[8] = ((abstractmetamodel___MMLocalClass___arity_t)CALL( variable[6] /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___arity))( variable[6] /*local_class*/) /*MMLocalClass::arity*/;
+  variable[8] = CALL_abstractmetamodel___MMLocalClass___arity( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::arity*/;
   variable[8] = TAG_Bool((variable[8])!=( variable[7] /*arity*/));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[8] = variable[0];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
+    variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Type error: '"), TAG_Int(13)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
     variable[12] =  variable[6] /*local_class*/;
-    variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+    variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
     variable[13] = NEW_String_string___String___with_native(BOX_NativeString("' has "), TAG_Int(6)); /*new String*/
     variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-    variable[15] = ((abstractmetamodel___MMLocalClass___arity_t)CALL( variable[6] /*local_class*/,COLOR_abstractmetamodel___MMLocalClass___arity))( variable[6] /*local_class*/) /*MMLocalClass::arity*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+    variable[15] = CALL_abstractmetamodel___MMLocalClass___arity( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::arity*/;
     variable[16] = variable[15];
-    variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+    variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
     variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" parameters which differs from the "), TAG_Int(35)); /*new String*/
     variable[18] = variable[17];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
     variable[19] =  variable[7] /*arity*/;
-    variable[19] = ((string___String___to_s_t)CALL(variable[19],COLOR_string___Object___to_s))(variable[19]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[19]) /*String::append*/;
+    variable[19] = CALL_string___Object___to_s(variable[19])(variable[19]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[19]) /*AbstractArray::add*/;
     variable[20] = NEW_String_string___String___with_native(BOX_NativeString(" params."), TAG_Int(8)); /*new String*/
     variable[21] = variable[20];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[21]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[21]) /*AbstractArray::add*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
     variable[2] =  NIT_NULL /*null*/;
-    goto return_label60;
+    goto return_label62;
   }
   variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*arity*/)>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[8])) { /*if*/
     variable[9] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
     variable[8] = variable[9];
     variable[9] = variable[0];
-    variable[9] = ((parser_nodes___AType___n_types_t)CALL(variable[9],COLOR_parser_nodes___AType___n_types))(variable[9]) /*AType::n_types*/;
-    variable[9] = ((list___List___iterator_t)CALL(variable[9],COLOR_abstract_collection___Collection___iterator))(variable[9]) /*List::iterator*/;
+    variable[9] = CALL_parser_nodes___AType___n_types(variable[9])(variable[9]) /*AType::n_types*/;
+    variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*List::iterator*/;
     while (true) { /*for*/
-      variable[10] = ((list___ListIterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*ListIterator::is_ok*/;
+      variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ListIterator::is_ok*/;
       if (!UNTAG_Bool(variable[10])) break; /*for*/
-      variable[10] = ((list___ListIterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*ListIterator::item*/;
+      variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ListIterator::item*/;
       variable[11] = variable[10];
-      variable[12] = ((syntax_base___PType___get_unchecked_stype_t)CALL( variable[11] /*p*/,COLOR_syntax_base___PType___get_unchecked_stype))( variable[11] /*p*/,  variable[1] /*v*/) /*PType::get_unchecked_stype*/;
-      ((array___AbstractArray___add_t)CALL( variable[8] /*tab*/,COLOR_abstract_collection___SimpleCollection___add))( variable[8] /*tab*/, variable[12]) /*AbstractArray::add*/;
-      continue_61: while(0);
-      ((list___ListIterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*ListIterator::next*/;
+      variable[12] = CALL_syntax_base___PType___get_unchecked_stype( variable[11] /*p*/)( variable[11] /*p*/,  variable[1] /*v*/) /*PType::get_unchecked_stype*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[8] /*tab*/)( variable[8] /*tab*/, variable[12]) /*AbstractArray::add*/;
+      continue_63: while(0);
+      CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ListIterator::next*/;
     }
-    break_61: while(0);
-    variable[10] = ((genericity___MMLocalClass___get_instantiate_type_t)CALL( variable[6] /*local_class*/,COLOR_genericity___MMLocalClass___get_instantiate_type))( variable[6] /*local_class*/,  variable[8] /*tab*/) /*MMLocalClass::get_instantiate_type*/;
+    break_63: while(0);
+    variable[10] = CALL_genericity___MMLocalClass___get_instantiate_type( variable[6] /*local_class*/)( variable[6] /*local_class*/,  variable[8] /*tab*/) /*MMLocalClass::get_instantiate_type*/;
     variable[9] = variable[10];
     variable[10] = variable[0];
     ATTR_syntax_base___AType____stype_cache(variable[10]) /*AType::_stype_cache*/ =  variable[9] /*t*/;
     variable[2] =  variable[9] /*t*/;
-    goto return_label60;
+    goto return_label62;
   } else { /*if*/
-    variable[9] = ((genericity___MMLocalClass___get_type_t)CALL( variable[6] /*local_class*/,COLOR_static_type___MMLocalClass___get_type))( variable[6] /*local_class*/) /*MMLocalClass::get_type*/;
+    variable[9] = CALL_static_type___MMLocalClass___get_type( variable[6] /*local_class*/)( variable[6] /*local_class*/) /*MMLocalClass::get_type*/;
     variable[8] = variable[9];
     variable[9] = variable[0];
     ATTR_syntax_base___AType____stype_cache(variable[9]) /*AType::_stype_cache*/ =  variable[8] /*t*/;
     variable[2] =  variable[8] /*t*/;
-    goto return_label60;
+    goto return_label62;
   }
-  return_label60: while(false);
+  return_label62: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 void syntax_base___AType___check_conform(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 570, LOCATE_syntax_base___AType___check_conform};
+  struct trace_t trace = {NULL, NULL, 576, LOCATE_syntax_base___AType___check_conform};
   val_t variable[13];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1807,66 +1846,66 @@ void syntax_base___AType___check_conform(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___AType___get_unchecked_stype_t)CALL(variable[4],COLOR_syntax_base___PType___get_unchecked_stype))(variable[4],  variable[1] /*v*/) /*AType::get_unchecked_stype*/;
+  variable[4] = CALL_syntax_base___PType___get_unchecked_stype(variable[4])(variable[4],  variable[1] /*v*/) /*AType::get_unchecked_stype*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*st*/ ==  NIT_NULL /*null*/) || (( variable[3] /*st*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*st*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*st*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*st*/,COLOR_kernel___Object_____eqeq))( variable[3] /*st*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*st*/ ==  NIT_NULL /*null*/) || (( variable[3] /*st*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*st*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*st*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*st*/)( variable[3] /*st*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    goto return_label62;
+    goto return_label64;
   }
-  variable[5] = ((static_type___MMType___local_class_t)CALL( variable[3] /*st*/,COLOR_static_type___MMType___local_class))( variable[3] /*st*/) /*MMType::local_class*/;
+  variable[5] = CALL_static_type___MMType___local_class( variable[3] /*st*/)( variable[3] /*st*/) /*MMType::local_class*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AType___n_types_t)CALL(variable[6],COLOR_parser_nodes___AType___n_types))(variable[6]) /*AType::n_types*/;
-  variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
+  variable[6] = CALL_parser_nodes___AType___n_types(variable[6])(variable[6]) /*AType::n_types*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
   variable[5] = variable[6];
   variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*arity*/)>UNTAG_Int( TAG_Int(0)));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[5] /*arity*/); /*new Range[Int]*/
-    variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
+    variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
     while (true) { /*for*/
-      variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+      variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
       if (!UNTAG_Bool(variable[7])) break; /*for*/
-      variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+      variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
       variable[8] = variable[7];
       variable[10] = variable[0];
-      variable[10] = ((parser_nodes___AType___n_types_t)CALL(variable[10],COLOR_parser_nodes___AType___n_types))(variable[10]) /*AType::n_types*/;
-      variable[10] = ((list___List_____bra_t)CALL(variable[10],COLOR_abstract_collection___Map_____bra))(variable[10],  variable[8] /*i*/) /*List::[]*/;
+      variable[10] = CALL_parser_nodes___AType___n_types(variable[10])(variable[10]) /*AType::n_types*/;
+      variable[10] = CALL_abstract_collection___Map_____bra(variable[10])(variable[10],  variable[8] /*i*/) /*List::[]*/;
       variable[9] = variable[10];
-      variable[11] = ((syntax_base___PType___get_stype_t)CALL( variable[9] /*p*/,COLOR_syntax_base___PType___get_stype))( variable[9] /*p*/,  variable[1] /*v*/) /*PType::get_stype*/;
+      variable[11] = CALL_syntax_base___PType___get_stype( variable[9] /*p*/)( variable[9] /*p*/,  variable[1] /*v*/) /*PType::get_stype*/;
       variable[10] = variable[11];
-      variable[12] = ((genericity___MMLocalClass___get_formal_t)CALL( variable[4] /*local_class*/,COLOR_genericity___MMLocalClass___get_formal))( variable[4] /*local_class*/,  variable[8] /*i*/) /*MMLocalClass::get_formal*/;
-      variable[12] = ((type_formal___MMTypeFormal___bound_t)CALL(variable[12],COLOR_type_formal___MMTypeFormal___bound))(variable[12]) /*MMTypeFormal::bound*/;
+      variable[12] = CALL_genericity___MMLocalClass___get_formal( variable[4] /*local_class*/)( variable[4] /*local_class*/,  variable[8] /*i*/) /*MMLocalClass::get_formal*/;
+      variable[12] = CALL_type_formal___MMTypeFormal___bound(variable[12])(variable[12]) /*MMTypeFormal::bound*/;
       variable[11] = variable[12];
-      variable[12] = TAG_Bool(( variable[11] /*bt*/ ==  NIT_NULL /*null*/) || (( variable[11] /*bt*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[11] /*bt*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*bt*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[11] /*bt*/,COLOR_kernel___Object_____eqeq))( variable[11] /*bt*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[12] = TAG_Bool(( variable[11] /*bt*/ ==  NIT_NULL /*null*/) || (( variable[11] /*bt*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[11] /*bt*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[11] /*bt*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*bt*/)( variable[11] /*bt*/,  NIT_NULL /*null*/) /*Object::==*/)))));
       if (UNTAG_Bool(variable[12])) { /*if*/
-        goto return_label62;
+        goto return_label64;
       }
-      variable[12] = ((static_type___MMType___adapt_to_t)CALL( variable[11] /*bt*/,COLOR_static_type___MMType___adapt_to))( variable[11] /*bt*/,  variable[3] /*st*/) /*MMType::adapt_to*/;
+      variable[12] = CALL_static_type___MMType___adapt_to( variable[11] /*bt*/)( variable[11] /*bt*/,  variable[3] /*st*/) /*MMType::adapt_to*/;
       variable[11] = variable[12] /*bt=*/;
-      ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable[1] /*v*/,  variable[9] /*p*/,  variable[10] /*pt*/,  variable[11] /*bt*/) /*AbsSyntaxVisitor::check_conform*/;
-      continue_63: while(0);
-      ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+      CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable[1] /*v*/)( variable[1] /*v*/,  variable[9] /*p*/,  variable[10] /*pt*/,  variable[11] /*bt*/) /*AbsSyntaxVisitor::check_conform*/;
+      continue_65: while(0);
+      CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
     }
-    break_63: while(0);
+    break_65: while(0);
   }
-  return_label62: while(false);
+  return_label64: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t syntax_base___PExpr___stype(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 590, LOCATE_syntax_base___PExpr___stype};
+  struct trace_t trace = {NULL, NULL, 596, LOCATE_syntax_base___PExpr___stype};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_syntax_base;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 590);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_syntax_base, 596);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t syntax_base___AVardeclExpr___variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 596, LOCATE_syntax_base___AVardeclExpr___variable};
+  struct trace_t trace = {NULL, NULL, 602, LOCATE_syntax_base___AVardeclExpr___variable};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1875,7 +1914,7 @@ val_t syntax_base___AVardeclExpr___variable(val_t  self) {
   return ATTR_syntax_base___AVardeclExpr____variable( self) /*AVardeclExpr::_variable*/;
 }
 void syntax_base___AVardeclExpr___variable__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 596, LOCATE_syntax_base___AVardeclExpr___variable__eq};
+  struct trace_t trace = {NULL, NULL, 602, LOCATE_syntax_base___AVardeclExpr___variable__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1885,7 +1924,7 @@ void syntax_base___AVardeclExpr___variable__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t syntax_base___AForVardeclExpr___variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 601, LOCATE_syntax_base___AForVardeclExpr___variable};
+  struct trace_t trace = {NULL, NULL, 607, LOCATE_syntax_base___AForVardeclExpr___variable};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1894,7 +1933,7 @@ val_t syntax_base___AForVardeclExpr___variable(val_t  self) {
   return ATTR_syntax_base___AForVardeclExpr____variable( self) /*AForVardeclExpr::_variable*/;
 }
 void syntax_base___AForVardeclExpr___variable__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 601, LOCATE_syntax_base___AForVardeclExpr___variable__eq};
+  struct trace_t trace = {NULL, NULL, 607, LOCATE_syntax_base___AForVardeclExpr___variable__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1904,7 +1943,7 @@ void syntax_base___AForVardeclExpr___variable__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t syntax_base___ASelfExpr___variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 606, LOCATE_syntax_base___ASelfExpr___variable};
+  struct trace_t trace = {NULL, NULL, 612, LOCATE_syntax_base___ASelfExpr___variable};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1913,7 +1952,7 @@ val_t syntax_base___ASelfExpr___variable(val_t  self) {
   return ATTR_syntax_base___ASelfExpr____variable( self) /*ASelfExpr::_variable*/;
 }
 void syntax_base___ASelfExpr___variable__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 606, LOCATE_syntax_base___ASelfExpr___variable__eq};
+  struct trace_t trace = {NULL, NULL, 612, LOCATE_syntax_base___ASelfExpr___variable__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1923,7 +1962,7 @@ void syntax_base___ASelfExpr___variable__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t syntax_base___AVarFormExpr___variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 611, LOCATE_syntax_base___AVarFormExpr___variable};
+  struct trace_t trace = {NULL, NULL, 617, LOCATE_syntax_base___AVarFormExpr___variable};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1932,7 +1971,7 @@ val_t syntax_base___AVarFormExpr___variable(val_t  self) {
   return ATTR_syntax_base___AVarFormExpr____variable( self) /*AVarFormExpr::_variable*/;
 }
 void syntax_base___AVarFormExpr___variable__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 611, LOCATE_syntax_base___AVarFormExpr___variable__eq};
+  struct trace_t trace = {NULL, NULL, 617, LOCATE_syntax_base___AVarFormExpr___variable__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1942,7 +1981,7 @@ void syntax_base___AVarFormExpr___variable__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t syntax_base___AClosureCallExpr___variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 616, LOCATE_syntax_base___AClosureCallExpr___variable};
+  struct trace_t trace = {NULL, NULL, 622, LOCATE_syntax_base___AClosureCallExpr___variable};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1951,7 +1990,7 @@ val_t syntax_base___AClosureCallExpr___variable(val_t  self) {
   return ATTR_syntax_base___AClosureCallExpr____variable( self) /*AClosureCallExpr::_variable*/;
 }
 void syntax_base___AClosureCallExpr___variable__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 616, LOCATE_syntax_base___AClosureCallExpr___variable__eq};
+  struct trace_t trace = {NULL, NULL, 622, LOCATE_syntax_base___AClosureCallExpr___variable__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1961,7 +2000,7 @@ void syntax_base___AClosureCallExpr___variable__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t syntax_base___PClosureDef___closure(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 621, LOCATE_syntax_base___PClosureDef___closure};
+  struct trace_t trace = {NULL, NULL, 627, LOCATE_syntax_base___PClosureDef___closure};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1970,7 +2009,7 @@ val_t syntax_base___PClosureDef___closure(val_t  self) {
   return ATTR_syntax_base___PClosureDef____closure( self) /*PClosureDef::_closure*/;
 }
 void syntax_base___PClosureDef___closure__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 621, LOCATE_syntax_base___PClosureDef___closure__eq};
+  struct trace_t trace = {NULL, NULL, 627, LOCATE_syntax_base___PClosureDef___closure__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1980,7 +2019,7 @@ void syntax_base___PClosureDef___closure__eq(val_t  self, val_t  param0) {
   return;
 }
 val_t syntax_base___PClosureDef___variables(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 624, LOCATE_syntax_base___PClosureDef___variables};
+  struct trace_t trace = {NULL, NULL, 630, LOCATE_syntax_base___PClosureDef___variables};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1989,7 +2028,7 @@ val_t syntax_base___PClosureDef___variables(val_t  self) {
   return ATTR_syntax_base___PClosureDef____variables( self) /*PClosureDef::_variables*/;
 }
 void syntax_base___PClosureDef___variables__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 624, LOCATE_syntax_base___PClosureDef___variables__eq};
+  struct trace_t trace = {NULL, NULL, 630, LOCATE_syntax_base___PClosureDef___variables__eq};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
index b561e42..3b72394 100644 (file)
@@ -38,175 +38,174 @@ extern const classtable_elt_t VFT_ClosureVariable[];
 extern const classtable_elt_t VFT_AbsSyntaxVisitor[];
 extern const char *LOCATE_syntax_base;
 extern const int SFT_syntax_base[];
-#define ID_MMSrcModule SFT_syntax_base[0]
-#define COLOR_MMSrcModule SFT_syntax_base[1]
-#define COLOR_syntax_base___MMSrcModule____node SFT_syntax_base[2]
-#define COLOR_syntax_base___MMSrcModule____src_local_classes SFT_syntax_base[3]
-#define INIT_TABLE_POS_MMSrcModule SFT_syntax_base[4]
-#define COLOR_syntax_base___MMSrcModule___node SFT_syntax_base[5]
-#define COLOR_syntax_base___MMSrcModule___src_local_classes SFT_syntax_base[6]
-#define COLOR_syntax_base___MMSrcModule___init SFT_syntax_base[7]
-#define COLOR_syntax_base___MMGlobalClass___check_visibility SFT_syntax_base[8]
-#define ID_MMSrcLocalClass SFT_syntax_base[9]
-#define COLOR_MMSrcLocalClass SFT_syntax_base[10]
-#define COLOR_syntax_base___MMSrcLocalClass____nodes SFT_syntax_base[11]
-#define COLOR_syntax_base___MMSrcLocalClass____formal_dict SFT_syntax_base[12]
-#define COLOR_syntax_base___MMSrcLocalClass____src_local_properties SFT_syntax_base[13]
-#define INIT_TABLE_POS_MMSrcLocalClass SFT_syntax_base[14]
-#define COLOR_syntax_base___MMSrcLocalClass___nodes SFT_syntax_base[15]
-#define COLOR_syntax_base___MMSrcLocalClass___formal_dict SFT_syntax_base[16]
-#define COLOR_syntax_base___MMSrcLocalClass___formal_dict__eq SFT_syntax_base[17]
-#define COLOR_syntax_base___MMSrcLocalClass___src_local_properties SFT_syntax_base[18]
-#define COLOR_syntax_base___MMSrcLocalClass___init SFT_syntax_base[19]
-#define COLOR_syntax_base___MMGlobalProperty___check_visibility SFT_syntax_base[20]
-#define COLOR_syntax_base___MMLocalProperty___node SFT_syntax_base[21]
-#define COLOR_syntax_base___MMLocalProperty___is_init SFT_syntax_base[22]
-#define ID_MMSrcAttribute SFT_syntax_base[23]
-#define COLOR_MMSrcAttribute SFT_syntax_base[24]
-#define COLOR_syntax_base___MMSrcAttribute____node SFT_syntax_base[25]
-#define INIT_TABLE_POS_MMSrcAttribute SFT_syntax_base[26]
-#define COLOR_syntax_base___MMSrcAttribute___init SFT_syntax_base[27]
-#define ID_MMSrcMethod SFT_syntax_base[28]
-#define COLOR_MMSrcMethod SFT_syntax_base[29]
-#define INIT_TABLE_POS_MMSrcMethod SFT_syntax_base[30]
-#define ID_MMAttrImplementationMethod SFT_syntax_base[31]
-#define COLOR_MMAttrImplementationMethod SFT_syntax_base[32]
-#define COLOR_syntax_base___MMAttrImplementationMethod____node SFT_syntax_base[33]
-#define INIT_TABLE_POS_MMAttrImplementationMethod SFT_syntax_base[34]
-#define COLOR_syntax_base___MMAttrImplementationMethod___init SFT_syntax_base[35]
-#define ID_MMReadImplementationMethod SFT_syntax_base[36]
-#define COLOR_MMReadImplementationMethod SFT_syntax_base[37]
-#define INIT_TABLE_POS_MMReadImplementationMethod SFT_syntax_base[38]
-#define COLOR_syntax_base___MMReadImplementationMethod___init SFT_syntax_base[39]
-#define ID_MMWriteImplementationMethod SFT_syntax_base[40]
-#define COLOR_MMWriteImplementationMethod SFT_syntax_base[41]
-#define INIT_TABLE_POS_MMWriteImplementationMethod SFT_syntax_base[42]
-#define COLOR_syntax_base___MMWriteImplementationMethod___init SFT_syntax_base[43]
-#define ID_MMMethSrcMethod SFT_syntax_base[44]
-#define COLOR_MMMethSrcMethod SFT_syntax_base[45]
-#define COLOR_syntax_base___MMMethSrcMethod____node SFT_syntax_base[46]
-#define INIT_TABLE_POS_MMMethSrcMethod SFT_syntax_base[47]
-#define COLOR_syntax_base___MMMethSrcMethod___init SFT_syntax_base[48]
-#define ID_MMSrcTypeProperty SFT_syntax_base[49]
-#define COLOR_MMSrcTypeProperty SFT_syntax_base[50]
-#define COLOR_syntax_base___MMSrcTypeProperty____node SFT_syntax_base[51]
-#define INIT_TABLE_POS_MMSrcTypeProperty SFT_syntax_base[52]
-#define COLOR_syntax_base___MMSrcTypeProperty___init SFT_syntax_base[53]
-#define ID_MMImplicitInit SFT_syntax_base[54]
-#define COLOR_MMImplicitInit SFT_syntax_base[55]
-#define COLOR_syntax_base___MMImplicitInit____unassigned_attributes SFT_syntax_base[56]
-#define COLOR_syntax_base___MMImplicitInit____super_inits SFT_syntax_base[57]
-#define INIT_TABLE_POS_MMImplicitInit SFT_syntax_base[58]
-#define COLOR_syntax_base___MMImplicitInit___unassigned_attributes SFT_syntax_base[59]
-#define COLOR_syntax_base___MMImplicitInit___super_inits SFT_syntax_base[60]
-#define COLOR_syntax_base___MMImplicitInit___init SFT_syntax_base[61]
-#define ID_Variable SFT_syntax_base[62]
-#define COLOR_Variable SFT_syntax_base[63]
-#define COLOR_syntax_base___Variable____name SFT_syntax_base[64]
-#define COLOR_syntax_base___Variable____decl SFT_syntax_base[65]
-#define COLOR_syntax_base___Variable____stype SFT_syntax_base[66]
-#define INIT_TABLE_POS_Variable SFT_syntax_base[67]
-#define COLOR_syntax_base___Variable___name SFT_syntax_base[68]
-#define COLOR_syntax_base___Variable___decl SFT_syntax_base[69]
-#define COLOR_syntax_base___Variable___stype SFT_syntax_base[70]
-#define COLOR_syntax_base___Variable___stype__eq SFT_syntax_base[71]
-#define COLOR_syntax_base___Variable___kind SFT_syntax_base[72]
-#define COLOR_syntax_base___Variable___init SFT_syntax_base[73]
-#define ID_VarVariable SFT_syntax_base[74]
-#define COLOR_VarVariable SFT_syntax_base[75]
-#define INIT_TABLE_POS_VarVariable SFT_syntax_base[76]
-#define COLOR_syntax_base___VarVariable___init SFT_syntax_base[77]
-#define ID_ParamVariable SFT_syntax_base[78]
-#define COLOR_ParamVariable SFT_syntax_base[79]
-#define INIT_TABLE_POS_ParamVariable SFT_syntax_base[80]
-#define COLOR_syntax_base___ParamVariable___init SFT_syntax_base[81]
-#define ID_AutoVariable SFT_syntax_base[82]
-#define COLOR_AutoVariable SFT_syntax_base[83]
-#define INIT_TABLE_POS_AutoVariable SFT_syntax_base[84]
-#define COLOR_syntax_base___AutoVariable___init SFT_syntax_base[85]
-#define ID_ClosureVariable SFT_syntax_base[86]
-#define COLOR_ClosureVariable SFT_syntax_base[87]
-#define COLOR_syntax_base___ClosureVariable____closure SFT_syntax_base[88]
-#define INIT_TABLE_POS_ClosureVariable SFT_syntax_base[89]
-#define COLOR_syntax_base___ClosureVariable___closure SFT_syntax_base[90]
-#define COLOR_syntax_base___ClosureVariable___init SFT_syntax_base[91]
-#define ID_AbsSyntaxVisitor SFT_syntax_base[92]
-#define COLOR_AbsSyntaxVisitor SFT_syntax_base[93]
-#define COLOR_syntax_base___AbsSyntaxVisitor____module SFT_syntax_base[94]
-#define COLOR_syntax_base___AbsSyntaxVisitor____local_class SFT_syntax_base[95]
-#define COLOR_syntax_base___AbsSyntaxVisitor____local_property SFT_syntax_base[96]
-#define COLOR_syntax_base___AbsSyntaxVisitor____tc SFT_syntax_base[97]
-#define INIT_TABLE_POS_AbsSyntaxVisitor SFT_syntax_base[98]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_bool SFT_syntax_base[99]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_int SFT_syntax_base[100]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_float SFT_syntax_base[101]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_char SFT_syntax_base[102]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_string SFT_syntax_base[103]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_collection SFT_syntax_base[104]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_array SFT_syntax_base[105]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_discrete SFT_syntax_base[106]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_range SFT_syntax_base[107]
-#define COLOR_syntax_base___AbsSyntaxVisitor___type_none SFT_syntax_base[108]
-#define COLOR_syntax_base___AbsSyntaxVisitor___module SFT_syntax_base[109]
-#define COLOR_syntax_base___AbsSyntaxVisitor___module__eq SFT_syntax_base[110]
-#define COLOR_syntax_base___AbsSyntaxVisitor___local_class SFT_syntax_base[111]
-#define COLOR_syntax_base___AbsSyntaxVisitor___local_class__eq SFT_syntax_base[112]
-#define COLOR_syntax_base___AbsSyntaxVisitor___local_property SFT_syntax_base[113]
-#define COLOR_syntax_base___AbsSyntaxVisitor___local_property__eq SFT_syntax_base[114]
-#define COLOR_syntax_base___AbsSyntaxVisitor___tc SFT_syntax_base[115]
-#define COLOR_syntax_base___AbsSyntaxVisitor___error SFT_syntax_base[116]
-#define COLOR_syntax_base___AbsSyntaxVisitor___warning SFT_syntax_base[117]
-#define COLOR_syntax_base___AbsSyntaxVisitor___locate SFT_syntax_base[118]
-#define COLOR_syntax_base___AbsSyntaxVisitor___check_conform SFT_syntax_base[119]
-#define COLOR_syntax_base___AbsSyntaxVisitor___check_expr SFT_syntax_base[120]
-#define COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr SFT_syntax_base[121]
-#define COLOR_syntax_base___AbsSyntaxVisitor___init SFT_syntax_base[122]
-#define COLOR_syntax_base___PNode___accept_abs_syntax_visitor SFT_syntax_base[123]
-#define COLOR_syntax_base___Token____symbol SFT_syntax_base[124]
-#define COLOR_syntax_base___Token___to_symbol SFT_syntax_base[125]
-#define COLOR_syntax_base___PClassdef___local_class SFT_syntax_base[126]
-#define COLOR_syntax_base___AAttrPropdef___prop SFT_syntax_base[127]
-#define COLOR_syntax_base___AAttrPropdef___readmethod SFT_syntax_base[128]
-#define COLOR_syntax_base___AAttrPropdef___writemethod SFT_syntax_base[129]
-#define COLOR_syntax_base___AMethPropdef___method SFT_syntax_base[130]
-#define COLOR_syntax_base___AMethPropdef___self_var SFT_syntax_base[131]
-#define COLOR_syntax_base___ATypePropdef___prop SFT_syntax_base[132]
-#define COLOR_syntax_base___PParam___position SFT_syntax_base[133]
-#define COLOR_syntax_base___PParam___variable SFT_syntax_base[134]
-#define COLOR_syntax_base___PClosureDecl___variable SFT_syntax_base[135]
-#define COLOR_syntax_base___PType___get_local_class SFT_syntax_base[136]
-#define COLOR_syntax_base___PType___get_stype SFT_syntax_base[137]
-#define COLOR_syntax_base___PType___get_unchecked_stype SFT_syntax_base[138]
-#define COLOR_syntax_base___PType___check_conform SFT_syntax_base[139]
-#define COLOR_syntax_base___AType____stype_cache SFT_syntax_base[140]
-#define COLOR_syntax_base___AType____stype_cached SFT_syntax_base[141]
-#define COLOR_syntax_base___PExpr___stype SFT_syntax_base[142]
-#define COLOR_syntax_base___AVardeclExpr____variable SFT_syntax_base[143]
-#define COLOR_syntax_base___AVardeclExpr___variable SFT_syntax_base[144]
-#define COLOR_syntax_base___AVardeclExpr___variable__eq SFT_syntax_base[145]
-#define COLOR_syntax_base___AForVardeclExpr____variable SFT_syntax_base[146]
-#define COLOR_syntax_base___AForVardeclExpr___variable SFT_syntax_base[147]
-#define COLOR_syntax_base___AForVardeclExpr___variable__eq SFT_syntax_base[148]
-#define COLOR_syntax_base___ASelfExpr____variable SFT_syntax_base[149]
-#define COLOR_syntax_base___ASelfExpr___variable SFT_syntax_base[150]
-#define COLOR_syntax_base___ASelfExpr___variable__eq SFT_syntax_base[151]
-#define COLOR_syntax_base___AVarFormExpr____variable SFT_syntax_base[152]
-#define COLOR_syntax_base___AVarFormExpr___variable SFT_syntax_base[153]
-#define COLOR_syntax_base___AVarFormExpr___variable__eq SFT_syntax_base[154]
-#define COLOR_syntax_base___AClosureCallExpr____variable SFT_syntax_base[155]
-#define COLOR_syntax_base___AClosureCallExpr___variable SFT_syntax_base[156]
-#define COLOR_syntax_base___AClosureCallExpr___variable__eq SFT_syntax_base[157]
-#define COLOR_syntax_base___PClosureDef____closure SFT_syntax_base[158]
-#define COLOR_syntax_base___PClosureDef____variables SFT_syntax_base[159]
-#define COLOR_syntax_base___PClosureDef___closure SFT_syntax_base[160]
-#define COLOR_syntax_base___PClosureDef___closure__eq SFT_syntax_base[161]
-#define COLOR_syntax_base___PClosureDef___variables SFT_syntax_base[162]
-#define COLOR_syntax_base___PClosureDef___variables__eq SFT_syntax_base[163]
-#define ATTR_syntax_base___MMSrcModule____node(recv) ATTR(recv, COLOR_syntax_base___MMSrcModule____node)
+#define ID_MMSrcModule (SFT_syntax_base[0])
+#define COLOR_MMSrcModule (SFT_syntax_base[1])
+#define ATTR_syntax_base___MMSrcModule____node(recv) ATTR(recv, (SFT_syntax_base[2] + 0))
+#define ATTR_syntax_base___MMSrcModule____src_local_classes(recv) ATTR(recv, (SFT_syntax_base[2] + 1))
+#define INIT_TABLE_POS_MMSrcModule (SFT_syntax_base[3] + 0)
+#define CALL_syntax_base___MMSrcModule___node(recv) ((syntax_base___MMSrcModule___node_t)CALL((recv), (SFT_syntax_base[3] + 1)))
+#define CALL_syntax_base___MMSrcModule___src_local_classes(recv) ((syntax_base___MMSrcModule___src_local_classes_t)CALL((recv), (SFT_syntax_base[3] + 2)))
+#define CALL_syntax_base___MMSrcModule___init(recv) ((syntax_base___MMSrcModule___init_t)CALL((recv), (SFT_syntax_base[3] + 3)))
+#define CALL_syntax_base___MMGlobalClass___check_visibility(recv) ((syntax_base___MMGlobalClass___check_visibility_t)CALL((recv), (SFT_syntax_base[4] + 0)))
+#define ID_MMSrcLocalClass (SFT_syntax_base[5])
+#define COLOR_MMSrcLocalClass (SFT_syntax_base[6])
+#define ATTR_syntax_base___MMSrcLocalClass____nodes(recv) ATTR(recv, (SFT_syntax_base[7] + 0))
+#define ATTR_syntax_base___MMSrcLocalClass____formal_dict(recv) ATTR(recv, (SFT_syntax_base[7] + 1))
+#define ATTR_syntax_base___MMSrcLocalClass____src_local_properties(recv) ATTR(recv, (SFT_syntax_base[7] + 2))
+#define INIT_TABLE_POS_MMSrcLocalClass (SFT_syntax_base[8] + 0)
+#define CALL_syntax_base___MMSrcLocalClass___nodes(recv) ((syntax_base___MMSrcLocalClass___nodes_t)CALL((recv), (SFT_syntax_base[8] + 1)))
+#define CALL_syntax_base___MMSrcLocalClass___formal_dict(recv) ((syntax_base___MMSrcLocalClass___formal_dict_t)CALL((recv), (SFT_syntax_base[8] + 2)))
+#define CALL_syntax_base___MMSrcLocalClass___formal_dict__eq(recv) ((syntax_base___MMSrcLocalClass___formal_dict__eq_t)CALL((recv), (SFT_syntax_base[8] + 3)))
+#define CALL_syntax_base___MMSrcLocalClass___src_local_properties(recv) ((syntax_base___MMSrcLocalClass___src_local_properties_t)CALL((recv), (SFT_syntax_base[8] + 4)))
+#define CALL_syntax_base___MMSrcLocalClass___init(recv) ((syntax_base___MMSrcLocalClass___init_t)CALL((recv), (SFT_syntax_base[8] + 5)))
+#define CALL_syntax_base___MMGlobalProperty___check_visibility(recv) ((syntax_base___MMGlobalProperty___check_visibility_t)CALL((recv), (SFT_syntax_base[9] + 0)))
+#define CALL_syntax_base___MMLocalProperty___node(recv) ((syntax_base___MMLocalProperty___node_t)CALL((recv), (SFT_syntax_base[10] + 0)))
+#define CALL_syntax_base___MMLocalProperty___is_init(recv) ((syntax_base___MMLocalProperty___is_init_t)CALL((recv), (SFT_syntax_base[10] + 1)))
+#define ID_MMSrcAttribute (SFT_syntax_base[11])
+#define COLOR_MMSrcAttribute (SFT_syntax_base[12])
+#define ATTR_syntax_base___MMSrcAttribute____node(recv) ATTR(recv, (SFT_syntax_base[13] + 0))
+#define INIT_TABLE_POS_MMSrcAttribute (SFT_syntax_base[14] + 0)
+#define CALL_syntax_base___MMSrcAttribute___init(recv) ((syntax_base___MMSrcAttribute___init_t)CALL((recv), (SFT_syntax_base[14] + 1)))
+#define ID_MMSrcMethod (SFT_syntax_base[15])
+#define COLOR_MMSrcMethod (SFT_syntax_base[16])
+#define INIT_TABLE_POS_MMSrcMethod (SFT_syntax_base[17] + 0)
+#define ID_MMAttrImplementationMethod (SFT_syntax_base[18])
+#define COLOR_MMAttrImplementationMethod (SFT_syntax_base[19])
+#define ATTR_syntax_base___MMAttrImplementationMethod____node(recv) ATTR(recv, (SFT_syntax_base[20] + 0))
+#define INIT_TABLE_POS_MMAttrImplementationMethod (SFT_syntax_base[21] + 0)
+#define CALL_syntax_base___MMAttrImplementationMethod___init(recv) ((syntax_base___MMAttrImplementationMethod___init_t)CALL((recv), (SFT_syntax_base[21] + 1)))
+#define ID_MMReadImplementationMethod (SFT_syntax_base[22])
+#define COLOR_MMReadImplementationMethod (SFT_syntax_base[23])
+#define INIT_TABLE_POS_MMReadImplementationMethod (SFT_syntax_base[24] + 0)
+#define CALL_syntax_base___MMReadImplementationMethod___init(recv) ((syntax_base___MMReadImplementationMethod___init_t)CALL((recv), (SFT_syntax_base[24] + 1)))
+#define ID_MMWriteImplementationMethod (SFT_syntax_base[25])
+#define COLOR_MMWriteImplementationMethod (SFT_syntax_base[26])
+#define INIT_TABLE_POS_MMWriteImplementationMethod (SFT_syntax_base[27] + 0)
+#define CALL_syntax_base___MMWriteImplementationMethod___init(recv) ((syntax_base___MMWriteImplementationMethod___init_t)CALL((recv), (SFT_syntax_base[27] + 1)))
+#define ID_MMMethSrcMethod (SFT_syntax_base[28])
+#define COLOR_MMMethSrcMethod (SFT_syntax_base[29])
+#define ATTR_syntax_base___MMMethSrcMethod____node(recv) ATTR(recv, (SFT_syntax_base[30] + 0))
+#define INIT_TABLE_POS_MMMethSrcMethod (SFT_syntax_base[31] + 0)
+#define CALL_syntax_base___MMMethSrcMethod___init(recv) ((syntax_base___MMMethSrcMethod___init_t)CALL((recv), (SFT_syntax_base[31] + 1)))
+#define ID_MMSrcTypeProperty (SFT_syntax_base[32])
+#define COLOR_MMSrcTypeProperty (SFT_syntax_base[33])
+#define ATTR_syntax_base___MMSrcTypeProperty____node(recv) ATTR(recv, (SFT_syntax_base[34] + 0))
+#define INIT_TABLE_POS_MMSrcTypeProperty (SFT_syntax_base[35] + 0)
+#define CALL_syntax_base___MMSrcTypeProperty___init(recv) ((syntax_base___MMSrcTypeProperty___init_t)CALL((recv), (SFT_syntax_base[35] + 1)))
+#define ID_MMImplicitInit (SFT_syntax_base[36])
+#define COLOR_MMImplicitInit (SFT_syntax_base[37])
+#define ATTR_syntax_base___MMImplicitInit____unassigned_attributes(recv) ATTR(recv, (SFT_syntax_base[38] + 0))
+#define ATTR_syntax_base___MMImplicitInit____super_inits(recv) ATTR(recv, (SFT_syntax_base[38] + 1))
+#define INIT_TABLE_POS_MMImplicitInit (SFT_syntax_base[39] + 0)
+#define CALL_syntax_base___MMImplicitInit___unassigned_attributes(recv) ((syntax_base___MMImplicitInit___unassigned_attributes_t)CALL((recv), (SFT_syntax_base[39] + 1)))
+#define CALL_syntax_base___MMImplicitInit___super_inits(recv) ((syntax_base___MMImplicitInit___super_inits_t)CALL((recv), (SFT_syntax_base[39] + 2)))
+#define CALL_syntax_base___MMImplicitInit___init(recv) ((syntax_base___MMImplicitInit___init_t)CALL((recv), (SFT_syntax_base[39] + 3)))
+#define ID_Variable (SFT_syntax_base[40])
+#define COLOR_Variable (SFT_syntax_base[41])
+#define ATTR_syntax_base___Variable____name(recv) ATTR(recv, (SFT_syntax_base[42] + 0))
+#define ATTR_syntax_base___Variable____decl(recv) ATTR(recv, (SFT_syntax_base[42] + 1))
+#define ATTR_syntax_base___Variable____stype(recv) ATTR(recv, (SFT_syntax_base[42] + 2))
+#define INIT_TABLE_POS_Variable (SFT_syntax_base[43] + 0)
+#define CALL_syntax_base___Variable___name(recv) ((syntax_base___Variable___name_t)CALL((recv), (SFT_syntax_base[43] + 1)))
+#define CALL_syntax_base___Variable___decl(recv) ((syntax_base___Variable___decl_t)CALL((recv), (SFT_syntax_base[43] + 2)))
+#define CALL_syntax_base___Variable___stype(recv) ((syntax_base___Variable___stype_t)CALL((recv), (SFT_syntax_base[43] + 3)))
+#define CALL_syntax_base___Variable___stype__eq(recv) ((syntax_base___Variable___stype__eq_t)CALL((recv), (SFT_syntax_base[43] + 4)))
+#define CALL_syntax_base___Variable___kind(recv) ((syntax_base___Variable___kind_t)CALL((recv), (SFT_syntax_base[43] + 5)))
+#define CALL_syntax_base___Variable___init(recv) ((syntax_base___Variable___init_t)CALL((recv), (SFT_syntax_base[43] + 6)))
+#define ID_VarVariable (SFT_syntax_base[44])
+#define COLOR_VarVariable (SFT_syntax_base[45])
+#define INIT_TABLE_POS_VarVariable (SFT_syntax_base[46] + 0)
+#define CALL_syntax_base___VarVariable___init(recv) ((syntax_base___VarVariable___init_t)CALL((recv), (SFT_syntax_base[46] + 1)))
+#define ID_ParamVariable (SFT_syntax_base[47])
+#define COLOR_ParamVariable (SFT_syntax_base[48])
+#define INIT_TABLE_POS_ParamVariable (SFT_syntax_base[49] + 0)
+#define CALL_syntax_base___ParamVariable___init(recv) ((syntax_base___ParamVariable___init_t)CALL((recv), (SFT_syntax_base[49] + 1)))
+#define ID_AutoVariable (SFT_syntax_base[50])
+#define COLOR_AutoVariable (SFT_syntax_base[51])
+#define INIT_TABLE_POS_AutoVariable (SFT_syntax_base[52] + 0)
+#define CALL_syntax_base___AutoVariable___init(recv) ((syntax_base___AutoVariable___init_t)CALL((recv), (SFT_syntax_base[52] + 1)))
+#define ID_ClosureVariable (SFT_syntax_base[53])
+#define COLOR_ClosureVariable (SFT_syntax_base[54])
+#define ATTR_syntax_base___ClosureVariable____closure(recv) ATTR(recv, (SFT_syntax_base[55] + 0))
+#define INIT_TABLE_POS_ClosureVariable (SFT_syntax_base[56] + 0)
+#define CALL_syntax_base___ClosureVariable___closure(recv) ((syntax_base___ClosureVariable___closure_t)CALL((recv), (SFT_syntax_base[56] + 1)))
+#define CALL_syntax_base___ClosureVariable___init(recv) ((syntax_base___ClosureVariable___init_t)CALL((recv), (SFT_syntax_base[56] + 2)))
+#define ID_AbsSyntaxVisitor (SFT_syntax_base[57])
+#define COLOR_AbsSyntaxVisitor (SFT_syntax_base[58])
+#define ATTR_syntax_base___AbsSyntaxVisitor____module(recv) ATTR(recv, (SFT_syntax_base[59] + 0))
+#define ATTR_syntax_base___AbsSyntaxVisitor____local_class(recv) ATTR(recv, (SFT_syntax_base[59] + 1))
+#define ATTR_syntax_base___AbsSyntaxVisitor____local_property(recv) ATTR(recv, (SFT_syntax_base[59] + 2))
+#define ATTR_syntax_base___AbsSyntaxVisitor____tc(recv) ATTR(recv, (SFT_syntax_base[59] + 3))
+#define INIT_TABLE_POS_AbsSyntaxVisitor (SFT_syntax_base[60] + 0)
+#define CALL_syntax_base___AbsSyntaxVisitor___type_object(recv) ((syntax_base___AbsSyntaxVisitor___type_object_t)CALL((recv), (SFT_syntax_base[60] + 1)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_bool(recv) ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL((recv), (SFT_syntax_base[60] + 2)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_int(recv) ((syntax_base___AbsSyntaxVisitor___type_int_t)CALL((recv), (SFT_syntax_base[60] + 3)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_float(recv) ((syntax_base___AbsSyntaxVisitor___type_float_t)CALL((recv), (SFT_syntax_base[60] + 4)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_char(recv) ((syntax_base___AbsSyntaxVisitor___type_char_t)CALL((recv), (SFT_syntax_base[60] + 5)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_string(recv) ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL((recv), (SFT_syntax_base[60] + 6)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_collection(recv) ((syntax_base___AbsSyntaxVisitor___type_collection_t)CALL((recv), (SFT_syntax_base[60] + 7)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_array(recv) ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL((recv), (SFT_syntax_base[60] + 8)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_discrete(recv) ((syntax_base___AbsSyntaxVisitor___type_discrete_t)CALL((recv), (SFT_syntax_base[60] + 9)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_range(recv) ((syntax_base___AbsSyntaxVisitor___type_range_t)CALL((recv), (SFT_syntax_base[60] + 10)))
+#define CALL_syntax_base___AbsSyntaxVisitor___type_none(recv) ((syntax_base___AbsSyntaxVisitor___type_none_t)CALL((recv), (SFT_syntax_base[60] + 11)))
+#define CALL_syntax_base___AbsSyntaxVisitor___module(recv) ((syntax_base___AbsSyntaxVisitor___module_t)CALL((recv), (SFT_syntax_base[60] + 12)))
+#define CALL_syntax_base___AbsSyntaxVisitor___module__eq(recv) ((syntax_base___AbsSyntaxVisitor___module__eq_t)CALL((recv), (SFT_syntax_base[60] + 13)))
+#define CALL_syntax_base___AbsSyntaxVisitor___local_class(recv) ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL((recv), (SFT_syntax_base[60] + 14)))
+#define CALL_syntax_base___AbsSyntaxVisitor___local_class__eq(recv) ((syntax_base___AbsSyntaxVisitor___local_class__eq_t)CALL((recv), (SFT_syntax_base[60] + 15)))
+#define CALL_syntax_base___AbsSyntaxVisitor___local_property(recv) ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL((recv), (SFT_syntax_base[60] + 16)))
+#define CALL_syntax_base___AbsSyntaxVisitor___local_property__eq(recv) ((syntax_base___AbsSyntaxVisitor___local_property__eq_t)CALL((recv), (SFT_syntax_base[60] + 17)))
+#define CALL_syntax_base___AbsSyntaxVisitor___tc(recv) ((syntax_base___AbsSyntaxVisitor___tc_t)CALL((recv), (SFT_syntax_base[60] + 18)))
+#define CALL_syntax_base___AbsSyntaxVisitor___error(recv) ((syntax_base___AbsSyntaxVisitor___error_t)CALL((recv), (SFT_syntax_base[60] + 19)))
+#define CALL_syntax_base___AbsSyntaxVisitor___warning(recv) ((syntax_base___AbsSyntaxVisitor___warning_t)CALL((recv), (SFT_syntax_base[60] + 20)))
+#define CALL_syntax_base___AbsSyntaxVisitor___locate(recv) ((syntax_base___AbsSyntaxVisitor___locate_t)CALL((recv), (SFT_syntax_base[60] + 21)))
+#define CALL_syntax_base___AbsSyntaxVisitor___check_conform(recv) ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL((recv), (SFT_syntax_base[60] + 22)))
+#define CALL_syntax_base___AbsSyntaxVisitor___check_expr(recv) ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL((recv), (SFT_syntax_base[60] + 23)))
+#define CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr(recv) ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL((recv), (SFT_syntax_base[60] + 24)))
+#define CALL_syntax_base___AbsSyntaxVisitor___init(recv) ((syntax_base___AbsSyntaxVisitor___init_t)CALL((recv), (SFT_syntax_base[60] + 25)))
+#define CALL_syntax_base___PNode___accept_abs_syntax_visitor(recv) ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL((recv), (SFT_syntax_base[61] + 0)))
+#define ATTR_syntax_base___Token____symbol(recv) ATTR(recv, (SFT_syntax_base[62] + 0))
+#define CALL_syntax_base___Token___to_symbol(recv) ((syntax_base___Token___to_symbol_t)CALL((recv), (SFT_syntax_base[63] + 0)))
+#define CALL_syntax_base___PClassdef___local_class(recv) ((syntax_base___PClassdef___local_class_t)CALL((recv), (SFT_syntax_base[64] + 0)))
+#define CALL_syntax_base___AAttrPropdef___prop(recv) ((syntax_base___AAttrPropdef___prop_t)CALL((recv), (SFT_syntax_base[65] + 0)))
+#define CALL_syntax_base___AAttrPropdef___readmethod(recv) ((syntax_base___AAttrPropdef___readmethod_t)CALL((recv), (SFT_syntax_base[65] + 1)))
+#define CALL_syntax_base___AAttrPropdef___writemethod(recv) ((syntax_base___AAttrPropdef___writemethod_t)CALL((recv), (SFT_syntax_base[65] + 2)))
+#define CALL_syntax_base___AMethPropdef___method(recv) ((syntax_base___AMethPropdef___method_t)CALL((recv), (SFT_syntax_base[66] + 0)))
+#define CALL_syntax_base___AMethPropdef___self_var(recv) ((syntax_base___AMethPropdef___self_var_t)CALL((recv), (SFT_syntax_base[66] + 1)))
+#define CALL_syntax_base___ATypePropdef___prop(recv) ((syntax_base___ATypePropdef___prop_t)CALL((recv), (SFT_syntax_base[67] + 0)))
+#define CALL_syntax_base___PParam___position(recv) ((syntax_base___PParam___position_t)CALL((recv), (SFT_syntax_base[68] + 0)))
+#define CALL_syntax_base___PParam___variable(recv) ((syntax_base___PParam___variable_t)CALL((recv), (SFT_syntax_base[68] + 1)))
+#define CALL_syntax_base___PClosureDecl___variable(recv) ((syntax_base___PClosureDecl___variable_t)CALL((recv), (SFT_syntax_base[69] + 0)))
+#define CALL_syntax_base___PType___get_local_class(recv) ((syntax_base___PType___get_local_class_t)CALL((recv), (SFT_syntax_base[70] + 0)))
+#define CALL_syntax_base___PType___get_stype(recv) ((syntax_base___PType___get_stype_t)CALL((recv), (SFT_syntax_base[70] + 1)))
+#define CALL_syntax_base___PType___get_unchecked_stype(recv) ((syntax_base___PType___get_unchecked_stype_t)CALL((recv), (SFT_syntax_base[70] + 2)))
+#define CALL_syntax_base___PType___check_conform(recv) ((syntax_base___PType___check_conform_t)CALL((recv), (SFT_syntax_base[70] + 3)))
+#define ATTR_syntax_base___AType____stype_cache(recv) ATTR(recv, (SFT_syntax_base[71] + 0))
+#define ATTR_syntax_base___AType____stype_cached(recv) ATTR(recv, (SFT_syntax_base[71] + 1))
+#define CALL_syntax_base___PExpr___stype(recv) ((syntax_base___PExpr___stype_t)CALL((recv), (SFT_syntax_base[72] + 0)))
+#define ATTR_syntax_base___AVardeclExpr____variable(recv) ATTR(recv, (SFT_syntax_base[73] + 0))
+#define CALL_syntax_base___AVardeclExpr___variable(recv) ((syntax_base___AVardeclExpr___variable_t)CALL((recv), (SFT_syntax_base[74] + 0)))
+#define CALL_syntax_base___AVardeclExpr___variable__eq(recv) ((syntax_base___AVardeclExpr___variable__eq_t)CALL((recv), (SFT_syntax_base[74] + 1)))
+#define ATTR_syntax_base___AForVardeclExpr____variable(recv) ATTR(recv, (SFT_syntax_base[75] + 0))
+#define CALL_syntax_base___AForVardeclExpr___variable(recv) ((syntax_base___AForVardeclExpr___variable_t)CALL((recv), (SFT_syntax_base[76] + 0)))
+#define CALL_syntax_base___AForVardeclExpr___variable__eq(recv) ((syntax_base___AForVardeclExpr___variable__eq_t)CALL((recv), (SFT_syntax_base[76] + 1)))
+#define ATTR_syntax_base___ASelfExpr____variable(recv) ATTR(recv, (SFT_syntax_base[77] + 0))
+#define CALL_syntax_base___ASelfExpr___variable(recv) ((syntax_base___ASelfExpr___variable_t)CALL((recv), (SFT_syntax_base[78] + 0)))
+#define CALL_syntax_base___ASelfExpr___variable__eq(recv) ((syntax_base___ASelfExpr___variable__eq_t)CALL((recv), (SFT_syntax_base[78] + 1)))
+#define ATTR_syntax_base___AVarFormExpr____variable(recv) ATTR(recv, (SFT_syntax_base[79] + 0))
+#define CALL_syntax_base___AVarFormExpr___variable(recv) ((syntax_base___AVarFormExpr___variable_t)CALL((recv), (SFT_syntax_base[80] + 0)))
+#define CALL_syntax_base___AVarFormExpr___variable__eq(recv) ((syntax_base___AVarFormExpr___variable__eq_t)CALL((recv), (SFT_syntax_base[80] + 1)))
+#define ATTR_syntax_base___AClosureCallExpr____variable(recv) ATTR(recv, (SFT_syntax_base[81] + 0))
+#define CALL_syntax_base___AClosureCallExpr___variable(recv) ((syntax_base___AClosureCallExpr___variable_t)CALL((recv), (SFT_syntax_base[82] + 0)))
+#define CALL_syntax_base___AClosureCallExpr___variable__eq(recv) ((syntax_base___AClosureCallExpr___variable__eq_t)CALL((recv), (SFT_syntax_base[82] + 1)))
+#define ATTR_syntax_base___PClosureDef____closure(recv) ATTR(recv, (SFT_syntax_base[83] + 0))
+#define ATTR_syntax_base___PClosureDef____variables(recv) ATTR(recv, (SFT_syntax_base[83] + 1))
+#define CALL_syntax_base___PClosureDef___closure(recv) ((syntax_base___PClosureDef___closure_t)CALL((recv), (SFT_syntax_base[84] + 0)))
+#define CALL_syntax_base___PClosureDef___closure__eq(recv) ((syntax_base___PClosureDef___closure__eq_t)CALL((recv), (SFT_syntax_base[84] + 1)))
+#define CALL_syntax_base___PClosureDef___variables(recv) ((syntax_base___PClosureDef___variables_t)CALL((recv), (SFT_syntax_base[84] + 2)))
+#define CALL_syntax_base___PClosureDef___variables__eq(recv) ((syntax_base___PClosureDef___variables__eq_t)CALL((recv), (SFT_syntax_base[84] + 3)))
 typedef val_t (* syntax_base___MMSrcModule___node_t)(val_t  self);
 val_t syntax_base___MMSrcModule___node(val_t  self);
 #define LOCATE_syntax_base___MMSrcModule___node "syntax_base::MMSrcModule::node"
-#define ATTR_syntax_base___MMSrcModule____src_local_classes(recv) ATTR(recv, COLOR_syntax_base___MMSrcModule____src_local_classes)
 typedef val_t (* syntax_base___MMSrcModule___src_local_classes_t)(val_t  self);
 val_t syntax_base___MMSrcModule___src_local_classes(val_t  self);
 #define LOCATE_syntax_base___MMSrcModule___src_local_classes "syntax_base::MMSrcModule::src_local_classes"
@@ -218,18 +217,15 @@ val_t NEW_MMGlobalClass_abstractmetamodel___MMGlobalClass___init(val_t p0);
 typedef val_t (* syntax_base___MMGlobalClass___check_visibility_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2);
 val_t syntax_base___MMGlobalClass___check_visibility(val_t  self, val_t  param0, val_t  param1, val_t  param2);
 #define LOCATE_syntax_base___MMGlobalClass___check_visibility "syntax_base::MMGlobalClass::check_visibility"
-#define ATTR_syntax_base___MMSrcLocalClass____nodes(recv) ATTR(recv, COLOR_syntax_base___MMSrcLocalClass____nodes)
 typedef val_t (* syntax_base___MMSrcLocalClass___nodes_t)(val_t  self);
 val_t syntax_base___MMSrcLocalClass___nodes(val_t  self);
 #define LOCATE_syntax_base___MMSrcLocalClass___nodes "syntax_base::MMSrcLocalClass::nodes"
-#define ATTR_syntax_base___MMSrcLocalClass____formal_dict(recv) ATTR(recv, COLOR_syntax_base___MMSrcLocalClass____formal_dict)
 typedef val_t (* syntax_base___MMSrcLocalClass___formal_dict_t)(val_t  self);
 val_t syntax_base___MMSrcLocalClass___formal_dict(val_t  self);
 #define LOCATE_syntax_base___MMSrcLocalClass___formal_dict "syntax_base::MMSrcLocalClass::formal_dict"
 typedef void (* syntax_base___MMSrcLocalClass___formal_dict__eq_t)(val_t  self, val_t  param0);
 void syntax_base___MMSrcLocalClass___formal_dict__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___MMSrcLocalClass___formal_dict__eq "syntax_base::MMSrcLocalClass::formal_dict="
-#define ATTR_syntax_base___MMSrcLocalClass____src_local_properties(recv) ATTR(recv, COLOR_syntax_base___MMSrcLocalClass____src_local_properties)
 typedef val_t (* syntax_base___MMSrcLocalClass___src_local_properties_t)(val_t  self);
 val_t syntax_base___MMSrcLocalClass___src_local_properties(val_t  self);
 #define LOCATE_syntax_base___MMSrcLocalClass___src_local_properties "syntax_base::MMSrcLocalClass::src_local_properties"
@@ -251,7 +247,6 @@ val_t syntax_base___MMLocalProperty___is_init(val_t  self);
 typedef val_t (* syntax_base___MMSrcAttribute___node_t)(val_t  self);
 val_t syntax_base___MMSrcAttribute___node(val_t  self);
 #define LOCATE_syntax_base___MMSrcAttribute___node "syntax_base::MMSrcAttribute::(syntax_base::MMLocalProperty::node)"
-#define ATTR_syntax_base___MMSrcAttribute____node(recv) ATTR(recv, COLOR_syntax_base___MMSrcAttribute____node)
 typedef void (* syntax_base___MMSrcAttribute___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 void syntax_base___MMSrcAttribute___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_syntax_base___MMSrcAttribute___init "syntax_base::MMSrcAttribute::init"
@@ -260,7 +255,6 @@ val_t NEW_MMSrcMethod_abstractmetamodel___MMLocalProperty___init(val_t p0, val_t
 typedef val_t (* syntax_base___MMAttrImplementationMethod___node_t)(val_t  self);
 val_t syntax_base___MMAttrImplementationMethod___node(val_t  self);
 #define LOCATE_syntax_base___MMAttrImplementationMethod___node "syntax_base::MMAttrImplementationMethod::(syntax_base::MMLocalProperty::node)"
-#define ATTR_syntax_base___MMAttrImplementationMethod____node(recv) ATTR(recv, COLOR_syntax_base___MMAttrImplementationMethod____node)
 typedef void (* syntax_base___MMAttrImplementationMethod___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 void syntax_base___MMAttrImplementationMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_syntax_base___MMAttrImplementationMethod___init "syntax_base::MMAttrImplementationMethod::init"
@@ -279,7 +273,6 @@ val_t syntax_base___MMMethSrcMethod___node(val_t  self);
 typedef val_t (* syntax_base___MMMethSrcMethod___is_init_t)(val_t  self);
 val_t syntax_base___MMMethSrcMethod___is_init(val_t  self);
 #define LOCATE_syntax_base___MMMethSrcMethod___is_init "syntax_base::MMMethSrcMethod::(syntax_base::MMLocalProperty::is_init)"
-#define ATTR_syntax_base___MMMethSrcMethod____node(recv) ATTR(recv, COLOR_syntax_base___MMMethSrcMethod____node)
 typedef void (* syntax_base___MMMethSrcMethod___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 void syntax_base___MMMethSrcMethod___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_syntax_base___MMMethSrcMethod___init "syntax_base::MMMethSrcMethod::init"
@@ -287,7 +280,6 @@ val_t NEW_MMMethSrcMethod_syntax_base___MMMethSrcMethod___init(val_t p0, val_t p
 typedef val_t (* syntax_base___MMSrcTypeProperty___node_t)(val_t  self);
 val_t syntax_base___MMSrcTypeProperty___node(val_t  self);
 #define LOCATE_syntax_base___MMSrcTypeProperty___node "syntax_base::MMSrcTypeProperty::(syntax_base::MMLocalProperty::node)"
-#define ATTR_syntax_base___MMSrcTypeProperty____node(recv) ATTR(recv, COLOR_syntax_base___MMSrcTypeProperty____node)
 typedef void (* syntax_base___MMSrcTypeProperty___init_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 void syntax_base___MMSrcTypeProperty___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_syntax_base___MMSrcTypeProperty___init "syntax_base::MMSrcTypeProperty::init"
@@ -295,11 +287,9 @@ val_t NEW_MMSrcTypeProperty_syntax_base___MMSrcTypeProperty___init(val_t p0, val
 typedef val_t (* syntax_base___MMImplicitInit___is_init_t)(val_t  self);
 val_t syntax_base___MMImplicitInit___is_init(val_t  self);
 #define LOCATE_syntax_base___MMImplicitInit___is_init "syntax_base::MMImplicitInit::(syntax_base::MMLocalProperty::is_init)"
-#define ATTR_syntax_base___MMImplicitInit____unassigned_attributes(recv) ATTR(recv, COLOR_syntax_base___MMImplicitInit____unassigned_attributes)
 typedef val_t (* syntax_base___MMImplicitInit___unassigned_attributes_t)(val_t  self);
 val_t syntax_base___MMImplicitInit___unassigned_attributes(val_t  self);
 #define LOCATE_syntax_base___MMImplicitInit___unassigned_attributes "syntax_base::MMImplicitInit::unassigned_attributes"
-#define ATTR_syntax_base___MMImplicitInit____super_inits(recv) ATTR(recv, COLOR_syntax_base___MMImplicitInit____super_inits)
 typedef val_t (* syntax_base___MMImplicitInit___super_inits_t)(val_t  self);
 val_t syntax_base___MMImplicitInit___super_inits(val_t  self);
 #define LOCATE_syntax_base___MMImplicitInit___super_inits "syntax_base::MMImplicitInit::super_inits"
@@ -310,15 +300,12 @@ val_t NEW_MMImplicitInit_syntax_base___MMImplicitInit___init(val_t p0, val_t p1,
 typedef val_t (* syntax_base___Variable___to_s_t)(val_t  self);
 val_t syntax_base___Variable___to_s(val_t  self);
 #define LOCATE_syntax_base___Variable___to_s "syntax_base::Variable::(string::Object::to_s)"
-#define ATTR_syntax_base___Variable____name(recv) ATTR(recv, COLOR_syntax_base___Variable____name)
 typedef val_t (* syntax_base___Variable___name_t)(val_t  self);
 val_t syntax_base___Variable___name(val_t  self);
 #define LOCATE_syntax_base___Variable___name "syntax_base::Variable::name"
-#define ATTR_syntax_base___Variable____decl(recv) ATTR(recv, COLOR_syntax_base___Variable____decl)
 typedef val_t (* syntax_base___Variable___decl_t)(val_t  self);
 val_t syntax_base___Variable___decl(val_t  self);
 #define LOCATE_syntax_base___Variable___decl "syntax_base::Variable::decl"
-#define ATTR_syntax_base___Variable____stype(recv) ATTR(recv, COLOR_syntax_base___Variable____stype)
 typedef val_t (* syntax_base___Variable___stype_t)(val_t  self);
 val_t syntax_base___Variable___stype(val_t  self);
 #define LOCATE_syntax_base___Variable___stype "syntax_base::Variable::stype"
@@ -356,7 +343,6 @@ val_t NEW_AutoVariable_syntax_base___AutoVariable___init(val_t p0, val_t p1);
 typedef val_t (* syntax_base___ClosureVariable___kind_t)(val_t  self);
 val_t syntax_base___ClosureVariable___kind(val_t  self);
 #define LOCATE_syntax_base___ClosureVariable___kind "syntax_base::ClosureVariable::(syntax_base::Variable::kind)"
-#define ATTR_syntax_base___ClosureVariable____closure(recv) ATTR(recv, COLOR_syntax_base___ClosureVariable____closure)
 typedef val_t (* syntax_base___ClosureVariable___closure_t)(val_t  self);
 val_t syntax_base___ClosureVariable___closure(val_t  self);
 #define LOCATE_syntax_base___ClosureVariable___closure "syntax_base::ClosureVariable::closure"
@@ -364,6 +350,9 @@ typedef void (* syntax_base___ClosureVariable___init_t)(val_t  self, val_t  para
 void syntax_base___ClosureVariable___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_syntax_base___ClosureVariable___init "syntax_base::ClosureVariable::init"
 val_t NEW_ClosureVariable_syntax_base___ClosureVariable___init(val_t p0, val_t p1, val_t p2);
+typedef val_t (* syntax_base___AbsSyntaxVisitor___type_object_t)(val_t  self);
+val_t syntax_base___AbsSyntaxVisitor___type_object(val_t  self);
+#define LOCATE_syntax_base___AbsSyntaxVisitor___type_object "syntax_base::AbsSyntaxVisitor::type_object"
 typedef val_t (* syntax_base___AbsSyntaxVisitor___type_bool_t)(val_t  self);
 val_t syntax_base___AbsSyntaxVisitor___type_bool(val_t  self);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___type_bool "syntax_base::AbsSyntaxVisitor::type_bool"
@@ -394,28 +383,24 @@ val_t syntax_base___AbsSyntaxVisitor___type_range(val_t  self, val_t  param0);
 typedef val_t (* syntax_base___AbsSyntaxVisitor___type_none_t)(val_t  self);
 val_t syntax_base___AbsSyntaxVisitor___type_none(val_t  self);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___type_none "syntax_base::AbsSyntaxVisitor::type_none"
-#define ATTR_syntax_base___AbsSyntaxVisitor____module(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____module)
 typedef val_t (* syntax_base___AbsSyntaxVisitor___module_t)(val_t  self);
 val_t syntax_base___AbsSyntaxVisitor___module(val_t  self);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___module "syntax_base::AbsSyntaxVisitor::module"
 typedef void (* syntax_base___AbsSyntaxVisitor___module__eq_t)(val_t  self, val_t  param0);
 void syntax_base___AbsSyntaxVisitor___module__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___module__eq "syntax_base::AbsSyntaxVisitor::module="
-#define ATTR_syntax_base___AbsSyntaxVisitor____local_class(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____local_class)
 typedef val_t (* syntax_base___AbsSyntaxVisitor___local_class_t)(val_t  self);
 val_t syntax_base___AbsSyntaxVisitor___local_class(val_t  self);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___local_class "syntax_base::AbsSyntaxVisitor::local_class"
 typedef void (* syntax_base___AbsSyntaxVisitor___local_class__eq_t)(val_t  self, val_t  param0);
 void syntax_base___AbsSyntaxVisitor___local_class__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___local_class__eq "syntax_base::AbsSyntaxVisitor::local_class="
-#define ATTR_syntax_base___AbsSyntaxVisitor____local_property(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____local_property)
 typedef val_t (* syntax_base___AbsSyntaxVisitor___local_property_t)(val_t  self);
 val_t syntax_base___AbsSyntaxVisitor___local_property(val_t  self);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___local_property "syntax_base::AbsSyntaxVisitor::local_property"
 typedef void (* syntax_base___AbsSyntaxVisitor___local_property__eq_t)(val_t  self, val_t  param0);
 void syntax_base___AbsSyntaxVisitor___local_property__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___local_property__eq "syntax_base::AbsSyntaxVisitor::local_property="
-#define ATTR_syntax_base___AbsSyntaxVisitor____tc(recv) ATTR(recv, COLOR_syntax_base___AbsSyntaxVisitor____tc)
 typedef val_t (* syntax_base___AbsSyntaxVisitor___tc_t)(val_t  self);
 val_t syntax_base___AbsSyntaxVisitor___tc(val_t  self);
 #define LOCATE_syntax_base___AbsSyntaxVisitor___tc "syntax_base::AbsSyntaxVisitor::tc"
@@ -446,7 +431,6 @@ typedef void (* syntax_base___PNode___accept_abs_syntax_visitor_t)(val_t  self,
 void syntax_base___PNode___accept_abs_syntax_visitor(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___PNode___accept_abs_syntax_visitor "syntax_base::PNode::accept_abs_syntax_visitor"
 val_t NEW_Token_parser_nodes___PNode___init();
-#define ATTR_syntax_base___Token____symbol(recv) ATTR(recv, COLOR_syntax_base___Token____symbol)
 typedef val_t (* syntax_base___Token___to_symbol_t)(val_t  self);
 val_t syntax_base___Token___to_symbol(val_t  self);
 #define LOCATE_syntax_base___Token___to_symbol "syntax_base::Token::to_symbol"
@@ -520,8 +504,6 @@ val_t syntax_base___AType___get_unchecked_stype(val_t  self, val_t  param0);
 typedef void (* syntax_base___AType___check_conform_t)(val_t  self, val_t  param0);
 void syntax_base___AType___check_conform(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___AType___check_conform "syntax_base::AType::(syntax_base::PType::check_conform)"
-#define ATTR_syntax_base___AType____stype_cache(recv) ATTR(recv, COLOR_syntax_base___AType____stype_cache)
-#define ATTR_syntax_base___AType____stype_cached(recv) ATTR(recv, COLOR_syntax_base___AType____stype_cached)
 val_t NEW_PExpr_parser_nodes___PNode___init();
 typedef val_t (* syntax_base___PExpr___stype_t)(val_t  self);
 val_t syntax_base___PExpr___stype(val_t  self);
@@ -529,7 +511,6 @@ val_t syntax_base___PExpr___stype(val_t  self);
 val_t NEW_AVardeclExpr_parser_nodes___PNode___init();
 val_t NEW_AVardeclExpr_parser_prod___AVardeclExpr___empty_init();
 val_t NEW_AVardeclExpr_parser_prod___AVardeclExpr___init_avardeclexpr(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-#define ATTR_syntax_base___AVardeclExpr____variable(recv) ATTR(recv, COLOR_syntax_base___AVardeclExpr____variable)
 typedef val_t (* syntax_base___AVardeclExpr___variable_t)(val_t  self);
 val_t syntax_base___AVardeclExpr___variable(val_t  self);
 #define LOCATE_syntax_base___AVardeclExpr___variable "syntax_base::AVardeclExpr::variable"
@@ -539,7 +520,6 @@ void syntax_base___AVardeclExpr___variable__eq(val_t  self, val_t  param0);
 val_t NEW_AForVardeclExpr_parser_nodes___PNode___init();
 val_t NEW_AForVardeclExpr_parser_prod___AForVardeclExpr___empty_init();
 val_t NEW_AForVardeclExpr_parser_prod___AForVardeclExpr___init_aforvardeclexpr(val_t p0, val_t p1, val_t p2);
-#define ATTR_syntax_base___AForVardeclExpr____variable(recv) ATTR(recv, COLOR_syntax_base___AForVardeclExpr____variable)
 typedef val_t (* syntax_base___AForVardeclExpr___variable_t)(val_t  self);
 val_t syntax_base___AForVardeclExpr___variable(val_t  self);
 #define LOCATE_syntax_base___AForVardeclExpr___variable "syntax_base::AForVardeclExpr::variable"
@@ -549,7 +529,6 @@ void syntax_base___AForVardeclExpr___variable__eq(val_t  self, val_t  param0);
 val_t NEW_ASelfExpr_parser_nodes___PNode___init();
 val_t NEW_ASelfExpr_parser_prod___ASelfExpr___empty_init();
 val_t NEW_ASelfExpr_parser_prod___ASelfExpr___init_aselfexpr(val_t p0);
-#define ATTR_syntax_base___ASelfExpr____variable(recv) ATTR(recv, COLOR_syntax_base___ASelfExpr____variable)
 typedef val_t (* syntax_base___ASelfExpr___variable_t)(val_t  self);
 val_t syntax_base___ASelfExpr___variable(val_t  self);
 #define LOCATE_syntax_base___ASelfExpr___variable "syntax_base::ASelfExpr::variable"
@@ -557,7 +536,6 @@ typedef void (* syntax_base___ASelfExpr___variable__eq_t)(val_t  self, val_t  pa
 void syntax_base___ASelfExpr___variable__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___ASelfExpr___variable__eq "syntax_base::ASelfExpr::variable="
 val_t NEW_AVarFormExpr_parser_nodes___PNode___init();
-#define ATTR_syntax_base___AVarFormExpr____variable(recv) ATTR(recv, COLOR_syntax_base___AVarFormExpr____variable)
 typedef val_t (* syntax_base___AVarFormExpr___variable_t)(val_t  self);
 val_t syntax_base___AVarFormExpr___variable(val_t  self);
 #define LOCATE_syntax_base___AVarFormExpr___variable "syntax_base::AVarFormExpr::variable"
@@ -565,7 +543,6 @@ typedef void (* syntax_base___AVarFormExpr___variable__eq_t)(val_t  self, val_t
 void syntax_base___AVarFormExpr___variable__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___AVarFormExpr___variable__eq "syntax_base::AVarFormExpr::variable="
 val_t NEW_AClosureCallExpr_parser_nodes___AClosureCallExpr___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_syntax_base___AClosureCallExpr____variable(recv) ATTR(recv, COLOR_syntax_base___AClosureCallExpr____variable)
 typedef val_t (* syntax_base___AClosureCallExpr___variable_t)(val_t  self);
 val_t syntax_base___AClosureCallExpr___variable(val_t  self);
 #define LOCATE_syntax_base___AClosureCallExpr___variable "syntax_base::AClosureCallExpr::variable"
@@ -573,14 +550,12 @@ typedef void (* syntax_base___AClosureCallExpr___variable__eq_t)(val_t  self, va
 void syntax_base___AClosureCallExpr___variable__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___AClosureCallExpr___variable__eq "syntax_base::AClosureCallExpr::variable="
 val_t NEW_PClosureDef_parser_nodes___PNode___init();
-#define ATTR_syntax_base___PClosureDef____closure(recv) ATTR(recv, COLOR_syntax_base___PClosureDef____closure)
 typedef val_t (* syntax_base___PClosureDef___closure_t)(val_t  self);
 val_t syntax_base___PClosureDef___closure(val_t  self);
 #define LOCATE_syntax_base___PClosureDef___closure "syntax_base::PClosureDef::closure"
 typedef void (* syntax_base___PClosureDef___closure__eq_t)(val_t  self, val_t  param0);
 void syntax_base___PClosureDef___closure__eq(val_t  self, val_t  param0);
 #define LOCATE_syntax_base___PClosureDef___closure__eq "syntax_base::PClosureDef::closure="
-#define ATTR_syntax_base___PClosureDef____variables(recv) ATTR(recv, COLOR_syntax_base___PClosureDef____variables)
 typedef val_t (* syntax_base___PClosureDef___variables_t)(val_t  self);
 val_t syntax_base___PClosureDef___variables(val_t  self);
 #define LOCATE_syntax_base___PClosureDef___variables "syntax_base::PClosureDef::variables"
index 388c1c2..8707c3a 100644 (file)
@@ -6,7 +6,7 @@
 #include <time_nit.h>
 extern const char *LOCATE_time;
 extern const int SFT_time[];
-#define COLOR_time___Object___get_time SFT_time[0]
+#define CALL_time___Object___get_time(recv) ((time___Object___get_time_t)CALL((recv), (SFT_time[0] + 0)))
 typedef val_t (* time___Object___get_time_t)(val_t  self);
 val_t time___Object___get_time(val_t  self);
 #define LOCATE_time___Object___get_time "time::Object::get_time"
index 37391a4..2e6a6ac 100644 (file)
@@ -23,7 +23,7 @@ val_t type_formal___MMTypeFormal___to_s(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_type_formal___MMTypeFormal____name(variable[2]) /*MMTypeFormal::_name*/;
-  variable[2] = ((symbol___Symbol___to_s_t)CALL(variable[2],COLOR_string___Object___to_s))(variable[2]) /*Symbol::to_s*/;
+  variable[2] = CALL_string___Object___to_s(variable[2])(variable[2]) /*Symbol::to_s*/;
   variable[1] = variable[2];
   goto return_label1;
   return_label1: while(false);
@@ -39,14 +39,14 @@ val_t type_formal___MMTypeFormal___local_class(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_type_formal___MMTypeFormal____bound(variable[2]) /*MMTypeFormal::_bound*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[1] =  NIT_NULL /*null*/;
     goto return_label2;
   }
   variable[2] = variable[0];
   variable[2] = ATTR_type_formal___MMTypeFormal____bound(variable[2]) /*MMTypeFormal::_bound*/;
-  variable[2] = ((static_type___MMType___local_class_t)CALL(variable[2],COLOR_static_type___MMType___local_class))(variable[2]) /*MMType::local_class*/;
+  variable[2] = CALL_static_type___MMType___local_class(variable[2])(variable[2]) /*MMType::local_class*/;
   variable[1] = variable[2];
   goto return_label2;
   return_label2: while(false);
@@ -61,16 +61,16 @@ val_t type_formal___MMTypeFormal_____l(val_t  self, val_t  param0) {
   trace.file = LOCATE_type_formal;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*t*/ ==  NIT_NULL /*null*/) || (( variable[1] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))( variable[1] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*t*/ ==  NIT_NULL /*null*/) || (( variable[1] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*t*/)( variable[1] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = TAG_Bool(( variable[1] /*t*/ == variable[4]) || (( variable[1] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/,variable[4])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*t*/,COLOR_kernel___Object_____eqeq))( variable[1] /*t*/, variable[4]) /*Object::==*/)))));
+    variable[4] = TAG_Bool(( variable[1] /*t*/ == variable[4]) || (( variable[1] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*t*/,variable[4])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*t*/)( variable[1] /*t*/, variable[4]) /*Object::==*/)))));
     variable[5] = variable[4];
     if (!UNTAG_Bool(variable[5])) { /* or */
       variable[5] = variable[0];
       variable[5] = ATTR_type_formal___MMTypeFormal____bound(variable[5]) /*MMTypeFormal::_bound*/;
-      variable[5] = ((static_type___MMType___is_supertype_t)CALL( variable[1] /*t*/,COLOR_static_type___MMType___is_supertype))( variable[1] /*t*/, variable[5]) /*MMType::is_supertype*/;
+      variable[5] = CALL_static_type___MMType___is_supertype( variable[1] /*t*/)( variable[1] /*t*/, variable[5]) /*MMType::is_supertype*/;
     }
     variable[4] = variable[5];
   }
@@ -91,7 +91,7 @@ val_t type_formal___MMTypeFormal___is_supertype(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_type_formal___MMTypeFormal____bound(variable[3]) /*MMTypeFormal::_bound*/;
-  variable[3] = ((static_type___MMType___is_supertype_t)CALL(variable[3],COLOR_static_type___MMType___is_supertype))(variable[3],  variable[1] /*t*/) /*MMType::is_supertype*/;
+  variable[3] = CALL_static_type___MMType___is_supertype(variable[3])(variable[3],  variable[1] /*t*/) /*MMType::is_supertype*/;
   variable[2] = variable[3];
   goto return_label4;
   return_label4: while(false);
@@ -107,7 +107,7 @@ val_t type_formal___MMTypeFormal___direct_type(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_type_formal___MMTypeFormal____bound(variable[2]) /*MMTypeFormal::_bound*/;
-  variable[2] = ((type_formal___MMType___direct_type_t)CALL(variable[2],COLOR_type_formal___MMType___direct_type))(variable[2]) /*MMType::direct_type*/;
+  variable[2] = CALL_type_formal___MMType___direct_type(variable[2])(variable[2]) /*MMType::direct_type*/;
   variable[1] = variable[2];
   goto return_label5;
   return_label5: while(false);
index 5f202ab..6b5d2d7 100644 (file)
@@ -7,15 +7,15 @@
 extern const classtable_elt_t VFT_MMTypeFormal[];
 extern const char *LOCATE_type_formal;
 extern const int SFT_type_formal[];
-#define COLOR_type_formal___MMType___direct_type SFT_type_formal[0]
-#define ID_MMTypeFormal SFT_type_formal[1]
-#define COLOR_MMTypeFormal SFT_type_formal[2]
-#define COLOR_type_formal___MMTypeFormal____name SFT_type_formal[3]
-#define COLOR_type_formal___MMTypeFormal____bound SFT_type_formal[4]
-#define INIT_TABLE_POS_MMTypeFormal SFT_type_formal[5]
-#define COLOR_type_formal___MMTypeFormal___name SFT_type_formal[6]
-#define COLOR_type_formal___MMTypeFormal___bound SFT_type_formal[7]
-#define COLOR_type_formal___MMTypeFormal___init SFT_type_formal[8]
+#define CALL_type_formal___MMType___direct_type(recv) ((type_formal___MMType___direct_type_t)CALL((recv), (SFT_type_formal[0] + 0)))
+#define ID_MMTypeFormal (SFT_type_formal[1])
+#define COLOR_MMTypeFormal (SFT_type_formal[2])
+#define ATTR_type_formal___MMTypeFormal____name(recv) ATTR(recv, (SFT_type_formal[3] + 0))
+#define ATTR_type_formal___MMTypeFormal____bound(recv) ATTR(recv, (SFT_type_formal[3] + 1))
+#define INIT_TABLE_POS_MMTypeFormal (SFT_type_formal[4] + 0)
+#define CALL_type_formal___MMTypeFormal___name(recv) ((type_formal___MMTypeFormal___name_t)CALL((recv), (SFT_type_formal[4] + 1)))
+#define CALL_type_formal___MMTypeFormal___bound(recv) ((type_formal___MMTypeFormal___bound_t)CALL((recv), (SFT_type_formal[4] + 2)))
+#define CALL_type_formal___MMTypeFormal___init(recv) ((type_formal___MMTypeFormal___init_t)CALL((recv), (SFT_type_formal[4] + 3)))
 val_t NEW_MMType_static_type___MMType___init();
 typedef val_t (* type_formal___MMType___direct_type_t)(val_t  self);
 val_t type_formal___MMType___direct_type(val_t  self);
@@ -35,11 +35,9 @@ val_t type_formal___MMTypeFormal___is_supertype(val_t  self, val_t  param0);
 typedef val_t (* type_formal___MMTypeFormal___direct_type_t)(val_t  self);
 val_t type_formal___MMTypeFormal___direct_type(val_t  self);
 #define LOCATE_type_formal___MMTypeFormal___direct_type "type_formal::MMTypeFormal::(type_formal::MMType::direct_type)"
-#define ATTR_type_formal___MMTypeFormal____name(recv) ATTR(recv, COLOR_type_formal___MMTypeFormal____name)
 typedef val_t (* type_formal___MMTypeFormal___name_t)(val_t  self);
 val_t type_formal___MMTypeFormal___name(val_t  self);
 #define LOCATE_type_formal___MMTypeFormal___name "type_formal::MMTypeFormal::name"
-#define ATTR_type_formal___MMTypeFormal____bound(recv) ATTR(recv, COLOR_type_formal___MMTypeFormal____bound)
 typedef val_t (* type_formal___MMTypeFormal___bound_t)(val_t  self);
 val_t type_formal___MMTypeFormal___bound(val_t  self);
 #define LOCATE_type_formal___MMTypeFormal___bound "type_formal::MMTypeFormal::bound"
index 90cfa28..4510dc1 100644 (file)
@@ -13,8 +13,8 @@ void typing___MMSrcModule___do_typing(val_t  self, val_t  param0) {
   variable[4] = variable[5];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___MMSrcModule___node_t)CALL(variable[4],COLOR_syntax_base___MMSrcModule___node))(variable[4]) /*MMSrcModule::node*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[3] /*tv*/,COLOR_parser_prod___Visitor___visit))( variable[3] /*tv*/, variable[4]) /*TypingVisitor::visit*/;
+  variable[4] = CALL_syntax_base___MMSrcModule___node(variable[4])(variable[4]) /*MMSrcModule::node*/;
+  CALL_parser_prod___Visitor___visit( variable[3] /*tv*/)( variable[3] /*tv*/, variable[4]) /*TypingVisitor::visit*/;
   return_label0: while(false);
   tracehead = trace.prev;
   return;
@@ -27,10 +27,10 @@ void typing___TypingVisitor___visit(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*n*/,COLOR_kernel___Object_____eqeq))( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*n*/ ==  NIT_NULL /*null*/) || (( variable[1] /*n*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*n*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*n*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*n*/)( variable[1] /*n*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    ((typing___PNode___accept_typing_t)CALL( variable[1] /*n*/,COLOR_typing___PNode___accept_typing))( variable[1] /*n*/, variable[3]) /*PNode::accept_typing*/;
+    CALL_typing___PNode___accept_typing( variable[1] /*n*/)( variable[1] /*n*/, variable[3]) /*PNode::accept_typing*/;
   }
   return_label1: while(false);
   tracehead = trace.prev;
@@ -198,7 +198,7 @@ void typing___TypingVisitor___init(val_t  self, val_t  param0, val_t  param1, in
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TypingVisitor].i]) return;
-  ((syntax_base___AbsSyntaxVisitor___init_t)CALL(variable[0],COLOR_syntax_base___AbsSyntaxVisitor___init))(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
+  CALL_syntax_base___AbsSyntaxVisitor___init(variable[0])(variable[0], variable[1], variable[2], init_table /*YYY*/) /*AbsSyntaxVisitor::init*/;
   return_label2: while(false);
   init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_TypingVisitor].i] = 1;
   tracehead = trace.prev;
@@ -221,35 +221,35 @@ val_t typing___TypingVisitor___get_default_constructor_for(val_t  self, val_t  p
   variable[6] = variable[7];
   variable[8] = NEW_Array_array___Array___init(); /*new Array[MMMethod]*/
   variable[7] = variable[8];
-  variable[9] = ((static_type___MMLocalProperty___signature_t)CALL( variable[3] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[3] /*prop*/) /*MMLocalProperty::signature*/;
-  variable[9] = ((static_type___MMSignature___arity_t)CALL(variable[9],COLOR_static_type___MMSignature___arity))(variable[9]) /*MMSignature::arity*/;
+  variable[9] = CALL_static_type___MMLocalProperty___signature( variable[3] /*prop*/)( variable[3] /*prop*/) /*MMLocalProperty::signature*/;
+  variable[9] = CALL_static_type___MMSignature___arity(variable[9])(variable[9]) /*MMSignature::arity*/;
   variable[8] = variable[9];
-  variable[9] = ((abstractmetamodel___MMLocalClass___global_properties_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global_properties))( variable[2] /*c*/) /*MMLocalClass::global_properties*/;
-  variable[9] = ((abstract_collection___Collection___iterator_t)CALL(variable[9],COLOR_abstract_collection___Collection___iterator))(variable[9]) /*Collection::iterator*/;
+  variable[9] = CALL_abstractmetamodel___MMLocalClass___global_properties( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::global_properties*/;
+  variable[9] = CALL_abstract_collection___Collection___iterator(variable[9])(variable[9]) /*Collection::iterator*/;
   while (true) { /*for*/
-    variable[10] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*Iterator::is_ok*/;
+    variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[10])) break; /*for*/
-    variable[10] = ((abstract_collection___Iterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*Iterator::item*/;
+    variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*Iterator::item*/;
     variable[11] = variable[10];
-    variable[12] = ((abstractmetamodel___MMGlobalProperty___is_init_for_t)CALL( variable[11] /*g*/,COLOR_abstractmetamodel___MMGlobalProperty___is_init_for))( variable[11] /*g*/,  variable[2] /*c*/) /*MMGlobalProperty::is_init_for*/;
+    variable[12] = CALL_abstractmetamodel___MMGlobalProperty___is_init_for( variable[11] /*g*/)( variable[11] /*g*/,  variable[2] /*c*/) /*MMGlobalProperty::is_init_for*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[12])))) { /*if*/
       goto continue_4;
     }
-    variable[13] = ((inheritance___MMLocalClass_____bra_t)CALL( variable[2] /*c*/,COLOR_abstractmetamodel___MMLocalClass_____bra))( variable[2] /*c*/,  variable[11] /*g*/) /*MMLocalClass::[]*/;
+    variable[13] = CALL_abstractmetamodel___MMLocalClass_____bra( variable[2] /*c*/)( variable[2] /*c*/,  variable[11] /*g*/) /*MMLocalClass::[]*/;
     variable[12] = variable[13];
-    variable[14] = ((genericity___MMLocalClass___get_type_t)CALL( variable[2] /*c*/,COLOR_static_type___MMLocalClass___get_type))( variable[2] /*c*/) /*MMLocalClass::get_type*/;
-    variable[14] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[12] /*gp*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[12] /*gp*/, variable[14]) /*MMLocalProperty::signature_for*/;
+    variable[14] = CALL_static_type___MMLocalClass___get_type( variable[2] /*c*/)( variable[2] /*c*/) /*MMLocalClass::get_type*/;
+    variable[14] = CALL_static_type___MMLocalProperty___signature_for( variable[12] /*gp*/)( variable[12] /*gp*/, variable[14]) /*MMLocalProperty::signature_for*/;
     variable[13] = variable[14];
     variable[14] = TAG_Bool(( variable[12] /*gp*/==NIT_NULL) || VAL_ISA( variable[12] /*gp*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
     if (!UNTAG_Bool(variable[14])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___TypingVisitor___get_default_constructor_for, LOCATE_typing, 82); nit_exit(1);}
-    variable[15] = ((static_type___MMSignature___arity_t)CALL( variable[13] /*gps*/,COLOR_static_type___MMSignature___arity))( variable[13] /*gps*/) /*MMSignature::arity*/;
+    variable[15] = CALL_static_type___MMSignature___arity( variable[13] /*gps*/)( variable[13] /*gps*/) /*MMSignature::arity*/;
     variable[14] = variable[15];
-    variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[3] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[3] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[15] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[3] /*prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*prop*/)( variable[3] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[16] = variable[15];
     if (UNTAG_Bool(variable[16])) { /* and */
-      variable[16] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[12] /*gp*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[12] /*gp*/) /*MMLocalProperty::name*/;
-      variable[17] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[3] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[3] /*prop*/) /*MMLocalProperty::name*/;
-      variable[16] = TAG_Bool((variable[16] == variable[17]) || ((variable[16] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[16],variable[17])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))(variable[16], variable[17]) /*Object::==*/)))));
+      variable[16] = CALL_abstractmetamodel___MMLocalProperty___name( variable[12] /*gp*/)( variable[12] /*gp*/) /*MMLocalProperty::name*/;
+      variable[17] = CALL_abstractmetamodel___MMLocalProperty___name( variable[3] /*prop*/)( variable[3] /*prop*/) /*MMLocalProperty::name*/;
+      variable[16] = TAG_Bool((variable[16] == variable[17]) || ((variable[16] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[16])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[16],variable[17])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[16])(variable[16], variable[17]) /*Object::==*/)))));
     }
     variable[15] = variable[16];
     if (UNTAG_Bool(variable[15])) { /*if*/
@@ -259,8 +259,8 @@ val_t typing___TypingVisitor___get_default_constructor_for(val_t  self, val_t  p
         variable[16] = TAG_Bool(( variable[8] /*parity*/)==( variable[14] /*garity*/));
         variable[17] = variable[16];
         if (UNTAG_Bool(variable[17])) { /* and */
-          variable[17] = ((static_type___MMLocalProperty___signature_t)CALL( variable[3] /*prop*/,COLOR_static_type___MMLocalProperty___signature))( variable[3] /*prop*/) /*MMLocalProperty::signature*/;
-          variable[17] = ((static_type___MMSignature_____l_t)CALL(variable[17],COLOR_static_type___MMSignature_____l))(variable[17],  variable[13] /*gps*/) /*MMSignature::<*/;
+          variable[17] = CALL_static_type___MMLocalProperty___signature( variable[3] /*prop*/)( variable[3] /*prop*/) /*MMLocalProperty::signature*/;
+          variable[17] = CALL_static_type___MMSignature_____l(variable[17])(variable[17],  variable[13] /*gps*/) /*MMSignature::<*/;
         }
         variable[16] = variable[17];
       }
@@ -269,160 +269,165 @@ val_t typing___TypingVisitor___get_default_constructor_for(val_t  self, val_t  p
         variable[4] =  variable[12] /*gp*/;
         goto return_label3;
       } else { /*if*/
-        ((array___AbstractArray___add_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*false_candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[7] /*false_candidates*/)( variable[7] /*false_candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
       }
     } else { /*if*/
       variable[15] = TAG_Bool(( variable[14] /*garity*/)==( TAG_Int(0)));
       variable[16] = variable[15];
       if (UNTAG_Bool(variable[16])) { /* and */
-        variable[16] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[12] /*gp*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[12] /*gp*/) /*MMLocalProperty::name*/;
+        variable[16] = CALL_abstractmetamodel___MMLocalProperty___name( variable[12] /*gp*/)( variable[12] /*gp*/) /*MMLocalProperty::name*/;
         if (once_bool_5) variable[17] = once_value_5;
         else {
           variable[17] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-          variable[17] = ((symbol___String___to_symbol_t)CALL(variable[17],COLOR_symbol___String___to_symbol))(variable[17]) /*String::to_symbol*/;
+          variable[17] = CALL_symbol___String___to_symbol(variable[17])(variable[17]) /*String::to_symbol*/;
           once_value_5 = variable[17];
           once_bool_5 = true;
         }
-        variable[16] = TAG_Bool((variable[16] == variable[17]) || ((variable[16] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[16],variable[17])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[16],COLOR_kernel___Object_____eqeq))(variable[16], variable[17]) /*Object::==*/)))));
+        variable[16] = TAG_Bool((variable[16] == variable[17]) || ((variable[16] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[16])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[16],variable[17])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[16])(variable[16], variable[17]) /*Object::==*/)))));
       }
       variable[15] = variable[16];
       if (UNTAG_Bool(variable[15])) { /*if*/
-        ((array___AbstractArray___add_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[6] /*candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
-        ((array___AbstractArray___add_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*false_candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[6] /*candidates*/)( variable[6] /*candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[7] /*false_candidates*/)( variable[7] /*false_candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
       } else { /*if*/
-        ((array___AbstractArray___add_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___SimpleCollection___add))( variable[7] /*false_candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[7] /*false_candidates*/)( variable[7] /*false_candidates*/,  variable[12] /*gp*/) /*AbstractArray::add*/;
       }
     }
     continue_4: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*Iterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*Iterator::next*/;
   }
   break_4: while(0);
-  variable[9] = ((array___AbstractArray___length_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___length))( variable[6] /*candidates*/) /*AbstractArray::length*/;
+  variable[9] = CALL_abstract_collection___Collection___length( variable[6] /*candidates*/)( variable[6] /*candidates*/) /*AbstractArray::length*/;
   variable[9] = TAG_Bool((variable[9])==( TAG_Int(1)));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___first))( variable[6] /*candidates*/) /*IndexedCollection::first*/;
+    variable[9] = CALL_abstract_collection___Collection___first( variable[6] /*candidates*/)( variable[6] /*candidates*/) /*IndexedCollection::first*/;
     variable[4] = variable[9];
     goto return_label3;
   } else { /*if*/
-    variable[9] = ((array___AbstractArray___length_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___length))( variable[6] /*candidates*/) /*AbstractArray::length*/;
+    variable[9] = CALL_abstract_collection___Collection___length( variable[6] /*candidates*/)( variable[6] /*candidates*/) /*AbstractArray::length*/;
     variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0)));
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
       variable[9] = variable[10];
-      variable[10] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*candidates*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*candidates*/) /*AbstractArray::iterator*/;
+      variable[10] = CALL_abstract_collection___Collection___iterator( variable[6] /*candidates*/)( variable[6] /*candidates*/) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+        variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[11])) break; /*for*/
-        variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+        variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
         variable[12] = variable[11];
-        variable[13] = NEW_String_string___String___init(); /*new String*/
+        variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
-        variable[16] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable[12] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable[12] /*p*/) /*MMLocalProperty::full_name*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
+        variable[16] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[12] /*p*/)( variable[12] /*p*/) /*MMLocalProperty::full_name*/;
         variable[17] = variable[16];
-        ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[17]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[17]) /*AbstractArray::add*/;
         variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
-        variable[20] = ((static_type___MMLocalProperty___signature_t)CALL( variable[12] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[12] /*p*/) /*MMLocalProperty::signature*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[19]) /*AbstractArray::add*/;
+        variable[20] = CALL_static_type___MMLocalProperty___signature( variable[12] /*p*/)( variable[12] /*p*/) /*MMLocalProperty::signature*/;
         variable[21] = variable[20];
-        variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[21]) /*String::append*/;
+        variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[21]) /*AbstractArray::add*/;
         variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
         variable[23] = variable[22];
-        ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[23]) /*String::append*/;
-        ((array___AbstractArray___add_t)CALL( variable[9] /*a*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*a*/, variable[13]) /*AbstractArray::add*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[23]) /*AbstractArray::add*/;
+        variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[9] /*a*/)( variable[9] /*a*/, variable[13]) /*AbstractArray::add*/;
         continue_6: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+        CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
       }
       break_6: while(0);
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting default constructor to call for "), TAG_Int(51)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[2] /*c*/;
-      variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+      variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-      variable[16] = ((string___Collection___join_t)CALL( variable[9] /*a*/,COLOR_string___Collection___join))( variable[9] /*a*/, variable[16]) /*Collection::join*/;
+      variable[16] = CALL_string___Collection___join( variable[9] /*a*/)( variable[9] /*a*/, variable[16]) /*Collection::join*/;
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[5] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[5] /*v*/,  variable[1] /*n*/, variable[10]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[5] /*v*/)( variable[5] /*v*/,  variable[1] /*n*/, variable[10]) /*AbsSyntaxVisitor::error*/;
       variable[4] =  NIT_NULL /*null*/;
       goto return_label3;
     } else { /*if*/
-      variable[9] = ((array___AbstractArray___length_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___Collection___length))( variable[7] /*false_candidates*/) /*AbstractArray::length*/;
+      variable[9] = CALL_abstract_collection___Collection___length( variable[7] /*false_candidates*/)( variable[7] /*false_candidates*/) /*AbstractArray::length*/;
       variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0)));
       if (UNTAG_Bool(variable[9])) { /*if*/
         variable[10] = NEW_Array_array___Array___init(); /*new Array[String]*/
         variable[9] = variable[10];
-        variable[10] = ((array___AbstractArray___iterator_t)CALL( variable[7] /*false_candidates*/,COLOR_abstract_collection___Collection___iterator))( variable[7] /*false_candidates*/) /*AbstractArray::iterator*/;
+        variable[10] = CALL_abstract_collection___Collection___iterator( variable[7] /*false_candidates*/)( variable[7] /*false_candidates*/) /*AbstractArray::iterator*/;
         while (true) { /*for*/
-          variable[11] = ((array___ArrayIterator___is_ok_t)CALL(variable[10],COLOR_abstract_collection___Iterator___is_ok))(variable[10]) /*ArrayIterator::is_ok*/;
+          variable[11] = CALL_abstract_collection___Iterator___is_ok(variable[10])(variable[10]) /*ArrayIterator::is_ok*/;
           if (!UNTAG_Bool(variable[11])) break; /*for*/
-          variable[11] = ((array___ArrayIterator___item_t)CALL(variable[10],COLOR_abstract_collection___Iterator___item))(variable[10]) /*ArrayIterator::item*/;
+          variable[11] = CALL_abstract_collection___Iterator___item(variable[10])(variable[10]) /*ArrayIterator::item*/;
           variable[12] = variable[11];
-          variable[13] = NEW_String_string___String___init(); /*new String*/
+          variable[13] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
           variable[14] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
           variable[15] = variable[14];
-          ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[15]) /*String::append*/;
-          variable[16] = ((abstractmetamodel___MMLocalProperty___full_name_t)CALL( variable[12] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___full_name))( variable[12] /*p*/) /*MMLocalProperty::full_name*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[15]) /*AbstractArray::add*/;
+          variable[16] = CALL_abstractmetamodel___MMLocalProperty___full_name( variable[12] /*p*/)( variable[12] /*p*/) /*MMLocalProperty::full_name*/;
           variable[17] = variable[16];
-          ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[17]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[17]) /*AbstractArray::add*/;
           variable[18] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
           variable[19] = variable[18];
-          ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[19]) /*String::append*/;
-          variable[20] = ((static_type___MMLocalProperty___signature_t)CALL( variable[12] /*p*/,COLOR_static_type___MMLocalProperty___signature))( variable[12] /*p*/) /*MMLocalProperty::signature*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[19]) /*AbstractArray::add*/;
+          variable[20] = CALL_static_type___MMLocalProperty___signature( variable[12] /*p*/)( variable[12] /*p*/) /*MMLocalProperty::signature*/;
           variable[21] = variable[20];
-          variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[21]) /*String::append*/;
+          variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[21]) /*AbstractArray::add*/;
           variable[22] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
           variable[23] = variable[22];
-          ((string___String___append_t)CALL(variable[13],COLOR_abstract_collection___IndexedCollection___append))(variable[13], variable[23]) /*String::append*/;
-          ((array___AbstractArray___add_t)CALL( variable[9] /*a*/,COLOR_abstract_collection___SimpleCollection___add))( variable[9] /*a*/, variable[13]) /*AbstractArray::add*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[13])(variable[13], variable[23]) /*AbstractArray::add*/;
+          variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add( variable[9] /*a*/)( variable[9] /*a*/, variable[13]) /*AbstractArray::add*/;
           continue_7: while(0);
-          ((array___ArrayIterator___next_t)CALL(variable[10],COLOR_abstract_collection___Iterator___next))(variable[10]) /*ArrayIterator::next*/;
+          CALL_abstract_collection___Iterator___next(variable[10])(variable[10]) /*ArrayIterator::next*/;
         }
         break_7: while(0);
-        variable[10] = NEW_String_string___String___init(); /*new String*/
+        variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
         variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
         variable[12] = variable[11];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
         variable[13] =  variable[2] /*c*/;
-        variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+        variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString(". Discarded candidates are "), TAG_Int(27)); /*new String*/
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
         variable[16] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-        variable[16] = ((string___Collection___join_t)CALL( variable[9] /*a*/,COLOR_string___Collection___join))( variable[9] /*a*/, variable[16]) /*Collection::join*/;
+        variable[16] = CALL_string___Collection___join( variable[9] /*a*/)( variable[9] /*a*/, variable[16]) /*Collection::join*/;
         variable[17] = variable[16];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
         variable[18] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[5] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[5] /*v*/,  variable[1] /*n*/, variable[10]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+        variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[5] /*v*/)( variable[5] /*v*/,  variable[1] /*n*/, variable[10]) /*AbsSyntaxVisitor::error*/;
         variable[4] =  NIT_NULL /*null*/;
         goto return_label3;
       } else { /*if*/
-        variable[9] = NEW_String_string___String___init(); /*new String*/
+        variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: there is no available compatible constrctor in "), TAG_Int(54)); /*new String*/
         variable[11] = variable[10];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
         variable[12] =  variable[2] /*c*/;
-        variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+        variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
         variable[13] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
         variable[14] = variable[13];
-        ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[5] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[5] /*v*/,  variable[1] /*n*/, variable[9]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
+        variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[5] /*v*/)( variable[5] /*v*/,  variable[1] /*n*/, variable[9]) /*AbsSyntaxVisitor::error*/;
         variable[4] =  NIT_NULL /*null*/;
         goto return_label3;
       }
@@ -442,11 +447,11 @@ val_t typing___VariableContext_____bra(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*s*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*s*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*s*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*s*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label8;
   } else { /*if*/
@@ -467,8 +472,8 @@ void typing___VariableContext___add(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
-  variable[4] = ((syntax_base___Variable___name_t)CALL( variable[1] /*v*/,COLOR_syntax_base___Variable___name))( variable[1] /*v*/) /*Variable::name*/;
-  ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], variable[4],  variable[1] /*v*/) /*Map::[]=*/;
+  variable[4] = CALL_syntax_base___Variable___name( variable[1] /*v*/)( variable[1] /*v*/) /*Variable::name*/;
+  CALL_abstract_collection___Map_____braeq(variable[3])(variable[3], variable[4],  variable[1] /*v*/) /*Map::[]=*/;
   return_label9: while(false);
   tracehead = trace.prev;
   return;
@@ -481,7 +486,7 @@ val_t typing___VariableContext___stype(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((syntax_base___Variable___stype_t)CALL( variable[1] /*v*/,COLOR_syntax_base___Variable___stype))( variable[1] /*v*/) /*Variable::stype*/;
+  variable[3] = CALL_syntax_base___Variable___stype( variable[1] /*v*/)( variable[1] /*v*/) /*Variable::stype*/;
   variable[2] = variable[3];
   goto return_label10;
   return_label10: while(false);
@@ -548,17 +553,17 @@ val_t typing___SubVariableContext_____bra(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
-  variable[3] = ((abstract_collection___Map___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*s*/) /*Map::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*s*/) /*Map::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_typing___VariableContext____dico(variable[3]) /*VariableContext::_dico*/;
-    variable[3] = ((abstract_collection___Map_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*s*/) /*Map::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*s*/) /*Map::[]*/;
     variable[2] = variable[3];
     goto return_label14;
   } else { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((typing___SubVariableContext___prev_t)CALL(variable[3],COLOR_typing___SubVariableContext___prev))(variable[3]) /*SubVariableContext::prev*/;
-    variable[3] = ((typing___VariableContext_____bra_t)CALL(variable[3],COLOR_typing___VariableContext_____bra))(variable[3],  variable[1] /*s*/) /*VariableContext::[]*/;
+    variable[3] = CALL_typing___SubVariableContext___prev(variable[3])(variable[3]) /*SubVariableContext::prev*/;
+    variable[3] = CALL_typing___VariableContext_____bra(variable[3])(variable[3],  variable[1] /*s*/) /*VariableContext::[]*/;
     variable[2] = variable[3];
     goto return_label14;
   }
@@ -576,7 +581,7 @@ val_t typing___SubVariableContext___stype(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[3] = ATTR_typing___SubVariableContext____variable(variable[3]) /*SubVariableContext::_variable*/;
-  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*v*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*v*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  variable[1] /*v*/) /*Object::==*/)))));
+  variable[3] = TAG_Bool((variable[3] ==  variable[1] /*v*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*v*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  variable[1] /*v*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_typing___SubVariableContext____var_type(variable[3]) /*SubVariableContext::_var_type*/;
@@ -584,8 +589,8 @@ val_t typing___SubVariableContext___stype(val_t  self, val_t  param0) {
     goto return_label15;
   }
   variable[3] = variable[0];
-  variable[3] = ((typing___SubVariableContext___prev_t)CALL(variable[3],COLOR_typing___SubVariableContext___prev))(variable[3]) /*SubVariableContext::prev*/;
-  variable[3] = ((typing___VariableContext___stype_t)CALL(variable[3],COLOR_typing___VariableContext___stype))(variable[3],  variable[1] /*v*/) /*VariableContext::stype*/;
+  variable[3] = CALL_typing___SubVariableContext___prev(variable[3])(variable[3]) /*SubVariableContext::prev*/;
+  variable[3] = CALL_typing___VariableContext___stype(variable[3])(variable[3],  variable[1] /*v*/) /*VariableContext::stype*/;
   variable[2] = variable[3];
   goto return_label15;
   return_label15: while(false);
@@ -613,7 +618,7 @@ void typing___SubVariableContext___with_prev(val_t  self, val_t  param0, val_t
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_SubVariableContext].i]) return;
   variable[5] = variable[0];
-  ((typing___VariableContext___init_t)CALL(variable[5],COLOR_typing___VariableContext___init))(variable[5], init_table /*YYY*/) /*VariableContext::init*/;
+  CALL_typing___VariableContext___init(variable[5])(variable[5], init_table /*YYY*/) /*VariableContext::init*/;
   variable[5] = variable[0];
   ATTR_typing___SubVariableContext____prev(variable[5]) /*SubVariableContext::_prev*/ =  variable[1] /*p*/;
   variable[5] = variable[0];
@@ -634,9 +639,9 @@ void typing___PNode___accept_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((syntax_base___PNode___accept_abs_syntax_visitor_t)CALL(variable[3],COLOR_syntax_base___PNode___accept_abs_syntax_visitor))(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
+  CALL_syntax_base___PNode___accept_abs_syntax_visitor(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::accept_abs_syntax_visitor*/;
   variable[3] = variable[0];
-  ((typing___PNode___after_typing_t)CALL(variable[3],COLOR_typing___PNode___after_typing))(variable[3],  variable[1] /*v*/) /*PNode::after_typing*/;
+  CALL_typing___PNode___after_typing(variable[3])(variable[3],  variable[1] /*v*/) /*PNode::after_typing*/;
   return_label17: while(false);
   tracehead = trace.prev;
   return;
@@ -662,17 +667,17 @@ void typing___PClassdef___accept_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("self"), TAG_Int(4)); /*new String*/
-  variable[3] = ((symbol___String___to_symbol_t)CALL(variable[3],COLOR_symbol___String___to_symbol))(variable[3]) /*String::to_symbol*/;
+  variable[3] = CALL_symbol___String___to_symbol(variable[3])(variable[3]) /*String::to_symbol*/;
   variable[4] = variable[0];
   variable[5] = NEW_ParamVariable_syntax_base___ParamVariable___init(variable[3], variable[4]); /*new ParamVariable*/
   variable[3] = variable[5];
-  ((typing___TypingVisitor___self_var__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::self_var=*/;
-  variable[3] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
+  CALL_typing___TypingVisitor___self_var__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*TypingVisitor::self_var=*/;
+  variable[3] = CALL_typing___TypingVisitor___self_var( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::self_var*/;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___PClassdef___local_class_t)CALL(variable[4],COLOR_syntax_base___PClassdef___local_class))(variable[4]) /*PClassdef::local_class*/;
-  variable[4] = ((genericity___MMLocalClass___get_type_t)CALL(variable[4],COLOR_static_type___MMLocalClass___get_type))(variable[4]) /*MMLocalClass::get_type*/;
-  ((syntax_base___Variable___stype__eq_t)CALL(variable[3],COLOR_syntax_base___Variable___stype__eq))(variable[3], variable[4]) /*Variable::stype=*/;
-  ((typing___PClassdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___PClassdef___accept_typing))(variable[0], variable[1]) /*super PClassdef::accept_typing*/;
+  variable[4] = CALL_syntax_base___PClassdef___local_class(variable[4])(variable[4]) /*PClassdef::local_class*/;
+  variable[4] = CALL_static_type___MMLocalClass___get_type(variable[4])(variable[4]) /*MMLocalClass::get_type*/;
+  CALL_syntax_base___Variable___stype__eq(variable[3])(variable[3], variable[4]) /*Variable::stype=*/;
+  CALL_SUPER_typing___PClassdef___accept_typing(variable[0])(variable[0], variable[1]) /*super PClassdef::accept_typing*/;
   return_label19: while(false);
   tracehead = trace.prev;
   return;
@@ -685,18 +690,18 @@ void typing___AAttrPropdef___accept_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  ((typing___AAttrPropdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___AAttrPropdef___accept_typing))(variable[0], variable[1]) /*super AAttrPropdef::accept_typing*/;
+  CALL_SUPER_typing___AAttrPropdef___accept_typing(variable[0])(variable[0], variable[1]) /*super AAttrPropdef::accept_typing*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAttrPropdef___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAttrPropdef___n_expr))(variable[3]) /*AAttrPropdef::n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___AAttrPropdef___n_expr(variable[3])(variable[3]) /*AAttrPropdef::n_expr*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((parser_nodes___AAttrPropdef___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAttrPropdef___n_expr))(variable[3]) /*AAttrPropdef::n_expr*/;
+    variable[3] = CALL_parser_nodes___AAttrPropdef___n_expr(variable[3])(variable[3]) /*AAttrPropdef::n_expr*/;
     variable[4] = variable[0];
-    variable[4] = ((syntax_base___AAttrPropdef___prop_t)CALL(variable[4],COLOR_syntax_base___AAttrPropdef___prop))(variable[4]) /*AAttrPropdef::prop*/;
-    variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
-    variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
-    ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
+    variable[4] = CALL_syntax_base___AAttrPropdef___prop(variable[4])(variable[4]) /*AAttrPropdef::prop*/;
+    variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+    variable[4] = CALL_static_type___MMSignature___return_type(variable[4])(variable[4]) /*MMSignature::return_type*/;
+    CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
   }
   return_label20: while(false);
   tracehead = trace.prev;
@@ -720,11 +725,11 @@ void typing___AMethPropdef___accept_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = NEW_VariableContext_typing___VariableContext___init(); /*new VariableContext*/
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
   variable[3] = variable[0];
-  variable[4] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
+  variable[4] = CALL_typing___TypingVisitor___self_var( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::self_var*/;
   ATTR_typing___AMethPropdef____self_var(variable[3]) /*AMethPropdef::_self_var*/ = variable[4];
-  ((typing___AMethPropdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___AMethPropdef___accept_typing))(variable[0], variable[1]) /*super AMethPropdef::accept_typing*/;
+  CALL_SUPER_typing___AMethPropdef___accept_typing(variable[0])(variable[0], variable[1]) /*super AMethPropdef::accept_typing*/;
   return_label21: while(false);
   tracehead = trace.prev;
   return;
@@ -738,38 +743,38 @@ void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AConcreteMethPropdef___n_block_t)CALL(variable[3],COLOR_parser_nodes___AConcreteMethPropdef___n_block))(variable[3]) /*AConcreteMethPropdef::n_block*/;
-  ((typing___TypingVisitor___top_block__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___top_block__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::top_block=*/;
+  variable[3] = CALL_parser_nodes___AConcreteMethPropdef___n_block(variable[3])(variable[3]) /*AConcreteMethPropdef::n_block*/;
+  CALL_typing___TypingVisitor___top_block__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*TypingVisitor::top_block=*/;
   variable[3] = variable[0];
-  variable[3] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[3],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[3]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
-  ((typing___TypingVisitor___explicit_super_init_calls__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::explicit_super_init_calls=*/;
-  ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable[1] /*v*/,  TAG_Bool(false)) /*TypingVisitor::explicit_other_init_call=*/;
-  ((typing___AConcreteInitPropdef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___AConcreteInitPropdef___accept_typing))(variable[0], variable[1]) /*super AConcreteInitPropdef::accept_typing*/;
-  variable[3] = ((typing___TypingVisitor___explicit_other_init_call_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call))( variable[1] /*v*/) /*TypingVisitor::explicit_other_init_call*/;
+  variable[3] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable[3])(variable[3]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+  CALL_typing___TypingVisitor___explicit_super_init_calls__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*TypingVisitor::explicit_super_init_calls=*/;
+  CALL_typing___TypingVisitor___explicit_other_init_call__eq( variable[1] /*v*/)( variable[1] /*v*/,  TAG_Bool(false)) /*TypingVisitor::explicit_other_init_call=*/;
+  CALL_SUPER_typing___AConcreteInitPropdef___accept_typing(variable[0])(variable[0], variable[1]) /*super AConcreteInitPropdef::accept_typing*/;
+  variable[3] = CALL_typing___TypingVisitor___explicit_other_init_call( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::explicit_other_init_call*/;
   variable[4] = variable[3];
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
-    variable[4] = ((syntax_base___AMethPropdef___method_t)CALL(variable[4],COLOR_syntax_base___AMethPropdef___method))(variable[4]) /*AMethPropdef::method*/;
-    variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
-    variable[4] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[4]) /*MMGlobalProperty::intro*/;
+    variable[4] = CALL_syntax_base___AMethPropdef___method(variable[4])(variable[4]) /*AMethPropdef::method*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable[4])(variable[4]) /*MMLocalProperty::global*/;
+    variable[4] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[4])(variable[4]) /*MMGlobalProperty::intro*/;
     variable[5] = variable[0];
-    variable[5] = ((syntax_base___AMethPropdef___method_t)CALL(variable[5],COLOR_syntax_base___AMethPropdef___method))(variable[5]) /*AMethPropdef::method*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], variable[5]) /*Object::==*/)))))));
+    variable[5] = CALL_syntax_base___AMethPropdef___method(variable[5])(variable[5]) /*AMethPropdef::method*/;
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[5]) /*Object::==*/)))))));
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
   } else { /*if*/
     variable[3] =  TAG_Int(0);
     variable[5] = variable[0];
-    variable[5] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[5],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[5]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
-    variable[5] = ((array___AbstractArray___length_t)CALL(variable[5],COLOR_abstract_collection___Collection___length))(variable[5]) /*AbstractArray::length*/;
+    variable[5] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable[5])(variable[5]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+    variable[5] = CALL_abstract_collection___Collection___length(variable[5])(variable[5]) /*AbstractArray::length*/;
     variable[4] = variable[5];
     variable[5] =  NIT_NULL /*null*/;
     variable[6] =  NIT_NULL /*null*/;
     variable[7] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l*/));
     if (UNTAG_Bool(variable[7])) { /*if*/
       variable[7] = variable[0];
-      variable[7] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[7],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[7]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+      variable[7] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable[7])(variable[7]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
       variable[8] = variable[7];
       variable[9] =  variable[3] /*i*/;
       variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -789,24 +794,24 @@ void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0) {
       return_label23: while(false);
       variable[7] = variable[10];
       variable[5] = variable[7] /*cur_m=*/;
-      variable[7] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*cur_m*/) /*MMLocalProperty::global*/;
-      variable[7] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[7]) /*MMGlobalProperty::intro*/;
-      variable[7] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[7]) /*MMLocalProperty::local_class*/;
-      variable[8] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-      variable[7] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___for_module))(variable[7], variable[8]) /*MMLocalClass::for_module*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable[5] /*cur_m*/)( variable[5] /*cur_m*/) /*MMLocalProperty::global*/;
+      variable[7] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[7])(variable[7]) /*MMGlobalProperty::intro*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[7])(variable[7]) /*MMLocalProperty::local_class*/;
+      variable[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+      variable[7] = CALL_abstractmetamodel___MMLocalClass___for_module(variable[7])(variable[7], variable[8]) /*MMLocalClass::for_module*/;
       variable[6] = variable[7] /*cur_c=*/;
     }
     variable[7] =  TAG_Int(0);
     while (true) { /*while*/
-      variable[8] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-      variable[8] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[8]) /*MMLocalClass::cshe*/;
-      variable[8] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[8],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[8]) /*PartialOrderElement::direct_greaters*/;
-      variable[8] = ((array___AbstractArray___length_t)CALL(variable[8],COLOR_abstract_collection___Collection___length))(variable[8]) /*AbstractArray::length*/;
+      variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+      variable[8] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[8])(variable[8]) /*MMLocalClass::cshe*/;
+      variable[8] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[8])(variable[8]) /*PartialOrderElement::direct_greaters*/;
+      variable[8] = CALL_abstract_collection___Collection___length(variable[8])(variable[8]) /*AbstractArray::length*/;
       variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*j*/)<UNTAG_Int(variable[8]));
       if (!UNTAG_Bool(variable[8])) break; /* while*/
-      variable[9] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-      variable[9] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[9]) /*MMLocalClass::cshe*/;
-      variable[9] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[9],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[9]) /*PartialOrderElement::direct_greaters*/;
+      variable[9] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[9])(variable[9]) /*MMLocalClass::cshe*/;
+      variable[9] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[9])(variable[9]) /*PartialOrderElement::direct_greaters*/;
       variable[10] = variable[9];
       variable[11] =  variable[7] /*j*/;
       variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -826,49 +831,49 @@ void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0) {
       return_label25: while(false);
       variable[9] = variable[12];
       variable[8] = variable[9];
-      variable[9] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[8] /*c*/) /*MMLocalClass::global*/;
-      variable[9] = ((abstractmetamodel___MMGlobalClass___is_interface_t)CALL(variable[9],COLOR_abstractmetamodel___MMGlobalClass___is_interface))(variable[9]) /*MMGlobalClass::is_interface*/;
+      variable[9] = CALL_abstractmetamodel___MMLocalClass___global( variable[8] /*c*/)( variable[8] /*c*/) /*MMLocalClass::global*/;
+      variable[9] = CALL_abstractmetamodel___MMGlobalClass___is_interface(variable[9])(variable[9]) /*MMGlobalClass::is_interface*/;
       variable[10] = variable[9];
       if (!UNTAG_Bool(variable[10])) { /* or */
-        variable[10] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[8] /*c*/) /*MMLocalClass::global*/;
-        variable[10] = ((abstractmetamodel___MMGlobalClass___is_universal_t)CALL(variable[10],COLOR_abstractmetamodel___MMGlobalClass___is_universal))(variable[10]) /*MMGlobalClass::is_universal*/;
+        variable[10] = CALL_abstractmetamodel___MMLocalClass___global( variable[8] /*c*/)( variable[8] /*c*/) /*MMLocalClass::global*/;
+        variable[10] = CALL_abstractmetamodel___MMGlobalClass___is_universal(variable[10])(variable[10]) /*MMGlobalClass::is_universal*/;
       }
       variable[9] = variable[10];
       variable[10] = variable[9];
       if (!UNTAG_Bool(variable[10])) { /* or */
-        variable[10] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[8] /*c*/) /*MMLocalClass::global*/;
-        variable[10] = ((abstractmetamodel___MMGlobalClass___is_mixin_t)CALL(variable[10],COLOR_abstractmetamodel___MMGlobalClass___is_mixin))(variable[10]) /*MMGlobalClass::is_mixin*/;
+        variable[10] = CALL_abstractmetamodel___MMLocalClass___global( variable[8] /*c*/)( variable[8] /*c*/) /*MMLocalClass::global*/;
+        variable[10] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable[10])(variable[10]) /*MMGlobalClass::is_mixin*/;
       }
       variable[9] = variable[10];
       if (UNTAG_Bool(variable[9])) { /*if*/
         variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
       } else { /*if*/
-        variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*cur_c*/ ==  NIT_NULL /*null*/) || (( variable[6] /*cur_c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*cur_c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*cur_c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*cur_c*/,COLOR_kernel___Object_____eqeq))( variable[6] /*cur_c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*cur_c*/ ==  NIT_NULL /*null*/) || (( variable[6] /*cur_c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*cur_c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*cur_c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*cur_c*/)( variable[6] /*cur_c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
         variable[10] = variable[9];
         if (UNTAG_Bool(variable[10])) { /* and */
-          variable[10] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL( variable[8] /*c*/,COLOR_abstractmetamodel___MMLocalClass___cshe))( variable[8] /*c*/) /*MMLocalClass::cshe*/;
-          variable[10] = ((partial_order___PartialOrderElement_____leq_t)CALL(variable[10],COLOR_partial_order___PartialOrderElement_____leq))(variable[10],  variable[6] /*cur_c*/) /*PartialOrderElement::<=*/;
+          variable[10] = CALL_abstractmetamodel___MMLocalClass___cshe( variable[8] /*c*/)( variable[8] /*c*/) /*MMLocalClass::cshe*/;
+          variable[10] = CALL_partial_order___PartialOrderElement_____leq(variable[10])(variable[10],  variable[6] /*cur_c*/) /*PartialOrderElement::<=*/;
           variable[11] = variable[10];
           if (!UNTAG_Bool(variable[11])) { /* or */
-            variable[11] = ((abstractmetamodel___MMLocalClass___global_t)CALL( variable[6] /*cur_c*/,COLOR_abstractmetamodel___MMLocalClass___global))( variable[6] /*cur_c*/) /*MMLocalClass::global*/;
-            variable[11] = ((abstractmetamodel___MMGlobalClass___is_mixin_t)CALL(variable[11],COLOR_abstractmetamodel___MMGlobalClass___is_mixin))(variable[11]) /*MMGlobalClass::is_mixin*/;
+            variable[11] = CALL_abstractmetamodel___MMLocalClass___global( variable[6] /*cur_c*/)( variable[6] /*cur_c*/) /*MMLocalClass::global*/;
+            variable[11] = CALL_abstractmetamodel___MMGlobalClass___is_mixin(variable[11])(variable[11]) /*MMGlobalClass::is_mixin*/;
           }
           variable[10] = variable[11];
         }
         variable[9] = variable[10];
         if (UNTAG_Bool(variable[9])) { /*if*/
-          variable[9] = TAG_Bool(( variable[8] /*c*/ ==  variable[6] /*cur_c*/) || (( variable[8] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[8] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*c*/, variable[6] /*cur_c*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[8] /*c*/,COLOR_kernel___Object_____eqeq))( variable[8] /*c*/,  variable[6] /*cur_c*/) /*Object::==*/)))));
+          variable[9] = TAG_Bool(( variable[8] /*c*/ ==  variable[6] /*cur_c*/) || (( variable[8] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[8] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[8] /*c*/, variable[6] /*cur_c*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[8] /*c*/)( variable[8] /*c*/,  variable[6] /*cur_c*/) /*Object::==*/)))));
           if (UNTAG_Bool(variable[9])) { /*if*/
             variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
           }
           variable[9] = variable[0];
-          variable[9] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL(variable[9],COLOR_typing___AConcreteInitPropdef___super_init_calls))(variable[9]) /*AConcreteInitPropdef::super_init_calls*/;
-          ((array___AbstractArray___add_t)CALL(variable[9],COLOR_abstract_collection___SimpleCollection___add))(variable[9],  variable[5] /*cur_m*/) /*AbstractArray::add*/;
+          variable[9] = CALL_typing___AConcreteInitPropdef___super_init_calls(variable[9])(variable[9]) /*AConcreteInitPropdef::super_init_calls*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9],  variable[5] /*cur_m*/) /*AbstractArray::add*/;
           variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
           variable[9] = TAG_Bool(UNTAG_Int( variable[3] /*i*/)<UNTAG_Int( variable[4] /*l*/));
           if (UNTAG_Bool(variable[9])) { /*if*/
             variable[9] = variable[0];
-            variable[9] = ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL(variable[9],COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls))(variable[9]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
+            variable[9] = CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(variable[9])(variable[9]) /*AConcreteInitPropdef::explicit_super_init_calls*/;
             variable[10] = variable[9];
             variable[11] =  variable[3] /*i*/;
             variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
@@ -888,11 +893,11 @@ void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0) {
             return_label26: while(false);
             variable[9] = variable[12];
             variable[5] = variable[9] /*cur_m=*/;
-            variable[9] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*cur_m*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*cur_m*/) /*MMLocalProperty::global*/;
-            variable[9] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[9],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[9]) /*MMGlobalProperty::intro*/;
-            variable[9] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[9]) /*MMLocalProperty::local_class*/;
-            variable[10] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-            variable[9] = ((abstractmetamodel___MMLocalClass___for_module_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass___for_module))(variable[9], variable[10]) /*MMLocalClass::for_module*/;
+            variable[9] = CALL_abstractmetamodel___MMLocalProperty___global( variable[5] /*cur_m*/)( variable[5] /*cur_m*/) /*MMLocalProperty::global*/;
+            variable[9] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[9])(variable[9]) /*MMGlobalProperty::intro*/;
+            variable[9] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[9])(variable[9]) /*MMLocalProperty::local_class*/;
+            variable[10] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+            variable[9] = CALL_abstractmetamodel___MMLocalClass___for_module(variable[9])(variable[9], variable[10]) /*MMLocalClass::for_module*/;
             variable[6] = variable[9] /*cur_c=*/;
           } else { /*if*/
             variable[5] =  NIT_NULL /*null*/ /*cur_m=*/;
@@ -901,14 +906,14 @@ void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0) {
         } else { /*if*/
           variable[10] = variable[0];
           variable[11] = variable[0];
-          variable[11] = ((syntax_base___AMethPropdef___method_t)CALL(variable[11],COLOR_syntax_base___AMethPropdef___method))(variable[11]) /*AMethPropdef::method*/;
-          variable[10] = ((typing___TypingVisitor___get_default_constructor_for_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___get_default_constructor_for))( variable[1] /*v*/, variable[10],  variable[8] /*c*/, variable[11]) /*TypingVisitor::get_default_constructor_for*/;
+          variable[11] = CALL_syntax_base___AMethPropdef___method(variable[11])(variable[11]) /*AMethPropdef::method*/;
+          variable[10] = CALL_typing___TypingVisitor___get_default_constructor_for( variable[1] /*v*/)( variable[1] /*v*/, variable[10],  variable[8] /*c*/, variable[11]) /*TypingVisitor::get_default_constructor_for*/;
           variable[9] = variable[10];
-          variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*p*/ ==  NIT_NULL /*null*/) || (( variable[9] /*p*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*p*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*p*/,COLOR_kernel___Object_____eqeq))( variable[9] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+          variable[10] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[9] /*p*/ ==  NIT_NULL /*null*/) || (( variable[9] /*p*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*p*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*p*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*p*/)( variable[9] /*p*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
           if (UNTAG_Bool(variable[10])) { /*if*/
             variable[10] = variable[0];
-            variable[10] = ((typing___AConcreteInitPropdef___super_init_calls_t)CALL(variable[10],COLOR_typing___AConcreteInitPropdef___super_init_calls))(variable[10]) /*AConcreteInitPropdef::super_init_calls*/;
-            ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  variable[9] /*p*/) /*AbstractArray::add*/;
+            variable[10] = CALL_typing___AConcreteInitPropdef___super_init_calls(variable[10])(variable[10]) /*AConcreteInitPropdef::super_init_calls*/;
+            CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  variable[9] /*p*/) /*AbstractArray::add*/;
           }
           variable[7] = TAG_Int(UNTAG_Int(variable[7])+UNTAG_Int( TAG_Int(1))) /*j*/;
         }
@@ -947,13 +952,13 @@ void typing___PParam___after_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+    variable[3] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
     variable[4] = variable[0];
-    variable[4] = ((syntax_base___PParam___variable_t)CALL(variable[4],COLOR_syntax_base___PParam___variable))(variable[4]) /*PParam::variable*/;
-    ((typing___VariableContext___add_t)CALL(variable[3],COLOR_typing___VariableContext___add))(variable[3], variable[4]) /*VariableContext::add*/;
+    variable[4] = CALL_syntax_base___PParam___variable(variable[4])(variable[4]) /*PParam::variable*/;
+    CALL_typing___VariableContext___add(variable[3])(variable[3], variable[4]) /*VariableContext::add*/;
   }
   return_label27: while(false);
   tracehead = trace.prev;
@@ -967,22 +972,22 @@ void typing___AClosureDecl___accept_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[3] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___PClosureDecl___variable_t)CALL(variable[4],COLOR_syntax_base___PClosureDecl___variable))(variable[4]) /*PClosureDecl::variable*/;
-  ((typing___VariableContext___add_t)CALL(variable[3],COLOR_typing___VariableContext___add))(variable[3], variable[4]) /*VariableContext::add*/;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_syntax_base___PClosureDecl___variable(variable[4])(variable[4]) /*PClosureDecl::variable*/;
+  CALL_typing___VariableContext___add(variable[3])(variable[3], variable[4]) /*VariableContext::add*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[3] = variable[4];
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-  variable[4] = ((typing___VariableContext___sub_t)CALL(variable[4],COLOR_typing___VariableContext___sub))(variable[4]) /*VariableContext::sub*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___VariableContext___sub(variable[4])(variable[4]) /*VariableContext::sub*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___PClosureDecl___variable_t)CALL(variable[4],COLOR_syntax_base___PClosureDecl___variable))(variable[4]) /*PClosureDecl::variable*/;
-  variable[4] = ((syntax_base___ClosureVariable___closure_t)CALL(variable[4],COLOR_syntax_base___ClosureVariable___closure))(variable[4]) /*ClosureVariable::closure*/;
-  ((typing___TypingVisitor___closure__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::closure=*/;
-  ((typing___AClosureDecl___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___AClosureDecl___accept_typing))(variable[0], variable[1]) /*super AClosureDecl::accept_typing*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
-  ((typing___TypingVisitor___closure__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure__eq))( variable[1] /*v*/,  NIT_NULL /*null*/) /*TypingVisitor::closure=*/;
+  variable[4] = CALL_syntax_base___PClosureDecl___variable(variable[4])(variable[4]) /*PClosureDecl::variable*/;
+  variable[4] = CALL_syntax_base___ClosureVariable___closure(variable[4])(variable[4]) /*ClosureVariable::closure*/;
+  CALL_typing___TypingVisitor___closure__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::closure=*/;
+  CALL_SUPER_typing___AClosureDecl___accept_typing(variable[0])(variable[0], variable[1]) /*super AClosureDecl::accept_typing*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  CALL_typing___TypingVisitor___closure__eq( variable[1] /*v*/)( variable[1] /*v*/,  NIT_NULL /*null*/) /*TypingVisitor::closure=*/;
   return_label28: while(false);
   tracehead = trace.prev;
   return;
@@ -997,7 +1002,7 @@ void typing___PType___after_typing(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___PType___get_stype_t)CALL(variable[4],COLOR_syntax_base___PType___get_stype))(variable[4],  variable[1] /*v*/) /*PType::get_stype*/;
+  variable[4] = CALL_syntax_base___PType___get_stype(variable[4])(variable[4],  variable[1] /*v*/) /*PType::get_stype*/;
   ATTR_typing___PType____stype(variable[3]) /*PType::_stype*/ = variable[4];
   return_label29: while(false);
   tracehead = trace.prev;
@@ -1078,41 +1083,41 @@ void typing___AVardeclExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AVardeclExpr___n_id_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_id))(variable[4]) /*AVardeclExpr::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___AVardeclExpr___n_id(variable[4])(variable[4]) /*AVardeclExpr::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[5] = variable[0];
   variable[6] = NEW_VarVariable_syntax_base___VarVariable___init(variable[4], variable[5]); /*new VarVariable*/
   variable[4] = variable[6];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((syntax_base___AVardeclExpr___variable__eq_t)CALL(variable[4],COLOR_syntax_base___AVardeclExpr___variable__eq))(variable[4],  variable[3] /*va*/) /*AVardeclExpr::variable=*/;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-  ((typing___VariableContext___add_t)CALL(variable[4],COLOR_typing___VariableContext___add))(variable[4],  variable[3] /*va*/) /*VariableContext::add*/;
+  CALL_syntax_base___AVardeclExpr___variable__eq(variable[4])(variable[4],  variable[3] /*va*/) /*AVardeclExpr::variable=*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  CALL_typing___VariableContext___add(variable[4])(variable[4],  variable[3] /*va*/) /*VariableContext::add*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AVardeclExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_type))(variable[4]) /*AVardeclExpr::n_type*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AVardeclExpr___n_type(variable[4])(variable[4]) /*AVardeclExpr::n_type*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AVardeclExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_type))(variable[4]) /*AVardeclExpr::n_type*/;
-    variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
-    ((syntax_base___Variable___stype__eq_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[3] /*va*/, variable[4]) /*Variable::stype=*/;
+    variable[4] = CALL_parser_nodes___AVardeclExpr___n_type(variable[4])(variable[4]) /*AVardeclExpr::n_type*/;
+    variable[4] = CALL_typing___PType___stype(variable[4])(variable[4]) /*PType::stype*/;
+    CALL_syntax_base___Variable___stype__eq( variable[3] /*va*/)( variable[3] /*va*/, variable[4]) /*Variable::stype=*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[4])(variable[4]) /*AVardeclExpr::n_expr*/;
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
-      variable[5] = ((syntax_base___Variable___stype_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype))( variable[3] /*va*/) /*Variable::stype*/;
-      ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
+      variable[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[4])(variable[4]) /*AVardeclExpr::n_expr*/;
+      variable[5] = CALL_syntax_base___Variable___stype( variable[3] /*va*/)( variable[3] /*va*/) /*Variable::stype*/;
+      CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
     }
   } else { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
-    ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
+    variable[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[4])(variable[4]) /*AVardeclExpr::n_expr*/;
+    CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AVardeclExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AVardeclExpr___n_expr))(variable[4]) /*AVardeclExpr::n_expr*/;
-    variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
-    ((syntax_base___Variable___stype__eq_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[3] /*va*/, variable[4]) /*Variable::stype=*/;
+    variable[4] = CALL_parser_nodes___AVardeclExpr___n_expr(variable[4])(variable[4]) /*AVardeclExpr::n_expr*/;
+    variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
+    CALL_syntax_base___Variable___stype__eq( variable[3] /*va*/)( variable[3] /*va*/, variable[4]) /*Variable::stype=*/;
   }
   return_label33: while(false);
   tracehead = trace.prev;
@@ -1126,13 +1131,13 @@ void typing___ABlockExpr___accept_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[3] = variable[4];
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-  variable[4] = ((typing___VariableContext___sub_t)CALL(variable[4],COLOR_typing___VariableContext___sub))(variable[4]) /*VariableContext::sub*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
-  ((typing___ABlockExpr___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___ABlockExpr___accept_typing))(variable[0], variable[1]) /*super ABlockExpr::accept_typing*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___VariableContext___sub(variable[4])(variable[4]) /*VariableContext::sub*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
+  CALL_SUPER_typing___ABlockExpr___accept_typing(variable[0])(variable[0], variable[1]) /*super ABlockExpr::accept_typing*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
   return_label34: while(false);
   tracehead = trace.prev;
   return;
@@ -1145,48 +1150,48 @@ void typing___AReturnExpr___after_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-  variable[4] = ((static_type___MMLocalProperty___signature_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature))(variable[4]) /*MMLocalProperty::signature*/;
-  variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+  variable[4] = CALL_static_type___MMLocalProperty___signature(variable[4])(variable[4]) /*MMLocalProperty::signature*/;
+  variable[4] = CALL_static_type___MMSignature___return_type(variable[4])(variable[4]) /*MMSignature::return_type*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable[4])(variable[4]) /*AReturnExpr::n_expr*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return without value in a function."), TAG_Int(42)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
   } else { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable[4])(variable[4]) /*AReturnExpr::n_expr*/;
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[5] = variable[4];
     if (UNTAG_Bool(variable[5])) { /* and */
-      variable[5] = TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[5] = TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     }
     variable[4] = variable[5];
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: Return with value in a procedure."), TAG_Int(40)); /*new String*/
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
-      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable[4])(variable[4]) /*AReturnExpr::n_expr*/;
+      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
       variable[5] = variable[4];
       if (UNTAG_Bool(variable[5])) { /* and */
-        variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       }
       variable[4] = variable[5];
       if (UNTAG_Bool(variable[4])) { /*if*/
         variable[4] = variable[0];
-        variable[4] = ((parser_nodes___AReturnExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AReturnExpr___n_expr))(variable[4]) /*AReturnExpr::n_expr*/;
-        ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4],  variable[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+        variable[4] = CALL_parser_nodes___AReturnExpr___n_expr(variable[4])(variable[4]) /*AReturnExpr::n_expr*/;
+        CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4],  variable[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
       }
     }
   }
@@ -1202,60 +1207,60 @@ void typing___AContinueExpr___after_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___closure_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure))( variable[1] /*v*/) /*TypingVisitor::closure*/;
+  variable[4] = CALL_typing___TypingVisitor___closure( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::closure*/;
   variable[3] = variable[4];
   variable[4] =  NIT_NULL /*null*/;
-  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*c*/ ==  NIT_NULL /*null*/) || (( variable[3] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))( variable[3] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*c*/ ==  NIT_NULL /*null*/) || (( variable[3] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*c*/)( variable[3] /*c*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    variable[5] = ((static_type___MMClosure___is_break_t)CALL( variable[3] /*c*/,COLOR_static_type___MMClosure___is_break))( variable[3] /*c*/) /*MMClosure::is_break*/;
+    variable[5] = CALL_static_type___MMClosure___is_break( variable[3] /*c*/)( variable[3] /*c*/) /*MMClosure::is_break*/;
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = variable[0];
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: 'continue' forbiden in break blocks."), TAG_Int(43)); /*new String*/
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
       goto return_label36;
     }
-    variable[5] = ((static_type___MMClosure___signature_t)CALL( variable[3] /*c*/,COLOR_static_type___MMClosure___signature))( variable[3] /*c*/) /*MMClosure::signature*/;
-    variable[5] = ((static_type___MMSignature___return_type_t)CALL(variable[5],COLOR_static_type___MMSignature___return_type))(variable[5]) /*MMSignature::return_type*/;
+    variable[5] = CALL_static_type___MMClosure___signature( variable[3] /*c*/)( variable[3] /*c*/) /*MMClosure::signature*/;
+    variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
     variable[4] = variable[5] /*t=*/;
   }
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
-  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable[5])(variable[5]) /*AContinueExpr::n_expr*/;
+  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[6] = variable[5];
   if (UNTAG_Bool(variable[6])) { /* and */
-    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*t*/)( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   }
   variable[5] = variable[6];
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue with a value required in this bloc."), TAG_Int(51)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable[5])(variable[5]) /*AContinueExpr::n_expr*/;
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[6] = variable[5];
     if (UNTAG_Bool(variable[6])) { /* and */
-      variable[6] = TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[6] = TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*t*/)( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     }
     variable[5] = variable[6];
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = variable[0];
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: continue without value required in this bloc."), TAG_Int(52)); /*new String*/
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[5] = variable[0];
-      variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
-      variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable[5])(variable[5]) /*AContinueExpr::n_expr*/;
+      variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))))));
       variable[6] = variable[5];
       if (UNTAG_Bool(variable[6])) { /* and */
-        variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*t*/,COLOR_kernel___Object_____eqeq))( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*t*/ ==  NIT_NULL /*null*/) || (( variable[4] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*t*/)( variable[4] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       }
       variable[5] = variable[6];
       if (UNTAG_Bool(variable[5])) { /*if*/
         variable[5] = variable[0];
-        variable[5] = ((parser_nodes___AContinueExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AContinueExpr___n_expr))(variable[5]) /*AContinueExpr::n_expr*/;
-        ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[5],  variable[4] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+        variable[5] = CALL_parser_nodes___AContinueExpr___n_expr(variable[5])(variable[5]) /*AContinueExpr::n_expr*/;
+        CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5],  variable[4] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
       }
     }
   }
@@ -1271,47 +1276,47 @@ void typing___ABreakExpr___after_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___closure_break_stype_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype))( variable[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
+  variable[4] = CALL_typing___TypingVisitor___closure_break_stype( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[4]) /*ABreakExpr::n_expr*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable[4])(variable[4]) /*ABreakExpr::n_expr*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break with a value required in this bloc."), TAG_Int(48)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
   } else { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[4]) /*ABreakExpr::n_expr*/;
-    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable[4])(variable[4]) /*ABreakExpr::n_expr*/;
+    variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
     variable[5] = variable[4];
     if (UNTAG_Bool(variable[5])) { /* and */
-      variable[5] = TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+      variable[5] = TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     }
     variable[4] = variable[5];
     if (UNTAG_Bool(variable[4])) { /*if*/
       variable[4] = variable[0];
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: break without value required in this bloc."), TAG_Int(49)); /*new String*/
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[4]) /*ABreakExpr::n_expr*/;
-      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[4] = CALL_parser_nodes___ABreakExpr___n_expr(variable[4])(variable[4]) /*ABreakExpr::n_expr*/;
+      variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
       variable[5] = variable[4];
       if (UNTAG_Bool(variable[5])) { /* and */
-        variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+        variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       }
       variable[4] = variable[5];
       if (UNTAG_Bool(variable[4])) { /*if*/
-        variable[4] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
+        variable[4] = CALL_typing___TypingVisitor___break_list( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::break_list*/;
         variable[5] = variable[0];
-        variable[5] = ((parser_nodes___ABreakExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ABreakExpr___n_expr))(variable[5]) /*ABreakExpr::n_expr*/;
-        ((array___AbstractArray___add_t)CALL(variable[4],COLOR_abstract_collection___SimpleCollection___add))(variable[4], variable[5]) /*AbstractArray::add*/;
+        variable[5] = CALL_parser_nodes___ABreakExpr___n_expr(variable[5])(variable[5]) /*ABreakExpr::n_expr*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[5]) /*AbstractArray::add*/;
       }
     }
   }
@@ -1327,37 +1332,37 @@ void typing___AIfExpr___accept_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+  variable[4] = CALL_parser_nodes___AIfExpr___n_expr(variable[4])(variable[4]) /*AIfExpr::n_expr*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[4] = CALL_parser_nodes___AIfExpr___n_expr(variable[4])(variable[4]) /*AIfExpr::n_expr*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AIfExpr___n_expr(variable[4])(variable[4]) /*AIfExpr::n_expr*/;
+  variable[4] = CALL_typing___PExpr___if_true_variable_ctx(variable[4])(variable[4]) /*PExpr::if_true_variable_ctx*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AIfExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_expr))(variable[4]) /*AIfExpr::n_expr*/;
-    variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
-    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
+    variable[4] = CALL_parser_nodes___AIfExpr___n_expr(variable[4])(variable[4]) /*AIfExpr::n_expr*/;
+    variable[4] = CALL_typing___PExpr___if_true_variable_ctx(variable[4])(variable[4]) /*PExpr::if_true_variable_ctx*/;
+    CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
   }
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_then))(variable[4]) /*AIfExpr::n_then*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  variable[4] = CALL_parser_nodes___AIfExpr___n_then(variable[4])(variable[4]) /*AIfExpr::n_then*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_else))(variable[4]) /*AIfExpr::n_else*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AIfExpr___n_else(variable[4])(variable[4]) /*AIfExpr::n_else*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AIfExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfExpr___n_else))(variable[4]) /*AIfExpr::n_else*/;
-    ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
-    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+    variable[4] = CALL_parser_nodes___AIfExpr___n_else(variable[4])(variable[4]) /*AIfExpr::n_else*/;
+    CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+    CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
   }
   return_label38: while(false);
   tracehead = trace.prev;
@@ -1372,9 +1377,9 @@ void typing___AWhileExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AWhileExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AWhileExpr___n_expr))(variable[3]) /*AWhileExpr::n_expr*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[3] = CALL_parser_nodes___AWhileExpr___n_expr(variable[3])(variable[3]) /*AWhileExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
   return_label39: while(false);
   tracehead = trace.prev;
   return;
@@ -1387,114 +1392,223 @@ void typing___AForExpr___after_typing(val_t  self, val_t  param0) {
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(( variable[3] /*varctx*/==NIT_NULL) || VAL_ISA( variable[3] /*varctx*/, COLOR_SubVariableContext, ID_SubVariableContext)) /*cast SubVariableContext*/;
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AForExpr___after_typing, LOCATE_typing, 458); nit_exit(1);}
-  variable[4] = ((typing___SubVariableContext___prev_t)CALL( variable[3] /*varctx*/,COLOR_typing___SubVariableContext___prev))( variable[3] /*varctx*/) /*SubVariableContext::prev*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
+  variable[4] = CALL_typing___SubVariableContext___prev( variable[3] /*varctx*/)( variable[3] /*varctx*/) /*SubVariableContext::prev*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
   return_label40: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AForVardeclExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 464, LOCATE_typing___AForVardeclExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 468, LOCATE_typing___AForVardeclExpr___after_typing};
   static val_t once_value_42; static int once_bool_42; /* Once value for variable[7]*/
-  static val_t once_value_43; static int once_bool_43; /* Once value for variable[9]*/
-  val_t variable[15];
+  static val_t once_value_43; static int once_bool_43; /* Once value for variable[8]*/
+  static val_t once_value_44; static int once_bool_44; /* Once value for variable[8]*/
+  static val_t once_value_45; static int once_bool_45; /* Once value for variable[8]*/
+  val_t variable[13];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-  variable[3] = ((typing___VariableContext___sub_t)CALL(variable[3],COLOR_typing___VariableContext___sub))(variable[3]) /*VariableContext::sub*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
+  variable[3] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[3] = CALL_typing___VariableContext___sub(variable[3])(variable[3]) /*VariableContext::sub*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AForVardeclExpr___n_id_t)CALL(variable[4],COLOR_parser_nodes___AForVardeclExpr___n_id))(variable[4]) /*AForVardeclExpr::n_id*/;
-  variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+  variable[4] = CALL_parser_nodes___AForVardeclExpr___n_id(variable[4])(variable[4]) /*AForVardeclExpr::n_id*/;
+  variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
   variable[5] = variable[0];
   variable[6] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable[4], variable[5]); /*new AutoVariable*/
   variable[4] = variable[6];
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((syntax_base___AForVardeclExpr___variable__eq_t)CALL(variable[4],COLOR_syntax_base___AForVardeclExpr___variable__eq))(variable[4],  variable[3] /*va*/) /*AForVardeclExpr::variable=*/;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-  ((typing___VariableContext___add_t)CALL(variable[4],COLOR_typing___VariableContext___add))(variable[4],  variable[3] /*va*/) /*VariableContext::add*/;
+  CALL_syntax_base___AForVardeclExpr___variable__eq(variable[4])(variable[4],  variable[3] /*va*/) /*AForVardeclExpr::variable=*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  CALL_typing___VariableContext___add(variable[4])(variable[4],  variable[3] /*va*/) /*VariableContext::add*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[5]) /*AForVardeclExpr::n_expr*/;
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
+  variable[5] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable[5])(variable[5]) /*AForVardeclExpr::n_expr*/;
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[5]) /*AForVardeclExpr::n_expr*/;
-  variable[6] = ((syntax_base___AbsSyntaxVisitor___type_collection_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_collection))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_collection*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[5] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable[5])(variable[5]) /*AForVardeclExpr::n_expr*/;
+  variable[6] = CALL_syntax_base___AbsSyntaxVisitor___type_collection( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_collection*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::check_conform_expr*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
     goto return_label41;
   }
-  variable[6] = ((static_type___MMType___local_class_t)CALL( variable[4] /*expr_type*/,COLOR_static_type___MMType___local_class))( variable[4] /*expr_type*/) /*MMType::local_class*/;
+  variable[5] = variable[0];
+  variable[6] = CALL_static_type___MMType___local_class( variable[4] /*expr_type*/)( variable[4] /*expr_type*/) /*MMType::local_class*/;
   if (once_bool_42) variable[7] = once_value_42;
   else {
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("iterator"), TAG_Int(8)); /*new String*/
-    variable[7] = ((symbol___String___to_symbol_t)CALL(variable[7],COLOR_symbol___String___to_symbol))(variable[7]) /*String::to_symbol*/;
+    variable[7] = CALL_symbol___String___to_symbol(variable[7])(variable[7]) /*String::to_symbol*/;
     once_value_42 = variable[7];
     once_bool_42 = true;
   }
-  variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[6], variable[7]) /*MMLocalClass::select_method*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[6])(variable[6], variable[7]) /*MMLocalClass::select_method*/;
+  ATTR_typing___AForVardeclExpr____meth_iterator(variable[5]) /*AForVardeclExpr::_meth_iterator*/ = variable[6];
+  variable[5] = variable[0];
+  variable[5] = ATTR_typing___AForVardeclExpr____meth_iterator(variable[5]) /*AForVardeclExpr::_meth_iterator*/;
+  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[5])) { /*if*/
+    variable[5] = variable[0];
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: Collection MUST have an iterate method"), TAG_Int(45)); /*new String*/
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+    goto return_label41;
+  }
+  variable[6] = variable[0];
+  variable[6] = ATTR_typing___AForVardeclExpr____meth_iterator(variable[6]) /*AForVardeclExpr::_meth_iterator*/;
+  variable[6] = CALL_static_type___MMLocalProperty___signature_for(variable[6])(variable[6],  variable[4] /*expr_type*/) /*MMLocalProperty::signature_for*/;
+  variable[6] = CALL_static_type___MMSignature___return_type(variable[6])(variable[6]) /*MMSignature::return_type*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(( variable[5] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[6] = variable[0];
+  variable[7] = CALL_static_type___MMType___local_class( variable[5] /*iter_type*/)( variable[5] /*iter_type*/) /*MMType::local_class*/;
+  if (once_bool_43) variable[8] = once_value_43;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("is_ok"), TAG_Int(5)); /*new String*/
+    variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
+    once_value_43 = variable[8];
+    once_bool_43 = true;
+  }
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[7])(variable[7], variable[8]) /*MMLocalClass::select_method*/;
+  ATTR_typing___AForVardeclExpr____meth_is_ok(variable[6]) /*AForVardeclExpr::_meth_is_ok*/ = variable[7];
+  variable[6] = variable[0];
+  variable[6] = ATTR_typing___AForVardeclExpr____meth_is_ok(variable[6]) /*AForVardeclExpr::_meth_is_ok*/;
+  variable[6] = TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Collection MUST have an iterate method"), TAG_Int(45)); /*new String*/
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+    variable[9] = variable[8];
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+    variable[10] =  variable[5] /*iter_type*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
+    variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an is_ok method"), TAG_Int(26)); /*new String*/
+    variable[12] = variable[11];
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
     goto return_label41;
   }
-  variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[5] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[5] /*prop*/,  variable[4] /*expr_type*/) /*MMLocalProperty::signature_for*/;
-  variable[7] = ((static_type___MMSignature___return_type_t)CALL(variable[7],COLOR_static_type___MMSignature___return_type))(variable[7]) /*MMSignature::return_type*/;
-  variable[6] = variable[7];
-  variable[8] = ((static_type___MMType___local_class_t)CALL( variable[6] /*iter_type*/,COLOR_static_type___MMType___local_class))( variable[6] /*iter_type*/) /*MMType::local_class*/;
-  if (once_bool_43) variable[9] = once_value_43;
+  variable[6] = variable[0];
+  variable[7] = CALL_static_type___MMType___local_class( variable[5] /*iter_type*/)( variable[5] /*iter_type*/) /*MMType::local_class*/;
+  if (once_bool_44) variable[8] = once_value_44;
   else {
-    variable[9] = NEW_String_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
-    variable[9] = ((symbol___String___to_symbol_t)CALL(variable[9],COLOR_symbol___String___to_symbol))(variable[9]) /*String::to_symbol*/;
-    once_value_43 = variable[9];
-    once_bool_43 = true;
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("item"), TAG_Int(4)); /*new String*/
+    variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
+    once_value_44 = variable[8];
+    once_bool_44 = true;
   }
-  variable[8] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[8], variable[9]) /*MMLocalClass::select_method*/;
-  variable[7] = variable[8];
-  variable[8] = TAG_Bool(( variable[7] /*prop2*/ ==  NIT_NULL /*null*/) || (( variable[7] /*prop2*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*prop2*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*prop2*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*prop2*/,COLOR_kernel___Object_____eqeq))( variable[7] /*prop2*/,  NIT_NULL /*null*/) /*Object::==*/)))));
-  if (UNTAG_Bool(variable[8])) { /*if*/
-    variable[8] = variable[0];
-    variable[9] = NEW_String_string___String___init(); /*new String*/
-    variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
-    variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-    variable[12] =  variable[6] /*iter_type*/;
-    variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
-    variable[13] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an item method"), TAG_Int(25)); /*new String*/
-    variable[14] = variable[13];
-    ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[7])(variable[7], variable[8]) /*MMLocalClass::select_method*/;
+  ATTR_typing___AForVardeclExpr____meth_item(variable[6]) /*AForVardeclExpr::_meth_item*/ = variable[7];
+  variable[6] = variable[0];
+  variable[6] = ATTR_typing___AForVardeclExpr____meth_item(variable[6]) /*AForVardeclExpr::_meth_item*/;
+  variable[6] = TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[6])) { /*if*/
+    variable[6] = variable[0];
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+    variable[9] = variable[8];
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+    variable[10] =  variable[5] /*iter_type*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
+    variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an item method"), TAG_Int(25)); /*new String*/
+    variable[12] = variable[11];
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
     goto return_label41;
   }
-  variable[9] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[7] /*prop2*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[7] /*prop2*/,  variable[6] /*iter_type*/) /*MMLocalProperty::signature_for*/;
-  variable[9] = ((static_type___MMSignature___return_type_t)CALL(variable[9],COLOR_static_type___MMSignature___return_type))(variable[9]) /*MMSignature::return_type*/;
-  variable[8] = variable[9];
-  variable[9] = variable[0];
-  variable[9] = ((parser_nodes___AForVardeclExpr___n_expr_t)CALL(variable[9],COLOR_parser_nodes___AForVardeclExpr___n_expr))(variable[9]) /*AForVardeclExpr::n_expr*/;
-  variable[9] = ((typing___PExpr___is_self_t)CALL(variable[9],COLOR_typing___PExpr___is_self))(variable[9]) /*PExpr::is_self*/;
-  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[9])))) { /*if*/
-    variable[9] = ((static_type___MMType___not_for_self_t)CALL( variable[8] /*t*/,COLOR_static_type___MMType___not_for_self))( variable[8] /*t*/) /*MMType::not_for_self*/;
-    variable[8] = variable[9] /*t=*/;
+  variable[6] = variable[0];
+  variable[7] = CALL_static_type___MMType___local_class( variable[5] /*iter_type*/)( variable[5] /*iter_type*/) /*MMType::local_class*/;
+  if (once_bool_45) variable[8] = once_value_45;
+  else {
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("next"), TAG_Int(4)); /*new String*/
+    variable[8] = CALL_symbol___String___to_symbol(variable[8])(variable[8]) /*String::to_symbol*/;
+    once_value_45 = variable[8];
+    once_bool_45 = true;
+  }
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[7])(variable[7], variable[8]) /*MMLocalClass::select_method*/;
+  ATTR_typing___AForVardeclExpr____meth_next(variable[6]) /*AForVardeclExpr::_meth_next*/ = variable[7];
+  variable[6] = variable[0];
+  variable[6] = ATTR_typing___AForVardeclExpr____meth_next(variable[6]) /*AForVardeclExpr::_meth_next*/;
+  variable[6] = TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[6])) { /*if*/
+    variable[6] = variable[0];
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
+    variable[9] = variable[8];
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
+    variable[10] =  variable[5] /*iter_type*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
+    variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a next method"), TAG_Int(24)); /*new String*/
+    variable[12] = variable[11];
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+    goto return_label41;
+  }
+  variable[7] = variable[0];
+  variable[7] = ATTR_typing___AForVardeclExpr____meth_item(variable[7]) /*AForVardeclExpr::_meth_item*/;
+  variable[7] = CALL_static_type___MMLocalProperty___signature_for(variable[7])(variable[7],  variable[5] /*iter_type*/) /*MMLocalProperty::signature_for*/;
+  variable[7] = CALL_static_type___MMSignature___return_type(variable[7])(variable[7]) /*MMSignature::return_type*/;
+  variable[6] = variable[7];
+  variable[7] = variable[0];
+  variable[7] = CALL_parser_nodes___AForVardeclExpr___n_expr(variable[7])(variable[7]) /*AForVardeclExpr::n_expr*/;
+  variable[7] = CALL_typing___PExpr___is_self(variable[7])(variable[7]) /*PExpr::is_self*/;
+  if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/
+    variable[7] = CALL_static_type___MMType___not_for_self( variable[6] /*t*/)( variable[6] /*t*/) /*MMType::not_for_self*/;
+    variable[6] = variable[7] /*t=*/;
   }
-  ((syntax_base___Variable___stype__eq_t)CALL( variable[3] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[3] /*va*/,  variable[8] /*t*/) /*Variable::stype=*/;
+  CALL_syntax_base___Variable___stype__eq( variable[3] /*va*/)( variable[3] /*va*/,  variable[6] /*t*/) /*Variable::stype=*/;
   return_label41: while(false);
   tracehead = trace.prev;
   return;
 }
+val_t typing___AForVardeclExpr___meth_iterator(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 464, LOCATE_typing___AForVardeclExpr___meth_iterator};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___AForVardeclExpr____meth_iterator( self) /*AForVardeclExpr::_meth_iterator*/;
+}
+val_t typing___AForVardeclExpr___meth_is_ok(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 465, LOCATE_typing___AForVardeclExpr___meth_is_ok};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___AForVardeclExpr____meth_is_ok( self) /*AForVardeclExpr::_meth_is_ok*/;
+}
+val_t typing___AForVardeclExpr___meth_item(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 466, LOCATE_typing___AForVardeclExpr___meth_item};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___AForVardeclExpr____meth_item( self) /*AForVardeclExpr::_meth_item*/;
+}
+val_t typing___AForVardeclExpr___meth_next(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 467, LOCATE_typing___AForVardeclExpr___meth_next};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___AForVardeclExpr____meth_next( self) /*AForVardeclExpr::_meth_next*/;
+}
 void typing___AAssertExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 493, LOCATE_typing___AAssertExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 507, LOCATE_typing___AAssertExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1502,25 +1616,25 @@ void typing___AAssertExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAssertExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAssertExpr___n_expr))(variable[3]) /*AAssertExpr::n_expr*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable[3])(variable[3]) /*AAssertExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAssertExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAssertExpr___n_expr))(variable[3]) /*AAssertExpr::n_expr*/;
-  variable[3] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[3],COLOR_typing___PExpr___if_true_variable_ctx))(variable[3]) /*PExpr::if_true_variable_ctx*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable[3])(variable[3]) /*AAssertExpr::n_expr*/;
+  variable[3] = CALL_typing___PExpr___if_true_variable_ctx(variable[3])(variable[3]) /*PExpr::if_true_variable_ctx*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
-    variable[3] = ((parser_nodes___AAssertExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAssertExpr___n_expr))(variable[3]) /*AAssertExpr::n_expr*/;
-    variable[3] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[3],COLOR_typing___PExpr___if_true_variable_ctx))(variable[3]) /*PExpr::if_true_variable_ctx*/;
-    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
+    variable[3] = CALL_parser_nodes___AAssertExpr___n_expr(variable[3])(variable[3]) /*AAssertExpr::n_expr*/;
+    variable[3] = CALL_typing___PExpr___if_true_variable_ctx(variable[3])(variable[3]) /*PExpr::if_true_variable_ctx*/;
+    CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*TypingVisitor::variable_ctx=*/;
   }
-  return_label44: while(false);
+  return_label46: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AVarExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 503, LOCATE_typing___AVarExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 517, LOCATE_typing___AVarExpr___after_typing};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1528,52 +1642,52 @@ void typing___AVarExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
-  variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[5])(variable[5]) /*AVarFormExpr::variable*/;
+  variable[4] = CALL_typing___VariableContext___stype(variable[4])(variable[4], variable[5]) /*VariableContext::stype*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label45: while(false);
+  return_label47: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___AVarExpr___its_variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 501, LOCATE_typing___AVarExpr___its_variable};
+  struct trace_t trace = {NULL, NULL, 515, LOCATE_typing___AVarExpr___its_variable};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[2],COLOR_syntax_base___AVarFormExpr___variable))(variable[2]) /*AVarFormExpr::variable*/;
+  variable[2] = CALL_syntax_base___AVarFormExpr___variable(variable[2])(variable[2]) /*AVarFormExpr::variable*/;
   variable[1] = variable[2];
-  goto return_label46;
-  return_label46: while(false);
+  goto return_label48;
+  return_label48: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 void typing___AVarAssignExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 510, LOCATE_typing___AVarAssignExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 524, LOCATE_typing___AVarAssignExpr___after_typing};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
-  variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[5])(variable[5]) /*AVarFormExpr::variable*/;
+  variable[4] = CALL_typing___VariableContext___stype(variable[4])(variable[4], variable[5]) /*VariableContext::stype*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[4],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[4]) /*AAssignFormExpr::n_value*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4],  variable[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
-  return_label47: while(false);
+  variable[4] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[4])(variable[4]) /*AAssignFormExpr::n_value*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4],  variable[3] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+  return_label49: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AReassignFormExpr___do_lvalue_typing(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 518, LOCATE_typing___AReassignFormExpr___do_lvalue_typing};
+  struct trace_t trace = {NULL, NULL, 532, LOCATE_typing___AReassignFormExpr___do_lvalue_typing};
   val_t variable[16];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1581,65 +1695,66 @@ void typing___AReassignFormExpr___do_lvalue_typing(val_t  self, val_t  param0, v
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[4] = TAG_Bool(( variable[2] /*type_lvalue*/ ==  NIT_NULL /*null*/) || (( variable[2] /*type_lvalue*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*type_lvalue*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*type_lvalue*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*type_lvalue*/,COLOR_kernel___Object_____eqeq))( variable[2] /*type_lvalue*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[2] /*type_lvalue*/ ==  NIT_NULL /*null*/) || (( variable[2] /*type_lvalue*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*type_lvalue*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*type_lvalue*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*type_lvalue*/)( variable[2] /*type_lvalue*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    goto return_label48;
+    goto return_label50;
   }
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL(variable[5],COLOR_parser_nodes___AReassignFormExpr___n_assign_op))(variable[5]) /*AReassignFormExpr::n_assign_op*/;
-  variable[5] = ((typing___PAssignOp___method_name_t)CALL(variable[5],COLOR_typing___PAssignOp___method_name))(variable[5]) /*PAssignOp::method_name*/;
+  variable[5] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(variable[5])(variable[5]) /*AReassignFormExpr::n_assign_op*/;
+  variable[5] = CALL_typing___PAssignOp___method_name(variable[5])(variable[5]) /*PAssignOp::method_name*/;
   variable[4] = variable[5];
-  variable[6] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_lvalue*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_lvalue*/) /*MMType::local_class*/;
-  variable[6] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[6],  variable[4] /*name*/) /*MMLocalClass::select_method*/;
+  variable[6] = CALL_static_type___MMType___local_class( variable[2] /*type_lvalue*/)( variable[2] /*type_lvalue*/) /*MMType::local_class*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[6])(variable[6],  variable[4] /*name*/) /*MMLocalClass::select_method*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(( variable[5] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[6] = TAG_Bool(( variable[5] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*prop*/)( variable[5] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[4] /*name*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
     variable[13] =  variable[2] /*type_lvalue*/;
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
-    goto return_label48;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+    goto return_label50;
   }
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*prop*/) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[5] /*prop*/)( variable[5] /*prop*/) /*MMLocalProperty::global*/;
   variable[7] = variable[0];
-  variable[8] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-  ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable[6],COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable[6],  variable[1] /*v*/, variable[7], variable[8],  TAG_Bool(false)) /*MMGlobalProperty::check_visibility*/;
-  variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[5] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[5] /*prop*/,  variable[2] /*type_lvalue*/) /*MMLocalProperty::signature_for*/;
+  variable[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  CALL_syntax_base___MMGlobalProperty___check_visibility(variable[6])(variable[6],  variable[1] /*v*/, variable[7], variable[8],  TAG_Bool(false)) /*MMGlobalProperty::check_visibility*/;
+  variable[7] = CALL_static_type___MMLocalProperty___signature_for( variable[5] /*prop*/)( variable[5] /*prop*/,  variable[2] /*type_lvalue*/) /*MMLocalProperty::signature_for*/;
   variable[6] = variable[7];
   variable[7] = variable[0];
   ATTR_typing___AReassignFormExpr____assign_method(variable[7]) /*AReassignFormExpr::_assign_method*/ =  variable[5] /*prop*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[7],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[7]) /*AReassignFormExpr::n_value*/;
-  variable[8] = ((static_type___MMSignature_____bra_t)CALL( variable[6] /*psig*/,COLOR_static_type___MMSignature_____bra))( variable[6] /*psig*/,  TAG_Int(0)) /*MMSignature::[]*/;
-  variable[8] = ((static_type___MMType___not_for_self_t)CALL(variable[8],COLOR_static_type___MMType___not_for_self))(variable[8]) /*MMType::not_for_self*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[7] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[7])(variable[7]) /*AReassignFormExpr::n_value*/;
+  variable[8] = CALL_static_type___MMSignature_____bra( variable[6] /*psig*/)( variable[6] /*psig*/,  TAG_Int(0)) /*MMSignature::[]*/;
+  variable[8] = CALL_static_type___MMType___not_for_self(variable[8])(variable[8]) /*MMType::not_for_self*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[7] = variable[0];
-  variable[8] = ((static_type___MMSignature___return_type_t)CALL( variable[6] /*psig*/,COLOR_static_type___MMSignature___return_type))( variable[6] /*psig*/) /*MMSignature::return_type*/;
-  variable[8] = ((static_type___MMType___not_for_self_t)CALL(variable[8],COLOR_static_type___MMType___not_for_self))(variable[8]) /*MMType::not_for_self*/;
+  variable[8] = CALL_static_type___MMSignature___return_type( variable[6] /*psig*/)( variable[6] /*psig*/) /*MMSignature::return_type*/;
+  variable[8] = CALL_static_type___MMType___not_for_self(variable[8])(variable[8]) /*MMType::not_for_self*/;
   variable[9] = variable[0];
-  variable[9] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[9],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[9]) /*AReassignFormExpr::n_value*/;
-  variable[9] = ((typing___PExpr___stype_t)CALL(variable[9],COLOR_syntax_base___PExpr___stype))(variable[9]) /*PExpr::stype*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable[1] /*v*/, variable[7], variable[8], variable[9]) /*AbsSyntaxVisitor::check_conform*/;
-  return_label48: while(false);
+  variable[9] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[9])(variable[9]) /*AReassignFormExpr::n_value*/;
+  variable[9] = CALL_syntax_base___PExpr___stype(variable[9])(variable[9]) /*PExpr::stype*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8], variable[9]) /*AbsSyntaxVisitor::check_conform*/;
+  return_label50: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___AReassignFormExpr___assign_method(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 537, LOCATE_typing___AReassignFormExpr___assign_method};
+  struct trace_t trace = {NULL, NULL, 551, LOCATE_typing___AReassignFormExpr___assign_method};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1648,80 +1763,80 @@ val_t typing___AReassignFormExpr___assign_method(val_t  self) {
   return ATTR_typing___AReassignFormExpr____assign_method( self) /*AReassignFormExpr::_assign_method*/;
 }
 void typing___AVarReassignExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 542, LOCATE_typing___AVarReassignExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 556, LOCATE_typing___AVarReassignExpr___after_typing};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___AVarFormExpr___variable_t)CALL(variable[5],COLOR_syntax_base___AVarFormExpr___variable))(variable[5]) /*AVarFormExpr::variable*/;
-  variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
+  variable[5] = CALL_syntax_base___AVarFormExpr___variable(variable[5])(variable[5]) /*AVarFormExpr::variable*/;
+  variable[4] = CALL_typing___VariableContext___stype(variable[4])(variable[4], variable[5]) /*VariableContext::stype*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL(variable[4],COLOR_typing___AReassignFormExpr___do_lvalue_typing))(variable[4],  variable[1] /*v*/,  variable[3] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
-  return_label49: while(false);
+  CALL_typing___AReassignFormExpr___do_lvalue_typing(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
+  return_label51: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___PAssignOp___method_name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 550, LOCATE_typing___PAssignOp___method_name};
+  struct trace_t trace = {NULL, NULL, 564, LOCATE_typing___PAssignOp___method_name};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 550);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 564);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t typing___APlusAssignOp___method_name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 553, LOCATE_typing___APlusAssignOp___method_name};
-  static val_t once_value_51; static int once_bool_51; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 567, LOCATE_typing___APlusAssignOp___method_name};
+  static val_t once_value_53; static int once_bool_53; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_51) variable[2] = once_value_51;
+  if (once_bool_53) variable[2] = once_value_53;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_51 = variable[2];
-    once_bool_51 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_53 = variable[2];
+    once_bool_53 = true;
   }
   variable[1] = variable[2];
-  goto return_label50;
-  return_label50: while(false);
+  goto return_label52;
+  return_label52: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AMinusAssignOp___method_name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 556, LOCATE_typing___AMinusAssignOp___method_name};
-  static val_t once_value_53; static int once_bool_53; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 570, LOCATE_typing___AMinusAssignOp___method_name};
+  static val_t once_value_55; static int once_bool_55; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_53) variable[2] = once_value_53;
+  if (once_bool_55) variable[2] = once_value_55;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_53 = variable[2];
-    once_bool_53 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_55 = variable[2];
+    once_bool_55 = true;
   }
   variable[1] = variable[2];
-  goto return_label52;
-  return_label52: while(false);
+  goto return_label54;
+  return_label54: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 void typing___ASelfExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 562, LOCATE_typing___ASelfExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 576, LOCATE_typing___ASelfExpr___after_typing};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1729,149 +1844,150 @@ void typing___ASelfExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
-  ((syntax_base___ASelfExpr___variable__eq_t)CALL(variable[3],COLOR_syntax_base___ASelfExpr___variable__eq))(variable[3], variable[4]) /*ASelfExpr::variable=*/;
+  variable[4] = CALL_typing___TypingVisitor___self_var( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::self_var*/;
+  CALL_syntax_base___ASelfExpr___variable__eq(variable[3])(variable[3], variable[4]) /*ASelfExpr::variable=*/;
   variable[3] = variable[0];
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[5] = variable[0];
-  variable[5] = ((syntax_base___ASelfExpr___variable_t)CALL(variable[5],COLOR_syntax_base___ASelfExpr___variable))(variable[5]) /*ASelfExpr::variable*/;
-  variable[4] = ((typing___VariableContext___stype_t)CALL(variable[4],COLOR_typing___VariableContext___stype))(variable[4], variable[5]) /*VariableContext::stype*/;
+  variable[5] = CALL_syntax_base___ASelfExpr___variable(variable[5])(variable[5]) /*ASelfExpr::variable*/;
+  variable[4] = CALL_typing___VariableContext___stype(variable[4])(variable[4], variable[5]) /*VariableContext::stype*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label54: while(false);
+  return_label56: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___ASelfExpr___is_self(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 568, LOCATE_typing___ASelfExpr___is_self};
+  struct trace_t trace = {NULL, NULL, 582, LOCATE_typing___ASelfExpr___is_self};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  TAG_Bool(true);
-  goto return_label55;
-  return_label55: while(false);
+  goto return_label57;
+  return_label57: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ASelfExpr___its_variable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 560, LOCATE_typing___ASelfExpr___its_variable};
+  struct trace_t trace = {NULL, NULL, 574, LOCATE_typing___ASelfExpr___its_variable};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((syntax_base___ASelfExpr___variable_t)CALL(variable[2],COLOR_syntax_base___ASelfExpr___variable))(variable[2]) /*ASelfExpr::variable*/;
+  variable[2] = CALL_syntax_base___ASelfExpr___variable(variable[2])(variable[2]) /*ASelfExpr::variable*/;
   variable[1] = variable[2];
-  goto return_label56;
-  return_label56: while(false);
+  goto return_label58;
+  return_label58: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AImplicitSelfExpr___is_implicit_self(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 572, LOCATE_typing___AImplicitSelfExpr___is_implicit_self};
+  struct trace_t trace = {NULL, NULL, 586, LOCATE_typing___AImplicitSelfExpr___is_implicit_self};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  TAG_Bool(true);
-  goto return_label57;
-  return_label57: while(false);
+  goto return_label59;
+  return_label59: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 void typing___AIfexprExpr___accept_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 576, LOCATE_typing___AIfexprExpr___accept_typing};
+  struct trace_t trace = {NULL, NULL, 590, LOCATE_typing___AIfexprExpr___accept_typing};
   val_t variable[16];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable[4])(variable[4]) /*AIfexprExpr::n_expr*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable[4])(variable[4]) /*AIfexprExpr::n_expr*/;
+  variable[4] = CALL_typing___PExpr___if_true_variable_ctx(variable[4])(variable[4]) /*PExpr::if_true_variable_ctx*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
-    variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
-    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
+    variable[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable[4])(variable[4]) /*AIfexprExpr::n_expr*/;
+    variable[4] = CALL_typing___PExpr___if_true_variable_ctx(variable[4])(variable[4]) /*PExpr::if_true_variable_ctx*/;
+    CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
   }
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfexprExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_then))(variable[4]) /*AIfexprExpr::n_then*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_then(variable[4])(variable[4]) /*AIfexprExpr::n_then*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfexprExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_else))(variable[4]) /*AIfexprExpr::n_else*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_else(variable[4])(variable[4]) /*AIfexprExpr::n_else*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfexprExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_expr))(variable[4]) /*AIfexprExpr::n_expr*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_expr(variable[4])(variable[4]) /*AIfexprExpr::n_expr*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIfexprExpr___n_then_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_then))(variable[4]) /*AIfexprExpr::n_then*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
+  variable[4] = CALL_parser_nodes___AIfexprExpr___n_then(variable[4])(variable[4]) /*AIfexprExpr::n_then*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
   variable[4] =  TAG_Bool(!UNTAG_Bool(variable[4]));
   if (!UNTAG_Bool(variable[4])) { /* or */
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AIfexprExpr___n_else_t)CALL(variable[4],COLOR_parser_nodes___AIfexprExpr___n_else))(variable[4]) /*AIfexprExpr::n_else*/;
-    variable[4] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
+    variable[4] = CALL_parser_nodes___AIfexprExpr___n_else(variable[4])(variable[4]) /*AIfexprExpr::n_else*/;
+    variable[4] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::check_expr*/;
     variable[4] =  TAG_Bool(!UNTAG_Bool(variable[4]));
   }
   if (UNTAG_Bool(variable[4])) { /*if*/
-    goto return_label58;
+    goto return_label60;
   }
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AIfexprExpr___n_then_t)CALL(variable[5],COLOR_parser_nodes___AIfexprExpr___n_then))(variable[5]) /*AIfexprExpr::n_then*/;
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
+  variable[5] = CALL_parser_nodes___AIfexprExpr___n_then(variable[5])(variable[5]) /*AIfexprExpr::n_then*/;
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AIfexprExpr___n_else_t)CALL(variable[6],COLOR_parser_nodes___AIfexprExpr___n_else))(variable[6]) /*AIfexprExpr::n_else*/;
-  variable[6] = ((typing___PExpr___stype_t)CALL(variable[6],COLOR_syntax_base___PExpr___stype))(variable[6]) /*PExpr::stype*/;
+  variable[6] = CALL_parser_nodes___AIfexprExpr___n_else(variable[6])(variable[6]) /*AIfexprExpr::n_else*/;
+  variable[6] = CALL_syntax_base___PExpr___stype(variable[6])(variable[6]) /*PExpr::stype*/;
   variable[5] = variable[6];
-  variable[6] = ((static_type___MMType_____l_t)CALL( variable[4] /*t*/,COLOR_static_type___MMType_____l))( variable[4] /*t*/,  variable[5] /*te*/) /*MMType::<*/;
+  variable[6] = CALL_static_type___MMType_____l( variable[4] /*t*/)( variable[4] /*t*/,  variable[5] /*te*/) /*MMType::<*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[4] =  variable[5] /*te*/ /*t=*/;
   } else { /*if*/
-    variable[6] = ((static_type___MMType_____l_t)CALL( variable[5] /*te*/,COLOR_static_type___MMType_____l))( variable[5] /*te*/,  variable[4] /*t*/) /*MMType::<*/;
+    variable[6] = CALL_static_type___MMType_____l( variable[5] /*te*/)( variable[5] /*te*/,  variable[4] /*t*/) /*MMType::<*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
       variable[6] = variable[0];
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] =  variable[5] /*te*/;
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is not a subtype of "), TAG_Int(21)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[4] /*t*/;
-      variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+      variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
-      goto return_label58;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+      goto return_label60;
     }
   }
   variable[6] = variable[0];
   ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ =  variable[4] /*t*/;
-  return_label58: while(false);
+  return_label60: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ABoolExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 604, LOCATE_typing___ABoolExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 618, LOCATE_typing___ABoolExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1879,14 +1995,14 @@ void typing___ABoolExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label59: while(false);
+  return_label61: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AOrExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 611, LOCATE_typing___AOrExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 625, LOCATE_typing___AOrExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1894,79 +2010,79 @@ void typing___AOrExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AOrExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AOrExpr___n_expr))(variable[3]) /*AOrExpr::n_expr*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[3] = CALL_parser_nodes___AOrExpr___n_expr(variable[3])(variable[3]) /*AOrExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AOrExpr___n_expr2_t)CALL(variable[3],COLOR_parser_nodes___AOrExpr___n_expr2))(variable[3]) /*AOrExpr::n_expr2*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[3] = CALL_parser_nodes___AOrExpr___n_expr2(variable[3])(variable[3]) /*AOrExpr::n_expr2*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label60: while(false);
+  return_label62: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AAndExpr___accept_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 620, LOCATE_typing___AAndExpr___accept_typing};
+  struct trace_t trace = {NULL, NULL, 634, LOCATE_typing___AAndExpr___accept_typing};
   val_t variable[6];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[4] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr(variable[4])(variable[4]) /*AAndExpr::n_expr*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr(variable[4])(variable[4]) /*AAndExpr::n_expr*/;
+  variable[4] = CALL_typing___PExpr___if_true_variable_ctx(variable[4])(variable[4]) /*PExpr::if_true_variable_ctx*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
-    variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
-    ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
+    variable[4] = CALL_parser_nodes___AAndExpr___n_expr(variable[4])(variable[4]) /*AAndExpr::n_expr*/;
+    variable[4] = CALL_typing___PExpr___if_true_variable_ctx(variable[4])(variable[4]) /*PExpr::if_true_variable_ctx*/;
+    CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::variable_ctx=*/;
   }
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[4]) /*AAndExpr::n_expr2*/;
-  ((typing___TypingVisitor___visit_t)CALL( variable[1] /*v*/,COLOR_parser_prod___Visitor___visit))( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable[4])(variable[4]) /*AAndExpr::n_expr2*/;
+  CALL_parser_prod___Visitor___visit( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*TypingVisitor::visit*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[4]) /*AAndExpr::n_expr2*/;
-  variable[4] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[4],COLOR_typing___PExpr___if_true_variable_ctx))(variable[4]) /*PExpr::if_true_variable_ctx*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable[4])(variable[4]) /*AAndExpr::n_expr2*/;
+  variable[4] = CALL_typing___PExpr___if_true_variable_ctx(variable[4])(variable[4]) /*PExpr::if_true_variable_ctx*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[5],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[5]) /*AAndExpr::n_expr2*/;
-    variable[5] = ((typing___PExpr___if_true_variable_ctx_t)CALL(variable[5],COLOR_typing___PExpr___if_true_variable_ctx))(variable[5]) /*PExpr::if_true_variable_ctx*/;
+    variable[5] = CALL_parser_nodes___AAndExpr___n_expr2(variable[5])(variable[5]) /*AAndExpr::n_expr2*/;
+    variable[5] = CALL_typing___PExpr___if_true_variable_ctx(variable[5])(variable[5]) /*PExpr::if_true_variable_ctx*/;
     ATTR_typing___PExpr____if_true_variable_ctx(variable[4]) /*PExpr::_if_true_variable_ctx*/ = variable[5];
   } else { /*if*/
     variable[4] = variable[0];
-    variable[5] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+    variable[5] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
     ATTR_typing___PExpr____if_true_variable_ctx(variable[4]) /*PExpr::_if_true_variable_ctx*/ = variable[5];
   }
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*old_var_ctx*/) /*TypingVisitor::variable_ctx=*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAndExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr))(variable[4]) /*AAndExpr::n_expr*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr(variable[4])(variable[4]) /*AAndExpr::n_expr*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAndExpr___n_expr2_t)CALL(variable[4],COLOR_parser_nodes___AAndExpr___n_expr2))(variable[4]) /*AAndExpr::n_expr2*/;
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[4] = CALL_parser_nodes___AAndExpr___n_expr2(variable[4])(variable[4]) /*AAndExpr::n_expr2*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[4] = variable[0];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
   ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/ = variable[5];
-  return_label61: while(false);
+  return_label63: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ANotExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 643, LOCATE_typing___ANotExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 657, LOCATE_typing___ANotExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1974,18 +2090,18 @@ void typing___ANotExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ANotExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ANotExpr___n_expr))(variable[3]) /*ANotExpr::n_expr*/;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[3] = CALL_parser_nodes___ANotExpr___n_expr(variable[3])(variable[3]) /*ANotExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label62: while(false);
+  return_label64: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AIntExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 651, LOCATE_typing___AIntExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 665, LOCATE_typing___AIntExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -1993,14 +2109,14 @@ void typing___AIntExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_int_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_int))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_int*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_int( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_int*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label63: while(false);
+  return_label65: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AFloatExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 659, LOCATE_typing___AFloatExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 673, LOCATE_typing___AFloatExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2008,14 +2124,14 @@ void typing___AFloatExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_float_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_float))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_float*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_float( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_float*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label64: while(false);
+  return_label66: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ACharExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 666, LOCATE_typing___ACharExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 680, LOCATE_typing___ACharExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2023,44 +2139,217 @@ void typing___ACharExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_char_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_char))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_char*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_char( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_char*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label65: while(false);
+  return_label67: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AStringFormExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 673, LOCATE_typing___AStringFormExpr___after_typing};
-  val_t variable[5];
+  struct trace_t trace = {NULL, NULL, 688, LOCATE_typing___AStringFormExpr___after_typing};
+  static val_t once_value_69; static int once_bool_69; /* Once value for variable[5]*/
+  val_t variable[11];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_string( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label66: while(false);
+  variable[3] = variable[0];
+  variable[4] = variable[0];
+  variable[4] = ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  if (once_bool_69) variable[5] = once_value_69;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("with_native"), TAG_Int(11)); /*new String*/
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
+    once_value_69 = variable[5];
+    once_bool_69 = true;
+  }
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[4])(variable[4], variable[5]) /*MMLocalClass::select_method*/;
+  ATTR_typing___AStringFormExpr____meth_with_native(variable[3]) /*AStringFormExpr::_meth_with_native*/ = variable[4];
+  variable[3] = variable[0];
+  variable[3] = ATTR_typing___AStringFormExpr____meth_with_native(variable[3]) /*AStringFormExpr::_meth_with_native*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[3])) { /*if*/
+    variable[3] = variable[0];
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable[6] = variable[5];
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
+    variable[7] = variable[0];
+    variable[7] = ATTR_typing___PExpr____stype(variable[7]) /*PExpr::_stype*/;
+    variable[8] = variable[7];
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_native method."), TAG_Int(32)); /*new String*/
+    variable[10] = variable[9];
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+  }
+  return_label68: while(false);
   tracehead = trace.prev;
   return;
 }
+val_t typing___AStringFormExpr___meth_with_native(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 687, LOCATE_typing___AStringFormExpr___meth_with_native};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___AStringFormExpr____meth_with_native( self) /*AStringFormExpr::_meth_with_native*/;
+}
 void typing___ASuperstringExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 680, LOCATE_typing___ASuperstringExpr___after_typing};
-  val_t variable[5];
+  struct trace_t trace = {NULL, NULL, 701, LOCATE_typing___ASuperstringExpr___after_typing};
+  static val_t once_value_71; static int once_bool_71; /* Once value for variable[5]*/
+  static val_t once_value_72; static int once_bool_72; /* Once value for variable[5]*/
+  static val_t once_value_73; static int once_bool_73; /* Once value for variable[5]*/
+  val_t variable[11];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_string_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_string))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_string( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_string*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label67: while(false);
+  variable[3] = variable[0];
+  variable[4] = variable[0];
+  variable[4] = ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/, variable[4]) /*AbsSyntaxVisitor::type_array*/;
+  ATTR_typing___ASuperstringExpr____atype(variable[3]) /*ASuperstringExpr::_atype*/ = variable[4];
+  variable[3] = variable[0];
+  variable[4] = variable[0];
+  variable[4] = ATTR_typing___ASuperstringExpr____atype(variable[4]) /*ASuperstringExpr::_atype*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  if (once_bool_71) variable[5] = once_value_71;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)); /*new String*/
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
+    once_value_71 = variable[5];
+    once_bool_71 = true;
+  }
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[4])(variable[4], variable[5]) /*MMLocalClass::select_method*/;
+  ATTR_typing___ASuperstringExpr____meth_with_capacity(variable[3]) /*ASuperstringExpr::_meth_with_capacity*/ = variable[4];
+  variable[3] = variable[0];
+  variable[3] = ATTR_typing___ASuperstringExpr____meth_with_capacity(variable[3]) /*ASuperstringExpr::_meth_with_capacity*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[3])) { /*if*/
+    variable[3] = variable[0];
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable[6] = variable[5];
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
+    variable[7] = variable[0];
+    variable[7] = ATTR_typing___ASuperstringExpr____atype(variable[7]) /*ASuperstringExpr::_atype*/;
+    variable[8] = variable[7];
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_capacity method."), TAG_Int(34)); /*new String*/
+    variable[10] = variable[9];
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+  }
+  variable[3] = variable[0];
+  variable[4] = variable[0];
+  variable[4] = ATTR_typing___ASuperstringExpr____atype(variable[4]) /*ASuperstringExpr::_atype*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  if (once_bool_72) variable[5] = once_value_72;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)); /*new String*/
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
+    once_value_72 = variable[5];
+    once_bool_72 = true;
+  }
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[4])(variable[4], variable[5]) /*MMLocalClass::select_method*/;
+  ATTR_typing___ASuperstringExpr____meth_add(variable[3]) /*ASuperstringExpr::_meth_add*/ = variable[4];
+  variable[3] = variable[0];
+  variable[3] = ATTR_typing___ASuperstringExpr____meth_add(variable[3]) /*ASuperstringExpr::_meth_add*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[3])) { /*if*/
+    variable[3] = variable[0];
+    variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable[6] = variable[5];
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
+    variable[7] = variable[0];
+    variable[7] = ATTR_typing___ASuperstringExpr____atype(variable[7]) /*ASuperstringExpr::_atype*/;
+    variable[8] = variable[7];
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
+    variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an add method."), TAG_Int(25)); /*new String*/
+    variable[10] = variable[9];
+    CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+    variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+  }
+  variable[3] = variable[0];
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_object( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_object*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  if (once_bool_73) variable[5] = once_value_73;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("to_s"), TAG_Int(4)); /*new String*/
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
+    once_value_73 = variable[5];
+    once_bool_73 = true;
+  }
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[4])(variable[4], variable[5]) /*MMLocalClass::select_method*/;
+  ATTR_typing___ASuperstringExpr____meth_to_s(variable[3]) /*ASuperstringExpr::_meth_to_s*/ = variable[4];
+  variable[3] = variable[0];
+  variable[3] = ATTR_typing___ASuperstringExpr____meth_to_s(variable[3]) /*ASuperstringExpr::_meth_to_s*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[3])) { /*if*/
+    variable[3] = variable[0];
+    variable[4] = NEW_String_string___String___with_native(BOX_NativeString("Object MUST have a to_s method."), TAG_Int(31)); /*new String*/
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+  }
+  return_label70: while(false);
   tracehead = trace.prev;
   return;
 }
+val_t typing___ASuperstringExpr___meth_with_capacity(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 697, LOCATE_typing___ASuperstringExpr___meth_with_capacity};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___ASuperstringExpr____meth_with_capacity( self) /*ASuperstringExpr::_meth_with_capacity*/;
+}
+val_t typing___ASuperstringExpr___meth_add(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 698, LOCATE_typing___ASuperstringExpr___meth_add};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___ASuperstringExpr____meth_add( self) /*ASuperstringExpr::_meth_add*/;
+}
+val_t typing___ASuperstringExpr___meth_to_s(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 699, LOCATE_typing___ASuperstringExpr___meth_to_s};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___ASuperstringExpr____meth_to_s( self) /*ASuperstringExpr::_meth_to_s*/;
+}
+val_t typing___ASuperstringExpr___atype(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 700, LOCATE_typing___ASuperstringExpr___atype};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___ASuperstringExpr____atype( self) /*ASuperstringExpr::_atype*/;
+}
 void typing___ANullExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 687, LOCATE_typing___ANullExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 715, LOCATE_typing___ANullExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2068,14 +2357,14 @@ void typing___ANullExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___type_none_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_none))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_none*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___type_none( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_none*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label68: while(false);
+  return_label74: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AArrayExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 696, LOCATE_typing___AArrayExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 725, LOCATE_typing___AArrayExpr___after_typing};
   val_t variable[11];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2084,22 +2373,22 @@ void typing___AArrayExpr___after_typing(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] =  NIT_NULL /*null*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AArrayExpr___n_exprs_t)CALL(variable[4],COLOR_parser_nodes___AArrayExpr___n_exprs))(variable[4]) /*AArrayExpr::n_exprs*/;
-  variable[4] = ((list___List___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*List::iterator*/;
+  variable[4] = CALL_parser_nodes___AArrayExpr___n_exprs(variable[4])(variable[4]) /*AArrayExpr::n_exprs*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((list___ListIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ListIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((list___ListIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ListIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/;
     variable[6] = variable[5];
-    variable[8] = ((typing___PExpr___stype_t)CALL( variable[6] /*n*/,COLOR_syntax_base___PExpr___stype))( variable[6] /*n*/) /*PExpr::stype*/;
+    variable[8] = CALL_syntax_base___PExpr___stype( variable[6] /*n*/)( variable[6] /*n*/) /*PExpr::stype*/;
     variable[7] = variable[8];
-    variable[8] = TAG_Bool(( variable[3] /*stype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*stype*/,COLOR_kernel___Object_____eqeq))( variable[3] /*stype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[8] = TAG_Bool(( variable[3] /*stype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*stype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*stype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*stype*/)( variable[3] /*stype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
     variable[9] = variable[8];
     if (!UNTAG_Bool(variable[9])) { /* or */
-      variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*ntype*/ ==  NIT_NULL /*null*/) || (( variable[7] /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[7] /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[7] /*ntype*/,COLOR_kernel___Object_____eqeq))( variable[7] /*ntype*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+      variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[7] /*ntype*/ ==  NIT_NULL /*null*/) || (( variable[7] /*ntype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[7] /*ntype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[7] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[7] /*ntype*/)( variable[7] /*ntype*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
       variable[10] = variable[9];
       if (UNTAG_Bool(variable[10])) { /* and */
-        variable[10] = ((static_type___MMType_____l_t)CALL( variable[3] /*stype*/,COLOR_static_type___MMType_____l))( variable[3] /*stype*/,  variable[7] /*ntype*/) /*MMType::<*/;
+        variable[10] = CALL_static_type___MMType_____l( variable[3] /*stype*/)( variable[3] /*stype*/,  variable[7] /*ntype*/) /*MMType::<*/;
       }
       variable[9] = variable[10];
     }
@@ -2107,46 +2396,133 @@ void typing___AArrayExpr___after_typing(val_t  self, val_t  param0) {
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[3] =  variable[7] /*ntype*/ /*stype=*/;
     }
-    continue_70: while(0);
-    ((list___ListIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ListIterator::next*/;
+    continue_76: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/;
   }
-  break_70: while(0);
+  break_76: while(0);
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AArrayExpr___n_exprs_t)CALL(variable[4],COLOR_parser_nodes___AArrayExpr___n_exprs))(variable[4]) /*AArrayExpr::n_exprs*/;
-  variable[4] = ((list___List___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*List::iterator*/;
+  variable[4] = CALL_parser_nodes___AArrayExpr___n_exprs(variable[4])(variable[4]) /*AArrayExpr::n_exprs*/;
+  variable[4] = CALL_abstract_collection___Collection___iterator(variable[4])(variable[4]) /*List::iterator*/;
   while (true) { /*for*/
-    variable[5] = ((list___ListIterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*ListIterator::is_ok*/;
+    variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*ListIterator::is_ok*/;
     if (!UNTAG_Bool(variable[5])) break; /*for*/
-    variable[5] = ((list___ListIterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(variable[4]) /*ListIterator::item*/;
+    variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*ListIterator::item*/;
     variable[6] = variable[5];
-    ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/,  variable[6] /*n*/,  variable[3] /*stype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
-    continue_71: while(0);
-    ((list___ListIterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*ListIterator::next*/;
+    CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*n*/,  variable[3] /*stype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+    continue_77: while(0);
+    CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*ListIterator::next*/;
   }
-  break_71: while(0);
+  break_77: while(0);
   variable[4] = variable[0];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable[1] /*v*/,  variable[3] /*stype*/) /*AbsSyntaxVisitor::type_array*/;
-  ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/ = variable[5];
-  return_label69: while(false);
+  CALL_typing___AArrayExpr___do_typing(variable[4])(variable[4],  variable[1] /*v*/,  variable[3] /*stype*/) /*AArrayExpr::do_typing*/;
+  return_label75: while(false);
   tracehead = trace.prev;
   return;
 }
-void typing___AArrayExpr___stype__eq(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 694, LOCATE_typing___AArrayExpr___stype__eq};
-  val_t variable[4];
+val_t typing___AArrayExpr___meth_with_capacity(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 722, LOCATE_typing___AArrayExpr___meth_with_capacity};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___AArrayExpr____meth_with_capacity( self) /*AArrayExpr::_meth_with_capacity*/;
+}
+val_t typing___AArrayExpr___meth_add(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 723, LOCATE_typing___AArrayExpr___meth_add};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___AArrayExpr____meth_add( self) /*AArrayExpr::_meth_add*/;
+}
+void typing___AArrayExpr___do_typing(val_t  self, val_t  param0, val_t  param1) {
+  struct trace_t trace = {NULL, NULL, 740, LOCATE_typing___AArrayExpr___do_typing};
+  static val_t once_value_79; static int once_bool_79; /* Once value for variable[6]*/
+  static val_t once_value_80; static int once_bool_80; /* Once value for variable[6]*/
+  val_t variable[12];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = variable[0];
-  ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ =  variable[1] /*t*/;
-  return_label72: while(false);
+  variable[2] =  param1;
+  variable[4] = variable[0];
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___type_array( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*element_type*/) /*AbsSyntaxVisitor::type_array*/;
+  ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/ = variable[5];
+  variable[4] = variable[0];
+  variable[5] = variable[0];
+  variable[5] = ATTR_typing___PExpr____stype(variable[5]) /*PExpr::_stype*/;
+  variable[5] = CALL_static_type___MMType___local_class(variable[5])(variable[5]) /*MMType::local_class*/;
+  if (once_bool_79) variable[6] = once_value_79;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("with_capacity"), TAG_Int(13)); /*new String*/
+    variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
+    once_value_79 = variable[6];
+    once_bool_79 = true;
+  }
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[5])(variable[5], variable[6]) /*MMLocalClass::select_method*/;
+  ATTR_typing___AArrayExpr____meth_with_capacity(variable[4]) /*AArrayExpr::_meth_with_capacity*/ = variable[5];
+  variable[4] = variable[0];
+  variable[4] = ATTR_typing___AArrayExpr____meth_with_capacity(variable[4]) /*AArrayExpr::_meth_with_capacity*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[4])) { /*if*/
+    variable[4] = variable[0];
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable[7] = variable[6];
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+    variable[8] = variable[0];
+    variable[8] = ATTR_typing___PExpr____stype(variable[8]) /*PExpr::_stype*/;
+    variable[9] = variable[8];
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have a with_capacity method."), TAG_Int(34)); /*new String*/
+    variable[11] = variable[10];
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+  }
+  variable[4] = variable[0];
+  variable[5] = variable[0];
+  variable[5] = ATTR_typing___PExpr____stype(variable[5]) /*PExpr::_stype*/;
+  variable[5] = CALL_static_type___MMType___local_class(variable[5])(variable[5]) /*MMType::local_class*/;
+  if (once_bool_80) variable[6] = once_value_80;
+  else {
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString("add"), TAG_Int(3)); /*new String*/
+    variable[6] = CALL_symbol___String___to_symbol(variable[6])(variable[6]) /*String::to_symbol*/;
+    once_value_80 = variable[6];
+    once_bool_80 = true;
+  }
+  variable[5] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[5])(variable[5], variable[6]) /*MMLocalClass::select_method*/;
+  ATTR_typing___AArrayExpr____meth_add(variable[4]) /*AArrayExpr::_meth_add*/ = variable[5];
+  variable[4] = variable[0];
+  variable[4] = ATTR_typing___AArrayExpr____meth_add(variable[4]) /*AArrayExpr::_meth_add*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  if (UNTAG_Bool(variable[4])) { /*if*/
+    variable[4] = variable[0];
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
+    variable[6] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable[7] = variable[6];
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+    variable[8] = variable[0];
+    variable[8] = ATTR_typing___PExpr____stype(variable[8]) /*PExpr::_stype*/;
+    variable[9] = variable[8];
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
+    variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" MUST have an add method."), TAG_Int(25)); /*new String*/
+    variable[11] = variable[10];
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+  }
+  return_label78: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ARangeExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 713, LOCATE_typing___ARangeExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 753, LOCATE_typing___ARangeExpr___after_typing};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2154,287 +2530,355 @@ void typing___ARangeExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ARangeExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ARangeExpr___n_expr))(variable[4]) /*ARangeExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
+  variable[4] = CALL_parser_nodes___ARangeExpr___n_expr(variable[4])(variable[4]) /*ARangeExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ARangeExpr___n_expr2_t)CALL(variable[5],COLOR_parser_nodes___ARangeExpr___n_expr2))(variable[5]) /*ARangeExpr::n_expr2*/;
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
+  variable[5] = CALL_parser_nodes___ARangeExpr___n_expr2(variable[5])(variable[5]) /*ARangeExpr::n_expr2*/;
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
   variable[4] = variable[5];
-  variable[5] = TAG_Bool(( variable[3] /*ntype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))( variable[3] /*ntype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = TAG_Bool(( variable[3] /*ntype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*ntype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*ntype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*ntype*/)( variable[3] /*ntype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[6] = variable[5];
   if (!UNTAG_Bool(variable[6])) { /* or */
-    variable[6] = TAG_Bool(( variable[3] /*ntype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*ntype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*ntype*/,COLOR_kernel___Object_____eqeq))( variable[3] /*ntype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+    variable[6] = TAG_Bool(( variable[3] /*ntype*/ ==  NIT_NULL /*null*/) || (( variable[3] /*ntype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*ntype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*ntype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*ntype*/)( variable[3] /*ntype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   }
   variable[5] = variable[6];
   if (UNTAG_Bool(variable[5])) { /*if*/
-    goto return_label73;
+    goto return_label81;
   }
-  variable[5] = ((static_type___MMType_____l_t)CALL( variable[3] /*ntype*/,COLOR_static_type___MMType_____l))( variable[3] /*ntype*/,  variable[4] /*ntype2*/) /*MMType::<*/;
+  variable[5] = CALL_static_type___MMType_____l( variable[3] /*ntype*/)( variable[3] /*ntype*/,  variable[4] /*ntype2*/) /*MMType::<*/;
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[3] =  variable[4] /*ntype2*/ /*ntype=*/;
   } else { /*if*/
-    variable[5] = ((static_type___MMType_____l_t)CALL( variable[4] /*ntype2*/,COLOR_static_type___MMType_____l))( variable[4] /*ntype2*/,  variable[3] /*ntype*/) /*MMType::<*/;
+    variable[5] = CALL_static_type___MMType_____l( variable[4] /*ntype2*/)( variable[4] /*ntype2*/,  variable[3] /*ntype*/) /*MMType::<*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
       variable[5] = variable[0];
-      variable[6] = NEW_String_string___String___init(); /*new String*/
+      variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Type error: "), TAG_Int(12)); /*new String*/
       variable[8] = variable[7];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
       variable[9] =  variable[3] /*ntype*/;
-      variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" incompatible with "), TAG_Int(19)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
       variable[12] =  variable[4] /*ntype2*/;
-      variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+      variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
-      goto return_label73;
+      CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
+      variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+      goto return_label81;
     }
   }
-  variable[6] = ((syntax_base___AbsSyntaxVisitor___type_discrete_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_discrete))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_discrete*/;
+  variable[6] = CALL_syntax_base___AbsSyntaxVisitor___type_discrete( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_discrete*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ARangeExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ARangeExpr___n_expr))(variable[6]) /*ARangeExpr::n_expr*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[6],  variable[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[6] = CALL_parser_nodes___ARangeExpr___n_expr(variable[6])(variable[6]) /*ARangeExpr::n_expr*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6],  variable[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ARangeExpr___n_expr2_t)CALL(variable[6],COLOR_parser_nodes___ARangeExpr___n_expr2))(variable[6]) /*ARangeExpr::n_expr2*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[6],  variable[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+  variable[6] = CALL_parser_nodes___ARangeExpr___n_expr2(variable[6])(variable[6]) /*ARangeExpr::n_expr2*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[6],  variable[5] /*dtype*/) /*AbsSyntaxVisitor::check_conform_expr*/;
   variable[6] = variable[0];
-  variable[7] = ((syntax_base___AbsSyntaxVisitor___type_range_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_range))( variable[1] /*v*/,  variable[3] /*ntype*/) /*AbsSyntaxVisitor::type_range*/;
+  variable[7] = CALL_syntax_base___AbsSyntaxVisitor___type_range( variable[1] /*v*/)( variable[1] /*v*/,  variable[3] /*ntype*/) /*AbsSyntaxVisitor::type_range*/;
   ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ = variable[7];
-  return_label73: while(false);
+  return_label81: while(false);
+  tracehead = trace.prev;
+  return;
+}
+val_t typing___ARangeExpr___meth_init(val_t  self) {
+  struct trace_t trace = {NULL, NULL, 752, LOCATE_typing___ARangeExpr___meth_init};
+  val_t *variable = NULL;
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  tracehead = trace.prev;
+  return ATTR_typing___ARangeExpr____meth_init( self) /*ARangeExpr::_meth_init*/;
+}
+void typing___ACrangeExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 774, LOCATE_typing___ACrangeExpr___after_typing};
+  static val_t once_value_83; static int once_bool_83; /* Once value for variable[5]*/
+  val_t variable[6];
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  variable[0] =  self;
+  variable[1] =  param0;
+  CALL_SUPER_typing___ACrangeExpr___after_typing(variable[0])(variable[0], variable[1]) /*super ACrangeExpr::after_typing*/;
+  variable[3] = variable[0];
+  variable[4] = variable[0];
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  if (once_bool_83) variable[5] = once_value_83;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
+    once_value_83 = variable[5];
+    once_bool_83 = true;
+  }
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[4])(variable[4], variable[5]) /*MMLocalClass::select_method*/;
+  ATTR_typing___ARangeExpr____meth_init(variable[3]) /*ARangeExpr::_meth_init*/ = variable[4];
+  return_label82: while(false);
+  tracehead = trace.prev;
+  return;
+}
+void typing___AOrangeExpr___after_typing(val_t  self, val_t  param0) {
+  struct trace_t trace = {NULL, NULL, 781, LOCATE_typing___AOrangeExpr___after_typing};
+  static val_t once_value_85; static int once_bool_85; /* Once value for variable[5]*/
+  val_t variable[6];
+  void **closurevariable = NULL;
+  trace.prev = tracehead; tracehead = &trace;
+  trace.file = LOCATE_typing;
+  variable[0] =  self;
+  variable[1] =  param0;
+  CALL_SUPER_typing___AOrangeExpr___after_typing(variable[0])(variable[0], variable[1]) /*super AOrangeExpr::after_typing*/;
+  variable[3] = variable[0];
+  variable[4] = variable[0];
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
+  variable[4] = CALL_static_type___MMType___local_class(variable[4])(variable[4]) /*MMType::local_class*/;
+  if (once_bool_85) variable[5] = once_value_85;
+  else {
+    variable[5] = NEW_String_string___String___with_native(BOX_NativeString("without_last"), TAG_Int(12)); /*new String*/
+    variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
+    once_value_85 = variable[5];
+    once_bool_85 = true;
+  }
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[4])(variable[4], variable[5]) /*MMLocalClass::select_method*/;
+  ATTR_typing___ARangeExpr____meth_init(variable[3]) /*ARangeExpr::_meth_init*/ = variable[4];
+  return_label84: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ASuperExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 737, LOCATE_typing___ASuperExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 793, LOCATE_typing___ASuperExpr___after_typing};
   val_t variable[19];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-  variable[4] = ((abstractmetamodel___MMLocalProperty___prhe_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___prhe))(variable[4]) /*MMLocalProperty::prhe*/;
-  variable[4] = ((partial_order___PartialOrderElement___direct_greaters_t)CALL(variable[4],COLOR_partial_order___PartialOrderElement___direct_greaters))(variable[4]) /*PartialOrderElement::direct_greaters*/;
+  variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___prhe(variable[4])(variable[4]) /*MMLocalProperty::prhe*/;
+  variable[4] = CALL_partial_order___PartialOrderElement___direct_greaters(variable[4])(variable[4]) /*PartialOrderElement::direct_greaters*/;
   variable[3] = variable[4];
-  variable[4] = ((array___AbstractArray___is_empty_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable[3] /*precs*/) /*AbstractArray::is_empty*/;
+  variable[4] = CALL_abstract_collection___Collection___is_empty( variable[3] /*precs*/)( variable[3] /*precs*/) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
-    variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-    ((abstractmetamodel___MMLocalProperty___need_super__eq_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___need_super__eq))(variable[4],  TAG_Bool(true)) /*MMLocalProperty::need_super=*/;
+    variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+    CALL_abstractmetamodel___MMLocalProperty___need_super__eq(variable[4])(variable[4],  TAG_Bool(true)) /*MMLocalProperty::need_super=*/;
   } else { /*if*/
-    variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-    variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
-    variable[4] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[4]) /*MMGlobalProperty::is_init*/;
+    variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable[4])(variable[4]) /*MMLocalProperty::global*/;
+    variable[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[4])(variable[4]) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool(variable[4])) { /*if*/
-      variable[5] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-      variable[6] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-      variable[6] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[6]) /*MMLocalProperty::name*/;
-      variable[5] = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable[5], variable[6]) /*MMLocalClass::super_methods_named*/;
+      variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+      variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+      variable[6] = CALL_abstractmetamodel___MMLocalProperty___name(variable[6])(variable[6]) /*MMLocalProperty::name*/;
+      variable[5] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable[5])(variable[5], variable[6]) /*MMLocalClass::super_methods_named*/;
       variable[4] = variable[5];
-      variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*base_precs*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*base_precs*/) /*AbstractArray::iterator*/;
+      variable[5] = CALL_abstract_collection___Collection___iterator( variable[4] /*base_precs*/)( variable[4] /*base_precs*/) /*AbstractArray::iterator*/;
       while (true) { /*for*/
-        variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+        variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
         if (!UNTAG_Bool(variable[6])) break; /*for*/
-        variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+        variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
         variable[7] = variable[6];
-        variable[8] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[7] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[7] /*p*/) /*MMLocalProperty::global*/;
-        variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[8]) /*MMGlobalProperty::is_init*/;
+        variable[8] = CALL_abstractmetamodel___MMLocalProperty___global( variable[7] /*p*/)( variable[7] /*p*/) /*MMLocalProperty::global*/;
+        variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[8])(variable[8]) /*MMGlobalProperty::is_init*/;
         if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
           variable[8] = variable[0];
-          variable[9] = NEW_String_string___String___init(); /*new String*/
+          variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
           variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
           variable[11] = variable[10];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
-          variable[12] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL( variable[7] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___local_class))( variable[7] /*p*/) /*MMLocalProperty::local_class*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
+          variable[12] = CALL_abstractmetamodel___MMLocalProperty___local_class( variable[7] /*p*/)( variable[7] /*p*/) /*MMLocalProperty::local_class*/;
           variable[13] = variable[12];
-          variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[13]) /*String::append*/;
+          variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[13]) /*AbstractArray::add*/;
           variable[14] = NEW_String_string___String___with_native(BOX_NativeString("::"), TAG_Int(2)); /*new String*/
           variable[15] = variable[14];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[15]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[15]) /*AbstractArray::add*/;
           variable[16] =  variable[7] /*p*/;
-          variable[16] = ((string___String___to_s_t)CALL(variable[16],COLOR_string___Object___to_s))(variable[16]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+          variable[16] = CALL_string___Object___to_s(variable[16])(variable[16]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
           variable[17] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
           variable[18] = variable[17];
-          ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+          variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
         } else { /*if*/
-          variable[8] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-          variable[9] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[7] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[7] /*p*/) /*MMLocalProperty::global*/;
-          variable[8] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[8], variable[9]) /*MMLocalClass::[]*/;
-          ((array___AbstractArray___add_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*precs*/, variable[8]) /*AbstractArray::add*/;
+          variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+          variable[9] = CALL_abstractmetamodel___MMLocalProperty___global( variable[7] /*p*/)( variable[7] /*p*/) /*MMLocalProperty::global*/;
+          variable[8] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[8])(variable[8], variable[9]) /*MMLocalClass::[]*/;
+          CALL_abstract_collection___SimpleCollection___add( variable[3] /*precs*/)( variable[3] /*precs*/, variable[8]) /*AbstractArray::add*/;
         }
-        continue_75: while(0);
-        ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+        continue_87: while(0);
+        CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
       }
-      break_75: while(0);
-      variable[5] = ((array___AbstractArray___is_empty_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___is_empty))( variable[3] /*precs*/) /*AbstractArray::is_empty*/;
+      break_87: while(0);
+      variable[5] = CALL_abstract_collection___Collection___is_empty( variable[3] /*precs*/)( variable[3] /*precs*/) /*AbstractArray::is_empty*/;
       if (UNTAG_Bool(variable[5])) { /*if*/
         variable[5] = variable[0];
-        variable[6] = NEW_String_string___String___init(); /*new String*/
+        variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: No contructor named "), TAG_Int(27)); /*new String*/
         variable[8] = variable[7];
-        ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-        variable[9] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-        variable[9] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[9]) /*MMLocalProperty::name*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+        variable[9] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+        variable[9] = CALL_abstractmetamodel___MMLocalProperty___name(variable[9])(variable[9]) /*MMLocalProperty::name*/;
         variable[10] = variable[9];
-        variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+        variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
         variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses."), TAG_Int(17)); /*new String*/
         variable[12] = variable[11];
-        ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
-        goto return_label74;
+        CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+        variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+        goto return_label86;
       } else { /*if*/
-        variable[5] = ((array___AbstractArray___length_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___length))( variable[3] /*precs*/) /*AbstractArray::length*/;
+        variable[5] = CALL_abstract_collection___Collection___length( variable[3] /*precs*/)( variable[3] /*precs*/) /*AbstractArray::length*/;
         variable[5] = TAG_Bool(UNTAG_Int(variable[5])>UNTAG_Int( TAG_Int(1)));
         if (UNTAG_Bool(variable[5])) { /*if*/
           variable[5] = variable[0];
-          variable[6] = NEW_String_string___String___init(); /*new String*/
+          variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
           variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: Conflicting contructors named "), TAG_Int(37)); /*new String*/
           variable[8] = variable[7];
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-          variable[9] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-          variable[9] = ((abstractmetamodel___MMLocalProperty___name_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalProperty___name))(variable[9]) /*MMLocalProperty::name*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+          variable[9] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+          variable[9] = CALL_abstractmetamodel___MMLocalProperty___name(variable[9])(variable[9]) /*MMLocalProperty::name*/;
           variable[10] = variable[9];
-          variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+          variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
           variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" in superclasses: "), TAG_Int(18)); /*new String*/
           variable[12] = variable[11];
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
           variable[13] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-          variable[13] = ((string___Collection___join_t)CALL( variable[3] /*precs*/,COLOR_string___Collection___join))( variable[3] /*precs*/, variable[13]) /*Collection::join*/;
+          variable[13] = CALL_string___Collection___join( variable[3] /*precs*/)( variable[3] /*precs*/, variable[13]) /*Collection::join*/;
           variable[14] = variable[13];
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
           variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
           variable[16] = variable[15];
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
-          goto return_label74;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
+          variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+          goto return_label86;
         }
       }
-      variable[6] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[4] /*base_precs*/,COLOR_abstract_collection___Collection___first))( variable[4] /*base_precs*/) /*IndexedCollection::first*/;
+      variable[6] = CALL_abstract_collection___Collection___first( variable[4] /*base_precs*/)( variable[4] /*base_precs*/) /*IndexedCollection::first*/;
       variable[5] = variable[6];
       variable[6] = TAG_Bool(( variable[5] /*p*/==NIT_NULL) || VAL_ISA( variable[5] /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
-      if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 759); nit_exit(1);}
+      if (!UNTAG_Bool(variable[6])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 815); nit_exit(1);}
       variable[6] = variable[0];
       ATTR_typing___ASuperExpr____init_in_superclass(variable[6]) /*ASuperExpr::_init_in_superclass*/ =  variable[5] /*p*/;
       variable[6] = variable[0];
-      ((typing___ASuperInitCall___register_super_init_call_t)CALL(variable[6],COLOR_typing___ASuperInitCall___register_super_init_call))(variable[6],  variable[1] /*v*/,  variable[5] /*p*/) /*ASuperInitCall::register_super_init_call*/;
+      CALL_typing___ASuperInitCall___register_super_init_call(variable[6])(variable[6],  variable[1] /*v*/,  variable[5] /*p*/) /*ASuperInitCall::register_super_init_call*/;
       variable[6] = variable[0];
-      variable[6] = ((parser_nodes___ASuperExpr___n_args_t)CALL(variable[6],COLOR_parser_nodes___ASuperExpr___n_args))(variable[6]) /*ASuperExpr::n_args*/;
-      variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
+      variable[6] = CALL_parser_nodes___ASuperExpr___n_args(variable[6])(variable[6]) /*ASuperExpr::n_args*/;
+      variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
       variable[6] = TAG_Bool(UNTAG_Int(variable[6])>UNTAG_Int( TAG_Int(0)));
       if (UNTAG_Bool(variable[6])) { /*if*/
         variable[7] = variable[0];
-        variable[8] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
-        variable[8] = ((syntax_base___Variable___stype_t)CALL(variable[8],COLOR_syntax_base___Variable___stype))(variable[8]) /*Variable::stype*/;
-        variable[7] = ((typing___AAbsSendExpr___get_signature_t)CALL(variable[7],COLOR_typing___AAbsSendExpr___get_signature))(variable[7],  variable[1] /*v*/, variable[8],  variable[5] /*p*/,  TAG_Bool(true)) /*AAbsSendExpr::get_signature*/;
+        variable[8] = CALL_typing___TypingVisitor___self_var( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::self_var*/;
+        variable[8] = CALL_syntax_base___Variable___stype(variable[8])(variable[8]) /*Variable::stype*/;
+        variable[7] = CALL_typing___AAbsSendExpr___get_signature(variable[7])(variable[7],  variable[1] /*v*/, variable[8],  variable[5] /*p*/,  TAG_Bool(true)) /*AAbsSendExpr::get_signature*/;
         variable[6] = variable[7];
         variable[7] = variable[0];
         variable[8] = variable[0];
-        variable[9] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[5] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[5] /*p*/) /*MMLocalProperty::name*/;
+        variable[9] = CALL_abstractmetamodel___MMLocalProperty___name( variable[5] /*p*/)( variable[5] /*p*/) /*MMLocalProperty::name*/;
         variable[10] = variable[0];
-        variable[10] = ((parser_nodes___ASuperExpr___n_args_t)CALL(variable[10],COLOR_parser_nodes___ASuperExpr___n_args))(variable[10]) /*ASuperExpr::n_args*/;
-        variable[10] = ((array___Collection___to_a_t)CALL(variable[10],COLOR_array___Collection___to_a))(variable[10]) /*Collection::to_a*/;
-        variable[8] = ((typing___AAbsSendExpr___process_signature_t)CALL(variable[8],COLOR_typing___AAbsSendExpr___process_signature))(variable[8],  variable[1] /*v*/,  variable[6] /*signature*/, variable[9], variable[10]) /*AAbsSendExpr::process_signature*/;
+        variable[10] = CALL_parser_nodes___ASuperExpr___n_args(variable[10])(variable[10]) /*ASuperExpr::n_args*/;
+        variable[10] = CALL_array___Collection___to_a(variable[10])(variable[10]) /*Collection::to_a*/;
+        variable[8] = CALL_typing___AAbsSendExpr___process_signature(variable[8])(variable[8],  variable[1] /*v*/,  variable[6] /*signature*/, variable[9], variable[10]) /*AAbsSendExpr::process_signature*/;
         ATTR_typing___AAbsSendExpr____arguments(variable[7]) /*AAbsSendExpr::_arguments*/ = variable[8];
       }
     } else { /*if*/
       variable[4] = variable[0];
-      variable[5] = NEW_String_string___String___init(); /*new String*/
+      variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: No super method to call for "), TAG_Int(35)); /*new String*/
       variable[7] = variable[6];
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
-      variable[8] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+      variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
       variable[9] = variable[8];
-      variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
-      goto return_label74;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+      variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+      goto return_label86;
     }
   }
-  variable[4] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___first))( variable[3] /*precs*/) /*IndexedCollection::first*/;
-  variable[5] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
-  variable[5] = ((syntax_base___Variable___stype_t)CALL(variable[5],COLOR_syntax_base___Variable___stype))(variable[5]) /*Variable::stype*/;
-  variable[4] = ((static_type___MMLocalProperty___signature_for_t)CALL(variable[4],COLOR_static_type___MMLocalProperty___signature_for))(variable[4], variable[5]) /*MMLocalProperty::signature_for*/;
-  variable[4] = ((static_type___MMSignature___return_type_t)CALL(variable[4],COLOR_static_type___MMSignature___return_type))(variable[4]) /*MMSignature::return_type*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = CALL_abstract_collection___Collection___first( variable[3] /*precs*/)( variable[3] /*precs*/) /*IndexedCollection::first*/;
+  variable[5] = CALL_typing___TypingVisitor___self_var( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::self_var*/;
+  variable[5] = CALL_syntax_base___Variable___stype(variable[5])(variable[5]) /*Variable::stype*/;
+  variable[4] = CALL_static_type___MMLocalProperty___signature_for(variable[4])(variable[4], variable[5]) /*MMLocalProperty::signature_for*/;
+  variable[4] = CALL_static_type___MMSignature___return_type(variable[4])(variable[4]) /*MMSignature::return_type*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[5] = NEW_Array_array___Array___init(); /*new Array[MMType]*/
     variable[4] = variable[5];
     variable[5] =  NIT_NULL /*null*/;
-    variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[3] /*precs*/,COLOR_abstract_collection___Collection___iterator))( variable[3] /*precs*/) /*AbstractArray::iterator*/;
+    variable[6] = CALL_abstract_collection___Collection___iterator( variable[3] /*precs*/)( variable[3] /*precs*/) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+      variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[7])) break; /*for*/
-      variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+      variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
       variable[8] = variable[7];
       variable[9] = TAG_Bool(( variable[8] /*prop*/==NIT_NULL) || VAL_ISA( variable[8] /*prop*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
-      if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 775); nit_exit(1);}
-      variable[10] = ((typing___TypingVisitor___self_var_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___self_var))( variable[1] /*v*/) /*TypingVisitor::self_var*/;
-      variable[10] = ((syntax_base___Variable___stype_t)CALL(variable[10],COLOR_syntax_base___Variable___stype))(variable[10]) /*Variable::stype*/;
-      variable[10] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[8] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[8] /*prop*/, variable[10]) /*MMLocalProperty::signature_for*/;
-      variable[10] = ((static_type___MMSignature___return_type_t)CALL(variable[10],COLOR_static_type___MMSignature___return_type))(variable[10]) /*MMSignature::return_type*/;
-      variable[11] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-      variable[10] = ((static_type___MMType___for_module_t)CALL(variable[10],COLOR_static_type___MMType___for_module))(variable[10], variable[11]) /*MMType::for_module*/;
-      variable[11] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-      variable[11] = ((static_type___MMLocalProperty___signature_t)CALL(variable[11],COLOR_static_type___MMLocalProperty___signature))(variable[11]) /*MMLocalProperty::signature*/;
-      variable[11] = ((static_type___MMSignature___recv_t)CALL(variable[11],COLOR_static_type___MMSignature___recv))(variable[11]) /*MMSignature::recv*/;
-      variable[10] = ((static_type___MMType___adapt_to_t)CALL(variable[10],COLOR_static_type___MMType___adapt_to))(variable[10], variable[11]) /*MMType::adapt_to*/;
+      if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 831); nit_exit(1);}
+      variable[10] = CALL_typing___TypingVisitor___self_var( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::self_var*/;
+      variable[10] = CALL_syntax_base___Variable___stype(variable[10])(variable[10]) /*Variable::stype*/;
+      variable[10] = CALL_static_type___MMLocalProperty___signature_for( variable[8] /*prop*/)( variable[8] /*prop*/, variable[10]) /*MMLocalProperty::signature_for*/;
+      variable[10] = CALL_static_type___MMSignature___return_type(variable[10])(variable[10]) /*MMSignature::return_type*/;
+      variable[11] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+      variable[10] = CALL_static_type___MMType___for_module(variable[10])(variable[10], variable[11]) /*MMType::for_module*/;
+      variable[11] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+      variable[11] = CALL_static_type___MMLocalProperty___signature(variable[11])(variable[11]) /*MMLocalProperty::signature*/;
+      variable[11] = CALL_static_type___MMSignature___recv(variable[11])(variable[11]) /*MMSignature::recv*/;
+      variable[10] = CALL_static_type___MMType___adapt_to(variable[10])(variable[10], variable[11]) /*MMType::adapt_to*/;
       variable[9] = variable[10];
-      ((array___AbstractArray___add_t)CALL( variable[4] /*stypes*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*stypes*/,  variable[9] /*t*/) /*AbstractArray::add*/;
-      variable[10] = TAG_Bool(( variable[5] /*stype*/ ==  NIT_NULL /*null*/) || (( variable[5] /*stype*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*stype*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*stype*/,COLOR_kernel___Object_____eqeq))( variable[5] /*stype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*stypes*/)( variable[4] /*stypes*/,  variable[9] /*t*/) /*AbstractArray::add*/;
+      variable[10] = TAG_Bool(( variable[5] /*stype*/ ==  NIT_NULL /*null*/) || (( variable[5] /*stype*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*stype*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*stype*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*stype*/)( variable[5] /*stype*/,  NIT_NULL /*null*/) /*Object::==*/)))));
       variable[11] = variable[10];
       if (!UNTAG_Bool(variable[11])) { /* or */
-        variable[11] = ((static_type___MMType_____l_t)CALL( variable[5] /*stype*/,COLOR_static_type___MMType_____l))( variable[5] /*stype*/,  variable[9] /*t*/) /*MMType::<*/;
+        variable[11] = CALL_static_type___MMType_____l( variable[5] /*stype*/)( variable[5] /*stype*/,  variable[9] /*t*/) /*MMType::<*/;
       }
       variable[10] = variable[11];
       if (UNTAG_Bool(variable[10])) { /*if*/
         variable[5] =  variable[9] /*t*/ /*stype=*/;
       }
-      continue_76: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+      continue_88: while(0);
+      CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
     }
-    break_76: while(0);
-    variable[6] = ((array___AbstractArray___iterator_t)CALL( variable[4] /*stypes*/,COLOR_abstract_collection___Collection___iterator))( variable[4] /*stypes*/) /*AbstractArray::iterator*/;
+    break_88: while(0);
+    variable[6] = CALL_abstract_collection___Collection___iterator( variable[4] /*stypes*/)( variable[4] /*stypes*/) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[7] = ((array___ArrayIterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*ArrayIterator::is_ok*/;
+      variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[7])) break; /*for*/
-      variable[7] = ((array___ArrayIterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*ArrayIterator::item*/;
+      variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*ArrayIterator::item*/;
       variable[8] = variable[7];
       variable[9] = variable[0];
-      ((syntax_base___AbsSyntaxVisitor___check_conform_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform))( variable[1] /*v*/, variable[9],  variable[8] /*t*/,  variable[5] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
-      continue_77: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*ArrayIterator::next*/;
+      CALL_syntax_base___AbsSyntaxVisitor___check_conform( variable[1] /*v*/)( variable[1] /*v*/, variable[9],  variable[8] /*t*/,  variable[5] /*stype*/) /*AbsSyntaxVisitor::check_conform*/;
+      continue_89: while(0);
+      CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*ArrayIterator::next*/;
     }
-    break_77: while(0);
+    break_89: while(0);
     variable[6] = variable[0];
     ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ =  variable[5] /*stype*/;
   }
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(( variable[4] /*p*/==NIT_NULL) || VAL_ISA( variable[4] /*p*/, COLOR_MMSrcMethod, ID_MMSrcMethod)) /*cast MMSrcMethod*/;
-  if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 788); nit_exit(1);}
+  if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___ASuperExpr___after_typing, LOCATE_typing, 844); nit_exit(1);}
   variable[5] = variable[0];
   ATTR_typing___AAbsSendExpr____prop(variable[5]) /*AAbsSendExpr::_prop*/ =  variable[4] /*p*/;
-  return_label74: while(false);
+  return_label86: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___ASuperExpr___init_in_superclass(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 735, LOCATE_typing___ASuperExpr___init_in_superclass};
+  struct trace_t trace = {NULL, NULL, 791, LOCATE_typing___ASuperExpr___init_in_superclass};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2443,7 +2887,7 @@ val_t typing___ASuperExpr___init_in_superclass(val_t  self) {
   return ATTR_typing___ASuperExpr____init_in_superclass( self) /*ASuperExpr::_init_in_superclass*/;
 }
 val_t typing___AAttrFormExpr___prop(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 794, LOCATE_typing___AAttrFormExpr___prop};
+  struct trace_t trace = {NULL, NULL, 850, LOCATE_typing___AAttrFormExpr___prop};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2452,7 +2896,7 @@ val_t typing___AAttrFormExpr___prop(val_t  self) {
   return ATTR_typing___AAttrFormExpr____prop( self) /*AAttrFormExpr::_prop*/;
 }
 val_t typing___AAttrFormExpr___attr_type(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 797, LOCATE_typing___AAttrFormExpr___attr_type};
+  struct trace_t trace = {NULL, NULL, 853, LOCATE_typing___AAttrFormExpr___attr_type};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2461,7 +2905,7 @@ val_t typing___AAttrFormExpr___attr_type(val_t  self) {
   return ATTR_typing___AAttrFormExpr____attr_type( self) /*AAttrFormExpr::_attr_type*/;
 }
 void typing___AAttrFormExpr___do_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 800, LOCATE_typing___AAttrFormExpr___do_typing};
+  struct trace_t trace = {NULL, NULL, 856, LOCATE_typing___AAttrFormExpr___do_typing};
   val_t variable[21];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2469,101 +2913,103 @@ void typing___AAttrFormExpr___do_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[3]) /*AAttrFormExpr::n_expr*/;
-  variable[3] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
+  variable[3] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[3])(variable[3]) /*AAttrFormExpr::n_expr*/;
+  variable[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
-    goto return_label78;
+    goto return_label90;
   }
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[4]) /*AAttrFormExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
+  variable[4] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[4])(variable[4]) /*AAttrFormExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
   variable[3] = variable[4];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AAttrFormExpr___n_id_t)CALL(variable[5],COLOR_parser_nodes___AAttrFormExpr___n_id))(variable[5]) /*AAttrFormExpr::n_id*/;
-  variable[5] = ((syntax_base___Token___to_symbol_t)CALL(variable[5],COLOR_syntax_base___Token___to_symbol))(variable[5]) /*Token::to_symbol*/;
+  variable[5] = CALL_parser_nodes___AAttrFormExpr___n_id(variable[5])(variable[5]) /*AAttrFormExpr::n_id*/;
+  variable[5] = CALL_syntax_base___Token___to_symbol(variable[5])(variable[5]) /*Token::to_symbol*/;
   variable[4] = variable[5];
-  variable[6] = ((static_type___MMType___local_class_t)CALL( variable[3] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[3] /*type_recv*/) /*MMType::local_class*/;
-  variable[6] = ((abstractmetamodel___MMLocalClass___select_attribute_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___select_attribute))(variable[6],  variable[4] /*name*/) /*MMLocalClass::select_attribute*/;
+  variable[6] = CALL_static_type___MMType___local_class( variable[3] /*type_recv*/)( variable[3] /*type_recv*/) /*MMType::local_class*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___select_attribute(variable[6])(variable[6],  variable[4] /*name*/) /*MMLocalClass::select_attribute*/;
   variable[5] = variable[6];
-  variable[6] = TAG_Bool(( variable[5] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[6] = TAG_Bool(( variable[5] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*prop*/)( variable[5] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
-    variable[7] = NEW_String_string___String___init(); /*new String*/
+    variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
     variable[9] = variable[8];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
     variable[10] =  variable[4] /*name*/;
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" doesn't exists in "), TAG_Int(19)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
     variable[13] =  variable[3] /*type_recv*/;
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
-    goto return_label78;
+    CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[15]) /*AbstractArray::add*/;
+    variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+    goto return_label90;
   } else { /*if*/
-    variable[6] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-    variable[7] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*prop*/) /*MMLocalProperty::global*/;
-    variable[7] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable[7],COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable[7]) /*MMGlobalProperty::local_class*/;
-    variable[7] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___module))(variable[7]) /*MMLocalClass::module*/;
-    variable[6] = ((abstractmetamodel___MMModule___visibility_for_t)CALL(variable[6],COLOR_abstractmetamodel___MMModule___visibility_for))(variable[6], variable[7]) /*MMModule::visibility_for*/;
+    variable[6] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalProperty___global( variable[5] /*prop*/)( variable[5] /*prop*/) /*MMLocalProperty::global*/;
+    variable[7] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable[7])(variable[7]) /*MMGlobalProperty::local_class*/;
+    variable[7] = CALL_abstractmetamodel___MMLocalClass___module(variable[7])(variable[7]) /*MMLocalClass::module*/;
+    variable[6] = CALL_abstractmetamodel___MMModule___visibility_for(variable[6])(variable[6], variable[7]) /*MMModule::visibility_for*/;
     variable[6] = TAG_Bool(UNTAG_Int(variable[6])<UNTAG_Int( TAG_Int(3)));
     if (UNTAG_Bool(variable[6])) { /*if*/
       variable[6] = variable[0];
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: Attribute "), TAG_Int(17)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] =  variable[4] /*name*/;
-      variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[10]) /*String::append*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[10]) /*AbstractArray::add*/;
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" from "), TAG_Int(6)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[12]) /*String::append*/;
-      variable[13] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[5] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[5] /*prop*/) /*MMLocalProperty::global*/;
-      variable[13] = ((abstractmetamodel___MMGlobalProperty___local_class_t)CALL(variable[13],COLOR_abstractmetamodel___MMGlobalProperty___local_class))(variable[13]) /*MMGlobalProperty::local_class*/;
-      variable[13] = ((abstractmetamodel___MMLocalClass___module_t)CALL(variable[13],COLOR_abstractmetamodel___MMLocalClass___module))(variable[13]) /*MMLocalClass::module*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[12]) /*AbstractArray::add*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalProperty___global( variable[5] /*prop*/)( variable[5] /*prop*/) /*MMLocalProperty::global*/;
+      variable[13] = CALL_abstractmetamodel___MMGlobalProperty___local_class(variable[13])(variable[13]) /*MMGlobalProperty::local_class*/;
+      variable[13] = CALL_abstractmetamodel___MMLocalClass___module(variable[13])(variable[13]) /*MMLocalClass::module*/;
       variable[14] = variable[13];
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" is invisible in "), TAG_Int(17)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[16]) /*String::append*/;
-      variable[17] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[16]) /*AbstractArray::add*/;
+      variable[17] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
       variable[18] = variable[17];
-      variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[18]) /*String::append*/;
+      variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[18]) /*AbstractArray::add*/;
       variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
       variable[20] = variable[19];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[20]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[20]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
     }
   }
   variable[6] = variable[0];
   ATTR_typing___AAttrFormExpr____prop(variable[6]) /*AAttrFormExpr::_prop*/ =  variable[5] /*prop*/;
-  variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[5] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[5] /*prop*/,  variable[3] /*type_recv*/) /*MMLocalProperty::signature_for*/;
-  variable[7] = ((static_type___MMSignature___return_type_t)CALL(variable[7],COLOR_static_type___MMSignature___return_type))(variable[7]) /*MMSignature::return_type*/;
+  variable[7] = CALL_static_type___MMLocalProperty___signature_for( variable[5] /*prop*/)( variable[5] /*prop*/,  variable[3] /*type_recv*/) /*MMLocalProperty::signature_for*/;
+  variable[7] = CALL_static_type___MMSignature___return_type(variable[7])(variable[7]) /*MMSignature::return_type*/;
   variable[6] = variable[7];
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___AAttrFormExpr___n_expr_t)CALL(variable[7],COLOR_parser_nodes___AAttrFormExpr___n_expr))(variable[7]) /*AAttrFormExpr::n_expr*/;
-  variable[7] = ((typing___PExpr___is_self_t)CALL(variable[7],COLOR_typing___PExpr___is_self))(variable[7]) /*PExpr::is_self*/;
+  variable[7] = CALL_parser_nodes___AAttrFormExpr___n_expr(variable[7])(variable[7]) /*AAttrFormExpr::n_expr*/;
+  variable[7] = CALL_typing___PExpr___is_self(variable[7])(variable[7]) /*PExpr::is_self*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/
-    variable[7] = ((static_type___MMType___not_for_self_t)CALL( variable[6] /*at*/,COLOR_static_type___MMType___not_for_self))( variable[6] /*at*/) /*MMType::not_for_self*/;
+    variable[7] = CALL_static_type___MMType___not_for_self( variable[6] /*at*/)( variable[6] /*at*/) /*MMType::not_for_self*/;
     variable[6] = variable[7] /*at=*/;
   }
   variable[7] = variable[0];
   ATTR_typing___AAttrFormExpr____attr_type(variable[7]) /*AAttrFormExpr::_attr_type*/ =  variable[6] /*at*/;
-  return_label78: while(false);
+  return_label90: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AAttrExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 821, LOCATE_typing___AAttrExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 877, LOCATE_typing___AAttrExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2571,23 +3017,23 @@ void typing___AAttrExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((typing___AAttrFormExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___do_typing))(variable[3],  variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
+  CALL_typing___AAttrFormExpr___do_typing(variable[3])(variable[3],  variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
   variable[3] = variable[0];
-  variable[3] = ((typing___AAttrFormExpr___prop_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___prop))(variable[3]) /*AAttrFormExpr::prop*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_typing___AAttrFormExpr___prop(variable[3])(variable[3]) /*AAttrFormExpr::prop*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    goto return_label79;
+    goto return_label91;
   }
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((typing___AAttrFormExpr___attr_type_t)CALL(variable[4],COLOR_typing___AAttrFormExpr___attr_type))(variable[4]) /*AAttrFormExpr::attr_type*/;
+  variable[4] = CALL_typing___AAttrFormExpr___attr_type(variable[4])(variable[4]) /*AAttrFormExpr::attr_type*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label79: while(false);
+  return_label91: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AAttrAssignExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 832, LOCATE_typing___AAttrAssignExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 888, LOCATE_typing___AAttrAssignExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2595,24 +3041,24 @@ void typing___AAttrAssignExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((typing___AAttrFormExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___do_typing))(variable[3],  variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
+  CALL_typing___AAttrFormExpr___do_typing(variable[3])(variable[3],  variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
   variable[3] = variable[0];
-  variable[3] = ((typing___AAttrFormExpr___prop_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___prop))(variable[3]) /*AAttrFormExpr::prop*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_typing___AAttrFormExpr___prop(variable[3])(variable[3]) /*AAttrFormExpr::prop*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    goto return_label80;
+    goto return_label92;
   }
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[3],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[3]) /*AAssignFormExpr::n_value*/;
+  variable[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[3])(variable[3]) /*AAssignFormExpr::n_value*/;
   variable[4] = variable[0];
-  variable[4] = ((typing___AAttrFormExpr___attr_type_t)CALL(variable[4],COLOR_typing___AAttrFormExpr___attr_type))(variable[4]) /*AAttrFormExpr::attr_type*/;
-  ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
-  return_label80: while(false);
+  variable[4] = CALL_typing___AAttrFormExpr___attr_type(variable[4])(variable[4]) /*AAttrFormExpr::attr_type*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::check_conform_expr*/;
+  return_label92: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AAttrReassignExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 843, LOCATE_typing___AAttrReassignExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 899, LOCATE_typing___AAttrReassignExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2620,23 +3066,23 @@ void typing___AAttrReassignExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((typing___AAttrFormExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___do_typing))(variable[3],  variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
+  CALL_typing___AAttrFormExpr___do_typing(variable[3])(variable[3],  variable[1] /*v*/) /*AAttrFormExpr::do_typing*/;
   variable[3] = variable[0];
-  variable[3] = ((typing___AAttrFormExpr___prop_t)CALL(variable[3],COLOR_typing___AAttrFormExpr___prop))(variable[3]) /*AAttrFormExpr::prop*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_typing___AAttrFormExpr___prop(variable[3])(variable[3]) /*AAttrFormExpr::prop*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    goto return_label81;
+    goto return_label93;
   }
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((typing___AAttrFormExpr___attr_type_t)CALL(variable[4],COLOR_typing___AAttrFormExpr___attr_type))(variable[4]) /*AAttrFormExpr::attr_type*/;
-  ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL(variable[3],COLOR_typing___AReassignFormExpr___do_lvalue_typing))(variable[3],  variable[1] /*v*/, variable[4]) /*AReassignFormExpr::do_lvalue_typing*/;
-  return_label81: while(false);
+  variable[4] = CALL_typing___AAttrFormExpr___attr_type(variable[4])(variable[4]) /*AAttrFormExpr::attr_type*/;
+  CALL_typing___AReassignFormExpr___do_lvalue_typing(variable[3])(variable[3],  variable[1] /*v*/, variable[4]) /*AReassignFormExpr::do_lvalue_typing*/;
+  return_label93: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___AAbsSendExpr___prop_signature(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 855, LOCATE_typing___AAbsSendExpr___prop_signature};
+  struct trace_t trace = {NULL, NULL, 911, LOCATE_typing___AAbsSendExpr___prop_signature};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2645,7 +3091,7 @@ val_t typing___AAbsSendExpr___prop_signature(val_t  self) {
   return ATTR_typing___AAbsSendExpr____prop_signature( self) /*AAbsSendExpr::_prop_signature*/;
 }
 void typing___AAbsSendExpr___do_typing(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3, val_t  param4, val_t  param5, val_t  param6) {
-  struct trace_t trace = {NULL, NULL, 858, LOCATE_typing___AAbsSendExpr___do_typing};
+  struct trace_t trace = {NULL, NULL, 914, LOCATE_typing___AAbsSendExpr___do_typing};
   val_t variable[15];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2659,30 +3105,30 @@ void typing___AAbsSendExpr___do_typing(val_t  self, val_t  param0, val_t  param1
   variable[6] =  param5;
   variable[7] =  param6;
   variable[10] = variable[0];
-  variable[10] = ((typing___AAbsSendExpr___get_property_t)CALL(variable[10],COLOR_typing___AAbsSendExpr___get_property))(variable[10],  variable[1] /*v*/,  variable[2] /*type_recv*/,  variable[3] /*is_implicit_self*/,  variable[5] /*name*/) /*AAbsSendExpr::get_property*/;
+  variable[10] = CALL_typing___AAbsSendExpr___get_property(variable[10])(variable[10],  variable[1] /*v*/,  variable[2] /*type_recv*/,  variable[3] /*is_implicit_self*/,  variable[5] /*name*/) /*AAbsSendExpr::get_property*/;
   variable[9] = variable[10];
-  variable[10] = TAG_Bool(( variable[9] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[9] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[9] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[9] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[9] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[10] = TAG_Bool(( variable[9] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[9] /*prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[9] /*prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[9] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[9] /*prop*/)( variable[9] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[10])) { /*if*/
-    goto return_label82;
+    goto return_label94;
   }
   variable[11] = variable[0];
-  variable[11] = ((typing___AAbsSendExpr___get_signature_t)CALL(variable[11],COLOR_typing___AAbsSendExpr___get_signature))(variable[11],  variable[1] /*v*/,  variable[2] /*type_recv*/,  variable[9] /*prop*/,  variable[4] /*recv_is_self*/) /*AAbsSendExpr::get_signature*/;
+  variable[11] = CALL_typing___AAbsSendExpr___get_signature(variable[11])(variable[11],  variable[1] /*v*/,  variable[2] /*type_recv*/,  variable[9] /*prop*/,  variable[4] /*recv_is_self*/) /*AAbsSendExpr::get_signature*/;
   variable[10] = variable[11];
-  variable[11] = TAG_Bool(( variable[10] /*sig*/ ==  NIT_NULL /*null*/) || (( variable[10] /*sig*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*sig*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*sig*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*sig*/,COLOR_kernel___Object_____eqeq))( variable[10] /*sig*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[11] = TAG_Bool(( variable[10] /*sig*/ ==  NIT_NULL /*null*/) || (( variable[10] /*sig*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*sig*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*sig*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*sig*/)( variable[10] /*sig*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[11])) { /*if*/
-    goto return_label82;
+    goto return_label94;
   }
   variable[12] = variable[0];
-  variable[13] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[9] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[9] /*prop*/) /*MMLocalProperty::name*/;
-  variable[12] = ((typing___AAbsSendExpr___process_signature_t)CALL(variable[12],COLOR_typing___AAbsSendExpr___process_signature))(variable[12],  variable[1] /*v*/,  variable[10] /*sig*/, variable[13],  variable[6] /*raw_args*/) /*AAbsSendExpr::process_signature*/;
+  variable[13] = CALL_abstractmetamodel___MMLocalProperty___name( variable[9] /*prop*/)( variable[9] /*prop*/) /*MMLocalProperty::name*/;
+  variable[12] = CALL_typing___AAbsSendExpr___process_signature(variable[12])(variable[12],  variable[1] /*v*/,  variable[10] /*sig*/, variable[13],  variable[6] /*raw_args*/) /*AAbsSendExpr::process_signature*/;
   variable[11] = variable[12];
-  variable[12] = TAG_Bool(( variable[11] /*args*/ ==  NIT_NULL /*null*/) || (( variable[11] /*args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[11] /*args*/,COLOR_kernel___Object_____eqeq))( variable[11] /*args*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[12] = TAG_Bool(( variable[11] /*args*/ ==  NIT_NULL /*null*/) || (( variable[11] /*args*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[11] /*args*/)( variable[11] /*args*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[12])) { /*if*/
-    goto return_label82;
+    goto return_label94;
   }
   variable[13] = variable[0];
-  variable[14] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[9] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[9] /*prop*/) /*MMLocalProperty::name*/;
-  variable[13] = ((typing___AAbsSendExpr___process_closures_t)CALL(variable[13],COLOR_typing___AAbsSendExpr___process_closures))(variable[13],  variable[1] /*v*/,  variable[10] /*sig*/, variable[14],  variable[7] /*closure_defs*/) /*AAbsSendExpr::process_closures*/;
+  variable[14] = CALL_abstractmetamodel___MMLocalProperty___name( variable[9] /*prop*/)( variable[9] /*prop*/) /*MMLocalProperty::name*/;
+  variable[13] = CALL_typing___AAbsSendExpr___process_closures(variable[13])(variable[13],  variable[1] /*v*/,  variable[10] /*sig*/, variable[14],  variable[7] /*closure_defs*/) /*AAbsSendExpr::process_closures*/;
   variable[12] = variable[13];
   variable[13] = variable[0];
   ATTR_typing___AAbsSendExpr____prop(variable[13]) /*AAbsSendExpr::_prop*/ =  variable[9] /*prop*/;
@@ -2692,12 +3138,12 @@ void typing___AAbsSendExpr___do_typing(val_t  self, val_t  param0, val_t  param1
   ATTR_typing___AAbsSendExpr____arguments(variable[13]) /*AAbsSendExpr::_arguments*/ =  variable[11] /*args*/;
   variable[13] = variable[0];
   ATTR_typing___AAbsSendExpr____return_type(variable[13]) /*AAbsSendExpr::_return_type*/ =  variable[12] /*rtype*/;
-  return_label82: while(false);
+  return_label94: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___AAbsSendExpr___get_property(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
-  struct trace_t trace = {NULL, NULL, 874, LOCATE_typing___AAbsSendExpr___get_property};
+  struct trace_t trace = {NULL, NULL, 930, LOCATE_typing___AAbsSendExpr___get_property};
   val_t variable[19];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2707,117 +3153,120 @@ val_t typing___AAbsSendExpr___get_property(val_t  self, val_t  param0, val_t  pa
   variable[2] =  param1;
   variable[3] =  param2;
   variable[4] =  param3;
-  variable[6] = TAG_Bool(( variable[2] /*type_recv*/ ==  NIT_NULL /*null*/) || (( variable[2] /*type_recv*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[2] /*type_recv*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*type_recv*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[2] /*type_recv*/,COLOR_kernel___Object_____eqeq))( variable[2] /*type_recv*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[6] = TAG_Bool(( variable[2] /*type_recv*/ ==  NIT_NULL /*null*/) || (( variable[2] /*type_recv*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[2] /*type_recv*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[2] /*type_recv*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[2] /*type_recv*/)( variable[2] /*type_recv*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[5] =  NIT_NULL /*null*/;
-    goto return_label83;
+    goto return_label95;
   }
-  variable[7] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_recv*/) /*MMType::local_class*/;
-  variable[7] = ((abstractmetamodel___MMLocalClass___select_method_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___select_method))(variable[7],  variable[4] /*name*/) /*MMLocalClass::select_method*/;
+  variable[7] = CALL_static_type___MMType___local_class( variable[2] /*type_recv*/)( variable[2] /*type_recv*/) /*MMType::local_class*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___select_method(variable[7])(variable[7],  variable[4] /*name*/) /*MMLocalClass::select_method*/;
   variable[6] = variable[7];
-  variable[7] = TAG_Bool(( variable[6] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[6] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[6] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[7] = TAG_Bool(( variable[6] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[6] /*prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*prop*/)( variable[6] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[8] = variable[7];
   if (UNTAG_Bool(variable[8])) { /* and */
-    variable[8] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-    variable[8] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[8]) /*MMLocalProperty::global*/;
-    variable[8] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[8],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[8]) /*MMGlobalProperty::is_init*/;
+    variable[8] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalProperty___global(variable[8])(variable[8]) /*MMLocalProperty::global*/;
+    variable[8] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[8])(variable[8]) /*MMGlobalProperty::is_init*/;
   }
   variable[7] = variable[8];
   if (UNTAG_Bool(variable[7])) { /*if*/
-    variable[8] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_recv*/) /*MMType::local_class*/;
-    variable[8] = ((abstractmetamodel___MMLocalClass___super_methods_named_t)CALL(variable[8],COLOR_abstractmetamodel___MMLocalClass___super_methods_named))(variable[8],  variable[4] /*name*/) /*MMLocalClass::super_methods_named*/;
+    variable[8] = CALL_static_type___MMType___local_class( variable[2] /*type_recv*/)( variable[2] /*type_recv*/) /*MMType::local_class*/;
+    variable[8] = CALL_abstractmetamodel___MMLocalClass___super_methods_named(variable[8])(variable[8],  variable[4] /*name*/) /*MMLocalClass::super_methods_named*/;
     variable[7] = variable[8];
-    variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*props*/,COLOR_abstract_collection___Collection___length))( variable[7] /*props*/) /*AbstractArray::length*/;
+    variable[8] = CALL_abstract_collection___Collection___length( variable[7] /*props*/)( variable[7] /*props*/) /*AbstractArray::length*/;
     variable[8] = TAG_Bool(UNTAG_Int(variable[8])>UNTAG_Int( TAG_Int(1)));
     if (UNTAG_Bool(variable[8])) { /*if*/
       variable[8] = variable[0];
-      variable[9] = NEW_String_string___String___init(); /*new String*/
+      variable[9] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString("Error: Ambigous method name '"), TAG_Int(29)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[11]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[11]) /*AbstractArray::add*/;
       variable[12] =  variable[4] /*name*/;
-      variable[12] = ((string___String___to_s_t)CALL(variable[12],COLOR_string___Object___to_s))(variable[12]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[12]) /*String::append*/;
+      variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[12]) /*AbstractArray::add*/;
       variable[13] = NEW_String_string___String___with_native(BOX_NativeString("' for "), TAG_Int(6)); /*new String*/
       variable[14] = variable[13];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[14]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-      variable[15] = ((string___Collection___join_t)CALL( variable[7] /*props*/,COLOR_string___Collection___join))( variable[7] /*props*/, variable[15]) /*Collection::join*/;
+      variable[15] = CALL_string___Collection___join( variable[7] /*props*/)( variable[7] /*props*/, variable[15]) /*Collection::join*/;
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[16]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[16]) /*AbstractArray::add*/;
       variable[17] = NEW_String_string___String___with_native(BOX_NativeString(". Use explicit designation."), TAG_Int(27)); /*new String*/
       variable[18] = variable[17];
-      ((string___String___append_t)CALL(variable[9],COLOR_abstract_collection___IndexedCollection___append))(variable[9], variable[18]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[9])(variable[9], variable[18]) /*AbstractArray::add*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[8], variable[9]) /*AbsSyntaxVisitor::error*/;
       variable[5] =  NIT_NULL /*null*/;
-      goto return_label83;
+      goto return_label95;
     } else { /*if*/
-      variable[8] = ((array___AbstractArray___length_t)CALL( variable[7] /*props*/,COLOR_abstract_collection___Collection___length))( variable[7] /*props*/) /*AbstractArray::length*/;
+      variable[8] = CALL_abstract_collection___Collection___length( variable[7] /*props*/)( variable[7] /*props*/) /*AbstractArray::length*/;
       variable[8] = TAG_Bool((variable[8])==( TAG_Int(1)));
       if (UNTAG_Bool(variable[8])) { /*if*/
-        variable[9] = ((static_type___MMType___local_class_t)CALL( variable[2] /*type_recv*/,COLOR_static_type___MMType___local_class))( variable[2] /*type_recv*/) /*MMType::local_class*/;
-        variable[10] = ((abstract_collection___IndexedCollection___first_t)CALL( variable[7] /*props*/,COLOR_abstract_collection___Collection___first))( variable[7] /*props*/) /*IndexedCollection::first*/;
-        variable[10] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[10],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[10]) /*MMLocalProperty::global*/;
-        variable[9] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[9],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[9], variable[10]) /*MMLocalClass::[]*/;
+        variable[9] = CALL_static_type___MMType___local_class( variable[2] /*type_recv*/)( variable[2] /*type_recv*/) /*MMType::local_class*/;
+        variable[10] = CALL_abstract_collection___Collection___first( variable[7] /*props*/)( variable[7] /*props*/) /*IndexedCollection::first*/;
+        variable[10] = CALL_abstractmetamodel___MMLocalProperty___global(variable[10])(variable[10]) /*MMLocalProperty::global*/;
+        variable[9] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[9])(variable[9], variable[10]) /*MMLocalClass::[]*/;
         variable[8] = variable[9];
         variable[9] = TAG_Bool(( variable[8] /*p*/==NIT_NULL) || VAL_ISA( variable[8] /*p*/, COLOR_MMMethod, ID_MMMethod)) /*cast MMMethod*/;
-        if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AAbsSendExpr___get_property, LOCATE_typing, 885); nit_exit(1);}
+        if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_typing___AAbsSendExpr___get_property, LOCATE_typing, 941); nit_exit(1);}
         variable[6] =  variable[8] /*p*/ /*prop=*/;
       }
     }
   }
-  variable[7] = TAG_Bool(( variable[6] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[6] /*prop*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*prop*/,COLOR_kernel___Object_____eqeq))( variable[6] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[7] = TAG_Bool(( variable[6] /*prop*/ ==  NIT_NULL /*null*/) || (( variable[6] /*prop*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*prop*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*prop*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*prop*/)( variable[6] /*prop*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[7])) { /*if*/
     if (UNTAG_Bool( variable[3] /*is_implicit_self*/)) { /*if*/
       variable[7] = variable[0];
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method or variable '"), TAG_Int(27)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[4] /*name*/;
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString("' unknown in "), TAG_Int(13)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
       variable[14] =  variable[2] /*type_recv*/;
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[7] = variable[0];
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Method '"), TAG_Int(15)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[4] /*name*/;
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString("' doesn't exists in "), TAG_Int(20)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
       variable[14] =  variable[2] /*type_recv*/;
-      variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[14]) /*String::append*/;
+      variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[14]) /*AbstractArray::add*/;
       variable[15] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[16] = variable[15];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[16]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[16]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
     }
     variable[5] =  NIT_NULL /*null*/;
-    goto return_label83;
+    goto return_label95;
   }
   variable[5] =  variable[6] /*prop*/;
-  goto return_label83;
-  return_label83: while(false);
+  goto return_label95;
+  return_label95: while(false);
   tracehead = trace.prev;
   return variable[5];
 }
 val_t typing___AAbsSendExpr___get_signature(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
-  struct trace_t trace = {NULL, NULL, 901, LOCATE_typing___AAbsSendExpr___get_signature};
+  struct trace_t trace = {NULL, NULL, 957, LOCATE_typing___AAbsSendExpr___get_signature};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2827,24 +3276,24 @@ val_t typing___AAbsSendExpr___get_signature(val_t  self, val_t  param0, val_t  p
   variable[2] =  param1;
   variable[3] =  param2;
   variable[4] =  param3;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[3] /*prop*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[3] /*prop*/) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[3] /*prop*/)( variable[3] /*prop*/) /*MMLocalProperty::global*/;
   variable[7] = variable[0];
-  variable[8] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-  ((syntax_base___MMGlobalProperty___check_visibility_t)CALL(variable[6],COLOR_syntax_base___MMGlobalProperty___check_visibility))(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[4] /*recv_is_self*/) /*MMGlobalProperty::check_visibility*/;
-  variable[7] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[3] /*prop*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[3] /*prop*/,  variable[2] /*type_recv*/) /*MMLocalProperty::signature_for*/;
+  variable[8] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  CALL_syntax_base___MMGlobalProperty___check_visibility(variable[6])(variable[6],  variable[1] /*v*/, variable[7], variable[8],  variable[4] /*recv_is_self*/) /*MMGlobalProperty::check_visibility*/;
+  variable[7] = CALL_static_type___MMLocalProperty___signature_for( variable[3] /*prop*/)( variable[3] /*prop*/,  variable[2] /*type_recv*/) /*MMLocalProperty::signature_for*/;
   variable[6] = variable[7];
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable[4] /*recv_is_self*/)))) { /*if*/
-    variable[7] = ((vararg___MMSignature___not_for_self_t)CALL( variable[6] /*psig*/,COLOR_static_type___MMSignature___not_for_self))( variable[6] /*psig*/) /*MMSignature::not_for_self*/;
+    variable[7] = CALL_static_type___MMSignature___not_for_self( variable[6] /*psig*/)( variable[6] /*psig*/) /*MMSignature::not_for_self*/;
     variable[6] = variable[7] /*psig=*/;
   }
   variable[5] =  variable[6] /*psig*/;
-  goto return_label84;
-  return_label84: while(false);
+  goto return_label96;
+  return_label96: while(false);
   tracehead = trace.prev;
   return variable[5];
 }
 val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
-  struct trace_t trace = {NULL, NULL, 910, LOCATE_typing___AAbsSendExpr___process_signature};
+  struct trace_t trace = {NULL, NULL, 966, LOCATE_typing___AAbsSendExpr___process_signature};
   val_t variable[25];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2854,16 +3303,16 @@ val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_
   variable[2] =  param1;
   variable[3] =  param2;
   variable[4] =  param3;
-  variable[7] = ((vararg___MMSignature___vararg_rank_t)CALL( variable[2] /*psig*/,COLOR_vararg___MMSignature___vararg_rank))( variable[2] /*psig*/) /*MMSignature::vararg_rank*/;
+  variable[7] = CALL_vararg___MMSignature___vararg_rank( variable[2] /*psig*/)( variable[2] /*psig*/) /*MMSignature::vararg_rank*/;
   variable[6] = variable[7];
-  variable[8] = ((static_type___MMSignature___arity_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature___arity))( variable[2] /*psig*/) /*MMSignature::arity*/;
+  variable[8] = CALL_static_type___MMSignature___arity( variable[2] /*psig*/)( variable[2] /*psig*/) /*MMSignature::arity*/;
   variable[7] = variable[8];
   /*variable[8] is variable raw_arity*/
-  variable[9] = TAG_Bool(( variable[4] /*raw_args*/ ==  NIT_NULL /*null*/) || (( variable[4] /*raw_args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[4] /*raw_args*/,COLOR_kernel___Object_____eqeq))( variable[4] /*raw_args*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[9] = TAG_Bool(( variable[4] /*raw_args*/ ==  NIT_NULL /*null*/) || (( variable[4] /*raw_args*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*raw_args*/)( variable[4] /*raw_args*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[8] =  TAG_Int(0) /*raw_arity=*/;
   } else { /*if*/
-    variable[9] = ((array___AbstractArray___length_t)CALL( variable[4] /*raw_args*/,COLOR_abstract_collection___Collection___length))( variable[4] /*raw_args*/) /*AbstractArray::length*/;
+    variable[9] = CALL_abstract_collection___Collection___length( variable[4] /*raw_args*/)( variable[4] /*raw_args*/) /*AbstractArray::length*/;
     variable[8] = variable[9] /*raw_arity=*/;
   }
   variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*par_arity*/)>UNTAG_Int( variable[8] /*raw_arity*/));
@@ -2880,32 +3329,33 @@ val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_
   variable[9] = variable[10];
   if (UNTAG_Bool(variable[9])) { /*if*/
     variable[9] = variable[0];
-    variable[10] = NEW_String_string___String___init(); /*new String*/
+    variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: '"), TAG_Int(8)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
     variable[13] =  variable[3] /*name*/;
-    variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+    variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
     variable[14] = NEW_String_string___String___with_native(BOX_NativeString("' arity missmatch."), TAG_Int(18)); /*new String*/
     variable[15] = variable[14];
-    ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
     variable[5] =  NIT_NULL /*null*/;
-    goto return_label85;
+    goto return_label97;
   }
   variable[9] =  TAG_Int(0);
   variable[11] = NEW_Array_array___Array___init(); /*new Array[PExpr]*/
   variable[10] = variable[11];
   variable[11] = NEW_Range_range___Range___without_last( TAG_Int(0),  variable[7] /*par_arity*/); /*new Range[Int]*/
-  variable[11] = ((range___Range___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Range::iterator*/;
+  variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
+    variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[12])) break; /*for*/
-    variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
+    variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
     variable[13] = variable[12];
     /*variable[14] is variable a*/
-    variable[16] = ((static_type___MMSignature_____bra_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature_____bra))( variable[2] /*psig*/,  variable[13] /*par_idx*/) /*MMSignature::[]*/;
+    variable[16] = CALL_static_type___MMSignature_____bra( variable[2] /*psig*/)( variable[2] /*psig*/,  variable[13] /*par_idx*/) /*MMSignature::[]*/;
     variable[15] = variable[16];
     variable[16] = TAG_Bool(( variable[13] /*par_idx*/)==( variable[6] /*par_vararg*/));
     if (UNTAG_Bool(variable[16])) { /*if*/
@@ -2914,11 +3364,11 @@ val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_
       variable[17] = TAG_Int(UNTAG_Int( variable[8] /*raw_arity*/)-UNTAG_Int( variable[7] /*par_arity*/));
       variable[18] = NEW_Range_range___Range___init( TAG_Int(0), variable[17]); /*new Range[Int]*/
       variable[17] = variable[18];
-      variable[17] = ((range___Range___iterator_t)CALL(variable[17],COLOR_abstract_collection___Collection___iterator))(variable[17]) /*Range::iterator*/;
+      variable[17] = CALL_abstract_collection___Collection___iterator(variable[17])(variable[17]) /*Range::iterator*/;
       while (true) { /*for*/
-        variable[18] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[17],COLOR_abstract_collection___Iterator___is_ok))(variable[17]) /*Iterator::is_ok*/;
+        variable[18] = CALL_abstract_collection___Iterator___is_ok(variable[17])(variable[17]) /*Iterator::is_ok*/;
         if (!UNTAG_Bool(variable[18])) break; /*for*/
-        variable[18] = ((abstract_collection___Iterator___item_t)CALL(variable[17],COLOR_abstract_collection___Iterator___item))(variable[17]) /*Iterator::item*/;
+        variable[18] = CALL_abstract_collection___Iterator___item(variable[17])(variable[17]) /*Iterator::item*/;
         variable[19] = variable[18];
         variable[20] =  variable[4] /*raw_args*/;
         variable[21] =  variable[9] /*arg_idx*/;
@@ -2935,22 +3385,21 @@ val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_
         variable[23] = ATTR_array___Array____items(variable[23]) /*Array::_items*/;
         variable[23] = UNBOX_NativeArray(variable[23])[UNTAG_Int( variable[21] /*index*/)];
         variable[22] = variable[23];
-        goto return_label88;
-        return_label88: while(false);
+        goto return_label100;
+        return_label100: while(false);
         variable[20] = variable[22];
         variable[14] = variable[20] /*a=*/;
-        ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/,  variable[14] /*a*/,  variable[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
-        ((array___AbstractArray___add_t)CALL( variable[16] /*star*/,COLOR_abstract_collection___SimpleCollection___add))( variable[16] /*star*/,  variable[14] /*a*/) /*AbstractArray::add*/;
+        CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[14] /*a*/,  variable[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[16] /*star*/)( variable[16] /*star*/,  variable[14] /*a*/) /*AbstractArray::add*/;
         variable[20] = TAG_Int(UNTAG_Int( variable[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
         variable[9] = variable[20] /*arg_idx=*/;
-        continue_87: while(0);
-        ((abstract_collection___Iterator___next_t)CALL(variable[17],COLOR_abstract_collection___Iterator___next))(variable[17]) /*Iterator::next*/;
+        continue_99: while(0);
+        CALL_abstract_collection___Iterator___next(variable[17])(variable[17]) /*Iterator::next*/;
       }
-      break_87: while(0);
+      break_99: while(0);
       variable[18] = NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr( variable[16] /*star*/); /*new AArrayExpr*/
       variable[17] = variable[18];
-      variable[18] = ((syntax_base___AbsSyntaxVisitor___type_array_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_array))( variable[1] /*v*/,  variable[15] /*par_type*/) /*AbsSyntaxVisitor::type_array*/;
-      ((typing___AArrayExpr___stype__eq_t)CALL( variable[17] /*aa*/,COLOR_typing___AArrayExpr___stype__eq))( variable[17] /*aa*/, variable[18]) /*AArrayExpr::stype=*/;
+      CALL_typing___AArrayExpr___do_typing( variable[17] /*aa*/)( variable[17] /*aa*/,  variable[1] /*v*/,  variable[15] /*par_type*/) /*AArrayExpr::do_typing*/;
       variable[14] =  variable[17] /*aa*/ /*a=*/;
     } else { /*if*/
       variable[16] =  variable[4] /*raw_args*/;
@@ -2968,27 +3417,27 @@ val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_
       variable[19] = ATTR_array___Array____items(variable[19]) /*Array::_items*/;
       variable[19] = UNBOX_NativeArray(variable[19])[UNTAG_Int( variable[17] /*index*/)];
       variable[18] = variable[19];
-      goto return_label89;
-      return_label89: while(false);
+      goto return_label101;
+      return_label101: while(false);
       variable[16] = variable[18];
       variable[14] = variable[16] /*a=*/;
-      ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/,  variable[14] /*a*/,  variable[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+      CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[14] /*a*/,  variable[15] /*par_type*/) /*AbsSyntaxVisitor::check_conform_expr*/;
       variable[16] = TAG_Int(UNTAG_Int( variable[9] /*arg_idx*/)+UNTAG_Int( TAG_Int(1)));
       variable[9] = variable[16] /*arg_idx=*/;
     }
-    ((array___AbstractArray___add_t)CALL( variable[10] /*args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[10] /*args*/,  variable[14] /*a*/) /*AbstractArray::add*/;
-    continue_86: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
+    CALL_abstract_collection___SimpleCollection___add( variable[10] /*args*/)( variable[10] /*args*/,  variable[14] /*a*/) /*AbstractArray::add*/;
+    continue_98: while(0);
+    CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
   }
-  break_86: while(0);
+  break_98: while(0);
   variable[5] =  variable[10] /*args*/;
-  goto return_label85;
-  return_label85: while(false);
+  goto return_label97;
+  return_label97: while(false);
   tracehead = trace.prev;
   return variable[5];
 }
 val_t typing___AAbsSendExpr___process_closures(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3) {
-  struct trace_t trace = {NULL, NULL, 947, LOCATE_typing___AAbsSendExpr___process_closures};
+  struct trace_t trace = {NULL, NULL, 1003, LOCATE_typing___AAbsSendExpr___process_closures};
   val_t variable[24];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -2998,95 +3447,97 @@ val_t typing___AAbsSendExpr___process_closures(val_t  self, val_t  param0, val_t
   variable[2] =  param1;
   variable[3] =  param2;
   variable[4] =  param3;
-  variable[7] = ((static_type___MMSignature___return_type_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature___return_type))( variable[2] /*psig*/) /*MMSignature::return_type*/;
+  variable[7] = CALL_static_type___MMSignature___return_type( variable[2] /*psig*/)( variable[2] /*psig*/) /*MMSignature::return_type*/;
   variable[6] = variable[7];
-  variable[8] = ((static_type___MMSignature___closures_t)CALL( variable[2] /*psig*/,COLOR_static_type___MMSignature___closures))( variable[2] /*psig*/) /*MMSignature::closures*/;
+  variable[8] = CALL_static_type___MMSignature___closures( variable[2] /*psig*/)( variable[2] /*psig*/) /*MMSignature::closures*/;
   variable[7] = variable[8];
   variable[8] =  TAG_Int(0);
-  variable[9] = ((array___AbstractArray___iterator_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___iterator))( variable[7] /*cs*/) /*AbstractArray::iterator*/;
+  variable[9] = CALL_abstract_collection___Collection___iterator( variable[7] /*cs*/)( variable[7] /*cs*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[10] = ((array___ArrayIterator___is_ok_t)CALL(variable[9],COLOR_abstract_collection___Iterator___is_ok))(variable[9]) /*ArrayIterator::is_ok*/;
+    variable[10] = CALL_abstract_collection___Iterator___is_ok(variable[9])(variable[9]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[10])) break; /*for*/
-    variable[10] = ((array___ArrayIterator___item_t)CALL(variable[9],COLOR_abstract_collection___Iterator___item))(variable[9]) /*ArrayIterator::item*/;
+    variable[10] = CALL_abstract_collection___Iterator___item(variable[9])(variable[9]) /*ArrayIterator::item*/;
     variable[11] = variable[10];
-    variable[12] = ((static_type___MMClosure___is_optional_t)CALL( variable[11] /*c*/,COLOR_static_type___MMClosure___is_optional))( variable[11] /*c*/) /*MMClosure::is_optional*/;
+    variable[12] = CALL_static_type___MMClosure___is_optional( variable[11] /*c*/)( variable[11] /*c*/) /*MMClosure::is_optional*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[12])))) { /*if*/
       variable[8] = TAG_Int(UNTAG_Int(variable[8])+UNTAG_Int( TAG_Int(1))) /*min_arity*/;
     }
-    continue_91: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[9],COLOR_abstract_collection___Iterator___next))(variable[9]) /*ArrayIterator::next*/;
+    continue_103: while(0);
+    CALL_abstract_collection___Iterator___next(variable[9])(variable[9]) /*ArrayIterator::next*/;
   }
-  break_91: while(0);
-  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*cd*/ ==  NIT_NULL /*null*/) || (( variable[4] /*cd*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*cd*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cd*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*cd*/,COLOR_kernel___Object_____eqeq))( variable[4] /*cd*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  break_103: while(0);
+  variable[9] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*cd*/ ==  NIT_NULL /*null*/) || (( variable[4] /*cd*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*cd*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cd*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*cd*/)( variable[4] /*cd*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[9])) { /*if*/
-    variable[9] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
+    variable[9] = CALL_abstract_collection___Collection___length( variable[7] /*cs*/)( variable[7] /*cs*/) /*AbstractArray::length*/;
     variable[9] = TAG_Bool((variable[9])==( TAG_Int(0)));
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[9] = variable[0];
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[3] /*name*/;
-      variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+      variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" does not require blocs."), TAG_Int(24)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
-      variable[9] = ((array___AbstractArray___length_t)CALL( variable[4] /*cd*/,COLOR_abstract_collection___Collection___length))( variable[4] /*cd*/) /*AbstractArray::length*/;
-      variable[10] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
+      variable[9] = CALL_abstract_collection___Collection___length( variable[4] /*cd*/)( variable[4] /*cd*/) /*AbstractArray::length*/;
+      variable[10] = CALL_abstract_collection___Collection___length( variable[7] /*cs*/)( variable[7] /*cs*/) /*AbstractArray::length*/;
       variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int(variable[10]));
       variable[10] = variable[9];
       if (!UNTAG_Bool(variable[10])) { /* or */
-        variable[10] = ((array___AbstractArray___length_t)CALL( variable[4] /*cd*/,COLOR_abstract_collection___Collection___length))( variable[4] /*cd*/) /*AbstractArray::length*/;
+        variable[10] = CALL_abstract_collection___Collection___length( variable[4] /*cd*/)( variable[4] /*cd*/) /*AbstractArray::length*/;
         variable[10] = TAG_Bool(UNTAG_Int(variable[10])<UNTAG_Int( variable[8] /*min_arity*/));
       }
       variable[9] = variable[10];
       if (UNTAG_Bool(variable[9])) { /*if*/
         variable[9] = variable[0];
-        variable[10] = NEW_String_string___String___init(); /*new String*/
+        variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(7)); /*new Array[String]*/
         variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
         variable[12] = variable[11];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
         variable[13] =  variable[3] /*name*/;
-        variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+        variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
         variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)); /*new String*/
         variable[15] = variable[14];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
-        variable[16] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
+        variable[16] = CALL_abstract_collection___Collection___length( variable[7] /*cs*/)( variable[7] /*cs*/) /*AbstractArray::length*/;
         variable[17] = variable[16];
-        variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+        variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
         variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" blocs, "), TAG_Int(8)); /*new String*/
         variable[19] = variable[18];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
-        variable[20] = ((array___AbstractArray___length_t)CALL( variable[4] /*cd*/,COLOR_abstract_collection___Collection___length))( variable[4] /*cd*/) /*AbstractArray::length*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+        variable[20] = CALL_abstract_collection___Collection___length( variable[4] /*cd*/)( variable[4] /*cd*/) /*AbstractArray::length*/;
         variable[21] = variable[20];
-        variable[21] = ((string___String___to_s_t)CALL(variable[21],COLOR_string___Object___to_s))(variable[21]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[21]) /*String::append*/;
+        variable[21] = CALL_string___Object___to_s(variable[21])(variable[21]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[21]) /*AbstractArray::add*/;
         variable[22] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)); /*new String*/
         variable[23] = variable[22];
-        ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[23]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[23]) /*AbstractArray::add*/;
+        variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
       } else { /*if*/
-        variable[10] = ((typing___TypingVisitor___closure_break_stype_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype))( variable[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
+        variable[10] = CALL_typing___TypingVisitor___closure_break_stype( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::closure_break_stype*/;
         variable[9] = variable[10];
-        variable[11] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
+        variable[11] = CALL_typing___TypingVisitor___break_list( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::break_list*/;
         variable[10] = variable[11];
-        ((typing___TypingVisitor___closure_break_stype__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype__eq))( variable[1] /*v*/,  variable[6] /*t*/) /*TypingVisitor::closure_break_stype=*/;
+        CALL_typing___TypingVisitor___closure_break_stype__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[6] /*t*/) /*TypingVisitor::closure_break_stype=*/;
         variable[11] = NEW_Array_array___Array___init(); /*new Array[ABreakExpr]*/
-        ((typing___TypingVisitor___break_list__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list__eq))( variable[1] /*v*/, variable[11]) /*TypingVisitor::break_list=*/;
-        variable[11] = ((array___AbstractArray___length_t)CALL( variable[4] /*cd*/,COLOR_abstract_collection___Collection___length))( variable[4] /*cd*/) /*AbstractArray::length*/;
+        CALL_typing___TypingVisitor___break_list__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[11]) /*TypingVisitor::break_list=*/;
+        variable[11] = CALL_abstract_collection___Collection___length( variable[4] /*cd*/)( variable[4] /*cd*/) /*AbstractArray::length*/;
         variable[12] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[11]); /*new Range[Int]*/
         variable[11] = variable[12];
-        variable[11] = ((range___Range___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*Range::iterator*/;
+        variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*Range::iterator*/;
         while (true) { /*for*/
-          variable[12] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*Iterator::is_ok*/;
+          variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*Iterator::is_ok*/;
           if (!UNTAG_Bool(variable[12])) break; /*for*/
-          variable[12] = ((abstract_collection___Iterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*Iterator::item*/;
+          variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*Iterator::item*/;
           variable[13] = variable[12];
           variable[14] =  variable[4] /*cd*/;
           variable[15] =  variable[13] /*i*/;
@@ -3103,8 +3554,8 @@ val_t typing___AAbsSendExpr___process_closures(val_t  self, val_t  param0, val_t
           variable[17] = ATTR_array___Array____items(variable[17]) /*Array::_items*/;
           variable[17] = UNBOX_NativeArray(variable[17])[UNTAG_Int( variable[15] /*index*/)];
           variable[16] = variable[17];
-          goto return_label93;
-          return_label93: while(false);
+          goto return_label105;
+          return_label105: while(false);
           variable[14] = variable[16];
           variable[15] =  variable[7] /*cs*/;
           variable[16] =  variable[13] /*i*/;
@@ -3121,30 +3572,30 @@ val_t typing___AAbsSendExpr___process_closures(val_t  self, val_t  param0, val_t
           variable[18] = ATTR_array___Array____items(variable[18]) /*Array::_items*/;
           variable[18] = UNBOX_NativeArray(variable[18])[UNTAG_Int( variable[16] /*index*/)];
           variable[17] = variable[18];
-          goto return_label94;
-          return_label94: while(false);
+          goto return_label106;
+          return_label106: while(false);
           variable[15] = variable[17];
-          ((typing___PClosureDef___accept_typing2_t)CALL(variable[14],COLOR_typing___PClosureDef___accept_typing2))(variable[14],  variable[1] /*v*/, variable[15]) /*PClosureDef::accept_typing2*/;
-          continue_92: while(0);
-          ((abstract_collection___Iterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*Iterator::next*/;
+          CALL_typing___PClosureDef___accept_typing2(variable[14])(variable[14],  variable[1] /*v*/, variable[15]) /*PClosureDef::accept_typing2*/;
+          continue_104: while(0);
+          CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*Iterator::next*/;
         }
-        break_92: while(0);
-        variable[11] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
-        variable[11] = ((array___AbstractArray___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*AbstractArray::iterator*/;
+        break_104: while(0);
+        variable[11] = CALL_typing___TypingVisitor___break_list( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::break_list*/;
+        variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*AbstractArray::iterator*/;
         while (true) { /*for*/
-          variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/;
+          variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
           if (!UNTAG_Bool(variable[12])) break; /*for*/
-          variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/;
+          variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
           variable[13] = variable[12];
-          variable[15] = ((typing___PExpr___stype_t)CALL( variable[13] /*n*/,COLOR_syntax_base___PExpr___stype))( variable[13] /*n*/) /*PExpr::stype*/;
+          variable[15] = CALL_syntax_base___PExpr___stype( variable[13] /*n*/)( variable[13] /*n*/) /*PExpr::stype*/;
           variable[14] = variable[15];
-          variable[15] = TAG_Bool(( variable[6] /*t*/ ==  NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))( variable[6] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+          variable[15] = TAG_Bool(( variable[6] /*t*/ ==  NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*t*/)( variable[6] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
           variable[16] = variable[15];
           if (!UNTAG_Bool(variable[16])) { /* or */
-            variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*t*/ ==  NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*t*/,COLOR_kernel___Object_____eqeq))( variable[6] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+            variable[16] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[6] /*t*/ ==  NIT_NULL /*null*/) || (( variable[6] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*t*/)( variable[6] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
             variable[17] = variable[16];
             if (UNTAG_Bool(variable[17])) { /* and */
-              variable[17] = ((static_type___MMType_____l_t)CALL( variable[6] /*t*/,COLOR_static_type___MMType_____l))( variable[6] /*t*/,  variable[14] /*ntype*/) /*MMType::<*/;
+              variable[17] = CALL_static_type___MMType_____l( variable[6] /*t*/)( variable[6] /*t*/,  variable[14] /*ntype*/) /*MMType::<*/;
             }
             variable[16] = variable[17];
           }
@@ -3152,58 +3603,59 @@ val_t typing___AAbsSendExpr___process_closures(val_t  self, val_t  param0, val_t
           if (UNTAG_Bool(variable[15])) { /*if*/
             variable[6] =  variable[14] /*ntype*/ /*t=*/;
           }
-          continue_95: while(0);
-          ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/;
+          continue_107: while(0);
+          CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
         }
-        break_95: while(0);
-        variable[11] = ((typing___TypingVisitor___break_list_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list))( variable[1] /*v*/) /*TypingVisitor::break_list*/;
-        variable[11] = ((array___AbstractArray___iterator_t)CALL(variable[11],COLOR_abstract_collection___Collection___iterator))(variable[11]) /*AbstractArray::iterator*/;
+        break_107: while(0);
+        variable[11] = CALL_typing___TypingVisitor___break_list( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::break_list*/;
+        variable[11] = CALL_abstract_collection___Collection___iterator(variable[11])(variable[11]) /*AbstractArray::iterator*/;
         while (true) { /*for*/
-          variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/;
+          variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
           if (!UNTAG_Bool(variable[12])) break; /*for*/
-          variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/;
+          variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
           variable[13] = variable[12];
-          ((syntax_base___AbsSyntaxVisitor___check_conform_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_conform_expr))( variable[1] /*v*/,  variable[13] /*n*/,  variable[6] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
-          continue_96: while(0);
-          ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/;
+          CALL_syntax_base___AbsSyntaxVisitor___check_conform_expr( variable[1] /*v*/)( variable[1] /*v*/,  variable[13] /*n*/,  variable[6] /*t*/) /*AbsSyntaxVisitor::check_conform_expr*/;
+          continue_108: while(0);
+          CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
         }
-        break_96: while(0);
-        ((typing___TypingVisitor___closure_break_stype__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure_break_stype__eq))( variable[1] /*v*/,  variable[9] /*old_bbst*/) /*TypingVisitor::closure_break_stype=*/;
-        ((typing___TypingVisitor___break_list__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___break_list__eq))( variable[1] /*v*/,  variable[10] /*old_bl*/) /*TypingVisitor::break_list=*/;
+        break_108: while(0);
+        CALL_typing___TypingVisitor___closure_break_stype__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[9] /*old_bbst*/) /*TypingVisitor::closure_break_stype=*/;
+        CALL_typing___TypingVisitor___break_list__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[10] /*old_bl*/) /*TypingVisitor::break_list=*/;
       }
     }
   } else { /*if*/
     variable[9] = TAG_Bool(( variable[8] /*min_arity*/)!=( TAG_Int(0)));
     if (UNTAG_Bool(variable[9])) { /*if*/
       variable[9] = variable[0];
-      variable[10] = NEW_String_string___String___init(); /*new String*/
+      variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[11] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
       variable[12] = variable[11];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
       variable[13] =  variable[3] /*name*/;
-      variable[13] = ((string___String___to_s_t)CALL(variable[13],COLOR_string___Object___to_s))(variable[13]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[13]) /*String::append*/;
+      variable[13] = CALL_string___Object___to_s(variable[13])(variable[13]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(" requires "), TAG_Int(10)); /*new String*/
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[15]) /*String::append*/;
-      variable[16] = ((array___AbstractArray___length_t)CALL( variable[7] /*cs*/,COLOR_abstract_collection___Collection___length))( variable[7] /*cs*/) /*AbstractArray::length*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[15]) /*AbstractArray::add*/;
+      variable[16] = CALL_abstract_collection___Collection___length( variable[7] /*cs*/)( variable[7] /*cs*/) /*AbstractArray::length*/;
       variable[17] = variable[16];
-      variable[17] = ((string___String___to_s_t)CALL(variable[17],COLOR_string___Object___to_s))(variable[17]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[17]) /*String::append*/;
+      variable[17] = CALL_string___Object___to_s(variable[17])(variable[17]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[17]) /*AbstractArray::add*/;
       variable[18] = NEW_String_string___String___with_native(BOX_NativeString(" blocs."), TAG_Int(7)); /*new String*/
       variable[19] = variable[18];
-      ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[19]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[19]) /*AbstractArray::add*/;
+      variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[9], variable[10]) /*AbsSyntaxVisitor::error*/;
     }
   }
   variable[5] =  variable[6] /*t*/;
-  goto return_label90;
-  return_label90: while(false);
+  goto return_label102;
+  return_label102: while(false);
   tracehead = trace.prev;
   return variable[5];
 }
 val_t typing___AAbsSendExpr___prop(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 988, LOCATE_typing___AAbsSendExpr___prop};
+  struct trace_t trace = {NULL, NULL, 1044, LOCATE_typing___AAbsSendExpr___prop};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3212,7 +3664,7 @@ val_t typing___AAbsSendExpr___prop(val_t  self) {
   return ATTR_typing___AAbsSendExpr____prop( self) /*AAbsSendExpr::_prop*/;
 }
 val_t typing___AAbsSendExpr___arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 991, LOCATE_typing___AAbsSendExpr___arguments};
+  struct trace_t trace = {NULL, NULL, 1047, LOCATE_typing___AAbsSendExpr___arguments};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3221,7 +3673,7 @@ val_t typing___AAbsSendExpr___arguments(val_t  self) {
   return ATTR_typing___AAbsSendExpr____arguments( self) /*AAbsSendExpr::_arguments*/;
 }
 val_t typing___AAbsSendExpr___return_type(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 994, LOCATE_typing___AAbsSendExpr___return_type};
+  struct trace_t trace = {NULL, NULL, 1050, LOCATE_typing___AAbsSendExpr___return_type};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3230,7 +3682,7 @@ val_t typing___AAbsSendExpr___return_type(val_t  self) {
   return ATTR_typing___AAbsSendExpr____return_type( self) /*AAbsSendExpr::_return_type*/;
 }
 void typing___ASuperInitCall___register_super_init_call(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1002, LOCATE_typing___ASuperInitCall___register_super_init_call};
+  struct trace_t trace = {NULL, NULL, 1058, LOCATE_typing___ASuperInitCall___register_super_init_call};
   val_t variable[21];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3239,147 +3691,151 @@ void typing___ASuperInitCall___register_super_init_call(val_t  self, val_t  para
   variable[1] =  param0;
   variable[2] =  param1;
   variable[4] = variable[0];
-  variable[4] = ((parser_prod___PNode___parent_t)CALL(variable[4],COLOR_parser_prod___PNode___parent))(variable[4]) /*PNode::parent*/;
-  variable[5] = ((typing___TypingVisitor___top_block_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___top_block))( variable[1] /*v*/) /*TypingVisitor::top_block*/;
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4], variable[5]) /*Object::==*/)))))));
+  variable[4] = CALL_parser_prod___PNode___parent(variable[4])(variable[4]) /*PNode::parent*/;
+  variable[5] = CALL_typing___TypingVisitor___top_block( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::top_block*/;
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[4] == variable[5]) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4],variable[5])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[5]) /*Object::==*/)))))));
   variable[5] = variable[4];
   if (UNTAG_Bool(variable[5])) { /* and */
     variable[5] = variable[0];
-    variable[6] = ((typing___TypingVisitor___top_block_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___top_block))( variable[1] /*v*/) /*TypingVisitor::top_block*/;
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5], variable[6]) /*Object::==*/)))))));
+    variable[6] = CALL_typing___TypingVisitor___top_block( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::top_block*/;
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[5] == variable[6]) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5],variable[6])):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5], variable[6]) /*Object::==*/)))))));
   }
   variable[4] = variable[5];
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor invocation "), TAG_Int(30)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
     variable[8] =  variable[2] /*property*/;
-    variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[8]) /*String::append*/;
+    variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[8]) /*AbstractArray::add*/;
     variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" must not be in nested block."), TAG_Int(29)); /*new String*/
     variable[10] = variable[9];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[10]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[10]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
   }
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___module_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___module))( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL( variable[2] /*property*/,COLOR_abstractmetamodel___MMLocalProperty___global))( variable[2] /*property*/) /*MMLocalProperty::global*/;
-  variable[6] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[6]) /*MMGlobalProperty::intro*/;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
-  variable[6] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalClass___global))(variable[6]) /*MMLocalClass::global*/;
-  variable[5] = ((abstractmetamodel___MMModule_____bra_t)CALL(variable[5],COLOR_abstractmetamodel___MMModule_____bra))(variable[5], variable[6]) /*MMModule::[]*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___module( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::module*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global( variable[2] /*property*/)( variable[2] /*property*/) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[6])(variable[6]) /*MMGlobalProperty::intro*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[6])(variable[6]) /*MMLocalProperty::local_class*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalClass___global(variable[6])(variable[6]) /*MMLocalClass::global*/;
+  variable[5] = CALL_abstractmetamodel___MMModule_____bra(variable[5])(variable[5], variable[6]) /*MMModule::[]*/;
   variable[4] = variable[5];
   variable[5] =  NIT_NULL /*null*/;
-  variable[6] = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
-  variable[6] = ((array___AbstractArray___is_empty_t)CALL(variable[6],COLOR_abstract_collection___Collection___is_empty))(variable[6]) /*AbstractArray::is_empty*/;
+  variable[6] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
+  variable[6] = CALL_abstract_collection___Collection___is_empty(variable[6])(variable[6]) /*AbstractArray::is_empty*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
-    variable[6] = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
-    variable[6] = ((abstract_collection___IndexedCollection___last_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___last))(variable[6]) /*IndexedCollection::last*/;
-    variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
-    variable[6] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[6]) /*MMGlobalProperty::intro*/;
-    variable[6] = ((abstractmetamodel___MMLocalProperty___local_class_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___local_class))(variable[6]) /*MMLocalProperty::local_class*/;
+    variable[6] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
+    variable[6] = CALL_abstract_collection___IndexedCollection___last(variable[6])(variable[6]) /*IndexedCollection::last*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+    variable[6] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[6])(variable[6]) /*MMGlobalProperty::intro*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalProperty___local_class(variable[6])(variable[6]) /*MMLocalProperty::local_class*/;
     variable[5] = variable[6] /*prev_class=*/;
   }
-  variable[7] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  variable[7] = ((abstractmetamodel___MMLocalClass___cshe_t)CALL(variable[7],COLOR_abstractmetamodel___MMLocalClass___cshe))(variable[7]) /*MMLocalClass::cshe*/;
-  variable[7] = ((partial_order___PartialOrderElement___reverse_linear_extension_t)CALL(variable[7],COLOR_partial_order___PartialOrderElement___reverse_linear_extension))(variable[7]) /*PartialOrderElement::reverse_linear_extension*/;
+  variable[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[7] = CALL_abstractmetamodel___MMLocalClass___cshe(variable[7])(variable[7]) /*MMLocalClass::cshe*/;
+  variable[7] = CALL_partial_order___PartialOrderElement___reverse_linear_extension(variable[7])(variable[7]) /*PartialOrderElement::reverse_linear_extension*/;
   variable[6] = variable[7];
-  variable[7] = ((syntax_base___AbsSyntaxVisitor___local_class_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_class))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
-  variable[7] = TAG_Bool(( variable[4] /*cla*/ == variable[7]) || (( variable[4] /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cla*/,variable[7])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))( variable[4] /*cla*/, variable[7]) /*Object::==*/)))));
+  variable[7] = CALL_syntax_base___AbsSyntaxVisitor___local_class( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_class*/;
+  variable[7] = TAG_Bool(( variable[4] /*cla*/ == variable[7]) || (( variable[4] /*cla*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*cla*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cla*/,variable[7])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*cla*/)( variable[4] /*cla*/, variable[7]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[7])) { /*if*/
-    ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_other_init_call__eq))( variable[1] /*v*/,  TAG_Bool(true)) /*TypingVisitor::explicit_other_init_call=*/;
+    CALL_typing___TypingVisitor___explicit_other_init_call__eq( variable[1] /*v*/)( variable[1] /*v*/,  TAG_Bool(true)) /*TypingVisitor::explicit_other_init_call=*/;
   } else { /*if*/
-    variable[7] = ((array___AbstractArray___has_t)CALL( variable[6] /*order*/,COLOR_abstract_collection___Collection___has))( variable[6] /*order*/,  variable[4] /*cla*/) /*AbstractArray::has*/;
+    variable[7] = CALL_abstract_collection___Collection___has( variable[6] /*order*/)( variable[6] /*order*/,  variable[4] /*cla*/) /*AbstractArray::has*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[7])))) { /*if*/
       variable[7] = variable[0];
-      variable[8] = NEW_String_string___String___init(); /*new String*/
+      variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of class "), TAG_Int(28)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
       variable[11] =  variable[4] /*cla*/;
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" must be one in "), TAG_Int(16)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
       variable[14] = NEW_String_string___String___with_native(BOX_NativeString(", "), TAG_Int(2)); /*new String*/
-      variable[14] = ((string___Collection___join_t)CALL( variable[6] /*order*/,COLOR_string___Collection___join))( variable[6] /*order*/, variable[14]) /*Collection::join*/;
+      variable[14] = CALL_string___Collection___join( variable[6] /*order*/)( variable[6] /*order*/, variable[14]) /*Collection::join*/;
       variable[15] = variable[14];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[15]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[15]) /*AbstractArray::add*/;
       variable[16] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
       variable[17] = variable[16];
-      ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[17]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[17]) /*AbstractArray::add*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
-      variable[7] = TAG_Bool(( variable[4] /*cla*/ ==  variable[5] /*prev_class*/) || (( variable[4] /*cla*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cla*/, variable[5] /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*cla*/,COLOR_kernel___Object_____eqeq))( variable[4] /*cla*/,  variable[5] /*prev_class*/) /*Object::==*/)))));
+      variable[7] = TAG_Bool(( variable[4] /*cla*/ ==  variable[5] /*prev_class*/) || (( variable[4] /*cla*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*cla*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*cla*/, variable[5] /*prev_class*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*cla*/)( variable[4] /*cla*/,  variable[5] /*prev_class*/) /*Object::==*/)))));
       if (UNTAG_Bool(variable[7])) { /*if*/
         variable[7] = variable[0];
-        variable[8] = NEW_String_string___String___init(); /*new String*/
+        variable[8] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[9] = NEW_String_string___String___with_native(BOX_NativeString("Error: Only one super constructor invocation of class "), TAG_Int(54)); /*new String*/
         variable[10] = variable[9];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[10]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[10]) /*AbstractArray::add*/;
         variable[11] =  variable[4] /*cla*/;
-        variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[11]) /*String::append*/;
+        variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[11]) /*AbstractArray::add*/;
         variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is allowed."), TAG_Int(12)); /*new String*/
         variable[13] = variable[12];
-        ((string___String___append_t)CALL(variable[8],COLOR_abstract_collection___IndexedCollection___append))(variable[8], variable[13]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[8])(variable[8], variable[13]) /*AbstractArray::add*/;
+        variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[7], variable[8]) /*AbsSyntaxVisitor::error*/;
       } else { /*if*/
-        variable[8] = TAG_Bool(( variable[5] /*prev_class*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prev_class*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*prev_class*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prev_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*prev_class*/,COLOR_kernel___Object_____eqeq))( variable[5] /*prev_class*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+        variable[8] = TAG_Bool(( variable[5] /*prev_class*/ ==  NIT_NULL /*null*/) || (( variable[5] /*prev_class*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*prev_class*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*prev_class*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*prev_class*/)( variable[5] /*prev_class*/,  NIT_NULL /*null*/) /*Object::==*/)))));
         variable[7] = variable[8];
-        variable[8] = ((array___AbstractArray___iterator_t)CALL( variable[6] /*order*/,COLOR_abstract_collection___Collection___iterator))( variable[6] /*order*/) /*AbstractArray::iterator*/;
+        variable[8] = CALL_abstract_collection___Collection___iterator( variable[6] /*order*/)( variable[6] /*order*/) /*AbstractArray::iterator*/;
         while (true) { /*for*/
-          variable[9] = ((array___ArrayIterator___is_ok_t)CALL(variable[8],COLOR_abstract_collection___Iterator___is_ok))(variable[8]) /*ArrayIterator::is_ok*/;
+          variable[9] = CALL_abstract_collection___Iterator___is_ok(variable[8])(variable[8]) /*ArrayIterator::is_ok*/;
           if (!UNTAG_Bool(variable[9])) break; /*for*/
-          variable[9] = ((array___ArrayIterator___item_t)CALL(variable[8],COLOR_abstract_collection___Iterator___item))(variable[8]) /*ArrayIterator::item*/;
+          variable[9] = CALL_abstract_collection___Iterator___item(variable[8])(variable[8]) /*ArrayIterator::item*/;
           variable[10] = variable[9];
-          variable[11] = TAG_Bool(( variable[10] /*c*/ ==  variable[5] /*prev_class*/) || (( variable[10] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c*/, variable[5] /*prev_class*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))( variable[10] /*c*/,  variable[5] /*prev_class*/) /*Object::==*/)))));
+          variable[11] = TAG_Bool(( variable[10] /*c*/ ==  variable[5] /*prev_class*/) || (( variable[10] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c*/, variable[5] /*prev_class*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*c*/)( variable[10] /*c*/,  variable[5] /*prev_class*/) /*Object::==*/)))));
           if (UNTAG_Bool(variable[11])) { /*if*/
             variable[7] =  TAG_Bool(true) /*last_is_found=*/;
           } else { /*if*/
-            variable[11] = TAG_Bool(( variable[10] /*c*/ ==  variable[4] /*cla*/) || (( variable[10] /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c*/, variable[4] /*cla*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[10] /*c*/,COLOR_kernel___Object_____eqeq))( variable[10] /*c*/,  variable[4] /*cla*/) /*Object::==*/)))));
+            variable[11] = TAG_Bool(( variable[10] /*c*/ ==  variable[4] /*cla*/) || (( variable[10] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[10] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[10] /*c*/, variable[4] /*cla*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[10] /*c*/)( variable[10] /*c*/,  variable[4] /*cla*/) /*Object::==*/)))));
             if (UNTAG_Bool(variable[11])) { /*if*/
               if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool( variable[7] /*last_is_found*/)))) { /*if*/
                variable[11] = variable[0];
-               variable[12] = NEW_String_string___String___init(); /*new String*/
+               variable[12] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
                variable[13] = NEW_String_string___String___with_native(BOX_NativeString("Error: Constructor of "), TAG_Int(22)); /*new String*/
                variable[14] = variable[13];
-               ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[14]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[14]) /*AbstractArray::add*/;
                variable[15] =  variable[10] /*c*/;
-               variable[15] = ((string___String___to_s_t)CALL(variable[15],COLOR_string___Object___to_s))(variable[15]) /*String::to_s*/;
-               ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[15]) /*String::append*/;
+               variable[15] = CALL_string___Object___to_s(variable[15])(variable[15]) /*Object::to_s*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[15]) /*AbstractArray::add*/;
                variable[16] = NEW_String_string___String___with_native(BOX_NativeString(" must be invoked before constructor of "), TAG_Int(39)); /*new String*/
                variable[17] = variable[16];
-               ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[17]) /*String::append*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[17]) /*AbstractArray::add*/;
                variable[18] =  variable[5] /*prev_class*/;
-               variable[18] = ((string___String___to_s_t)CALL(variable[18],COLOR_string___Object___to_s))(variable[18]) /*String::to_s*/;
-               ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[18]) /*String::append*/;
+               variable[18] = CALL_string___Object___to_s(variable[18])(variable[18]) /*Object::to_s*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[18]) /*AbstractArray::add*/;
                variable[19] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
                variable[20] = variable[19];
-               ((string___String___append_t)CALL(variable[12],COLOR_abstract_collection___IndexedCollection___append))(variable[12], variable[20]) /*String::append*/;
-               ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[11], variable[12]) /*AbsSyntaxVisitor::error*/;
+               CALL_abstract_collection___SimpleCollection___add(variable[12])(variable[12], variable[20]) /*AbstractArray::add*/;
+               variable[12] = CALL_string___Object___to_s(variable[12])(variable[12]) /*Object::to_s*/;
+               CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[11], variable[12]) /*AbsSyntaxVisitor::error*/;
               }
-              variable[11] = ((typing___TypingVisitor___explicit_super_init_calls_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___explicit_super_init_calls))( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
-              ((array___AbstractArray___add_t)CALL(variable[11],COLOR_abstract_collection___SimpleCollection___add))(variable[11],  variable[2] /*property*/) /*AbstractArray::add*/;
-              goto break_98;
+              variable[11] = CALL_typing___TypingVisitor___explicit_super_init_calls( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::explicit_super_init_calls*/;
+              CALL_abstract_collection___SimpleCollection___add(variable[11])(variable[11],  variable[2] /*property*/) /*AbstractArray::add*/;
+              goto break_110;
             }
           }
-          continue_98: while(0);
-          ((array___ArrayIterator___next_t)CALL(variable[8],COLOR_abstract_collection___Iterator___next))(variable[8]) /*ArrayIterator::next*/;
+          continue_110: while(0);
+          CALL_abstract_collection___Iterator___next(variable[8])(variable[8]) /*ArrayIterator::next*/;
         }
-        break_98: while(0);
+        break_110: while(0);
       }
     }
   }
-  return_label97: while(false);
+  return_label109: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ANewExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1039, LOCATE_typing___ANewExpr___after_typing};
-    static val_t once_value_100; static int once_bool_100; /* Once value for variable[5]*/
+  struct trace_t trace = {NULL, NULL, 1095, LOCATE_typing___ANewExpr___after_typing};
+    static val_t once_value_112; static int once_bool_112; /* Once value for variable[5]*/
   val_t variable[13];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3387,90 +3843,92 @@ void typing___ANewExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ANewExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___ANewExpr___n_type))(variable[4]) /*ANewExpr::n_type*/;
-  variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
+  variable[4] = CALL_parser_nodes___ANewExpr___n_type(variable[4])(variable[4]) /*ANewExpr::n_type*/;
+  variable[4] = CALL_typing___PType___stype(variable[4])(variable[4]) /*PType::stype*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*t*/,COLOR_kernel___Object_____eqeq))( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*t*/ ==  NIT_NULL /*null*/) || (( variable[3] /*t*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*t*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*t*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*t*/)( variable[3] /*t*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    goto return_label99;
+    goto return_label111;
   }
-  variable[4] = ((static_type___MMType___local_class_t)CALL( variable[3] /*t*/,COLOR_static_type___MMType___local_class))( variable[3] /*t*/) /*MMType::local_class*/;
-  variable[4] = ((abstractmetamodel___MMLocalClass___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___global))(variable[4]) /*MMLocalClass::global*/;
-  variable[4] = ((abstractmetamodel___MMGlobalClass___is_abstract_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalClass___is_abstract))(variable[4]) /*MMGlobalClass::is_abstract*/;
+  variable[4] = CALL_static_type___MMType___local_class( variable[3] /*t*/)( variable[3] /*t*/) /*MMType::local_class*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___global(variable[4])(variable[4]) /*MMLocalClass::global*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalClass___is_abstract(variable[4])(variable[4]) /*MMGlobalClass::is_abstract*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = NEW_String_string___String___init(); /*new String*/
+    variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to instantiate abstract class "), TAG_Int(41)); /*new String*/
     variable[7] = variable[6];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
-    variable[8] = ((static_type___MMType___local_class_t)CALL( variable[3] /*t*/,COLOR_static_type___MMType___local_class))( variable[3] /*t*/) /*MMType::local_class*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
+    variable[8] = CALL_static_type___MMType___local_class( variable[3] /*t*/)( variable[3] /*t*/) /*MMType::local_class*/;
     variable[9] = variable[8];
-    variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+    variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
     variable[10] = NEW_String_string___String___with_native(BOX_NativeString("."), TAG_Int(1)); /*new String*/
     variable[11] = variable[10];
-    ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
-    goto return_label99;
+    CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+    variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+    goto return_label111;
   }
   /*variable[4] is variable name*/
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ANewExpr___n_id_t)CALL(variable[5],COLOR_parser_nodes___ANewExpr___n_id))(variable[5]) /*ANewExpr::n_id*/;
-  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = CALL_parser_nodes___ANewExpr___n_id(variable[5])(variable[5]) /*ANewExpr::n_id*/;
+  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    if (once_bool_100) variable[5] = once_value_100;
+    if (once_bool_112) variable[5] = once_value_112;
     else {
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-      variable[5] = ((symbol___String___to_symbol_t)CALL(variable[5],COLOR_symbol___String___to_symbol))(variable[5]) /*String::to_symbol*/;
-      once_value_100 = variable[5];
-      once_bool_100 = true;
+      variable[5] = CALL_symbol___String___to_symbol(variable[5])(variable[5]) /*String::to_symbol*/;
+      once_value_112 = variable[5];
+      once_bool_112 = true;
     }
     variable[4] = variable[5] /*name=*/;
   } else { /*if*/
     variable[5] = variable[0];
-    variable[5] = ((parser_nodes___ANewExpr___n_id_t)CALL(variable[5],COLOR_parser_nodes___ANewExpr___n_id))(variable[5]) /*ANewExpr::n_id*/;
-    variable[5] = ((syntax_base___Token___to_symbol_t)CALL(variable[5],COLOR_syntax_base___Token___to_symbol))(variable[5]) /*Token::to_symbol*/;
+    variable[5] = CALL_parser_nodes___ANewExpr___n_id(variable[5])(variable[5]) /*ANewExpr::n_id*/;
+    variable[5] = CALL_syntax_base___Token___to_symbol(variable[5])(variable[5]) /*Token::to_symbol*/;
     variable[4] = variable[5] /*name=*/;
   }
   variable[5] = variable[0];
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ANewExpr___n_args_t)CALL(variable[6],COLOR_parser_nodes___ANewExpr___n_args))(variable[6]) /*ANewExpr::n_args*/;
-  variable[6] = ((array___Collection___to_a_t)CALL(variable[6],COLOR_array___Collection___to_a))(variable[6]) /*Collection::to_a*/;
-  ((typing___AAbsSendExpr___do_typing_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___do_typing))(variable[5],  variable[1] /*v*/,  variable[3] /*t*/,  TAG_Bool(false),  TAG_Bool(false),  variable[4] /*name*/, variable[6],  NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
+  variable[6] = CALL_parser_nodes___ANewExpr___n_args(variable[6])(variable[6]) /*ANewExpr::n_args*/;
+  variable[6] = CALL_array___Collection___to_a(variable[6])(variable[6]) /*Collection::to_a*/;
+  CALL_typing___AAbsSendExpr___do_typing(variable[5])(variable[5],  variable[1] /*v*/,  variable[3] /*t*/,  TAG_Bool(false),  TAG_Bool(false),  variable[4] /*name*/, variable[6],  NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
   variable[5] = variable[0];
-  variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
-  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[5],COLOR_kernel___Object_____eqeq))(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[5] = CALL_typing___AAbsSendExpr___prop(variable[5])(variable[5]) /*AAbsSendExpr::prop*/;
+  variable[5] = TAG_Bool((variable[5] ==  NIT_NULL /*null*/) || ((variable[5] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[5])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[5], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[5])(variable[5],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[5])) { /*if*/
-    goto return_label99;
+    goto return_label111;
   }
   variable[5] = variable[0];
-  variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
-  variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[5]) /*MMLocalProperty::global*/;
-  variable[5] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[5],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[5]) /*MMGlobalProperty::is_init*/;
+  variable[5] = CALL_typing___AAbsSendExpr___prop(variable[5])(variable[5]) /*AAbsSendExpr::prop*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
+  variable[5] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[5])(variable[5]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
     variable[5] = variable[0];
-    variable[6] = NEW_String_string___String___init(); /*new String*/
+    variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
     variable[9] = variable[0];
-    variable[9] = ((typing___AAbsSendExpr___prop_t)CALL(variable[9],COLOR_typing___AAbsSendExpr___prop))(variable[9]) /*AAbsSendExpr::prop*/;
+    variable[9] = CALL_typing___AAbsSendExpr___prop(variable[9])(variable[9]) /*AAbsSendExpr::prop*/;
     variable[10] = variable[9];
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" is not a constructor."), TAG_Int(22)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
   }
   variable[5] = variable[0];
   ATTR_typing___PExpr____stype(variable[5]) /*PExpr::_stype*/ =  variable[3] /*t*/;
-  return_label99: while(false);
+  return_label111: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ASendExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1076, LOCATE_typing___ASendExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 1132, LOCATE_typing___ASendExpr___after_typing};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3478,50 +3936,50 @@ void typing___ASendExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  ((typing___ASendExpr___do_all_typing_t)CALL(variable[3],COLOR_typing___ASendExpr___do_all_typing))(variable[3],  variable[1] /*v*/) /*ASendExpr::do_all_typing*/;
-  return_label101: while(false);
+  CALL_typing___ASendExpr___do_all_typing(variable[3])(variable[3],  variable[1] /*v*/) /*ASendExpr::do_all_typing*/;
+  return_label113: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___ASendExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1067, LOCATE_typing___ASendExpr___name};
+  struct trace_t trace = {NULL, NULL, 1123, LOCATE_typing___ASendExpr___name};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1067);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1123);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t typing___ASendExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1070, LOCATE_typing___ASendExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1126, LOCATE_typing___ASendExpr___raw_arguments};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1070);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1126);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t typing___ASendExpr___closure_defs(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1073, LOCATE_typing___ASendExpr___closure_defs};
+  struct trace_t trace = {NULL, NULL, 1129, LOCATE_typing___ASendExpr___closure_defs};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  NIT_NULL /*null*/;
-  goto return_label102;
-  return_label102: while(false);
+  goto return_label114;
+  return_label114: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 void typing___ASendExpr___do_all_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1081, LOCATE_typing___ASendExpr___do_all_typing};
+  struct trace_t trace = {NULL, NULL, 1137, LOCATE_typing___ASendExpr___do_all_typing};
   val_t variable[11];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3529,94 +3987,96 @@ void typing___ASendExpr___do_all_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
-  variable[3] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
+  variable[3] = CALL_parser_nodes___ASendExpr___n_expr(variable[3])(variable[3]) /*ASendExpr::n_expr*/;
+  variable[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
-    goto return_label103;
+    goto return_label115;
   }
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
+  variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[4])(variable[4]) /*ASendExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ASendExpr___n_expr))(variable[5]) /*ASendExpr::n_expr*/;
-  variable[5] = ((typing___PExpr___is_implicit_self_t)CALL(variable[5],COLOR_typing___PExpr___is_implicit_self))(variable[5]) /*PExpr::is_implicit_self*/;
+  variable[5] = CALL_parser_nodes___ASendExpr___n_expr(variable[5])(variable[5]) /*ASendExpr::n_expr*/;
+  variable[5] = CALL_typing___PExpr___is_implicit_self(variable[5])(variable[5]) /*PExpr::is_implicit_self*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
-  variable[6] = ((typing___PExpr___is_self_t)CALL(variable[6],COLOR_typing___PExpr___is_self))(variable[6]) /*PExpr::is_self*/;
+  variable[6] = CALL_parser_nodes___ASendExpr___n_expr(variable[6])(variable[6]) /*ASendExpr::n_expr*/;
+  variable[6] = CALL_typing___PExpr___is_self(variable[6])(variable[6]) /*PExpr::is_self*/;
   variable[7] = variable[0];
-  variable[7] = ((typing___ASendExpr___name_t)CALL(variable[7],COLOR_typing___ASendExpr___name))(variable[7]) /*ASendExpr::name*/;
+  variable[7] = CALL_typing___ASendExpr___name(variable[7])(variable[7]) /*ASendExpr::name*/;
   variable[8] = variable[0];
-  variable[8] = ((typing___ASendExpr___raw_arguments_t)CALL(variable[8],COLOR_typing___ASendExpr___raw_arguments))(variable[8]) /*ASendExpr::raw_arguments*/;
+  variable[8] = CALL_typing___ASendExpr___raw_arguments(variable[8])(variable[8]) /*ASendExpr::raw_arguments*/;
   variable[9] = variable[0];
-  variable[9] = ((typing___ASendExpr___closure_defs_t)CALL(variable[9],COLOR_typing___ASendExpr___closure_defs))(variable[9]) /*ASendExpr::closure_defs*/;
-  ((typing___AAbsSendExpr___do_typing_t)CALL(variable[3],COLOR_typing___AAbsSendExpr___do_typing))(variable[3],  variable[1] /*v*/, variable[4], variable[5], variable[6], variable[7], variable[8], variable[9]) /*AAbsSendExpr::do_typing*/;
+  variable[9] = CALL_typing___ASendExpr___closure_defs(variable[9])(variable[9]) /*ASendExpr::closure_defs*/;
+  CALL_typing___AAbsSendExpr___do_typing(variable[3])(variable[3],  variable[1] /*v*/, variable[4], variable[5], variable[6], variable[7], variable[8], variable[9]) /*AAbsSendExpr::do_typing*/;
   variable[3] = variable[0];
-  variable[3] = ((typing___AAbsSendExpr___prop_t)CALL(variable[3],COLOR_typing___AAbsSendExpr___prop))(variable[3]) /*AAbsSendExpr::prop*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_typing___AAbsSendExpr___prop(variable[3])(variable[3]) /*AAbsSendExpr::prop*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
-    goto return_label103;
+    goto return_label115;
   }
   variable[3] = variable[0];
-  variable[3] = ((typing___AAbsSendExpr___prop_t)CALL(variable[3],COLOR_typing___AAbsSendExpr___prop))(variable[3]) /*AAbsSendExpr::prop*/;
-  variable[3] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[3]) /*MMLocalProperty::global*/;
-  variable[3] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[3],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[3]) /*MMGlobalProperty::is_init*/;
+  variable[3] = CALL_typing___AAbsSendExpr___prop(variable[3])(variable[3]) /*AAbsSendExpr::prop*/;
+  variable[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable[3])(variable[3]) /*MMLocalProperty::global*/;
+  variable[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[3])(variable[3]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    variable[3] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-    variable[3] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[3],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[3]) /*MMLocalProperty::global*/;
-    variable[3] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[3],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[3]) /*MMGlobalProperty::is_init*/;
+    variable[3] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+    variable[3] = CALL_abstractmetamodel___MMLocalProperty___global(variable[3])(variable[3]) /*MMLocalProperty::global*/;
+    variable[3] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[3])(variable[3]) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
       variable[3] = variable[0];
-      variable[4] = NEW_String_string___String___init(); /*new String*/
+      variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
       variable[6] = variable[5];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
       variable[7] = variable[0];
-      variable[7] = ((typing___AAbsSendExpr___prop_t)CALL(variable[7],COLOR_typing___AAbsSendExpr___prop))(variable[7]) /*AAbsSendExpr::prop*/;
+      variable[7] = CALL_typing___AAbsSendExpr___prop(variable[7])(variable[7]) /*AAbsSendExpr::prop*/;
       variable[8] = variable[7];
-      variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+      variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
       variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
       variable[10] = variable[9];
-      ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+      variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[3] = variable[0];
-      variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
-      variable[3] = ((typing___PExpr___is_self_t)CALL(variable[3],COLOR_typing___PExpr___is_self))(variable[3]) /*PExpr::is_self*/;
+      variable[3] = CALL_parser_nodes___ASendExpr___n_expr(variable[3])(variable[3]) /*ASendExpr::n_expr*/;
+      variable[3] = CALL_typing___PExpr___is_self(variable[3])(variable[3]) /*PExpr::is_self*/;
       if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
         variable[3] = variable[0];
-        variable[4] = NEW_String_string___String___init(); /*new String*/
+        variable[4] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[5] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
         variable[6] = variable[5];
-        ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[6]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[6]) /*AbstractArray::add*/;
         variable[7] = variable[0];
-        variable[7] = ((typing___AAbsSendExpr___prop_t)CALL(variable[7],COLOR_typing___AAbsSendExpr___prop))(variable[7]) /*AAbsSendExpr::prop*/;
+        variable[7] = CALL_typing___AAbsSendExpr___prop(variable[7])(variable[7]) /*AAbsSendExpr::prop*/;
         variable[8] = variable[7];
-        variable[8] = ((string___String___to_s_t)CALL(variable[8],COLOR_string___Object___to_s))(variable[8]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[8]) /*String::append*/;
+        variable[8] = CALL_string___Object___to_s(variable[8])(variable[8]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[8]) /*AbstractArray::add*/;
         variable[9] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
         variable[10] = variable[9];
-        ((string___String___append_t)CALL(variable[4],COLOR_abstract_collection___IndexedCollection___append))(variable[4], variable[10]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[4])(variable[4], variable[10]) /*AbstractArray::add*/;
+        variable[4] = CALL_string___Object___to_s(variable[4])(variable[4]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[3], variable[4]) /*AbsSyntaxVisitor::error*/;
       } else { /*if*/
         variable[3] = variable[0];
         variable[4] = variable[0];
-        variable[4] = ((typing___AAbsSendExpr___prop_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___prop))(variable[4]) /*AAbsSendExpr::prop*/;
-        ((typing___ASuperInitCall___register_super_init_call_t)CALL(variable[3],COLOR_typing___ASuperInitCall___register_super_init_call))(variable[3],  variable[1] /*v*/, variable[4]) /*ASuperInitCall::register_super_init_call*/;
+        variable[4] = CALL_typing___AAbsSendExpr___prop(variable[4])(variable[4]) /*AAbsSendExpr::prop*/;
+        CALL_typing___ASuperInitCall___register_super_init_call(variable[3])(variable[3],  variable[1] /*v*/, variable[4]) /*ASuperInitCall::register_super_init_call*/;
       }
     }
   }
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((typing___AAbsSendExpr___return_type_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___return_type))(variable[4]) /*AAbsSendExpr::return_type*/;
+  variable[4] = CALL_typing___AAbsSendExpr___return_type(variable[4])(variable[4]) /*AAbsSendExpr::return_type*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label103: while(false);
+  return_label115: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___ASendReassignExpr___do_all_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1105, LOCATE_typing___ASendReassignExpr___do_all_typing};
+  struct trace_t trace = {NULL, NULL, 1161, LOCATE_typing___ASendReassignExpr___do_all_typing};
   val_t variable[17];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3624,188 +4084,193 @@ void typing___ASendReassignExpr___do_all_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
-  variable[3] = ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
+  variable[3] = CALL_parser_nodes___ASendExpr___n_expr(variable[3])(variable[3]) /*ASendExpr::n_expr*/;
+  variable[3] = CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[3])))) { /*if*/
-    goto return_label104;
+    goto return_label116;
   }
   variable[4] = variable[0];
-  variable[4] = ((typing___ASendExpr___raw_arguments_t)CALL(variable[4],COLOR_typing___ASendExpr___raw_arguments))(variable[4]) /*ASendExpr::raw_arguments*/;
+  variable[4] = CALL_typing___ASendExpr___raw_arguments(variable[4])(variable[4]) /*ASendExpr::raw_arguments*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ASendExpr___n_expr))(variable[5]) /*ASendExpr::n_expr*/;
-  variable[5] = ((typing___PExpr___stype_t)CALL(variable[5],COLOR_syntax_base___PExpr___stype))(variable[5]) /*PExpr::stype*/;
+  variable[5] = CALL_parser_nodes___ASendExpr___n_expr(variable[5])(variable[5]) /*ASendExpr::n_expr*/;
+  variable[5] = CALL_syntax_base___PExpr___stype(variable[5])(variable[5]) /*PExpr::stype*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
-  variable[6] = ((typing___PExpr___is_implicit_self_t)CALL(variable[6],COLOR_typing___PExpr___is_implicit_self))(variable[6]) /*PExpr::is_implicit_self*/;
+  variable[6] = CALL_parser_nodes___ASendExpr___n_expr(variable[6])(variable[6]) /*ASendExpr::n_expr*/;
+  variable[6] = CALL_typing___PExpr___is_implicit_self(variable[6])(variable[6]) /*PExpr::is_implicit_self*/;
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[7],COLOR_parser_nodes___ASendExpr___n_expr))(variable[7]) /*ASendExpr::n_expr*/;
-  variable[7] = ((typing___PExpr___is_self_t)CALL(variable[7],COLOR_typing___PExpr___is_self))(variable[7]) /*PExpr::is_self*/;
+  variable[7] = CALL_parser_nodes___ASendExpr___n_expr(variable[7])(variable[7]) /*ASendExpr::n_expr*/;
+  variable[7] = CALL_typing___PExpr___is_self(variable[7])(variable[7]) /*PExpr::is_self*/;
   variable[8] = variable[0];
-  variable[8] = ((typing___ASendExpr___name_t)CALL(variable[8],COLOR_typing___ASendExpr___name))(variable[8]) /*ASendExpr::name*/;
-  ((typing___AAbsSendExpr___do_typing_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___do_typing))(variable[4],  variable[1] /*v*/, variable[5], variable[6], variable[7], variable[8],  variable[3] /*raw_args*/,  NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
+  variable[8] = CALL_typing___ASendExpr___name(variable[8])(variable[8]) /*ASendExpr::name*/;
+  CALL_typing___AAbsSendExpr___do_typing(variable[4])(variable[4],  variable[1] /*v*/, variable[5], variable[6], variable[7], variable[8],  variable[3] /*raw_args*/,  NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
   variable[4] = variable[0];
-  variable[4] = ((typing___AAbsSendExpr___prop_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___prop))(variable[4]) /*AAbsSendExpr::prop*/;
-  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[4],COLOR_kernel___Object_____eqeq))(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = CALL_typing___AAbsSendExpr___prop(variable[4])(variable[4]) /*AAbsSendExpr::prop*/;
+  variable[4] = TAG_Bool((variable[4] ==  NIT_NULL /*null*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
-    goto return_label104;
+    goto return_label116;
   }
   variable[4] = variable[0];
-  variable[4] = ((typing___AAbsSendExpr___prop_t)CALL(variable[4],COLOR_typing___AAbsSendExpr___prop))(variable[4]) /*AAbsSendExpr::prop*/;
-  variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
-  variable[4] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[4]) /*MMGlobalProperty::is_init*/;
+  variable[4] = CALL_typing___AAbsSendExpr___prop(variable[4])(variable[4]) /*AAbsSendExpr::prop*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable[4])(variable[4]) /*MMLocalProperty::global*/;
+  variable[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[4])(variable[4]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
-    variable[4] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-    variable[4] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[4]) /*MMLocalProperty::global*/;
-    variable[4] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[4],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[4]) /*MMGlobalProperty::is_init*/;
+    variable[4] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+    variable[4] = CALL_abstractmetamodel___MMLocalProperty___global(variable[4])(variable[4]) /*MMLocalProperty::global*/;
+    variable[4] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[4])(variable[4]) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
       variable[4] = variable[0];
-      variable[5] = NEW_String_string___String___init(); /*new String*/
+      variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
       variable[7] = variable[6];
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
       variable[8] = variable[0];
-      variable[8] = ((typing___AAbsSendExpr___prop_t)CALL(variable[8],COLOR_typing___AAbsSendExpr___prop))(variable[8]) /*AAbsSendExpr::prop*/;
+      variable[8] = CALL_typing___AAbsSendExpr___prop(variable[8])(variable[8]) /*AAbsSendExpr::prop*/;
       variable[9] = variable[8];
-      variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+      variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
       variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
       variable[11] = variable[10];
-      ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+      variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[4] = variable[0];
-      variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
-      variable[4] = ((typing___PExpr___is_self_t)CALL(variable[4],COLOR_typing___PExpr___is_self))(variable[4]) /*PExpr::is_self*/;
+      variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[4])(variable[4]) /*ASendExpr::n_expr*/;
+      variable[4] = CALL_typing___PExpr___is_self(variable[4])(variable[4]) /*PExpr::is_self*/;
       if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[4])))) { /*if*/
         variable[4] = variable[0];
-        variable[5] = NEW_String_string___String___init(); /*new String*/
+        variable[5] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[6] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
         variable[7] = variable[6];
-        ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[7]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[7]) /*AbstractArray::add*/;
         variable[8] = variable[0];
-        variable[8] = ((typing___AAbsSendExpr___prop_t)CALL(variable[8],COLOR_typing___AAbsSendExpr___prop))(variable[8]) /*AAbsSendExpr::prop*/;
+        variable[8] = CALL_typing___AAbsSendExpr___prop(variable[8])(variable[8]) /*AAbsSendExpr::prop*/;
         variable[9] = variable[8];
-        variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[9]) /*String::append*/;
+        variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[9]) /*AbstractArray::add*/;
         variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
         variable[11] = variable[10];
-        ((string___String___append_t)CALL(variable[5],COLOR_abstract_collection___IndexedCollection___append))(variable[5], variable[11]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[5])(variable[5], variable[11]) /*AbstractArray::add*/;
+        variable[5] = CALL_string___Object___to_s(variable[5])(variable[5]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[4], variable[5]) /*AbsSyntaxVisitor::error*/;
       }
     }
   }
   variable[5] = variable[0];
-  variable[5] = ((typing___AAbsSendExpr___prop_t)CALL(variable[5],COLOR_typing___AAbsSendExpr___prop))(variable[5]) /*AAbsSendExpr::prop*/;
+  variable[5] = CALL_typing___AAbsSendExpr___prop(variable[5])(variable[5]) /*AAbsSendExpr::prop*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
-  variable[6] = ((typing___PExpr___stype_t)CALL(variable[6],COLOR_syntax_base___PExpr___stype))(variable[6]) /*PExpr::stype*/;
-  variable[5] = ((static_type___MMLocalProperty___signature_for_t)CALL(variable[5],COLOR_static_type___MMLocalProperty___signature_for))(variable[5], variable[6]) /*MMLocalProperty::signature_for*/;
-  variable[5] = ((static_type___MMSignature___return_type_t)CALL(variable[5],COLOR_static_type___MMSignature___return_type))(variable[5]) /*MMSignature::return_type*/;
+  variable[6] = CALL_parser_nodes___ASendExpr___n_expr(variable[6])(variable[6]) /*ASendExpr::n_expr*/;
+  variable[6] = CALL_syntax_base___PExpr___stype(variable[6])(variable[6]) /*PExpr::stype*/;
+  variable[5] = CALL_static_type___MMLocalProperty___signature_for(variable[5])(variable[5], variable[6]) /*MMLocalProperty::signature_for*/;
+  variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
   variable[4] = variable[5];
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[5],COLOR_parser_nodes___ASendExpr___n_expr))(variable[5]) /*ASendExpr::n_expr*/;
-  variable[5] = ((typing___PExpr___is_self_t)CALL(variable[5],COLOR_typing___PExpr___is_self))(variable[5]) /*PExpr::is_self*/;
+  variable[5] = CALL_parser_nodes___ASendExpr___n_expr(variable[5])(variable[5]) /*ASendExpr::n_expr*/;
+  variable[5] = CALL_typing___PExpr___is_self(variable[5])(variable[5]) /*PExpr::is_self*/;
   if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
-    variable[5] = ((static_type___MMType___not_for_self_t)CALL( variable[4] /*t*/,COLOR_static_type___MMType___not_for_self))( variable[4] /*t*/) /*MMType::not_for_self*/;
+    variable[5] = CALL_static_type___MMType___not_for_self( variable[4] /*t*/)( variable[4] /*t*/) /*MMType::not_for_self*/;
     variable[4] = variable[5] /*t=*/;
   }
   variable[5] = variable[0];
-  ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL(variable[5],COLOR_typing___AReassignFormExpr___do_lvalue_typing))(variable[5],  variable[1] /*v*/,  variable[4] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
+  CALL_typing___AReassignFormExpr___do_lvalue_typing(variable[5])(variable[5],  variable[1] /*v*/,  variable[4] /*t*/) /*AReassignFormExpr::do_lvalue_typing*/;
   variable[5] = variable[0];
   variable[6] = variable[0];
-  variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
+  variable[6] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
   ATTR_typing___ASendReassignExpr____read_prop(variable[5]) /*ASendReassignExpr::_read_prop*/ = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((typing___AAbsSendExpr___arguments_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___arguments))(variable[6]) /*AAbsSendExpr::arguments*/;
+  variable[6] = CALL_typing___AAbsSendExpr___arguments(variable[6])(variable[6]) /*AAbsSendExpr::arguments*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[6],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[6]) /*AReassignFormExpr::n_value*/;
-  ((array___AbstractArray___add_t)CALL( variable[3] /*raw_args*/,COLOR_abstract_collection___SimpleCollection___add))( variable[3] /*raw_args*/, variable[6]) /*AbstractArray::add*/;
+  variable[6] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[6])(variable[6]) /*AReassignFormExpr::n_value*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[3] /*raw_args*/)( variable[3] /*raw_args*/, variable[6]) /*AbstractArray::add*/;
   variable[6] = variable[0];
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[7],COLOR_parser_nodes___ASendExpr___n_expr))(variable[7]) /*ASendExpr::n_expr*/;
-  variable[7] = ((typing___PExpr___stype_t)CALL(variable[7],COLOR_syntax_base___PExpr___stype))(variable[7]) /*PExpr::stype*/;
+  variable[7] = CALL_parser_nodes___ASendExpr___n_expr(variable[7])(variable[7]) /*ASendExpr::n_expr*/;
+  variable[7] = CALL_syntax_base___PExpr___stype(variable[7])(variable[7]) /*PExpr::stype*/;
   variable[8] = variable[0];
-  variable[8] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[8],COLOR_parser_nodes___ASendExpr___n_expr))(variable[8]) /*ASendExpr::n_expr*/;
-  variable[8] = ((typing___PExpr___is_implicit_self_t)CALL(variable[8],COLOR_typing___PExpr___is_implicit_self))(variable[8]) /*PExpr::is_implicit_self*/;
+  variable[8] = CALL_parser_nodes___ASendExpr___n_expr(variable[8])(variable[8]) /*ASendExpr::n_expr*/;
+  variable[8] = CALL_typing___PExpr___is_implicit_self(variable[8])(variable[8]) /*PExpr::is_implicit_self*/;
   variable[9] = variable[0];
-  variable[9] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[9],COLOR_parser_nodes___ASendExpr___n_expr))(variable[9]) /*ASendExpr::n_expr*/;
-  variable[9] = ((typing___PExpr___is_self_t)CALL(variable[9],COLOR_typing___PExpr___is_self))(variable[9]) /*PExpr::is_self*/;
-  variable[10] = NEW_String_string___String___init(); /*new String*/
+  variable[9] = CALL_parser_nodes___ASendExpr___n_expr(variable[9])(variable[9]) /*ASendExpr::n_expr*/;
+  variable[9] = CALL_typing___PExpr___is_self(variable[9])(variable[9]) /*PExpr::is_self*/;
+  variable[10] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
   variable[11] = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
   variable[12] = variable[11];
-  ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[12]) /*String::append*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[12]) /*AbstractArray::add*/;
   variable[13] = variable[0];
-  variable[13] = ((typing___ASendExpr___name_t)CALL(variable[13],COLOR_typing___ASendExpr___name))(variable[13]) /*ASendExpr::name*/;
+  variable[13] = CALL_typing___ASendExpr___name(variable[13])(variable[13]) /*ASendExpr::name*/;
   variable[14] = variable[13];
-  variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-  ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[14]) /*String::append*/;
+  variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[14]) /*AbstractArray::add*/;
   variable[15] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
   variable[16] = variable[15];
-  ((string___String___append_t)CALL(variable[10],COLOR_abstract_collection___IndexedCollection___append))(variable[10], variable[16]) /*String::append*/;
-  variable[10] = ((symbol___String___to_symbol_t)CALL(variable[10],COLOR_symbol___String___to_symbol))(variable[10]) /*String::to_symbol*/;
-  ((typing___AAbsSendExpr___do_typing_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___do_typing))(variable[6],  variable[1] /*v*/, variable[7], variable[8], variable[9], variable[10],  variable[3] /*raw_args*/,  NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10], variable[16]) /*AbstractArray::add*/;
+  variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+  variable[10] = CALL_symbol___String___to_symbol(variable[10])(variable[10]) /*String::to_symbol*/;
+  CALL_typing___AAbsSendExpr___do_typing(variable[6])(variable[6],  variable[1] /*v*/, variable[7], variable[8], variable[9], variable[10],  variable[3] /*raw_args*/,  NIT_NULL /*null*/) /*AAbsSendExpr::do_typing*/;
   variable[6] = variable[0];
-  variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
-  variable[6] = TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[6] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
+  variable[6] = TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    goto return_label104;
+    goto return_label116;
   }
   variable[6] = variable[0];
-  variable[6] = ((typing___AAbsSendExpr___prop_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___prop))(variable[6]) /*AAbsSendExpr::prop*/;
-  variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
-  variable[6] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[6]) /*MMGlobalProperty::is_init*/;
+  variable[6] = CALL_typing___AAbsSendExpr___prop(variable[6])(variable[6]) /*AAbsSendExpr::prop*/;
+  variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+  variable[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[6])(variable[6]) /*MMGlobalProperty::is_init*/;
   if (UNTAG_Bool(variable[6])) { /*if*/
-    variable[6] = ((syntax_base___AbsSyntaxVisitor___local_property_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___local_property))( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
-    variable[6] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[6],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[6]) /*MMLocalProperty::global*/;
-    variable[6] = ((abstractmetamodel___MMGlobalProperty___is_init_t)CALL(variable[6],COLOR_abstractmetamodel___MMGlobalProperty___is_init))(variable[6]) /*MMGlobalProperty::is_init*/;
+    variable[6] = CALL_syntax_base___AbsSyntaxVisitor___local_property( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::local_property*/;
+    variable[6] = CALL_abstractmetamodel___MMLocalProperty___global(variable[6])(variable[6]) /*MMLocalProperty::global*/;
+    variable[6] = CALL_abstractmetamodel___MMGlobalProperty___is_init(variable[6])(variable[6]) /*MMGlobalProperty::is_init*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
       variable[6] = variable[0];
-      variable[7] = NEW_String_string___String___init(); /*new String*/
+      variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
       variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: try to invoke constructor "), TAG_Int(33)); /*new String*/
       variable[9] = variable[8];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
       variable[10] = variable[0];
-      variable[10] = ((typing___AAbsSendExpr___prop_t)CALL(variable[10],COLOR_typing___AAbsSendExpr___prop))(variable[10]) /*AAbsSendExpr::prop*/;
+      variable[10] = CALL_typing___AAbsSendExpr___prop(variable[10])(variable[10]) /*AAbsSendExpr::prop*/;
       variable[11] = variable[10];
-      variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+      variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
       variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" in a method."), TAG_Int(13)); /*new String*/
       variable[13] = variable[12];
-      ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-      ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+      CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+      variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+      CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
     } else { /*if*/
       variable[6] = variable[0];
-      variable[6] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[6],COLOR_parser_nodes___ASendExpr___n_expr))(variable[6]) /*ASendExpr::n_expr*/;
-      variable[6] = ((typing___PExpr___is_self_t)CALL(variable[6],COLOR_typing___PExpr___is_self))(variable[6]) /*PExpr::is_self*/;
+      variable[6] = CALL_parser_nodes___ASendExpr___n_expr(variable[6])(variable[6]) /*ASendExpr::n_expr*/;
+      variable[6] = CALL_typing___PExpr___is_self(variable[6])(variable[6]) /*PExpr::is_self*/;
       if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[6])))) { /*if*/
         variable[6] = variable[0];
-        variable[7] = NEW_String_string___String___init(); /*new String*/
+        variable[7] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
         variable[8] = NEW_String_string___String___with_native(BOX_NativeString("Error: constructor "), TAG_Int(19)); /*new String*/
         variable[9] = variable[8];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[9]) /*String::append*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[9]) /*AbstractArray::add*/;
         variable[10] = variable[0];
-        variable[10] = ((typing___AAbsSendExpr___prop_t)CALL(variable[10],COLOR_typing___AAbsSendExpr___prop))(variable[10]) /*AAbsSendExpr::prop*/;
+        variable[10] = CALL_typing___AAbsSendExpr___prop(variable[10])(variable[10]) /*AAbsSendExpr::prop*/;
         variable[11] = variable[10];
-        variable[11] = ((string___String___to_s_t)CALL(variable[11],COLOR_string___Object___to_s))(variable[11]) /*String::to_s*/;
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[11]) /*String::append*/;
+        variable[11] = CALL_string___Object___to_s(variable[11])(variable[11]) /*Object::to_s*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[11]) /*AbstractArray::add*/;
         variable[12] = NEW_String_string___String___with_native(BOX_NativeString(" is not invoken on 'self'."), TAG_Int(26)); /*new String*/
         variable[13] = variable[12];
-        ((string___String___append_t)CALL(variable[7],COLOR_abstract_collection___IndexedCollection___append))(variable[7], variable[13]) /*String::append*/;
-        ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
+        CALL_abstract_collection___SimpleCollection___add(variable[7])(variable[7], variable[13]) /*AbstractArray::add*/;
+        variable[7] = CALL_string___Object___to_s(variable[7])(variable[7]) /*Object::to_s*/;
+        CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[6], variable[7]) /*AbsSyntaxVisitor::error*/;
       }
     }
   }
   variable[6] = variable[0];
   ATTR_typing___AAbsSendExpr____arguments(variable[6]) /*AAbsSendExpr::_arguments*/ =  variable[5] /*old_args*/;
-  return_label104: while(false);
+  return_label116: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___ASendReassignExpr___read_prop(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1104, LOCATE_typing___ASendReassignExpr___read_prop};
+  struct trace_t trace = {NULL, NULL, 1160, LOCATE_typing___ASendReassignExpr___read_prop};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3814,7 +4279,7 @@ val_t typing___ASendReassignExpr___read_prop(val_t  self) {
   return ATTR_typing___ASendReassignExpr____read_prop( self) /*ASendReassignExpr::_read_prop*/;
 }
 val_t typing___ABinopExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1142, LOCATE_typing___ABinopExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1198, LOCATE_typing___ABinopExpr___raw_arguments};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -3822,302 +4287,302 @@ val_t typing___ABinopExpr___raw_arguments(val_t  self) {
   variable[0] =  self;
   variable[2] = NEW_Array_array___Array___with_capacity(TAG_Int(1)); /*new Array[PExpr]*/
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ABinopExpr___n_expr2_t)CALL(variable[3],COLOR_parser_nodes___ABinopExpr___n_expr2))(variable[3]) /*ABinopExpr::n_expr2*/;
-  ((array___AbstractArray___add_t)CALL(variable[2],COLOR_abstract_collection___SimpleCollection___add))(variable[2], variable[3]) /*AbstractArray::add*/;
+  variable[3] = CALL_parser_nodes___ABinopExpr___n_expr2(variable[3])(variable[3]) /*ABinopExpr::n_expr2*/;
+  CALL_abstract_collection___SimpleCollection___add(variable[2])(variable[2], variable[3]) /*AbstractArray::add*/;
   variable[1] = variable[2];
-  goto return_label105;
-  return_label105: while(false);
+  goto return_label117;
+  return_label117: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AEqExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1145, LOCATE_typing___AEqExpr___name};
-  static val_t once_value_107; static int once_bool_107; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1201, LOCATE_typing___AEqExpr___name};
+  static val_t once_value_119; static int once_bool_119; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_107) variable[2] = once_value_107;
+  if (once_bool_119) variable[2] = once_value_119;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("=="), TAG_Int(2)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_107 = variable[2];
-    once_bool_107 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_119 = variable[2];
+    once_bool_119 = true;
   }
   variable[1] = variable[2];
-  goto return_label106;
-  return_label106: while(false);
+  goto return_label118;
+  return_label118: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ANeExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1148, LOCATE_typing___ANeExpr___name};
-  static val_t once_value_109; static int once_bool_109; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1204, LOCATE_typing___ANeExpr___name};
+  static val_t once_value_121; static int once_bool_121; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_109) variable[2] = once_value_109;
+  if (once_bool_121) variable[2] = once_value_121;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("!="), TAG_Int(2)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_109 = variable[2];
-    once_bool_109 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_121 = variable[2];
+    once_bool_121 = true;
   }
   variable[1] = variable[2];
-  goto return_label108;
-  return_label108: while(false);
+  goto return_label120;
+  return_label120: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ALtExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1151, LOCATE_typing___ALtExpr___name};
-  static val_t once_value_111; static int once_bool_111; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1207, LOCATE_typing___ALtExpr___name};
+  static val_t once_value_123; static int once_bool_123; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_111) variable[2] = once_value_111;
+  if (once_bool_123) variable[2] = once_value_123;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("<"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_111 = variable[2];
-    once_bool_111 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_123 = variable[2];
+    once_bool_123 = true;
   }
   variable[1] = variable[2];
-  goto return_label110;
-  return_label110: while(false);
+  goto return_label122;
+  return_label122: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ALeExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1154, LOCATE_typing___ALeExpr___name};
-  static val_t once_value_113; static int once_bool_113; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1210, LOCATE_typing___ALeExpr___name};
+  static val_t once_value_125; static int once_bool_125; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_113) variable[2] = once_value_113;
+  if (once_bool_125) variable[2] = once_value_125;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("<="), TAG_Int(2)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_113 = variable[2];
-    once_bool_113 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_125 = variable[2];
+    once_bool_125 = true;
   }
   variable[1] = variable[2];
-  goto return_label112;
-  return_label112: while(false);
+  goto return_label124;
+  return_label124: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AGtExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1157, LOCATE_typing___AGtExpr___name};
-  static val_t once_value_115; static int once_bool_115; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1213, LOCATE_typing___AGtExpr___name};
+  static val_t once_value_127; static int once_bool_127; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_115) variable[2] = once_value_115;
+  if (once_bool_127) variable[2] = once_value_127;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString(">"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_115 = variable[2];
-    once_bool_115 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_127 = variable[2];
+    once_bool_127 = true;
   }
   variable[1] = variable[2];
-  goto return_label114;
-  return_label114: while(false);
+  goto return_label126;
+  return_label126: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AGeExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1160, LOCATE_typing___AGeExpr___name};
-  static val_t once_value_117; static int once_bool_117; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1216, LOCATE_typing___AGeExpr___name};
+  static val_t once_value_129; static int once_bool_129; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_117) variable[2] = once_value_117;
+  if (once_bool_129) variable[2] = once_value_129;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString(">="), TAG_Int(2)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_117 = variable[2];
-    once_bool_117 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_129 = variable[2];
+    once_bool_129 = true;
   }
   variable[1] = variable[2];
-  goto return_label116;
-  return_label116: while(false);
+  goto return_label128;
+  return_label128: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___APlusExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1163, LOCATE_typing___APlusExpr___name};
-  static val_t once_value_119; static int once_bool_119; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1219, LOCATE_typing___APlusExpr___name};
+  static val_t once_value_131; static int once_bool_131; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_119) variable[2] = once_value_119;
+  if (once_bool_131) variable[2] = once_value_131;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("+"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_119 = variable[2];
-    once_bool_119 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_131 = variable[2];
+    once_bool_131 = true;
   }
   variable[1] = variable[2];
-  goto return_label118;
-  return_label118: while(false);
+  goto return_label130;
+  return_label130: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AMinusExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1166, LOCATE_typing___AMinusExpr___name};
-  static val_t once_value_121; static int once_bool_121; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1222, LOCATE_typing___AMinusExpr___name};
+  static val_t once_value_133; static int once_bool_133; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_121) variable[2] = once_value_121;
+  if (once_bool_133) variable[2] = once_value_133;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("-"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_121 = variable[2];
-    once_bool_121 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_133 = variable[2];
+    once_bool_133 = true;
   }
   variable[1] = variable[2];
-  goto return_label120;
-  return_label120: while(false);
+  goto return_label132;
+  return_label132: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AStarshipExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1169, LOCATE_typing___AStarshipExpr___name};
-  static val_t once_value_123; static int once_bool_123; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1225, LOCATE_typing___AStarshipExpr___name};
+  static val_t once_value_135; static int once_bool_135; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_123) variable[2] = once_value_123;
+  if (once_bool_135) variable[2] = once_value_135;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("<=>"), TAG_Int(3)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_123 = variable[2];
-    once_bool_123 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_135 = variable[2];
+    once_bool_135 = true;
   }
   variable[1] = variable[2];
-  goto return_label122;
-  return_label122: while(false);
+  goto return_label134;
+  return_label134: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AStarExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1172, LOCATE_typing___AStarExpr___name};
-  static val_t once_value_125; static int once_bool_125; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1228, LOCATE_typing___AStarExpr___name};
+  static val_t once_value_137; static int once_bool_137; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_125) variable[2] = once_value_125;
+  if (once_bool_137) variable[2] = once_value_137;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("*"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_125 = variable[2];
-    once_bool_125 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_137 = variable[2];
+    once_bool_137 = true;
   }
   variable[1] = variable[2];
-  goto return_label124;
-  return_label124: while(false);
+  goto return_label136;
+  return_label136: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ASlashExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1175, LOCATE_typing___ASlashExpr___name};
-  static val_t once_value_127; static int once_bool_127; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1231, LOCATE_typing___ASlashExpr___name};
+  static val_t once_value_139; static int once_bool_139; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_127) variable[2] = once_value_127;
+  if (once_bool_139) variable[2] = once_value_139;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("/"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_127 = variable[2];
-    once_bool_127 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_139 = variable[2];
+    once_bool_139 = true;
   }
   variable[1] = variable[2];
-  goto return_label126;
-  return_label126: while(false);
+  goto return_label138;
+  return_label138: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___APercentExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1178, LOCATE_typing___APercentExpr___name};
-  static val_t once_value_129; static int once_bool_129; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1234, LOCATE_typing___APercentExpr___name};
+  static val_t once_value_141; static int once_bool_141; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_129) variable[2] = once_value_129;
+  if (once_bool_141) variable[2] = once_value_141;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("%"), TAG_Int(1)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_129 = variable[2];
-    once_bool_129 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_141 = variable[2];
+    once_bool_141 = true;
   }
   variable[1] = variable[2];
-  goto return_label128;
-  return_label128: while(false);
+  goto return_label140;
+  return_label140: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AUminusExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1182, LOCATE_typing___AUminusExpr___name};
-  static val_t once_value_131; static int once_bool_131; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1238, LOCATE_typing___AUminusExpr___name};
+  static val_t once_value_143; static int once_bool_143; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_131) variable[2] = once_value_131;
+  if (once_bool_143) variable[2] = once_value_143;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("unary -"), TAG_Int(7)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_131 = variable[2];
-    once_bool_131 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_143 = variable[2];
+    once_bool_143 = true;
   }
   variable[1] = variable[2];
-  goto return_label130;
-  return_label130: while(false);
+  goto return_label142;
+  return_label142: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AUminusExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1183, LOCATE_typing___AUminusExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1239, LOCATE_typing___AUminusExpr___raw_arguments};
   val_t variable[2];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[1] =  NIT_NULL /*null*/;
-  goto return_label132;
-  return_label132: while(false);
+  goto return_label144;
+  return_label144: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 void typing___ACallFormExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1187, LOCATE_typing___ACallFormExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 1243, LOCATE_typing___ACallFormExpr___after_typing};
   val_t variable[12];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4125,152 +4590,153 @@ void typing___ACallFormExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_expr))(variable[3]) /*ASendExpr::n_expr*/;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = CALL_parser_nodes___ASendExpr___n_expr(variable[3])(variable[3]) /*ASendExpr::n_expr*/;
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))))));
   variable[4] = variable[3];
   if (UNTAG_Bool(variable[4])) { /* and */
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___ASendExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___ASendExpr___n_expr))(variable[4]) /*ASendExpr::n_expr*/;
-    variable[4] = ((typing___PExpr___is_implicit_self_t)CALL(variable[4],COLOR_typing___PExpr___is_implicit_self))(variable[4]) /*PExpr::is_implicit_self*/;
+    variable[4] = CALL_parser_nodes___ASendExpr___n_expr(variable[4])(variable[4]) /*ASendExpr::n_expr*/;
+    variable[4] = CALL_typing___PExpr___is_implicit_self(variable[4])(variable[4]) /*PExpr::is_implicit_self*/;
   }
   variable[3] = variable[4];
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[4] = variable[0];
-    variable[4] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[4],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[4]) /*ACallFormExpr::n_id*/;
-    variable[4] = ((syntax_base___Token___to_symbol_t)CALL(variable[4],COLOR_syntax_base___Token___to_symbol))(variable[4]) /*Token::to_symbol*/;
+    variable[4] = CALL_parser_nodes___ACallFormExpr___n_id(variable[4])(variable[4]) /*ACallFormExpr::n_id*/;
+    variable[4] = CALL_syntax_base___Token___to_symbol(variable[4])(variable[4]) /*Token::to_symbol*/;
     variable[3] = variable[4];
-    variable[5] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-    variable[5] = ((typing___VariableContext_____bra_t)CALL(variable[5],COLOR_typing___VariableContext_____bra))(variable[5],  variable[3] /*name*/) /*VariableContext::[]*/;
+    variable[5] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+    variable[5] = CALL_typing___VariableContext_____bra(variable[5])(variable[5],  variable[3] /*name*/) /*VariableContext::[]*/;
     variable[4] = variable[5];
-    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*variable*/ ==  NIT_NULL /*null*/) || (( variable[4] /*variable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[4] /*variable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[4] /*variable*/,COLOR_kernel___Object_____eqeq))( variable[4] /*variable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+    variable[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[4] /*variable*/ ==  NIT_NULL /*null*/) || (( variable[4] /*variable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[4] /*variable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[4] /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[4] /*variable*/)( variable[4] /*variable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
     if (UNTAG_Bool(variable[5])) { /*if*/
       variable[5] = TAG_Bool(( variable[4] /*variable*/==NIT_NULL) || VAL_ISA( variable[4] /*variable*/, COLOR_ClosureVariable, ID_ClosureVariable)) /*cast ClosureVariable*/;
       if (UNTAG_Bool(variable[5])) { /*if*/
         variable[6] = variable[0];
-        variable[6] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[6],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[6]) /*ACallFormExpr::n_id*/;
+        variable[6] = CALL_parser_nodes___ACallFormExpr___n_id(variable[6])(variable[6]) /*ACallFormExpr::n_id*/;
         variable[7] = variable[0];
-        variable[7] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[7],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[7]) /*ACallFormExpr::n_args*/;
+        variable[7] = CALL_parser_nodes___ACallFormExpr___n_args(variable[7])(variable[7]) /*ACallFormExpr::n_args*/;
         variable[8] = variable[0];
-        variable[8] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[8],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[8]) /*ASendExpr::n_closure_defs*/;
+        variable[8] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[8])(variable[8]) /*ASendExpr::n_closure_defs*/;
         variable[9] = NEW_AClosureCallExpr_parser_nodes___AClosureCallExpr___init(variable[6], variable[7], variable[8]); /*new AClosureCallExpr*/
         variable[6] = variable[9];
         variable[5] = variable[6];
         variable[6] = variable[0];
-        ((parser_prod___Prod___replace_with_t)CALL(variable[6],COLOR_parser_prod___PNode___replace_with))(variable[6],  variable[5] /*n*/) /*Prod::replace_with*/;
-        ((syntax_base___AClosureCallExpr___variable__eq_t)CALL( variable[5] /*n*/,COLOR_syntax_base___AClosureCallExpr___variable__eq))( variable[5] /*n*/,  variable[4] /*variable*/) /*AClosureCallExpr::variable=*/;
-        ((typing___AClosureCallExpr___after_typing_t)CALL( variable[5] /*n*/,COLOR_typing___PNode___after_typing))( variable[5] /*n*/,  variable[1] /*v*/) /*AClosureCallExpr::after_typing*/;
-        goto return_label133;
+        CALL_parser_prod___PNode___replace_with(variable[6])(variable[6],  variable[5] /*n*/) /*Prod::replace_with*/;
+        CALL_syntax_base___AClosureCallExpr___variable__eq( variable[5] /*n*/)( variable[5] /*n*/,  variable[4] /*variable*/) /*AClosureCallExpr::variable=*/;
+        CALL_typing___PNode___after_typing( variable[5] /*n*/)( variable[5] /*n*/,  variable[1] /*v*/) /*AClosureCallExpr::after_typing*/;
+        goto return_label145;
       } else { /*if*/
         variable[5] = variable[0];
-        variable[5] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[5],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[5]) /*ACallFormExpr::n_args*/;
-        variable[5] = ((list___List___is_empty_t)CALL(variable[5],COLOR_abstract_collection___Collection___is_empty))(variable[5]) /*List::is_empty*/;
+        variable[5] = CALL_parser_nodes___ACallFormExpr___n_args(variable[5])(variable[5]) /*ACallFormExpr::n_args*/;
+        variable[5] = CALL_abstract_collection___Collection___is_empty(variable[5])(variable[5]) /*List::is_empty*/;
         if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[5])))) { /*if*/
           variable[5] = variable[0];
-          variable[6] = NEW_String_string___String___init(); /*new String*/
+          variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(3)); /*new Array[String]*/
           variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
           variable[8] = variable[7];
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
           variable[9] =  variable[3] /*name*/;
-          variable[9] = ((string___String___to_s_t)CALL(variable[9],COLOR_string___Object___to_s))(variable[9]) /*String::to_s*/;
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[9]) /*String::append*/;
+          variable[9] = CALL_string___Object___to_s(variable[9])(variable[9]) /*Object::to_s*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[9]) /*AbstractArray::add*/;
           variable[10] = NEW_String_string___String___with_native(BOX_NativeString(" is variable, not a function."), TAG_Int(29)); /*new String*/
           variable[11] = variable[10];
-          ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[11]) /*String::append*/;
-          ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+          CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[11]) /*AbstractArray::add*/;
+          variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+          CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
         }
         variable[6] = variable[0];
-        variable[6] = ((typing___ACallFormExpr___variable_create_t)CALL(variable[6],COLOR_typing___ACallFormExpr___variable_create))(variable[6],  variable[4] /*variable*/) /*ACallFormExpr::variable_create*/;
+        variable[6] = CALL_typing___ACallFormExpr___variable_create(variable[6])(variable[6],  variable[4] /*variable*/) /*ACallFormExpr::variable_create*/;
         variable[5] = variable[6];
-        ((syntax_base___AVarFormExpr___variable__eq_t)CALL( variable[5] /*vform*/,COLOR_syntax_base___AVarFormExpr___variable__eq))( variable[5] /*vform*/,  variable[4] /*variable*/) /*AVarFormExpr::variable=*/;
+        CALL_syntax_base___AVarFormExpr___variable__eq( variable[5] /*vform*/)( variable[5] /*vform*/,  variable[4] /*variable*/) /*AVarFormExpr::variable=*/;
         variable[6] = variable[0];
-        ((parser_prod___Prod___replace_with_t)CALL(variable[6],COLOR_parser_prod___PNode___replace_with))(variable[6],  variable[5] /*vform*/) /*Prod::replace_with*/;
-        ((typing___PNode___after_typing_t)CALL( variable[5] /*vform*/,COLOR_typing___PNode___after_typing))( variable[5] /*vform*/,  variable[1] /*v*/) /*PNode::after_typing*/;
-        goto return_label133;
+        CALL_parser_prod___PNode___replace_with(variable[6])(variable[6],  variable[5] /*vform*/) /*Prod::replace_with*/;
+        CALL_typing___PNode___after_typing( variable[5] /*vform*/)( variable[5] /*vform*/,  variable[1] /*v*/) /*PNode::after_typing*/;
+        goto return_label145;
       }
     }
   }
-  ((typing___ACallFormExpr___after_typing_t)CALL(variable[0],COLOR_SUPER_typing___ACallFormExpr___after_typing))(variable[0], variable[1]) /*super ACallFormExpr::after_typing*/;
-  return_label133: while(false);
+  CALL_SUPER_typing___ACallFormExpr___after_typing(variable[0])(variable[0], variable[1]) /*super ACallFormExpr::after_typing*/;
+  return_label145: while(false);
   tracehead = trace.prev;
   return;
 }
 val_t typing___ACallFormExpr___closure_defs(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1214, LOCATE_typing___ACallFormExpr___closure_defs};
+  struct trace_t trace = {NULL, NULL, 1270, LOCATE_typing___ACallFormExpr___closure_defs};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[2],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[2]) /*ASendExpr::n_closure_defs*/;
-  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[2],COLOR_kernel___Object_____eqeq))(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[2] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[2])(variable[2]) /*ASendExpr::n_closure_defs*/;
+  variable[2] = TAG_Bool((variable[2] ==  NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2],  NIT_NULL /*null*/) /*Object::==*/)))));
   variable[3] = variable[2];
   if (!UNTAG_Bool(variable[3])) { /* or */
     variable[3] = variable[0];
-    variable[3] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[3],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[3]) /*ASendExpr::n_closure_defs*/;
-    variable[3] = ((list___List___is_empty_t)CALL(variable[3],COLOR_abstract_collection___Collection___is_empty))(variable[3]) /*List::is_empty*/;
+    variable[3] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[3])(variable[3]) /*ASendExpr::n_closure_defs*/;
+    variable[3] = CALL_abstract_collection___Collection___is_empty(variable[3])(variable[3]) /*List::is_empty*/;
   }
   variable[2] = variable[3];
   if (UNTAG_Bool(variable[2])) { /*if*/
     variable[1] =  NIT_NULL /*null*/;
-    goto return_label134;
+    goto return_label146;
   } else { /*if*/
     variable[2] = variable[0];
-    variable[2] = ((parser_nodes___ASendExpr___n_closure_defs_t)CALL(variable[2],COLOR_parser_nodes___ASendExpr___n_closure_defs))(variable[2]) /*ASendExpr::n_closure_defs*/;
-    variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
+    variable[2] = CALL_parser_nodes___ASendExpr___n_closure_defs(variable[2])(variable[2]) /*ASendExpr::n_closure_defs*/;
+    variable[2] = CALL_array___Collection___to_a(variable[2])(variable[2]) /*Collection::to_a*/;
     variable[1] = variable[2];
-    goto return_label134;
+    goto return_label146;
   }
-  return_label134: while(false);
+  return_label146: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ACallFormExpr___variable_create(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1223, LOCATE_typing___ACallFormExpr___variable_create};
+  struct trace_t trace = {NULL, NULL, 1279, LOCATE_typing___ACallFormExpr___variable_create};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1223);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1279);
   nit_exit(1);
   tracehead = trace.prev;
   return NIT_NULL;
 }
 val_t typing___ACallExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1233, LOCATE_typing___ACallExpr___name};
+  struct trace_t trace = {NULL, NULL, 1289, LOCATE_typing___ACallExpr___name};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[2]) /*ACallFormExpr::n_id*/;
-  variable[2] = ((syntax_base___Token___to_symbol_t)CALL(variable[2],COLOR_syntax_base___Token___to_symbol))(variable[2]) /*Token::to_symbol*/;
+  variable[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable[2])(variable[2]) /*ACallFormExpr::n_id*/;
+  variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/;
   variable[1] = variable[2];
-  goto return_label135;
-  return_label135: while(false);
+  goto return_label147;
+  return_label147: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ACallExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1234, LOCATE_typing___ACallExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1290, LOCATE_typing___ACallExpr___raw_arguments};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[2]) /*ACallFormExpr::n_args*/;
-  variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
+  variable[2] = CALL_parser_nodes___ACallFormExpr___n_args(variable[2])(variable[2]) /*ACallFormExpr::n_args*/;
+  variable[2] = CALL_array___Collection___to_a(variable[2])(variable[2]) /*Collection::to_a*/;
   variable[1] = variable[2];
-  goto return_label136;
-  return_label136: while(false);
+  goto return_label148;
+  return_label148: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ACallExpr___variable_create(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1228, LOCATE_typing___ACallExpr___variable_create};
+  struct trace_t trace = {NULL, NULL, 1284, LOCATE_typing___ACallExpr___variable_create};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4278,56 +4744,56 @@ val_t typing___ACallExpr___variable_create(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[3]) /*ACallFormExpr::n_id*/;
+  variable[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable[3])(variable[3]) /*ACallFormExpr::n_id*/;
   variable[4] = NEW_AVarExpr_parser_prod___AVarExpr___init_avarexpr(variable[3]); /*new AVarExpr*/
   variable[3] = variable[4];
   variable[2] = variable[3];
-  goto return_label137;
-  return_label137: while(false);
+  goto return_label149;
+  return_label149: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t typing___ACallAssignExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1243, LOCATE_typing___ACallAssignExpr___name};
+  struct trace_t trace = {NULL, NULL, 1299, LOCATE_typing___ACallAssignExpr___name};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[2]) /*ACallFormExpr::n_id*/;
-  variable[2] = ((lexer___Token___text_t)CALL(variable[2],COLOR_lexer___Token___text))(variable[2]) /*Token::text*/;
+  variable[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable[2])(variable[2]) /*ACallFormExpr::n_id*/;
+  variable[2] = CALL_lexer___Token___text(variable[2])(variable[2]) /*Token::text*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
-  variable[2] = ((string___String_____plus_t)CALL(variable[2],COLOR_string___String_____plus))(variable[2], variable[3]) /*String::+*/;
-  variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
+  variable[2] = CALL_string___String_____plus(variable[2])(variable[2], variable[3]) /*String::+*/;
+  variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
   variable[1] = variable[2];
-  goto return_label138;
-  return_label138: while(false);
+  goto return_label150;
+  return_label150: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ACallAssignExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1244, LOCATE_typing___ACallAssignExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1300, LOCATE_typing___ACallAssignExpr___raw_arguments};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[3]) /*ACallFormExpr::n_args*/;
-  variable[3] = ((array___Collection___to_a_t)CALL(variable[3],COLOR_array___Collection___to_a))(variable[3]) /*Collection::to_a*/;
+  variable[3] = CALL_parser_nodes___ACallFormExpr___n_args(variable[3])(variable[3]) /*ACallFormExpr::n_args*/;
+  variable[3] = CALL_array___Collection___to_a(variable[3])(variable[3]) /*Collection::to_a*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[3],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[3]) /*AAssignFormExpr::n_value*/;
-  ((array___AbstractArray___add_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
+  variable[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[3])(variable[3]) /*AAssignFormExpr::n_value*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[2] /*res*/)( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
   variable[1] =  variable[2] /*res*/;
-  goto return_label139;
-  return_label139: while(false);
+  goto return_label151;
+  return_label151: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ACallAssignExpr___variable_create(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1238, LOCATE_typing___ACallAssignExpr___variable_create};
+  struct trace_t trace = {NULL, NULL, 1294, LOCATE_typing___ACallAssignExpr___variable_create};
   val_t variable[7];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4335,53 +4801,53 @@ val_t typing___ACallAssignExpr___variable_create(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[3]) /*ACallFormExpr::n_id*/;
+  variable[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable[3])(variable[3]) /*ACallFormExpr::n_id*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAssignFormExpr___n_assign_t)CALL(variable[4],COLOR_parser_nodes___AAssignFormExpr___n_assign))(variable[4]) /*AAssignFormExpr::n_assign*/;
+  variable[4] = CALL_parser_nodes___AAssignFormExpr___n_assign(variable[4])(variable[4]) /*AAssignFormExpr::n_assign*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[5],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[5]) /*AAssignFormExpr::n_value*/;
+  variable[5] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[5])(variable[5]) /*AAssignFormExpr::n_value*/;
   variable[6] = NEW_AVarAssignExpr_parser_prod___AVarAssignExpr___init_avarassignexpr(variable[3], variable[4], variable[5]); /*new AVarAssignExpr*/
   variable[3] = variable[6];
   variable[2] = variable[3];
-  goto return_label140;
-  return_label140: while(false);
+  goto return_label152;
+  return_label152: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t typing___ACallReassignExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1258, LOCATE_typing___ACallReassignExpr___name};
+  struct trace_t trace = {NULL, NULL, 1314, LOCATE_typing___ACallReassignExpr___name};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[2]) /*ACallFormExpr::n_id*/;
-  variable[2] = ((syntax_base___Token___to_symbol_t)CALL(variable[2],COLOR_syntax_base___Token___to_symbol))(variable[2]) /*Token::to_symbol*/;
+  variable[2] = CALL_parser_nodes___ACallFormExpr___n_id(variable[2])(variable[2]) /*ACallFormExpr::n_id*/;
+  variable[2] = CALL_syntax_base___Token___to_symbol(variable[2])(variable[2]) /*Token::to_symbol*/;
   variable[1] = variable[2];
-  goto return_label141;
-  return_label141: while(false);
+  goto return_label153;
+  return_label153: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ACallReassignExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1259, LOCATE_typing___ACallReassignExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1315, LOCATE_typing___ACallReassignExpr___raw_arguments};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[2]) /*ACallFormExpr::n_args*/;
-  variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
+  variable[2] = CALL_parser_nodes___ACallFormExpr___n_args(variable[2])(variable[2]) /*ACallFormExpr::n_args*/;
+  variable[2] = CALL_array___Collection___to_a(variable[2])(variable[2]) /*Collection::to_a*/;
   variable[1] = variable[2];
-  goto return_label142;
-  return_label142: while(false);
+  goto return_label154;
+  return_label154: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ACallReassignExpr___variable_create(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1253, LOCATE_typing___ACallReassignExpr___variable_create};
+  struct trace_t trace = {NULL, NULL, 1309, LOCATE_typing___ACallReassignExpr___variable_create};
   val_t variable[7];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4389,173 +4855,173 @@ val_t typing___ACallReassignExpr___variable_create(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[3],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[3]) /*ACallFormExpr::n_id*/;
+  variable[3] = CALL_parser_nodes___ACallFormExpr___n_id(variable[3])(variable[3]) /*ACallFormExpr::n_id*/;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AReassignFormExpr___n_assign_op_t)CALL(variable[4],COLOR_parser_nodes___AReassignFormExpr___n_assign_op))(variable[4]) /*AReassignFormExpr::n_assign_op*/;
+  variable[4] = CALL_parser_nodes___AReassignFormExpr___n_assign_op(variable[4])(variable[4]) /*AReassignFormExpr::n_assign_op*/;
   variable[5] = variable[0];
-  variable[5] = ((parser_nodes___AReassignFormExpr___n_value_t)CALL(variable[5],COLOR_parser_nodes___AReassignFormExpr___n_value))(variable[5]) /*AReassignFormExpr::n_value*/;
+  variable[5] = CALL_parser_nodes___AReassignFormExpr___n_value(variable[5])(variable[5]) /*AReassignFormExpr::n_value*/;
   variable[6] = NEW_AVarReassignExpr_parser_prod___AVarReassignExpr___init_avarreassignexpr(variable[3], variable[4], variable[5]); /*new AVarReassignExpr*/
   variable[3] = variable[6];
   variable[2] = variable[3];
-  goto return_label143;
-  return_label143: while(false);
+  goto return_label155;
+  return_label155: while(false);
   tracehead = trace.prev;
   return variable[2];
 }
 val_t typing___ABraExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1263, LOCATE_typing___ABraExpr___name};
-  static val_t once_value_145; static int once_bool_145; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1319, LOCATE_typing___ABraExpr___name};
+  static val_t once_value_157; static int once_bool_157; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_145) variable[2] = once_value_145;
+  if (once_bool_157) variable[2] = once_value_157;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_145 = variable[2];
-    once_bool_145 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_157 = variable[2];
+    once_bool_157 = true;
   }
   variable[1] = variable[2];
-  goto return_label144;
-  return_label144: while(false);
+  goto return_label156;
+  return_label156: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ABraExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1264, LOCATE_typing___ABraExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1320, LOCATE_typing___ABraExpr___raw_arguments};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ABraFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ABraFormExpr___n_args))(variable[2]) /*ABraFormExpr::n_args*/;
-  variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
+  variable[2] = CALL_parser_nodes___ABraFormExpr___n_args(variable[2])(variable[2]) /*ABraFormExpr::n_args*/;
+  variable[2] = CALL_array___Collection___to_a(variable[2])(variable[2]) /*Collection::to_a*/;
   variable[1] = variable[2];
-  goto return_label146;
-  return_label146: while(false);
+  goto return_label158;
+  return_label158: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ABraAssignExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1268, LOCATE_typing___ABraAssignExpr___name};
-  static val_t once_value_148; static int once_bool_148; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1324, LOCATE_typing___ABraAssignExpr___name};
+  static val_t once_value_160; static int once_bool_160; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_148) variable[2] = once_value_148;
+  if (once_bool_160) variable[2] = once_value_160;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("[]="), TAG_Int(3)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_148 = variable[2];
-    once_bool_148 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_160 = variable[2];
+    once_bool_160 = true;
   }
   variable[1] = variable[2];
-  goto return_label147;
-  return_label147: while(false);
+  goto return_label159;
+  return_label159: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ABraAssignExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1269, LOCATE_typing___ABraAssignExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1325, LOCATE_typing___ABraAssignExpr___raw_arguments};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___ABraFormExpr___n_args_t)CALL(variable[3],COLOR_parser_nodes___ABraFormExpr___n_args))(variable[3]) /*ABraFormExpr::n_args*/;
-  variable[3] = ((array___Collection___to_a_t)CALL(variable[3],COLOR_array___Collection___to_a))(variable[3]) /*Collection::to_a*/;
+  variable[3] = CALL_parser_nodes___ABraFormExpr___n_args(variable[3])(variable[3]) /*ABraFormExpr::n_args*/;
+  variable[3] = CALL_array___Collection___to_a(variable[3])(variable[3]) /*Collection::to_a*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAssignFormExpr___n_value_t)CALL(variable[3],COLOR_parser_nodes___AAssignFormExpr___n_value))(variable[3]) /*AAssignFormExpr::n_value*/;
-  ((array___AbstractArray___add_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
+  variable[3] = CALL_parser_nodes___AAssignFormExpr___n_value(variable[3])(variable[3]) /*AAssignFormExpr::n_value*/;
+  CALL_abstract_collection___SimpleCollection___add( variable[2] /*res*/)( variable[2] /*res*/, variable[3]) /*AbstractArray::add*/;
   variable[1] =  variable[2] /*res*/;
-  goto return_label149;
-  return_label149: while(false);
+  goto return_label161;
+  return_label161: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ABraReassignExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1278, LOCATE_typing___ABraReassignExpr___name};
-  static val_t once_value_151; static int once_bool_151; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1334, LOCATE_typing___ABraReassignExpr___name};
+  static val_t once_value_163; static int once_bool_163; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_151) variable[2] = once_value_151;
+  if (once_bool_163) variable[2] = once_value_163;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("[]"), TAG_Int(2)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_151 = variable[2];
-    once_bool_151 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_163 = variable[2];
+    once_bool_163 = true;
   }
   variable[1] = variable[2];
-  goto return_label150;
-  return_label150: while(false);
+  goto return_label162;
+  return_label162: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___ABraReassignExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1279, LOCATE_typing___ABraReassignExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1335, LOCATE_typing___ABraReassignExpr___raw_arguments};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___ABraFormExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___ABraFormExpr___n_args))(variable[2]) /*ABraFormExpr::n_args*/;
-  variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
+  variable[2] = CALL_parser_nodes___ABraFormExpr___n_args(variable[2])(variable[2]) /*ABraFormExpr::n_args*/;
+  variable[2] = CALL_array___Collection___to_a(variable[2])(variable[2]) /*Collection::to_a*/;
   variable[1] = variable[2];
-  goto return_label152;
-  return_label152: while(false);
+  goto return_label164;
+  return_label164: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AInitExpr___name(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1283, LOCATE_typing___AInitExpr___name};
-  static val_t once_value_154; static int once_bool_154; /* Once value for variable[2]*/
+  struct trace_t trace = {NULL, NULL, 1339, LOCATE_typing___AInitExpr___name};
+  static val_t once_value_166; static int once_bool_166; /* Once value for variable[2]*/
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
-  if (once_bool_154) variable[2] = once_value_154;
+  if (once_bool_166) variable[2] = once_value_166;
   else {
     variable[2] = NEW_String_string___String___with_native(BOX_NativeString("init"), TAG_Int(4)); /*new String*/
-    variable[2] = ((symbol___String___to_symbol_t)CALL(variable[2],COLOR_symbol___String___to_symbol))(variable[2]) /*String::to_symbol*/;
-    once_value_154 = variable[2];
-    once_bool_154 = true;
+    variable[2] = CALL_symbol___String___to_symbol(variable[2])(variable[2]) /*String::to_symbol*/;
+    once_value_166 = variable[2];
+    once_bool_166 = true;
   }
   variable[1] = variable[2];
-  goto return_label153;
-  return_label153: while(false);
+  goto return_label165;
+  return_label165: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 val_t typing___AInitExpr___raw_arguments(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 1284, LOCATE_typing___AInitExpr___raw_arguments};
+  struct trace_t trace = {NULL, NULL, 1340, LOCATE_typing___AInitExpr___raw_arguments};
   val_t variable[3];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((parser_nodes___AInitExpr___n_args_t)CALL(variable[2],COLOR_parser_nodes___AInitExpr___n_args))(variable[2]) /*AInitExpr::n_args*/;
-  variable[2] = ((array___Collection___to_a_t)CALL(variable[2],COLOR_array___Collection___to_a))(variable[2]) /*Collection::to_a*/;
+  variable[2] = CALL_parser_nodes___AInitExpr___n_args(variable[2])(variable[2]) /*AInitExpr::n_args*/;
+  variable[2] = CALL_array___Collection___to_a(variable[2])(variable[2]) /*Collection::to_a*/;
   variable[1] = variable[2];
-  goto return_label155;
-  return_label155: while(false);
+  goto return_label167;
+  return_label167: while(false);
   tracehead = trace.prev;
   return variable[1];
 }
 void typing___AClosureCallExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1288, LOCATE_typing___AClosureCallExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 1344, LOCATE_typing___AClosureCallExpr___after_typing};
   val_t variable[9];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4563,35 +5029,35 @@ void typing___AClosureCallExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((syntax_base___AClosureCallExpr___variable_t)CALL(variable[4],COLOR_syntax_base___AClosureCallExpr___variable))(variable[4]) /*AClosureCallExpr::variable*/;
+  variable[4] = CALL_syntax_base___AClosureCallExpr___variable(variable[4])(variable[4]) /*AClosureCallExpr::variable*/;
   variable[3] = variable[4];
-  variable[5] = ((syntax_base___ClosureVariable___closure_t)CALL( variable[3] /*va*/,COLOR_syntax_base___ClosureVariable___closure))( variable[3] /*va*/) /*ClosureVariable::closure*/;
-  variable[5] = ((static_type___MMClosure___signature_t)CALL(variable[5],COLOR_static_type___MMClosure___signature))(variable[5]) /*MMClosure::signature*/;
+  variable[5] = CALL_syntax_base___ClosureVariable___closure( variable[3] /*va*/)( variable[3] /*va*/) /*ClosureVariable::closure*/;
+  variable[5] = CALL_static_type___MMClosure___signature(variable[5])(variable[5]) /*MMClosure::signature*/;
   variable[4] = variable[5];
   variable[6] = variable[0];
   variable[7] = variable[0];
-  variable[7] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[7],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[7]) /*ACallFormExpr::n_id*/;
-  variable[7] = ((syntax_base___Token___to_symbol_t)CALL(variable[7],COLOR_syntax_base___Token___to_symbol))(variable[7]) /*Token::to_symbol*/;
+  variable[7] = CALL_parser_nodes___ACallFormExpr___n_id(variable[7])(variable[7]) /*ACallFormExpr::n_id*/;
+  variable[7] = CALL_syntax_base___Token___to_symbol(variable[7])(variable[7]) /*Token::to_symbol*/;
   variable[8] = variable[0];
-  variable[8] = ((parser_nodes___ACallFormExpr___n_args_t)CALL(variable[8],COLOR_parser_nodes___ACallFormExpr___n_args))(variable[8]) /*ACallFormExpr::n_args*/;
-  variable[8] = ((array___Collection___to_a_t)CALL(variable[8],COLOR_array___Collection___to_a))(variable[8]) /*Collection::to_a*/;
-  variable[6] = ((typing___AAbsSendExpr___process_signature_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___process_signature))(variable[6],  variable[1] /*v*/,  variable[4] /*sig*/, variable[7], variable[8]) /*AAbsSendExpr::process_signature*/;
+  variable[8] = CALL_parser_nodes___ACallFormExpr___n_args(variable[8])(variable[8]) /*ACallFormExpr::n_args*/;
+  variable[8] = CALL_array___Collection___to_a(variable[8])(variable[8]) /*Collection::to_a*/;
+  variable[6] = CALL_typing___AAbsSendExpr___process_signature(variable[6])(variable[6],  variable[1] /*v*/,  variable[4] /*sig*/, variable[7], variable[8]) /*AAbsSendExpr::process_signature*/;
   variable[5] = variable[6];
   variable[6] = variable[0];
-  variable[6] = ((typing___ACallFormExpr___closure_defs_t)CALL(variable[6],COLOR_typing___ASendExpr___closure_defs))(variable[6]) /*ACallFormExpr::closure_defs*/;
-  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[6],COLOR_kernel___Object_____eqeq))(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[6] = CALL_typing___ASendExpr___closure_defs(variable[6])(variable[6]) /*ACallFormExpr::closure_defs*/;
+  variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[6] ==  NIT_NULL /*null*/) || ((variable[6] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[6])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[6], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[6])(variable[6],  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[6])) { /*if*/
     variable[6] = variable[0];
     variable[7] = variable[0];
-    variable[7] = ((parser_nodes___ACallFormExpr___n_id_t)CALL(variable[7],COLOR_parser_nodes___ACallFormExpr___n_id))(variable[7]) /*ACallFormExpr::n_id*/;
-    variable[7] = ((syntax_base___Token___to_symbol_t)CALL(variable[7],COLOR_syntax_base___Token___to_symbol))(variable[7]) /*Token::to_symbol*/;
+    variable[7] = CALL_parser_nodes___ACallFormExpr___n_id(variable[7])(variable[7]) /*ACallFormExpr::n_id*/;
+    variable[7] = CALL_syntax_base___Token___to_symbol(variable[7])(variable[7]) /*Token::to_symbol*/;
     variable[8] = variable[0];
-    variable[8] = ((typing___ACallFormExpr___closure_defs_t)CALL(variable[8],COLOR_typing___ASendExpr___closure_defs))(variable[8]) /*ACallFormExpr::closure_defs*/;
-    ((typing___AAbsSendExpr___process_closures_t)CALL(variable[6],COLOR_typing___AAbsSendExpr___process_closures))(variable[6],  variable[1] /*v*/,  variable[4] /*sig*/, variable[7], variable[8]) /*AAbsSendExpr::process_closures*/;
+    variable[8] = CALL_typing___ASendExpr___closure_defs(variable[8])(variable[8]) /*ACallFormExpr::closure_defs*/;
+    CALL_typing___AAbsSendExpr___process_closures(variable[6])(variable[6],  variable[1] /*v*/,  variable[4] /*sig*/, variable[7], variable[8]) /*AAbsSendExpr::process_closures*/;
   }
-  variable[6] = TAG_Bool(( variable[5] /*args*/ ==  NIT_NULL /*null*/) || (( variable[5] /*args*/ != NIT_NULL) && UNTAG_Bool(((array___AbstractArray_____eqeq_t)CALL( variable[5] /*args*/,COLOR_kernel___Object_____eqeq))( variable[5] /*args*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
+  variable[6] = TAG_Bool(( variable[5] /*args*/ ==  NIT_NULL /*null*/) || (( variable[5] /*args*/ != NIT_NULL) && UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*args*/)( variable[5] /*args*/,  NIT_NULL /*null*/) /*AbstractArray::==*/)));
   if (UNTAG_Bool(variable[6])) { /*if*/
-    goto return_label156;
+    goto return_label168;
   }
   variable[6] = variable[0];
   ATTR_typing___AAbsSendExpr____prop(variable[6]) /*AAbsSendExpr::_prop*/ =  NIT_NULL /*null*/;
@@ -4600,14 +5066,14 @@ void typing___AClosureCallExpr___after_typing(val_t  self, val_t  param0) {
   variable[6] = variable[0];
   ATTR_typing___AAbsSendExpr____arguments(variable[6]) /*AAbsSendExpr::_arguments*/ =  variable[5] /*args*/;
   variable[6] = variable[0];
-  variable[7] = ((static_type___MMSignature___return_type_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___return_type))( variable[4] /*sig*/) /*MMSignature::return_type*/;
+  variable[7] = CALL_static_type___MMSignature___return_type( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::return_type*/;
   ATTR_typing___PExpr____stype(variable[6]) /*PExpr::_stype*/ = variable[7];
-  return_label156: while(false);
+  return_label168: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___PClosureDef___accept_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1306, LOCATE_typing___PClosureDef___accept_typing};
+  struct trace_t trace = {NULL, NULL, 1362, LOCATE_typing___PClosureDef___accept_typing};
   val_t variable[4];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4617,26 +5083,26 @@ void typing___PClosureDef___accept_typing(val_t  self, val_t  param0) {
   variable[3] = variable[0];
   variable[3] = ATTR_typing___PClosureDef____accept_typing2(variable[3]) /*PClosureDef::_accept_typing2*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
-    ((typing___PClosureDef___accept_typing_t)CALL(variable[0],COLOR_SUPER_typing___PClosureDef___accept_typing))(variable[0], variable[1]) /*super PClosureDef::accept_typing*/;
+    CALL_SUPER_typing___PClosureDef___accept_typing(variable[0])(variable[0], variable[1]) /*super PClosureDef::accept_typing*/;
   }
-  return_label157: while(false);
+  return_label169: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___PClosureDef___accept_typing2(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1312, LOCATE_typing___PClosureDef___accept_typing2};
+  struct trace_t trace = {NULL, NULL, 1368, LOCATE_typing___PClosureDef___accept_typing2};
   val_t *variable = NULL;
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_typing;
   fprintf(stderr, "Deferred method called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1312);
+  fprintf(stderr, " (%s:%d)\n", LOCATE_typing, 1368);
   nit_exit(1);
   tracehead = trace.prev;
   return;
 }
 void typing___AClosureDef___accept_typing2(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, NULL, 1316, LOCATE_typing___AClosureDef___accept_typing2};
+  struct trace_t trace = {NULL, NULL, 1372, LOCATE_typing___AClosureDef___accept_typing2};
   val_t variable[17];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4644,90 +5110,91 @@ void typing___AClosureDef___accept_typing2(val_t  self, val_t  param0, val_t  pa
   variable[0] =  self;
   variable[1] =  param0;
   variable[2] =  param1;
-  variable[5] = ((static_type___MMClosure___signature_t)CALL( variable[2] /*clos*/,COLOR_static_type___MMClosure___signature))( variable[2] /*clos*/) /*MMClosure::signature*/;
+  variable[5] = CALL_static_type___MMClosure___signature( variable[2] /*clos*/)( variable[2] /*clos*/) /*MMClosure::signature*/;
   variable[4] = variable[5];
-  variable[5] = ((static_type___MMSignature___arity_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[4] /*sig*/) /*MMSignature::arity*/;
+  variable[5] = CALL_static_type___MMSignature___arity( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::arity*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[6],COLOR_parser_nodes___AClosureDef___n_id))(variable[6]) /*AClosureDef::n_id*/;
-  variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
+  variable[6] = CALL_parser_nodes___AClosureDef___n_id(variable[6])(variable[6]) /*AClosureDef::n_id*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
   variable[5] = TAG_Bool((variable[5])!=(variable[6]));
   if (UNTAG_Bool(variable[5])) { /*if*/
     variable[5] = variable[0];
-    variable[6] = NEW_String_string___String___init(); /*new String*/
+    variable[6] = NEW_Array_array___Array___with_capacity(TAG_Int(5)); /*new Array[String]*/
     variable[7] = NEW_String_string___String___with_native(BOX_NativeString("Error: "), TAG_Int(7)); /*new String*/
     variable[8] = variable[7];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[8]) /*String::append*/;
-    variable[9] = ((static_type___MMSignature___arity_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature___arity))( variable[4] /*sig*/) /*MMSignature::arity*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[8]) /*AbstractArray::add*/;
+    variable[9] = CALL_static_type___MMSignature___arity( variable[4] /*sig*/)( variable[4] /*sig*/) /*MMSignature::arity*/;
     variable[10] = variable[9];
-    variable[10] = ((string___String___to_s_t)CALL(variable[10],COLOR_string___Object___to_s))(variable[10]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[10]) /*String::append*/;
+    variable[10] = CALL_string___Object___to_s(variable[10])(variable[10]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[10]) /*AbstractArray::add*/;
     variable[11] = NEW_String_string___String___with_native(BOX_NativeString(" automatic variable names expected, "), TAG_Int(36)); /*new String*/
     variable[12] = variable[11];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[12]) /*String::append*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[12]) /*AbstractArray::add*/;
     variable[13] = variable[0];
-    variable[13] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[13],COLOR_parser_nodes___AClosureDef___n_id))(variable[13]) /*AClosureDef::n_id*/;
-    variable[13] = ((list___List___length_t)CALL(variable[13],COLOR_abstract_collection___Collection___length))(variable[13]) /*List::length*/;
+    variable[13] = CALL_parser_nodes___AClosureDef___n_id(variable[13])(variable[13]) /*AClosureDef::n_id*/;
+    variable[13] = CALL_abstract_collection___Collection___length(variable[13])(variable[13]) /*List::length*/;
     variable[14] = variable[13];
-    variable[14] = ((string___String___to_s_t)CALL(variable[14],COLOR_string___Object___to_s))(variable[14]) /*String::to_s*/;
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[14]) /*String::append*/;
+    variable[14] = CALL_string___Object___to_s(variable[14])(variable[14]) /*Object::to_s*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[14]) /*AbstractArray::add*/;
     variable[15] = NEW_String_string___String___with_native(BOX_NativeString(" found."), TAG_Int(7)); /*new String*/
     variable[16] = variable[15];
-    ((string___String___append_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___append))(variable[6], variable[16]) /*String::append*/;
-    ((syntax_base___AbsSyntaxVisitor___error_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___error))( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
-    goto return_label158;
+    CALL_abstract_collection___SimpleCollection___add(variable[6])(variable[6], variable[16]) /*AbstractArray::add*/;
+    variable[6] = CALL_string___Object___to_s(variable[6])(variable[6]) /*Object::to_s*/;
+    CALL_syntax_base___AbsSyntaxVisitor___error( variable[1] /*v*/)( variable[1] /*v*/, variable[5], variable[6]) /*AbsSyntaxVisitor::error*/;
+    goto return_label170;
   }
   variable[5] = variable[0];
-  ((syntax_base___PClosureDef___closure__eq_t)CALL(variable[5],COLOR_syntax_base___PClosureDef___closure__eq))(variable[5],  variable[2] /*clos*/) /*PClosureDef::closure=*/;
-  variable[6] = ((typing___TypingVisitor___closure_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure))( variable[1] /*v*/) /*TypingVisitor::closure*/;
+  CALL_syntax_base___PClosureDef___closure__eq(variable[5])(variable[5],  variable[2] /*clos*/) /*PClosureDef::closure=*/;
+  variable[6] = CALL_typing___TypingVisitor___closure( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::closure*/;
   variable[5] = variable[6];
-  ((typing___TypingVisitor___closure__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure__eq))( variable[1] /*v*/,  variable[2] /*clos*/) /*TypingVisitor::closure=*/;
-  variable[6] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-  variable[6] = ((typing___VariableContext___sub_t)CALL(variable[6],COLOR_typing___VariableContext___sub))(variable[6]) /*VariableContext::sub*/;
-  ((typing___TypingVisitor___variable_ctx__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx__eq))( variable[1] /*v*/, variable[6]) /*TypingVisitor::variable_ctx=*/;
+  CALL_typing___TypingVisitor___closure__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[2] /*clos*/) /*TypingVisitor::closure=*/;
+  variable[6] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+  variable[6] = CALL_typing___VariableContext___sub(variable[6])(variable[6]) /*VariableContext::sub*/;
+  CALL_typing___TypingVisitor___variable_ctx__eq( variable[1] /*v*/)( variable[1] /*v*/, variable[6]) /*TypingVisitor::variable_ctx=*/;
   variable[6] = variable[0];
   variable[7] = NEW_Array_array___Array___init(); /*new Array[AutoVariable]*/
-  ((syntax_base___PClosureDef___variables__eq_t)CALL(variable[6],COLOR_syntax_base___PClosureDef___variables__eq))(variable[6], variable[7]) /*PClosureDef::variables=*/;
+  CALL_syntax_base___PClosureDef___variables__eq(variable[6])(variable[6], variable[7]) /*PClosureDef::variables=*/;
   variable[6] = variable[0];
-  variable[6] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[6],COLOR_parser_nodes___AClosureDef___n_id))(variable[6]) /*AClosureDef::n_id*/;
-  variable[6] = ((list___List___length_t)CALL(variable[6],COLOR_abstract_collection___Collection___length))(variable[6]) /*List::length*/;
+  variable[6] = CALL_parser_nodes___AClosureDef___n_id(variable[6])(variable[6]) /*AClosureDef::n_id*/;
+  variable[6] = CALL_abstract_collection___Collection___length(variable[6])(variable[6]) /*List::length*/;
   variable[7] = NEW_Range_range___Range___without_last( TAG_Int(0), variable[6]); /*new Range[Int]*/
   variable[6] = variable[7];
-  variable[6] = ((range___Range___iterator_t)CALL(variable[6],COLOR_abstract_collection___Collection___iterator))(variable[6]) /*Range::iterator*/;
+  variable[6] = CALL_abstract_collection___Collection___iterator(variable[6])(variable[6]) /*Range::iterator*/;
   while (true) { /*for*/
-    variable[7] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[6],COLOR_abstract_collection___Iterator___is_ok))(variable[6]) /*Iterator::is_ok*/;
+    variable[7] = CALL_abstract_collection___Iterator___is_ok(variable[6])(variable[6]) /*Iterator::is_ok*/;
     if (!UNTAG_Bool(variable[7])) break; /*for*/
-    variable[7] = ((abstract_collection___Iterator___item_t)CALL(variable[6],COLOR_abstract_collection___Iterator___item))(variable[6]) /*Iterator::item*/;
+    variable[7] = CALL_abstract_collection___Iterator___item(variable[6])(variable[6]) /*Iterator::item*/;
     variable[8] = variable[7];
     variable[10] = variable[0];
-    variable[10] = ((parser_nodes___AClosureDef___n_id_t)CALL(variable[10],COLOR_parser_nodes___AClosureDef___n_id))(variable[10]) /*AClosureDef::n_id*/;
-    variable[10] = ((list___List_____bra_t)CALL(variable[10],COLOR_abstract_collection___Map_____bra))(variable[10],  variable[8] /*i*/) /*List::[]*/;
-    variable[10] = ((syntax_base___Token___to_symbol_t)CALL(variable[10],COLOR_syntax_base___Token___to_symbol))(variable[10]) /*Token::to_symbol*/;
+    variable[10] = CALL_parser_nodes___AClosureDef___n_id(variable[10])(variable[10]) /*AClosureDef::n_id*/;
+    variable[10] = CALL_abstract_collection___Map_____bra(variable[10])(variable[10],  variable[8] /*i*/) /*List::[]*/;
+    variable[10] = CALL_syntax_base___Token___to_symbol(variable[10])(variable[10]) /*Token::to_symbol*/;
     variable[11] = variable[0];
     variable[12] = NEW_AutoVariable_syntax_base___AutoVariable___init(variable[10], variable[11]); /*new AutoVariable*/
     variable[10] = variable[12];
     variable[9] = variable[10];
     variable[10] = variable[0];
-    variable[10] = ((syntax_base___PClosureDef___variables_t)CALL(variable[10],COLOR_syntax_base___PClosureDef___variables))(variable[10]) /*PClosureDef::variables*/;
-    ((array___AbstractArray___add_t)CALL(variable[10],COLOR_abstract_collection___SimpleCollection___add))(variable[10],  variable[9] /*va*/) /*AbstractArray::add*/;
-    variable[10] = ((static_type___MMSignature_____bra_t)CALL( variable[4] /*sig*/,COLOR_static_type___MMSignature_____bra))( variable[4] /*sig*/,  variable[8] /*i*/) /*MMSignature::[]*/;
-    ((syntax_base___Variable___stype__eq_t)CALL( variable[9] /*va*/,COLOR_syntax_base___Variable___stype__eq))( variable[9] /*va*/, variable[10]) /*Variable::stype=*/;
-    variable[10] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
-    ((typing___VariableContext___add_t)CALL(variable[10],COLOR_typing___VariableContext___add))(variable[10],  variable[9] /*va*/) /*VariableContext::add*/;
-    continue_159: while(0);
-    ((abstract_collection___Iterator___next_t)CALL(variable[6],COLOR_abstract_collection___Iterator___next))(variable[6]) /*Iterator::next*/;
+    variable[10] = CALL_syntax_base___PClosureDef___variables(variable[10])(variable[10]) /*PClosureDef::variables*/;
+    CALL_abstract_collection___SimpleCollection___add(variable[10])(variable[10],  variable[9] /*va*/) /*AbstractArray::add*/;
+    variable[10] = CALL_static_type___MMSignature_____bra( variable[4] /*sig*/)( variable[4] /*sig*/,  variable[8] /*i*/) /*MMSignature::[]*/;
+    CALL_syntax_base___Variable___stype__eq( variable[9] /*va*/)( variable[9] /*va*/, variable[10]) /*Variable::stype=*/;
+    variable[10] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+    CALL_typing___VariableContext___add(variable[10])(variable[10],  variable[9] /*va*/) /*VariableContext::add*/;
+    continue_171: while(0);
+    CALL_abstract_collection___Iterator___next(variable[6])(variable[6]) /*Iterator::next*/;
   }
-  break_159: while(0);
+  break_171: while(0);
   variable[6] = variable[0];
   ATTR_typing___PClosureDef____accept_typing2(variable[6]) /*PClosureDef::_accept_typing2*/ =  TAG_Bool(true);
   variable[6] = variable[0];
-  ((typing___PClosureDef___accept_typing_t)CALL(variable[6],COLOR_typing___PNode___accept_typing))(variable[6],  variable[1] /*v*/) /*PClosureDef::accept_typing*/;
-  ((typing___TypingVisitor___closure__eq_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___closure__eq))( variable[1] /*v*/,  variable[5] /*old_clos*/) /*TypingVisitor::closure=*/;
-  return_label158: while(false);
+  CALL_typing___PNode___accept_typing(variable[6])(variable[6],  variable[1] /*v*/) /*PClosureDef::accept_typing*/;
+  CALL_typing___TypingVisitor___closure__eq( variable[1] /*v*/)( variable[1] /*v*/,  variable[5] /*old_clos*/) /*TypingVisitor::closure=*/;
+  return_label170: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AIsaExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1346, LOCATE_typing___AIsaExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 1402, LOCATE_typing___AIsaExpr___after_typing};
   val_t variable[7];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4735,28 +5202,28 @@ void typing___AIsaExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AIsaExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AIsaExpr___n_expr))(variable[4]) /*AIsaExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___its_variable_t)CALL(variable[4],COLOR_typing___PExpr___its_variable))(variable[4]) /*PExpr::its_variable*/;
+  variable[4] = CALL_parser_nodes___AIsaExpr___n_expr(variable[4])(variable[4]) /*AIsaExpr::n_expr*/;
+  variable[4] = CALL_typing___PExpr___its_variable(variable[4])(variable[4]) /*PExpr::its_variable*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*variable*/ ==  NIT_NULL /*null*/) || (( variable[3] /*variable*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*variable*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*variable*/,COLOR_kernel___Object_____eqeq))( variable[3] /*variable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[4] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[3] /*variable*/ ==  NIT_NULL /*null*/) || (( variable[3] /*variable*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*variable*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*variable*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*variable*/)( variable[3] /*variable*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[4] = variable[0];
-    variable[5] = ((typing___TypingVisitor___variable_ctx_t)CALL( variable[1] /*v*/,COLOR_typing___TypingVisitor___variable_ctx))( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
+    variable[5] = CALL_typing___TypingVisitor___variable_ctx( variable[1] /*v*/)( variable[1] /*v*/) /*TypingVisitor::variable_ctx*/;
     variable[6] = variable[0];
-    variable[6] = ((parser_nodes___AIsaExpr___n_type_t)CALL(variable[6],COLOR_parser_nodes___AIsaExpr___n_type))(variable[6]) /*AIsaExpr::n_type*/;
-    variable[6] = ((typing___PType___stype_t)CALL(variable[6],COLOR_typing___PType___stype))(variable[6]) /*PType::stype*/;
-    variable[5] = ((typing___VariableContext___sub_with_t)CALL(variable[5],COLOR_typing___VariableContext___sub_with))(variable[5],  variable[3] /*variable*/, variable[6]) /*VariableContext::sub_with*/;
+    variable[6] = CALL_parser_nodes___AIsaExpr___n_type(variable[6])(variable[6]) /*AIsaExpr::n_type*/;
+    variable[6] = CALL_typing___PType___stype(variable[6])(variable[6]) /*PType::stype*/;
+    variable[5] = CALL_typing___VariableContext___sub_with(variable[5])(variable[5],  variable[3] /*variable*/, variable[6]) /*VariableContext::sub_with*/;
     ATTR_typing___PExpr____if_true_variable_ctx(variable[4]) /*PExpr::_if_true_variable_ctx*/ = variable[5];
   }
   variable[4] = variable[0];
-  variable[5] = ((syntax_base___AbsSyntaxVisitor___type_bool_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___type_bool))( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
+  variable[5] = CALL_syntax_base___AbsSyntaxVisitor___type_bool( variable[1] /*v*/)( variable[1] /*v*/) /*AbsSyntaxVisitor::type_bool*/;
   ATTR_typing___PExpr____stype(variable[4]) /*PExpr::_stype*/ = variable[5];
-  return_label160: while(false);
+  return_label172: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AAsCastExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1357, LOCATE_typing___AAsCastExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 1413, LOCATE_typing___AAsCastExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4764,19 +5231,19 @@ void typing___AAsCastExpr___after_typing(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((parser_nodes___AAsCastExpr___n_expr_t)CALL(variable[3],COLOR_parser_nodes___AAsCastExpr___n_expr))(variable[3]) /*AAsCastExpr::n_expr*/;
-  ((syntax_base___AbsSyntaxVisitor___check_expr_t)CALL( variable[1] /*v*/,COLOR_syntax_base___AbsSyntaxVisitor___check_expr))( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
+  variable[3] = CALL_parser_nodes___AAsCastExpr___n_expr(variable[3])(variable[3]) /*AAsCastExpr::n_expr*/;
+  CALL_syntax_base___AbsSyntaxVisitor___check_expr( variable[1] /*v*/)( variable[1] /*v*/, variable[3]) /*AbsSyntaxVisitor::check_expr*/;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AAsCastExpr___n_type_t)CALL(variable[4],COLOR_parser_nodes___AAsCastExpr___n_type))(variable[4]) /*AAsCastExpr::n_type*/;
-  variable[4] = ((typing___PType___stype_t)CALL(variable[4],COLOR_typing___PType___stype))(variable[4]) /*PType::stype*/;
+  variable[4] = CALL_parser_nodes___AAsCastExpr___n_type(variable[4])(variable[4]) /*AAsCastExpr::n_type*/;
+  variable[4] = CALL_typing___PType___stype(variable[4])(variable[4]) /*PType::stype*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label161: while(false);
+  return_label173: while(false);
   tracehead = trace.prev;
   return;
 }
 void typing___AProxyExpr___after_typing(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 1365, LOCATE_typing___AProxyExpr___after_typing};
+  struct trace_t trace = {NULL, NULL, 1421, LOCATE_typing___AProxyExpr___after_typing};
   val_t variable[5];
   void **closurevariable = NULL;
   trace.prev = tracehead; tracehead = &trace;
@@ -4785,10 +5252,10 @@ void typing___AProxyExpr___after_typing(val_t  self, val_t  param0) {
   variable[1] =  param0;
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((parser_nodes___AProxyExpr___n_expr_t)CALL(variable[4],COLOR_parser_nodes___AProxyExpr___n_expr))(variable[4]) /*AProxyExpr::n_expr*/;
-  variable[4] = ((typing___PExpr___stype_t)CALL(variable[4],COLOR_syntax_base___PExpr___stype))(variable[4]) /*PExpr::stype*/;
+  variable[4] = CALL_parser_nodes___AProxyExpr___n_expr(variable[4])(variable[4]) /*AProxyExpr::n_expr*/;
+  variable[4] = CALL_syntax_base___PExpr___stype(variable[4])(variable[4]) /*PExpr::stype*/;
   ATTR_typing___PExpr____stype(variable[3]) /*PExpr::_stype*/ = variable[4];
-  return_label162: while(false);
+  return_label174: while(false);
   tracehead = trace.prev;
   return;
 }
index 077214a..a011788 100644 (file)
@@ -17,121 +17,147 @@ extern const classtable_elt_t VFT_ASuperInitCall[];
 extern const classtable_elt_t VFT_ASendReassignExpr[];
 extern const char *LOCATE_typing;
 extern const int SFT_typing[];
-#define COLOR_typing___MMSrcModule___do_typing SFT_typing[0]
-#define ID_TypingVisitor SFT_typing[1]
-#define COLOR_TypingVisitor SFT_typing[2]
-#define COLOR_typing___TypingVisitor____variable_ctx SFT_typing[3]
-#define COLOR_typing___TypingVisitor____self_var SFT_typing[4]
-#define COLOR_typing___TypingVisitor____top_block SFT_typing[5]
-#define COLOR_typing___TypingVisitor____closure SFT_typing[6]
-#define COLOR_typing___TypingVisitor____closure_break_stype SFT_typing[7]
-#define COLOR_typing___TypingVisitor____break_list SFT_typing[8]
-#define COLOR_typing___TypingVisitor____explicit_super_init_calls SFT_typing[9]
-#define COLOR_typing___TypingVisitor____explicit_other_init_call SFT_typing[10]
-#define INIT_TABLE_POS_TypingVisitor SFT_typing[11]
-#define COLOR_typing___TypingVisitor___variable_ctx SFT_typing[12]
-#define COLOR_typing___TypingVisitor___variable_ctx__eq SFT_typing[13]
-#define COLOR_typing___TypingVisitor___self_var SFT_typing[14]
-#define COLOR_typing___TypingVisitor___self_var__eq SFT_typing[15]
-#define COLOR_typing___TypingVisitor___top_block SFT_typing[16]
-#define COLOR_typing___TypingVisitor___top_block__eq SFT_typing[17]
-#define COLOR_typing___TypingVisitor___closure SFT_typing[18]
-#define COLOR_typing___TypingVisitor___closure__eq SFT_typing[19]
-#define COLOR_typing___TypingVisitor___closure_break_stype SFT_typing[20]
-#define COLOR_typing___TypingVisitor___closure_break_stype__eq SFT_typing[21]
-#define COLOR_typing___TypingVisitor___break_list SFT_typing[22]
-#define COLOR_typing___TypingVisitor___break_list__eq SFT_typing[23]
-#define COLOR_typing___TypingVisitor___explicit_super_init_calls SFT_typing[24]
-#define COLOR_typing___TypingVisitor___explicit_super_init_calls__eq SFT_typing[25]
-#define COLOR_typing___TypingVisitor___explicit_other_init_call SFT_typing[26]
-#define COLOR_typing___TypingVisitor___explicit_other_init_call__eq SFT_typing[27]
-#define COLOR_typing___TypingVisitor___init SFT_typing[28]
-#define COLOR_typing___TypingVisitor___get_default_constructor_for SFT_typing[29]
-#define ID_VariableContext SFT_typing[30]
-#define COLOR_VariableContext SFT_typing[31]
-#define COLOR_typing___VariableContext____dico SFT_typing[32]
-#define INIT_TABLE_POS_VariableContext SFT_typing[33]
-#define COLOR_typing___VariableContext_____bra SFT_typing[34]
-#define COLOR_typing___VariableContext___add SFT_typing[35]
-#define COLOR_typing___VariableContext___stype SFT_typing[36]
-#define COLOR_typing___VariableContext___sub SFT_typing[37]
-#define COLOR_typing___VariableContext___sub_with SFT_typing[38]
-#define COLOR_typing___VariableContext___init SFT_typing[39]
-#define ID_SubVariableContext SFT_typing[40]
-#define COLOR_SubVariableContext SFT_typing[41]
-#define COLOR_typing___SubVariableContext____prev SFT_typing[42]
-#define COLOR_typing___SubVariableContext____variable SFT_typing[43]
-#define COLOR_typing___SubVariableContext____var_type SFT_typing[44]
-#define INIT_TABLE_POS_SubVariableContext SFT_typing[45]
-#define COLOR_typing___SubVariableContext___prev SFT_typing[46]
-#define COLOR_typing___SubVariableContext___with_prev SFT_typing[47]
-#define COLOR_typing___PNode___accept_typing SFT_typing[48]
-#define COLOR_typing___PNode___after_typing SFT_typing[49]
-#define COLOR_SUPER_typing___PClassdef___accept_typing SFT_typing[50]
-#define COLOR_SUPER_typing___AAttrPropdef___accept_typing SFT_typing[51]
-#define COLOR_typing___AMethPropdef____self_var SFT_typing[52]
-#define COLOR_SUPER_typing___AMethPropdef___accept_typing SFT_typing[53]
-#define COLOR_typing___AConcreteInitPropdef____super_init_calls SFT_typing[54]
-#define COLOR_typing___AConcreteInitPropdef____explicit_super_init_calls SFT_typing[55]
-#define COLOR_typing___AConcreteInitPropdef___super_init_calls SFT_typing[56]
-#define COLOR_typing___AConcreteInitPropdef___explicit_super_init_calls SFT_typing[57]
-#define COLOR_SUPER_typing___AConcreteInitPropdef___accept_typing SFT_typing[58]
-#define COLOR_SUPER_typing___AClosureDecl___accept_typing SFT_typing[59]
-#define COLOR_typing___PType____stype SFT_typing[60]
-#define COLOR_typing___PType___stype SFT_typing[61]
-#define COLOR_typing___PExpr____stype SFT_typing[62]
-#define COLOR_typing___PExpr____if_true_variable_ctx SFT_typing[63]
-#define COLOR_typing___PExpr___is_implicit_self SFT_typing[64]
-#define COLOR_typing___PExpr___is_self SFT_typing[65]
-#define COLOR_typing___PExpr___its_variable SFT_typing[66]
-#define COLOR_typing___PExpr___if_true_variable_ctx SFT_typing[67]
-#define COLOR_SUPER_typing___ABlockExpr___accept_typing SFT_typing[68]
-#define COLOR_typing___AReassignFormExpr____assign_method SFT_typing[69]
-#define COLOR_typing___AReassignFormExpr___do_lvalue_typing SFT_typing[70]
-#define COLOR_typing___AReassignFormExpr___assign_method SFT_typing[71]
-#define COLOR_typing___PAssignOp___method_name SFT_typing[72]
-#define COLOR_typing___AArrayExpr___stype__eq SFT_typing[73]
-#define COLOR_typing___ASuperExpr____init_in_superclass SFT_typing[74]
-#define COLOR_typing___ASuperExpr___init_in_superclass SFT_typing[75]
-#define COLOR_typing___AAttrFormExpr____prop SFT_typing[76]
-#define COLOR_typing___AAttrFormExpr____attr_type SFT_typing[77]
-#define COLOR_typing___AAttrFormExpr___prop SFT_typing[78]
-#define COLOR_typing___AAttrFormExpr___attr_type SFT_typing[79]
-#define COLOR_typing___AAttrFormExpr___do_typing SFT_typing[80]
-#define ID_AAbsSendExpr SFT_typing[81]
-#define COLOR_AAbsSendExpr SFT_typing[82]
-#define COLOR_typing___AAbsSendExpr____prop_signature SFT_typing[83]
-#define COLOR_typing___AAbsSendExpr____prop SFT_typing[84]
-#define COLOR_typing___AAbsSendExpr____arguments SFT_typing[85]
-#define COLOR_typing___AAbsSendExpr____return_type SFT_typing[86]
-#define INIT_TABLE_POS_AAbsSendExpr SFT_typing[87]
-#define COLOR_typing___AAbsSendExpr___prop_signature SFT_typing[88]
-#define COLOR_typing___AAbsSendExpr___do_typing SFT_typing[89]
-#define COLOR_typing___AAbsSendExpr___get_property SFT_typing[90]
-#define COLOR_typing___AAbsSendExpr___get_signature SFT_typing[91]
-#define COLOR_typing___AAbsSendExpr___process_signature SFT_typing[92]
-#define COLOR_typing___AAbsSendExpr___process_closures SFT_typing[93]
-#define COLOR_typing___AAbsSendExpr___prop SFT_typing[94]
-#define COLOR_typing___AAbsSendExpr___arguments SFT_typing[95]
-#define COLOR_typing___AAbsSendExpr___return_type SFT_typing[96]
-#define ID_ASuperInitCall SFT_typing[97]
-#define COLOR_ASuperInitCall SFT_typing[98]
-#define INIT_TABLE_POS_ASuperInitCall SFT_typing[99]
-#define COLOR_typing___ASuperInitCall___register_super_init_call SFT_typing[100]
-#define COLOR_typing___ASendExpr___name SFT_typing[101]
-#define COLOR_typing___ASendExpr___raw_arguments SFT_typing[102]
-#define COLOR_typing___ASendExpr___closure_defs SFT_typing[103]
-#define COLOR_typing___ASendExpr___do_all_typing SFT_typing[104]
-#define ID_ASendReassignExpr SFT_typing[105]
-#define COLOR_ASendReassignExpr SFT_typing[106]
-#define COLOR_typing___ASendReassignExpr____read_prop SFT_typing[107]
-#define INIT_TABLE_POS_ASendReassignExpr SFT_typing[108]
-#define COLOR_typing___ASendReassignExpr___read_prop SFT_typing[109]
-#define COLOR_SUPER_typing___ACallFormExpr___after_typing SFT_typing[110]
-#define COLOR_typing___ACallFormExpr___variable_create SFT_typing[111]
-#define COLOR_typing___PClosureDef____accept_typing2 SFT_typing[112]
-#define COLOR_SUPER_typing___PClosureDef___accept_typing SFT_typing[113]
-#define COLOR_typing___PClosureDef___accept_typing2 SFT_typing[114]
+#define CALL_typing___MMSrcModule___do_typing(recv) ((typing___MMSrcModule___do_typing_t)CALL((recv), (SFT_typing[0] + 0)))
+#define ID_TypingVisitor (SFT_typing[1])
+#define COLOR_TypingVisitor (SFT_typing[2])
+#define ATTR_typing___TypingVisitor____variable_ctx(recv) ATTR(recv, (SFT_typing[3] + 0))
+#define ATTR_typing___TypingVisitor____self_var(recv) ATTR(recv, (SFT_typing[3] + 1))
+#define ATTR_typing___TypingVisitor____top_block(recv) ATTR(recv, (SFT_typing[3] + 2))
+#define ATTR_typing___TypingVisitor____closure(recv) ATTR(recv, (SFT_typing[3] + 3))
+#define ATTR_typing___TypingVisitor____closure_break_stype(recv) ATTR(recv, (SFT_typing[3] + 4))
+#define ATTR_typing___TypingVisitor____break_list(recv) ATTR(recv, (SFT_typing[3] + 5))
+#define ATTR_typing___TypingVisitor____explicit_super_init_calls(recv) ATTR(recv, (SFT_typing[3] + 6))
+#define ATTR_typing___TypingVisitor____explicit_other_init_call(recv) ATTR(recv, (SFT_typing[3] + 7))
+#define INIT_TABLE_POS_TypingVisitor (SFT_typing[4] + 0)
+#define CALL_typing___TypingVisitor___variable_ctx(recv) ((typing___TypingVisitor___variable_ctx_t)CALL((recv), (SFT_typing[4] + 1)))
+#define CALL_typing___TypingVisitor___variable_ctx__eq(recv) ((typing___TypingVisitor___variable_ctx__eq_t)CALL((recv), (SFT_typing[4] + 2)))
+#define CALL_typing___TypingVisitor___self_var(recv) ((typing___TypingVisitor___self_var_t)CALL((recv), (SFT_typing[4] + 3)))
+#define CALL_typing___TypingVisitor___self_var__eq(recv) ((typing___TypingVisitor___self_var__eq_t)CALL((recv), (SFT_typing[4] + 4)))
+#define CALL_typing___TypingVisitor___top_block(recv) ((typing___TypingVisitor___top_block_t)CALL((recv), (SFT_typing[4] + 5)))
+#define CALL_typing___TypingVisitor___top_block__eq(recv) ((typing___TypingVisitor___top_block__eq_t)CALL((recv), (SFT_typing[4] + 6)))
+#define CALL_typing___TypingVisitor___closure(recv) ((typing___TypingVisitor___closure_t)CALL((recv), (SFT_typing[4] + 7)))
+#define CALL_typing___TypingVisitor___closure__eq(recv) ((typing___TypingVisitor___closure__eq_t)CALL((recv), (SFT_typing[4] + 8)))
+#define CALL_typing___TypingVisitor___closure_break_stype(recv) ((typing___TypingVisitor___closure_break_stype_t)CALL((recv), (SFT_typing[4] + 9)))
+#define CALL_typing___TypingVisitor___closure_break_stype__eq(recv) ((typing___TypingVisitor___closure_break_stype__eq_t)CALL((recv), (SFT_typing[4] + 10)))
+#define CALL_typing___TypingVisitor___break_list(recv) ((typing___TypingVisitor___break_list_t)CALL((recv), (SFT_typing[4] + 11)))
+#define CALL_typing___TypingVisitor___break_list__eq(recv) ((typing___TypingVisitor___break_list__eq_t)CALL((recv), (SFT_typing[4] + 12)))
+#define CALL_typing___TypingVisitor___explicit_super_init_calls(recv) ((typing___TypingVisitor___explicit_super_init_calls_t)CALL((recv), (SFT_typing[4] + 13)))
+#define CALL_typing___TypingVisitor___explicit_super_init_calls__eq(recv) ((typing___TypingVisitor___explicit_super_init_calls__eq_t)CALL((recv), (SFT_typing[4] + 14)))
+#define CALL_typing___TypingVisitor___explicit_other_init_call(recv) ((typing___TypingVisitor___explicit_other_init_call_t)CALL((recv), (SFT_typing[4] + 15)))
+#define CALL_typing___TypingVisitor___explicit_other_init_call__eq(recv) ((typing___TypingVisitor___explicit_other_init_call__eq_t)CALL((recv), (SFT_typing[4] + 16)))
+#define CALL_typing___TypingVisitor___init(recv) ((typing___TypingVisitor___init_t)CALL((recv), (SFT_typing[4] + 17)))
+#define CALL_typing___TypingVisitor___get_default_constructor_for(recv) ((typing___TypingVisitor___get_default_constructor_for_t)CALL((recv), (SFT_typing[4] + 18)))
+#define ID_VariableContext (SFT_typing[5])
+#define COLOR_VariableContext (SFT_typing[6])
+#define ATTR_typing___VariableContext____dico(recv) ATTR(recv, (SFT_typing[7] + 0))
+#define INIT_TABLE_POS_VariableContext (SFT_typing[8] + 0)
+#define CALL_typing___VariableContext_____bra(recv) ((typing___VariableContext_____bra_t)CALL((recv), (SFT_typing[8] + 1)))
+#define CALL_typing___VariableContext___add(recv) ((typing___VariableContext___add_t)CALL((recv), (SFT_typing[8] + 2)))
+#define CALL_typing___VariableContext___stype(recv) ((typing___VariableContext___stype_t)CALL((recv), (SFT_typing[8] + 3)))
+#define CALL_typing___VariableContext___sub(recv) ((typing___VariableContext___sub_t)CALL((recv), (SFT_typing[8] + 4)))
+#define CALL_typing___VariableContext___sub_with(recv) ((typing___VariableContext___sub_with_t)CALL((recv), (SFT_typing[8] + 5)))
+#define CALL_typing___VariableContext___init(recv) ((typing___VariableContext___init_t)CALL((recv), (SFT_typing[8] + 6)))
+#define ID_SubVariableContext (SFT_typing[9])
+#define COLOR_SubVariableContext (SFT_typing[10])
+#define ATTR_typing___SubVariableContext____prev(recv) ATTR(recv, (SFT_typing[11] + 0))
+#define ATTR_typing___SubVariableContext____variable(recv) ATTR(recv, (SFT_typing[11] + 1))
+#define ATTR_typing___SubVariableContext____var_type(recv) ATTR(recv, (SFT_typing[11] + 2))
+#define INIT_TABLE_POS_SubVariableContext (SFT_typing[12] + 0)
+#define CALL_typing___SubVariableContext___prev(recv) ((typing___SubVariableContext___prev_t)CALL((recv), (SFT_typing[12] + 1)))
+#define CALL_typing___SubVariableContext___with_prev(recv) ((typing___SubVariableContext___with_prev_t)CALL((recv), (SFT_typing[12] + 2)))
+#define CALL_typing___PNode___accept_typing(recv) ((typing___PNode___accept_typing_t)CALL((recv), (SFT_typing[13] + 0)))
+#define CALL_typing___PNode___after_typing(recv) ((typing___PNode___after_typing_t)CALL((recv), (SFT_typing[13] + 1)))
+#define CALL_SUPER_typing___PClassdef___accept_typing(recv) ((typing___PClassdef___accept_typing_t)CALL((recv), (SFT_typing[14] + 0)))
+#define CALL_SUPER_typing___AAttrPropdef___accept_typing(recv) ((typing___AAttrPropdef___accept_typing_t)CALL((recv), (SFT_typing[15] + 0)))
+#define ATTR_typing___AMethPropdef____self_var(recv) ATTR(recv, (SFT_typing[16] + 0))
+#define CALL_SUPER_typing___AMethPropdef___accept_typing(recv) ((typing___AMethPropdef___accept_typing_t)CALL((recv), (SFT_typing[17] + 0)))
+#define ATTR_typing___AConcreteInitPropdef____super_init_calls(recv) ATTR(recv, (SFT_typing[18] + 0))
+#define ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls(recv) ATTR(recv, (SFT_typing[18] + 1))
+#define CALL_typing___AConcreteInitPropdef___super_init_calls(recv) ((typing___AConcreteInitPropdef___super_init_calls_t)CALL((recv), (SFT_typing[19] + 0)))
+#define CALL_typing___AConcreteInitPropdef___explicit_super_init_calls(recv) ((typing___AConcreteInitPropdef___explicit_super_init_calls_t)CALL((recv), (SFT_typing[19] + 1)))
+#define CALL_SUPER_typing___AConcreteInitPropdef___accept_typing(recv) ((typing___AConcreteInitPropdef___accept_typing_t)CALL((recv), (SFT_typing[19] + 2)))
+#define CALL_SUPER_typing___AClosureDecl___accept_typing(recv) ((typing___AClosureDecl___accept_typing_t)CALL((recv), (SFT_typing[20] + 0)))
+#define ATTR_typing___PType____stype(recv) ATTR(recv, (SFT_typing[21] + 0))
+#define CALL_typing___PType___stype(recv) ((typing___PType___stype_t)CALL((recv), (SFT_typing[22] + 0)))
+#define ATTR_typing___PExpr____stype(recv) ATTR(recv, (SFT_typing[23] + 0))
+#define ATTR_typing___PExpr____if_true_variable_ctx(recv) ATTR(recv, (SFT_typing[23] + 1))
+#define CALL_typing___PExpr___is_implicit_self(recv) ((typing___PExpr___is_implicit_self_t)CALL((recv), (SFT_typing[24] + 0)))
+#define CALL_typing___PExpr___is_self(recv) ((typing___PExpr___is_self_t)CALL((recv), (SFT_typing[24] + 1)))
+#define CALL_typing___PExpr___its_variable(recv) ((typing___PExpr___its_variable_t)CALL((recv), (SFT_typing[24] + 2)))
+#define CALL_typing___PExpr___if_true_variable_ctx(recv) ((typing___PExpr___if_true_variable_ctx_t)CALL((recv), (SFT_typing[24] + 3)))
+#define CALL_SUPER_typing___ABlockExpr___accept_typing(recv) ((typing___ABlockExpr___accept_typing_t)CALL((recv), (SFT_typing[25] + 0)))
+#define ATTR_typing___AForVardeclExpr____meth_iterator(recv) ATTR(recv, (SFT_typing[26] + 0))
+#define ATTR_typing___AForVardeclExpr____meth_is_ok(recv) ATTR(recv, (SFT_typing[26] + 1))
+#define ATTR_typing___AForVardeclExpr____meth_item(recv) ATTR(recv, (SFT_typing[26] + 2))
+#define ATTR_typing___AForVardeclExpr____meth_next(recv) ATTR(recv, (SFT_typing[26] + 3))
+#define CALL_typing___AForVardeclExpr___meth_iterator(recv) ((typing___AForVardeclExpr___meth_iterator_t)CALL((recv), (SFT_typing[27] + 0)))
+#define CALL_typing___AForVardeclExpr___meth_is_ok(recv) ((typing___AForVardeclExpr___meth_is_ok_t)CALL((recv), (SFT_typing[27] + 1)))
+#define CALL_typing___AForVardeclExpr___meth_item(recv) ((typing___AForVardeclExpr___meth_item_t)CALL((recv), (SFT_typing[27] + 2)))
+#define CALL_typing___AForVardeclExpr___meth_next(recv) ((typing___AForVardeclExpr___meth_next_t)CALL((recv), (SFT_typing[27] + 3)))
+#define ATTR_typing___AReassignFormExpr____assign_method(recv) ATTR(recv, (SFT_typing[28] + 0))
+#define CALL_typing___AReassignFormExpr___do_lvalue_typing(recv) ((typing___AReassignFormExpr___do_lvalue_typing_t)CALL((recv), (SFT_typing[29] + 0)))
+#define CALL_typing___AReassignFormExpr___assign_method(recv) ((typing___AReassignFormExpr___assign_method_t)CALL((recv), (SFT_typing[29] + 1)))
+#define CALL_typing___PAssignOp___method_name(recv) ((typing___PAssignOp___method_name_t)CALL((recv), (SFT_typing[30] + 0)))
+#define ATTR_typing___AStringFormExpr____meth_with_native(recv) ATTR(recv, (SFT_typing[31] + 0))
+#define CALL_typing___AStringFormExpr___meth_with_native(recv) ((typing___AStringFormExpr___meth_with_native_t)CALL((recv), (SFT_typing[32] + 0)))
+#define ATTR_typing___ASuperstringExpr____meth_with_capacity(recv) ATTR(recv, (SFT_typing[33] + 0))
+#define ATTR_typing___ASuperstringExpr____meth_add(recv) ATTR(recv, (SFT_typing[33] + 1))
+#define ATTR_typing___ASuperstringExpr____meth_to_s(recv) ATTR(recv, (SFT_typing[33] + 2))
+#define ATTR_typing___ASuperstringExpr____atype(recv) ATTR(recv, (SFT_typing[33] + 3))
+#define CALL_typing___ASuperstringExpr___meth_with_capacity(recv) ((typing___ASuperstringExpr___meth_with_capacity_t)CALL((recv), (SFT_typing[34] + 0)))
+#define CALL_typing___ASuperstringExpr___meth_add(recv) ((typing___ASuperstringExpr___meth_add_t)CALL((recv), (SFT_typing[34] + 1)))
+#define CALL_typing___ASuperstringExpr___meth_to_s(recv) ((typing___ASuperstringExpr___meth_to_s_t)CALL((recv), (SFT_typing[34] + 2)))
+#define CALL_typing___ASuperstringExpr___atype(recv) ((typing___ASuperstringExpr___atype_t)CALL((recv), (SFT_typing[34] + 3)))
+#define ATTR_typing___AArrayExpr____meth_with_capacity(recv) ATTR(recv, (SFT_typing[35] + 0))
+#define ATTR_typing___AArrayExpr____meth_add(recv) ATTR(recv, (SFT_typing[35] + 1))
+#define CALL_typing___AArrayExpr___meth_with_capacity(recv) ((typing___AArrayExpr___meth_with_capacity_t)CALL((recv), (SFT_typing[36] + 0)))
+#define CALL_typing___AArrayExpr___meth_add(recv) ((typing___AArrayExpr___meth_add_t)CALL((recv), (SFT_typing[36] + 1)))
+#define CALL_typing___AArrayExpr___do_typing(recv) ((typing___AArrayExpr___do_typing_t)CALL((recv), (SFT_typing[36] + 2)))
+#define ATTR_typing___ARangeExpr____meth_init(recv) ATTR(recv, (SFT_typing[37] + 0))
+#define CALL_typing___ARangeExpr___meth_init(recv) ((typing___ARangeExpr___meth_init_t)CALL((recv), (SFT_typing[38] + 0)))
+#define CALL_SUPER_typing___ACrangeExpr___after_typing(recv) ((typing___ACrangeExpr___after_typing_t)CALL((recv), (SFT_typing[39] + 0)))
+#define CALL_SUPER_typing___AOrangeExpr___after_typing(recv) ((typing___AOrangeExpr___after_typing_t)CALL((recv), (SFT_typing[40] + 0)))
+#define ATTR_typing___ASuperExpr____init_in_superclass(recv) ATTR(recv, (SFT_typing[41] + 0))
+#define CALL_typing___ASuperExpr___init_in_superclass(recv) ((typing___ASuperExpr___init_in_superclass_t)CALL((recv), (SFT_typing[42] + 0)))
+#define ATTR_typing___AAttrFormExpr____prop(recv) ATTR(recv, (SFT_typing[43] + 0))
+#define ATTR_typing___AAttrFormExpr____attr_type(recv) ATTR(recv, (SFT_typing[43] + 1))
+#define CALL_typing___AAttrFormExpr___prop(recv) ((typing___AAttrFormExpr___prop_t)CALL((recv), (SFT_typing[44] + 0)))
+#define CALL_typing___AAttrFormExpr___attr_type(recv) ((typing___AAttrFormExpr___attr_type_t)CALL((recv), (SFT_typing[44] + 1)))
+#define CALL_typing___AAttrFormExpr___do_typing(recv) ((typing___AAttrFormExpr___do_typing_t)CALL((recv), (SFT_typing[44] + 2)))
+#define ID_AAbsSendExpr (SFT_typing[45])
+#define COLOR_AAbsSendExpr (SFT_typing[46])
+#define ATTR_typing___AAbsSendExpr____prop_signature(recv) ATTR(recv, (SFT_typing[47] + 0))
+#define ATTR_typing___AAbsSendExpr____prop(recv) ATTR(recv, (SFT_typing[47] + 1))
+#define ATTR_typing___AAbsSendExpr____arguments(recv) ATTR(recv, (SFT_typing[47] + 2))
+#define ATTR_typing___AAbsSendExpr____return_type(recv) ATTR(recv, (SFT_typing[47] + 3))
+#define INIT_TABLE_POS_AAbsSendExpr (SFT_typing[48] + 0)
+#define CALL_typing___AAbsSendExpr___prop_signature(recv) ((typing___AAbsSendExpr___prop_signature_t)CALL((recv), (SFT_typing[48] + 1)))
+#define CALL_typing___AAbsSendExpr___do_typing(recv) ((typing___AAbsSendExpr___do_typing_t)CALL((recv), (SFT_typing[48] + 2)))
+#define CALL_typing___AAbsSendExpr___get_property(recv) ((typing___AAbsSendExpr___get_property_t)CALL((recv), (SFT_typing[48] + 3)))
+#define CALL_typing___AAbsSendExpr___get_signature(recv) ((typing___AAbsSendExpr___get_signature_t)CALL((recv), (SFT_typing[48] + 4)))
+#define CALL_typing___AAbsSendExpr___process_signature(recv) ((typing___AAbsSendExpr___process_signature_t)CALL((recv), (SFT_typing[48] + 5)))
+#define CALL_typing___AAbsSendExpr___process_closures(recv) ((typing___AAbsSendExpr___process_closures_t)CALL((recv), (SFT_typing[48] + 6)))
+#define CALL_typing___AAbsSendExpr___prop(recv) ((typing___AAbsSendExpr___prop_t)CALL((recv), (SFT_typing[48] + 7)))
+#define CALL_typing___AAbsSendExpr___arguments(recv) ((typing___AAbsSendExpr___arguments_t)CALL((recv), (SFT_typing[48] + 8)))
+#define CALL_typing___AAbsSendExpr___return_type(recv) ((typing___AAbsSendExpr___return_type_t)CALL((recv), (SFT_typing[48] + 9)))
+#define ID_ASuperInitCall (SFT_typing[49])
+#define COLOR_ASuperInitCall (SFT_typing[50])
+#define INIT_TABLE_POS_ASuperInitCall (SFT_typing[51] + 0)
+#define CALL_typing___ASuperInitCall___register_super_init_call(recv) ((typing___ASuperInitCall___register_super_init_call_t)CALL((recv), (SFT_typing[51] + 1)))
+#define CALL_typing___ASendExpr___name(recv) ((typing___ASendExpr___name_t)CALL((recv), (SFT_typing[52] + 0)))
+#define CALL_typing___ASendExpr___raw_arguments(recv) ((typing___ASendExpr___raw_arguments_t)CALL((recv), (SFT_typing[52] + 1)))
+#define CALL_typing___ASendExpr___closure_defs(recv) ((typing___ASendExpr___closure_defs_t)CALL((recv), (SFT_typing[52] + 2)))
+#define CALL_typing___ASendExpr___do_all_typing(recv) ((typing___ASendExpr___do_all_typing_t)CALL((recv), (SFT_typing[52] + 3)))
+#define ID_ASendReassignExpr (SFT_typing[53])
+#define COLOR_ASendReassignExpr (SFT_typing[54])
+#define ATTR_typing___ASendReassignExpr____read_prop(recv) ATTR(recv, (SFT_typing[55] + 0))
+#define INIT_TABLE_POS_ASendReassignExpr (SFT_typing[56] + 0)
+#define CALL_typing___ASendReassignExpr___read_prop(recv) ((typing___ASendReassignExpr___read_prop_t)CALL((recv), (SFT_typing[56] + 1)))
+#define CALL_SUPER_typing___ACallFormExpr___after_typing(recv) ((typing___ACallFormExpr___after_typing_t)CALL((recv), (SFT_typing[57] + 0)))
+#define CALL_typing___ACallFormExpr___variable_create(recv) ((typing___ACallFormExpr___variable_create_t)CALL((recv), (SFT_typing[57] + 1)))
+#define ATTR_typing___PClosureDef____accept_typing2(recv) ATTR(recv, (SFT_typing[58] + 0))
+#define CALL_SUPER_typing___PClosureDef___accept_typing(recv) ((typing___PClosureDef___accept_typing_t)CALL((recv), (SFT_typing[59] + 0)))
+#define CALL_typing___PClosureDef___accept_typing2(recv) ((typing___PClosureDef___accept_typing2_t)CALL((recv), (SFT_typing[59] + 1)))
 val_t NEW_MMSrcModule_syntax_base___MMSrcModule___init(val_t p0, val_t p1, val_t p2, val_t p3);
 typedef void (* typing___MMSrcModule___do_typing_t)(val_t  self, val_t  param0);
 void typing___MMSrcModule___do_typing(val_t  self, val_t  param0);
@@ -139,56 +165,48 @@ void typing___MMSrcModule___do_typing(val_t  self, val_t  param0);
 typedef void (* typing___TypingVisitor___visit_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___visit(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___visit "typing::TypingVisitor::(parser_prod::Visitor::visit)"
-#define ATTR_typing___TypingVisitor____variable_ctx(recv) ATTR(recv, COLOR_typing___TypingVisitor____variable_ctx)
 typedef val_t (* typing___TypingVisitor___variable_ctx_t)(val_t  self);
 val_t typing___TypingVisitor___variable_ctx(val_t  self);
 #define LOCATE_typing___TypingVisitor___variable_ctx "typing::TypingVisitor::variable_ctx"
 typedef void (* typing___TypingVisitor___variable_ctx__eq_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___variable_ctx__eq(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___variable_ctx__eq "typing::TypingVisitor::variable_ctx="
-#define ATTR_typing___TypingVisitor____self_var(recv) ATTR(recv, COLOR_typing___TypingVisitor____self_var)
 typedef val_t (* typing___TypingVisitor___self_var_t)(val_t  self);
 val_t typing___TypingVisitor___self_var(val_t  self);
 #define LOCATE_typing___TypingVisitor___self_var "typing::TypingVisitor::self_var"
 typedef void (* typing___TypingVisitor___self_var__eq_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___self_var__eq(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___self_var__eq "typing::TypingVisitor::self_var="
-#define ATTR_typing___TypingVisitor____top_block(recv) ATTR(recv, COLOR_typing___TypingVisitor____top_block)
 typedef val_t (* typing___TypingVisitor___top_block_t)(val_t  self);
 val_t typing___TypingVisitor___top_block(val_t  self);
 #define LOCATE_typing___TypingVisitor___top_block "typing::TypingVisitor::top_block"
 typedef void (* typing___TypingVisitor___top_block__eq_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___top_block__eq(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___top_block__eq "typing::TypingVisitor::top_block="
-#define ATTR_typing___TypingVisitor____closure(recv) ATTR(recv, COLOR_typing___TypingVisitor____closure)
 typedef val_t (* typing___TypingVisitor___closure_t)(val_t  self);
 val_t typing___TypingVisitor___closure(val_t  self);
 #define LOCATE_typing___TypingVisitor___closure "typing::TypingVisitor::closure"
 typedef void (* typing___TypingVisitor___closure__eq_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___closure__eq(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___closure__eq "typing::TypingVisitor::closure="
-#define ATTR_typing___TypingVisitor____closure_break_stype(recv) ATTR(recv, COLOR_typing___TypingVisitor____closure_break_stype)
 typedef val_t (* typing___TypingVisitor___closure_break_stype_t)(val_t  self);
 val_t typing___TypingVisitor___closure_break_stype(val_t  self);
 #define LOCATE_typing___TypingVisitor___closure_break_stype "typing::TypingVisitor::closure_break_stype"
 typedef void (* typing___TypingVisitor___closure_break_stype__eq_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___closure_break_stype__eq(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___closure_break_stype__eq "typing::TypingVisitor::closure_break_stype="
-#define ATTR_typing___TypingVisitor____break_list(recv) ATTR(recv, COLOR_typing___TypingVisitor____break_list)
 typedef val_t (* typing___TypingVisitor___break_list_t)(val_t  self);
 val_t typing___TypingVisitor___break_list(val_t  self);
 #define LOCATE_typing___TypingVisitor___break_list "typing::TypingVisitor::break_list"
 typedef void (* typing___TypingVisitor___break_list__eq_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___break_list__eq(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___break_list__eq "typing::TypingVisitor::break_list="
-#define ATTR_typing___TypingVisitor____explicit_super_init_calls(recv) ATTR(recv, COLOR_typing___TypingVisitor____explicit_super_init_calls)
 typedef val_t (* typing___TypingVisitor___explicit_super_init_calls_t)(val_t  self);
 val_t typing___TypingVisitor___explicit_super_init_calls(val_t  self);
 #define LOCATE_typing___TypingVisitor___explicit_super_init_calls "typing::TypingVisitor::explicit_super_init_calls"
 typedef void (* typing___TypingVisitor___explicit_super_init_calls__eq_t)(val_t  self, val_t  param0);
 void typing___TypingVisitor___explicit_super_init_calls__eq(val_t  self, val_t  param0);
 #define LOCATE_typing___TypingVisitor___explicit_super_init_calls__eq "typing::TypingVisitor::explicit_super_init_calls="
-#define ATTR_typing___TypingVisitor____explicit_other_init_call(recv) ATTR(recv, COLOR_typing___TypingVisitor____explicit_other_init_call)
 typedef val_t (* typing___TypingVisitor___explicit_other_init_call_t)(val_t  self);
 val_t typing___TypingVisitor___explicit_other_init_call(val_t  self);
 #define LOCATE_typing___TypingVisitor___explicit_other_init_call "typing::TypingVisitor::explicit_other_init_call"
@@ -211,7 +229,6 @@ void typing___VariableContext___add(val_t  self, val_t  param0);
 typedef val_t (* typing___VariableContext___stype_t)(val_t  self, val_t  param0);
 val_t typing___VariableContext___stype(val_t  self, val_t  param0);
 #define LOCATE_typing___VariableContext___stype "typing::VariableContext::stype"
-#define ATTR_typing___VariableContext____dico(recv) ATTR(recv, COLOR_typing___VariableContext____dico)
 typedef val_t (* typing___VariableContext___sub_t)(val_t  self);
 val_t typing___VariableContext___sub(val_t  self);
 #define LOCATE_typing___VariableContext___sub "typing::VariableContext::sub"
@@ -228,12 +245,9 @@ val_t typing___SubVariableContext_____bra(val_t  self, val_t  param0);
 typedef val_t (* typing___SubVariableContext___stype_t)(val_t  self, val_t  param0);
 val_t typing___SubVariableContext___stype(val_t  self, val_t  param0);
 #define LOCATE_typing___SubVariableContext___stype "typing::SubVariableContext::(typing::VariableContext::stype)"
-#define ATTR_typing___SubVariableContext____prev(recv) ATTR(recv, COLOR_typing___SubVariableContext____prev)
 typedef val_t (* typing___SubVariableContext___prev_t)(val_t  self);
 val_t typing___SubVariableContext___prev(val_t  self);
 #define LOCATE_typing___SubVariableContext___prev "typing::SubVariableContext::prev"
-#define ATTR_typing___SubVariableContext____variable(recv) ATTR(recv, COLOR_typing___SubVariableContext____variable)
-#define ATTR_typing___SubVariableContext____var_type(recv) ATTR(recv, COLOR_typing___SubVariableContext____var_type)
 typedef void (* typing___SubVariableContext___with_prev_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 void typing___SubVariableContext___with_prev(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_typing___SubVariableContext___with_prev "typing::SubVariableContext::with_prev"
@@ -264,7 +278,6 @@ val_t typing___AMethPropdef___self_var(val_t  self);
 typedef void (* typing___AMethPropdef___accept_typing_t)(val_t  self, val_t  param0);
 void typing___AMethPropdef___accept_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___AMethPropdef___accept_typing "typing::AMethPropdef::(typing::PNode::accept_typing)"
-#define ATTR_typing___AMethPropdef____self_var(recv) ATTR(recv, COLOR_typing___AMethPropdef____self_var)
 val_t NEW_AConcreteInitPropdef_parser_nodes___PNode___init();
 val_t NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___empty_init();
 val_t NEW_AConcreteInitPropdef_parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
@@ -275,11 +288,9 @@ val_t NEW_AConcreteInitPropdef_parser_prod___AConcreteInitPropdef___init_aconcre
 typedef void (* typing___AConcreteInitPropdef___accept_typing_t)(val_t  self, val_t  param0);
 void typing___AConcreteInitPropdef___accept_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___AConcreteInitPropdef___accept_typing "typing::AConcreteInitPropdef::(typing::PNode::accept_typing)"
-#define ATTR_typing___AConcreteInitPropdef____super_init_calls(recv) ATTR(recv, COLOR_typing___AConcreteInitPropdef____super_init_calls)
 typedef val_t (* typing___AConcreteInitPropdef___super_init_calls_t)(val_t  self);
 val_t typing___AConcreteInitPropdef___super_init_calls(val_t  self);
 #define LOCATE_typing___AConcreteInitPropdef___super_init_calls "typing::AConcreteInitPropdef::super_init_calls"
-#define ATTR_typing___AConcreteInitPropdef____explicit_super_init_calls(recv) ATTR(recv, COLOR_typing___AConcreteInitPropdef____explicit_super_init_calls)
 typedef val_t (* typing___AConcreteInitPropdef___explicit_super_init_calls_t)(val_t  self);
 val_t typing___AConcreteInitPropdef___explicit_super_init_calls(val_t  self);
 #define LOCATE_typing___AConcreteInitPropdef___explicit_super_init_calls "typing::AConcreteInitPropdef::explicit_super_init_calls"
@@ -297,7 +308,6 @@ val_t NEW_PType_parser_nodes___PNode___init();
 typedef void (* typing___PType___after_typing_t)(val_t  self, val_t  param0);
 void typing___PType___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___PType___after_typing "typing::PType::(typing::PNode::after_typing)"
-#define ATTR_typing___PType____stype(recv) ATTR(recv, COLOR_typing___PType____stype)
 typedef val_t (* typing___PType___stype_t)(val_t  self);
 val_t typing___PType___stype(val_t  self);
 #define LOCATE_typing___PType___stype "typing::PType::stype"
@@ -305,7 +315,6 @@ val_t NEW_PExpr_parser_nodes___PNode___init();
 typedef val_t (* typing___PExpr___stype_t)(val_t  self);
 val_t typing___PExpr___stype(val_t  self);
 #define LOCATE_typing___PExpr___stype "typing::PExpr::(syntax_base::PExpr::stype)"
-#define ATTR_typing___PExpr____stype(recv) ATTR(recv, COLOR_typing___PExpr____stype)
 typedef val_t (* typing___PExpr___is_implicit_self_t)(val_t  self);
 val_t typing___PExpr___is_implicit_self(val_t  self);
 #define LOCATE_typing___PExpr___is_implicit_self "typing::PExpr::is_implicit_self"
@@ -315,7 +324,6 @@ val_t typing___PExpr___is_self(val_t  self);
 typedef val_t (* typing___PExpr___its_variable_t)(val_t  self);
 val_t typing___PExpr___its_variable(val_t  self);
 #define LOCATE_typing___PExpr___its_variable "typing::PExpr::its_variable"
-#define ATTR_typing___PExpr____if_true_variable_ctx(recv) ATTR(recv, COLOR_typing___PExpr____if_true_variable_ctx)
 typedef val_t (* typing___PExpr___if_true_variable_ctx_t)(val_t  self);
 val_t typing___PExpr___if_true_variable_ctx(val_t  self);
 #define LOCATE_typing___PExpr___if_true_variable_ctx "typing::PExpr::if_true_variable_ctx"
@@ -373,6 +381,18 @@ val_t NEW_AForVardeclExpr_parser_prod___AForVardeclExpr___init_aforvardeclexpr(v
 typedef void (* typing___AForVardeclExpr___after_typing_t)(val_t  self, val_t  param0);
 void typing___AForVardeclExpr___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___AForVardeclExpr___after_typing "typing::AForVardeclExpr::(typing::PNode::after_typing)"
+typedef val_t (* typing___AForVardeclExpr___meth_iterator_t)(val_t  self);
+val_t typing___AForVardeclExpr___meth_iterator(val_t  self);
+#define LOCATE_typing___AForVardeclExpr___meth_iterator "typing::AForVardeclExpr::meth_iterator"
+typedef val_t (* typing___AForVardeclExpr___meth_is_ok_t)(val_t  self);
+val_t typing___AForVardeclExpr___meth_is_ok(val_t  self);
+#define LOCATE_typing___AForVardeclExpr___meth_is_ok "typing::AForVardeclExpr::meth_is_ok"
+typedef val_t (* typing___AForVardeclExpr___meth_item_t)(val_t  self);
+val_t typing___AForVardeclExpr___meth_item(val_t  self);
+#define LOCATE_typing___AForVardeclExpr___meth_item "typing::AForVardeclExpr::meth_item"
+typedef val_t (* typing___AForVardeclExpr___meth_next_t)(val_t  self);
+val_t typing___AForVardeclExpr___meth_next(val_t  self);
+#define LOCATE_typing___AForVardeclExpr___meth_next "typing::AForVardeclExpr::meth_next"
 val_t NEW_AAssertExpr_parser_nodes___PNode___init();
 val_t NEW_AAssertExpr_parser_prod___AAssertExpr___empty_init();
 val_t NEW_AAssertExpr_parser_prod___AAssertExpr___init_aassertexpr(val_t p0, val_t p1, val_t p2);
@@ -398,7 +418,6 @@ val_t NEW_AReassignFormExpr_parser_nodes___PNode___init();
 typedef void (* typing___AReassignFormExpr___do_lvalue_typing_t)(val_t  self, val_t  param0, val_t  param1);
 void typing___AReassignFormExpr___do_lvalue_typing(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_typing___AReassignFormExpr___do_lvalue_typing "typing::AReassignFormExpr::do_lvalue_typing"
-#define ATTR_typing___AReassignFormExpr____assign_method(recv) ATTR(recv, COLOR_typing___AReassignFormExpr____assign_method)
 typedef val_t (* typing___AReassignFormExpr___assign_method_t)(val_t  self);
 val_t typing___AReassignFormExpr___assign_method(val_t  self);
 #define LOCATE_typing___AReassignFormExpr___assign_method "typing::AReassignFormExpr::assign_method"
@@ -494,12 +513,27 @@ val_t NEW_AStringFormExpr_parser_nodes___PNode___init();
 typedef void (* typing___AStringFormExpr___after_typing_t)(val_t  self, val_t  param0);
 void typing___AStringFormExpr___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___AStringFormExpr___after_typing "typing::AStringFormExpr::(typing::PNode::after_typing)"
+typedef val_t (* typing___AStringFormExpr___meth_with_native_t)(val_t  self);
+val_t typing___AStringFormExpr___meth_with_native(val_t  self);
+#define LOCATE_typing___AStringFormExpr___meth_with_native "typing::AStringFormExpr::meth_with_native"
 val_t NEW_ASuperstringExpr_parser_nodes___PNode___init();
 val_t NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___empty_init();
 val_t NEW_ASuperstringExpr_parser_prod___ASuperstringExpr___init_asuperstringexpr(val_t p0);
 typedef void (* typing___ASuperstringExpr___after_typing_t)(val_t  self, val_t  param0);
 void typing___ASuperstringExpr___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___ASuperstringExpr___after_typing "typing::ASuperstringExpr::(typing::PNode::after_typing)"
+typedef val_t (* typing___ASuperstringExpr___meth_with_capacity_t)(val_t  self);
+val_t typing___ASuperstringExpr___meth_with_capacity(val_t  self);
+#define LOCATE_typing___ASuperstringExpr___meth_with_capacity "typing::ASuperstringExpr::meth_with_capacity"
+typedef val_t (* typing___ASuperstringExpr___meth_add_t)(val_t  self);
+val_t typing___ASuperstringExpr___meth_add(val_t  self);
+#define LOCATE_typing___ASuperstringExpr___meth_add "typing::ASuperstringExpr::meth_add"
+typedef val_t (* typing___ASuperstringExpr___meth_to_s_t)(val_t  self);
+val_t typing___ASuperstringExpr___meth_to_s(val_t  self);
+#define LOCATE_typing___ASuperstringExpr___meth_to_s "typing::ASuperstringExpr::meth_to_s"
+typedef val_t (* typing___ASuperstringExpr___atype_t)(val_t  self);
+val_t typing___ASuperstringExpr___atype(val_t  self);
+#define LOCATE_typing___ASuperstringExpr___atype "typing::ASuperstringExpr::atype"
 val_t NEW_ANullExpr_parser_nodes___PNode___init();
 val_t NEW_ANullExpr_parser_prod___ANullExpr___empty_init();
 val_t NEW_ANullExpr_parser_prod___ANullExpr___init_anullexpr(val_t p0);
@@ -512,31 +546,53 @@ val_t NEW_AArrayExpr_parser_prod___AArrayExpr___init_aarrayexpr(val_t p0);
 typedef void (* typing___AArrayExpr___after_typing_t)(val_t  self, val_t  param0);
 void typing___AArrayExpr___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___AArrayExpr___after_typing "typing::AArrayExpr::(typing::PNode::after_typing)"
-typedef void (* typing___AArrayExpr___stype__eq_t)(val_t  self, val_t  param0);
-void typing___AArrayExpr___stype__eq(val_t  self, val_t  param0);
-#define LOCATE_typing___AArrayExpr___stype__eq "typing::AArrayExpr::stype="
+typedef val_t (* typing___AArrayExpr___meth_with_capacity_t)(val_t  self);
+val_t typing___AArrayExpr___meth_with_capacity(val_t  self);
+#define LOCATE_typing___AArrayExpr___meth_with_capacity "typing::AArrayExpr::meth_with_capacity"
+typedef val_t (* typing___AArrayExpr___meth_add_t)(val_t  self);
+val_t typing___AArrayExpr___meth_add(val_t  self);
+#define LOCATE_typing___AArrayExpr___meth_add "typing::AArrayExpr::meth_add"
+typedef void (* typing___AArrayExpr___do_typing_t)(val_t  self, val_t  param0, val_t  param1);
+void typing___AArrayExpr___do_typing(val_t  self, val_t  param0, val_t  param1);
+#define LOCATE_typing___AArrayExpr___do_typing "typing::AArrayExpr::do_typing"
 val_t NEW_ARangeExpr_parser_nodes___PNode___init();
 val_t NEW_ARangeExpr_parser_prod___ARangeExpr___empty_init();
 val_t NEW_ARangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
 typedef void (* typing___ARangeExpr___after_typing_t)(val_t  self, val_t  param0);
 void typing___ARangeExpr___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___ARangeExpr___after_typing "typing::ARangeExpr::(typing::PNode::after_typing)"
+typedef val_t (* typing___ARangeExpr___meth_init_t)(val_t  self);
+val_t typing___ARangeExpr___meth_init(val_t  self);
+#define LOCATE_typing___ARangeExpr___meth_init "typing::ARangeExpr::meth_init"
+val_t NEW_ACrangeExpr_parser_nodes___PNode___init();
+val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___empty_init();
+val_t NEW_ACrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
+val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___empty_init();
+val_t NEW_ACrangeExpr_parser_prod___ACrangeExpr___init_acrangeexpr(val_t p0, val_t p1);
+typedef void (* typing___ACrangeExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___ACrangeExpr___after_typing(val_t  self, val_t  param0);
+#define LOCATE_typing___ACrangeExpr___after_typing "typing::ACrangeExpr::(typing::PNode::after_typing)"
+val_t NEW_AOrangeExpr_parser_nodes___PNode___init();
+val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___empty_init();
+val_t NEW_AOrangeExpr_parser_prod___ARangeExpr___init_arangeexpr(val_t p0, val_t p1);
+val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___empty_init();
+val_t NEW_AOrangeExpr_parser_prod___AOrangeExpr___init_aorangeexpr(val_t p0, val_t p1);
+typedef void (* typing___AOrangeExpr___after_typing_t)(val_t  self, val_t  param0);
+void typing___AOrangeExpr___after_typing(val_t  self, val_t  param0);
+#define LOCATE_typing___AOrangeExpr___after_typing "typing::AOrangeExpr::(typing::PNode::after_typing)"
 val_t NEW_ASuperExpr_parser_nodes___PNode___init();
 val_t NEW_ASuperExpr_parser_prod___ASuperExpr___empty_init();
 val_t NEW_ASuperExpr_parser_prod___ASuperExpr___init_asuperexpr(val_t p0, val_t p1, val_t p2);
 typedef void (* typing___ASuperExpr___after_typing_t)(val_t  self, val_t  param0);
 void typing___ASuperExpr___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___ASuperExpr___after_typing "typing::ASuperExpr::(typing::PNode::after_typing)"
-#define ATTR_typing___ASuperExpr____init_in_superclass(recv) ATTR(recv, COLOR_typing___ASuperExpr____init_in_superclass)
 typedef val_t (* typing___ASuperExpr___init_in_superclass_t)(val_t  self);
 val_t typing___ASuperExpr___init_in_superclass(val_t  self);
 #define LOCATE_typing___ASuperExpr___init_in_superclass "typing::ASuperExpr::init_in_superclass"
 val_t NEW_AAttrFormExpr_parser_nodes___PNode___init();
-#define ATTR_typing___AAttrFormExpr____prop(recv) ATTR(recv, COLOR_typing___AAttrFormExpr____prop)
 typedef val_t (* typing___AAttrFormExpr___prop_t)(val_t  self);
 val_t typing___AAttrFormExpr___prop(val_t  self);
 #define LOCATE_typing___AAttrFormExpr___prop "typing::AAttrFormExpr::prop"
-#define ATTR_typing___AAttrFormExpr____attr_type(recv) ATTR(recv, COLOR_typing___AAttrFormExpr____attr_type)
 typedef val_t (* typing___AAttrFormExpr___attr_type_t)(val_t  self);
 val_t typing___AAttrFormExpr___attr_type(val_t  self);
 #define LOCATE_typing___AAttrFormExpr___attr_type "typing::AAttrFormExpr::attr_type"
@@ -562,7 +618,6 @@ typedef void (* typing___AAttrReassignExpr___after_typing_t)(val_t  self, val_t
 void typing___AAttrReassignExpr___after_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___AAttrReassignExpr___after_typing "typing::AAttrReassignExpr::(typing::PNode::after_typing)"
 val_t NEW_AAbsSendExpr_parser_nodes___PNode___init();
-#define ATTR_typing___AAbsSendExpr____prop_signature(recv) ATTR(recv, COLOR_typing___AAbsSendExpr____prop_signature)
 typedef val_t (* typing___AAbsSendExpr___prop_signature_t)(val_t  self);
 val_t typing___AAbsSendExpr___prop_signature(val_t  self);
 #define LOCATE_typing___AAbsSendExpr___prop_signature "typing::AAbsSendExpr::prop_signature"
@@ -581,15 +636,12 @@ val_t typing___AAbsSendExpr___process_signature(val_t  self, val_t  param0, val_
 typedef val_t (* typing___AAbsSendExpr___process_closures_t)(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
 val_t typing___AAbsSendExpr___process_closures(val_t  self, val_t  param0, val_t  param1, val_t  param2, val_t  param3);
 #define LOCATE_typing___AAbsSendExpr___process_closures "typing::AAbsSendExpr::process_closures"
-#define ATTR_typing___AAbsSendExpr____prop(recv) ATTR(recv, COLOR_typing___AAbsSendExpr____prop)
 typedef val_t (* typing___AAbsSendExpr___prop_t)(val_t  self);
 val_t typing___AAbsSendExpr___prop(val_t  self);
 #define LOCATE_typing___AAbsSendExpr___prop "typing::AAbsSendExpr::prop"
-#define ATTR_typing___AAbsSendExpr____arguments(recv) ATTR(recv, COLOR_typing___AAbsSendExpr____arguments)
 typedef val_t (* typing___AAbsSendExpr___arguments_t)(val_t  self);
 val_t typing___AAbsSendExpr___arguments(val_t  self);
 #define LOCATE_typing___AAbsSendExpr___arguments "typing::AAbsSendExpr::arguments"
-#define ATTR_typing___AAbsSendExpr____return_type(recv) ATTR(recv, COLOR_typing___AAbsSendExpr____return_type)
 typedef val_t (* typing___AAbsSendExpr___return_type_t)(val_t  self);
 val_t typing___AAbsSendExpr___return_type(val_t  self);
 #define LOCATE_typing___AAbsSendExpr___return_type "typing::AAbsSendExpr::return_type"
@@ -627,7 +679,6 @@ val_t NEW_ASendReassignExpr_parser_prod___ASendExpr___init_asendexpr(val_t p0);
 typedef void (* typing___ASendReassignExpr___do_all_typing_t)(val_t  self, val_t  param0);
 void typing___ASendReassignExpr___do_all_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___ASendReassignExpr___do_all_typing "typing::ASendReassignExpr::(typing::ASendExpr::do_all_typing)"
-#define ATTR_typing___ASendReassignExpr____read_prop(recv) ATTR(recv, COLOR_typing___ASendReassignExpr____read_prop)
 typedef val_t (* typing___ASendReassignExpr___read_prop_t)(val_t  self);
 val_t typing___ASendReassignExpr___read_prop(val_t  self);
 #define LOCATE_typing___ASendReassignExpr___read_prop "typing::ASendReassignExpr::read_prop"
@@ -876,7 +927,6 @@ val_t NEW_PClosureDef_parser_nodes___PNode___init();
 typedef void (* typing___PClosureDef___accept_typing_t)(val_t  self, val_t  param0);
 void typing___PClosureDef___accept_typing(val_t  self, val_t  param0);
 #define LOCATE_typing___PClosureDef___accept_typing "typing::PClosureDef::(typing::PNode::accept_typing)"
-#define ATTR_typing___PClosureDef____accept_typing2(recv) ATTR(recv, COLOR_typing___PClosureDef____accept_typing2)
 typedef void (* typing___PClosureDef___accept_typing2_t)(val_t  self, val_t  param0, val_t  param1);
 void typing___PClosureDef___accept_typing2(val_t  self, val_t  param0, val_t  param1);
 #define LOCATE_typing___PClosureDef___accept_typing2 "typing::PClosureDef::accept_typing2"
index ba73d1d..1ecd4ff 100644 (file)
@@ -14,34 +14,34 @@ val_t utils___Object___cmangle(val_t  self, val_t  param0) {
   if (once_bool_1) variable[4] = once_value_1;
   else {
     variable[4] = variable[0];
-    variable[4] = ((utils___Object___cmangle_table_t)CALL(variable[4],COLOR_utils___Object___cmangle_table))(variable[4]) /*Object::cmangle_table*/;
+    variable[4] = CALL_utils___Object___cmangle_table(variable[4])(variable[4]) /*Object::cmangle_table*/;
     once_value_1 = variable[4];
     once_bool_1 = true;
   }
   variable[3] = variable[4];
   variable[5] = NEW_String_string___String___init(); /*new String*/
   variable[4] = variable[5];
-  variable[5] = ((array___AbstractArray___iterator_t)CALL( variable[1] /*symbols*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*symbols*/) /*AbstractArray::iterator*/;
+  variable[5] = CALL_abstract_collection___Collection___iterator( variable[1] /*symbols*/)( variable[1] /*symbols*/) /*AbstractArray::iterator*/;
   while (true) { /*for*/
-    variable[6] = ((array___ArrayIterator___is_ok_t)CALL(variable[5],COLOR_abstract_collection___Iterator___is_ok))(variable[5]) /*ArrayIterator::is_ok*/;
+    variable[6] = CALL_abstract_collection___Iterator___is_ok(variable[5])(variable[5]) /*ArrayIterator::is_ok*/;
     if (!UNTAG_Bool(variable[6])) break; /*for*/
-    variable[6] = ((array___ArrayIterator___item_t)CALL(variable[5],COLOR_abstract_collection___Iterator___item))(variable[5]) /*ArrayIterator::item*/;
+    variable[6] = CALL_abstract_collection___Iterator___item(variable[5])(variable[5]) /*ArrayIterator::item*/;
     variable[7] = variable[6];
-    variable[8] = ((array___AbstractArray___is_empty_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___Collection___is_empty))( variable[4] /*res*/) /*AbstractArray::is_empty*/;
+    variable[8] = CALL_abstract_collection___Collection___is_empty( variable[4] /*res*/)( variable[4] /*res*/) /*AbstractArray::is_empty*/;
     if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[8])))) { /*if*/
-      ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
-      ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
-      ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
+      CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
     }
     variable[8] =  TAG_Bool(false);
     variable[9] =  TAG_Bool(true);
-    variable[11] = ((symbol___Symbol___to_s_t)CALL( variable[7] /*sym*/,COLOR_string___Object___to_s))( variable[7] /*sym*/) /*Symbol::to_s*/;
+    variable[11] = CALL_string___Object___to_s( variable[7] /*sym*/)( variable[7] /*sym*/) /*Symbol::to_s*/;
     variable[10] = variable[11];
-    variable[11] = ((array___AbstractArray___iterator_t)CALL( variable[10] /*s*/,COLOR_abstract_collection___Collection___iterator))( variable[10] /*s*/) /*AbstractArray::iterator*/;
+    variable[11] = CALL_abstract_collection___Collection___iterator( variable[10] /*s*/)( variable[10] /*s*/) /*AbstractArray::iterator*/;
     while (true) { /*for*/
-      variable[12] = ((array___ArrayIterator___is_ok_t)CALL(variable[11],COLOR_abstract_collection___Iterator___is_ok))(variable[11]) /*ArrayIterator::is_ok*/;
+      variable[12] = CALL_abstract_collection___Iterator___is_ok(variable[11])(variable[11]) /*ArrayIterator::is_ok*/;
       if (!UNTAG_Bool(variable[12])) break; /*for*/
-      variable[12] = ((array___ArrayIterator___item_t)CALL(variable[11],COLOR_abstract_collection___Iterator___item))(variable[11]) /*ArrayIterator::item*/;
+      variable[12] = CALL_abstract_collection___Iterator___item(variable[11])(variable[11]) /*ArrayIterator::item*/;
       variable[13] = variable[12];
       variable[14] = TAG_Bool(UNTAG_Char( variable[13] /*c*/)>=UNTAG_Char( TAG_Char('a')));
       variable[15] = variable[14];
@@ -70,7 +70,7 @@ val_t utils___Object___cmangle(val_t  self, val_t  param0) {
       }
       variable[14] = variable[15];
       if (UNTAG_Bool(variable[14])) { /*if*/
-        ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  variable[13] /*c*/) /*String::add*/;
+        CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[13] /*c*/) /*String::add*/;
         variable[8] =  TAG_Bool(false) /*underscore=*/;
         variable[9] =  TAG_Bool(true) /*normal=*/;
       } else { /*if*/
@@ -81,29 +81,29 @@ val_t utils___Object___cmangle(val_t  self, val_t  param0) {
         }
         variable[14] = variable[15];
         if (UNTAG_Bool(variable[14])) { /*if*/
-          ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  variable[13] /*c*/) /*String::add*/;
+          CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  variable[13] /*c*/) /*String::add*/;
           variable[8] =  TAG_Bool(true) /*underscore=*/;
           variable[9] =  TAG_Bool(true) /*normal=*/;
         } else { /*if*/
-          variable[14] = ((abstract_collection___CoupleMap___has_key_t)CALL( variable[3] /*table*/,COLOR_abstract_collection___Map___has_key))( variable[3] /*table*/,  variable[13] /*c*/) /*CoupleMap::has_key*/;
+          variable[14] = CALL_abstract_collection___Map___has_key( variable[3] /*table*/)( variable[3] /*table*/,  variable[13] /*c*/) /*CoupleMap::has_key*/;
           if (UNTAG_Bool(variable[14])) { /*if*/
             if (UNTAG_Bool( variable[9] /*normal*/)) { /*if*/
-              ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
-              ((string___String___add_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___SimpleCollection___add))( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
+              CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
+              CALL_abstract_collection___SimpleCollection___add( variable[4] /*res*/)( variable[4] /*res*/,  TAG_Char('_')) /*String::add*/;
             }
-            variable[14] = ((abstract_collection___CoupleMap_____bra_t)CALL( variable[3] /*table*/,COLOR_abstract_collection___Map_____bra))( variable[3] /*table*/,  variable[13] /*c*/) /*CoupleMap::[]*/;
-            ((string___String___append_t)CALL( variable[4] /*res*/,COLOR_abstract_collection___IndexedCollection___append))( variable[4] /*res*/, variable[14]) /*String::append*/;
+            variable[14] = CALL_abstract_collection___Map_____bra( variable[3] /*table*/)( variable[3] /*table*/,  variable[13] /*c*/) /*CoupleMap::[]*/;
+            CALL_abstract_collection___IndexedCollection___append( variable[4] /*res*/)( variable[4] /*res*/, variable[14]) /*String::append*/;
             variable[9] =  TAG_Bool(false) /*normal=*/;
             variable[8] =  TAG_Bool(false) /*underscore=*/;
           }
         }
       }
       continue_3: while(0);
-      ((array___ArrayIterator___next_t)CALL(variable[11],COLOR_abstract_collection___Iterator___next))(variable[11]) /*ArrayIterator::next*/;
+      CALL_abstract_collection___Iterator___next(variable[11])(variable[11]) /*ArrayIterator::next*/;
     }
     break_3: while(0);
     continue_2: while(0);
-    ((array___ArrayIterator___next_t)CALL(variable[5],COLOR_abstract_collection___Iterator___next))(variable[5]) /*ArrayIterator::next*/;
+    CALL_abstract_collection___Iterator___next(variable[5])(variable[5]) /*ArrayIterator::next*/;
   }
   break_2: while(0);
   variable[2] =  variable[4] /*res*/;
@@ -122,29 +122,29 @@ val_t utils___Object___cmangle_table(val_t  self) {
   variable[3] = NEW_HashMap_hash___HashMap___init(); /*new HashMap[Char, String]*/
   variable[2] = variable[3];
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("plus"), TAG_Int(4)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('+'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('+'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("minus"), TAG_Int(5)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('-'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('-'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("star"), TAG_Int(4)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('*'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('*'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("slash"), TAG_Int(5)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('/'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('/'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("percent"), TAG_Int(7)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('%'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('%'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("bra"), TAG_Int(3)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('['), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('['), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("eq"), TAG_Int(2)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('='), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('='), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("l"), TAG_Int(1)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('<'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('<'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("g"), TAG_Int(1)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('>'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('>'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("n"), TAG_Int(1)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('!'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('!'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("u"), TAG_Int(1)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('_'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('_'), variable[3]) /*HashMap::[]=*/;
   variable[3] = NEW_String_string___String___with_native(BOX_NativeString("at"), TAG_Int(2)); /*new String*/
-  ((hash___HashMap_____braeq_t)CALL( variable[2] /*res*/,COLOR_abstract_collection___Map_____braeq))( variable[2] /*res*/,  TAG_Char('@'), variable[3]) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq( variable[2] /*res*/)( variable[2] /*res*/,  TAG_Char('@'), variable[3]) /*HashMap::[]=*/;
   variable[1] =  variable[2] /*res*/;
   goto return_label4;
   return_label4: while(false);
index caa7b85..9d75d65 100644 (file)
@@ -5,8 +5,8 @@
 #include <nit_common.h>
 extern const char *LOCATE_utils;
 extern const int SFT_utils[];
-#define COLOR_utils___Object___cmangle SFT_utils[0]
-#define COLOR_utils___Object___cmangle_table SFT_utils[1]
+#define CALL_utils___Object___cmangle(recv) ((utils___Object___cmangle_t)CALL((recv), (SFT_utils[0] + 0)))
+#define CALL_utils___Object___cmangle_table(recv) ((utils___Object___cmangle_table_t)CALL((recv), (SFT_utils[0] + 1)))
 typedef val_t (* utils___Object___cmangle_t)(val_t  self, val_t  param0);
 val_t utils___Object___cmangle(val_t  self, val_t  param0);
 #define LOCATE_utils___Object___cmangle "utils::Object::cmangle"
index a419da4..a4dea72 100644 (file)
@@ -8,11 +8,11 @@ val_t vararg___MMSignature___adaptation_to(val_t  self, val_t  param0) {
   trace.file = LOCATE_vararg;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((vararg___MMSignature___adaptation_to_t)CALL(variable[0],COLOR_SUPER_vararg___MMSignature___adaptation_to))(variable[0],  variable[1] /*r*/) /*super MMSignature::adaptation_to*/;
+  variable[4] = CALL_SUPER_vararg___MMSignature___adaptation_to(variable[0])(variable[0],  variable[1] /*r*/) /*super MMSignature::adaptation_to*/;
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_vararg___MMSignature____vararg_rank(variable[4]) /*MMSignature::_vararg_rank*/;
-  ((vararg___MMSignature___vararg_rank__eq_t)CALL( variable[3] /*s*/,COLOR_vararg___MMSignature___vararg_rank__eq))( variable[3] /*s*/, variable[4]) /*MMSignature::vararg_rank=*/;
+  CALL_vararg___MMSignature___vararg_rank__eq( variable[3] /*s*/)( variable[3] /*s*/, variable[4]) /*MMSignature::vararg_rank=*/;
   variable[2] =  variable[3] /*s*/;
   goto return_label0;
   return_label0: while(false);
@@ -26,11 +26,11 @@ val_t vararg___MMSignature___not_for_self(val_t  self) {
   trace.prev = tracehead; tracehead = &trace;
   trace.file = LOCATE_vararg;
   variable[0] =  self;
-  variable[3] = ((vararg___MMSignature___not_for_self_t)CALL(variable[0],COLOR_SUPER_vararg___MMSignature___not_for_self))(variable[0]) /*super MMSignature::not_for_self*/;
+  variable[3] = CALL_SUPER_vararg___MMSignature___not_for_self(variable[0])(variable[0]) /*super MMSignature::not_for_self*/;
   variable[2] = variable[3];
   variable[3] = variable[0];
   variable[3] = ATTR_vararg___MMSignature____vararg_rank(variable[3]) /*MMSignature::_vararg_rank*/;
-  ((vararg___MMSignature___vararg_rank__eq_t)CALL( variable[2] /*s*/,COLOR_vararg___MMSignature___vararg_rank__eq))( variable[2] /*s*/, variable[3]) /*MMSignature::vararg_rank=*/;
+  CALL_vararg___MMSignature___vararg_rank__eq( variable[2] /*s*/)( variable[2] /*s*/, variable[3]) /*MMSignature::vararg_rank=*/;
   variable[1] =  variable[2] /*s*/;
   goto return_label1;
   return_label1: while(false);
@@ -48,7 +48,7 @@ void vararg___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_
   variable[2] =  param1;
   variable[3] =  param2;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMSignature].i]) return;
-  ((vararg___MMSignature___init_t)CALL(variable[0],COLOR_SUPER_vararg___MMSignature___init))(variable[0], variable[1], variable[2], variable[3], init_table) /*super MMSignature::init*/;
+  CALL_SUPER_vararg___MMSignature___init(variable[0])(variable[0], variable[1], variable[2], variable[3], init_table) /*super MMSignature::init*/;
   variable[5] = variable[0];
   variable[6] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
   ATTR_vararg___MMSignature____vararg_rank(variable[5]) /*MMSignature::_vararg_rank*/ = variable[6];
index eb19089..05c4e59 100644 (file)
@@ -5,13 +5,13 @@
 #include <nit_common.h>
 extern const char *LOCATE_vararg;
 extern const int SFT_vararg[];
-#define COLOR_vararg___MMSignature____vararg_rank SFT_vararg[0]
-#define COLOR_vararg___MMSignature___vararg_rank SFT_vararg[1]
-#define COLOR_vararg___MMSignature___vararg_rank__eq SFT_vararg[2]
-#define COLOR_vararg___MMSignature___has_vararg SFT_vararg[3]
-#define COLOR_SUPER_vararg___MMSignature___adaptation_to SFT_vararg[4]
-#define COLOR_SUPER_vararg___MMSignature___not_for_self SFT_vararg[5]
-#define COLOR_SUPER_vararg___MMSignature___init SFT_vararg[6]
+#define ATTR_vararg___MMSignature____vararg_rank(recv) ATTR(recv, (SFT_vararg[0] + 0))
+#define CALL_vararg___MMSignature___vararg_rank(recv) ((vararg___MMSignature___vararg_rank_t)CALL((recv), (SFT_vararg[1] + 0)))
+#define CALL_vararg___MMSignature___vararg_rank__eq(recv) ((vararg___MMSignature___vararg_rank__eq_t)CALL((recv), (SFT_vararg[1] + 1)))
+#define CALL_vararg___MMSignature___has_vararg(recv) ((vararg___MMSignature___has_vararg_t)CALL((recv), (SFT_vararg[1] + 2)))
+#define CALL_SUPER_vararg___MMSignature___adaptation_to(recv) ((vararg___MMSignature___adaptation_to_t)CALL((recv), (SFT_vararg[1] + 3)))
+#define CALL_SUPER_vararg___MMSignature___not_for_self(recv) ((vararg___MMSignature___not_for_self_t)CALL((recv), (SFT_vararg[1] + 4)))
+#define CALL_SUPER_vararg___MMSignature___init(recv) ((vararg___MMSignature___init_t)CALL((recv), (SFT_vararg[1] + 5)))
 typedef val_t (* vararg___MMSignature___adaptation_to_t)(val_t  self, val_t  param0);
 val_t vararg___MMSignature___adaptation_to(val_t  self, val_t  param0);
 #define LOCATE_vararg___MMSignature___adaptation_to "vararg::MMSignature::(static_type::MMSignature::adaptation_to)"
@@ -22,7 +22,6 @@ typedef void (* vararg___MMSignature___init_t)(val_t  self, val_t  param0, val_t
 void vararg___MMSignature___init(val_t  self, val_t  param0, val_t  param1, val_t  param2, int* init_table);
 #define LOCATE_vararg___MMSignature___init "vararg::MMSignature::(static_type::MMSignature::init)"
 val_t NEW_MMSignature_static_type___MMSignature___init(val_t p0, val_t p1, val_t p2);
-#define ATTR_vararg___MMSignature____vararg_rank(recv) ATTR(recv, COLOR_vararg___MMSignature____vararg_rank)
 typedef val_t (* vararg___MMSignature___vararg_rank_t)(val_t  self);
 val_t vararg___MMSignature___vararg_rank(val_t  self);
 #define LOCATE_vararg___MMSignature___vararg_rank "vararg::MMSignature::vararg_rank"
index 9a3bf21..94f1444 100644 (file)
@@ -8,7 +8,7 @@ val_t virtualtype___MMGlobalProperty___is_virtual_type(val_t  self) {
   trace.file = LOCATE_virtualtype;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((abstractmetamodel___MMGlobalProperty___intro_t)CALL(variable[2],COLOR_abstractmetamodel___MMGlobalProperty___intro))(variable[2]) /*MMGlobalProperty::intro*/;
+  variable[2] = CALL_abstractmetamodel___MMGlobalProperty___intro(variable[2])(variable[2]) /*MMGlobalProperty::intro*/;
   variable[2] = TAG_Bool((variable[2]==NIT_NULL) || VAL_ISA(variable[2], COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
   variable[1] = variable[2];
   goto return_label0;
@@ -24,14 +24,14 @@ val_t virtualtype___MMTypeProperty___stype_for(val_t  self, val_t  param0) {
   trace.file = LOCATE_virtualtype;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[4] = ((static_type___MMType___local_class_t)CALL( variable[1] /*recv*/,COLOR_static_type___MMType___local_class))( variable[1] /*recv*/) /*MMType::local_class*/;
+  variable[4] = CALL_static_type___MMType___local_class( variable[1] /*recv*/)( variable[1] /*recv*/) /*MMType::local_class*/;
   variable[5] = variable[0];
-  variable[5] = ((abstractmetamodel___MMLocalProperty___global_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalProperty___global))(variable[5]) /*MMLocalProperty::global*/;
-  variable[4] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[4], variable[5]) /*MMLocalClass::[]*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalProperty___global(variable[5])(variable[5]) /*MMLocalProperty::global*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[4])(variable[4], variable[5]) /*MMLocalClass::[]*/;
   variable[3] = variable[4];
   variable[4] = TAG_Bool(( variable[3] /*prop*/==NIT_NULL) || VAL_ISA( variable[3] /*prop*/, COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
   if (!UNTAG_Bool(variable[4])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_virtualtype___MMTypeProperty___stype_for, LOCATE_virtualtype, 35); nit_exit(1);}
-  variable[4] = ((virtualtype___MMTypeProperty___real_stype_for_t)CALL( variable[3] /*prop*/,COLOR_virtualtype___MMTypeProperty___real_stype_for))( variable[3] /*prop*/,  variable[1] /*recv*/) /*MMTypeProperty::real_stype_for*/;
+  variable[4] = CALL_virtualtype___MMTypeProperty___real_stype_for( variable[3] /*prop*/)( variable[3] /*prop*/,  variable[1] /*recv*/) /*MMTypeProperty::real_stype_for*/;
   variable[2] = variable[4];
   goto return_label1;
   return_label1: while(false);
@@ -47,19 +47,19 @@ val_t virtualtype___MMTypeProperty___real_stype_for(val_t  self, val_t  param0)
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((static_type___MMLocalProperty___signature_t)CALL(variable[3],COLOR_static_type___MMLocalProperty___signature))(variable[3]) /*MMLocalProperty::signature*/;
-  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[3] = CALL_static_type___MMLocalProperty___signature(variable[3])(variable[3]) /*MMLocalProperty::signature*/;
+  variable[3] = TAG_Bool((variable[3] ==  NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3],  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[2] =  NIT_NULL /*null*/;
     goto return_label2;
   }
   variable[3] = variable[0];
   variable[3] = ATTR_virtualtype___MMTypeProperty____stypes_cache(variable[3]) /*MMTypeProperty::_stypes_cache*/;
-  variable[3] = ((abstract_collection___CoupleMap___has_key_t)CALL(variable[3],COLOR_abstract_collection___Map___has_key))(variable[3],  variable[1] /*recv*/) /*CoupleMap::has_key*/;
+  variable[3] = CALL_abstract_collection___Map___has_key(variable[3])(variable[3],  variable[1] /*recv*/) /*CoupleMap::has_key*/;
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[3] = ATTR_virtualtype___MMTypeProperty____stypes_cache(variable[3]) /*MMTypeProperty::_stypes_cache*/;
-    variable[3] = ((abstract_collection___CoupleMap_____bra_t)CALL(variable[3],COLOR_abstract_collection___Map_____bra))(variable[3],  variable[1] /*recv*/) /*CoupleMap::[]*/;
+    variable[3] = CALL_abstract_collection___Map_____bra(variable[3])(variable[3],  variable[1] /*recv*/) /*CoupleMap::[]*/;
     variable[2] = variable[3];
     goto return_label2;
   }
@@ -69,7 +69,7 @@ val_t virtualtype___MMTypeProperty___real_stype_for(val_t  self, val_t  param0)
   variable[3] = variable[4];
   variable[4] = variable[0];
   variable[4] = ATTR_virtualtype___MMTypeProperty____stypes_cache(variable[4]) /*MMTypeProperty::_stypes_cache*/;
-  ((hash___HashMap_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4],  variable[1] /*recv*/,  variable[3] /*res*/) /*HashMap::[]=*/;
+  CALL_abstract_collection___Map_____braeq(variable[4])(variable[4],  variable[1] /*recv*/,  variable[3] /*res*/) /*HashMap::[]=*/;
   variable[2] =  variable[3] /*res*/;
   goto return_label2;
   return_label2: while(false);
@@ -85,7 +85,7 @@ val_t virtualtype___MMVirtualType___module(val_t  self) {
   variable[0] =  self;
   variable[2] = variable[0];
   variable[2] = ATTR_virtualtype___MMVirtualType____recv(variable[2]) /*MMVirtualType::_recv*/;
-  variable[2] = ((static_type___MMType___module_t)CALL(variable[2],COLOR_static_type___MMType___module))(variable[2]) /*MMType::module*/;
+  variable[2] = CALL_static_type___MMType___module(variable[2])(variable[2]) /*MMType::module*/;
   variable[1] = variable[2];
   goto return_label3;
   return_label3: while(false);
@@ -101,8 +101,8 @@ val_t virtualtype___MMVirtualType___for_module(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((virtualtype___MMVirtualType___module_t)CALL(variable[3],COLOR_static_type___MMType___module))(variable[3]) /*MMVirtualType::module*/;
-  variable[3] = TAG_Bool(( variable[1] /*mod*/ == variable[3]) || (( variable[1] /*mod*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*mod*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*mod*/,variable[3])):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*mod*/,COLOR_kernel___Object_____eqeq))( variable[1] /*mod*/, variable[3]) /*Object::==*/)))));
+  variable[3] = CALL_static_type___MMType___module(variable[3])(variable[3]) /*MMVirtualType::module*/;
+  variable[3] = TAG_Bool(( variable[1] /*mod*/ == variable[3]) || (( variable[1] /*mod*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*mod*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*mod*/,variable[3])):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*mod*/)( variable[1] /*mod*/, variable[3]) /*Object::==*/)))));
   if (UNTAG_Bool(variable[3])) { /*if*/
     variable[3] = variable[0];
     variable[2] = variable[3];
@@ -110,9 +110,9 @@ val_t virtualtype___MMVirtualType___for_module(val_t  self, val_t  param0) {
   }
   variable[3] = variable[0];
   variable[4] = variable[0];
-  variable[4] = ((virtualtype___MMVirtualType___recv_t)CALL(variable[4],COLOR_virtualtype___MMVirtualType___recv))(variable[4]) /*MMVirtualType::recv*/;
-  variable[4] = ((static_type___MMType___for_module_t)CALL(variable[4],COLOR_static_type___MMType___for_module))(variable[4],  variable[1] /*mod*/) /*MMType::for_module*/;
-  variable[3] = ((virtualtype___MMVirtualType___adapt_to_t)CALL(variable[3],COLOR_static_type___MMType___adapt_to))(variable[3], variable[4]) /*MMVirtualType::adapt_to*/;
+  variable[4] = CALL_virtualtype___MMVirtualType___recv(variable[4])(variable[4]) /*MMVirtualType::recv*/;
+  variable[4] = CALL_static_type___MMType___for_module(variable[4])(variable[4],  variable[1] /*mod*/) /*MMType::for_module*/;
+  variable[3] = CALL_static_type___MMType___adapt_to(variable[3])(variable[3], variable[4]) /*MMVirtualType::adapt_to*/;
   variable[2] = variable[3];
   goto return_label4;
   return_label4: while(false);
@@ -128,8 +128,8 @@ val_t virtualtype___MMVirtualType___adapt_to(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[3] = variable[0];
-  variable[3] = ((virtualtype___MMVirtualType___property_t)CALL(variable[3],COLOR_virtualtype___MMVirtualType___property))(variable[3]) /*MMVirtualType::property*/;
-  variable[3] = ((virtualtype___MMTypeProperty___stype_for_t)CALL(variable[3],COLOR_virtualtype___MMTypeProperty___stype_for))(variable[3],  variable[1] /*recv*/) /*MMTypeProperty::stype_for*/;
+  variable[3] = CALL_virtualtype___MMVirtualType___property(variable[3])(variable[3]) /*MMVirtualType::property*/;
+  variable[3] = CALL_virtualtype___MMTypeProperty___stype_for(variable[3])(variable[3],  variable[1] /*recv*/) /*MMTypeProperty::stype_for*/;
   variable[2] = variable[3];
   goto return_label5;
   return_label5: while(false);
@@ -144,8 +144,8 @@ val_t virtualtype___MMVirtualType___not_for_self(val_t  self) {
   trace.file = LOCATE_virtualtype;
   variable[0] =  self;
   variable[2] = variable[0];
-  variable[2] = ((type_formal___MMTypeFormal___bound_t)CALL(variable[2],COLOR_type_formal___MMTypeFormal___bound))(variable[2]) /*MMTypeFormal::bound*/;
-  variable[2] = ((static_type___MMType___not_for_self_t)CALL(variable[2],COLOR_static_type___MMType___not_for_self))(variable[2]) /*MMType::not_for_self*/;
+  variable[2] = CALL_type_formal___MMTypeFormal___bound(variable[2])(variable[2]) /*MMTypeFormal::bound*/;
+  variable[2] = CALL_static_type___MMType___not_for_self(variable[2])(variable[2]) /*MMType::not_for_self*/;
   variable[1] = variable[2];
   goto return_label6;
   return_label6: while(false);
@@ -180,10 +180,10 @@ void virtualtype___MMVirtualType___init(val_t  self, val_t  param0, val_t  param
   variable[1] =  param0;
   variable[2] =  param1;
   if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_MMVirtualType].i]) return;
-  variable[4] = ((abstractmetamodel___MMLocalProperty___name_t)CALL( variable[1] /*p*/,COLOR_abstractmetamodel___MMLocalProperty___name))( variable[1] /*p*/) /*MMLocalProperty::name*/;
-  variable[5] = ((static_type___MMLocalProperty___signature_for_t)CALL( variable[1] /*p*/,COLOR_static_type___MMLocalProperty___signature_for))( variable[1] /*p*/,  variable[2] /*recv*/) /*MMLocalProperty::signature_for*/;
-  variable[5] = ((static_type___MMSignature___return_type_t)CALL(variable[5],COLOR_static_type___MMSignature___return_type))(variable[5]) /*MMSignature::return_type*/;
-  ((type_formal___MMTypeFormal___init_t)CALL(variable[0],COLOR_type_formal___MMTypeFormal___init))(variable[0], variable[4], variable[5], init_table /*YYY*/) /*MMTypeFormal::init*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalProperty___name( variable[1] /*p*/)( variable[1] /*p*/) /*MMLocalProperty::name*/;
+  variable[5] = CALL_static_type___MMLocalProperty___signature_for( variable[1] /*p*/)( variable[1] /*p*/,  variable[2] /*recv*/) /*MMLocalProperty::signature_for*/;
+  variable[5] = CALL_static_type___MMSignature___return_type(variable[5])(variable[5]) /*MMSignature::return_type*/;
+  CALL_type_formal___MMTypeFormal___init(variable[0])(variable[0], variable[4], variable[5], init_table /*YYY*/) /*MMTypeFormal::init*/;
   variable[4] = variable[0];
   ATTR_virtualtype___MMVirtualType____property(variable[4]) /*MMVirtualType::_property*/ =  variable[1] /*p*/;
   variable[4] = variable[0];
@@ -202,9 +202,9 @@ val_t virtualtype___MMLocalClass___virtual_type(val_t  self, val_t  param0) {
   variable[0] =  self;
   variable[1] =  param0;
   variable[4] = variable[0];
-  variable[4] = ((abstractmetamodel___MMLocalClass___get_property_by_name_t)CALL(variable[4],COLOR_abstractmetamodel___MMLocalClass___get_property_by_name))(variable[4],  variable[1] /*s*/) /*MMLocalClass::get_property_by_name*/;
+  variable[4] = CALL_abstractmetamodel___MMLocalClass___get_property_by_name(variable[4])(variable[4],  variable[1] /*s*/) /*MMLocalClass::get_property_by_name*/;
   variable[3] = variable[4];
-  variable[4] = ((virtualtype___MMGlobalProperty___is_virtual_type_t)CALL( variable[3] /*prop*/,COLOR_virtualtype___MMGlobalProperty___is_virtual_type))( variable[3] /*prop*/) /*MMGlobalProperty::is_virtual_type*/;
+  variable[4] = CALL_virtualtype___MMGlobalProperty___is_virtual_type( variable[3] /*prop*/)( variable[3] /*prop*/) /*MMGlobalProperty::is_virtual_type*/;
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  variable[3] /*prop*/;
     goto return_label8;
@@ -223,18 +223,18 @@ val_t virtualtype___MMLocalClass___select_virtual_type(val_t  self, val_t  param
   trace.file = LOCATE_virtualtype;
   variable[0] =  self;
   variable[1] =  param0;
-  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ ==  NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*name*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*name*/,COLOR_kernel___Object_____eqeq))( variable[1] /*name*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
+  variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*name*/ ==  NIT_NULL /*null*/) || (( variable[1] /*name*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*name*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*name*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*name*/)( variable[1] /*name*/,  NIT_NULL /*null*/) /*Object::==*/)))))));
   if (!UNTAG_Bool(variable[3])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_virtualtype___MMLocalClass___select_virtual_type, LOCATE_virtualtype, 103); nit_exit(1);}
   variable[4] = variable[0];
-  variable[4] = ((virtualtype___MMLocalClass___virtual_type_t)CALL(variable[4],COLOR_virtualtype___MMLocalClass___virtual_type))(variable[4],  variable[1] /*name*/) /*MMLocalClass::virtual_type*/;
+  variable[4] = CALL_virtualtype___MMLocalClass___virtual_type(variable[4])(variable[4],  variable[1] /*name*/) /*MMLocalClass::virtual_type*/;
   variable[3] = variable[4];
-  variable[4] = TAG_Bool(( variable[3] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*gp*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*gp*/,COLOR_kernel___Object_____eqeq))( variable[3] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))));
+  variable[4] = TAG_Bool(( variable[3] /*gp*/ ==  NIT_NULL /*null*/) || (( variable[3] /*gp*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*gp*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*gp*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*gp*/)( variable[3] /*gp*/,  NIT_NULL /*null*/) /*Object::==*/)))));
   if (UNTAG_Bool(variable[4])) { /*if*/
     variable[2] =  NIT_NULL /*null*/;
     goto return_label9;
   }
   variable[5] = variable[0];
-  variable[5] = ((inheritance___MMLocalClass_____bra_t)CALL(variable[5],COLOR_abstractmetamodel___MMLocalClass_____bra))(variable[5],  variable[3] /*gp*/) /*MMLocalClass::[]*/;
+  variable[5] = CALL_abstractmetamodel___MMLocalClass_____bra(variable[5])(variable[5],  variable[3] /*gp*/) /*MMLocalClass::[]*/;
   variable[4] = variable[5];
   variable[5] = TAG_Bool(( variable[4] /*res*/==NIT_NULL) || VAL_ISA( variable[4] /*res*/, COLOR_MMTypeProperty, ID_MMTypeProperty)) /*cast MMTypeProperty*/;
   if (!UNTAG_Bool(variable[5])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_virtualtype___MMLocalClass___select_virtual_type, LOCATE_virtualtype, 107); nit_exit(1);}
index 5e59b5d..9960c0f 100644 (file)
@@ -9,23 +9,23 @@ extern const classtable_elt_t VFT_MMTypeProperty[];
 extern const classtable_elt_t VFT_MMVirtualType[];
 extern const char *LOCATE_virtualtype;
 extern const int SFT_virtualtype[];
-#define COLOR_virtualtype___MMGlobalProperty___is_virtual_type SFT_virtualtype[0]
-#define ID_MMTypeProperty SFT_virtualtype[1]
-#define COLOR_MMTypeProperty SFT_virtualtype[2]
-#define COLOR_virtualtype___MMTypeProperty____stypes_cache SFT_virtualtype[3]
-#define INIT_TABLE_POS_MMTypeProperty SFT_virtualtype[4]
-#define COLOR_virtualtype___MMTypeProperty___stype_for SFT_virtualtype[5]
-#define COLOR_virtualtype___MMTypeProperty___real_stype_for SFT_virtualtype[6]
-#define ID_MMVirtualType SFT_virtualtype[7]
-#define COLOR_MMVirtualType SFT_virtualtype[8]
-#define COLOR_virtualtype___MMVirtualType____property SFT_virtualtype[9]
-#define COLOR_virtualtype___MMVirtualType____recv SFT_virtualtype[10]
-#define INIT_TABLE_POS_MMVirtualType SFT_virtualtype[11]
-#define COLOR_virtualtype___MMVirtualType___property SFT_virtualtype[12]
-#define COLOR_virtualtype___MMVirtualType___recv SFT_virtualtype[13]
-#define COLOR_virtualtype___MMVirtualType___init SFT_virtualtype[14]
-#define COLOR_virtualtype___MMLocalClass___virtual_type SFT_virtualtype[15]
-#define COLOR_virtualtype___MMLocalClass___select_virtual_type SFT_virtualtype[16]
+#define CALL_virtualtype___MMGlobalProperty___is_virtual_type(recv) ((virtualtype___MMGlobalProperty___is_virtual_type_t)CALL((recv), (SFT_virtualtype[0] + 0)))
+#define ID_MMTypeProperty (SFT_virtualtype[1])
+#define COLOR_MMTypeProperty (SFT_virtualtype[2])
+#define ATTR_virtualtype___MMTypeProperty____stypes_cache(recv) ATTR(recv, (SFT_virtualtype[3] + 0))
+#define INIT_TABLE_POS_MMTypeProperty (SFT_virtualtype[4] + 0)
+#define CALL_virtualtype___MMTypeProperty___stype_for(recv) ((virtualtype___MMTypeProperty___stype_for_t)CALL((recv), (SFT_virtualtype[4] + 1)))
+#define CALL_virtualtype___MMTypeProperty___real_stype_for(recv) ((virtualtype___MMTypeProperty___real_stype_for_t)CALL((recv), (SFT_virtualtype[4] + 2)))
+#define ID_MMVirtualType (SFT_virtualtype[5])
+#define COLOR_MMVirtualType (SFT_virtualtype[6])
+#define ATTR_virtualtype___MMVirtualType____property(recv) ATTR(recv, (SFT_virtualtype[7] + 0))
+#define ATTR_virtualtype___MMVirtualType____recv(recv) ATTR(recv, (SFT_virtualtype[7] + 1))
+#define INIT_TABLE_POS_MMVirtualType (SFT_virtualtype[8] + 0)
+#define CALL_virtualtype___MMVirtualType___property(recv) ((virtualtype___MMVirtualType___property_t)CALL((recv), (SFT_virtualtype[8] + 1)))
+#define CALL_virtualtype___MMVirtualType___recv(recv) ((virtualtype___MMVirtualType___recv_t)CALL((recv), (SFT_virtualtype[8] + 2)))
+#define CALL_virtualtype___MMVirtualType___init(recv) ((virtualtype___MMVirtualType___init_t)CALL((recv), (SFT_virtualtype[8] + 3)))
+#define CALL_virtualtype___MMLocalClass___virtual_type(recv) ((virtualtype___MMLocalClass___virtual_type_t)CALL((recv), (SFT_virtualtype[9] + 0)))
+#define CALL_virtualtype___MMLocalClass___select_virtual_type(recv) ((virtualtype___MMLocalClass___select_virtual_type_t)CALL((recv), (SFT_virtualtype[9] + 1)))
 val_t NEW_MMGlobalProperty_abstractmetamodel___MMGlobalProperty___init(val_t p0);
 typedef val_t (* virtualtype___MMGlobalProperty___is_virtual_type_t)(val_t  self);
 val_t virtualtype___MMGlobalProperty___is_virtual_type(val_t  self);
@@ -34,7 +34,6 @@ val_t NEW_MMTypeProperty_abstractmetamodel___MMLocalProperty___init(val_t p0, va
 typedef val_t (* virtualtype___MMTypeProperty___stype_for_t)(val_t  self, val_t  param0);
 val_t virtualtype___MMTypeProperty___stype_for(val_t  self, val_t  param0);
 #define LOCATE_virtualtype___MMTypeProperty___stype_for "virtualtype::MMTypeProperty::stype_for"
-#define ATTR_virtualtype___MMTypeProperty____stypes_cache(recv) ATTR(recv, COLOR_virtualtype___MMTypeProperty____stypes_cache)
 typedef val_t (* virtualtype___MMTypeProperty___real_stype_for_t)(val_t  self, val_t  param0);
 val_t virtualtype___MMTypeProperty___real_stype_for(val_t  self, val_t  param0);
 #define LOCATE_virtualtype___MMTypeProperty___real_stype_for "virtualtype::MMTypeProperty::real_stype_for"
@@ -50,11 +49,9 @@ val_t virtualtype___MMVirtualType___adapt_to(val_t  self, val_t  param0);
 typedef val_t (* virtualtype___MMVirtualType___not_for_self_t)(val_t  self);
 val_t virtualtype___MMVirtualType___not_for_self(val_t  self);
 #define LOCATE_virtualtype___MMVirtualType___not_for_self "virtualtype::MMVirtualType::(static_type::MMType::not_for_self)"
-#define ATTR_virtualtype___MMVirtualType____property(recv) ATTR(recv, COLOR_virtualtype___MMVirtualType____property)
 typedef val_t (* virtualtype___MMVirtualType___property_t)(val_t  self);
 val_t virtualtype___MMVirtualType___property(val_t  self);
 #define LOCATE_virtualtype___MMVirtualType___property "virtualtype::MMVirtualType::property"
-#define ATTR_virtualtype___MMVirtualType____recv(recv) ATTR(recv, COLOR_virtualtype___MMVirtualType____recv)
 typedef val_t (* virtualtype___MMVirtualType___recv_t)(val_t  self);
 val_t virtualtype___MMVirtualType___recv(val_t  self);
 #define LOCATE_virtualtype___MMVirtualType___recv "virtualtype::MMVirtualType::recv"